lgeneral-1.3.1/0000775000175000017500000000000012643745102010314 500000000000000lgeneral-1.3.1/util/0000775000175000017500000000000012643745077011304 500000000000000lgeneral-1.3.1/util/hashtable_utility.c0000664000175000017500000000503412140770461015073 00000000000000/* Copyright (C) 2002 Christopher Clark */ #include "hashtable.h" #include "hashtable_private.h" #include "hashtable_utility.h" #include #include #include /*****************************************************************************/ /* hashtable_change * * function to change the value associated with a key, where there already * exists a value bound to the key in the hashtable. * Source due to Holger Schemel. * * */ int hashtable_change(struct hashtable *h, void *k, void *v) { struct entry *e; unsigned int hashvalue, index; hashvalue = hash(h,k); index = indexFor(h->tablelength,hashvalue); e = h->table[index]; while (NULL != e) { /* Check hash value to short circuit heavier comparison */ if ((hashvalue == e->h) && (h->compfn(k, e->k) == 0)) { free(e->v); e->v = v; return -1; } e = e->next; } return 0; } /* * Copyright (c) 2002, Christopher Clark * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of the original author; nor the names of any contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ lgeneral-1.3.1/util/paths-linux.c0000664000175000017500000000535212140770461013634 00000000000000/* Getting application paths. Copyright (C) 2005 Leo Savernik All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "paths.h" #include #include #include #include #include const char *paths_exec_path(void) { static char *exec_path_buf; if (!exec_path_buf) { char file[512]; unsigned size = 1; unsigned written = 0; snprintf(file, sizeof file, "/proc/%u/exe", getpid()); do { size *= 2; exec_path_buf = realloc(exec_path_buf, size); if (!exec_path_buf || ((int)(written = readlink(file, exec_path_buf, size)) == -1)) { free(exec_path_buf); exec_path_buf = ""; break; } } while (written == size); /* trim buffer to the exact length and NUL it */ if (exec_path_buf[0]) { exec_path_buf = realloc(exec_path_buf, written + 1); exec_path_buf[written] = '\0'; } } return exec_path_buf; } const char *paths_prefix(void) { static char *prefix_buf; if (!prefix_buf) { char *pos; prefix_buf = strdup(paths_exec_path()); /* ignore executable's file name */ pos = strrchr(prefix_buf, '/'); prefix_buf[pos ? pos - prefix_buf : 0] = '\0'; /* ignore trailing '/bin' if any */ pos = strrchr(prefix_buf, '/'); if (pos && memcmp(pos, "/bin", sizeof "/bin" - 1) == 0) *pos = '\0'; } return prefix_buf; } /* kate: tab-indents on; space-indent on; replace-tabs off; indent-width 2; dynamic-word-wrap off; inden(t)-mode cstyle */ lgeneral-1.3.1/util/hashtable.h0000664000175000017500000001673412140770461013326 00000000000000/* Copyright (C) 2002 Christopher Clark */ #ifndef __HASHTABLE_CWC22_H__ #define __HASHTABLE_CWC22_H__ struct hashtable; /* Example of use: * * struct hashtable *h; * struct some_key *k; * struct some_value *v; * * static unsigned int hash_from_key_fn( void *k ); * static int keys_comp_fn ( void *key1, void *key2 ); * * h = create_hashtable(16, hash_from_key_fn, keys_equal_fn, 0); * k = (struct some_key *) malloc(sizeof(struct some_key)); * v = (struct some_value *) malloc(sizeof(struct some_value)); * * (initialise k and v to suitable values) * * if (! hashtable_insert(h,k,v) ) * { exit(-1); } * * if (NULL == (found = hashtable_search(h,k) )) * { printf("not found!"); } * * if (NULL == (found = hashtable_remove(h,k) )) * { printf("Not found\n"); } * */ /* Macros may be used to define type-safe(r) hashtable access functions, with * methods specialized to take known key and value types as parameters. * * Example: * * Insert this at the start of your file: * * DEFINE_HASHTABLE_INSERT(insert_some, struct some_key, struct some_value); * DEFINE_HASHTABLE_SEARCH(search_some, struct some_key, struct some_value); * DEFINE_HASHTABLE_REMOVE(remove_some, struct some_key, struct some_value); * * This defines the functions 'insert_some', 'search_some' and 'remove_some'. * These operate just like hashtable_insert etc., with the same parameters, * but their function signatures have 'struct some_key *' rather than * 'void *', and hence can generate compile time errors if your program is * supplying incorrect data as a key (and similarly for value). * * Note that the hash and key equality functions passed to create_hashtable * still take 'void *' parameters instead of 'some key *'. This shouldn't be * a difficult issue as they're only defined and passed once, and the other * functions will ensure that only valid keys are supplied to them. * * The cost for this checking is increased code size and runtime overhead * - if performance is important, it may be worth switching back to the * unsafe methods once your program has been debugged with the safe methods. * This just requires switching to some simple alternative defines - eg: * #define insert_some hashtable_insert * */ /***************************************************************************** * create_hashtable * @name create_hashtable * @param minsize minimum initial size of hashtable * @param hashfunction function for hashing keys * @param key_comp_fn function for comparing two keys (strcmp semantics) * @param destroy_fn function for freeing the value if hashtable_destroy * is called with free=1. If not given, free will be * called. * @return newly created hashtable or NULL on failure */ struct hashtable * create_hashtable(unsigned int minsize, unsigned int (*hashfunction) (void*), int (*key_comp_fn) (void*,void*), void (*destroy_fn) (void *)); /***************************************************************************** * hashtable_insert * @name hashtable_insert * @param h the hashtable to insert into * @param k the key - hashtable claims ownership and will free on removal * @param v the value - does not claim ownership * @return non-zero for successful insertion * * This function will cause the table to expand if the insertion would take * the ratio of entries to table size over the maximum load factor. * * This function does not check for repeated insertions with a duplicate key. * The value returned when using a duplicate key is undefined -- when * the hashtable changes size, the order of retrieval of duplicate key * entries is reversed. * If in doubt, remove before insert. */ int hashtable_insert(struct hashtable *h, void *k, void *v); #define DEFINE_HASHTABLE_INSERT(fnname, keytype, valuetype) \ int fnname (struct hashtable *h, keytype *k, valuetype *v) \ { \ return hashtable_insert(h,k,v); \ } /***************************************************************************** * hashtable_search * @name hashtable_search * @param h the hashtable to search * @param k the key to search for - does not claim ownership * @return the value associated with the key, or NULL if none found */ void * hashtable_search(struct hashtable *h, void *k); #define DEFINE_HASHTABLE_SEARCH(fnname, keytype, valuetype) \ valuetype * fnname (struct hashtable *h, keytype *k) \ { \ return (valuetype *) (hashtable_search(h,k)); \ } /***************************************************************************** * hashtable_remove * @name hashtable_remove * @param h the hashtable to remove the item from * @param k the key to search for - does not claim ownership * @return the value associated with the key, or NULL if none found */ void * /* returns value */ hashtable_remove(struct hashtable *h, void *k); #define DEFINE_HASHTABLE_REMOVE(fnname, keytype, valuetype) \ valuetype * fnname (struct hashtable *h, keytype *k) \ { \ return (valuetype *) (hashtable_remove(h,k)); \ } /***************************************************************************** * hashtable_count * @name hashtable_count * @param h the hashtable * @return the number of items stored in the hashtable */ unsigned int hashtable_count(struct hashtable *h); /***************************************************************************** * hashtable_destroy * @name hashtable_destroy * @param h the hashtable * @param free_values whether to call 'free' on the remaining values */ void hashtable_destroy(struct hashtable *h, int free_values); #endif /* __HASHTABLE_CWC22_H__ */ /* * Copyright (c) 2002, Christopher Clark * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of the original author; nor the names of any contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ lgeneral-1.3.1/util/localize.h0000664000175000017500000000560312140770461013166 00000000000000/* Translation utilities. Copyright (C) 2005 Leo Savernik All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef UTIL_LOCALIZE_H #define UTIL_LOCALIZE_H #ifdef HAVE_CONFIG_H # include #endif #include #ifdef ENABLE_NLS /** shorthand for fetching translation of default domain */ # define tr(s) gettext (s) /** shorthand for fetching translation of specified domain */ inline static const char *trd(const char *dom, const char *s) { return *(s) ? dgettext ((dom), (s)) : ""; } /** shorthand for marking for translation of default domain */ # define TR_NOOP(s) (s) #else # define tr(s) (s) # define trd(dom, s) (s) # define TR_NOOP(s) (s) #endif /** * Load all translations of a given domain so that they can * be used throughout the application. * @param domain name of the domain. This very name is to be * specified for the \c domain parameter for dcgettext-calls. * @param translations reserved, must be 0. */ int locale_load_domain(const char *domain, const char *translations); /** * Writes into buf the ordinal representation of \c number * using the currently set language. * @param buf buffer to write to * @param n maximal number of characters to write (including * terminal 0) * @param number number to be returned as ordinal */ void locale_write_ordinal_number(char *buf, unsigned n, int number); /** * Initialise i18n for all immutable parts of lgeneral. * @param lang iso-code of language or 0 to determine automatically */ void locale_init(const char *lang); #endif /*UTIL_LOCALIZE_H*/ /* kate: tab-indents on; space-indent on; replace-tabs off; indent-width 2; dynamic-word-wrap off; inden(t)-mode cstyle */ lgeneral-1.3.1/util/Makefile.in0000664000175000017500000004500412643745057013272 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = util DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) AR = ar ARFLAGS = cru AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libutil_a_AR = $(AR) $(ARFLAGS) libutil_a_LIBADD = am__libutil_a_SOURCES_DIST = localize.c localize.h hashtable.c \ hashtable.h hashtable_private.h hashtable_itr.c \ hashtable_itr.h hashtable_utility.c hashtable_utility.h \ paths.c paths.h portability.c paths-linux.c @compile_paths_linux_TRUE@am__objects_1 = paths-linux.$(OBJEXT) am_libutil_a_OBJECTS = localize.$(OBJEXT) hashtable.$(OBJEXT) \ hashtable_itr.$(OBJEXT) hashtable_utility.$(OBJEXT) \ paths.$(OBJEXT) portability.$(OBJEXT) $(am__objects_1) libutil_a_OBJECTS = $(am_libutil_a_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libutil_a_SOURCES) DIST_SOURCES = $(am__libutil_a_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = -DHAVE_CONFIG_H -DDATADIR=\"@datadir@\" -DPREFIX=\"@prefix@\" DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LIBRARIES = libutil.a libutil_a_SOURCES = localize.c localize.h \ hashtable.c hashtable.h hashtable_private.h \ hashtable_itr.c hashtable_itr.h \ hashtable_utility.c hashtable_utility.h \ paths.c paths.h portability.c $(PATHS_PLATFORM) @compile_paths_linux_TRUE@PATHS_PLATFORM = paths-linux.c INCLUDES = $(INTLINCLUDES) -I$(top_srcdir) all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign util/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign util/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) libutil.a: $(libutil_a_OBJECTS) $(libutil_a_DEPENDENCIES) $(EXTRA_libutil_a_DEPENDENCIES) $(AM_V_at)-rm -f libutil.a $(AM_V_AR)$(libutil_a_AR) libutil.a $(libutil_a_OBJECTS) $(libutil_a_LIBADD) $(AM_V_at)$(RANLIB) libutil.a mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hashtable.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hashtable_itr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hashtable_utility.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localize.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paths-linux.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paths.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/portability.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-noinstLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/util/Makefile.am0000664000175000017500000000065012140770461013244 00000000000000noinst_LIBRARIES = libutil.a libutil_a_SOURCES = localize.c localize.h \ hashtable.c hashtable.h hashtable_private.h \ hashtable_itr.c hashtable_itr.h \ hashtable_utility.c hashtable_utility.h \ paths.c paths.h portability.c $(PATHS_PLATFORM) if compile_paths_linux PATHS_PLATFORM = paths-linux.c endif INCLUDES = $(INTLINCLUDES) -I$(top_srcdir) DEFS = -DHAVE_CONFIG_H -DDATADIR=\"@datadir@\" -DPREFIX=\"@prefix@\" lgeneral-1.3.1/util/hashtable_utility.h0000664000175000017500000000424512140770461015103 00000000000000/* Copyright (C) 2002 Christopher Clark */ #ifndef __HASHTABLE_CWC22_UTILITY_H__ #define __HASHTABLE_CWC22_UTILITY_H__ /***************************************************************************** * hashtable_change * * function to change the value associated with a key, where there already * exists a value bound to the key in the hashtable. * Source due to Holger Schemel. * * @name hashtable_change * @param h the hashtable * @param key * @param value * */ int hashtable_change(struct hashtable *h, void *k, void *v); #endif /* __HASHTABLE_CWC22_H__ */ /* * Copyright (c) 2002, Christopher Clark * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of the original author; nor the names of any contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ lgeneral-1.3.1/util/paths.h0000664000175000017500000000377412140770461012512 00000000000000/* Getting application paths. Copyright (C) 2005 Leo Savernik All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef UTIL_PATHS_H #define UTIL_PATHS_H #ifdef HAVE_CONFIG_H # include #endif /** * Returns the executable's path or "" if the operating * system does not support it. */ const char *paths_exec_path(void); /** * Returns the package's prefix. * * If the operating supports it, the function returns the * executable's path with the name of the executable and the * rightmost bin/ stripped off. Otherwise, the prefix * specified at build time is returned. */ const char *paths_prefix(void); #endif /*UTIL_PATHS_H*/ /* kate: tab-indents on; space-indent on; replace-tabs off; indent-width 2; dynamic-word-wrap off; inden(t)-mode cstyle */ lgeneral-1.3.1/util/hashtable_private.h0000664000175000017500000000570112140770461015050 00000000000000/* Copyright (C) 2002, 2004 Christopher Clark */ #ifndef __HASHTABLE_PRIVATE_CWC22_H__ #define __HASHTABLE_PRIVATE_CWC22_H__ #include "hashtable.h" /*****************************************************************************/ struct entry { void *k, *v; unsigned int h; struct entry *next; }; struct hashtable { unsigned int tablelength; struct entry **table; unsigned int entrycount; unsigned int loadlimit; unsigned int primeindex; unsigned int (*hashfn) (void *k); int (*compfn) (void *k1, void *k2); void (*destroyfn) (void *); }; /*****************************************************************************/ unsigned int hash(struct hashtable *h, void *k); /*****************************************************************************/ /* indexFor */ static inline unsigned int indexFor(unsigned int tablelength, unsigned int hashvalue) { return (hashvalue % tablelength); }; /* Only works if tablelength == 2^N */ /*static inline unsigned int indexFor(unsigned int tablelength, unsigned int hashvalue) { return (hashvalue & (tablelength - 1u)); } */ /*****************************************************************************/ #define freekey(h,X) (h)->destroyfn(X) /*define freekey(h,X) ; */ /*****************************************************************************/ #endif /* __HASHTABLE_PRIVATE_CWC22_H__*/ /* * Copyright (c) 2002, Christopher Clark * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of the original author; nor the names of any contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ lgeneral-1.3.1/util/portability.c0000664000175000017500000000401212140770461013712 00000000000000/* Contains various symbol definitons needed for portability. Copyright (C) 2006 Leo Savernik All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "config.h" #include #include #ifndef HAVE_SETENV int setenv(const char *name, const char *value, int override) { #ifdef HAVE_PUTENV char *new_value = malloc( strlen(name) + strlen(value) + 2 ); strcpy(new_value, name); strcat(new_value, "="); strcat(new_value, value); return putenv (new_value); /* Do *not* free the environment entry we just entered. It is used * from now on. */ #else # error "Platform without setenv and putenv." #endif } #endif /*HAVE_SETENV*/ /* kate: tab-indents on; space-indent on; replace-tabs off; indent-width 2; dynamic-word-wrap off; inden(t)-mode cstyle */ lgeneral-1.3.1/util/paths.c0000664000175000017500000000324212140770461012473 00000000000000/* Getting application paths. Copyright (C) 2005 Leo Savernik All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "paths.h" #include #include #ifdef PATHS_GENERIC const char *paths_exec_path(void) { return ""; } const char *paths_prefix(void) { return PREFIX; } #endif /* kate: tab-indents on; space-indent on; replace-tabs off; indent-width 2; dynamic-word-wrap off; inden(t)-mode cstyle */ lgeneral-1.3.1/util/localize.c0000664000175000017500000001513512140770461013162 00000000000000/* Translation utilities. Copyright (C) 2005 Leo Savernik All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "localize.h" #include "hashtable.h" #include "paths.h" #include "intl/hash-string.h" #include #include #include #include #include /** internal language code. LC_C means default as well as unknown. */ typedef enum { LC_C, LC_DE, LC_EN } LanguageCode; /** info about a loaded domain */ struct DomainInfo { int dummy; /* none yet */ }; static LanguageCode lang_code; static struct hashtable *domain_map; /* NOTE: Keep in sync with LanguageCode enum. * It serves as an index into this table */ /** language data for all supported languages */ static const struct { const char *lang; /* iso language-specification */ const char *charset; /* charset for output in lgeneral */ } lang_data[] = { { "C", "ISO-8859-1" }, { "de", "ISO-8859-1" }, { "en", "ISO-8859-1" }, }; /** deletes a domain-info-entry */ static void domain_info_delete(void *d) { free(d); } /** returns the domain-map */ static inline struct hashtable *domain_map_instance() { if (!domain_map) { domain_map = create_hashtable(10, (unsigned int (*) (void*))hash_string, (int (*)(void *, void *))strcmp, domain_info_delete); } return domain_map; } /** inserts a new entry into the domain-map */ static void domain_map_insert(const char *domain, struct DomainInfo *info) { struct hashtable *dm = domain_map_instance(); hashtable_insert(dm, (void *)domain, info); } #ifdef __NOTUSED /** removes an entry from the domain-map */ static void domain_map_remove(const char *domain) { struct hashtable *dm = domain_map_instance(); hashtable_remove(dm, (void *)domain); } #endif #if 0 const char *tr(const char *s) { const char *r = gettext(s); fprintf(stderr, "'%s' -> '%s'\n", s, r); return r; } #endif /** * Looks up an entry in the domain-map. * Returns \c DomainInfo or 0 if not found. */ static struct DomainInfo *domain_map_get(const char *domain) { struct hashtable *dm = domain_map_instance(); return hashtable_search(dm, (void *)domain); } /** * Determines from the given language-string a suitable * language-code, or LC_C if no match. */ static LanguageCode locale_determine_internal_code(const char *str) { unsigned len = strlen(str); char *buf = alloca(len + 1); char *pos; /* make a copy we can manipulate at will */ strcpy(buf, str); /* format can be of ll_TT.ENCODING. Strip .ENCODING */ pos = strchr(buf, '.'); len = pos ? pos - buf : len; buf[len] = 0; do { /* In the first pass, try to match ll_TT. * If this fails, strip _TT and match again. */ int i; for (i = 0; i < sizeof lang_data/sizeof lang_data[0]; i++) { if (strcmp(lang_data[i].lang, buf) == 0) return (LanguageCode)i; } /* strip _TT */ pos = strchr(buf, '_'); len = pos ? pos - buf : len; buf[len] = 0; } while(pos); return LC_C; } int locale_load_domain(const char *domain, const char *translations) { struct DomainInfo *info; /* TODO: In the future resources may specify a package containing * all translations for a certain domain. * Currently, we rely on all translations being preinstalled. */ assert(translations == 0); /* don't add any domain twice */ info = domain_map_get(domain); if (info) return 1; #ifdef ENABLE_NLS { char *path; const char suffix[] = "/share/locale"; unsigned len = strlen(paths_prefix()); path = malloc(len + sizeof suffix); strcpy(path, paths_prefix()); strcpy(path + len, suffix); bindtextdomain(domain, path); } #endif info = malloc(sizeof(struct DomainInfo)); domain_map_insert(domain, info); return 1; } void locale_write_ordinal_number_lang(char *buf, unsigned n, LanguageCode code, int number) { switch (code) { case LC_DE: /* Ah! Is that easy :-) */ snprintf( buf, n, "%d.", number); break; case LC_C: case LC_EN: default: { const int num100 = number % 100; switch ( num100 < 10 || num100 > 19 ? number % 10 : 4 ) { case 1: snprintf( buf, n, "%dst", number ); break; case 2: snprintf( buf, n, "%dnd", number ); break; case 3: snprintf( buf, n, "%drd", number ); break; default: snprintf( buf, n, "%dth", number ); break; } break; } } } void locale_write_ordinal_number(char *buf, unsigned n, int number) { locale_write_ordinal_number_lang(buf, n, lang_code, number); } void locale_init(const char *lang) { static const char *vars[] = { "LANGUAGE", "LC_ALL", "LC_MESSAGES", "LANG" }; int i; if (lang) { setenv("LANGUAGE", lang, 1); } /* traverse envvars in same order like gettext and use * the first one found. */ for (i = 0; i < sizeof vars/sizeof vars[0]; i++) { const char *lang = getenv(vars[i]); if (lang) { lang_code = locale_determine_internal_code(lang); break; } } #if 0 fprintf(stderr, "lc: %d, lang: %s\n", lang_code, lang_data[lang_code].str); #endif setlocale(LC_MESSAGES, ""); /* for glibc, force the output charset */ setenv("OUTPUT_CHARSET", lang_data[lang_code].charset, 1); locale_load_domain(PACKAGE, 0); #ifdef ENABLE_NLS textdomain(PACKAGE); #endif } /* kate: tab-indents on; space-indent on; replace-tabs off; indent-width 2; dynamic-word-wrap off; inden(t)-mode cstyle */ lgeneral-1.3.1/util/hashtable_itr.h0000664000175000017500000000777412140770461014210 00000000000000/* Copyright (C) 2002, 2004 Christopher Clark */ #ifndef __HASHTABLE_ITR_CWC22__ #define __HASHTABLE_ITR_CWC22__ #include "hashtable.h" #include "hashtable_private.h" /* needed to enable inlining */ /*****************************************************************************/ /* This struct is only concrete here to allow the inlining of two of the * accessor functions. */ struct hashtable_itr { struct hashtable *h; struct entry *e; struct entry *parent; unsigned int index; }; /*****************************************************************************/ /* hashtable_iterator */ struct hashtable_itr * hashtable_iterator(struct hashtable *h); /*****************************************************************************/ /* hashtable_iterator_key * - return the value of the (key,value) pair at the current position */ extern inline void * hashtable_iterator_key(struct hashtable_itr *i) { return i->e->k; } /*****************************************************************************/ /* value - return the value of the (key,value) pair at the current position */ extern inline void * hashtable_iterator_value(struct hashtable_itr *i) { return i->e->v; } /*****************************************************************************/ /* advance - advance the iterator to the next element * returns zero if advanced to end of table */ int hashtable_iterator_advance(struct hashtable_itr *itr); /*****************************************************************************/ /* remove - remove current element and advance the iterator to the next element * NB: if you need the value to free it, read it before * removing. ie: beware memory leaks! * returns zero if advanced to end of table */ int hashtable_iterator_remove(struct hashtable_itr *itr); /*****************************************************************************/ /* search - overwrite the supplied iterator, to point to the entry * matching the supplied key. h points to the hashtable to be searched. * returns zero if not found. */ int hashtable_iterator_search(struct hashtable_itr *itr, struct hashtable *h, void *k); #define DEFINE_HASHTABLE_ITERATOR_SEARCH(fnname, keytype) \ int fnname (struct hashtable_itr *i, struct hashtable *h, keytype *k) \ { \ return (hashtable_iterator_search(i,h,k)); \ } #endif /* __HASHTABLE_ITR_CWC22__*/ /* * Copyright (c) 2002, 2004, Christopher Clark * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of the original author; nor the names of any contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ lgeneral-1.3.1/util/hashtable.c0000664000175000017500000002166412140770461013317 00000000000000/* Copyright (C) 2004 Christopher Clark */ #include "hashtable.h" #include "hashtable_private.h" #include #include #include #include /* Credit for primes table: Aaron Krowne http://br.endernet.org/~akrowne/ http://planetmath.org/encyclopedia/GoodHashTablePrimes.html */ static const unsigned int primes[] = { 53, 97, 193, 389, 769, 1543, 3079, 6151, 12289, 24593, 49157, 98317, 196613, 393241, 786433, 1572869, 3145739, 6291469, 12582917, 25165843, 50331653, 100663319, 201326611, 402653189, 805306457, 1610612741 }; const unsigned int prime_table_length = sizeof(primes)/sizeof(primes[0]); const float max_load_factor = 0.65; /*****************************************************************************/ struct hashtable * create_hashtable(unsigned int minsize, unsigned int (*hashf) (void*), int (*compf) (void*,void*), void (*destroyf) (void *)) { struct hashtable *h; unsigned int pindex, size = primes[0]; /* Check requested hashtable isn't too large */ if (minsize > (1u << 30)) return NULL; /* Enforce size as prime */ for (pindex=0; pindex < prime_table_length; pindex++) { if (primes[pindex] > minsize) { size = primes[pindex]; break; } } h = (struct hashtable *)malloc(sizeof(struct hashtable)); if (NULL == h) return NULL; /*oom*/ h->table = (struct entry **)malloc(sizeof(struct entry*) * size); if (NULL == h->table) { free(h); return NULL; } /*oom*/ memset(h->table, 0, size * sizeof(struct entry *)); h->tablelength = size; h->primeindex = pindex; h->entrycount = 0; h->hashfn = hashf; h->compfn = compf; h->destroyfn = destroyf ? destroyf : free; h->loadlimit = (unsigned int) ceil(size * max_load_factor); return h; } /*****************************************************************************/ unsigned int hash(struct hashtable *h, void *k) { /* Aim to protect against poor hash functions by adding logic here * - logic taken from java 1.4 hashtable source */ unsigned int i = h->hashfn(k); i += ~(i << 9); i ^= ((i >> 14) | (i << 18)); /* >>> */ i += (i << 4); i ^= ((i >> 10) | (i << 22)); /* >>> */ return i; } /*****************************************************************************/ static int hashtable_expand(struct hashtable *h) { /* Double the size of the table to accomodate more entries */ struct entry **newtable; struct entry *e; struct entry **pE; unsigned int newsize, i, index; /* Check we're not hitting max capacity */ if (h->primeindex == (prime_table_length - 1)) return 0; newsize = primes[++(h->primeindex)]; newtable = (struct entry **)malloc(sizeof(struct entry*) * newsize); if (NULL != newtable) { memset(newtable, 0, newsize * sizeof(struct entry *)); /* This algorithm is not 'stable'. ie. it reverses the list * when it transfers entries between the tables */ for (i = 0; i < h->tablelength; i++) { while (NULL != (e = h->table[i])) { h->table[i] = e->next; index = indexFor(newsize,e->h); e->next = newtable[index]; newtable[index] = e; } } free(h->table); h->table = newtable; } /* Plan B: realloc instead */ else { newtable = (struct entry **) realloc(h->table, newsize * sizeof(struct entry *)); if (NULL == newtable) { (h->primeindex)--; return 0; } h->table = newtable; memset(newtable[h->tablelength], 0, newsize - h->tablelength); for (i = 0; i < h->tablelength; i++) { for (pE = &(newtable[i]), e = *pE; e != NULL; e = *pE) { index = indexFor(newsize,e->h); if (index == i) { pE = &(e->next); } else { *pE = e->next; e->next = newtable[index]; newtable[index] = e; } } } } h->tablelength = newsize; h->loadlimit = (unsigned int) ceil(newsize * max_load_factor); return -1; } /*****************************************************************************/ unsigned int hashtable_count(struct hashtable *h) { return h->entrycount; } /*****************************************************************************/ int hashtable_insert(struct hashtable *h, void *k, void *v) { /* This method allows duplicate keys - but they shouldn't be used */ unsigned int index; struct entry *e; if (++(h->entrycount) > h->loadlimit) { /* Ignore the return value. If expand fails, we should * still try cramming just this value into the existing table * -- we may not have memory for a larger table, but one more * element may be ok. Next time we insert, we'll try expanding again.*/ hashtable_expand(h); } e = (struct entry *)malloc(sizeof(struct entry)); if (NULL == e) { --(h->entrycount); return 0; } /*oom*/ e->h = hash(h,k); index = indexFor(h->tablelength,e->h); e->k = k; e->v = v; e->next = h->table[index]; h->table[index] = e; return -1; } /*****************************************************************************/ void * /* returns value associated with key */ hashtable_search(struct hashtable *h, void *k) { struct entry *e; unsigned int hashvalue, index; hashvalue = hash(h,k); index = indexFor(h->tablelength,hashvalue); e = h->table[index]; while (NULL != e) { /* Check hash value to short circuit heavier comparison */ if ((hashvalue == e->h) && (h->compfn(k, e->k) == 0)) return e->v; e = e->next; } return NULL; } /*****************************************************************************/ void * /* returns value associated with key */ hashtable_remove(struct hashtable *h, void *k) { /* TODO: consider compacting the table when the load factor drops enough, * or provide a 'compact' method. */ struct entry *e; struct entry **pE; void *v; unsigned int hashvalue, index; hashvalue = hash(h,k); index = indexFor(h->tablelength,hash(h,k)); pE = &(h->table[index]); e = *pE; while (NULL != e) { /* Check hash value to short circuit heavier comparison */ if ((hashvalue == e->h) && (h->compfn(k, e->k) == 0)) { *pE = e->next; h->entrycount--; v = e->v; freekey(h, e->k); free(e); return v; } pE = &(e->next); e = e->next; } return NULL; } /*****************************************************************************/ /* destroy */ void hashtable_destroy(struct hashtable *h, int free_values) { unsigned int i; struct entry *e, *f; struct entry **table = h->table; if (free_values) { for (i = 0; i < h->tablelength; i++) { e = table[i]; while (NULL != e) { f = e; e = e->next; freekey(h, f->k); free(f->v); free(f); } } } else { for (i = 0; i < h->tablelength; i++) { e = table[i]; while (NULL != e) { f = e; e = e->next; freekey(h, f->k); free(f); } } } free(h->table); free(h); } /* * Copyright (c) 2002, Christopher Clark * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of the original author; nor the names of any contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ lgeneral-1.3.1/util/hashtable_itr.c0000664000175000017500000001254012140770461014166 00000000000000/* Copyright (C) 2002, 2004 Christopher Clark */ #include "hashtable.h" #include "hashtable_private.h" #include "hashtable_itr.h" #include /* defines NULL */ /*****************************************************************************/ /* hashtable_iterator - iterator constructor */ struct hashtable_itr * hashtable_iterator(struct hashtable *h) { struct hashtable_itr *itr = (struct hashtable_itr *) malloc(sizeof(struct hashtable_itr)); if (NULL == itr) return NULL; itr->h = h; itr->e = NULL; itr->parent = NULL; itr->index = 0; return itr; } /*****************************************************************************/ /* key - return the key of the (key,value) pair at the current position */ /* value - return the value of the (key,value) pair at the current position */ void * hashtable_iterator_key(struct hashtable_itr *i) { return i->e->k; } void * hashtable_iterator_value(struct hashtable_itr *i) { return i->e->v; } /*****************************************************************************/ /* advance - advance the iterator to the next element * returns zero if advanced to end of table */ int hashtable_iterator_advance(struct hashtable_itr *itr) { unsigned int j,tablelength; struct entry **table; struct entry *next; next = itr->e ? itr->e->next : NULL; if (NULL != next) { itr->parent = itr->e; itr->e = next; return -1; } tablelength = itr->h->tablelength; itr->parent = NULL; if (tablelength <= (j = (itr->index += !!itr->e))) { itr->e = NULL; return 0; } table = itr->h->table; while (NULL == (next = table[j])) { if (++j >= tablelength) { itr->index = tablelength; itr->e = NULL; return 0; } } itr->index = j; itr->e = next; return -1; } /*****************************************************************************/ /* remove - remove the entry at the current iterator position * and advance the iterator, if there is a successive * element. * If you want the value, read it before you remove: * beware memory leaks if you don't. * Returns zero if end of iteration. */ int hashtable_iterator_remove(struct hashtable_itr *itr) { struct entry *remember_e, *remember_parent; int ret; /* Do the removal */ if (NULL == (itr->parent)) { /* element is head of a chain */ itr->h->table[itr->index] = itr->e->next; } else { /* element is mid-chain */ itr->parent->next = itr->e->next; } /* itr->e is now outside the hashtable */ remember_e = itr->e; itr->h->entrycount--; freekey(itr->h, remember_e->k); /* Advance the iterator, correcting the parent */ remember_parent = itr->parent; ret = hashtable_iterator_advance(itr); if (itr->parent == remember_e) { itr->parent = remember_parent; } free(remember_e); return ret; } /*****************************************************************************/ int /* returns zero if not found */ hashtable_iterator_search(struct hashtable_itr *itr, struct hashtable *h, void *k) { struct entry *e, *parent; unsigned int hashvalue, index; hashvalue = hash(h,k); index = indexFor(h->tablelength,hashvalue); e = h->table[index]; parent = NULL; while (NULL != e) { /* Check hash value to short circuit heavier comparison */ if ((hashvalue == e->h) && (h->compfn(k, e->k) == 0)) { itr->index = index; itr->e = e; itr->parent = parent; itr->h = h; return -1; } parent = e; e = e->next; } return 0; } /* * Copyright (c) 2002, 2004, Christopher Clark * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of the original author; nor the names of any contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ lgeneral-1.3.1/lged/0000775000175000017500000000000012643745100011225 500000000000000lgeneral-1.3.1/lged/README0000664000175000017500000000105012140770461012021 00000000000000This is basically a command-line version of lgeneral-redit. It can also be used to query any units within the pg-unit-library. Most source files are shared with lgeneral-redit and can be found there. lged can be run from within the source directory or the installation directory, depending on the location of the executable. Note that you cannot perform any changes if the resources are not writeable. You can still read any properties. > lged --help will print a coarse overview. > lged --help will print help referring to . lgeneral-1.3.1/lged/Makefile.in0000664000175000017500000006525512643745056013241 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = lged$(EXEEXT) subdir = lged DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_lged_OBJECTS = lged-lged.$(OBJEXT) lged-misc.$(OBJEXT) \ lged-parser.$(OBJEXT) lged-list.$(OBJEXT) lged_OBJECTS = $(am_lged_OBJECTS) lged_LDADD = $(LDADD) lged_LINK = $(CCLD) $(lged_CFLAGS) $(CFLAGS) $(lged_LDFLAGS) \ $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(lged_SOURCES) DIST_SOURCES = $(lged_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = $(top_builddir)/util/libutil.a LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ LGED_REINF_PATH = $(top_srcdir)/lgeneral-redit/src INCLUDES = -I$(top_srcdir) -I$(LGED_REINF_PATH) lged_CFLAGS = -DCMDLINE_ONLY -DTOP_SRCDIR=\"$(top_srcdir)\" lged_LDFLAGS = lged_SOURCES = lged.c \ $(LGED_REINF_PATH)/misc.c \ $(LGED_REINF_PATH)/parser.c \ $(LGED_REINF_PATH)/list.c all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lged/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign lged/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) lged$(EXEEXT): $(lged_OBJECTS) $(lged_DEPENDENCIES) $(EXTRA_lged_DEPENDENCIES) @rm -f lged$(EXEEXT) $(AM_V_CCLD)$(lged_LINK) $(lged_OBJECTS) $(lged_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lged-lged.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lged-list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lged-misc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lged-parser.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` lged-lged.o: lged.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -MT lged-lged.o -MD -MP -MF $(DEPDIR)/lged-lged.Tpo -c -o lged-lged.o `test -f 'lged.c' || echo '$(srcdir)/'`lged.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lged-lged.Tpo $(DEPDIR)/lged-lged.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lged.c' object='lged-lged.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -c -o lged-lged.o `test -f 'lged.c' || echo '$(srcdir)/'`lged.c lged-lged.obj: lged.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -MT lged-lged.obj -MD -MP -MF $(DEPDIR)/lged-lged.Tpo -c -o lged-lged.obj `if test -f 'lged.c'; then $(CYGPATH_W) 'lged.c'; else $(CYGPATH_W) '$(srcdir)/lged.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lged-lged.Tpo $(DEPDIR)/lged-lged.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lged.c' object='lged-lged.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -c -o lged-lged.obj `if test -f 'lged.c'; then $(CYGPATH_W) 'lged.c'; else $(CYGPATH_W) '$(srcdir)/lged.c'; fi` lged-misc.o: $(LGED_REINF_PATH)/misc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -MT lged-misc.o -MD -MP -MF $(DEPDIR)/lged-misc.Tpo -c -o lged-misc.o `test -f '$(LGED_REINF_PATH)/misc.c' || echo '$(srcdir)/'`$(LGED_REINF_PATH)/misc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lged-misc.Tpo $(DEPDIR)/lged-misc.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(LGED_REINF_PATH)/misc.c' object='lged-misc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -c -o lged-misc.o `test -f '$(LGED_REINF_PATH)/misc.c' || echo '$(srcdir)/'`$(LGED_REINF_PATH)/misc.c lged-misc.obj: $(LGED_REINF_PATH)/misc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -MT lged-misc.obj -MD -MP -MF $(DEPDIR)/lged-misc.Tpo -c -o lged-misc.obj `if test -f '$(LGED_REINF_PATH)/misc.c'; then $(CYGPATH_W) '$(LGED_REINF_PATH)/misc.c'; else $(CYGPATH_W) '$(srcdir)/$(LGED_REINF_PATH)/misc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lged-misc.Tpo $(DEPDIR)/lged-misc.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(LGED_REINF_PATH)/misc.c' object='lged-misc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -c -o lged-misc.obj `if test -f '$(LGED_REINF_PATH)/misc.c'; then $(CYGPATH_W) '$(LGED_REINF_PATH)/misc.c'; else $(CYGPATH_W) '$(srcdir)/$(LGED_REINF_PATH)/misc.c'; fi` lged-parser.o: $(LGED_REINF_PATH)/parser.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -MT lged-parser.o -MD -MP -MF $(DEPDIR)/lged-parser.Tpo -c -o lged-parser.o `test -f '$(LGED_REINF_PATH)/parser.c' || echo '$(srcdir)/'`$(LGED_REINF_PATH)/parser.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lged-parser.Tpo $(DEPDIR)/lged-parser.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(LGED_REINF_PATH)/parser.c' object='lged-parser.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -c -o lged-parser.o `test -f '$(LGED_REINF_PATH)/parser.c' || echo '$(srcdir)/'`$(LGED_REINF_PATH)/parser.c lged-parser.obj: $(LGED_REINF_PATH)/parser.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -MT lged-parser.obj -MD -MP -MF $(DEPDIR)/lged-parser.Tpo -c -o lged-parser.obj `if test -f '$(LGED_REINF_PATH)/parser.c'; then $(CYGPATH_W) '$(LGED_REINF_PATH)/parser.c'; else $(CYGPATH_W) '$(srcdir)/$(LGED_REINF_PATH)/parser.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lged-parser.Tpo $(DEPDIR)/lged-parser.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(LGED_REINF_PATH)/parser.c' object='lged-parser.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -c -o lged-parser.obj `if test -f '$(LGED_REINF_PATH)/parser.c'; then $(CYGPATH_W) '$(LGED_REINF_PATH)/parser.c'; else $(CYGPATH_W) '$(srcdir)/$(LGED_REINF_PATH)/parser.c'; fi` lged-list.o: $(LGED_REINF_PATH)/list.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -MT lged-list.o -MD -MP -MF $(DEPDIR)/lged-list.Tpo -c -o lged-list.o `test -f '$(LGED_REINF_PATH)/list.c' || echo '$(srcdir)/'`$(LGED_REINF_PATH)/list.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lged-list.Tpo $(DEPDIR)/lged-list.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(LGED_REINF_PATH)/list.c' object='lged-list.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -c -o lged-list.o `test -f '$(LGED_REINF_PATH)/list.c' || echo '$(srcdir)/'`$(LGED_REINF_PATH)/list.c lged-list.obj: $(LGED_REINF_PATH)/list.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -MT lged-list.obj -MD -MP -MF $(DEPDIR)/lged-list.Tpo -c -o lged-list.obj `if test -f '$(LGED_REINF_PATH)/list.c'; then $(CYGPATH_W) '$(LGED_REINF_PATH)/list.c'; else $(CYGPATH_W) '$(srcdir)/$(LGED_REINF_PATH)/list.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lged-list.Tpo $(DEPDIR)/lged-list.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(LGED_REINF_PATH)/list.c' object='lged-list.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lged_CFLAGS) $(CFLAGS) -c -o lged-list.obj `if test -f '$(LGED_REINF_PATH)/list.c'; then $(CYGPATH_W) '$(LGED_REINF_PATH)/list.c'; else $(CYGPATH_W) '$(srcdir)/$(LGED_REINF_PATH)/list.c'; fi` ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-binPROGRAMS install-data install-data-am \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/lged/Makefile.am0000664000175000017500000000053212140770461013201 00000000000000LGED_REINF_PATH = $(top_srcdir)/lgeneral-redit/src bin_PROGRAMS = lged LIBS = $(top_builddir)/util/libutil.a INCLUDES = -I$(top_srcdir) -I$(LGED_REINF_PATH) lged_CFLAGS = -DCMDLINE_ONLY -DTOP_SRCDIR=\"$(top_srcdir)\" lged_LDFLAGS = lged_SOURCES = lged.c \ $(LGED_REINF_PATH)/misc.c \ $(LGED_REINF_PATH)/parser.c \ $(LGED_REINF_PATH)/list.c lgeneral-1.3.1/lged/lged.c0000664000175000017500000012461112575247507012245 00000000000000/* A command line tool for viewing unit properties and manipulating reinforcements. Copyright (C) 2005 Leo Savernik All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #define _GNU_SOURCE #include #include #include #include #include #include #include "config.h" #include "list.h" #include "misc.h" extern const char *scenarios[]; extern const char *unit_classes[]; extern const int num_unit_classes; extern const char *target_types[]; extern const int num_target_types; extern const char *nation_table[]; extern const int num_nation_table; extern const char *sides[]; extern const int num_sides; extern List *reinf[2][SCEN_COUNT]; static int num_units; static int within_source_tree; /* 1 if running within source tree */ static const char *rt_path; /* start of runtime path of executable */ static int rt_path_len; /* length of runtime path including trailing slash */ #ifdef __GNUC__ # define NORETURN __attribute__ ((noreturn)) # define PRINTF_STYLE(fmtidx, firstoptidx) __attribute__ ((format(printf,fmtidx,firstoptidx))) #else # define NORETURN # define PRINTF_STYLE(x,y) #endif #define LGED_MAJOR 0 #define LGED_MINOR 1 enum Options { OPT_LIST_SCENARIOS = 256, OPT_UNITDB_FILE, OPT_VERSION }; enum Command { COMMAND_NONE, REINF_INSERT, REINF_MODIFY, REINF_REMOVE, REINF_LIST, REINF_BUILD, LIST_UNITDB, LIST_SCENARIOS, LIST_NATIONS, LIST_SIDES, LIST_TARGET_TYPES, LIST_CLASSES }; typedef int CommandHandler(int argc, char **argv, int opt_index); typedef void CommandHelp(int argc, char **argv); static void abortf(const char *fmt, ...) NORETURN PRINTF_STYLE(1,2); static void verbosef(int lvl, const char *fmt, ...) PRINTF_STYLE(2,3); static void syntax(int argc, char **argv); static void insert_reinf_help(int argc, char **argv); static void modify_reinf_help(int argc, char **argv); static void remove_reinf_help(int argc, char **argv); static void rebuild_reinf_help(int argc, char **argv); static void list_reinf_help(int argc, char **argv); static void list_unitdb_help(int argc, char **argv); static void list_scenarios_help(int argc, char **argv); static void list_nations_help(int argc, char **argv); static void list_sides_help(int argc, char **argv); static void list_target_types_help(int argc, char **argv); static void list_classes_help(int argc, char **argv); static int insert_reinf(int argc, char **argv, int idx); static int modify_reinf(int argc, char **argv, int idx); static int remove_reinf(int argc, char **argv, int idx); static int rebuild_reinf(int argc, char **argv, int idx); static int list_reinf(int argc, char **argv, int idx); static int list_unitdb(int argc, char **argv, int idx); static int list_scenarios(int argc, char **argv, int idx); static int list_nations(int argc, char **argv, int idx); static int list_sides(int argc, char **argv, int idx); static int list_target_types(int argc, char **argv, int idx); static int list_classes(int argc, char **argv, int idx); static struct command { const char name[20]; CommandHandler *run; enum Command alias_for; CommandHelp *help; } commands[] = { { "", 0, 0, syntax }, { "insert", insert_reinf, 0, insert_reinf_help }, { "modify", modify_reinf, 0, modify_reinf_help }, { "remove", remove_reinf, 0, remove_reinf_help }, { "list", list_reinf, 0, list_reinf_help }, { "build", rebuild_reinf, 0, rebuild_reinf_help }, { "list-units", list_unitdb, 0, list_unitdb_help }, { "list-scenarios", list_scenarios, 0, list_scenarios_help }, { "list-nations", list_nations, 0, list_nations_help }, { "list-sides", list_sides, 0, list_sides_help }, { "list-target-types", list_target_types, 0, list_target_types_help }, { "list-classes", list_classes, 0, list_classes_help }, /* aliases */ { "add", 0, REINF_INSERT, 0 }, { "ins", 0, REINF_INSERT, 0 }, { "change", 0, REINF_MODIFY, 0 }, { "mod", 0, REINF_MODIFY, 0 }, { "chg", 0, REINF_MODIFY, 0 }, { "ch", 0, REINF_MODIFY, 0 }, { "delete", 0, REINF_REMOVE, 0 }, { "del", 0, REINF_REMOVE, 0 }, { "rm", 0, REINF_REMOVE, 0 }, { "units", 0, LIST_UNITDB, 0 }, { "unit", 0, LIST_UNITDB, 0 }, { "list-scens", 0, LIST_SCENARIOS, 0 }, { "list-scen", 0, LIST_SCENARIOS, 0 }, { "scens", 0, LIST_SCENARIOS, 0 }, { "scen", 0, LIST_SCENARIOS, 0 }, { "list-nat", 0, LIST_NATIONS, 0 }, { "nations", 0, LIST_NATIONS, 0 }, { "nats", 0, LIST_NATIONS, 0 }, { "nat", 0, LIST_NATIONS, 0 }, { "sides", 0, LIST_SIDES, 0 }, { "side", 0, LIST_SIDES, 0 }, { "list-targettype", 0, LIST_TARGET_TYPES, 0 }, { "target-types", 0, LIST_TARGET_TYPES, 0 }, { "target-type", 0, LIST_TARGET_TYPES, 0 }, { "targettypes", 0, LIST_TARGET_TYPES, 0 }, { "targettype", 0, LIST_TARGET_TYPES, 0 }, { "tgttypes", 0, LIST_TARGET_TYPES, 0 }, { "tgttype", 0, LIST_TARGET_TYPES, 0 }, { "ttp", 0, LIST_TARGET_TYPES, 0 }, { "tgt", 0, LIST_TARGET_TYPES, 0 }, { "list-unit-classes", 0, LIST_CLASSES, 0 }, { "list-unit-class", 0, LIST_CLASSES, 0 }, { "list-unitclasses", 0, LIST_CLASSES, 0 }, { "list-unitclass", 0, LIST_CLASSES, 0 }, { "unit-classes", 0, LIST_CLASSES, 0 }, { "unit-class", 0, LIST_CLASSES, 0 }, { "unitclasses", 0, LIST_CLASSES, 0 }, { "unitclass", 0, LIST_CLASSES, 0 }, { "classes", 0, LIST_CLASSES, 0 }, { "class", 0, LIST_CLASSES, 0 }, { "cls", 0, LIST_CLASSES, 0 }, }; #define NUM_COMMANDS (sizeof commands/sizeof commands[0]) /* predefined locations of files. in_place means in source tree, installed means in installation directory. */ static const char in_place_unitdb[] = "src/units/pg.udb"; static const char installed_unitdb[1024] = "/units/pg.udb"; static const char in_place_reinfrc[] = "lgeneral-redit/src/reinf.rc"; static const char in_place_reinf_output[] = "lgc-pg/convdata/reinf"; static const char installed_reinf_output[1024] = "/convdata/reinf"; static int command_index = COMMAND_NONE; static int dry_run; static int verbosity; static int show_help; static const char *output_file; static const char *input_file; const char *unitdb; const char *reinfrc; const char *reinf_output; static struct option long_options[] = { {"add", 0, 0, 'a'}, {"append", 0, 0, 'a'}, {"build", 0, 0, 'b'}, {"delete", 0, 0, 'd'}, {"dry-run", 0, &dry_run, 1}, {"help", 0, &show_help, 1}, {"insert", 0, 0, 'i'}, {"list", 0, 0, 'l'}, {"modify", 0, 0, 'm'}, {"output", 1, 0, 'o'}, {"reinf-file", 1, 0, 'f'}, {"remove", 0, 0, 'r'}, {"scenarios", 0, 0, 's' }, {"unitdb-file", 1, 0, OPT_UNITDB_FILE}, {"units", 0, 0, 'u'}, {"verbose", 0, 0, 'v'}, {"version", 0, 0, OPT_VERSION}, {0, 0, 0, 0} }; /* == forward declarations of handler functions. */ static int do_list_reinf(int scen_id, char *scen_bitmap, int side_id, char *side_bitmap); static void renumber_reinf(void); /* aborts with the given error message and exit code 1 */ static void abortf(const char *fmt, ...) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); exit(1); } /* prints a message if 'level' is at least equal to the current verbosity level */ static void verbosef(int level, const char *fmt, ...) { va_list ap; if (level > verbosity) return; va_start(ap, fmt); vfprintf(stderr, fmt, ap); } /* concatenates two strings into a new buffer and returns the result */ static char *concat(const char *s1, const char *s2) { unsigned l1 = strlen(s1); unsigned l2 = strlen(s2); char *r = malloc(l1 + l2 + 1); strcpy(r, s1); strcpy(r + l1, s2); return r; } /* resolves alias commands */ static enum Command command_resolve_alias(int cmd) { if (cmd < 0 || cmd >= NUM_COMMANDS) return COMMAND_NONE; if (commands[cmd].alias_for) cmd = commands[cmd].alias_for; return cmd; } /* set the command to be executed. Aborts if a command has already been set. */ static void set_command(enum Command cmd) { if (command_index != COMMAND_NONE) abortf("Two commands specified\n"); command_index = cmd; } /* handle the command line options */ static void process_cmdline(int argc, char **argv) { for (;;) { int result = getopt_long(argc, argv, "abdf:ilmo:rsuv", long_options, 0); if (result == -1) break; switch (result) { case 'b': set_command(REINF_BUILD); break; case 'f': input_file = optarg; break; case 'a': case 'i': set_command(REINF_INSERT); break; case 'l': set_command(REINF_LIST); break; case 'm': set_command(REINF_MODIFY); break; case 'o': output_file = optarg; break; case 'd': case 'r': set_command(REINF_REMOVE); break; case 's': set_command(LIST_SCENARIOS); break; case 'u': set_command(LIST_UNITDB); break; case 'v': verbosity++; break; case OPT_UNITDB_FILE: unitdb = optarg; break; case OPT_VERSION: printf("%d.%d\n", LGED_MAJOR, LGED_MINOR); exit(0); } } /* check whether the first non option argument is a command. */ if (optind < argc) { int cmd; for (cmd = NUM_COMMANDS; cmd > 0; ) { cmd--; if (strcmp(argv[optind], commands[cmd].name) == 0) { set_command(command_resolve_alias(cmd)); optind++; break; } } } if (show_help) { commands[command_index].help(argc, argv); exit(1); } if (command_index == COMMAND_NONE) abortf("No command specified\n"); } /** prints all commands */ static void print_commands() { int i = 1; int cmd_count = 0; printf("\t"); for (; i < NUM_COMMANDS; i++) { if (commands[i].alias_for) continue; printf("%s%s", cmd_count > 0 ? ", " : "", commands[i].name); cmd_count++; } printf("\n"); } /** prints all alias-names for cmd */ static void print_alias_names(enum Command cmd) { int i = 0; int alias_count = 0; printf("Alias names:\n\t"); for (; i < NUM_COMMANDS; i++) { if (commands[i].alias_for == cmd) { printf("%s%s", alias_count > 0 ? ", " : "", commands[i].name); alias_count++; } } if (!alias_count) printf(""); printf("\n"); } /** * prepends the srcdir, determined from the executable's location, * to the given path which must be relative to the srcdir. * This is only a guess and is be flatly wrong if lged is installed. * Warning: the string is allocated on the heap! */ static const char *srcdir_path_from_bindir(const char *path) { char buffer[4096]; if (TOP_SRCDIR[0] == '/') // absolute snprintf(buffer, sizeof buffer, "%s/%s", TOP_SRCDIR, path); else // relative snprintf(buffer, sizeof buffer, "%.*s/%s/%s", rt_path_len, rt_path, TOP_SRCDIR, path); return strdup(buffer); } /** initialises tool */ static void init_tool(int argc, char **argv) { /* extract runtime path (relative to current directory). */ /* this won't work if binary was in $PATH */ rt_path = strrchr(argv[0], '/'); if (rt_path) rt_path_len = rt_path + 1 - argv[0]; rt_path = argv[0]; /* check whether we're started from within the source directory */ { const char *path = srcdir_path_from_bindir("README.lgeneral"); FILE *f = fopen(path, "rb"); within_source_tree = !!f; if (f) fclose(f); free((void *)path); if (within_source_tree) verbosef(2, "Source tree detected. Using inline paths.\n"); } /* get path for unitdb */ if (!unitdb) { unitdb = within_source_tree ? srcdir_path_from_bindir(in_place_unitdb) : concat(get_gamedir(), installed_unitdb); /* leaks a string, but is harmless */ } verbosef(2, "Location of unit db: %s\n", unitdb); /* get path for reinforcements */ reinfrc = input_file; if (!reinfrc && within_source_tree) { reinfrc = srcdir_path_from_bindir(in_place_reinfrc); /* leaks a string, but is harmless */ } verbosef(2, "Location of reinforcements: %s\n", reinfrc); if (!reinfrc) abortf("Path to reinforcements file missing.\n"); /* check whether reinforcements file exists */ { FILE *f = fopen(reinfrc, "rb"); if (!f) fprintf(stderr, "Warning: No reinforcements file at %s. New list created.\n", reinfrc); if (f) fclose(f); } } /** returns 1 if criterion is to be omitted */ inline static int is_omitted(const char *criterion) { return !criterion || strcmp(criterion, "-") == 0 || strcmp(criterion, "*") == 0; } #ifndef HAVE_STRCASESTR /** * returns the pointer of needle within haystack, ignoring case. 0 if * needle is not found. */ static const char *strcasestr(const char *haystack, const char *needle) { while (strcasecmp(haystack, needle) != 0 && *haystack) haystack++; return *haystack ? haystack : 0; } #endif /** * returns whether needle is a case insensitive substring in any element * of ary. If found, the index of the first element is returned, * -1 otherwise. 'i' is the starting index, 'sz' the size of the array. */ inline static int find_in_array(const char *needle, int i, const char **ary, int sz) { for (; i < sz; i++) if (strcasestr(ary[i], needle)) return i; return -1; } /** * returns the id of the first unit matching the given pattern or -1. * Don't call this while iterating all units by iterate_units_next() */ static UnitLib_Entry *find_unit_by_pattern(const char *pattern) { UnitLib_Entry *entry; iterate_units_begin(); while ((entry = iterate_units_next())) { if (strcasestr(entry->name, pattern)) return entry; } return 0; } /** * returns 1 if 'bitmap' is true at position 'idx'. 'sz' is the size of * the bitmap. */ inline static int in_bitmap(int idx, const char *bitmap, int sz) { return idx >= 0 && idx < sz && bitmap[idx]; } /** * prints reinforcements for a specific scenario, both sides. Set * 'renumber' to true to renumber the pins of all reinforcements. */ static void print_scen_reinf(int scen_id, int renumber) { char scen_bitmap[SCEN_COUNT]; memset(scen_bitmap, 0, sizeof scen_bitmap); if (scen_id != -1) scen_bitmap[scen_id] = 1; if (renumber) renumber_reinf(); do_list_reinf(scen_id, scen_bitmap, -1, 0); } /** renumbers the pins of all reinforcements */ static void renumber_reinf(void) { int i, j, pin = 1; for ( i = 0; i < SCEN_COUNT; i++ ) { for ( j = 0; j < 2; j++ ) { Unit *unit; list_reset( reinf[j][i] ); while ((unit = list_next( reinf[j][i] ))) unit->pin = pin++; } } } /** * finds a reinforcement by pin or 0 if none. 'scen_id' is assigned the * scenario this reinforcement was found in. 'side_id' is assigned the * side. */ static Unit *find_reinf_by_pin(int pin, int *side_id, int *scen_id) { int i, j; for ( i = 0; i < SCEN_COUNT; i++ ) { for ( j = 0; j < 2; j++ ) { Unit *unit; list_reset( reinf[j][i] ); while ((unit = list_next( reinf[j][i] ))) if (unit->pin == pin) { if (scen_id) *scen_id = i; if (side_id) *side_id = j; return unit; } } } return 0; } /** writes the changes into the correct reinforcements file */ static void write_reinf(void) { /* get path for reinforcements */ reinfrc = output_file; if (!reinfrc && within_source_tree) { reinfrc = srcdir_path_from_bindir(in_place_reinfrc); /* FIXME: leaks a string */ } if (!save_reinf()) abortf("Saving changes to %s failed\n", reinfrc); } static void syntax(int argc, char **argv) { printf("LGeneral reinforcement editor and query tool.\n" "\n" "Syntax: %s [options] command [arguments]\n", "lged"); printf("\n" " is the command to execute. Command is one of:\n"); print_commands(); printf("\nCall %s --help for help on a specific command\n", "lged"); printf("\nOptions:\n" "-a, --add, --append\n" "\t\tSee --insert\n" "-b, --build\tRebuild the converter's reinforcements table.\n" "\t\tAlias for the command 'build'.\n" "-d, --delete\n" "\t\tSee --remove\n" "-f, --reinf-file=\n" "\t\tRead reinforcement tables from instead of the\n" "\t\tbuilt-in default.\n" " --dry-run\tPerform all operations, but don't write changes.\n" " --help\tThis help. Use in conjunction with command to show\n" "\t\ta command-specific help.\n" "-i, --insert\n" "\t\tInsert an entry into the reinforcements table.\n" "\t\tAlias for the command 'insert'.\n" "-l, --list\tList reinforcements for scenarios.\n" "\t\tAlias for the command 'list'.\n" "-m, --modify\tModify reinforcements. Alias for the command 'modify'.\n" "-o, --output=\n" "\t\tWrite changes to instead of the built-in default.\n" "\t\tThe meaning of the output file depends on the command.\n" "-r, --remove\tRemove reinforcements. Alias for the command 'remove'.\n" "-s, --scenarios\tPrint a list of all scenarios.\n" "\t\tAlias for the command 'list-scenarios'.\n" " --unitdb-file=\n" "\t\tRead unit database from instead of the built-in\n" "\t\tdefault.\n" "-u, --units\tQuery units from the units database.\n" "\t\tAlias for the command 'list-units'.\n" "-v, --verbose\tIncrease verbosity.\n" " --version\tDisplay version information and exit.\n" ); } static void insert_reinf_help(int argc, char **argv) { printf("Insert unit into reinforcements.\n" "\n" "Syntax: %s %s \n", "lged", commands[REINF_INSERT].name); print_alias_names(REINF_INSERT); printf("\n" "Parameters:\n" "\t\tid or name or pattern of scenario to manipulate\n" "\t\tid or pattern of unit to insert\n" "\t\tturn reinforcement becomes available. Zero-based.\n" "\t\tstrength of unit between 1 and 15 (default 10)\n" "\t\texperience level between 0 and 5 (default 0)\n" "\t\tid or keyword of nation unit belongs to. May also be a side\n" "\t\tkeyword (command list-sides). If omitted, a suitable default\n" "\t\twill be assumed.\n" "\tid or pattern of transport to insert (default none)\n" "\n" "Whenever a parameter consists of '-' or '*', a suitable default value\n" "will be assumed.\n" ); } static int insert_reinf(int argc, char **argv, int idx) { int i; int scen_id = -1; int unit_id = -1; int delay = -1; int str = 10; int exp = 0; int nation_id = -1; int side_id = -1; int transp_id = -1; UnitLib_Entry *entry, *trp_entry = 0; Unit *unit; /* evaluate cmdline */ for (i = idx; i < argc; i++) { if (is_omitted(argv[i])) continue; switch (i - idx) { case 0: /* */ /* check for scenario (exact match) */ scen_id = to_scenario(argv[i]); if (scen_id != -1) break; /* check for scenario id */ { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { scen_id = n; break; } } /* check for scenario (fuzzy search) */ { const char *pattern = argv[i] + (argv[i][0] == '+'); scen_id = find_in_array(pattern, 0, scenarios, SCEN_COUNT); if (scen_id != -1) break; } abortf("Invalid pattern: %s\n", argv[i]); case 1: /* */ /* check for unit id */ { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { unit_id = n; break; } } entry = find_unit_by_pattern(argv[i] + (argv[i][0] == '+')); if (entry) { unit_id = entry->nid; break; } abortf("Invalid pattern: %s\n", argv[i]); case 2: /* */ { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { delay = n; break; } } abortf("Numeric value expected for : %s\n", argv[i]); case 3: /* */ { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { str = n; break; } } abortf("Numeric value expected for : %s\n", argv[i]); case 4: /* */ { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { exp = n; break; } } abortf("Numeric value expected for : %s\n", argv[i]); case 5: /* */ /* check for nation */ nation_id = to_nation(argv[i]); if (nation_id != -1) break; /* check for side */ side_id = to_side(argv[i]); if (side_id != -1) break; abortf("Illegal keyword for : %s\n", argv[i]); case 6: /* */ /* check for special value 'none' */ if (strcasecmp(argv[i], "none") == 0) break; /* check for transport id */ { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { transp_id = n; break; } } trp_entry = find_unit_by_pattern(argv[i] + (argv[i][0] == '+')); if (trp_entry) { transp_id = trp_entry->nid; break; } abortf("Invalid pattern: %s\n", argv[i]); default: abortf("Excess argument: %s\n", argv[i]); } } /* post-process parameters */ if (scen_id == -1) abortf(" must be specified\n"); if (unit_id == -1) abortf(" must be specified\n"); if (delay < 0) abortf("Illegal value for : %d\n", delay); if (str < 0 || str > 15) abortf(" is out of range\n"); if (exp < 0 || exp > 5) abortf(" is out of range\n"); // if (!load_reinf()) // abortf("Could not load reinforcements from %s\n", reinfrc); entry = find_unit_by_id(unit_id); if (!entry) abortf("Illegal unit id: %d\n", unit_id); /* determine nation */ if (nation_id == -1) nation_id = entry->nation; /* determine side */ if (side_id == -1) side_id = nation_to_side(nation_id); /* transport */ if (transp_id != -1) { trp_entry = find_unit_by_id(transp_id); if (!trp_entry) abortf("Illegal transport id: %d\n", transp_id); } /* now that we have unmarshalled all the params, * create and fill the unit structure */ unit = calloc(1, sizeof *unit); /*unit->pin = ;*/ unit->uid = unit_id; snprintf(unit->id, sizeof unit->id, "%d", unit_id); unit->tid = transp_id; if (transp_id == -1) strcpy(unit->trp, "none"); else snprintf(unit->trp, sizeof unit->trp, "%d", transp_id); /*unit->info[128];*/ unit->delay = delay; unit->str = str; unit->exp = exp; unit->nation = nation_id; unit->entry = entry; unit->trp_entry = trp_entry; insert_reinf_unit( unit, side_id, scen_id ); /* print scenario reinforcements for checking */ if (verbosity >= 1) print_scen_reinf(scen_id, !dry_run); if (!dry_run) write_reinf(); return 0; } static void modify_reinf_help(int argc, char **argv) { printf("Modify reinforcement unit.\n" "\n" "Syntax: %s %s \n", "lged", commands[REINF_MODIFY].name); print_alias_names(REINF_MODIFY); printf("\n" "Parameters:\n" "\t\tposition of unit over reinforcement tables to manipulate\n" "\t\tid or pattern of unit to change\n" "\t\tturn reinforcement becomes available. Zero-based.\n" "\t\tstrength of unit between 1 and 15\n" "\t\texperience level between 0 and 5\n" "\t\tid or keyword of nation unit belongs to. May also be a side\n" "\t\tkeyword (command list-sides).\n" "\tid or pattern of transport or 'none' to remove transport\n" "\n" "Whenever a parameter consists of '-' or '*', the value remains unchanged.\n" ); } static int modify_reinf(int argc, char **argv, int idx) { int i; int orig_scen_id = -1; int orig_side_id = -1; int scen_id = -1; int pin = -1; int unit_id = -1; int delay = -1; int str = -1; int exp = -1; int nation_id = -1; int side_id = -1; int transp_id = -1; int remove_transp = 0; UnitLib_Entry *entry = 0, *trp_entry = 0; Unit *unit; /* evaluate cmdline */ for (i = idx; i < argc; i++) { if (is_omitted(argv[i])) continue; switch (i - idx) { case 0: /* */ { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { pin = n; break; } } abortf(" is not numeric: %s\n", argv[i]); case 1: /* */ /* check for unit id */ { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { unit_id = n; break; } } entry = find_unit_by_pattern(argv[i] + (argv[i][0] == '+')); if (entry) { unit_id = entry->nid; break; } abortf("Invalid pattern: %s\n", argv[i]); case 2: /* */ { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { delay = n; break; } } abortf("Numeric value expected for : %s\n", argv[i]); case 3: /* */ { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { str = n; break; } } abortf("Numeric value expected for : %s\n", argv[i]); case 4: /* */ { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { exp = n; break; } } abortf("Numeric value expected for : %s\n", argv[i]); case 5: /* */ /* check for nation */ nation_id = to_nation(argv[i]); if (nation_id != -1) break; /* check for side */ side_id = to_side(argv[i]); if (side_id != -1) break; abortf("Illegal keyword for : %s\n", argv[i]); case 6: /* */ /* check for special value 'none' */ if (strcasecmp(argv[i], "none") == 0) { remove_transp = 1; break; } /* check for transport id */ { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { transp_id = n; break; } } trp_entry = find_unit_by_pattern(argv[i] + (argv[i][0] == '+')); if (trp_entry) { transp_id = trp_entry->nid; break; } abortf("Invalid pattern: %s\n", argv[i]); default: abortf("Excess argument: %s\n", argv[i]); } } /* post-process parameters */ if (pin == -1) abortf(" must be specified\n"); if (delay != -1 && delay < 0) abortf("Illegal value for : %d\n", delay); if (str != -1 && (str < 0 || str > 15)) abortf(" is out of range\n"); if (exp != -1 && (exp < 0 || exp > 5)) abortf(" is out of range\n"); unit = find_reinf_by_pin(pin, &orig_side_id, &orig_scen_id); if (!unit) abortf("No such reinforcement with %d\n", pin); if (unit_id != -1) { entry = find_unit_by_id(unit_id); if (!entry) abortf("Illegal unit id: %d\n", unit_id); } /* transport */ if (transp_id != -1) { trp_entry = find_unit_by_id(transp_id); if (!trp_entry) abortf("Illegal transport id: %d\n", transp_id); } /* now that we have unmarshalled all the params, * modify the unit structure */ if (unit_id != -1) { unit->uid = unit_id; unit->entry = entry; snprintf(unit->id, sizeof unit->id, "%d", unit_id); } if (transp_id != -1) { unit->tid = transp_id; unit->trp_entry = trp_entry; snprintf(unit->trp, sizeof unit->trp, "%d", transp_id); } else if (remove_transp) { unit->tid = -1; unit->trp_entry = 0; strcpy(unit->trp, "none"); } if (delay != -1) unit->delay = delay; if (str != -1) unit->str = str; if (exp != -1) unit->exp = exp; if (nation_id != -1) unit->nation = nation_id; /* determine side from nation if nation is given */ if (nation_id != -1 && side_id == -1) side_id = nation_to_side(nation_id); if (scen_id == -1) scen_id = orig_scen_id; /* we have to remove and insert it if either nation or side changes */ if (nation_id != -1 || side_id != -1) { Unit *new_unit = malloc(sizeof *unit); *new_unit = *unit; new_unit->pin = 0; /* mark as new */ list_delete_item(reinf[orig_side_id][orig_scen_id], unit); assert(side_id != -1); insert_reinf_unit(new_unit, side_id, scen_id); } /* print scenario reinforcements for checking */ if (verbosity >= 1) print_scen_reinf(scen_id, !dry_run); if (!dry_run) write_reinf(); return 0; } static void remove_reinf_help(int argc, char **argv) { printf("Remove reinforcement units.\n" "\n" "Syntax: %s %s [] ...\n", "lged", commands[REINF_REMOVE].name); print_alias_names(REINF_REMOVE); printf("\n" "Parameters:\n" "\t\tposition of unit over reinforcement tables to remove\n" ); } static int remove_reinf(int argc, char **argv, int idx) { int i; int scen_id = -1; int side_id = -1; Unit *unit; int pins[argc - idx]; /* evaluate cmdline */ for (i = idx; i < argc; i++) { if (is_omitted(argv[i])) continue; { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { pins[i - idx] = n; continue; } } abortf(" is not numeric: %s\n", argv[i]); } /* iterate all pins and remove them */ for (i = 0; i < argc - idx; i++) { unit = find_reinf_by_pin(pins[i], &side_id, &scen_id); if (!unit) { printf("Invalid %d.\n", pins[i]); continue; } list_delete_item(reinf[side_id][scen_id], unit); } /* print scenario reinforcements for checking */ if (verbosity >= 1) print_scen_reinf(scen_id, !dry_run); if (!dry_run) write_reinf(); return 0; } static void rebuild_reinf_help(int argc, char **argv) { printf("Build reinforcement list for game converter lgc-pg.\n" "\n" "Syntax: %s %s\n", "lged", commands[command_index].name); print_alias_names(command_index); } static int rebuild_reinf(int argc, char **argv, int idx) { if (idx < argc) abortf("Excess parameters to command\n"); /* get path for reinforcements */ reinf_output = output_file; if (!reinf_output) { reinf_output = within_source_tree ? srcdir_path_from_bindir(in_place_reinf_output) : concat(get_gamedir(), installed_reinf_output); /* FIXME: leaks a string */ } if (!dry_run) build_reinf(); return 0; } static void list_reinf_help(int argc, char **argv) { printf("List reinforcements.\n" "\n" "Syntax: %s %s [criteria]\n", "lged", commands[REINF_LIST].name); print_alias_names(REINF_LIST); printf("\n" "Criteria:\n" "\t consists of tokens narrowing the search:\n" "\t[ scenario | side | [+]pattern ] ...\n" "\n" "The command will list all reinforcements matching AND .\n" "Omitting any group will include all items of this group.\n" " is either the numerical id or the name of the scenario\n" " is the player's side\n" " is a case insensitive pattern matching any part of the scenario's\n" "name.\n" "Specifying more than one token of the same group will return all\n" "reinforcements matching both tokens.\n" ); } static int list_reinf(int argc, char **argv, int idx) { int i; int scen_id = -1; char scen_bitmap[SCEN_COUNT]; int side_id = -1; char side_bitmap[num_sides/2]; /* initialise bitmaps */ memset(scen_bitmap, 0, SCEN_COUNT); memset(side_bitmap, 0, num_sides/2); /* evaluate cmdline */ for (i = idx; i < argc; i++) { int id; if (is_omitted(argv[i])) continue; /* check for scenario (exact match) */ id = to_scenario(argv[i]); if (id != -1) { scen_id = id; scen_bitmap[id] = 1; continue; } /* check for unit side */ id = to_side(argv[i]); if (id != -1) { side_id = id; side_bitmap[id] = 1; continue; } /* check for scenario id */ { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { scen_id = n; scen_bitmap[n] = 1; continue; } } /* check for scenario (fuzzy search) */ { const char *pattern = argv[i] + (argv[i][0] == '+'); id = 0; for (;;) { id = find_in_array(pattern, id, scenarios, SCEN_COUNT); if (id == -1) break; scen_bitmap[id] = 1; scen_id = id++; } if (scen_id != -1) continue; } abortf("Invalid pattern: %s\n", argv[i]); } // if (!load_reinf()) // abortf("Could not load reinforcements from %s\n", reinfrc); return do_list_reinf(scen_id, scen_bitmap, side_id, side_bitmap); } static int do_list_reinf(int scen_id, char *scen_bitmap, int side_id, char *side_bitmap) { int i, j; /* print reinforcements, applying filters as necessary */ for (j = 0; j < SCEN_COUNT; j++) { if (scen_id != -1 && !in_bitmap(j, scen_bitmap, SCEN_COUNT)) continue; printf("# Reinforcements for %s:\n", scenarios[j]); for (i = 0; i < num_sides/2; i++) { Unit *unit; if (side_id != -1 && !in_bitmap(i, side_bitmap, num_sides/2)) continue; list_reset(reinf[i][j]); while ((unit = list_next(reinf[i][j]))) { const char *nat = "---"; if (unit->nation >= 0 && unit->nation < num_nation_table/2) nat = nation_table[unit->nation*2]; if (unit->pin) printf("%3d", unit->pin); else printf("new"); printf(" %4d %-20s %-3s T%02d (%d, %d exp)", unit->uid, unit->entry ? unit->entry->name : "", nat, unit->delay + 1, unit->str, unit->exp ); if (unit->tid != -1) printf(" [%d %s]", unit->tid, unit->trp_entry ? unit->trp_entry->name : ""); printf("\n"); } } } return 0; } static void list_unitdb_help(int argc, char **argv) { printf("List units from the unit database.\n" "\n" "Syntax: %s %s [criteria]\n", "lged", commands[LIST_UNITDB].name); print_alias_names(LIST_UNITDB); printf("\n" "Criteria:\n" "\t consists of tokens narrowing the search:\n" "\t[ target-type | class | nation | side | unit-id | [+]pattern ] ...\n" "\n" "The command will list all units matching AND AND\n" " AND AND ( OR ).\n" "Omitting any group will include all items of this group.\n" " is a numerical id for a specific unit as printed by this command.\n" " is a case insensitive pattern matching any part of the unit's\n" "name.\n" "Specifying more than one token of the same group will return all units\n" "matching both tokens.\n" "\n" "See list- for valid tokens.\n" "\n" "Examples:\n" "\tlged unit 12\n" "Returns one unit with id 12.\n" "\tlged unit so\n" "Returns all units belonging to the Soviet Union.\n" "\tlged unit eng usa\n" "Returns all units either belonging to Great Britain or the USA.\n" "\tlged unit pz\n" "Returns all units containing \"pz\" anywhere in their names.\n" "\tlged unit inf 34\n" "Returns all units containing \"inf\" as well as unit with id 34\n" "\tlged unit +eng\n" "Returns all units containing \"eng\" anywhere in their names.\n" "The '+' is needed here to discriminate the pattern against the keyword\n" "'eng', which stands for Great Britain.\n" ); } static int list_unitdb(int argc, char **argv, int idx) { List *unit_mask_list = list_create(LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK); int i; int unit_id = -1; char unit_bitmap[num_units]; int class_id = -1; char class_bitmap[num_unit_classes/2]; int tgttype_id = -1; char tgttype_bitmap[num_target_types/2]; int nation_id = -1; char nation_bitmap[num_nation_table/2]; int side_id = -1; char side_bitmap[num_sides/2]; UnitLib_Entry *entry; /* initialise bitmaps */ memset(unit_bitmap, 0, num_units); memset(class_bitmap, 0, num_unit_classes/2); memset(tgttype_bitmap, 0, num_target_types/2); memset(nation_bitmap, 0, num_nation_table/2); memset(side_bitmap, 0, num_sides/2); /* evaluate cmdline */ for (i = idx; i < argc; i++) { int id; if (is_omitted(argv[i])) continue; /* check for target type */ id = to_target_type(argv[i]); if (id != -1) { tgttype_id = id; tgttype_bitmap[id] = 1; continue; } /* check for unit class */ id = to_unit_class(argv[i]); if (id != -1) { class_id = id; class_bitmap[id] = 1; continue; } /* check for nation */ id = to_nation(argv[i]); if (id != -1) { nation_id = id; nation_bitmap[id] = 1; continue; } /* check for unit side */ id = to_side(argv[i]); if (id != -1) { side_id = id; side_bitmap[id] = 1; continue; } /* check for unit id */ { char *endptr; long int n = strtol(argv[i], &endptr, 0); /* only take it if it is a valid number */ if (*endptr == '\0') { unit_id = n; unit_bitmap[n] = 1; continue; } } /* otherwise, interpret as part of the unit name */ /* remove leading plus if any */ list_add(unit_mask_list, argv[i] + (argv[i][0] == '+')); } /* print list, applying filters as necessary */ iterate_units_begin(); while ((entry = iterate_units_next())) { const char *nat = "---"; if (tgttype_id != -1 && !in_bitmap(entry->tgttype, tgttype_bitmap, num_target_types/2)) continue; if (class_id != -1 && !in_bitmap(entry->class, class_bitmap, num_unit_classes/2)) continue; if (nation_id != -1 && !in_bitmap(entry->nation, nation_bitmap, num_nation_table/2)) continue; if (side_id != -1 && !in_bitmap(entry->side, side_bitmap, num_sides/2)) continue; if (in_bitmap(entry->nid, unit_bitmap, num_units)); else if (unit_mask_list->count) { const char *mask; list_reset(unit_mask_list); while ((mask = list_next(unit_mask_list))) { if (strcasestr(entry->name, mask)) break; } if (!mask) continue; } else if (unit_id != -1) continue; if (entry->nation >= 0 && entry->nation < num_nation_table/2) nat = nation_table[entry->nation*2]; printf("%4d %-20s %-8s %-5s %-3s %04d-%02d to %04d\n", entry->nid, entry->name, unit_classes[entry->class*2], target_types[entry->tgttype*2], nat, entry->start_year, entry->start_month, entry->last_year); } list_delete(unit_mask_list); return 0; } static void list_scenarios_help(int argc, char **argv) { printf("List scenarios.\n" "\n" "Syntax: %s %s\n", "lged", commands[command_index].name); print_alias_names(command_index); } static int list_scenarios(int argc, char **argv, int idx) { int i; if (idx < argc) abortf("Excess parameters to command\n"); for (i = 0; i < SCEN_COUNT; i++) { printf("%3d %s\n", i, scenarios[i]); } return 0; } static void list_nations_help(int argc, char **argv) { printf("List nations.\n" "\n" "Syntax: %s %s\n", "lged", commands[command_index].name); print_alias_names(command_index); } static int list_nations(int argc, char **argv, int idx) { int i; if (idx < argc) abortf("Excess parameters to command\n"); for (i = 0; i < num_nation_table; i += 2) { printf("%-8s %s\n", nation_table[i], nation_table[i+1]); } return 0; } static void list_sides_help(int argc, char **argv) { printf("List sides.\n" "\n" "Syntax: %s %s\n", "lged", commands[command_index].name); print_alias_names(command_index); } static int list_sides(int argc, char **argv, int idx) { int i; if (idx < argc) abortf("Excess parameters to command\n"); for (i = 0; i < num_sides; i += 2) { printf("%-8s %s\n", sides[i], sides[i+1]); } return 0; } static void list_classes_help(int argc, char **argv) { printf("List unit classes.\n" "\n" "Syntax: %s %s\n", "lged", commands[command_index].name); print_alias_names(command_index); } static int list_classes(int argc, char **argv, int idx) { int i; if (idx < argc) abortf("Excess parameters to command\n"); for (i = 0; i < num_unit_classes; i += 2) { printf("%-10s %s\n", unit_classes[i], unit_classes[i+1]); } return 0; } static void list_target_types_help(int argc, char **argv) { printf("List target types.\n" "\n" "Syntax: %s %s\n", "lged", commands[command_index].name); print_alias_names(command_index); } static int list_target_types(int argc, char **argv, int idx) { int i; if (idx < argc) abortf("Excess parameters to command\n"); for (i = 0; i < num_target_types; i += 2) { printf("%-8s %s\n", target_types[i], target_types[i+1]); } return 0; } int main(int argc, char **argv) { process_cmdline(argc, argv); init_tool(argc, argv); init(); /* get total count of units in unit database */ num_units = unit_count(); return commands[command_index].run(argc, argv, optind); } /* kate: tab-indents on; space-indent on; replace-tabs off; indent-width 2; dynamic-word-wrap off; inden(t)-mode cstyle */ lgeneral-1.3.1/mkinstalldirs0000775000175000017500000000132612140770461013042 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.4 2005/09/28 13:55:09 leo Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" 1>&2 mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here lgeneral-1.3.1/README.lgc-pg0000664000175000017500000001353112140770461012265 00000000000000 =================================================== LGeneral Converter for Panzer General (DOS Version) =================================================== Quickstart ---------- If you have installed LGeneral by 'make install', mount your Panzer General CD (e.g., to /mnt/cdrom) and run the following command as root user: lgc-pg -s /mnt/cdrom/DAT If you do not have the CD you can download the abandonware pg-data package from http://lgames.sf.net, extract it (e.g., to /tmp/pg-data) and run the following command as root user: lgc-pg -s /tmp/pg-data If you compiled the source with option --disable-install to play from source directory (e.g., necessary to use the reinforcements editor---see README.redit for more) you will have to explicitly specify the destination directory. E.g., if you extracted the source to ~/sources/lgeneral-X.X.X (with X.X.X being the version number) then you have to run the following commands: cd ~/sources/lgeneral-X.X.X/lgc-pg ./lgc-pg -s /mnt/cdrom/DAT -d ../src Thus, the src-directory of the package is the destination for converted data in case installation is disabled. This will convert the original Panzer General data. The converter can also convert single custom scenarios. How, is explained below. Usage ----- lgc-pg -s -d [--defpal] [-n [-i ] [-t ]] [--applyunitmods] -s You always need to specify the source directory which contains the original data or a custom scenario. -d By default the data is converted to the installation path. With this option another path which must contain the LGeneral data structure may be used as destination. If installation has been disabled it must be specified. --defpal This is optional and forces all PG images to use the default palette. Usually you won't need this but if a custom scenario provides some strange graphics it might be due to a corrupted palette. Using the default one for conversion might fix this. -i If set it signals that a single scenario should be converted instead of full campaign. This is the XXX in the source gameXXX.scn. -n This is the scenario's file name and default title. This option can also be used when converting a campaign to change the default name (pg). -t If custom tactical icons are involved (scenario offers a TACICONS.SHP) this is the name of the target image file. If this option is not provided it defaults to .bmp. --applyunitmods Certain unit modifications are hardcoded to lgc-pg. Usually these are only applied for the original PG campaign. But if a single scenario uses a modified PG unit database these changes should be applied as well which is done with this option. Examples -------- 1) Converts all data from CD-ROM: lgc-pg -s /mnt/cdrom/DAT -d /usr/local/share/games/lgeneral 2) Converts a custom scenario: lgc-pg -s /home/michael/newstuff/dunk -d /usr/local/share/games/lgeneral -n Dunkirk -i 44 Limitations for single scenarios and custom campaigns ----------------------------------------------------- Certain things cannot be converted from original data by lgc-pg and are thus hardcoded for the original PG campaign. Therefore if a single scenario or a custom campaign is converted, these things have to be adjusted *manually* after conversion. Hardcoded and necessarily the same for everything converted by lgc-pg are: - weather types (e.g., fair) - terrain types (e.g., clear) - target types (e.g., soft) - movement types (e.g., tracked) - unit classes (e.g., infantry) - nations (e.g., Germany) Of course, names and to some extend attributes can be changed directly in the output files after conversion (e.g., renaming a nation). lgc-pg converts the following with some limitations: - nation flags - unit database - unit icons - terrain icons - maps - scenario names and descriptions - scenarios The following limitations apply: - a single scenario (not converted as part of a campaign) will lack title, description and author - .order file with all scenario file names in chronological order (used for sorted list in LGeneral) is only generated for PG campaign - campaign tree file is hardcoded for PG only - victory conditions are hardcoded for PG only; for custom scenarios the default is that attacker has to capture all major objectives for victory - prestige per turn is hardcoded for PG and guessed for custom scenarios - weather is hardcoded for PG and randomly generated (but then fixed) for custom scenarios - nation of a unit database entry is determined by name for PG only; in custom scenarios it defaults to none which means it is not possible to buy any units unless one manually sets nations after conversion - special corrections like certain unit flags (e.g., bridgeeng), spelling corrections, attribute balancing and mirroring of tactical icons are only applied for PG If a single scenario uses its own unit database and it is more or less the same as the original database the last two items of the above list can be forced by option --applyunitmods. However, this may lead to corruptions, e.g., when a unit was totally changed and certain flags no longer apply to it. Nevertheless, in general it is a good guess to run this option. A single scenario file directly includes the map and modified units (but not their icons). Troubleshooting --------------- 1) Lars Ekman discovered that you'll have to mount the cdrom with option 'check=r'. So if your distro uses another option as default and 'lgc-pg' doesn't work just try: mount -o check=r /mnt/cdrom 2) NOTE: I found various notes in the Internet that this format explicitly requires Panzer General *DOS* version so I guess the Win32 version won't work. Enjoy! Michael Speck lgeneral-1.3.1/aclocal.m40000664000175000017500000060051112643745054012105 00000000000000# generated automatically by aclocal 1.14.1 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # codeset.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2000-2002, 2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], [am_cv_langinfo_codeset], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[char* cs = nl_langinfo(CODESET); return !cs;]])], [am_cv_langinfo_codeset=yes], [am_cv_langinfo_codeset=no]) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE([HAVE_LANGINFO_CODESET], [1], [Define if you have and nl_langinfo(CODESET).]) fi ]) # fcntl-o.m4 serial 4 dnl Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. # Test whether the flags O_NOATIME and O_NOFOLLOW actually work. # Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise. # Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise. AC_DEFUN([gl_FCNTL_O_FLAGS], [ dnl Persuade glibc to define O_NOATIME and O_NOFOLLOW. dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes dnl AC_GNU_SOURCE. m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], [AC_REQUIRE([AC_GNU_SOURCE])]) AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CHECK_FUNCS_ONCE([symlink]) AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include # include # defined sleep(n) _sleep ((n) * 1000) #endif #include #ifndef O_NOATIME #define O_NOATIME 0 #endif #ifndef O_NOFOLLOW #define O_NOFOLLOW 0 #endif static int const constants[] = { O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY }; ]], [[ int result = !constants; #if HAVE_SYMLINK { static char const sym[] = "conftest.sym"; if (symlink ("/dev/null", sym) != 0) result |= 2; else { int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); if (fd >= 0) { close (fd); result |= 4; } } if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else { int fd = open (sym, O_RDONLY | O_NOFOLLOW); if (fd >= 0) { close (fd); result |= 4; } } unlink (sym); } #endif { static char const file[] = "confdefs.h"; int fd = open (file, O_RDONLY | O_NOATIME); if (fd < 0) result |= 8; else { struct stat st0; if (fstat (fd, &st0) != 0) result |= 16; else { char c; sleep (1); if (read (fd, &c, 1) != 1) result |= 24; else { if (close (fd) != 0) result |= 32; else { struct stat st1; if (stat (file, &st1) != 0) result |= 40; else if (st0.st_atime != st1.st_atime) result |= 64; } } } } } return result;]])], [gl_cv_header_working_fcntl_h=yes], [case $? in #( 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac], [gl_cv_header_working_fcntl_h=cross-compiling])]) case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOATIME], [$ac_val], [Define to 1 if O_NOATIME works.]) case $gl_cv_header_working_fcntl_h in #( *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOFOLLOW], [$ac_val], [Define to 1 if O_NOFOLLOW works.]) ]) # gettext.m4 serial 66 (gettext-0.18.2) dnl Copyright (C) 1995-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2006, 2008-2010. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value '$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH([included-gettext], [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ]])], [eval "$gt_func_gnugettext_libc=yes"], [eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ]])], [eval "$gt_func_gnugettext_libintl=yes"], [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ]])], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE([ENABLE_NLS], [1], [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE([HAVE_GETTEXT], [1], [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE([HAVE_DCGETTEXT], [1], [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST([BUILD_INCLUDED_LIBINTL]) AC_SUBST([USE_INCLUDED_LIBINTL]) AC_SUBST([CATOBJEXT]) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST([DATADIRNAME]) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST([INSTOBJEXT]) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST([GENCAT]) dnl For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST([INTLOBJS]) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST([INTLLIBS]) dnl Make all documented variables known to autoconf. AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) AC_SUBST([POSUB]) ]) dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) # glibc2.m4 serial 3 dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Test for the GNU C Library, version 2.0 or newer. # From Bruno Haible. AC_DEFUN([gt_GLIBC2], [ AC_CACHE_CHECK([whether we are using the GNU C Library 2 or newer], [ac_cv_gnu_library_2], [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif ], [ac_cv_gnu_library_2=yes], [ac_cv_gnu_library_2=no]) ] ) AC_SUBST([GLIBC2]) GLIBC2="$ac_cv_gnu_library_2" ] ) # glibc21.m4 serial 5 dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Test for the GNU C Library, version 2.1 or newer, or uClibc. # From Bruno Haible. AC_DEFUN([gl_GLIBC21], [ AC_CACHE_CHECK([whether we are using the GNU C Library >= 2.1 or uClibc], [ac_cv_gnu_library_2_1], [AC_EGREP_CPP([Lucky], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif #ifdef __UCLIBC__ Lucky user #endif ], [ac_cv_gnu_library_2_1=yes], [ac_cv_gnu_library_2_1=no]) ] ) AC_SUBST([GLIBC21]) GLIBC21="$ac_cv_gnu_library_2_1" ] ) # iconv.m4 serial 18 (gettext-0.18.2) dnl Copyright (C) 2000-2002, 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_func_iconv=yes]) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_lib_iconv=yes] [am_cv_func_iconv=yes]) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, dnl Solaris 10. am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include int main () { int result = 0; /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static const char input[] = "\263"; char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; const char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) result |= 16; return result; }]])], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no], [ changequote(,)dnl case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac changequote([,])dnl ]) LIBS="$am_save_LIBS" ]) case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then AC_DEFINE([HAVE_ICONV], [1], [Define if you have the iconv() function and it works.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST([LIBICONV]) AC_SUBST([LTLIBICONV]) ]) dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to dnl avoid warnings like dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". dnl This is tricky because of the way 'aclocal' is implemented: dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. dnl Otherwise aclocal's initial scan pass would miss the macro definition. dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. dnl Otherwise aclocal would emit many "Use of uninitialized value $1" dnl warnings. m4_define([gl_iconv_AC_DEFUN], m4_version_prereq([2.64], [[AC_DEFUN_ONCE( [$1], [$2])]], [m4_ifdef([gl_00GNULIB], [[AC_DEFUN_ONCE( [$1], [$2])]], [[AC_DEFUN( [$1], [$2])]])])) gl_iconv_AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL([am_cv_proto_iconv], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ]], [[]])], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"]) am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([ $am_cv_proto_iconv]) AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], [Define as const if the declaration of iconv() needs const.]) dnl Also substitute ICONV_CONST in the gnulib generated . m4_ifdef([gl_ICONV_H_DEFAULTS], [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) if test -n "$am_cv_proto_iconv_arg1"; then ICONV_CONST="const" fi ]) fi ]) # intdiv0.m4 serial 6 (gettext-0.18.2) dnl Copyright (C) 2002, 2007-2008, 2010-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([gt_INTDIV0], [ AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_CACHE_CHECK([whether integer division by zero raises SIGFPE], gt_cv_int_divbyzero_sigfpe, [ gt_cv_int_divbyzero_sigfpe= changequote(,)dnl case "$host_os" in macos* | darwin[6-9]* | darwin[1-9][0-9]*) # On Mac OS X 10.2 or newer, just assume the same as when cross- # compiling. If we were to perform the real test, 1 Crash Report # dialog window would pop up. case "$host_cpu" in i[34567]86 | x86_64) gt_cv_int_divbyzero_sigfpe="guessing yes" ;; esac ;; esac changequote([,])dnl if test -z "$gt_cv_int_divbyzero_sigfpe"; then AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include static void sigfpe_handler (int sig) { /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ exit (sig != SIGFPE); } int x = 1; int y = 0; int z; int nan; int main () { signal (SIGFPE, sigfpe_handler); /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) signal (SIGTRAP, sigfpe_handler); #endif /* Linux/SPARC yields signal SIGILL. */ #if defined (__sparc__) && defined (__linux__) signal (SIGILL, sigfpe_handler); #endif z = x / y; nan = y / y; exit (2); } ]])], [gt_cv_int_divbyzero_sigfpe=yes], [gt_cv_int_divbyzero_sigfpe=no], [ # Guess based on the CPU. changequote(,)dnl case "$host_cpu" in alpha* | i[34567]86 | x86_64 | m68k | s390*) gt_cv_int_divbyzero_sigfpe="guessing yes";; *) gt_cv_int_divbyzero_sigfpe="guessing no";; esac changequote([,])dnl ]) fi ]) case "$gt_cv_int_divbyzero_sigfpe" in *yes) value=1;; *) value=0;; esac AC_DEFINE_UNQUOTED([INTDIV0_RAISES_SIGFPE], [$value], [Define if integer division by zero raises signal SIGFPE.]) ]) # intl.m4 serial 24 (gettext-0.18.3) dnl Copyright (C) 1995-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2009. AC_PREREQ([2.60]) dnl Checks for all prerequisites of the intl subdirectory, dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. AC_DEFUN([AM_INTL_SUBDIR], [ AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([gt_GLIBC2])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([gl_VISIBILITY])dnl AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl AC_REQUIRE([gt_TYPE_WCHAR_T])dnl AC_REQUIRE([gt_TYPE_WINT_T])dnl AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gt_TYPE_INTMAX_T]) AC_REQUIRE([gt_PRINTF_POSIX]) AC_REQUIRE([gl_GLIBC21])dnl AC_REQUIRE([gl_XSIZE])dnl AC_REQUIRE([gl_FCNTL_O_FLAGS])dnl AC_REQUIRE([gt_INTL_MACOSX])dnl dnl Support for automake's --enable-silent-rules. case "$enable_silent_rules" in yes) INTL_DEFAULT_VERBOSITY=0;; no) INTL_DEFAULT_VERBOSITY=1;; *) INTL_DEFAULT_VERBOSITY=1;; esac AC_SUBST([INTL_DEFAULT_VERBOSITY]) AC_CHECK_TYPE([ptrdiff_t], , [AC_DEFINE([ptrdiff_t], [long], [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) ]) AC_CHECK_HEADERS([features.h stddef.h stdlib.h string.h]) AC_CHECK_FUNCS([asprintf fwprintf newlocale putenv setenv setlocale \ snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb]) dnl Use the _snprintf function only if it is declared (because on NetBSD it dnl is defined as a weak alias of snprintf; we prefer to use the latter). AC_CHECK_DECLS([_snprintf, _snwprintf], , , [#include ]) dnl Use the *_unlocked functions only if they are declared. dnl (because some of them were defined without being declared in Solaris dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built dnl on Solaris 2.5.1 to run on Solaris 2.6). AC_CHECK_DECLS([getc_unlocked], , , [#include ]) case $gt_cv_func_printf_posix in *yes) HAVE_POSIX_PRINTF=1 ;; *) HAVE_POSIX_PRINTF=0 ;; esac AC_SUBST([HAVE_POSIX_PRINTF]) if test "$ac_cv_func_asprintf" = yes; then HAVE_ASPRINTF=1 else HAVE_ASPRINTF=0 fi AC_SUBST([HAVE_ASPRINTF]) if test "$ac_cv_func_snprintf" = yes; then HAVE_SNPRINTF=1 else HAVE_SNPRINTF=0 fi AC_SUBST([HAVE_SNPRINTF]) if test "$ac_cv_func_newlocale" = yes; then HAVE_NEWLOCALE=1 else HAVE_NEWLOCALE=0 fi AC_SUBST([HAVE_NEWLOCALE]) if test "$ac_cv_func_wprintf" = yes; then HAVE_WPRINTF=1 else HAVE_WPRINTF=0 fi AC_SUBST([HAVE_WPRINTF]) AM_LANGINFO_CODESET gt_LC_MESSAGES dnl Compilation on mingw and Cygwin needs special Makefile rules, because dnl 1. when we install a shared library, we must arrange to export dnl auxiliary pointer variables for every exported variable, dnl 2. when we install a shared library and a static library simultaneously, dnl the include file specifies __declspec(dllimport) and therefore we dnl must arrange to define the auxiliary pointer variables for the dnl exported variables _also_ in the static library. if test "$enable_shared" = yes; then case "$host_os" in mingw* | cygwin*) is_woe32dll=yes ;; *) is_woe32dll=no ;; esac else is_woe32dll=no fi WOE32DLL=$is_woe32dll AC_SUBST([WOE32DLL]) dnl On mingw and Cygwin, we can activate special Makefile rules which add dnl version information to the shared libraries and executables. case "$host_os" in mingw* | cygwin*) is_woe32=yes ;; *) is_woe32=no ;; esac WOE32=$is_woe32 AC_SUBST([WOE32]) if test $WOE32 = yes; then dnl Check for a program that compiles Windows resource files. AC_CHECK_TOOL([WINDRES], [windres]) fi dnl Determine whether when creating a library, "-lc" should be passed to dnl libtool or not. On many platforms, it is required for the libtool option dnl -no-undefined to work. On HP-UX, however, the -lc - stored by libtool dnl in the *.la files - makes it impossible to create multithreaded programs, dnl because libtool also reorders the -lc to come before the -pthread, and dnl this disables pthread_create() . case "$host_os" in hpux*) LTLIBC="" ;; *) LTLIBC="-lc" ;; esac AC_SUBST([LTLIBC]) dnl Rename some macros and functions used for locking. AH_BOTTOM([ #define __libc_lock_t gl_lock_t #define __libc_lock_define gl_lock_define #define __libc_lock_define_initialized gl_lock_define_initialized #define __libc_lock_init gl_lock_init #define __libc_lock_lock gl_lock_lock #define __libc_lock_unlock gl_lock_unlock #define __libc_lock_recursive_t gl_recursive_lock_t #define __libc_lock_define_recursive gl_recursive_lock_define #define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized #define __libc_lock_init_recursive gl_recursive_lock_init #define __libc_lock_lock_recursive gl_recursive_lock_lock #define __libc_lock_unlock_recursive gl_recursive_lock_unlock #define glthread_in_use libintl_thread_in_use #define glthread_lock_init_func libintl_lock_init_func #define glthread_lock_lock_func libintl_lock_lock_func #define glthread_lock_unlock_func libintl_lock_unlock_func #define glthread_lock_destroy_func libintl_lock_destroy_func #define glthread_rwlock_init_multithreaded libintl_rwlock_init_multithreaded #define glthread_rwlock_init_func libintl_rwlock_init_func #define glthread_rwlock_rdlock_multithreaded libintl_rwlock_rdlock_multithreaded #define glthread_rwlock_rdlock_func libintl_rwlock_rdlock_func #define glthread_rwlock_wrlock_multithreaded libintl_rwlock_wrlock_multithreaded #define glthread_rwlock_wrlock_func libintl_rwlock_wrlock_func #define glthread_rwlock_unlock_multithreaded libintl_rwlock_unlock_multithreaded #define glthread_rwlock_unlock_func libintl_rwlock_unlock_func #define glthread_rwlock_destroy_multithreaded libintl_rwlock_destroy_multithreaded #define glthread_rwlock_destroy_func libintl_rwlock_destroy_func #define glthread_recursive_lock_init_multithreaded libintl_recursive_lock_init_multithreaded #define glthread_recursive_lock_init_func libintl_recursive_lock_init_func #define glthread_recursive_lock_lock_multithreaded libintl_recursive_lock_lock_multithreaded #define glthread_recursive_lock_lock_func libintl_recursive_lock_lock_func #define glthread_recursive_lock_unlock_multithreaded libintl_recursive_lock_unlock_multithreaded #define glthread_recursive_lock_unlock_func libintl_recursive_lock_unlock_func #define glthread_recursive_lock_destroy_multithreaded libintl_recursive_lock_destroy_multithreaded #define glthread_recursive_lock_destroy_func libintl_recursive_lock_destroy_func #define glthread_once_func libintl_once_func #define glthread_once_singlethreaded libintl_once_singlethreaded #define glthread_once_multithreaded libintl_once_multithreaded ]) ]) dnl Checks for the core files of the intl subdirectory: dnl dcigettext.c dnl eval-plural.h dnl explodename.c dnl finddomain.c dnl gettextP.h dnl gmo.h dnl hash-string.h hash-string.c dnl l10nflist.c dnl libgnuintl.h.in (except the *printf stuff) dnl loadinfo.h dnl loadmsgcat.c dnl localealias.c dnl log.c dnl plural-exp.h plural-exp.c dnl plural.y dnl Used by libglocale. AC_DEFUN([gt_INTL_SUBDIR_CORE], [ AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_REQUIRE([gt_INTDIV0])dnl AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl AC_REQUIRE([gt_INTTYPES_PRI])dnl AC_REQUIRE([gl_LOCK])dnl AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }]], [[]])], [AC_DEFINE([HAVE_BUILTIN_EXPECT], [1], [Define to 1 if the compiler understands __builtin_expect.])]) AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h]) AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \ stpcpy strcasecmp strdup strtoul tsearch uselocale argz_count \ argz_stringify argz_next __fsetlocking]) dnl Use the *_unlocked functions only if they are declared. dnl (because some of them were defined without being declared in Solaris dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built dnl on Solaris 2.5.1 to run on Solaris 2.6). AC_CHECK_DECLS([feof_unlocked, fgets_unlocked], , , [#include ]) AM_ICONV dnl intl/plural.c is generated from intl/plural.y. It requires bison, dnl because plural.y uses bison specific features. It requires at least dnl bison-1.26 because earlier versions generate a plural.c that doesn't dnl compile. dnl bison is only needed for the maintainer (who touches plural.y). But in dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put dnl the rule in general Makefile. Now, some people carelessly touch the dnl files or have a broken "make" program, hence the plural.c rule will dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not dnl present or too old. AC_CHECK_PROGS([INTLBISON], [bison]) if test -z "$INTLBISON"; then ac_verc_fail=yes else dnl Found it, now check the version. AC_MSG_CHECKING([version of bison]) changequote(<<,>>)dnl ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) changequote([,])dnl ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac AC_MSG_RESULT([$ac_prog_version]) fi if test $ac_verc_fail = yes; then INTLBISON=: fi ]) # intlmacosx.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2004-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Checks for special options needed on Mac OS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in Mac OS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], [gt_cv_func_CFPreferencesCopyAppValue], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[CFPreferencesCopyAppValue(NULL, NULL)]])], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in Mac OS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[CFLocaleCopyCurrent();]])], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) # intmax.m4 serial 6 (gettext-0.18.2) dnl Copyright (C) 2002-2005, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether the system has the 'intmax_t' type, but don't attempt to dnl find a replacement if it is lacking. AC_DEFUN([gt_TYPE_INTMAX_T], [ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_CACHE_CHECK([for intmax_t], [gt_cv_c_intmax_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #include #if HAVE_STDINT_H_WITH_UINTMAX #include #endif #if HAVE_INTTYPES_H_WITH_UINTMAX #include #endif ]], [[intmax_t x = -1; return !x;]])], [gt_cv_c_intmax_t=yes], [gt_cv_c_intmax_t=no])]) if test $gt_cv_c_intmax_t = yes; then AC_DEFINE([HAVE_INTMAX_T], [1], [Define if you have the 'intmax_t' type in or .]) fi ]) # inttypes-pri.m4 serial 7 (gettext-0.18.2) dnl Copyright (C) 1997-2002, 2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ([2.53]) # Define PRI_MACROS_BROKEN if exists and defines the PRI* # macros to non-string values. This is the case on AIX 4.3.3. AC_DEFUN([gt_INTTYPES_PRI], [ AC_CHECK_HEADERS([inttypes.h]) if test $ac_cv_header_inttypes_h = yes; then AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], [gt_cv_inttypes_pri_broken], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #ifdef PRId32 char *p = PRId32; #endif ]], [[]])], [gt_cv_inttypes_pri_broken=no], [gt_cv_inttypes_pri_broken=yes]) ]) fi if test "$gt_cv_inttypes_pri_broken" = yes; then AC_DEFINE_UNQUOTED([PRI_MACROS_BROKEN], [1], [Define if exists and defines unusable PRI* macros.]) PRI_MACROS_BROKEN=1 else PRI_MACROS_BROKEN=0 fi AC_SUBST([PRI_MACROS_BROKEN]) ]) # inttypes_h.m4 serial 10 dnl Copyright (C) 1997-2004, 2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_INTTYPES_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([gl_AC_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], [gl_cv_header_inttypes_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[uintmax_t i = (uintmax_t) -1; return !i;]])], [gl_cv_header_inttypes_h=yes], [gl_cv_header_inttypes_h=no])]) if test $gl_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED([HAVE_INTTYPES_H_WITH_UINTMAX], [1], [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) # lcmessage.m4 serial 7 (gettext-0.18.2) dnl Copyright (C) 1995-2002, 2004-2005, 2008-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995. # Check whether LC_MESSAGES is available in . AC_DEFUN([gt_LC_MESSAGES], [ AC_CACHE_CHECK([for LC_MESSAGES], [gt_cv_val_LC_MESSAGES], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[return LC_MESSAGES]])], [gt_cv_val_LC_MESSAGES=yes], [gt_cv_val_LC_MESSAGES=no])]) if test $gt_cv_val_LC_MESSAGES = yes; then AC_DEFINE([HAVE_LC_MESSAGES], [1], [Define if your file defines LC_MESSAGES.]) fi ]) # lib-ld.m4 serial 6 dnl Copyright (C) 1996-2003, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid dnl collision with libtool.m4. dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], [# I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 /dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL([acl_cv_path_LD], [if test -z "$LD"; then acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 = 1.10 to complain if config.rpath is missing. m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE([rpath], [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_FROMPACKAGE(name, package) dnl declares that libname comes from the given package. The configure file dnl will then not have a --with-libname-prefix option but a dnl --with-package-prefix option. Several libraries can come from the same dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar dnl macro call that searches for libname. AC_DEFUN([AC_LIB_FROMPACKAGE], [ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_frompackage_]NAME, [$2]) popdef([NAME]) pushdef([PACK],[$2]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_libsinpackage_]PACKUP, m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) popdef([PACKUP]) popdef([PACK]) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) dnl Autoconf >= 2.61 supports dots in --with options. pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_ARG_WITH(P_A_C_K[-prefix], [[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= LIB[]NAME[]_PREFIX= dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been dnl computed. So it has to be reset here. HAVE_LIB[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" dnl The same code as in the loop below: dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$acl_hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi popdef([P_A_C_K]) popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) popdef([NAME]) ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) # lib-prefix.m4 serial 7 (gettext-0.18) dnl Copyright (C) 2001-2005, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates dnl - a variable acl_libdirstem, containing the basename of the libdir, either dnl "lib" or "lib64" or "lib/64", dnl - a variable acl_libdirstem2, as a secondary possible value for dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or dnl "lib/amd64". AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib and lib64. dnl On glibc systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine dnl the compiler's default mode by looking at the compiler's library search dnl path. If at least one of its elements ends in /lib64 or points to a dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. dnl Otherwise we use the default, namely "lib". dnl On Solaris systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment dnl . dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the dnl symlink is missing, so we set acl_libdirstem2 too. AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], [AC_EGREP_CPP([sixtyfour bits], [ #ifdef _LP64 sixtyfour bits #endif ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) ]) if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" ]) # lock.m4 serial 13 (gettext-0.18.2) dnl Copyright (C) 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([gl_LOCK], [ AC_REQUIRE([gl_THREADLIB]) if test "$gl_threads_api" = posix; then # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. AC_CHECK_TYPE([pthread_rwlock_t], [AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1], [Define if the POSIX multithreading library has read/write locks.])], [], [#include ]) # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. AC_COMPILE_IFELSE([ AC_LANG_PROGRAM( [[#include ]], [[ #if __FreeBSD__ == 4 error "No, in FreeBSD 4.0 recursive mutexes actually don't work." #elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070) error "No, in Mac OS X < 10.7 recursive mutexes actually don't work." #else int x = (int)PTHREAD_MUTEX_RECURSIVE; return !x; #endif ]])], [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], [1], [Define if the defines PTHREAD_MUTEX_RECURSIVE.])]) fi gl_PREREQ_LOCK ]) # Prerequisites of lib/glthread/lock.c. AC_DEFUN([gl_PREREQ_LOCK], [:]) # longlong.m4 serial 17 dnl Copyright (C) 1999-2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_LONG_LONG_INT if 'long long int' works. # This fixes a bug in Autoconf 2.61, and can be faster # than what's in Autoconf 2.62 through 2.68. # Note: If the type 'long long int' exists but is only 32 bits large # (as on some very old compilers), HAVE_LONG_LONG_INT will not be # defined. In this case you can treat 'long long int' like 'long int'. AC_DEFUN([AC_TYPE_LONG_LONG_INT], [ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], [ac_cv_type_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int if test $ac_cv_type_long_long_int = yes; then dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. dnl If cross compiling, assume the bug is not important, since dnl nobody cross compiles for this platform as far as we know. AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[@%:@include @%:@ifndef LLONG_MAX @%:@ define HALF \ (1LL << (sizeof (long long int) * CHAR_BIT - 2)) @%:@ define LLONG_MAX (HALF - 1 + HALF) @%:@endif]], [[long long int n = 1; int i; for (i = 0; ; i++) { long long int m = n << i; if (m >> i != n) return 1; if (LLONG_MAX / 2 < m) break; } return 0;]])], [], [ac_cv_type_long_long_int=no], [:]) fi fi]) if test $ac_cv_type_long_long_int = yes; then AC_DEFINE([HAVE_LONG_LONG_INT], [1], [Define to 1 if the system has the type 'long long int'.]) fi ]) # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. # This fixes a bug in Autoconf 2.61, and can be faster # than what's in Autoconf 2.62 through 2.68. # Note: If the type 'unsigned long long int' exists but is only 32 bits # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT # will not be defined. In this case you can treat 'unsigned long long int' # like 'unsigned long int'. AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], [ AC_CACHE_CHECK([for unsigned long long int], [ac_cv_type_unsigned_long_long_int], [ac_cv_type_unsigned_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then AC_LINK_IFELSE( [_AC_TYPE_LONG_LONG_SNIPPET], [], [ac_cv_type_unsigned_long_long_int=no]) fi]) if test $ac_cv_type_unsigned_long_long_int = yes; then AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], [Define to 1 if the system has the type 'unsigned long long int'.]) fi ]) # Expands to a C program that can be used to test for simultaneous support # of 'long long' and 'unsigned long long'. We don't want to say that # 'long long' is available if 'unsigned long long' is not, or vice versa, # because too many programs rely on the symmetry between signed and unsigned # integer types (excluding 'bool'). AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET], [ AC_LANG_PROGRAM( [[/* For now, do not test the preprocessor; as of 2007 there are too many implementations with broken preprocessors. Perhaps this can be revisited in 2012. In the meantime, code should not expect #if to work with literals wider than 32 bits. */ /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63;]], [[/* Test availability of runtime routines for shift and division. */ long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | (llmax / ll) | (llmax % ll) | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | (ullmax / ull) | (ullmax % ull));]]) ]) # nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) # po.m4 serial 21 (gettext-0.18.3) dnl Copyright (C) 1995-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.60]) dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl AC_REQUIRE([AC_PROG_SED])dnl AC_REQUIRE([AM_NLS])dnl dnl Release version of the gettext macros. This is used to ensure that dnl the gettext macros and po/Makefile.in.in are in sync. AC_SUBST([GETTEXT_MACRO_VERSION], [0.18]) dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) dnl Test whether it is GNU msgfmt >= 0.15. changequote(,)dnl case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac changequote([,])dnl AC_SUBST([MSGFMT_015]) changequote(,)dnl case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac changequote([,])dnl AC_SUBST([GMSGFMT_015]) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Test whether it is GNU xgettext >= 0.15. changequote(,)dnl case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac changequote([,])dnl AC_SUBST([XGETTEXT_015]) dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) dnl Installation directories. dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we dnl have to define it here, so that it can be used in po/Makefile. test -n "$localedir" || localedir='${datadir}/locale' AC_SUBST([localedir]) dnl Support for AM_XGETTEXT_OPTION. test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" gt_tab=`printf '\t'` cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat < "$ac_file.tmp" tab=`printf '\t'` if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" < /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` cat >> "$ac_file.tmp" <> "$ac_file.tmp" < #include /* The string "%2$d %1$d", with dollar characters protected from the shell's dollar expansion (possibly an autoconf bug). */ static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; static char buf[100]; int main () { sprintf (buf, format, 33, 55); return (strcmp (buf, "55 33") != 0); }]])], [gt_cv_func_printf_posix=yes], [gt_cv_func_printf_posix=no], [ AC_EGREP_CPP([notposix], [ #if defined __NetBSD__ || defined __BEOS__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ notposix #endif ], [gt_cv_func_printf_posix="guessing no"], [gt_cv_func_printf_posix="guessing yes"]) ]) ]) case $gt_cv_func_printf_posix in *yes) AC_DEFINE([HAVE_POSIX_PRINTF], [1], [Define if your printf() function supports format strings with positions.]) ;; esac ]) # progtest.m4 serial 7 (gettext-0.18.2) dnl Copyright (C) 1996-2003, 2005, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1996. AC_PREREQ([2.50]) # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL([ac_cv_path_$1], [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$][$1]) else AC_MSG_RESULT([no]) fi AC_SUBST([$1])dnl ]) # size_max.m4 serial 10 dnl Copyright (C) 2003, 2005-2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([gl_SIZE_MAX], [ AC_CHECK_HEADERS([stdint.h]) dnl First test whether the system already has SIZE_MAX. AC_CACHE_CHECK([for SIZE_MAX], [gl_cv_size_max], [ gl_cv_size_max= AC_EGREP_CPP([Found it], [ #include #if HAVE_STDINT_H #include #endif #ifdef SIZE_MAX Found it #endif ], [gl_cv_size_max=yes]) if test -z "$gl_cv_size_max"; then dnl Define it ourselves. Here we assume that the type 'size_t' is not wider dnl than the type 'unsigned long'. Try hard to find a definition that can dnl be used in a preprocessor #if, i.e. doesn't contain a cast. AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1], [#include #include ], [size_t_bits_minus_1=]) AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)], [#include ], [fits_in_uint=]) if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then if test $fits_in_uint = 1; then dnl Even though SIZE_MAX fits in an unsigned int, it must be of type dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include extern size_t foo; extern unsigned long foo; ]], [[]])], [fits_in_uint=0]) fi dnl We cannot use 'expr' to simplify this expression, because 'expr' dnl works only with 'long' integers in the host environment, while we dnl might be cross-compiling from a 32-bit platform to a 64-bit platform. if test $fits_in_uint = 1; then gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" else gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" fi else dnl Shouldn't happen, but who knows... gl_cv_size_max='((size_t)~(size_t)0)' fi fi ]) if test "$gl_cv_size_max" != yes; then AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max], [Define as the maximum value of type 'size_t', if the system doesn't define it.]) fi dnl Don't redefine SIZE_MAX in config.h if config.h is re-included after dnl . Remember that the #undef in AH_VERBATIM gets replaced with dnl #define by AC_DEFINE_UNQUOTED. AH_VERBATIM([SIZE_MAX], [/* Define as the maximum value of type 'size_t', if the system doesn't define it. */ #ifndef SIZE_MAX # undef SIZE_MAX #endif]) ]) dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. dnl Remove this when we can assume autoconf >= 2.61. m4_ifdef([AC_COMPUTE_INT], [], [ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) ]) # stdint_h.m4 serial 9 dnl Copyright (C) 1997-2004, 2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_STDINT_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([gl_AC_HEADER_STDINT_H], [ AC_CACHE_CHECK([for stdint.h], [gl_cv_header_stdint_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include #include ]], [[uintmax_t i = (uintmax_t) -1; return !i;]])], [gl_cv_header_stdint_h=yes], [gl_cv_header_stdint_h=no])]) if test $gl_cv_header_stdint_h = yes; then AC_DEFINE_UNQUOTED([HAVE_STDINT_H_WITH_UINTMAX], [1], [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) # threadlib.m4 serial 10 (gettext-0.18.2) dnl Copyright (C) 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl gl_THREADLIB dnl ------------ dnl Tests for a multithreading library to be used. dnl If the configure.ac contains a definition of the gl_THREADLIB_DEFAULT_NO dnl (it must be placed before the invocation of gl_THREADLIB_EARLY!), then the dnl default is 'no', otherwise it is system dependent. In both cases, the user dnl can change the choice through the options --enable-threads=choice or dnl --disable-threads. dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS, dnl USE_PTH_THREADS, USE_WINDOWS_THREADS dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with dnl libtool). dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for dnl programs that really need multithread functionality. The difference dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread". dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for dnl multithread-safe programs. AC_DEFUN([gl_THREADLIB_EARLY], [ AC_REQUIRE([gl_THREADLIB_EARLY_BODY]) ]) dnl The guts of gl_THREADLIB_EARLY. Needs to be expanded only once. AC_DEFUN([gl_THREADLIB_EARLY_BODY], [ dnl Ordering constraints: This macro modifies CPPFLAGS in a way that dnl influences the result of the autoconf tests that test for *_unlocked dnl declarations, on AIX 5 at least. Therefore it must come early. AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl AC_BEFORE([$0], [gl_ARGP])dnl AC_REQUIRE([AC_CANONICAL_HOST]) dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems. dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes dnl AC_GNU_SOURCE. m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], [AC_REQUIRE([AC_GNU_SOURCE])]) dnl Check for multithreading. m4_ifdef([gl_THREADLIB_DEFAULT_NO], [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])], [m4_divert_text([DEFAULTS], [gl_use_threads_default=])]) AC_ARG_ENABLE([threads], AC_HELP_STRING([--enable-threads={posix|solaris|pth|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [ AC_HELP_STRING([--disable-threads], [build without multithread safety])]), [gl_use_threads=$enableval], [if test -n "$gl_use_threads_default"; then gl_use_threads="$gl_use_threads_default" else changequote(,)dnl case "$host_os" in dnl Disable multithreading by default on OSF/1, because it interferes dnl with fork()/exec(): When msgexec is linked with -lpthread, its dnl child process gets an endless segmentation fault inside execvp(). dnl Disable multithreading by default on Cygwin 1.5.x, because it has dnl bugs that lead to endless loops or crashes. See dnl . osf*) gl_use_threads=no ;; cygwin*) case `uname -r` in 1.[0-5].*) gl_use_threads=no ;; *) gl_use_threads=yes ;; esac ;; *) gl_use_threads=yes ;; esac changequote([,])dnl fi ]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # For using : case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it # groks . cc also understands the flag -pthread, but # we don't use it because 1. gcc-2.95 doesn't understand -pthread, # 2. putting a flag into CPPFLAGS that has an effect on the linker # causes the AC_LINK_IFELSE test below to succeed unexpectedly, # leading to wrong values of LIBTHREAD and LTLIBTHREAD. CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac # Some systems optimize for single-threaded programs by default, and # need special flags to disable these optimizations. For example, the # definition of 'errno' in . case "$host_os" in aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac fi ]) dnl The guts of gl_THREADLIB. Needs to be expanded only once. AC_DEFUN([gl_THREADLIB_BODY], [ AC_REQUIRE([gl_THREADLIB_EARLY_BODY]) gl_threads_api=none LIBTHREAD= LTLIBTHREAD= LIBMULTITHREAD= LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then dnl Check whether the compiler and linker support weak declarations. AC_CACHE_CHECK([whether imported symbols can be declared weak], [gl_cv_have_weak], [gl_cv_have_weak=no dnl First, test whether the compiler accepts it syntactically. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[extern void xyzzy (); #pragma weak xyzzy]], [[xyzzy();]])], [gl_cv_have_weak=maybe]) if test $gl_cv_have_weak = maybe; then dnl Second, test whether it actually works. On Cygwin 1.7.2, with dnl gcc 4.3, symbols declared weak always evaluate to the address 0. AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #pragma weak fputs int main () { return (fputs == NULL); }]])], [gl_cv_have_weak=yes], [gl_cv_have_weak=no], [dnl When cross-compiling, assume that only ELF platforms support dnl weak symbols. AC_EGREP_CPP([Extensible Linking Format], [#ifdef __ELF__ Extensible Linking Format #endif ], [gl_cv_have_weak="guessing yes"], [gl_cv_have_weak="guessing no"]) ]) fi ]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that # it groks . It's added above, in gl_THREADLIB_EARLY_BODY. AC_CHECK_HEADER([pthread.h], [gl_have_pthread_h=yes], [gl_have_pthread_h=no]) if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads gl_have_pthread= # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but # the second one only in libpthread, and lock.c needs it. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[pthread_mutex_lock((pthread_mutex_t*)0); pthread_mutexattr_init((pthread_mutexattr_t*)0);]])], [gl_have_pthread=yes]) # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) if test -n "$gl_have_pthread"; then # The program links fine without libpthread. But it may actually # need to link with libpthread in order to create multiple threads. AC_CHECK_LIB([pthread], [pthread_kill], [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. case "$host_os" in solaris* | hpux*) AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1], [Define if the pthread_in_use() detection is hard.]) esac ]) else # Some library is needed. Try libpthread and libc_r. AC_CHECK_LIB([pthread], [pthread_kill], [gl_have_pthread=yes LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread]) if test -z "$gl_have_pthread"; then # For FreeBSD 4. AC_CHECK_LIB([c_r], [pthread_kill], [gl_have_pthread=yes LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r]) fi fi if test -n "$gl_have_pthread"; then gl_threads_api=posix AC_DEFINE([USE_POSIX_THREADS], [1], [Define if the POSIX multithreading library can be used.]) if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then AC_DEFINE([USE_POSIX_THREADS_WEAK], [1], [Define if references to the POSIX multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi fi fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then gl_have_solaristhread= gl_save_LIBS="$LIBS" LIBS="$LIBS -lthread" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[thr_self();]])], [gl_have_solaristhread=yes]) LIBS="$gl_save_LIBS" if test -n "$gl_have_solaristhread"; then gl_threads_api=solaris LIBTHREAD=-lthread LTLIBTHREAD=-lthread LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" AC_DEFINE([USE_SOLARIS_THREADS], [1], [Define if the old Solaris multithreading library can be used.]) if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then AC_DEFINE([USE_SOLARIS_THREADS_WEAK], [1], [Define if references to the old Solaris multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi fi fi if test "$gl_use_threads" = pth; then gl_save_CPPFLAGS="$CPPFLAGS" AC_LIB_LINKFLAGS([pth]) gl_have_pth= gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBPTH" AC_LINK_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[pth_self();]])], [gl_have_pth=yes]) LIBS="$gl_save_LIBS" if test -n "$gl_have_pth"; then gl_threads_api=pth LIBTHREAD="$LIBPTH" LTLIBTHREAD="$LTLIBPTH" LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" AC_DEFINE([USE_PTH_THREADS], [1], [Define if the GNU Pth multithreading library can be used.]) if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then AC_DEFINE([USE_PTH_THREADS_WEAK], [1], [Define if references to the GNU Pth multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi else CPPFLAGS="$gl_save_CPPFLAGS" fi fi if test -z "$gl_have_pthread"; then case "$gl_use_threads" in yes | windows | win32) # The 'win32' is for backward compatibility. if { case "$host_os" in mingw*) true;; *) false;; esac }; then gl_threads_api=windows AC_DEFINE([USE_WINDOWS_THREADS], [1], [Define if the native Windows multithreading API can be used.]) fi ;; esac fi fi AC_MSG_CHECKING([for multithread API to use]) AC_MSG_RESULT([$gl_threads_api]) AC_SUBST([LIBTHREAD]) AC_SUBST([LTLIBTHREAD]) AC_SUBST([LIBMULTITHREAD]) AC_SUBST([LTLIBMULTITHREAD]) ]) AC_DEFUN([gl_THREADLIB], [ AC_REQUIRE([gl_THREADLIB_EARLY]) AC_REQUIRE([gl_THREADLIB_BODY]) ]) dnl gl_DISABLE_THREADS dnl ------------------ dnl Sets the gl_THREADLIB default so that threads are not used by default. dnl The user can still override it at installation time, by using the dnl configure option '--enable-threads'. AC_DEFUN([gl_DISABLE_THREADS], [ m4_divert_text([INIT_PREPARE], [gl_use_threads_default=no]) ]) dnl Survey of platforms: dnl dnl Platform Available Compiler Supports test-lock dnl flavours option weak result dnl --------------- --------- --------- -------- --------- dnl Linux 2.4/glibc posix -lpthread Y OK dnl dnl GNU Hurd/glibc posix dnl dnl FreeBSD 5.3 posix -lc_r Y dnl posix -lkse ? Y dnl posix -lpthread ? Y dnl posix -lthr Y dnl dnl FreeBSD 5.2 posix -lc_r Y dnl posix -lkse Y dnl posix -lthr Y dnl dnl FreeBSD 4.0,4.10 posix -lc_r Y OK dnl dnl NetBSD 1.6 -- dnl dnl OpenBSD 3.4 posix -lpthread Y OK dnl dnl Mac OS X 10.[123] posix -lpthread Y OK dnl dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK dnl dnl HP-UX 11 posix -lpthread N (cc) OK dnl Y (gcc) dnl dnl IRIX 6.5 posix -lpthread Y 0.5 dnl dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK dnl dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK dnl -lpthread (gcc) Y dnl dnl Cygwin posix -lpthread Y OK dnl dnl Any of the above pth -lpth 0.0 dnl dnl Mingw windows N OK dnl dnl BeOS 5 -- dnl dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is dnl turned off: dnl OK if all three tests terminate OK, dnl 0.5 if the first test terminates OK but the second one loops endlessly, dnl 0.0 if the first test already loops endlessly. # uintmax_t.m4 serial 12 dnl Copyright (C) 1997-2004, 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. AC_PREREQ([2.13]) # Define uintmax_t to 'unsigned long' or 'unsigned long long' # if it is not already defined in or . AC_DEFUN([gl_AC_TYPE_UINTMAX_T], [ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) test $ac_cv_type_unsigned_long_long_int = yes \ && ac_type='unsigned long long' \ || ac_type='unsigned long' AC_DEFINE_UNQUOTED([uintmax_t], [$ac_type], [Define to unsigned long or unsigned long long if and don't define.]) else AC_DEFINE([HAVE_UINTMAX_T], [1], [Define if you have the 'uintmax_t' type in or .]) fi ]) # visibility.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2005, 2008, 2010-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Tests whether the compiler supports the command-line option dnl -fvisibility=hidden and the function and variable attributes dnl __attribute__((__visibility__("hidden"))) and dnl __attribute__((__visibility__("default"))). dnl Does *not* test for __visibility__("protected") - which has tricky dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on dnl Mac OS X. dnl Does *not* test for __visibility__("internal") - which has processor dnl dependent semantics. dnl Does *not* test for #pragma GCC visibility push(hidden) - which is dnl "really only recommended for legacy code". dnl Set the variable CFLAG_VISIBILITY. dnl Defines and sets the variable HAVE_VISIBILITY. AC_DEFUN([gl_VISIBILITY], [ AC_REQUIRE([AC_PROG_CC]) CFLAG_VISIBILITY= HAVE_VISIBILITY=0 if test -n "$GCC"; then dnl First, check whether -Werror can be added to the command line, or dnl whether it leads to an error because of some other option that the dnl user has put into $CC $CFLAGS $CPPFLAGS. AC_MSG_CHECKING([whether the -Werror option is usable]) AC_CACHE_VAL([gl_cv_cc_vis_werror], [ gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[]])], [gl_cv_cc_vis_werror=yes], [gl_cv_cc_vis_werror=no]) CFLAGS="$gl_save_CFLAGS"]) AC_MSG_RESULT([$gl_cv_cc_vis_werror]) dnl Now check whether visibility declarations are supported. AC_MSG_CHECKING([for simple visibility declarations]) AC_CACHE_VAL([gl_cv_cc_visibility], [ gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden" dnl We use the option -Werror and a function dummyfunc, because on some dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning dnl "visibility attribute not supported in this configuration; ignored" dnl at the first function definition in every compilation unit, and we dnl don't want to use the option in this case. if test $gl_cv_cc_vis_werror = yes; then CFLAGS="$CFLAGS -Werror" fi AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void); void dummyfunc (void) {} ]], [[]])], [gl_cv_cc_visibility=yes], [gl_cv_cc_visibility=no]) CFLAGS="$gl_save_CFLAGS"]) AC_MSG_RESULT([$gl_cv_cc_visibility]) if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" HAVE_VISIBILITY=1 fi fi AC_SUBST([CFLAG_VISIBILITY]) AC_SUBST([HAVE_VISIBILITY]) AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) ]) # wchar_t.m4 serial 4 (gettext-0.18.2) dnl Copyright (C) 2002-2003, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether has the 'wchar_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WCHAR_T], [ AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include wchar_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wchar_t=yes], [gt_cv_c_wchar_t=no])]) if test $gt_cv_c_wchar_t = yes; then AC_DEFINE([HAVE_WCHAR_T], [1], [Define if you have the 'wchar_t' type.]) fi ]) # wint_t.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2003, 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether has the 'wint_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WINT_T], [ AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include wint_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wint_t=yes], [gt_cv_c_wint_t=no])]) if test $gt_cv_c_wint_t = yes; then AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.]) fi ]) # xsize.m4 serial 5 dnl Copyright (C) 2003-2004, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_XSIZE], [ dnl Prerequisites of lib/xsize.h. AC_REQUIRE([gl_SIZE_MAX]) AC_CHECK_HEADERS([stdint.h]) ]) # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.14.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.14.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # -*- Autoconf -*- # Obsolete and "removed" macros, that must however still report explicit # error messages when used, to smooth transition. # # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([AM_CONFIG_HEADER], [AC_DIAGNOSE([obsolete], ['$0': this macro is obsolete. You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl AC_CONFIG_HEADERS($@)]) AC_DEFUN([AM_PROG_CC_STDC], [AC_PROG_CC am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc AC_DIAGNOSE([obsolete], ['$0': this macro is obsolete. You should simply use the 'AC][_PROG_CC' macro instead. Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', but upon 'ac_cv_prog_cc_stdc'.])]) AC_DEFUN([AM_C_PROTOTYPES], [AC_FATAL([automatic de-ANSI-fication support has been removed])]) AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([acinclude.m4]) lgeneral-1.3.1/intl/0000775000175000017500000000000012643745077011275 500000000000000lgeneral-1.3.1/intl/finddomain.c0000664000175000017500000001333412140770456013464 00000000000000/* Handle list of needed message catalogs Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. Written by Ulrich Drepper , 1995. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #if defined STDC_HEADERS || defined _LIBC # include #else # ifdef HAVE_MALLOC_H # include # else void free (); # endif #endif #if defined HAVE_STRING_H || defined _LIBC # include #else # include # ifndef memcpy # define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) # endif #endif #if !HAVE_STRCHR && !defined _LIBC # ifndef strchr # define strchr index # endif #endif #if defined HAVE_UNISTD_H || defined _LIBC # include #endif #include "gettext.h" #include "gettextP.h" #ifdef _LIBC # include #else # include "libgettext.h" #endif /* @@ end of prolog @@ */ /* List of already loaded domains. */ static struct loaded_l10nfile *_nl_loaded_domains; /* Return a data structure describing the message catalog described by the DOMAINNAME and CATEGORY parameters with respect to the currently established bindings. */ struct loaded_l10nfile * internal_function _nl_find_domain (dirname, locale, domainname) const char *dirname; char *locale; const char *domainname; { struct loaded_l10nfile *retval; const char *language; const char *modifier; const char *territory; const char *codeset; const char *normalized_codeset; const char *special; const char *sponsor; const char *revision; const char *alias_value; int mask; /* LOCALE can consist of up to four recognized parts for the XPG syntax: language[_territory[.codeset]][@modifier] and six parts for the CEN syntax: language[_territory][+audience][+special][,[sponsor][_revision]] Beside the first part all of them are allowed to be missing. If the full specified locale is not found, the less specific one are looked for. The various parts will be stripped off according to the following order: (1) revision (2) sponsor (3) special (4) codeset (5) normalized codeset (6) territory (7) audience/modifier */ /* If we have already tested for this locale entry there has to be one data set in the list of loaded domains. */ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname, strlen (dirname) + 1, 0, locale, NULL, NULL, NULL, NULL, NULL, NULL, NULL, domainname, 0); if (retval != NULL) { /* We know something about this locale. */ int cnt; if (retval->decided == 0) _nl_load_domain (retval); if (retval->data != NULL) return retval; for (cnt = 0; retval->successor[cnt] != NULL; ++cnt) { if (retval->successor[cnt]->decided == 0) _nl_load_domain (retval->successor[cnt]); if (retval->successor[cnt]->data != NULL) break; } return cnt >= 0 ? retval : NULL; /* NOTREACHED */ } /* See whether the locale value is an alias. If yes its value *overwrites* the alias name. No test for the original value is done. */ alias_value = _nl_expand_alias (locale); if (alias_value != NULL) { #if defined _LIBC || defined HAVE_STRDUP locale = strdup (alias_value); if (locale == NULL) return NULL; #else size_t len = strlen (alias_value) + 1; locale = (char *) malloc (len); if (locale == NULL) return NULL; memcpy (locale, alias_value, len); #endif } /* Now we determine the single parts of the locale name. First look for the language. Termination symbols are `_' and `@' if we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */ mask = _nl_explode_name (locale, &language, &modifier, &territory, &codeset, &normalized_codeset, &special, &sponsor, &revision); /* Create all possible locale entries which might be interested in generalization. */ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname, strlen (dirname) + 1, mask, language, territory, codeset, normalized_codeset, modifier, special, sponsor, revision, domainname, 1); if (retval == NULL) /* This means we are out of core. */ return NULL; if (retval->decided == 0) _nl_load_domain (retval); if (retval->data == NULL) { int cnt; for (cnt = 0; retval->successor[cnt] != NULL; ++cnt) { if (retval->successor[cnt]->decided == 0) _nl_load_domain (retval->successor[cnt]); if (retval->successor[cnt]->data != NULL) break; } } /* The room for an alias was dynamically allocated. Free it now. */ if (alias_value != NULL) free (locale); return retval; } #ifdef _LIBC static void __attribute__ ((unused)) free_mem (void) { struct loaded_l10nfile *runp = _nl_loaded_domains; while (runp != NULL) { struct loaded_l10nfile *here = runp; if (runp->data != NULL) _nl_unload_domain ((struct loaded_domain *) runp->data); runp = runp->next; free (here); } } text_set_element (__libc_subfreeres, free_mem); #endif lgeneral-1.3.1/intl/gettextP.h0000664000175000017500000000420612140770456013163 00000000000000/* Header describing internals of gettext library Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. Written by Ulrich Drepper , 1995. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _GETTEXTP_H #define _GETTEXTP_H #include "loadinfo.h" /* @@ end of prolog @@ */ #ifndef PARAMS # if __STDC__ # define PARAMS(args) args # else # define PARAMS(args) () # endif #endif #ifndef internal_function # define internal_function #endif #ifndef W # define W(flag, data) ((flag) ? SWAP (data) : (data)) #endif #ifdef _LIBC # include # define SWAP(i) bswap_32 (i) #else static nls_uint32 SWAP PARAMS ((nls_uint32 i)); static inline nls_uint32 SWAP (i) nls_uint32 i; { return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24); } #endif struct loaded_domain { const char *data; int use_mmap; size_t mmap_size; int must_swap; nls_uint32 nstrings; struct string_desc *orig_tab; struct string_desc *trans_tab; nls_uint32 hash_size; nls_uint32 *hash_tab; }; struct binding { struct binding *next; char *domainname; char *dirname; }; struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname, char *__locale, const char *__domainname)) internal_function; void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain)) internal_function; void _nl_unload_domain PARAMS ((struct loaded_domain *__domain)) internal_function; /* @@ begin of epilog @@ */ #endif /* gettextP.h */ lgeneral-1.3.1/intl/VERSION0000664000175000017500000000005112140770456012250 00000000000000GNU gettext library from gettext-0.10.35 lgeneral-1.3.1/intl/libgettext.h0000664000175000017500000001317312140770456013535 00000000000000/* Message catalogs for internationalization. Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Because on some systems (e.g. Solaris) we sometimes have to include the systems libintl.h as well as this file we have more complex include protection above. But the systems header might perhaps also define _LIBINTL_H and therefore we have to protect the definition here. */ #if !defined _LIBINTL_H || !defined _LIBGETTEXT_H #ifndef _LIBINTL_H # define _LIBINTL_H 1 #endif #define _LIBGETTEXT_H 1 /* We define an additional symbol to signal that we use the GNU implementation of gettext. */ #define __USE_GNU_GETTEXT 1 #include #if HAVE_LOCALE_H # include #endif #ifdef __cplusplus extern "C" { #endif /* @@ end of prolog @@ */ #ifndef PARAMS # if __STDC__ || defined __cplusplus # define PARAMS(args) args # else # define PARAMS(args) () # endif #endif #ifndef NULL # if !defined __cplusplus || defined __GNUC__ # define NULL ((void *) 0) # else # define NULL (0) # endif #endif #if !HAVE_LC_MESSAGES /* This value determines the behaviour of the gettext() and dgettext() function. But some system does not have this defined. Define it to a default value. */ # define LC_MESSAGES (-1) #endif /* Declarations for gettext-using-catgets interface. Derived from Jim Meyering's libintl.h. */ struct _msg_ent { const char *_msg; int _msg_number; }; #if HAVE_CATGETS /* These two variables are defined in the automatically by po-to-tbl.sed generated file `cat-id-tbl.c'. */ extern const struct _msg_ent _msg_tbl[]; extern int _msg_tbl_length; #endif /* For automatical extraction of messages sometimes no real translation is needed. Instead the string itself is the result. */ #define gettext_noop(Str) (Str) /* Look up MSGID in the current default message catalog for the current LC_MESSAGES locale. If not found, returns MSGID itself (the default text). */ extern char *gettext PARAMS ((const char *__msgid)); extern char *gettext__ PARAMS ((const char *__msgid)); /* Look up MSGID in the DOMAINNAME message catalog for the current LC_MESSAGES locale. */ extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid)); extern char *dgettext__ PARAMS ((const char *__domainname, const char *__msgid)); /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale. */ extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid, int __category)); extern char *dcgettext__ PARAMS ((const char *__domainname, const char *__msgid, int __category)); /* Set the current default message catalog to DOMAINNAME. If DOMAINNAME is null, return the current default. If DOMAINNAME is "", reset to the default of "messages". */ extern char *textdomain PARAMS ((const char *__domainname)); extern char *textdomain__ PARAMS ((const char *__domainname)); /* Specify that the DOMAINNAME message catalog will be found in DIRNAME rather than in the system locale data base. */ extern char *bindtextdomain PARAMS ((const char *__domainname, const char *__dirname)); extern char *bindtextdomain__ PARAMS ((const char *__domainname, const char *__dirname)); #if ENABLE_NLS /* Solaris 2.3 has the gettext function but dcgettext is missing. So we omit this optimization for Solaris 2.3. BTW, Solaris 2.4 has dcgettext. */ # if !HAVE_CATGETS && (!HAVE_GETTEXT || HAVE_DCGETTEXT) # define gettext(Msgid) \ dgettext (NULL, Msgid) # define dgettext(Domainname, Msgid) \ dcgettext (Domainname, Msgid, LC_MESSAGES) # if defined __GNUC__ && ((__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)) /* This global variable is defined in loadmsgcat.c. We need a sign, whether a new catalog was loaded, which can be associated with all translations. */ extern int _nl_msg_cat_cntr; # define dcgettext(Domainname, Msgid, Category) \ (__extension__ \ ({ \ char *__result; \ if (__builtin_constant_p (Msgid)) \ { \ static char *__translation__; \ static int __catalog_counter__; \ if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr) \ { \ __translation__ = \ dcgettext__ (Domainname, Msgid, Category); \ __catalog_counter__ = _nl_msg_cat_cntr; \ } \ __result = __translation__; \ } \ else \ __result = dcgettext__ (Domainname, Msgid, Category); \ __result; \ })) # endif # endif #else # define gettext(Msgid) (Msgid) # define dgettext(Domainname, Msgid) (Msgid) # define dcgettext(Domainname, Msgid, Category) (Msgid) # define textdomain(Domainname) ((char *) Domainname) # define bindtextdomain(Domainname, Dirname) ((char *) Dirname) #endif /* @@ begin of epilog @@ */ #ifdef __cplusplus } #endif #endif lgeneral-1.3.1/intl/hash-string.h0000664000175000017500000000337312140770456013612 00000000000000/* Implements a string hashing function. Copyright (C) 1995, 1997 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* @@ end of prolog @@ */ #ifndef PARAMS # if __STDC__ # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif #endif /* We assume to have `unsigned long int' value with at least 32 bits. */ #define HASHWORDBITS 32 /* Defines the so called `hashpjw' function by P.J. Weinberger [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools, 1986, 1987 Bell Telephone Laboratories, Inc.] */ static unsigned long hash_string PARAMS ((const char *__str_param)); static inline unsigned long hash_string (str_param) const char *str_param; { unsigned long int hval, g; const char *str = str_param; /* Compute the hash value for the given string. */ hval = 0; while (*str != '\0') { hval <<= 4; hval += (unsigned long) *str++; g = hval & ((unsigned long) 0xf << (HASHWORDBITS - 4)); if (g != 0) { hval ^= g >> (HASHWORDBITS - 8); hval ^= g; } } return hval; } lgeneral-1.3.1/intl/textdomain.c0000664000175000017500000000704112140770456013526 00000000000000/* Implementation of the textdomain(3) function. Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. Written by Ulrich Drepper , 1995. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include #endif #if defined STDC_HEADERS || defined _LIBC # include #endif #if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC # include #else # include # ifndef memcpy # define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) # endif #endif #ifdef _LIBC # include #else # include "libgettext.h" #endif /* The internal variables in the standalone libintl.a must have different names than the internal variables in GNU libc, otherwise programs using libintl.a cannot be linked statically. */ #if !defined _LIBC # define _nl_default_default_domain _nl_default_default_domain__ # define _nl_current_default_domain _nl_current_default_domain__ #endif /* @@ end of prolog @@ */ /* Name of the default text domain. */ extern const char _nl_default_default_domain[]; /* Default text domain in which entries for gettext(3) are to be found. */ extern const char *_nl_current_default_domain; /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define TEXTDOMAIN __textdomain # ifndef strdup # define strdup(str) __strdup (str) # endif #else # define TEXTDOMAIN textdomain__ #endif /* Set the current default message catalog to DOMAINNAME. If DOMAINNAME is null, return the current default. If DOMAINNAME is "", reset to the default of "messages". */ char * TEXTDOMAIN (domainname) const char *domainname; { char *old; /* A NULL pointer requests the current setting. */ if (domainname == NULL) return (char *) _nl_current_default_domain; old = (char *) _nl_current_default_domain; /* If domain name is the null string set to default domain "messages". */ if (domainname[0] == '\0' || strcmp (domainname, _nl_default_default_domain) == 0) _nl_current_default_domain = _nl_default_default_domain; else { /* If the following malloc fails `_nl_current_default_domain' will be NULL. This value will be returned and so signals we are out of core. */ #if defined _LIBC || defined HAVE_STRDUP _nl_current_default_domain = strdup (domainname); #else size_t len = strlen (domainname) + 1; char *cp = (char *) malloc (len); if (cp != NULL) memcpy (cp, domainname, len); _nl_current_default_domain = cp; #endif } if (old != _nl_default_default_domain) free (old); return (char *) _nl_current_default_domain; } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__textdomain, textdomain); #endif lgeneral-1.3.1/intl/loadinfo.h0000664000175000017500000000455512140770456013161 00000000000000/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef PARAMS # if __STDC__ # define PARAMS(args) args # else # define PARAMS(args) () # endif #endif /* Encoding of locale name parts. */ #define CEN_REVISION 1 #define CEN_SPONSOR 2 #define CEN_SPECIAL 4 #define XPG_NORM_CODESET 8 #define XPG_CODESET 16 #define TERRITORY 32 #define CEN_AUDIENCE 64 #define XPG_MODIFIER 128 #define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE) #define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER) struct loaded_l10nfile { const char *filename; int decided; const void *data; struct loaded_l10nfile *next; struct loaded_l10nfile *successor[1]; }; extern const char *_nl_normalize_codeset PARAMS ((const unsigned char *codeset, size_t name_len)); extern struct loaded_l10nfile * _nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list, const char *dirlist, size_t dirlist_len, int mask, const char *language, const char *territory, const char *codeset, const char *normalized_codeset, const char *modifier, const char *special, const char *sponsor, const char *revision, const char *filename, int do_allocate)); extern const char *_nl_expand_alias PARAMS ((const char *name)); extern int _nl_explode_name PARAMS ((char *name, const char **language, const char **modifier, const char **territory, const char **codeset, const char **normalized_codeset, const char **special, const char **sponsor, const char **revision)); lgeneral-1.3.1/intl/xopen-msg.sed0000664000175000017500000000537612140770456013631 00000000000000# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file # Copyright (C) 1995 Free Software Foundation, Inc. # Ulrich Drepper , 1995. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # # The first directive in the .msg should be the definition of the # message set number. We use always set number 1. # 1 { i\ $set 1 # Automatically created by po2msg.sed h s/.*/0/ x } # # We copy all comments into the .msg file. Perhaps they can help. # /^#/ s/^#[ ]*/$ /p # # We copy the original message as a comment into the .msg file. # /^msgid/ { # Does not work now # /"$/! { # s/\\$// # s/$/ ... (more lines following)"/ # } s/^msgid[ ]*"\(.*\)"$/$ Original Message: \1/ p } # # The .msg file contains, other then the .po file, only the translations # but each given a unique ID. Starting from 1 and incrementing by 1 for # each message we assign them to the messages. # It is important that the .po file used to generate the cat-id-tbl.c file # (with po-to-tbl) is the same as the one used here. (At least the order # of declarations must not be changed.) # /^msgstr/ { s/msgstr[ ]*"\(.*\)"/\1/ x # The following nice solution is by # Bruno td # Increment a decimal number in pattern space. # First hide trailing `9' digits. :d s/9\(_*\)$/_\1/ td # Assure at least one digit is available. s/^\(_*\)$/0\1/ # Increment the last digit. s/8\(_*\)$/9\1/ s/7\(_*\)$/8\1/ s/6\(_*\)$/7\1/ s/5\(_*\)$/6\1/ s/4\(_*\)$/5\1/ s/3\(_*\)$/4\1/ s/2\(_*\)$/3\1/ s/1\(_*\)$/2\1/ s/0\(_*\)$/1\1/ # Convert the hidden `9' digits to `0's. s/_/0/g x # Bring the line in the format ` ' G s/^[^\n]*$/& / s/\(.*\)\n\([0-9]*\)/\2 \1/ # Clear flag from last substitution. tb # Append the next line. :b N # Look whether second part is a continuation line. s/\(.*\n\)"\(.*\)"/\1\2/ # Yes, then branch. ta P D # Note that `D' includes a jump to the start!! # We found a continuation line. But before printing insert '\'. :a s/\(.*\)\(\n.*\)/\1\\\2/ P # We cannot use the sed command `D' here s/.*\n\(.*\)/\1/ tb } d lgeneral-1.3.1/intl/Makefile.in0000664000175000017500000001470012140771371013250 00000000000000# Makefile for directory with message catalog handling in GNU NLS Utilities. # Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = /bin/sh srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = .. VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ transform = @program_transform_name@ libdir = $(exec_prefix)/lib includedir = $(prefix)/include datadir = $(prefix)/@DATADIRNAME@ localedir = $(datadir)/locale gnulocaledir = $(prefix)/share/locale gettextsrcdir = @datadir@/gettext/intl aliaspath = $(localedir):. subdir = intl INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = @MKINSTALLDIRS@ l = @l@ AR = ar CC = @CC@ LIBTOOL = @LIBTOOL@ RANLIB = @RANLIB@ DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \ -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" @DEFS@ CPPFLAGS = @CPPFLAGS@ CFLAGS = @CFLAGS@ LDFLAGS = @LDFLAGS@ COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) HEADERS = $(COMHDRS) libgettext.h loadinfo.h COMHDRS = gettext.h gettextP.h hash-string.h SOURCES = $(COMSRCS) intl-compat.c cat-compat.c COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \ finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \ explodename.c OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \ finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \ explodename.$lo CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo GETTOBJS = intl-compat.$lo DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \ xopen-msg.sed $(HEADERS) $(SOURCES) DISTFILES.normal = VERSION DISTFILES.gettext = libintl.glibc intlh.inst.in .SUFFIXES: .SUFFIXES: .c .o .lo .c.o: $(COMPILE) $< .c.lo: $(LIBTOOL) --mode=compile $(COMPILE) $< INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib all: all-@USE_INCLUDED_LIBINTL@ all-yes: libintl.$la intlh.inst all-no: libintl.a: $(OBJECTS) rm -f $@ $(AR) cru $@ $(OBJECTS) $(RANLIB) $@ libintl.la: $(OBJECTS) $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \ -version-info 1:0 -rpath $(libdir) ../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot cd ../po && $(MAKE) cat-id-tbl.$lo check: all # This installation goal is only used in GNU gettext. Packages which # only use the library should use install instead. # We must not install the libintl.h/libintl.a files if we are on a # system which has the gettext() function in its C library or in a # separate library or use the catgets interface. A special case is # where configure found a previously installed GNU gettext library. # If you want to use the one which comes with this version of the # package, you have to use `configure --with-included-gettext'. install: install-exec install-data install-exec: all if test "$(PACKAGE)" = "gettext" \ && test '@INTLOBJS@' = '$(GETTOBJS)'; then \ if test -r $(MKINSTALLDIRS); then \ $(MKINSTALLDIRS) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \ else \ $(top_srcdir)/mkinstalldirs $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \ fi; \ $(INSTALL_DATA) intlh.inst $(DESTDIR)$(includedir)/libintl.h; \ $(INSTALL_DATA) libintl.a $(DESTDIR)$(libdir)/libintl.a; \ else \ : ; \ fi install-data: all if test "$(PACKAGE)" = "gettext"; then \ if test -r $(MKINSTALLDIRS); then \ $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \ else \ $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \ fi; \ $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \ dists="$(DISTFILES.common)"; \ for file in $$dists; do \ $(INSTALL_DATA) $(srcdir)/$$file $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi # Define this as empty until I found a useful application. installcheck: uninstall: if test "$(PACKAGE)" = "gettext"; then \ dists="$(DISTFILES.common)"; \ for file in $$dists; do \ rm -f $(gettextsrcdir)/$$file; \ done \ else \ : ; \ fi info dvi: $(OBJECTS): ../config.h libgettext.h bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h tags: TAGS TAGS: $(HEADERS) $(SOURCES) here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES) id: ID ID: $(HEADERS) $(SOURCES) here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES) mostlyclean: rm -f *.a *.o *.lo core core.* libintl.h clean: mostlyclean distclean: clean rm -f Makefile ID TAGS po2msg.sed po2tbl.sed maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." # GNU gettext needs not contain the file `VERSION' but contains some # other files which should not be distributed in other packages. distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: Makefile $(DISTFILES) if test "$(PACKAGE)" = gettext; then \ additional="$(DISTFILES.gettext)"; \ else \ additional="$(DISTFILES.normal)"; \ fi; \ for file in $(DISTFILES.common) $$additional; do \ ln $(srcdir)/$$file $(distdir) 2> /dev/null \ || cp -p $(srcdir)/$$file $(distdir); \ done dist-libc: tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc Makefile: Makefile.in ../config.status cd .. \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status # The dependency for intlh.inst is different in gettext and all other # packages. Because we cannot you GNU make features we have to solve # the problem while rewriting Makefile.in. intlh.inst: intlh.inst.in ../config.status cd .. \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \ $(SHELL) ./config.status .PHONY: intlh.inst intlh.inst: # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/intl/dcgettext.c0000664000175000017500000004110612140770456013345 00000000000000/* Implementation of the dcgettext(3) function. Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include #ifdef __GNUC__ # define alloca __builtin_alloca # define HAVE_ALLOCA 1 #else # if defined HAVE_ALLOCA_H || defined _LIBC # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca char *alloca (); # endif # endif # endif #endif #include #ifndef errno extern int errno; #endif #ifndef __set_errno # define __set_errno(val) errno = (val) #endif #if defined STDC_HEADERS || defined _LIBC # include #else char *getenv (); # ifdef HAVE_MALLOC_H # include # else void free (); # endif #endif #if defined HAVE_STRING_H || defined _LIBC # ifndef _GNU_SOURCE # define _GNU_SOURCE 1 # endif # include #else # include #endif #if !HAVE_STRCHR && !defined _LIBC # ifndef strchr # define strchr index # endif #endif #if defined HAVE_UNISTD_H || defined _LIBC # include #endif #include "gettext.h" #include "gettextP.h" #ifdef _LIBC # include #else # include "libgettext.h" #endif #include "hash-string.h" /* The internal variables in the standalone libintl.a must have different names than the internal variables in GNU libc, otherwise programs using libintl.a cannot be linked statically. */ #if !defined _LIBC # define _nl_default_default_domain _nl_default_default_domain__ # define _nl_current_default_domain _nl_current_default_domain__ # define _nl_default_dirname _nl_default_dirname__ # define _nl_domain_bindings _nl_domain_bindings__ #endif /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ANSI C functions. This is required by the standard because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ # define getcwd __getcwd # ifndef stpcpy # define stpcpy __stpcpy # endif #else # if !defined HAVE_GETCWD char *getwd (); # define getcwd(buf, max) getwd (buf) # else char *getcwd (); # endif # ifndef HAVE_STPCPY static char *stpcpy PARAMS ((char *dest, const char *src)); # endif #endif /* Amount to increase buffer size by in each try. */ #define PATH_INCR 32 /* The following is from pathmax.h. */ /* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define PATH_MAX but might cause redefinition warnings when sys/param.h is later included (as on MORE/BSD 4.3). */ #if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__)) # include #endif #ifndef _POSIX_PATH_MAX # define _POSIX_PATH_MAX 255 #endif #if !defined(PATH_MAX) && defined(_PC_PATH_MAX) # define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX)) #endif /* Don't include sys/param.h if it already has been. */ #if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN) # include #endif #if !defined(PATH_MAX) && defined(MAXPATHLEN) # define PATH_MAX MAXPATHLEN #endif #ifndef PATH_MAX # define PATH_MAX _POSIX_PATH_MAX #endif /* XPG3 defines the result of `setlocale (category, NULL)' as: ``Directs `setlocale()' to query `category' and return the current setting of `local'.'' However it does not specify the exact format. And even worse: POSIX defines this not at all. So we can use this feature only on selected system (e.g. those using GNU C Library). */ #ifdef _LIBC # define HAVE_LOCALE_NULL #endif /* Name of the default domain used for gettext(3) prior any call to textdomain(3). The default value for this is "messages". */ const char _nl_default_default_domain[] = "messages"; /* Value used as the default domain for gettext(3). */ const char *_nl_current_default_domain = _nl_default_default_domain; /* Contains the default location of the message catalogs. */ const char _nl_default_dirname[] = GNULOCALEDIR; /* List with bindings of specific domains created by bindtextdomain() calls. */ struct binding *_nl_domain_bindings; /* Prototypes for local functions. */ static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file, const char *msgid)) internal_function; static const char *category_to_name PARAMS ((int category)) internal_function; static const char *guess_category_value PARAMS ((int category, const char *categoryname)) internal_function; /* For those loosing systems which don't have `alloca' we have to add some additional code emulating it. */ #ifdef HAVE_ALLOCA /* Nothing has to be done. */ # define ADD_BLOCK(list, address) /* nothing */ # define FREE_BLOCKS(list) /* nothing */ #else struct block_list { void *address; struct block_list *next; }; # define ADD_BLOCK(list, addr) \ do { \ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \ /* If we cannot get a free block we cannot add the new element to \ the list. */ \ if (newp != NULL) { \ newp->address = (addr); \ newp->next = (list); \ (list) = newp; \ } \ } while (0) # define FREE_BLOCKS(list) \ do { \ while (list != NULL) { \ struct block_list *old = list; \ list = list->next; \ free (old); \ } \ } while (0) # undef alloca # define alloca(size) (malloc (size)) #endif /* have alloca */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DCGETTEXT __dcgettext #else # define DCGETTEXT dcgettext__ #endif /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale. */ char * DCGETTEXT (domainname, msgid, category) const char *domainname; const char *msgid; int category; { #ifndef HAVE_ALLOCA struct block_list *block_list = NULL; #endif struct loaded_l10nfile *domain; struct binding *binding; const char *categoryname; const char *categoryvalue; char *dirname, *xdomainname; char *single_locale; char *retval; int saved_errno = errno; /* If no real MSGID is given return NULL. */ if (msgid == NULL) return NULL; /* If DOMAINNAME is NULL, we are interested in the default domain. If CATEGORY is not LC_MESSAGES this might not make much sense but the defintion left this undefined. */ if (domainname == NULL) domainname = _nl_current_default_domain; /* First find matching binding. */ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) { int compare = strcmp (domainname, binding->domainname); if (compare == 0) /* We found it! */ break; if (compare < 0) { /* It is not in the list. */ binding = NULL; break; } } if (binding == NULL) dirname = (char *) _nl_default_dirname; else if (binding->dirname[0] == '/') dirname = binding->dirname; else { /* We have a relative path. Make it absolute now. */ size_t dirname_len = strlen (binding->dirname) + 1; size_t path_max; char *ret; path_max = (unsigned) PATH_MAX; path_max += 2; /* The getcwd docs say to do this. */ dirname = (char *) alloca (path_max + dirname_len); ADD_BLOCK (block_list, dirname); __set_errno (0); while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE) { path_max += PATH_INCR; dirname = (char *) alloca (path_max + dirname_len); ADD_BLOCK (block_list, dirname); __set_errno (0); } if (ret == NULL) { /* We cannot get the current working directory. Don't signal an error but simply return the default string. */ FREE_BLOCKS (block_list); __set_errno (saved_errno); return (char *) msgid; } stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname); } /* Now determine the symbolic name of CATEGORY and its value. */ categoryname = category_to_name (category); categoryvalue = guess_category_value (category, categoryname); xdomainname = (char *) alloca (strlen (categoryname) + strlen (domainname) + 5); ADD_BLOCK (block_list, xdomainname); stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"), domainname), ".mo"); /* Creating working area. */ single_locale = (char *) alloca (strlen (categoryvalue) + 1); ADD_BLOCK (block_list, single_locale); /* Search for the given string. This is a loop because we perhaps got an ordered list of languages to consider for th translation. */ while (1) { /* Make CATEGORYVALUE point to the next element of the list. */ while (categoryvalue[0] != '\0' && categoryvalue[0] == ':') ++categoryvalue; if (categoryvalue[0] == '\0') { /* The whole contents of CATEGORYVALUE has been searched but no valid entry has been found. We solve this situation by implicitly appending a "C" entry, i.e. no translation will take place. */ single_locale[0] = 'C'; single_locale[1] = '\0'; } else { char *cp = single_locale; while (categoryvalue[0] != '\0' && categoryvalue[0] != ':') *cp++ = *categoryvalue++; *cp = '\0'; } /* If the current locale value is C (or POSIX) we don't load a domain. Return the MSGID. */ if (strcmp (single_locale, "C") == 0 || strcmp (single_locale, "POSIX") == 0) { FREE_BLOCKS (block_list); __set_errno (saved_errno); return (char *) msgid; } /* Find structure describing the message catalog matching the DOMAINNAME and CATEGORY. */ domain = _nl_find_domain (dirname, single_locale, xdomainname); if (domain != NULL) { retval = find_msg (domain, msgid); if (retval == NULL) { int cnt; for (cnt = 0; domain->successor[cnt] != NULL; ++cnt) { retval = find_msg (domain->successor[cnt], msgid); if (retval != NULL) break; } } if (retval != NULL) { FREE_BLOCKS (block_list); __set_errno (saved_errno); return retval; } } } /* NOTREACHED */ } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__dcgettext, dcgettext); #endif static char * internal_function find_msg (domain_file, msgid) struct loaded_l10nfile *domain_file; const char *msgid; { size_t top, act, bottom; struct loaded_domain *domain; if (domain_file->decided == 0) _nl_load_domain (domain_file); if (domain_file->data == NULL) return NULL; domain = (struct loaded_domain *) domain_file->data; /* Locate the MSGID and its translation. */ if (domain->hash_size > 2 && domain->hash_tab != NULL) { /* Use the hashing table. */ nls_uint32 len = strlen (msgid); nls_uint32 hash_val = hash_string (msgid); nls_uint32 idx = hash_val % domain->hash_size; nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2)); nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]); if (nstr == 0) /* Hash table entry is empty. */ return NULL; if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len && strcmp (msgid, domain->data + W (domain->must_swap, domain->orig_tab[nstr - 1].offset)) == 0) return (char *) domain->data + W (domain->must_swap, domain->trans_tab[nstr - 1].offset); while (1) { if (idx >= domain->hash_size - incr) idx -= domain->hash_size - incr; else idx += incr; nstr = W (domain->must_swap, domain->hash_tab[idx]); if (nstr == 0) /* Hash table entry is empty. */ return NULL; if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len && strcmp (msgid, domain->data + W (domain->must_swap, domain->orig_tab[nstr - 1].offset)) == 0) return (char *) domain->data + W (domain->must_swap, domain->trans_tab[nstr - 1].offset); } /* NOTREACHED */ } /* Now we try the default method: binary search in the sorted array of messages. */ bottom = 0; top = domain->nstrings; while (bottom < top) { int cmp_val; act = (bottom + top) / 2; cmp_val = strcmp (msgid, domain->data + W (domain->must_swap, domain->orig_tab[act].offset)); if (cmp_val < 0) top = act; else if (cmp_val > 0) bottom = act + 1; else break; } /* If an translation is found return this. */ return bottom >= top ? NULL : (char *) domain->data + W (domain->must_swap, domain->trans_tab[act].offset); } /* Return string representation of locale CATEGORY. */ static const char * internal_function category_to_name (category) int category; { const char *retval; switch (category) { #ifdef LC_COLLATE case LC_COLLATE: retval = "LC_COLLATE"; break; #endif #ifdef LC_CTYPE case LC_CTYPE: retval = "LC_CTYPE"; break; #endif #ifdef LC_MONETARY case LC_MONETARY: retval = "LC_MONETARY"; break; #endif #ifdef LC_NUMERIC case LC_NUMERIC: retval = "LC_NUMERIC"; break; #endif #ifdef LC_TIME case LC_TIME: retval = "LC_TIME"; break; #endif #ifdef LC_MESSAGES case LC_MESSAGES: retval = "LC_MESSAGES"; break; #endif #ifdef LC_RESPONSE case LC_RESPONSE: retval = "LC_RESPONSE"; break; #endif #ifdef LC_ALL case LC_ALL: /* This might not make sense but is perhaps better than any other value. */ retval = "LC_ALL"; break; #endif default: /* If you have a better idea for a default value let me know. */ retval = "LC_XXX"; } return retval; } /* Guess value of current locale from value of the environment variables. */ static const char * internal_function guess_category_value (category, categoryname) int category; const char *categoryname; { const char *retval; /* The highest priority value is the `LANGUAGE' environment variable. This is a GNU extension. */ retval = getenv ("LANGUAGE"); if (retval != NULL && retval[0] != '\0') return retval; /* `LANGUAGE' is not set. So we have to proceed with the POSIX methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some systems this can be done by the `setlocale' function itself. */ #if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL return setlocale (category, NULL); #else /* Setting of LC_ALL overwrites all other. */ retval = getenv ("LC_ALL"); if (retval != NULL && retval[0] != '\0') return retval; /* Next comes the name of the desired category. */ retval = getenv (categoryname); if (retval != NULL && retval[0] != '\0') return retval; /* Last possibility is the LANG environment variable. */ retval = getenv ("LANG"); if (retval != NULL && retval[0] != '\0') return retval; /* We use C as the default domain. POSIX says this is implementation defined. */ return "C"; #endif } /* @@ begin of epilog @@ */ /* We don't want libintl.a to depend on any other library. So we avoid the non-standard function stpcpy. In GNU C Library this function is available, though. Also allow the symbol HAVE_STPCPY to be defined. */ #if !_LIBC && !HAVE_STPCPY static char * stpcpy (dest, src) char *dest; const char *src; { while ((*dest++ = *src++) != '\0') /* Do nothing. */ ; return dest - 1; } #endif #ifdef _LIBC /* If we want to free all resources we have to do some work at program's end. */ static void __attribute__ ((unused)) free_mem (void) { struct binding *runp; for (runp = _nl_domain_bindings; runp != NULL; runp = runp->next) { free (runp->domainname); if (runp->dirname != _nl_default_dirname) /* Yes, this is a pointer comparison. */ free (runp->dirname); } if (_nl_current_default_domain != _nl_default_default_domain) /* Yes, again a pointer comparison. */ free ((char *) _nl_current_default_domain); } text_set_element (__libc_subfreeres, free_mem); #endif lgeneral-1.3.1/intl/ChangeLog0000664000175000017500000010461412140770456012764 000000000000001998-04-29 Ulrich Drepper * intl/localealias.c (read_alias_file): Use unsigned char for local variables. Remove unused variable tp. * intl/l10nflist.c (_nl_normalize_codeset): Use unsigned char * for type of codeset. For loosing Solaris systems. * intl/loadinfo.h: Adapt prototype of _nl_normalize_codeset. * intl/bindtextdom.c (BINDTEXTDOMAIN): Don't define local variable len if not needed. Patches by Jim Meyering. 1998-04-28 Ulrich Drepper * loadmsgcat.c (_nl_load_domain): Don't assign the element use_mmap if mmap is not supported. * hash-string.h: Don't include . 1998-04-27 Ulrich Drepper * textdomain.c: Use strdup is available. * localealias.c: Define HAVE_MEMPCPY so that we can use this function. Define and use semapahores to protect modfication of global objects when compiling for glibc. Add code to allow freeing alias table. * l10nflist.c: Don't assume stpcpy not being a macro. * gettextP.h: Define internal_function macri if not already done. Use glibc byte-swap macros instead of defining SWAP when compiled for glibc. (struct loaded_domain): Add elements to allow unloading. * Makefile.in (distclean): Don't remove libintl.h here. * bindtextdomain.c: Carry over changes from glibc. Use strdup if available. * dcgettext.c: Don't assume stpcpy not being a macro. Mark internal functions. Add memory freeing code for glibc. * dgettext.c: Update copyright. * explodename.c: Include stdlib.h and string.h only if they exist. Use strings.h eventually. * finddomain.c: Mark internal functions. Use strdup if available. Add memory freeing code for glibc. 1997-10-10 20:00 Ulrich Drepper * libgettext.h: Fix dummy textdomain and bindtextdomain macros. They should return reasonable values. Reported by Tom Tromey . 1997-09-16 03:33 Ulrich Drepper * libgettext.h: Define PARAMS also to `args' if __cplusplus is defined. * intlh.inst.in: Likewise. Reported by Jean-Marc Lasgouttes . * libintl.glibc: Update from current glibc version. 1997-09-06 02:10 Ulrich Drepper * intlh.inst.in: Reformat copyright. 1997-08-19 15:22 Ulrich Drepper * dcgettext.c (DCGETTEXT): Remove wrong comment. 1997-08-16 00:13 Ulrich Drepper * Makefile.in (install-data): Don't change directory to install. 1997-08-01 14:30 Ulrich Drepper * cat-compat.c: Fix copyright. * localealias.c: Don't define strchr unless !HAVE_STRCHR. * loadmsgcat.c: Update copyright. Fix typos. * l10nflist.c: Don't define strchr unless !HAVE_STRCHR. (_nl_make_l10nflist): Handle sponsor and revision correctly. * gettext.c: Update copyright. * gettext.h: Likewise. * hash-string.h: Likewise. * finddomain.c: Remoave dead code. Define strchr only if !HAVE_STRCHR. * explodename.c: Include . * explodename.c: Reformat copyright text. (_nl_explode_name): Fix typo. * dcgettext.c: Define and use __set_errno. (guess_category_value): Don't use setlocale if HAVE_LC_MESSAGES is not defined. * bindtextdom.c: Pretty printing. 1997-05-01 02:25 Ulrich Drepper * dcgettext.c (guess_category_value): Don't depend on HAVE_LC_MESSAGES. We don't need the macro here. Patch by Bruno Haible . * cat-compat.c (textdomain): DoN't refer to HAVE_SETLOCALE_NULL macro. Instead use HAVE_LOCALE_NULL and define it when using glibc, as in dcgettext.c. Patch by Bruno Haible . * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois Pinard. Mon Mar 10 06:51:17 1997 Ulrich Drepper * Makefile.in: Implement handling of libtool. * gettextP.h: Change data structures for use of generic lowlevel i18n file handling. Wed Dec 4 20:21:18 1996 Ulrich Drepper * textdomain.c: Put parentheses around arguments of memcpy macro definition. * localealias.c: Likewise. * l10nflist.c: Likewise. * finddomain.c: Likewise. * bindtextdom.c: Likewise. Reported by Thomas Esken. Mon Nov 25 22:57:51 1996 Ulrich Drepper * textdomain.c: Move definition of `memcpy` macro to right position. Fri Nov 22 04:01:58 1996 Ulrich Drepper * finddomain.c [!HAVE_STRING_H && !_LIBC]: Define memcpy using bcopy if not already defined. Reported by Thomas Esken. * bindtextdom.c: Likewise. * l10nflist.c: Likewise. * localealias.c: Likewise. * textdomain.c: Likewise. Tue Oct 29 11:10:27 1996 Ulrich Drepper * Makefile.in (libdir): Change to use exec_prefix instead of prefix. Reported by Knut-HåvardAksnes . Sat Aug 31 03:07:09 1996 Ulrich Drepper * l10nflist.c (_nl_normalize_codeset): We convert to lower case, so don't prepend uppercase `ISO' for only numeric arg. Fri Jul 19 00:15:46 1996 Ulrich Drepper * l10nflist.c: Move inclusion of argz.h, ctype.h, stdlib.h after definition of _GNU_SOURCE. Patch by Roland McGrath. * Makefile.in (uninstall): Fix another bug with `for' loop and empty arguments. Patch by Jim Meyering. Correct name os uninstalled files: no intl- prefix anymore. * Makefile.in (install-data): Again work around shells which cannot handle mpty for list. Reported by Jim Meyering. Sat Jul 13 18:11:35 1996 Ulrich Drepper * Makefile.in (install): Split goal. Now depend on install-exec and install-data. (install-exec, install-data): New goals. Created from former install goal. Reported by Karl Berry. Sat Jun 22 04:58:14 1996 Ulrich Drepper * Makefile.in (MKINSTALLDIRS): New variable. Path to mkinstalldirs script. (install): use MKINSTALLDIRS variable or if the script is not present try to find it in the $top_scrdir). Wed Jun 19 02:56:56 1996 Ulrich Drepper * l10nflist.c: Linux libc *partly* includes the argz_* functions. Grr. Work around by renaming the static version and use macros for renaming. Tue Jun 18 20:11:17 1996 Ulrich Drepper * l10nflist.c: Correct presence test macros of __argz_* functions. * l10nflist.c: Include based on test of it instead when __argz_* functions are available. Reported by Andreas Schwab. Thu Jun 13 15:17:44 1996 Ulrich Drepper * explodename.c, l10nflist.c: Define NULL for dumb systems. Tue Jun 11 17:05:13 1996 Ulrich Drepper * intlh.inst.in, libgettext.h (dcgettext): Rename local variable result to __result to prevent name clash. * l10nflist.c, localealias.c, dcgettext.c: Define _GNU_SOURCE to get prototype for stpcpy and strcasecmp. * intlh.inst.in, libgettext.h: Move declaration of `_nl_msg_cat_cntr' outside __extension__ block to prevent warning from gcc's -Wnested-extern option. Fri Jun 7 01:58:00 1996 Ulrich Drepper * Makefile.in (install): Remove comment. Thu Jun 6 17:28:17 1996 Ulrich Drepper * Makefile.in (install): Work around for another Buglix stupidity. Always use an `else' close for `if's. Reported by Nelson Beebe. * Makefile.in (intlh.inst): Correct typo in phony rule. Reported by Nelson Beebe. Thu Jun 6 01:49:52 1996 Ulrich Drepper * dcgettext.c (read_alias_file): Rename variable alloca_list to block_list as the macro calls assume. Patch by Eric Backus. * localealias.c [!HAVE_ALLOCA]: Define alloca as macro using malloc. (read_alias_file): Rename varriabe alloca_list to block_list as the macro calls assume. Patch by Eric Backus. * l10nflist.c: Correct conditional for inclusion. Reported by Roland McGrath. * Makefile.in (all): Depend on all-@USE_INCLUDED_LIBINTL@, not all-@USE_NLS@. * Makefile.in (install): intlh.inst comes from local dir, not $(srcdir). * Makefile.in (intlh.inst): Special handling of this goal. If used in gettext, this is really a rul to construct this file. If used in any other package it is defined as a .PHONY rule with empty body. * finddomain.c: Extract locale file information handling into l10nfile.c. Rename local stpcpy__ function to stpcpy. * dcgettext.c (stpcpy): Add local definition. * l10nflist.c: Solve some portability problems. Patches partly by Thomas Esken. Add local definition of stpcpy. Tue Jun 4 02:47:49 1996 Ulrich Drepper * intlh.inst.in: Don't depend including on HAVE_LOCALE_H. Instead configure must rewrite this fiile depending on the result of the configure run. * Makefile.in (install): libintl.inst is now called intlh.inst. Add rules for updating intlh.inst from intlh.inst.in. * libintl.inst: Renamed to intlh.inst.in. * localealias.c, dcgettext.c [__GNUC__]: Define HAVE_ALLOCA to 1 because gcc has __buitlin_alloca. Reported by Roland McGrath. Mon Jun 3 00:32:16 1996 Ulrich Drepper * Makefile.in (installcheck): New goal to fulfill needs of automake's distcheck. * Makefile.in (install): Reorder commands so that VERSION is found. * Makefile.in (gettextsrcdir): Now use subdirectory intl/ in @datadir@/gettext. (COMSRCS): Add l10nfile.c. (OBJECTS): Add l10nfile.o. (DISTFILES): Rename to DISTFILE.normal. Remove $(DISTFILES.common). (DISTFILE.gettext): Remove $(DISTFILES.common). (all-gettext): Remove goal. (install): If $(PACKAGE) = gettext install, otherwose do nothing. No package but gettext itself should install libintl.h + headers. (dist): Extend goal to work for gettext, too. (dist-gettext): Remove goal. * dcgettext.c [!HAVE_ALLOCA]: Define macro alloca by using malloc. Sun Jun 2 17:33:06 1996 Ulrich Drepper * loadmsgcat.c (_nl_load_domain): Parameter is now comes from find_l10nfile. Sat Jun 1 02:23:03 1996 Ulrich Drepper * l10nflist.c (__argz_next): Add definition. * dcgettext.c [!HAVE_ALLOCA]: Add code for handling missing alloca code. Use new l10nfile handling. * localealias.c [!HAVE_ALLOCA]: Add code for handling missing alloca code. * l10nflist.c: Initial revision. Tue Apr 2 18:51:18 1996 Ulrich Drepper * Makefile.in (all-gettext): New goal. Same as all-yes. Thu Mar 28 23:01:22 1996 Karl Eichwalder * Makefile.in (gettextsrcdir): Define using @datadir@. Tue Mar 26 12:39:14 1996 Ulrich Drepper * finddomain.c: Include . Reported by Roland McGrath. Sat Mar 23 02:00:35 1996 Ulrich Drepper * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing with external declaration. Sat Mar 2 00:47:09 1996 Ulrich Drepper * Makefile.in (all-no): Rename from all_no. Sat Feb 17 00:25:59 1996 Ulrich Drepper * gettextP.h [loaded_domain]: Array `successor' must now contain up to 63 elements (because of codeset name normalization). * finddomain.c: Implement codeset name normalization. Thu Feb 15 04:39:09 1996 Ulrich Drepper * Makefile.in (all): Define to `all-@USE_NLS@'. (all-yes, all_no): New goals. `all-no' is noop, `all-yes' is former all. Mon Jan 15 21:46:01 1996 Howard Gayle * localealias.c (alias_compare): Increment string pointers in loop of strcasecmp replacement. Fri Dec 29 21:16:34 1995 Ulrich Drepper * Makefile.in (install-src): Who commented this goal out ? :-) Fri Dec 29 15:08:16 1995 Ulrich Drepper * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls should not effect it because a missing catalog is no error. Reported by Harald Knig . Tue Dec 19 22:09:13 1995 Ulrich Drepper * Makefile.in (Makefile): Explicitly use $(SHELL) for running shell scripts. Fri Dec 15 17:34:59 1995 Andreas Schwab * Makefile.in (install-src): Only install library and header when we use the own implementation. Don't do it when using the system's gettext or catgets functions. * dcgettext.c (find_msg): Must not swap domain->hash_size here. Sat Dec 9 16:24:37 1995 Ulrich Drepper * localealias.c, libintl.inst, libgettext.h, hash-string.h, gettextP.h, finddomain.c, dcgettext.c, cat-compat.c: Use PARAMS instead of __P. Suggested by Roland McGrath. Tue Dec 5 11:39:14 1995 Larry Schwimmer * libgettext.h: Use `#if !defined (_LIBINTL_H)' instead of `#if !_LIBINTL_H' because Solaris defines _LIBINTL_H as empty. Mon Dec 4 15:42:07 1995 Ulrich Drepper * Makefile.in (install-src): Install libintl.inst instead of libintl.h.install. Sat Dec 2 22:51:38 1995 Marcus Daniels * cat-compat.c (textdomain): Reverse order in which files are tried you load. First try local file, when this failed absolute path. Wed Nov 29 02:03:53 1995 Nelson H. F. Beebe * cat-compat.c (bindtextdomain): Add missing { }. Sun Nov 26 18:21:41 1995 Ulrich Drepper * libintl.inst: Add missing __P definition. Reported by Nelson Beebe. * Makefile.in: Add dummy `all' and `dvi' goals. Reported by Tom Tromey. Sat Nov 25 16:12:01 1995 Franc,ois Pinard * hash-string.h: Capitalize arguments of macros. Sat Nov 25 12:01:36 1995 Ulrich Drepper * Makefile.in (DISTFILES): Prevent files names longer than 13 characters. libintl.h.glibc->libintl.glibc, libintl.h.install->libintl.inst. Reported by Joshua R. Poulson. Sat Nov 25 11:31:12 1995 Eric Backus * dcgettext.c: Fix bug in preprocessor conditionals. Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe * libgettext.h: Solaris cc does not understand #if !SYMBOL1 && !SYMBOL2. Sad but true. Thu Nov 23 16:22:14 1995 Ulrich Drepper * hash-string.h (hash_string): Fix for machine with >32 bit `unsigned long's. * dcgettext.c (DCGETTEXT): Fix horrible bug in loop for alternative translation. Thu Nov 23 01:45:29 1995 Ulrich Drepper * po2tbl.sed.in, linux-msg.sed, xopen-msg.sed: Some further simplifications in message number generation. Mon Nov 20 21:08:43 1995 Ulrich Drepper * libintl.h.glibc: Use __const instead of const in prototypes. * Makefile.in (install-src): Install libintl.h.install instead of libintl.h. This is a stripped-down version. Suggested by Peter Miller. * libintl.h.install, libintl.h.glibc: Initial revision. * localealias.c (_nl_expand_alias, read_alias_file): Protect prototypes in type casts by __P. Tue Nov 14 16:43:58 1995 Ulrich Drepper * hash-string.h: Correct prototype for hash_string. Sun Nov 12 12:42:30 1995 Ulrich Drepper * hash-string.h (hash_string): Add prototype. * gettextP.h: Fix copyright. (SWAP): Add prototype. Wed Nov 8 22:56:33 1995 Ulrich Drepper * localealias.c (read_alias_file): Forgot sizeof. Avoid calling *printf function. This introduces a big overhead. Patch by Roland McGrath. Tue Nov 7 14:21:08 1995 Ulrich Drepper * finddomain.c, cat-compat.c: Wrong indentation in #if for stpcpy. * finddomain.c (stpcpy): Define substitution function local. The macro was to flaky. * cat-compat.c: Fix typo. * xopen-msg.sed, linux-msg.sed: While bringing message number to right place only accept digits. * linux-msg.sed, xopen-msg.sed: Now that the counter does not have leading 0s we don't need to remove them. Reported by Marcus Daniels. * Makefile.in (../po/cat-id-tbl.o): Use $(top_srdir) in dependency. Reported by Marcus Daniels. * cat-compat.c: (stpcpy) [!_LIBC && !HAVE_STPCPY]: Define replacement. Generally cleanup using #if instead of #ifndef. * Makefile.in: Correct typos in comment. By Franc,ois Pinard. Mon Nov 6 00:27:02 1995 Ulrich Drepper * Makefile.in (install-src): Don't install libintl.h and libintl.a if we use an available gettext implementation. Sun Nov 5 22:02:08 1995 Ulrich Drepper * libgettext.h: Fix typo: HAVE_CATGETTS -> HAVE_CATGETS. Reported by Franc,ois Pinard. * libgettext.h: Use #if instead of #ifdef/#ifndef. * finddomain.c: Comments describing what has to be done should start with FIXME. Sun Nov 5 19:38:01 1995 Ulrich Drepper * Makefile.in (DISTFILES): Split. Use DISTFILES with normal meaning. DISTFILES.common names the files common to both dist goals. DISTFILES.gettext are the files only distributed in GNU gettext. Sun Nov 5 17:32:54 1995 Ulrich Drepper * dcgettext.c (DCGETTEXT): Correct searching in derived locales. This was necessary since a change in _nl_find_msg several weeks ago. I really don't know this is still not fixed. Sun Nov 5 12:43:12 1995 Ulrich Drepper * loadmsgcat.c (_nl_load_domain): Test for FILENAME == NULL. This might mark a special condition. * finddomain.c (make_entry_rec): Don't make illegal entry as decided. * Makefile.in (dist): Suppress error message when ln failed. Get files from $(srcdir) explicitly. * libgettext.h (gettext_const): Rename to gettext_noop. Fri Nov 3 07:36:50 1995 Ulrich Drepper * finddomain.c (make_entry_rec): Protect against wrong locale names by testing mask. * libgettext.h (gettext_const): Add macro definition. Capitalize macro arguments. Thu Nov 2 23:15:51 1995 Ulrich Drepper * finddomain.c (_nl_find_domain): Test for pointer != NULL before accessing value. Reported by Tom Tromey. * gettext.c (NULL): Define as (void*)0 instad of 0. Reported by Franc,ois Pinard. Mon Oct 30 21:28:52 1995 Ulrich Drepper * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering. Sat Oct 28 23:20:47 1995 Ulrich Drepper * libgettext.h: Disable dcgettext optimization for Solaris 2.3. * localealias.c (alias_compare): Peter Miller reported that tolower in some systems is even dumber than I thought. Protect call by `isupper'. Fri Oct 27 22:22:51 1995 Ulrich Drepper * Makefile.in (libdir, includedir): New variables. (install-src): Install libintl.a and libintl.h in correct dirs. Fri Oct 27 22:07:29 1995 Ulrich Drepper * Makefile.in (SOURCES): Fix typo: intrl.compat.c -> intl-compat.c. * po2tbl.sed.in: Patch for buggy SEDs by Christian von Roques. * localealias.c: Fix typo and superflous test. Reported by Christian von Roques. Fri Oct 6 11:52:05 1995 Ulrich Drepper * finddomain.c (_nl_find_domain): Correct some remainder from the pre-CEN syntax. Now we don't have a constant number of successors anymore. Wed Sep 27 21:41:13 1995 Ulrich Drepper * Makefile.in (DISTFILES): Add libintl.h.glibc. * Makefile.in (dist-libc): Add goal for packing sources for glibc. (COMSRCS, COMHDRS): Splitted to separate sources shared with glibc. * loadmsgcat.c: Forget to continue #if line. * localealias.c: [_LIBC]: Rename strcasecmp to __strcasecmp to keep ANSI C name space clean. * dcgettext.c, finddomain.c: Better comment to last change. * loadmsgcat.c: [_LIBC]: Rename fstat, open, close, read, mmap, and munmap to __fstat, __open, __close, __read, __mmap, and __munmap resp to keep ANSI C name space clean. * finddomain.c: [_LIBC]: Rename stpcpy to __stpcpy to keep ANSI C name space clean. * dcgettext.c: [_LIBC]: Rename getced and stpcpy to __getcwd and __stpcpy resp to keep ANSI C name space clean. * libgettext.h: Include sys/types.h for those old SysV systems out there. Reported by Francesco Potorti`. * loadmsgcat.c (use_mmap): Define if compiled for glibc. * bindtextdom.c: Include all those standard headers unconditionally if _LIBC is defined. * finddomain.c: Fix 2 times defiend -> defined. * textdomain.c: Include libintl.h instead of libgettext.h when compiling for glibc. Include all those standard headers unconditionally if _LIBC is defined. * localealias.c, loadmsgcat.c: Prepare to be compiled in glibc. * gettext.c: Include libintl.h instead of libgettext.h when compiling for glibc. Get NULL from stddef.h if we compile for glibc. * finddomain.c: Include libintl.h instead of libgettext.h when compiling for glibc. Include all those standard headers unconditionally if _LIBC is defined. * dcgettext.c: Include all those standard headers unconditionally if _LIBC is defined. * dgettext.c: If compiled in glibc include libintl.h instead of libgettext.h. (locale.h): Don't rely on HAVE_LOCALE_H when compiling for glibc. * dcgettext.c: If compiled in glibc include libintl.h instead of libgettext.h. (getcwd): Don't rely on HAVE_GETCWD when compiling for glibc. * bindtextdom.c: If compiled in glibc include libintl.h instead of libgettext.h. Mon Sep 25 22:23:06 1995 Ulrich Drepper * localealias.c (_nl_expand_alias): Don't call bsearch if NMAP <= 0. Reported by Marcus Daniels. * cat-compat.c (bindtextdomain): String used in putenv must not be recycled. Reported by Marcus Daniels. * libgettext.h (__USE_GNU_GETTEXT): Additional symbol to signal that we use GNU gettext library. * cat-compat.c (bindtextdomain): Fix bug with the strange stpcpy replacement. Reported by Nelson Beebe. Sat Sep 23 08:23:51 1995 Ulrich Drepper * cat-compat.c: Include for stpcpy prototype. * localealias.c (read_alias_file): While expand strdup code temporary variable `cp' hided higher level variable with same name. Rename to `tp'. * textdomain.c (textdomain): Avoid warning by using temporary variable in strdup code. * finddomain.c (_nl_find_domain): Remove unused variable `application'. Thu Sep 21 15:51:44 1995 Ulrich Drepper * localealias.c (alias_compare): Use strcasecmp() only if available. Else use implementation in place. * intl-compat.c: Wrapper functions now call *__ functions instead of __*. * libgettext.h: Declare prototypes for *__ functions instead for __*. * cat-compat.c, loadmsgcat.c: Don't use xmalloc, xstrdup, and stpcpy. These functions are not part of the standard libc and so prevent libintl.a from being used standalone. * bindtextdom.c: Don't use xmalloc, xstrdup, and stpcpy. These functions are not part of the standard libc and so prevent libintl.a from being used standalone. Rename to bindtextdomain__ if not used in GNU C Library. * dgettext.c: Rename function to dgettext__ if not used in GNU C Library. * gettext.c: Don't use xmalloc, xstrdup, and stpcpy. These functions are not part of the standard libc and so prevent libintl.a from being used standalone. Functions now called gettext__ if not used in GNU C Library. * dcgettext.c, localealias.c, textdomain.c, finddomain.c: Don't use xmalloc, xstrdup, and stpcpy. These functions are not part of the standard libc and so prevent libintl.a from being used standalone. Sun Sep 17 23:14:49 1995 Ulrich Drepper * finddomain.c: Correct some bugs in handling of CEN standard locale definitions. Thu Sep 7 01:49:28 1995 Ulrich Drepper * finddomain.c: Implement CEN syntax. * gettextP.h (loaded_domain): Extend number of successors to 31. Sat Aug 19 19:25:29 1995 Ulrich Drepper * Makefile.in (aliaspath): Remove path to X11 locale dir. * Makefile.in: Make install-src depend on install. This helps gettext to install the sources and other packages can use the install goal. Sat Aug 19 15:19:33 1995 Ulrich Drepper * Makefile.in (uninstall): Remove stuff installed by install-src. Tue Aug 15 13:13:53 1995 Ulrich Drepper * VERSION.in: Initial revision. * Makefile.in (DISTFILES): Add VERSION file. This is not necessary for gettext, but for other packages using this library. Tue Aug 15 06:16:44 1995 Ulrich Drepper * gettextP.h (_nl_find_domain): New prototype after changing search strategy. * finddomain.c (_nl_find_domain): We now try only to find a specified catalog. Fall back to other catalogs listed in the locale list is now done in __dcgettext. * dcgettext.c (__dcgettext): Now we provide message fall back even to different languages. I.e. if a message is not available in one language all the other in the locale list a tried. Formerly fall back was only possible within one language. Implemented by moving one loop from _nl_find_domain to here. Mon Aug 14 23:45:50 1995 Ulrich Drepper * Makefile.in (gettextsrcdir): Directory where source of GNU gettext library are made available. (INSTALL, INSTALL_DATA): Programs used for installing sources. (gettext-src): New. Rule to install GNU gettext sources for use in gettextize shell script. Sun Aug 13 14:40:48 1995 Ulrich Drepper * loadmsgcat.c (_nl_load_domain): Use mmap for loading only when munmap function is also available. * Makefile.in (install): Depend on `all' goal. Wed Aug 9 11:04:33 1995 Ulrich Drepper * localealias.c (read_alias_file): Do not overwrite '\n' when terminating alias value string. * localealias.c (read_alias_file): Handle long lines. Ignore the rest not fitting in the buffer after the initial `fgets' call. Wed Aug 9 00:54:29 1995 Ulrich Drepper * gettextP.h (_nl_load_domain): Add prototype, replacing prototype for _nl_load_msg_cat. * finddomain.c (_nl_find_domain): Remove unneeded variable filename and filename_len. (expand_alias): Remove prototype because functions does not exist anymore. * localealias.c (read_alias_file): Change type of fname_len parameter to int. (xmalloc): Add prototype. * loadmsgcat.c: Better prototypes for xmalloc. Tue Aug 8 22:30:39 1995 Ulrich Drepper * finddomain.c (_nl_find_domain): Allow alias name to be constructed from the four components. * Makefile.in (aliaspath): New variable. Set to preliminary value. (SOURCES): Add localealias.c. (OBJECTS): Add localealias.o. * gettextP.h: Add prototype for _nl_expand_alias. * finddomain.c: Aliasing handled in intl/localealias.c. * localealias.c: Aliasing for locale names. * bindtextdom.c: Better prototypes for xmalloc and xstrdup. Mon Aug 7 23:47:42 1995 Ulrich Drepper * Makefile.in (DISTFILES): gettext.perl is now found in misc/. * cat-compat.c (bindtextdomain): Correct implementation. dirname parameter was not used. Reported by Marcus Daniels. * gettextP.h (loaded_domain): New fields `successor' and `decided' for oo, lazy message handling implementation. * dcgettext.c: Adopt for oo, lazy message handliing. Now we can inherit translations from less specific locales. (find_msg): New function. * loadmsgcat.c, finddomain.c: Complete rewrite. Implement oo, lazy message handling :-). We now have an additional environment variable `LANGUAGE' with a higher priority than LC_ALL for the LC_MESSAGE locale. Here we can set a colon separated list of specifications each of the form `language[_territory[.codeset]][@modifier]'. Sat Aug 5 09:55:42 1995 Ulrich Drepper * finddomain.c (unistd.h): Include to get _PC_PATH_MAX defined on system having it. Fri Aug 4 22:42:00 1995 Ulrich Drepper * finddomain.c (stpcpy): Include prototype. * Makefile.in (dist): Remove `copying instead' message. Wed Aug 2 18:52:03 1995 Ulrich Drepper * Makefile.in (ID, TAGS): Do not use $^. Tue Aug 1 20:07:11 1995 Ulrich Drepper * Makefile.in (TAGS, ID): Use $^ as command argument. (TAGS): Give etags -o option t write to current directory, not $(srcdir). (ID): Use $(srcdir) instead os $(top_srcdir)/src. (distclean): Remove ID. Sun Jul 30 11:51:46 1995 Ulrich Drepper * Makefile.in (gnulocaledir): New variable, always using share/ for data directory. (DEFS): Add GNULOCALEDIR, used in finddomain.c. * finddomain.c (_nl_default_dirname): Set to GNULOCALEDIR, because it always has to point to the directory where GNU gettext Library writes it to. * intl-compat.c (textdomain, bindtextdomain): Undefine macros before function definition. Sat Jul 22 01:10:02 1995 Ulrich Drepper * libgettext.h (_LIBINTL_H): Protect definition in case where this file is included as libgettext.h on Solaris machines. Add comment about this. Wed Jul 19 02:36:42 1995 Ulrich Drepper * intl-compat.c (textdomain): Correct typo. Wed Jul 19 01:51:35 1995 Ulrich Drepper * dcgettext.c (dcgettext): Function now called __dcgettext. * dgettext.c (dgettext): Now called __dgettext and calls __dcgettext. * gettext.c (gettext): Function now called __gettext and calls __dgettext. * textdomain.c (textdomain): Function now called __textdomain. * bindtextdom.c (bindtextdomain): Function now called __bindtextdomain. * intl-compat.c: Initial revision. * Makefile.in (SOURCES): Add intl-compat.c. (OBJECTS): We always compile the GNU gettext library functions. OBJECTS contains all objects but cat-compat.o, ../po/cat-if-tbl.o, and intl-compat.o. (GETTOBJS): Contains now only intl-compat.o. * libgettext.h: Re-include protection matches dualistic character of libgettext.h. For all functions in GNU gettext library define __ counter part. * finddomain.c (strchr): Define as index if not found in C library. (_nl_find_domain): For relative paths paste / in between. Tue Jul 18 16:37:45 1995 Ulrich Drepper * loadmsgcat.c, finddomain.c: Add inclusion of sys/types.h. * xopen-msg.sed: Fix bug with `msgstr ""' lines. A little bit better comments. Tue Jul 18 01:18:27 1995 Ulrich Drepper * Makefile.in: po-mode.el, makelinks, combine-sh are now found in ../misc. * po-mode.el, makelinks, combine-sh, elisp-comp: Moved to ../misc/. * libgettext.h, gettextP.h, gettext.h: Uniform test for __STDC__. Sun Jul 16 22:33:02 1995 Ulrich Drepper * Makefile.in (INSTALL, INSTALL_DATA): New variables. (install-data, uninstall): Install/uninstall .elc file. * po-mode.el (Installation comment): Add .pox as possible extension of .po files. Sun Jul 16 13:23:27 1995 Ulrich Drepper * elisp-comp: Complete new version by Franc,ois: This does not fail when not compiling in the source directory. Sun Jul 16 00:12:17 1995 Ulrich Drepper * Makefile.in (../po/cat-id-tbl.o): Use $(MAKE) instead of make for recursive make. * Makefile.in (.el.elc): Use $(SHELL) instead of /bin/sh. (install-exec): Add missing dummy goal. (install-data, uninstall): @ in multi-line shell command at beginning, not in front of echo. Reported by Eric Backus. Sat Jul 15 00:21:28 1995 Ulrich Drepper * Makefile.in (DISTFILES): Rename libgettext.perl to gettext.perl to fit in 14 chars file systems. * gettext.perl: Rename to gettext.perl to fit in 14 chars file systems. Thu Jul 13 23:17:20 1995 Ulrich Drepper * cat-compat.c: If !STDC_HEADERS try to include malloc.h. Thu Jul 13 20:55:02 1995 Ulrich Drepper * po2tbl.sed.in: Pretty printing. * linux-msg.sed, xopen-msg.sed: Correct bugs with handling substitute flags in branches. * hash-string.h (hash_string): Old K&R compilers don't under stand `unsigned char'. * gettext.h (nls_uint32): Some old K&R compilers (eg HP) don't understand `unsigned int'. * cat-compat.c (msg_to_cat_id): De-ANSI-fy prototypes. Thu Jul 13 01:34:33 1995 Ulrich Drepper * Makefile.in (ELCFILES): New variable. (DISTFILES): Add elisp-comp. Add implicit rule for .el -> .elc compilation. (install-data): install $ELCFILES (clean): renamed po-to-tbl and po-to-msg to po2tbl and po2msg resp. * elisp-comp: Initial revision Wed Jul 12 16:14:52 1995 Ulrich Drepper * Makefile.in: cat-id-tbl.c is now found in po/. This enables us to use an identical intl/ directory in all packages. * dcgettext.c (dcgettext): hashing does not work for table size <= 2. * textdomain.c: fix typo (#if def -> #if defined) Tue Jul 11 18:44:43 1995 Ulrich Drepper * Makefile.in (stamp-cat-id): use top_srcdir to address source files (DISTFILES,distclean): move tupdate.perl to src/ * po-to-tbl.sed.in: add additional jump to clear change flag to recognize multiline strings Tue Jul 11 01:32:50 1995 Ulrich Drepper * textdomain.c: Protect inclusion of stdlib.h and string.h. * loadmsgcat.c: Protect inclusion of stdlib.h. * libgettext.h: Protect inclusion of locale.h. Allow use in C++ programs. Define NULL is not happened already. * Makefile.in (DISTFILES): ship po-to-tbl.sed.in instead of po-to-tbl.sed. (distclean): remove po-to-tbl.sed and tupdate.perl. * tupdate.perl.in: Substitute Perl path even in exec line. Don't include entries without translation from old .po file. Tue Jul 4 00:41:51 1995 Ulrich Drepper * tupdate.perl.in: use "Updated: " in msgid "". * cat-compat.c: Fix typo (LOCALDIR -> LOCALEDIR). Define getenv if !__STDC__. * bindtextdom.c: Protect stdlib.h and string.h inclusion. Define free if !__STDC__. * finddomain.c: Change DEF_MSG_DOM_DIR to LOCALEDIR. Define free if !__STDC__. * cat-compat.c: Change DEF_MSG_DOM_DIR to LOCALEDIR. Mon Jul 3 23:56:30 1995 Ulrich Drepper * Makefile.in: Use LOCALEDIR instead of DEF_MSG_DOM_DIR. Remove unneeded $(srcdir) from Makefile.in dependency. * makelinks: Add copyright and short description. * po-mode.el: Last version for 0.7. * tupdate.perl.in: Fix die message. * dcgettext.c: Protect include of string.h. * gettext.c: Protect include of stdlib.h and further tries to get NULL. * finddomain.c: Some corrections in includes. * Makefile.in (INCLUDES): Prune list correct path to Makefile.in. * po-to-tbl.sed: Adopt for new .po file format. * linux-msg.sed, xopen-msg.sed: Adopt for new .po file format. Sun Jul 2 23:55:03 1995 Ulrich Drepper * tupdate.perl.in: Complete rewrite for new .po file format. Sun Jul 2 02:06:50 1995 Ulrich Drepper * First official release. This directory contains all the code needed to internationalize own packages. It provides functions which allow to use the X/Open catgets function with an interface like the Uniforum gettext function. For system which does not have neither of those a complete implementation is provided. lgeneral-1.3.1/intl/loadmsgcat.c0000664000175000017500000001374512140770456013500 00000000000000/* Load needed message catalogs. Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #if defined STDC_HEADERS || defined _LIBC # include #endif #if defined HAVE_UNISTD_H || defined _LIBC # include #endif #if (defined HAVE_MMAP && defined HAVE_MUNMAP) || defined _LIBC # include #endif #include "gettext.h" #include "gettextP.h" /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ISO C functions. This is required by the standard because some ISO C functions will require linking with this object file and the name space must not be polluted. */ # define open __open # define close __close # define read __read # define mmap __mmap # define munmap __munmap #endif /* We need a sign, whether a new catalog was loaded, which can be associated with all translations. This is important if the translations are cached by one of GCC's features. */ int _nl_msg_cat_cntr = 0; /* Load the message catalogs specified by FILENAME. If it is no valid message catalog do nothing. */ void internal_function _nl_load_domain (domain_file) struct loaded_l10nfile *domain_file; { int fd; size_t size; struct stat st; struct mo_file_header *data = (struct mo_file_header *) -1; #if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ || defined _LIBC int use_mmap = 0; #endif struct loaded_domain *domain; domain_file->decided = 1; domain_file->data = NULL; /* If the record does not represent a valid locale the FILENAME might be NULL. This can happen when according to the given specification the locale file name is different for XPG and CEN syntax. */ if (domain_file->filename == NULL) return; /* Try to open the addressed file. */ fd = open (domain_file->filename, O_RDONLY); if (fd == -1) return; /* We must know about the size of the file. */ if (fstat (fd, &st) != 0 || (size = (size_t) st.st_size) != st.st_size || size < sizeof (struct mo_file_header)) { /* Something went wrong. */ close (fd); return; } #if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ || defined _LIBC /* Now we are ready to load the file. If mmap() is available we try this first. If not available or it failed we try to load it. */ data = (struct mo_file_header *) mmap (NULL, size, PROT_READ, MAP_PRIVATE, fd, 0); if (data != (struct mo_file_header *) -1) { /* mmap() call was successful. */ close (fd); use_mmap = 1; } #endif /* If the data is not yet available (i.e. mmap'ed) we try to load it manually. */ if (data == (struct mo_file_header *) -1) { size_t to_read; char *read_ptr; data = (struct mo_file_header *) malloc (size); if (data == NULL) return; to_read = size; read_ptr = (char *) data; do { long int nb = (long int) read (fd, read_ptr, to_read); if (nb == -1) { close (fd); return; } read_ptr += nb; to_read -= nb; } while (to_read > 0); close (fd); } /* Using the magic number we can test whether it really is a message catalog file. */ if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED) { /* The magic number is wrong: not a message catalog file. */ #if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ || defined _LIBC if (use_mmap) munmap ((caddr_t) data, size); else #endif free (data); return; } domain_file->data = (struct loaded_domain *) malloc (sizeof (struct loaded_domain)); if (domain_file->data == NULL) return; domain = (struct loaded_domain *) domain_file->data; domain->data = (char *) data; #if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ || defined _LIBC domain->use_mmap = use_mmap; #endif domain->mmap_size = size; domain->must_swap = data->magic != _MAGIC; /* Fill in the information about the available tables. */ switch (W (domain->must_swap, data->revision)) { case 0: domain->nstrings = W (domain->must_swap, data->nstrings); domain->orig_tab = (struct string_desc *) ((char *) data + W (domain->must_swap, data->orig_tab_offset)); domain->trans_tab = (struct string_desc *) ((char *) data + W (domain->must_swap, data->trans_tab_offset)); domain->hash_size = W (domain->must_swap, data->hash_tab_size); domain->hash_tab = (nls_uint32 *) ((char *) data + W (domain->must_swap, data->hash_tab_offset)); break; default: /* This is an illegal revision. */ #if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ || defined _LIBC if (use_mmap) munmap ((caddr_t) data, size); else #endif free (data); free (domain); domain_file->data = NULL; return; } /* Show that one domain is changed. This might make some cached translations invalid. */ ++_nl_msg_cat_cntr; } #ifdef _LIBC void internal_function _nl_unload_domain (domain) struct loaded_domain *domain; { if (domain->use_mmap) munmap ((caddr_t) domain->data, domain->mmap_size); else free ((void *) domain->data); free (domain); } #endif lgeneral-1.3.1/intl/l10nflist.c0000664000175000017500000002424412140770456013172 00000000000000/* Handle list of needed message catalogs Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. Contributed by Ulrich Drepper , 1995. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include #endif #if defined HAVE_STRING_H || defined _LIBC # ifndef _GNU_SOURCE # define _GNU_SOURCE 1 # endif # include #else # include # ifndef memcpy # define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) # endif #endif #if !HAVE_STRCHR && !defined _LIBC # ifndef strchr # define strchr index # endif #endif #if defined _LIBC || defined HAVE_ARGZ_H # include #endif #include #include #if defined STDC_HEADERS || defined _LIBC # include #endif #include "loadinfo.h" /* On some strange systems still no definition of NULL is found. Sigh! */ #ifndef NULL # if defined __STDC__ && __STDC__ # define NULL ((void *) 0) # else # define NULL 0 # endif #endif /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ANSI C functions. This is required by the standard because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ # ifndef stpcpy # define stpcpy(dest, src) __stpcpy(dest, src) # endif #else # ifndef HAVE_STPCPY static char *stpcpy PARAMS ((char *dest, const char *src)); # endif #endif /* Define function which are usually not available. */ #if !defined _LIBC && !defined HAVE___ARGZ_COUNT /* Returns the number of strings in ARGZ. */ static size_t argz_count__ PARAMS ((const char *argz, size_t len)); static size_t argz_count__ (argz, len) const char *argz; size_t len; { size_t count = 0; while (len > 0) { size_t part_len = strlen (argz); argz += part_len + 1; len -= part_len + 1; count++; } return count; } # undef __argz_count # define __argz_count(argz, len) argz_count__ (argz, len) #endif /* !_LIBC && !HAVE___ARGZ_COUNT */ #if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY /* Make '\0' separated arg vector ARGZ printable by converting all the '\0's except the last into the character SEP. */ static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep)); static void argz_stringify__ (argz, len, sep) char *argz; size_t len; int sep; { while (len > 0) { size_t part_len = strlen (argz); argz += part_len; len -= part_len + 1; if (len > 0) *argz++ = sep; } } # undef __argz_stringify # define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep) #endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */ #if !defined _LIBC && !defined HAVE___ARGZ_NEXT static char *argz_next__ PARAMS ((char *argz, size_t argz_len, const char *entry)); static char * argz_next__ (argz, argz_len, entry) char *argz; size_t argz_len; const char *entry; { if (entry) { if (entry < argz + argz_len) entry = strchr (entry, '\0') + 1; return entry >= argz + argz_len ? NULL : (char *) entry; } else if (argz_len > 0) return argz; else return 0; } # undef __argz_next # define __argz_next(argz, len, entry) argz_next__ (argz, len, entry) #endif /* !_LIBC && !HAVE___ARGZ_NEXT */ /* Return number of bits set in X. */ static int pop PARAMS ((int x)); static inline int pop (x) int x; { /* We assume that no more than 16 bits are used. */ x = ((x & ~0x5555) >> 1) + (x & 0x5555); x = ((x & ~0x3333) >> 2) + (x & 0x3333); x = ((x >> 4) + x) & 0x0f0f; x = ((x >> 8) + x) & 0xff; return x; } struct loaded_l10nfile * _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language, territory, codeset, normalized_codeset, modifier, special, sponsor, revision, filename, do_allocate) struct loaded_l10nfile **l10nfile_list; const char *dirlist; size_t dirlist_len; int mask; const char *language; const char *territory; const char *codeset; const char *normalized_codeset; const char *modifier; const char *special; const char *sponsor; const char *revision; const char *filename; int do_allocate; { char *abs_filename; struct loaded_l10nfile *last = NULL; struct loaded_l10nfile *retval; char *cp; size_t entries; int cnt; /* Allocate room for the full file name. */ abs_filename = (char *) malloc (dirlist_len + strlen (language) + ((mask & TERRITORY) != 0 ? strlen (territory) + 1 : 0) + ((mask & XPG_CODESET) != 0 ? strlen (codeset) + 1 : 0) + ((mask & XPG_NORM_CODESET) != 0 ? strlen (normalized_codeset) + 1 : 0) + (((mask & XPG_MODIFIER) != 0 || (mask & CEN_AUDIENCE) != 0) ? strlen (modifier) + 1 : 0) + ((mask & CEN_SPECIAL) != 0 ? strlen (special) + 1 : 0) + (((mask & CEN_SPONSOR) != 0 || (mask & CEN_REVISION) != 0) ? (1 + ((mask & CEN_SPONSOR) != 0 ? strlen (sponsor) + 1 : 0) + ((mask & CEN_REVISION) != 0 ? strlen (revision) + 1 : 0)) : 0) + 1 + strlen (filename) + 1); if (abs_filename == NULL) return NULL; retval = NULL; last = NULL; /* Construct file name. */ memcpy (abs_filename, dirlist, dirlist_len); __argz_stringify (abs_filename, dirlist_len, ':'); cp = abs_filename + (dirlist_len - 1); *cp++ = '/'; cp = stpcpy (cp, language); if ((mask & TERRITORY) != 0) { *cp++ = '_'; cp = stpcpy (cp, territory); } if ((mask & XPG_CODESET) != 0) { *cp++ = '.'; cp = stpcpy (cp, codeset); } if ((mask & XPG_NORM_CODESET) != 0) { *cp++ = '.'; cp = stpcpy (cp, normalized_codeset); } if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0) { /* This component can be part of both syntaces but has different leading characters. For CEN we use `+', else `@'. */ *cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@'; cp = stpcpy (cp, modifier); } if ((mask & CEN_SPECIAL) != 0) { *cp++ = '+'; cp = stpcpy (cp, special); } if ((mask & (CEN_SPONSOR | CEN_REVISION)) != 0) { *cp++ = ','; if ((mask & CEN_SPONSOR) != 0) cp = stpcpy (cp, sponsor); if ((mask & CEN_REVISION) != 0) { *cp++ = '_'; cp = stpcpy (cp, revision); } } *cp++ = '/'; stpcpy (cp, filename); /* Look in list of already loaded domains whether it is already available. */ last = NULL; for (retval = *l10nfile_list; retval != NULL; retval = retval->next) if (retval->filename != NULL) { int compare = strcmp (retval->filename, abs_filename); if (compare == 0) /* We found it! */ break; if (compare < 0) { /* It's not in the list. */ retval = NULL; break; } last = retval; } if (retval != NULL || do_allocate == 0) { free (abs_filename); return retval; } retval = (struct loaded_l10nfile *) malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len) * (1 << pop (mask)) * sizeof (struct loaded_l10nfile *))); if (retval == NULL) return NULL; retval->filename = abs_filename; retval->decided = (__argz_count (dirlist, dirlist_len) != 1 || ((mask & XPG_CODESET) != 0 && (mask & XPG_NORM_CODESET) != 0)); retval->data = NULL; if (last == NULL) { retval->next = *l10nfile_list; *l10nfile_list = retval; } else { retval->next = last->next; last->next = retval; } entries = 0; /* If the DIRLIST is a real list the RETVAL entry corresponds not to a real file. So we have to use the DIRLIST separation mechanism of the inner loop. */ cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask; for (; cnt >= 0; --cnt) if ((cnt & ~mask) == 0 && ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0) && ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0)) { /* Iterate over all elements of the DIRLIST. */ char *dir = NULL; while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir)) != NULL) retval->successor[entries++] = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt, language, territory, codeset, normalized_codeset, modifier, special, sponsor, revision, filename, 1); } retval->successor[entries] = NULL; return retval; } /* Normalize codeset name. There is no standard for the codeset names. Normalization allows the user to use any of the common names. */ const char * _nl_normalize_codeset (codeset, name_len) const unsigned char *codeset; size_t name_len; { int len = 0; int only_digit = 1; char *retval; char *wp; size_t cnt; for (cnt = 0; cnt < name_len; ++cnt) if (isalnum (codeset[cnt])) { ++len; if (isalpha (codeset[cnt])) only_digit = 0; } retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1); if (retval != NULL) { if (only_digit) wp = stpcpy (retval, "iso"); else wp = retval; for (cnt = 0; cnt < name_len; ++cnt) if (isalpha (codeset[cnt])) *wp++ = tolower (codeset[cnt]); else if (isdigit (codeset[cnt])) *wp++ = codeset[cnt]; *wp = '\0'; } return (const char *) retval; } /* @@ begin of epilog @@ */ /* We don't want libintl.a to depend on any other library. So we avoid the non-standard function stpcpy. In GNU C Library this function is available, though. Also allow the symbol HAVE_STPCPY to be defined. */ #if !_LIBC && !HAVE_STPCPY static char * stpcpy (dest, src) char *dest; const char *src; { while ((*dest++ = *src++) != '\0') /* Do nothing. */ ; return dest - 1; } #endif lgeneral-1.3.1/intl/bindtextdom.c0000664000175000017500000001302712140770456013674 00000000000000/* Implementation of the bindtextdomain(3) function Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include #endif #if defined STDC_HEADERS || defined _LIBC # include #else # ifdef HAVE_MALLOC_H # include # else void free (); # endif #endif #if defined HAVE_STRING_H || defined _LIBC # include #else # include # ifndef memcpy # define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) # endif #endif #ifdef _LIBC # include #else # include "libgettext.h" #endif #include "gettext.h" #include "gettextP.h" /* The internal variables in the standalone libintl.a must have different names than the internal variables in GNU libc, otherwise programs using libintl.a cannot be linked statically. */ #if !defined _LIBC # define _nl_default_dirname _nl_default_dirname__ # define _nl_domain_bindings _nl_domain_bindings__ #endif /* @@ end of prolog @@ */ /* Contains the default location of the message catalogs. */ extern const char _nl_default_dirname[]; /* List with bindings of specific domains. */ extern struct binding *_nl_domain_bindings; /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define BINDTEXTDOMAIN __bindtextdomain # ifndef strdup # define strdup(str) __strdup (str) # endif #else # define BINDTEXTDOMAIN bindtextdomain__ #endif /* Specify that the DOMAINNAME message catalog will be found in DIRNAME rather than in the system locale data base. */ char * BINDTEXTDOMAIN (domainname, dirname) const char *domainname; const char *dirname; { struct binding *binding; /* Some sanity checks. */ if (domainname == NULL || domainname[0] == '\0') return NULL; for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) { int compare = strcmp (domainname, binding->domainname); if (compare == 0) /* We found it! */ break; if (compare < 0) { /* It is not in the list. */ binding = NULL; break; } } if (dirname == NULL) /* The current binding has be to returned. */ return binding == NULL ? (char *) _nl_default_dirname : binding->dirname; if (binding != NULL) { /* The domain is already bound. If the new value and the old one are equal we simply do nothing. Otherwise replace the old binding. */ if (strcmp (dirname, binding->dirname) != 0) { char *new_dirname; if (strcmp (dirname, _nl_default_dirname) == 0) new_dirname = (char *) _nl_default_dirname; else { #if defined _LIBC || defined HAVE_STRDUP new_dirname = strdup (dirname); if (new_dirname == NULL) return NULL; #else size_t len = strlen (dirname) + 1; new_dirname = (char *) malloc (len); if (new_dirname == NULL) return NULL; memcpy (new_dirname, dirname, len); #endif } if (binding->dirname != _nl_default_dirname) free (binding->dirname); binding->dirname = new_dirname; } } else { /* We have to create a new binding. */ #if !defined _LIBC && !defined HAVE_STRDUP size_t len; #endif struct binding *new_binding = (struct binding *) malloc (sizeof (*new_binding)); if (new_binding == NULL) return NULL; #if defined _LIBC || defined HAVE_STRDUP new_binding->domainname = strdup (domainname); if (new_binding->domainname == NULL) return NULL; #else len = strlen (domainname) + 1; new_binding->domainname = (char *) malloc (len); if (new_binding->domainname == NULL) return NULL; memcpy (new_binding->domainname, domainname, len); #endif if (strcmp (dirname, _nl_default_dirname) == 0) new_binding->dirname = (char *) _nl_default_dirname; else { #if defined _LIBC || defined HAVE_STRDUP new_binding->dirname = strdup (dirname); if (new_binding->dirname == NULL) return NULL; #else len = strlen (dirname) + 1; new_binding->dirname = (char *) malloc (len); if (new_binding->dirname == NULL) return NULL; memcpy (new_binding->dirname, dirname, len); #endif } /* Now enqueue it. */ if (_nl_domain_bindings == NULL || strcmp (domainname, _nl_domain_bindings->domainname) < 0) { new_binding->next = _nl_domain_bindings; _nl_domain_bindings = new_binding; } else { binding = _nl_domain_bindings; while (binding->next != NULL && strcmp (domainname, binding->next->domainname) > 0) binding = binding->next; new_binding->next = binding->next; binding->next = new_binding; } binding = new_binding; } return binding->dirname; } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__bindtextdomain, bindtextdomain); #endif lgeneral-1.3.1/intl/gettext.h0000664000175000017500000000620512140770456013044 00000000000000/* Internal header for GNU gettext internationalization functions. Copyright (C) 1995, 1997 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _GETTEXT_H #define _GETTEXT_H 1 #include #if HAVE_LIMITS_H || _LIBC # include #endif /* @@ end of prolog @@ */ /* The magic number of the GNU message catalog format. */ #define _MAGIC 0x950412de #define _MAGIC_SWAPPED 0xde120495 /* Revision number of the currently used .mo (binary) file format. */ #define MO_REVISION_NUMBER 0 /* The following contortions are an attempt to use the C preprocessor to determine an unsigned integral type that is 32 bits wide. An alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but doing that would require that the configure script compile and *run* the resulting executable. Locally running cross-compiled executables is usually not possible. */ #if __STDC__ # define UINT_MAX_32_BITS 4294967295U #else # define UINT_MAX_32_BITS 0xFFFFFFFF #endif /* If UINT_MAX isn't defined, assume it's a 32-bit type. This should be valid for all systems GNU cares about because that doesn't include 16-bit systems, and only modern systems (that certainly have ) have 64+-bit integral types. */ #ifndef UINT_MAX # define UINT_MAX UINT_MAX_32_BITS #endif #if UINT_MAX == UINT_MAX_32_BITS typedef unsigned nls_uint32; #else # if USHRT_MAX == UINT_MAX_32_BITS typedef unsigned short nls_uint32; # else # if ULONG_MAX == UINT_MAX_32_BITS typedef unsigned long nls_uint32; # else /* The following line is intended to throw an error. Using #error is not portable enough. */ "Cannot determine unsigned 32-bit data type." # endif # endif #endif /* Header for binary .mo file format. */ struct mo_file_header { /* The magic number. */ nls_uint32 magic; /* The revision number of the file format. */ nls_uint32 revision; /* The number of strings pairs. */ nls_uint32 nstrings; /* Offset of table with start offsets of original strings. */ nls_uint32 orig_tab_offset; /* Offset of table with start offsets of translation strings. */ nls_uint32 trans_tab_offset; /* Size of hashing table. */ nls_uint32 hash_tab_size; /* Offset of first hashing entry. */ nls_uint32 hash_tab_offset; }; struct string_desc { /* Length of addressed string. */ nls_uint32 length; /* Offset of string in file. */ nls_uint32 offset; }; /* @@ begin of epilog @@ */ #endif /* gettext.h */ lgeneral-1.3.1/intl/po2tbl.sed.in0000664000175000017500000000456512140770456013522 00000000000000# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets # Copyright (C) 1995 Free Software Foundation, Inc. # Ulrich Drepper , 1995. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # 1 { i\ /* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\ \ #if HAVE_CONFIG_H\ # include \ #endif\ \ #include "libgettext.h"\ \ const struct _msg_ent _msg_tbl[] = { h s/.*/0/ x } # # Write msgid entries in C array form. # /^msgid/ { s/msgid[ ]*\(".*"\)/ {\1/ tb # Append the next line :b N # Look whether second part is continuation line. s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/ # Yes, then branch. ta # Because we assume that the input file correctly formed the line # just read cannot be again be a msgid line. So it's safe to ignore # it. s/\(.*\)\n.*/\1/ bc # We found a continuation line. But before printing insert '\'. :a s/\(.*\)\(\n.*\)/\1\\\2/ P # We cannot use D here. s/.*\n\(.*\)/\1/ # Some buggy seds do not clear the `successful substitution since last ``t''' # flag on `N', so we do a `t' here to clear it. tb # Not reached :c x # The following nice solution is by # Bruno td # Increment a decimal number in pattern space. # First hide trailing `9' digits. :d s/9\(_*\)$/_\1/ td # Assure at least one digit is available. s/^\(_*\)$/0\1/ # Increment the last digit. s/8\(_*\)$/9\1/ s/7\(_*\)$/8\1/ s/6\(_*\)$/7\1/ s/5\(_*\)$/6\1/ s/4\(_*\)$/5\1/ s/3\(_*\)$/4\1/ s/2\(_*\)$/3\1/ s/1\(_*\)$/2\1/ s/0\(_*\)$/1\1/ # Convert the hidden `9' digits to `0's. s/_/0/g x G s/\(.*\)\n\([0-9]*\)/\1, \2},/ s/\(.*\)"$/\1/ p } # # Last line. # $ { i\ };\ g s/0*\(.*\)/int _msg_tbl_length = \1;/p } d lgeneral-1.3.1/intl/explodename.c0000664000175000017500000001101012140770456013642 00000000000000/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. Contributed by Ulrich Drepper , 1995. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include #endif #if defined STDC_HEADERS || defined _LIBC # include #endif #if defined HAVE_STRING_H || defined _LIBC # include #else # include #endif #include #include "loadinfo.h" /* On some strange systems still no definition of NULL is found. Sigh! */ #ifndef NULL # if defined __STDC__ && __STDC__ # define NULL ((void *) 0) # else # define NULL 0 # endif #endif /* @@ end of prolog @@ */ int _nl_explode_name (name, language, modifier, territory, codeset, normalized_codeset, special, sponsor, revision) char *name; const char **language; const char **modifier; const char **territory; const char **codeset; const char **normalized_codeset; const char **special; const char **sponsor; const char **revision; { enum { undecided, xpg, cen } syntax; char *cp; int mask; *modifier = NULL; *territory = NULL; *codeset = NULL; *normalized_codeset = NULL; *special = NULL; *sponsor = NULL; *revision = NULL; /* Now we determine the single parts of the locale name. First look for the language. Termination symbols are `_' and `@' if we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */ mask = 0; syntax = undecided; *language = cp = name; while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@' && cp[0] != '+' && cp[0] != ',') ++cp; if (*language == cp) /* This does not make sense: language has to be specified. Use this entry as it is without exploding. Perhaps it is an alias. */ cp = strchr (*language, '\0'); else if (cp[0] == '_') { /* Next is the territory. */ cp[0] = '\0'; *territory = ++cp; while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@' && cp[0] != '+' && cp[0] != ',' && cp[0] != '_') ++cp; mask |= TERRITORY; if (cp[0] == '.') { /* Next is the codeset. */ syntax = xpg; cp[0] = '\0'; *codeset = ++cp; while (cp[0] != '\0' && cp[0] != '@') ++cp; mask |= XPG_CODESET; if (*codeset != cp && (*codeset)[0] != '\0') { *normalized_codeset = _nl_normalize_codeset (*codeset, cp - *codeset); if (strcmp (*codeset, *normalized_codeset) == 0) free ((char *) *normalized_codeset); else mask |= XPG_NORM_CODESET; } } } if (cp[0] == '@' || (syntax != xpg && cp[0] == '+')) { /* Next is the modifier. */ syntax = cp[0] == '@' ? xpg : cen; cp[0] = '\0'; *modifier = ++cp; while (syntax == cen && cp[0] != '\0' && cp[0] != '+' && cp[0] != ',' && cp[0] != '_') ++cp; mask |= XPG_MODIFIER | CEN_AUDIENCE; } if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_')) { syntax = cen; if (cp[0] == '+') { /* Next is special application (CEN syntax). */ cp[0] = '\0'; *special = ++cp; while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_') ++cp; mask |= CEN_SPECIAL; } if (cp[0] == ',') { /* Next is sponsor (CEN syntax). */ cp[0] = '\0'; *sponsor = ++cp; while (cp[0] != '\0' && cp[0] != '_') ++cp; mask |= CEN_SPONSOR; } if (cp[0] == '_') { /* Next is revision (CEN syntax). */ cp[0] = '\0'; *revision = ++cp; mask |= CEN_REVISION; } } /* For CEN syntax values it might be important to have the separator character in the file name, not for XPG syntax. */ if (syntax == xpg) { if (*territory != NULL && (*territory)[0] == '\0') mask &= ~TERRITORY; if (*codeset != NULL && (*codeset)[0] == '\0') mask &= ~XPG_CODESET; if (*modifier != NULL && (*modifier)[0] == '\0') mask &= ~XPG_MODIFIER; } return mask; } lgeneral-1.3.1/intl/localealias.c0000664000175000017500000002355512575247507013643 00000000000000/* Handle aliases for locale names. Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. Written by Ulrich Drepper , 1995. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #ifdef __GNUC__ # define alloca __builtin_alloca # define HAVE_ALLOCA 1 #else # if defined HAVE_ALLOCA_H || defined _LIBC # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca char *alloca (); # endif # endif # endif #endif #if defined STDC_HEADERS || defined _LIBC # include #else char *getenv (); # ifdef HAVE_MALLOC_H # include # else void free (); # endif #endif #if defined HAVE_STRING_H || defined _LIBC # ifndef _GNU_SOURCE # define _GNU_SOURCE 1 # endif # include #else # include # ifndef memcpy # define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) # endif #endif #if !HAVE_STRCHR && !defined _LIBC # ifndef strchr # define strchr index # endif #endif #include "gettext.h" #include "gettextP.h" /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ANSI C functions. This is required by the standard because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ # define strcasecmp __strcasecmp # define mempcpy __mempcpy # define HAVE_MEMPCPY 1 /* We need locking here since we can be called from different places. */ # include __libc_lock_define_initialized (static, lock); #endif /* For those loosing systems which don't have `alloca' we have to add some additional code emulating it. */ #ifdef HAVE_ALLOCA /* Nothing has to be done. */ # define ADD_BLOCK(list, address) /* nothing */ # define FREE_BLOCKS(list) /* nothing */ #else struct block_list { void *address; struct block_list *next; }; # define ADD_BLOCK(list, addr) \ do { \ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \ /* If we cannot get a free block we cannot add the new element to \ the list. */ \ if (newp != NULL) { \ newp->address = (addr); \ newp->next = (list); \ (list) = newp; \ } \ } while (0) # define FREE_BLOCKS(list) \ do { \ while (list != NULL) { \ struct block_list *old = list; \ list = list->next; \ free (old); \ } \ } while (0) # undef alloca # define alloca(size) (malloc (size)) #endif /* have alloca */ struct alias_map { const char *alias; const char *value; }; static char *string_space = NULL; static size_t string_space_act = 0; static size_t string_space_max = 0; static struct alias_map *map; static size_t nmap = 0; static size_t maxmap = 0; /* Prototypes for local functions. */ static size_t read_alias_file PARAMS ((const char *fname, int fname_len)) internal_function; static void extend_alias_table PARAMS ((void)); static int alias_compare PARAMS ((const struct alias_map *map1, const struct alias_map *map2)); const char * _nl_expand_alias (name) const char *name; { static const char *locale_alias_path = LOCALE_ALIAS_PATH; struct alias_map *retval; const char *result = NULL; size_t added; #ifdef _LIBC __libc_lock_lock (lock); #endif do { struct alias_map item; item.alias = name; if (nmap > 0) retval = (struct alias_map *) bsearch (&item, map, nmap, sizeof (struct alias_map), (int (*) PARAMS ((const void *, const void *)) ) alias_compare); else retval = NULL; /* We really found an alias. Return the value. */ if (retval != NULL) { result = retval->value; break; } /* Perhaps we can find another alias file. */ added = 0; while (added == 0 && locale_alias_path[0] != '\0') { const char *start; while (locale_alias_path[0] == ':') ++locale_alias_path; start = locale_alias_path; while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':') ++locale_alias_path; if (start < locale_alias_path) added = read_alias_file (start, locale_alias_path - start); } } while (added != 0); #ifdef _LIBC __libc_lock_unlock (lock); #endif return result; } static size_t internal_function read_alias_file (fname, fname_len) const char *fname; int fname_len; { #ifndef HAVE_ALLOCA struct block_list *block_list = NULL; #endif FILE *fp; char *full_fname; size_t added; static const char aliasfile[] = "/locale.alias"; full_fname = (char *) alloca (fname_len + sizeof aliasfile); ADD_BLOCK (block_list, full_fname); #ifdef HAVE_MEMPCPY mempcpy (mempcpy (full_fname, fname, fname_len), aliasfile, sizeof aliasfile); #else memcpy (full_fname, fname, fname_len); memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile); #endif fp = fopen (full_fname, "rb"); if (fp == NULL) { FREE_BLOCKS (block_list); return 0; } added = 0; while (!feof (fp)) { /* It is a reasonable approach to use a fix buffer here because a) we are only interested in the first two fields b) these fields must be usable as file names and so must not be that long */ unsigned char buf[BUFSIZ]; unsigned char *alias; unsigned char *value; unsigned char *cp; if (fgets (buf, sizeof buf, fp) == NULL) /* EOF reached. */ break; /* Possibly not the whole line fits into the buffer. Ignore the rest of the line. */ if (strchr (buf, '\n') == NULL) { char altbuf[BUFSIZ]; do if (fgets (altbuf, sizeof altbuf, fp) == NULL) /* Make sure the inner loop will be left. The outer loop will exit at the `feof' test. */ break; while (strchr (altbuf, '\n') == NULL); } cp = buf; /* Ignore leading white space. */ while (isspace (cp[0])) ++cp; /* A leading '#' signals a comment line. */ if (cp[0] != '\0' && cp[0] != '#') { alias = cp++; while (cp[0] != '\0' && !isspace (cp[0])) ++cp; /* Terminate alias name. */ if (cp[0] != '\0') *cp++ = '\0'; /* Now look for the beginning of the value. */ while (isspace (cp[0])) ++cp; if (cp[0] != '\0') { size_t alias_len; size_t value_len; value = cp++; while (cp[0] != '\0' && !isspace (cp[0])) ++cp; /* Terminate value. */ if (cp[0] == '\n') { /* This has to be done to make the following test for the end of line possible. We are looking for the terminating '\n' which do not overwrite here. */ *cp++ = '\0'; *cp = '\n'; } else if (cp[0] != '\0') *cp++ = '\0'; if (nmap >= maxmap) extend_alias_table (); alias_len = strlen (alias) + 1; value_len = strlen (value) + 1; if (string_space_act + alias_len + value_len > string_space_max) { /* Increase size of memory pool. */ size_t new_size = (string_space_max + (alias_len + value_len > 1024 ? alias_len + value_len : 1024)); char *new_pool = (char *) realloc (string_space, new_size); if (new_pool == NULL) { FREE_BLOCKS (block_list); return added; } string_space = new_pool; string_space_max = new_size; } map[nmap].alias = memcpy (&string_space[string_space_act], alias, alias_len); string_space_act += alias_len; map[nmap].value = memcpy (&string_space[string_space_act], value, value_len); string_space_act += value_len; ++nmap; ++added; } } } /* Should we test for ferror()? I think we have to silently ignore errors. --drepper */ fclose (fp); if (added > 0) qsort (map, nmap, sizeof (struct alias_map), (int (*) PARAMS ((const void *, const void *))) alias_compare); FREE_BLOCKS (block_list); return added; } static void extend_alias_table () { size_t new_size; struct alias_map *new_map; new_size = maxmap == 0 ? 100 : 2 * maxmap; new_map = (struct alias_map *) realloc (map, (new_size * sizeof (struct alias_map))); if (new_map == NULL) /* Simply don't extend: we don't have any more core. */ return; map = new_map; maxmap = new_size; } #ifdef _LIBC static void __attribute__ ((unused)) free_mem (void) { if (string_space != NULL) free (string_space); if (map != NULL) free (map); } text_set_element (__libc_subfreeres, free_mem); #endif static int alias_compare (map1, map2) const struct alias_map *map1; const struct alias_map *map2; { #if defined _LIBC || defined HAVE_STRCASECMP return strcasecmp (map1->alias, map2->alias); #else const unsigned char *p1 = (const unsigned char *) map1->alias; const unsigned char *p2 = (const unsigned char *) map2->alias; unsigned char c1, c2; if (p1 == p2) return 0; do { /* I know this seems to be odd but the tolower() function in some systems libc cannot handle nonalpha characters. */ c1 = isupper (*p1) ? tolower (*p1) : *p1; c2 = isupper (*p2) ? tolower (*p2) : *p2; if (c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); return c1 - c2; #endif } lgeneral-1.3.1/intl/linux-msg.sed0000664000175000017500000000520512140770456013626 00000000000000# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file # Copyright (C) 1995 Free Software Foundation, Inc. # Ulrich Drepper , 1995. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # # The first directive in the .msg should be the definition of the # message set number. We use always set number 1. # 1 { i\ $set 1 # Automatically created by po2msg.sed h s/.*/0/ x } # # Mitch's old catalog format does not allow comments. # # We copy the original message as a comment into the .msg file. # /^msgid/ { s/msgid[ ]*"// # # This does not work now with the new format. # /"$/! { # s/\\$// # s/$/ ... (more lines following)"/ # } x # The following nice solution is by # Bruno td # Increment a decimal number in pattern space. # First hide trailing `9' digits. :d s/9\(_*\)$/_\1/ td # Assure at least one digit is available. s/^\(_*\)$/0\1/ # Increment the last digit. s/8\(_*\)$/9\1/ s/7\(_*\)$/8\1/ s/6\(_*\)$/7\1/ s/5\(_*\)$/6\1/ s/4\(_*\)$/5\1/ s/3\(_*\)$/4\1/ s/2\(_*\)$/3\1/ s/1\(_*\)$/2\1/ s/0\(_*\)$/1\1/ # Convert the hidden `9' digits to `0's. s/_/0/g x G s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p } # # The .msg file contains, other then the .po file, only the translations # but each given a unique ID. Starting from 1 and incrementing by 1 for # each message we assign them to the messages. # It is important that the .po file used to generate the cat-id-tbl.c file # (with po-to-tbl) is the same as the one used here. (At least the order # of declarations must not be changed.) # /^msgstr/ { s/msgstr[ ]*"\(.*\)"/# \1/ # Clear substitution flag. tb # Append the next line. :b N # Look whether second part is continuation line. s/\(.*\n\)"\(.*\)"/\1\2/ # Yes, then branch. ta P D # Note that D includes a jump to the start!! # We found a continuation line. But before printing insert '\'. :a s/\(.*\)\(\n.*\)/\1\\\2/ P # We cannot use D here. s/.*\n\(.*\)/\1/ tb } d lgeneral-1.3.1/intl/intl-compat.c0000664000175000017500000000315612140770456013604 00000000000000/* intl-compat.c - Stub functions to call gettext functions from GNU gettext Library. Copyright (C) 1995 Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include "libgettext.h" /* @@ end of prolog @@ */ #undef gettext #undef dgettext #undef dcgettext #undef textdomain #undef bindtextdomain char * bindtextdomain (domainname, dirname) const char *domainname; const char *dirname; { return bindtextdomain__ (domainname, dirname); } char * dcgettext (domainname, msgid, category) const char *domainname; const char *msgid; int category; { return dcgettext__ (domainname, msgid, category); } char * dgettext (domainname, msgid) const char *domainname; const char *msgid; { return dgettext__ (domainname, msgid); } char * gettext (msgid) const char *msgid; { return gettext__ (msgid); } char * textdomain (domainname) const char *domainname; { return textdomain__ (domainname); } lgeneral-1.3.1/intl/dgettext.c0000664000175000017500000000337212140770456013205 00000000000000/* Implementation of the dgettext(3) function Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include #endif #if defined HAVE_LOCALE_H || defined _LIBC # include #endif #ifdef _LIBC # include #else # include "libgettext.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DGETTEXT __dgettext # define DCGETTEXT __dcgettext #else # define DGETTEXT dgettext__ # define DCGETTEXT dcgettext__ #endif /* Look up MSGID in the DOMAINNAME message catalog of the current LC_MESSAGES locale. */ char * DGETTEXT (domainname, msgid) const char *domainname; const char *msgid; { return DCGETTEXT (domainname, msgid, LC_MESSAGES); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__dgettext, dgettext); #endif lgeneral-1.3.1/intl/cat-compat.c0000664000175000017500000001474112140770456013407 00000000000000/* Compatibility code for gettext-using-catgets interface. Copyright (C) 1995, 1997 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include #ifdef STDC_HEADERS # include # include #else char *getenv (); # ifdef HAVE_MALLOC_H # include # endif #endif #ifdef HAVE_NL_TYPES_H # include #endif #include "libgettext.h" /* @@ end of prolog @@ */ /* XPG3 defines the result of `setlocale (category, NULL)' as: ``Directs `setlocale()' to query `category' and return the current setting of `local'.'' However it does not specify the exact format. And even worse: POSIX defines this not at all. So we can use this feature only on selected system (e.g. those using GNU C Library). */ #ifdef _LIBC # define HAVE_LOCALE_NULL #endif /* The catalog descriptor. */ static nl_catd catalog = (nl_catd) -1; /* Name of the default catalog. */ static const char default_catalog_name[] = "messages"; /* Name of currently used catalog. */ static const char *catalog_name = default_catalog_name; /* Get ID for given string. If not found return -1. */ static int msg_to_cat_id PARAMS ((const char *msg)); /* Substitution for systems lacking this function in their C library. */ #if !_LIBC && !HAVE_STPCPY static char *stpcpy PARAMS ((char *dest, const char *src)); #endif /* Set currently used domain/catalog. */ char * textdomain (domainname) const char *domainname; { nl_catd new_catalog; char *new_name; size_t new_name_len; char *lang; #if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \ && defined HAVE_LOCALE_NULL lang = setlocale (LC_MESSAGES, NULL); #else lang = getenv ("LC_ALL"); if (lang == NULL || lang[0] == '\0') { lang = getenv ("LC_MESSAGES"); if (lang == NULL || lang[0] == '\0') lang = getenv ("LANG"); } #endif if (lang == NULL || lang[0] == '\0') lang = "C"; /* See whether name of currently used domain is asked. */ if (domainname == NULL) return (char *) catalog_name; if (domainname[0] == '\0') domainname = default_catalog_name; /* Compute length of added path element. */ new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang) + sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1 + sizeof (".cat"); new_name = (char *) malloc (new_name_len); if (new_name == NULL) return NULL; strcpy (new_name, PACKAGE); new_catalog = catopen (new_name, 0); if (new_catalog == (nl_catd) -1) { /* NLSPATH search didn't work, try absolute path */ sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang, PACKAGE); new_catalog = catopen (new_name, 0); if (new_catalog == (nl_catd) -1) { free (new_name); return (char *) catalog_name; } } /* Close old catalog. */ if (catalog != (nl_catd) -1) catclose (catalog); if (catalog_name != default_catalog_name) free ((char *) catalog_name); catalog = new_catalog; catalog_name = new_name; return (char *) catalog_name; } char * bindtextdomain (domainname, dirname) const char *domainname; const char *dirname; { #if HAVE_SETENV || HAVE_PUTENV char *old_val, *new_val, *cp; size_t new_val_len; /* This does not make much sense here but to be compatible do it. */ if (domainname == NULL) return NULL; /* Compute length of added path element. If we use setenv we don't need the first byts for NLSPATH=, but why complicate the code for this peanuts. */ new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname) + sizeof ("/%L/LC_MESSAGES/%N.cat"); old_val = getenv ("NLSPATH"); if (old_val == NULL || old_val[0] == '\0') { old_val = NULL; new_val_len += 1 + sizeof (LOCALEDIR) - 1 + sizeof ("/%L/LC_MESSAGES/%N.cat"); } else new_val_len += strlen (old_val); new_val = (char *) malloc (new_val_len); if (new_val == NULL) return NULL; # if HAVE_SETENV cp = new_val; # else cp = stpcpy (new_val, "NLSPATH="); # endif cp = stpcpy (cp, dirname); cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:"); if (old_val == NULL) { # if __STDC__ stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat"); # else cp = stpcpy (cp, LOCALEDIR); stpcpy (cp, "/%L/LC_MESSAGES/%N.cat"); # endif } else stpcpy (cp, old_val); # if HAVE_SETENV setenv ("NLSPATH", new_val, 1); free (new_val); # else putenv (new_val); /* Do *not* free the environment entry we just entered. It is used from now on. */ # endif #endif return (char *) domainname; } #undef gettext char * gettext (msg) const char *msg; { int msgid; if (msg == NULL || catalog == (nl_catd) -1) return (char *) msg; /* Get the message from the catalog. We always use set number 1. The message ID is computed by the function `msg_to_cat_id' which works on the table generated by `po-to-tbl'. */ msgid = msg_to_cat_id (msg); if (msgid == -1) return (char *) msg; return catgets (catalog, 1, msgid, (char *) msg); } /* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries for the one equal to msg. If it is found return the ID. In case when the string is not found return -1. */ static int msg_to_cat_id (msg) const char *msg; { int cnt; for (cnt = 0; cnt < _msg_tbl_length; ++cnt) if (strcmp (msg, _msg_tbl[cnt]._msg) == 0) return _msg_tbl[cnt]._msg_number; return -1; } /* @@ begin of epilog @@ */ /* We don't want libintl.a to depend on any other library. So we avoid the non-standard function stpcpy. In GNU C Library this function is available, though. Also allow the symbol HAVE_STPCPY to be defined. */ #if !_LIBC && !HAVE_STPCPY static char * stpcpy (dest, src) char *dest; const char *src; { while ((*dest++ = *src++) != '\0') /* Do nothing. */ ; return dest - 1; } #endif lgeneral-1.3.1/intl/gettext.c0000664000175000017500000000362312140770456013040 00000000000000/* Implementation of gettext(3) function. Copyright (C) 1995, 1997 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include #endif #ifdef _LIBC # define __need_NULL # include #else # ifdef STDC_HEADERS # include /* Just for NULL. */ # else # ifdef HAVE_STRING_H # include # else # define NULL ((void *) 0) # endif # endif #endif #ifdef _LIBC # include #else # include "libgettext.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define GETTEXT __gettext # define DGETTEXT __dgettext #else # define GETTEXT gettext__ # define DGETTEXT dgettext__ #endif /* Look up MSGID in the current default message catalog for the current LC_MESSAGES locale. If not found, returns MSGID itself (the default text). */ char * GETTEXT (msgid) const char *msgid; { return DGETTEXT (NULL, msgid); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__gettext, gettext); #endif lgeneral-1.3.1/INSTALL0000664000175000017500000001547212140770461011274 00000000000000Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Type `make install' to install the programs and any data files and documentation. 4. You can remove the program binaries and object files from the source code directory by typing `make clean'. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. lgeneral-1.3.1/COPYING0000664000175000017500000003543312140770461011275 00000000000000 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 lgeneral-1.3.1/config.sub0000775000175000017500000007470712140770461012234 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. timestamp='2004-06-24' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file 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. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit 0;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32r | m32rle | m68000 | m68k | m88k | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | msp430 \ | ns16k | ns32k \ | openrisc | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | msp430-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16c) basic_machine=cr16c-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; or32 | or32-*) basic_machine=or32-unknown os=-coff ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sh64) basic_machine=sh64-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: lgeneral-1.3.1/configure0000775000175000017500000134264112643745057012167 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= PACKAGE_URL= ac_unique_file="Makefile.am" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" gt_needs= ac_header_list= gl_use_threads_default= ac_func_list= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS inst_flag inst_dir dl_lib_flag export_flag dl_flag mixer_flag sound_flag SDL_LIBS SDL_CFLAGS SDL_CONFIG compile_paths_linux_FALSE compile_paths_linux_TRUE INTLINCLUDES MSGCONVFLAGS MSGMERGEFLAGS MSGFMTFLAGS XGETTEXTFLAGS GMOFILES POFILES CATALOGS MSGCONV POSUB LTLIBINTL LIBINTL INTLLIBS INTL_LIBTOOL_SUFFIX_PREFIX INTLOBJS GENCAT INSTOBJEXT DATADIRNAME CATOBJEXT USE_INCLUDED_LIBINTL BUILD_INCLUDED_LIBINTL LTLIBC WINDRES WOE32 WOE32DLL HAVE_WPRINTF HAVE_NEWLOCALE HAVE_SNPRINTF HAVE_ASPRINTF HAVE_POSIX_PRINTF INTL_DEFAULT_VERBOSITY INTL_MACOSX_LIBS GLIBC21 INTLBISON LTLIBICONV LIBICONV LTLIBMULTITHREAD LIBMULTITHREAD LTLIBTHREAD LIBTHREAD LIBPTH_PREFIX LTLIBPTH LIBPTH PRI_MACROS_BROKEN ALLOCA HAVE_VISIBILITY CFLAG_VISIBILITY GLIBC2 XGETTEXT_EXTRA_OPTIONS MSGMERGE XGETTEXT_015 XGETTEXT GMSGFMT_015 MSGFMT_015 GMSGFMT MSGFMT GETTEXT_MACRO_VERSION USE_NLS SED RANLIB AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM EGREP GREP CPP OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC target_os target_vendor target_cpu target host_os host_vendor host_cpu host build_os build_vendor build_cpu build target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking enable_silent_rules enable_nls enable_threads with_gnu_ld enable_rpath with_libpth_prefix with_libiconv_prefix with_included_gettext with_libintl_prefix with_sdl_prefix with_sdl_exec_prefix enable_sdltest enable_sound enable_dl enable_install ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --disable-nls do not use Native Language Support --enable-threads={posix|solaris|pth|windows} specify multithreading API --disable-threads build without multithread safety --disable-rpath do not hardcode runtime library paths --disable-sdltest Do not try to compile and run a test SDL program --disable-sound Disables sound --disable-dl Disable use of dynamic AI modules --disable-install No installation. Played from the source directory. Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-libpth-prefix[=DIR] search for libpth in DIR/include and DIR/lib --without-libpth-prefix don't search for libpth in includedir and libdir --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-included-gettext use the GNU gettext library included here --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir --with-sdl-prefix=PFX Prefix where SDL is installed (optional) --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional) Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES # --------------------------------------------- # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi gt_needs="$gt_needs " as_fn_append ac_header_list " stdlib.h" as_fn_append ac_header_list " unistd.h" as_fn_append ac_header_list " sys/param.h" as_fn_append ac_func_list " symlink" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } if ${ac_cv_target+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= fi if test "$MINIX" = yes; then $as_echo "#define _POSIX_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h $as_echo "#define _MINIX 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_safe_to_define___extensions__=yes else ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h $as_echo "#define _ALL_SOURCE 1" >>confdefs.h $as_echo "#define _GNU_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h am__api_version='1.14' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=lgeneral VERSION=1.3.1 cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi ac_config_headers="$ac_config_headers config.h" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi CFLAGS="$CFLAGS -Wall -std=gnu89" #CFLAGS="-O0 -g -Wall" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lm" >&5 $as_echo_n "checking for main in -lm... " >&6; } if ${ac_cv_lib_m_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_main=yes else ac_cv_lib_m_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_main" >&5 $as_echo "$ac_cv_lib_m_main" >&6; } if test "x$ac_cv_lib_m_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBM 1 _ACEOF LIBS="-lm $LIBS" else as_fn_error $? "maths library is needed" "$LINENO" 5 fi for ac_func in strcasestr do : ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr" if test "x$ac_cv_func_strcasestr" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRCASESTR 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking if mkdir rejects permissions" >&5 $as_echo_n "checking if mkdir rejects permissions... " >&6; } ac_mkdir_perm_broken=yes cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { mkdir("test", 0777) ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_mkdir_perm_broken=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test x$ac_mkdir_perm_broken = xyes ; then cat >>confdefs.h <<_ACEOF #define HAVE_BROKEN_MKDIR 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_mkdir_perm_broken" >&5 $as_echo "$ac_mkdir_perm_broken" >&6; } ALL_LINGUAS="en de" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } GETTEXT_MACRO_VERSION=0.18 # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f messages.po case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$localedir" || localedir='${datadir}/locale' test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= ac_config_commands="$ac_config_commands po-directories" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2 or newer" >&5 $as_echo_n "checking whether we are using the GNU C Library 2 or newer... " >&6; } if ${ac_cv_gnu_library_2+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) && !defined __UCLIBC__ Lucky GNU user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky GNU user" >/dev/null 2>&1; then : ac_cv_gnu_library_2=yes else ac_cv_gnu_library_2=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2" >&5 $as_echo "$ac_cv_gnu_library_2" >&6; } GLIBC2="$ac_cv_gnu_library_2" CFLAG_VISIBILITY= HAVE_VISIBILITY=0 if test -n "$GCC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 $as_echo_n "checking whether the -Werror option is usable... " >&6; } if ${gl_cv_cc_vis_werror+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_cc_vis_werror=yes else gl_cv_cc_vis_werror=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 $as_echo "$gl_cv_cc_vis_werror" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 $as_echo_n "checking for simple visibility declarations... " >&6; } if ${gl_cv_cc_visibility+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden" if test $gl_cv_cc_vis_werror = yes; then CFLAGS="$CFLAGS -Werror" fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void); void dummyfunc (void) {} int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_cc_visibility=yes else gl_cv_cc_visibility=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 $as_echo "$gl_cv_cc_visibility" >&6; } if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" HAVE_VISIBILITY=1 fi fi cat >>confdefs.h <<_ACEOF #define HAVE_VISIBILITY $HAVE_VISIBILITY _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5 $as_echo_n "checking for stdint.h... " >&6; } if ${gl_cv_header_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { uintmax_t i = (uintmax_t) -1; return !i; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_stdint_h=yes else gl_cv_header_stdint_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_h" >&5 $as_echo "$gl_cv_header_stdint_h" >&6; } if test $gl_cv_header_stdint_h = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H_WITH_UINTMAX 1 _ACEOF fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ void *alloca (size_t); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "#define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if ${ac_cv_os_cray+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "webecray" >/dev/null 2>&1; then : ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 $as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi for ac_header in $ac_header_list do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in getpagesize do : ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" if test "x$ac_cv_func_getpagesize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPAGESIZE 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 $as_echo_n "checking for working mmap... " >&6; } if ${ac_cv_func_mmap_fixed_mapped+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_mmap_fixed_mapped=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default /* malloc might have been renamed as rpl_malloc. */ #undef malloc /* Thanks to Mike Haertel and Jim Avera for this test. Here is a matrix of mmap possibilities: mmap private not fixed mmap private fixed at somewhere currently unmapped mmap private fixed at somewhere already mapped mmap shared not fixed mmap shared fixed at somewhere currently unmapped mmap shared fixed at somewhere already mapped For private mappings, we should verify that changes cannot be read() back from the file, nor mmap's back from the file at a different address. (There have been systems where private was not correctly implemented like the infamous i386 svr4.0, and systems where the VM page cache was not coherent with the file system buffer cache like early versions of FreeBSD and possibly contemporary NetBSD.) For shared mappings, we should conversely verify that changes get propagated back to all the places they're supposed to be. Grep wants private fixed already mapped. The main things grep needs to know about mmap are: * does it exist and is it safe to write into the mmap'd area * how to use it (BSD variants) */ #include #include #if !defined STDC_HEADERS && !defined HAVE_STDLIB_H char *malloc (); #endif /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE # ifdef _SC_PAGESIZE # define getpagesize() sysconf(_SC_PAGESIZE) # else /* no _SC_PAGESIZE */ # ifdef HAVE_SYS_PARAM_H # include # ifdef EXEC_PAGESIZE # define getpagesize() EXEC_PAGESIZE # else /* no EXEC_PAGESIZE */ # ifdef NBPG # define getpagesize() NBPG * CLSIZE # ifndef CLSIZE # define CLSIZE 1 # endif /* no CLSIZE */ # else /* no NBPG */ # ifdef NBPC # define getpagesize() NBPC # else /* no NBPC */ # ifdef PAGESIZE # define getpagesize() PAGESIZE # endif /* PAGESIZE */ # endif /* no NBPC */ # endif /* no NBPG */ # endif /* no EXEC_PAGESIZE */ # else /* no HAVE_SYS_PARAM_H */ # define getpagesize() 8192 /* punt totally */ # endif /* no HAVE_SYS_PARAM_H */ # endif /* no _SC_PAGESIZE */ #endif /* no HAVE_GETPAGESIZE */ int main () { char *data, *data2, *data3; const char *cdata2; int i, pagesize; int fd, fd2; pagesize = getpagesize (); /* First, make a file with some known garbage in it. */ data = (char *) malloc (pagesize); if (!data) return 1; for (i = 0; i < pagesize; ++i) *(data + i) = rand (); umask (0); fd = creat ("conftest.mmap", 0600); if (fd < 0) return 2; if (write (fd, data, pagesize) != pagesize) return 3; close (fd); /* Next, check that the tail of a page is zero-filled. File must have non-zero length, otherwise we risk SIGBUS for entire page. */ fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); if (fd2 < 0) return 4; cdata2 = ""; if (write (fd2, cdata2, 1) != 1) return 5; data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); if (data2 == MAP_FAILED) return 6; for (i = 0; i < pagesize; ++i) if (*(data2 + i)) return 7; close (fd2); if (munmap (data2, pagesize)) return 8; /* Next, try to mmap the file at a fixed address which already has something else allocated at it. If we can, also make sure that we see the same garbage. */ fd = open ("conftest.mmap", O_RDWR); if (fd < 0) return 9; if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED, fd, 0L)) return 10; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) return 11; /* Finally, make sure that changes to the mapped area do not percolate back to the file as seen by read(). (This is a bug on some variants of i386 svr4.0.) */ for (i = 0; i < pagesize; ++i) *(data2 + i) = *(data2 + i) + 1; data3 = (char *) malloc (pagesize); if (!data3) return 12; if (read (fd, data3, pagesize) != pagesize) return 13; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data3 + i)) return 14; close (fd); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_mmap_fixed_mapped=yes else ac_cv_func_mmap_fixed_mapped=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 $as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } if test $ac_cv_func_mmap_fixed_mapped = yes; then $as_echo "#define HAVE_MMAP 1" >>confdefs.h fi rm -f conftest.mmap conftest.txt { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether integer division by zero raises SIGFPE" >&5 $as_echo_n "checking whether integer division by zero raises SIGFPE... " >&6; } if ${gt_cv_int_divbyzero_sigfpe+:} false; then : $as_echo_n "(cached) " >&6 else gt_cv_int_divbyzero_sigfpe= case "$host_os" in macos* | darwin[6-9]* | darwin[1-9][0-9]*) # On Mac OS X 10.2 or newer, just assume the same as when cross- # compiling. If we were to perform the real test, 1 Crash Report # dialog window would pop up. case "$host_cpu" in i[34567]86 | x86_64) gt_cv_int_divbyzero_sigfpe="guessing yes" ;; esac ;; esac if test -z "$gt_cv_int_divbyzero_sigfpe"; then if test "$cross_compiling" = yes; then : # Guess based on the CPU. case "$host_cpu" in alpha* | i[34567]86 | x86_64 | m68k | s390*) gt_cv_int_divbyzero_sigfpe="guessing yes";; *) gt_cv_int_divbyzero_sigfpe="guessing no";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include static void sigfpe_handler (int sig) { /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ exit (sig != SIGFPE); } int x = 1; int y = 0; int z; int nan; int main () { signal (SIGFPE, sigfpe_handler); /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) signal (SIGTRAP, sigfpe_handler); #endif /* Linux/SPARC yields signal SIGILL. */ #if defined (__sparc__) && defined (__linux__) signal (SIGILL, sigfpe_handler); #endif z = x / y; nan = y / y; exit (2); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gt_cv_int_divbyzero_sigfpe=yes else gt_cv_int_divbyzero_sigfpe=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_int_divbyzero_sigfpe" >&5 $as_echo "$gt_cv_int_divbyzero_sigfpe" >&6; } case "$gt_cv_int_divbyzero_sigfpe" in *yes) value=1;; *) value=0;; esac cat >>confdefs.h <<_ACEOF #define INTDIV0_RAISES_SIGFPE $value _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 $as_echo_n "checking for inttypes.h... " >&6; } if ${gl_cv_header_inttypes_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { uintmax_t i = (uintmax_t) -1; return !i; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_inttypes_h=yes else gl_cv_header_inttypes_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_inttypes_h" >&5 $as_echo "$gl_cv_header_inttypes_h" >&6; } if test $gl_cv_header_inttypes_h = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_INTTYPES_H_WITH_UINTMAX 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5 $as_echo_n "checking for unsigned long long int... " >&6; } if ${ac_cv_type_unsigned_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_type_unsigned_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* For now, do not test the preprocessor; as of 2007 there are too many implementations with broken preprocessors. Perhaps this can be revisited in 2012. In the meantime, code should not expect #if to work with literals wider than 32 bits. */ /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63; int main () { /* Test availability of runtime routines for shift and division. */ long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | (llmax / ll) | (llmax % ll) | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | (ullmax / ull) | (ullmax % ull)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : else ac_cv_type_unsigned_long_long_int=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5 $as_echo "$ac_cv_type_unsigned_long_long_int" >&6; } if test $ac_cv_type_unsigned_long_long_int = yes; then $as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h fi if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then test $ac_cv_type_unsigned_long_long_int = yes \ && ac_type='unsigned long long' \ || ac_type='unsigned long' cat >>confdefs.h <<_ACEOF #define uintmax_t $ac_type _ACEOF else $as_echo "#define HAVE_UINTMAX_T 1" >>confdefs.h fi for ac_header in inttypes.h do : ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" if test "x$ac_cv_header_inttypes_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_INTTYPES_H 1 _ACEOF fi done if test $ac_cv_header_inttypes_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5 $as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; } if ${gt_cv_inttypes_pri_broken+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef PRId32 char *p = PRId32; #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_inttypes_pri_broken=no else gt_cv_inttypes_pri_broken=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_inttypes_pri_broken" >&5 $as_echo "$gt_cv_inttypes_pri_broken" >&6; } fi if test "$gt_cv_inttypes_pri_broken" = yes; then cat >>confdefs.h <<_ACEOF #define PRI_MACROS_BROKEN 1 _ACEOF PRI_MACROS_BROKEN=1 else PRI_MACROS_BROKEN=0 fi # Check whether --enable-threads was given. if test "${enable_threads+set}" = set; then : enableval=$enable_threads; gl_use_threads=$enableval else if test -n "$gl_use_threads_default"; then gl_use_threads="$gl_use_threads_default" else case "$host_os" in osf*) gl_use_threads=no ;; cygwin*) case `uname -r` in 1.[0-5].*) gl_use_threads=no ;; *) gl_use_threads=yes ;; esac ;; *) gl_use_threads=yes ;; esac fi fi if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # For using : case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it # groks . cc also understands the flag -pthread, but # we don't use it because 1. gcc-2.95 doesn't understand -pthread, # 2. putting a flag into CPPFLAGS that has an effect on the linker # causes the AC_LINK_IFELSE test below to succeed unexpectedly, # leading to wrong values of LIBTHREAD and LTLIBTHREAD. CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac # Some systems optimize for single-threaded programs by default, and # need special flags to disable these optimizations. For example, the # definition of 'errno' in . case "$host_os" in aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac fi if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 $as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; : else enable_rpath=yes fi acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 $as_echo_n "checking for 64-bit host... " >&6; } if ${gl_cv_solaris_64bit+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _LP64 sixtyfour bits #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "sixtyfour bits" >/dev/null 2>&1; then : gl_cv_solaris_64bit=yes else gl_cv_solaris_64bit=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 $as_echo "$gl_cv_solaris_64bit" >&6; } if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" gl_threads_api=none LIBTHREAD= LTLIBTHREAD= LIBMULTITHREAD= LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 $as_echo_n "checking whether imported symbols can be declared weak... " >&6; } if ${gl_cv_have_weak+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_have_weak=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern void xyzzy (); #pragma weak xyzzy int main () { xyzzy(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_have_weak=maybe fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $gl_cv_have_weak = maybe; then if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ELF__ Extensible Linking Format #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Extensible Linking Format" >/dev/null 2>&1; then : gl_cv_have_weak="guessing yes" else gl_cv_have_weak="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #pragma weak fputs int main () { return (fputs == NULL); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_have_weak=yes else gl_cv_have_weak=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 $as_echo "$gl_cv_have_weak" >&6; } if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that # it groks . It's added above, in gl_THREADLIB_EARLY_BODY. ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" if test "x$ac_cv_header_pthread_h" = xyes; then : gl_have_pthread_h=yes else gl_have_pthread_h=no fi if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads gl_have_pthread= # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but # the second one only in libpthread, and lock.c needs it. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pthread_mutex_lock((pthread_mutex_t*)0); pthread_mutexattr_init((pthread_mutexattr_t*)0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_pthread=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) if test -n "$gl_have_pthread"; then # The program links fine without libpthread. But it may actually # need to link with libpthread in order to create multiple threads. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 $as_echo_n "checking for pthread_kill in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_kill=yes else ac_cv_lib_pthread_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 $as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. case "$host_os" in solaris* | hpux*) $as_echo "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h esac fi else # Some library is needed. Try libpthread and libc_r. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 $as_echo_n "checking for pthread_kill in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_kill=yes else ac_cv_lib_pthread_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 $as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : gl_have_pthread=yes LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread fi if test -z "$gl_have_pthread"; then # For FreeBSD 4. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 $as_echo_n "checking for pthread_kill in -lc_r... " >&6; } if ${ac_cv_lib_c_r_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lc_r $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_c_r_pthread_kill=yes else ac_cv_lib_c_r_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 $as_echo "$ac_cv_lib_c_r_pthread_kill" >&6; } if test "x$ac_cv_lib_c_r_pthread_kill" = xyes; then : gl_have_pthread=yes LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r fi fi fi if test -n "$gl_have_pthread"; then gl_threads_api=posix $as_echo "#define USE_POSIX_THREADS 1" >>confdefs.h if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then $as_echo "#define USE_POSIX_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= fi fi fi fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then gl_have_solaristhread= gl_save_LIBS="$LIBS" LIBS="$LIBS -lthread" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { thr_self(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_solaristhread=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" if test -n "$gl_have_solaristhread"; then gl_threads_api=solaris LIBTHREAD=-lthread LTLIBTHREAD=-lthread LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" $as_echo "#define USE_SOLARIS_THREADS 1" >>confdefs.h if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then $as_echo "#define USE_SOLARIS_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= fi fi fi fi if test "$gl_use_threads" = pth; then gl_save_CPPFLAGS="$CPPFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libpth" >&5 $as_echo_n "checking how to link with libpth... " >&6; } if ${ac_cv_libpth_libs+:} false; then : $as_echo_n "(cached) " >&6 else use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libpth-prefix was given. if test "${with_libpth_prefix+set}" = set; then : withval=$with_libpth_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBPTH= LTLIBPTH= INCPTH= LIBPTH_PREFIX= HAVE_LIBPTH= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='pth ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBPTH="${LIBPTH}${LIBPTH:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_a" else LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'pth'; then LIBPTH_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'pth'; then LIBPTH_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCPTH="${INCPTH}${INCPTH:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBPTH="${LIBPTH}${LIBPTH:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBPTH="${LIBPTH}${LIBPTH:+ }$dep" LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$dep" ;; esac done fi else LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name" LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBPTH="${LIBPTH}${LIBPTH:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBPTH="${LIBPTH}${LIBPTH:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-R$found_dir" done fi ac_cv_libpth_libs="$LIBPTH" ac_cv_libpth_ltlibs="$LTLIBPTH" ac_cv_libpth_cppflags="$INCPTH" ac_cv_libpth_prefix="$LIBPTH_PREFIX" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libpth_libs" >&5 $as_echo "$ac_cv_libpth_libs" >&6; } LIBPTH="$ac_cv_libpth_libs" LTLIBPTH="$ac_cv_libpth_ltlibs" INCPTH="$ac_cv_libpth_cppflags" LIBPTH_PREFIX="$ac_cv_libpth_prefix" for element in $INCPTH; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done HAVE_LIBPTH=yes gl_have_pth= gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBPTH" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pth_self(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_pth=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" if test -n "$gl_have_pth"; then gl_threads_api=pth LIBTHREAD="$LIBPTH" LTLIBTHREAD="$LTLIBPTH" LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" $as_echo "#define USE_PTH_THREADS 1" >>confdefs.h if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then $as_echo "#define USE_PTH_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= fi fi else CPPFLAGS="$gl_save_CPPFLAGS" fi fi if test -z "$gl_have_pthread"; then case "$gl_use_threads" in yes | windows | win32) # The 'win32' is for backward compatibility. if { case "$host_os" in mingw*) true;; *) false;; esac }; then gl_threads_api=windows $as_echo "#define USE_WINDOWS_THREADS 1" >>confdefs.h fi ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for multithread API to use" >&5 $as_echo_n "checking for multithread API to use... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_threads_api" >&5 $as_echo "$gl_threads_api" >&6; } if test "$gl_threads_api" = posix; then # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include " if test "x$ac_cv_type_pthread_rwlock_t" = xyes; then : $as_echo "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h fi # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if __FreeBSD__ == 4 error "No, in FreeBSD 4.0 recursive mutexes actually don't work." #elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070) error "No, in Mac OS X < 10.7 recursive mutexes actually don't work." #else int x = (int)PTHREAD_MUTEX_RECURSIVE; return !x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_PTHREAD_MUTEX_RECURSIVE 1" >>confdefs.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi : use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then : withval=$with_libiconv_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBICONV= LTLIBICONV= INCICONV= LIBICONV_PREFIX= HAVE_LIBICONV= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ;; esac done fi else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } if ${am_cv_func_iconv_works+:} false; then : $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi if test "$cross_compiling" = yes; then : case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int result = 0; /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static const char input[] = "\263"; char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; const char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) result |= 16; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_iconv_works=yes else am_cv_func_iconv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi LIBS="$am_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 $as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 $as_echo_n "checking for iconv declaration... " >&6; } if ${am_cv_proto_iconv+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_cv_proto_iconv_arg1="" else am_cv_proto_iconv_arg1="const" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" fi am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_proto_iconv" >&5 $as_echo " $am_cv_proto_iconv" >&6; } cat >>confdefs.h <<_ACEOF #define ICONV_CONST $am_cv_proto_iconv_arg1 _ACEOF fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; } int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : $as_echo "#define HAVE_BUILTIN_EXPECT 1" >>confdefs.h fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext for ac_header in argz.h inttypes.h limits.h unistd.h sys/param.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in getcwd getegid geteuid getgid getuid mempcpy munmap \ stpcpy strcasecmp strdup strtoul tsearch uselocale argz_count \ argz_stringify argz_next __fsetlocking do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_decl "$LINENO" "feof_unlocked" "ac_cv_have_decl_feof_unlocked" "#include " if test "x$ac_cv_have_decl_feof_unlocked" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FEOF_UNLOCKED $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "fgets_unlocked" "ac_cv_have_decl_fgets_unlocked" "#include " if test "x$ac_cv_have_decl_fgets_unlocked" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FGETS_UNLOCKED $ac_have_decl _ACEOF for ac_prog in bison do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_INTLBISON+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$INTLBISON"; then ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_INTLBISON="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi INTLBISON=$ac_cv_prog_INTLBISON if test -n "$INTLBISON"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLBISON" >&5 $as_echo "$INTLBISON" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$INTLBISON" && break done if test -z "$INTLBISON"; then ac_verc_fail=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of bison" >&5 $as_echo_n "checking version of bison... " >&6; } ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5 $as_echo "$ac_prog_version" >&6; } fi if test $ac_verc_fail = yes; then INTLBISON=: fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5 $as_echo_n "checking for long long int... " >&6; } if ${ac_cv_type_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_type_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int if test $ac_cv_type_long_long_int = yes; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef LLONG_MAX # define HALF \ (1LL << (sizeof (long long int) * CHAR_BIT - 2)) # define LLONG_MAX (HALF - 1 + HALF) #endif int main () { long long int n = 1; int i; for (i = 0; ; i++) { long long int m = n << i; if (m >> i != n) return 1; if (LLONG_MAX / 2 < m) break; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_type_long_long_int=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5 $as_echo "$ac_cv_type_long_long_int" >&6; } if test $ac_cv_type_long_long_int = yes; then $as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5 $as_echo_n "checking for wchar_t... " >&6; } if ${gt_cv_c_wchar_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include wchar_t foo = (wchar_t)'\0'; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_wchar_t=yes else gt_cv_c_wchar_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5 $as_echo "$gt_cv_c_wchar_t" >&6; } if test $gt_cv_c_wchar_t = yes; then $as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 $as_echo_n "checking for wint_t... " >&6; } if ${gt_cv_c_wint_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include wint_t foo = (wchar_t)'\0'; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_wint_t=yes else gt_cv_c_wint_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5 $as_echo "$gt_cv_c_wint_t" >&6; } if test $gt_cv_c_wint_t = yes; then $as_echo "#define HAVE_WINT_T 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5 $as_echo_n "checking for intmax_t... " >&6; } if ${gt_cv_c_intmax_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_STDINT_H_WITH_UINTMAX #include #endif #if HAVE_INTTYPES_H_WITH_UINTMAX #include #endif int main () { intmax_t x = -1; return !x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_intmax_t=yes else gt_cv_c_intmax_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_intmax_t" >&5 $as_echo "$gt_cv_c_intmax_t" >&6; } if test $gt_cv_c_intmax_t = yes; then $as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf() supports POSIX/XSI format strings" >&5 $as_echo_n "checking whether printf() supports POSIX/XSI format strings... " >&6; } if ${gt_cv_func_printf_posix+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __NetBSD__ || defined __BEOS__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ notposix #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "notposix" >/dev/null 2>&1; then : gt_cv_func_printf_posix="guessing no" else gt_cv_func_printf_posix="guessing yes" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* The string "%2$d %1$d", with dollar characters protected from the shell's dollar expansion (possibly an autoconf bug). */ static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; static char buf[100]; int main () { sprintf (buf, format, 33, 55); return (strcmp (buf, "55 33") != 0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gt_cv_func_printf_posix=yes else gt_cv_func_printf_posix=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_printf_posix" >&5 $as_echo "$gt_cv_func_printf_posix" >&6; } case $gt_cv_func_printf_posix in *yes) $as_echo "#define HAVE_POSIX_PRINTF 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5 $as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; } if ${ac_cv_gnu_library_2_1+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif #ifdef __UCLIBC__ Lucky user #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky" >/dev/null 2>&1; then : ac_cv_gnu_library_2_1=yes else ac_cv_gnu_library_2_1=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5 $as_echo "$ac_cv_gnu_library_2_1" >&6; } GLIBC21="$ac_cv_gnu_library_2_1" for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5 $as_echo_n "checking for SIZE_MAX... " >&6; } if ${gl_cv_size_max+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_size_max= cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_STDINT_H #include #endif #ifdef SIZE_MAX Found it #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Found it" >/dev/null 2>&1; then : gl_cv_size_max=yes fi rm -f conftest* if test -z "$gl_cv_size_max"; then if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1" "#include #include "; then : else size_t_bits_minus_1= fi if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint" "#include "; then : else fits_in_uint= fi if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then if test $fits_in_uint = 1; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include extern size_t foo; extern unsigned long foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : fits_in_uint=0 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $fits_in_uint = 1; then gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" else gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" fi else gl_cv_size_max='((size_t)~(size_t)0)' fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_size_max" >&5 $as_echo "$gl_cv_size_max" >&6; } if test "$gl_cv_size_max" != yes; then cat >>confdefs.h <<_ACEOF #define SIZE_MAX $gl_cv_size_max _ACEOF fi for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF fi done for ac_func in $ac_func_list do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 $as_echo_n "checking for working fcntl.h... " >&6; } if ${gl_cv_header_working_fcntl_h+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_header_working_fcntl_h=cross-compiling else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include # include # defined sleep(n) _sleep ((n) * 1000) #endif #include #ifndef O_NOATIME #define O_NOATIME 0 #endif #ifndef O_NOFOLLOW #define O_NOFOLLOW 0 #endif static int const constants[] = { O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY }; int main () { int result = !constants; #if HAVE_SYMLINK { static char const sym[] = "conftest.sym"; if (symlink ("/dev/null", sym) != 0) result |= 2; else { int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); if (fd >= 0) { close (fd); result |= 4; } } if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else { int fd = open (sym, O_RDONLY | O_NOFOLLOW); if (fd >= 0) { close (fd); result |= 4; } } unlink (sym); } #endif { static char const file[] = "confdefs.h"; int fd = open (file, O_RDONLY | O_NOATIME); if (fd < 0) result |= 8; else { struct stat st0; if (fstat (fd, &st0) != 0) result |= 16; else { char c; sleep (1); if (read (fd, &c, 1) != 1) result |= 24; else { if (close (fd) != 0) result |= 32; else { struct stat st1; if (stat (file, &st1) != 0) result |= 40; else if (st0.st_atime != st1.st_atime) result |= 64; } } } } } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_header_working_fcntl_h=yes else case $? in #( 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5 $as_echo "$gl_cv_header_working_fcntl_h" >&6; } case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac cat >>confdefs.h <<_ACEOF #define HAVE_WORKING_O_NOATIME $ac_val _ACEOF case $gl_cv_header_working_fcntl_h in #( *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac cat >>confdefs.h <<_ACEOF #define HAVE_WORKING_O_NOFOLLOW $ac_val _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi case "$enable_silent_rules" in yes) INTL_DEFAULT_VERBOSITY=0;; no) INTL_DEFAULT_VERBOSITY=1;; *) INTL_DEFAULT_VERBOSITY=1;; esac ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" if test "x$ac_cv_type_ptrdiff_t" = xyes; then : else $as_echo "#define ptrdiff_t long" >>confdefs.h fi for ac_header in features.h stddef.h stdlib.h string.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in asprintf fwprintf newlocale putenv setenv setlocale \ snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include " if test "x$ac_cv_have_decl__snprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL__SNPRINTF $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "_snwprintf" "ac_cv_have_decl__snwprintf" "#include " if test "x$ac_cv_have_decl__snwprintf" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL__SNWPRINTF $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "#include " if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETC_UNLOCKED $ac_have_decl _ACEOF case $gt_cv_func_printf_posix in *yes) HAVE_POSIX_PRINTF=1 ;; *) HAVE_POSIX_PRINTF=0 ;; esac if test "$ac_cv_func_asprintf" = yes; then HAVE_ASPRINTF=1 else HAVE_ASPRINTF=0 fi if test "$ac_cv_func_snprintf" = yes; then HAVE_SNPRINTF=1 else HAVE_SNPRINTF=0 fi if test "$ac_cv_func_newlocale" = yes; then HAVE_NEWLOCALE=1 else HAVE_NEWLOCALE=0 fi if test "$ac_cv_func_wprintf" = yes; then HAVE_WPRINTF=1 else HAVE_WPRINTF=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; } if ${am_cv_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char* cs = nl_langinfo(CODESET); return !cs; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_langinfo_codeset=yes else am_cv_langinfo_codeset=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 $as_echo "$am_cv_langinfo_codeset" >&6; } if test $am_cv_langinfo_codeset = yes; then $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if ${gt_cv_val_LC_MESSAGES+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_val_LC_MESSAGES=yes else gt_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_val_LC_MESSAGES" >&5 $as_echo "$gt_cv_val_LC_MESSAGES" >&6; } if test $gt_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi if test "$enable_shared" = yes; then case "$host_os" in mingw* | cygwin*) is_woe32dll=yes ;; *) is_woe32dll=no ;; esac else is_woe32dll=no fi WOE32DLL=$is_woe32dll case "$host_os" in mingw* | cygwin*) is_woe32=yes ;; *) is_woe32=no ;; esac WOE32=$is_woe32 if test $WOE32 = yes; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. set dummy ${ac_tool_prefix}windres; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_WINDRES+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDRES"; then ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDRES="${ac_tool_prefix}windres" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi WINDRES=$ac_cv_prog_WINDRES if test -n "$WINDRES"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5 $as_echo "$WINDRES" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_WINDRES"; then ac_ct_WINDRES=$WINDRES # Extract the first word of "windres", so it can be a program name with args. set dummy windres; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_WINDRES+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_WINDRES"; then ac_cv_prog_ac_ct_WINDRES="$ac_ct_WINDRES" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_WINDRES="windres" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_WINDRES=$ac_cv_prog_ac_ct_WINDRES if test -n "$ac_ct_WINDRES"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_WINDRES" >&5 $as_echo "$ac_ct_WINDRES" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_WINDRES" = x; then WINDRES="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac WINDRES=$ac_ct_WINDRES fi else WINDRES="$ac_cv_prog_WINDRES" fi fi case "$host_os" in hpux*) LTLIBC="" ;; *) LTLIBC="-lc" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no LIBINTL= LTLIBINTL= POSUB= case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether included gettext is requested" >&5 $as_echo_n "checking whether included gettext is requested... " >&6; } # Check whether --with-included-gettext was given. if test "${with_included_gettext+set}" = set; then : withval=$with_included_gettext; nls_cv_force_use_gnu_gettext=$withval else nls_cv_force_use_gnu_gettext=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nls_cv_force_use_gnu_gettext" >&5 $as_echo "$nls_cv_force_use_gnu_gettext" >&6; } nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } if eval \${$gt_func_gnugettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libc=yes" else eval "$gt_func_gnugettext_libc=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$gt_func_gnugettext_libc { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then : withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBINTL= LTLIBINTL= INCINTL= LIBINTL_PREFIX= HAVE_LIBINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if eval \${$gt_func_gnugettext_libintl+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libintl=yes" else eval "$gt_func_gnugettext_libintl=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi eval ac_res=\$$gt_func_gnugettext_libintl { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test "$gt_use_preinstalled_gnugettext" != "yes"; then nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="\${top_builddir}/intl/libintl.a $LIBICONV $LIBTHREAD" LTLIBINTL="\${top_builddir}/intl/libintl.a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then CATOBJEXT=.gmo fi if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h else USE_NLS=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 $as_echo_n "checking whether to use NLS... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 $as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 $as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 $as_echo_n "checking how to link with libintl... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 $as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h fi POSUB=po fi if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi nls_cv_header_intl= nls_cv_header_libgt= DATADIRNAME=share INSTOBJEXT=.mo GENCAT=gencat INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi INTL_LIBTOOL_SUFFIX_PREFIX= INTLLIBS="$LIBINTL" XGETTEXTFLAGS= MSGFMTFLAGS=-v MSGMERGEFLAGS= MSGCONVFLAGS=--to-code=iso-8859-1 INTLINCLUDES= # Extract the first word of "msgconv", so it can be a program name with args. set dummy msgconv; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGCONV+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGCONV in [\\/]* | ?:[\\/]*) ac_cv_path_MSGCONV="$MSGCONV" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGCONV="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_MSGCONV" && ac_cv_path_MSGCONV="cat" ;; esac fi MSGCONV=$ac_cv_path_MSGCONV if test -n "$MSGCONV"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGCONV" >&5 $as_echo "$MSGCONV" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test "x$MSGCONV" = xcat && MSGCONVFLAGS= if test x$USE_NLS = xyes -a x$XGETTEXT != "x:" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether xgettext needs --from-code" >&5 $as_echo_n "checking whether xgettext needs --from-code... " >&6; } ac_xgettext_needs_from_code=error ac_xgettext_from_code=--from-code=iso-8859-1 cat <ac_tmp.c int main() { _("äöüÜÄÖß"); } EOF $XGETTEXT -k_ $ac_xgettext_from_code ac_tmp.c >/dev/null 2>&1 && ac_xgettext_needs_from_code=yes $XGETTEXT -k_ ac_tmp.c >/dev/null 2>&1 && ac_xgettext_needs_from_code=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_xgettext_needs_from_code" >&5 $as_echo "$ac_xgettext_needs_from_code" >&6; } if test $ac_xgettext_needs_from_code = yes ; then XGETTEXTFLAGS="$XGETTEXTFLAGS $ac_xgettext_from_code" elif test $ac_xgettext_needs_from_code = error ; then as_fn_error $? "Both invocations of $XGETTEXT failed!" "$LINENO" 5 fi rm -f ac_tmp.c fi if test x$USE_INCLUDED_LIBINTL = xyes ; then INTLINCLUDES="-I\$(top_srcdir)/intl -I\$(top_builddir)/intl" fi if test "x$CATALOGS" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5 $as_echo_n "checking for catalogs to be installed... " >&6; }; for l in $ALL_LINGUAS ; do CATALOGS="$CATALOGS$l$CATOBJEXT " done { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALL_LINGUAS" >&5 $as_echo "$ALL_LINGUAS" >&6; } fi if test "x$POFILES" = x ; then for l in $ALL_LINGUAS ; do POFILES="$POFILES${l}.po " done fi if test "x$GMOFILES" = x ; then for l in $ALL_LINGUAS ; do GMOFILES="$GMOFILES$l$CATOBJEXT " done fi ac_paths_determ=generic ac_can_determ_paths=no cat >>confdefs.h <<_ACEOF #define PATHS_GENERIC 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_can_determ_paths" >&5 $as_echo "$ac_can_determ_paths" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: executable's path determination strategy... $ac_paths_determ" >&5 $as_echo "executable's path determination strategy... $ac_paths_determ" >&6; } if test x$ac_paths_determ = xlinux; then compile_paths_linux_TRUE= compile_paths_linux_FALSE='#' else compile_paths_linux_TRUE='#' compile_paths_linux_FALSE= fi # Check whether --with-sdl-prefix was given. if test "${with_sdl_prefix+set}" = set; then : withval=$with_sdl_prefix; sdl_prefix="$withval" else sdl_prefix="" fi # Check whether --with-sdl-exec-prefix was given. if test "${with_sdl_exec_prefix+set}" = set; then : withval=$with_sdl_exec_prefix; sdl_exec_prefix="$withval" else sdl_exec_prefix="" fi # Check whether --enable-sdltest was given. if test "${enable_sdltest+set}" = set; then : enableval=$enable_sdltest; else enable_sdltest=yes fi if test x$sdl_exec_prefix != x ; then sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix" if test x${SDL_CONFIG+set} != xset ; then SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config fi fi if test x$sdl_prefix != x ; then sdl_args="$sdl_args --prefix=$sdl_prefix" if test x${SDL_CONFIG+set} != xset ; then SDL_CONFIG=$sdl_prefix/bin/sdl-config fi fi PATH="$prefix/bin:$prefix/usr/bin:$PATH" # Extract the first word of "sdl-config", so it can be a program name with args. set dummy sdl-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_SDL_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $SDL_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_SDL_CONFIG="$SDL_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_SDL_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_SDL_CONFIG" && ac_cv_path_SDL_CONFIG="no" ;; esac fi SDL_CONFIG=$ac_cv_path_SDL_CONFIG if test -n "$SDL_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SDL_CONFIG" >&5 $as_echo "$SDL_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi min_sdl_version=1.1.4 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL - version >= $min_sdl_version" >&5 $as_echo_n "checking for SDL - version >= $min_sdl_version... " >&6; } no_sdl="" if test "$SDL_CONFIG" = "no" ; then no_sdl=yes else SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags` SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` sdl_major_version=`$SDL_CONFIG $sdl_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_sdltest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" rm -f conf.sdltest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include "SDL.h" char* my_strdup (char *str) { char *new_str; if (str) { new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); strcpy (new_str, str); } else new_str = NULL; return new_str; } int main (int argc, char *argv[]) { int major, minor, micro; char *tmp_version; /* This hangs on some systems (?) system ("touch conf.sdltest"); */ { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = my_strdup("$min_sdl_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_sdl_version"); exit(1); } if (($sdl_major_version > major) || (($sdl_major_version == major) && ($sdl_minor_version > minor)) || (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) { return 0; } else { printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); printf("*** best to upgrade to the required version.\n"); printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); printf("*** to point to the correct copy of sdl-config, and remove the file\n"); printf("*** config.cache before re-running configure\n"); return 1; } } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_sdl=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_sdl" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } : else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if test "$SDL_CONFIG" = "no" ; then echo "*** The sdl-config script installed by SDL could not be found" echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the SDL_CONFIG environment variable to the" echo "*** full path to sdl-config." else if test -f conf.sdltest ; then : else echo "*** Could not run SDL test program, checking why..." CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include "SDL.h" int main(int argc, char *argv[]) { return 0; } #undef main #define main K_and_R_C_main int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding SDL or finding the wrong" echo "*** version of SDL. If it is not finding SDL, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means SDL was incorrectly installed" echo "*** or that you have moved SDL since it was installed. In the latter case, you" echo "*** may want to edit the sdl-config script: $SDL_CONFIG" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi SDL_CFLAGS="" SDL_LIBS="" as_fn_error $? "lib SDL >=1.1.4 is needed" "$LINENO" 5 fi rm -f conf.sdltest sound_flag="-DWITH_SOUND" mixer_flag="-lSDL_mixer" # Check whether --enable-sound was given. if test "${enable_sound+set}" = set; then : enableval=$enable_sound; sound_flag=""; mixer_flag="" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lSDL_mixer" >&5 $as_echo_n "checking for main in -lSDL_mixer... " >&6; } if ${ac_cv_lib_SDL_mixer_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lSDL_mixer $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_SDL_mixer_main=yes else ac_cv_lib_SDL_mixer_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_SDL_mixer_main" >&5 $as_echo "$ac_cv_lib_SDL_mixer_main" >&6; } if test "x$ac_cv_lib_SDL_mixer_main" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"SDL_Mixer found\"" >&5 $as_echo "\"SDL_Mixer found\"" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"SDL_Mixer NOT found \(get it at http://libsdl.org\): Audio disabled\"" >&5 $as_echo "\"SDL_Mixer NOT found \(get it at http://libsdl.org\): Audio disabled\"" >&6; }; sound_flag=""; mixer_flag="" fi dl_lib_flag="" dl_flag="" export_flag="" # Check whether --enable-dl was given. if test "${enable_dl+set}" = set; then : enableval=$enable_dl; dl_flag=""; export_flag=""; dl_lib_flag=""; fi inst_dir=$datadir/lgeneral inst_flag="-DINSTALLDIR=\\\"$inst_dir\\\"" dis_flag="" # Check whether --enable-install was given. if test "${enable_install+set}" = set; then : enableval=$enable_install; inst_dir=. inst_flag= fi # create Makefiles for Makefile.ins in po-subdirectories. # FIXME! autoconf is simply too stupid to grok that for-loop #for ac_domain in lgeneral ; do ac_config_commands="$ac_config_commands po-lgeneral" ac_config_commands="$ac_config_commands po-pg" #done ac_config_files="$ac_config_files Makefile lgc-pg/Makefile lgc-pg/convdata/Makefile lged/Makefile src/Makefile src/nations/Makefile src/scenarios/Makefile src/units/Makefile src/sounds/Makefile src/music/Makefile src/terrain/Makefile src/maps/Makefile src/gfx/Makefile src/gfx/flags/Makefile src/gfx/terrain/Makefile src/gfx/units/Makefile src/ai_modules/Makefile src/campaigns/Makefile src/themes/Makefile src/themes/default/Makefile util/Makefile intl/Makefile po/Makefile po/lgeneral/Makefile.in po/pg/Makefile.in tools/Makefile tools/ltrextract/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${compile_paths_linux_TRUE}" && test -z "${compile_paths_linux_FALSE}"; then as_fn_error $? "conditional \"compile_paths_linux\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "po-lgeneral") CONFIG_COMMANDS="$CONFIG_COMMANDS po-lgeneral" ;; "po-pg") CONFIG_COMMANDS="$CONFIG_COMMANDS po-pg" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "lgc-pg/Makefile") CONFIG_FILES="$CONFIG_FILES lgc-pg/Makefile" ;; "lgc-pg/convdata/Makefile") CONFIG_FILES="$CONFIG_FILES lgc-pg/convdata/Makefile" ;; "lged/Makefile") CONFIG_FILES="$CONFIG_FILES lged/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/nations/Makefile") CONFIG_FILES="$CONFIG_FILES src/nations/Makefile" ;; "src/scenarios/Makefile") CONFIG_FILES="$CONFIG_FILES src/scenarios/Makefile" ;; "src/units/Makefile") CONFIG_FILES="$CONFIG_FILES src/units/Makefile" ;; "src/sounds/Makefile") CONFIG_FILES="$CONFIG_FILES src/sounds/Makefile" ;; "src/music/Makefile") CONFIG_FILES="$CONFIG_FILES src/music/Makefile" ;; "src/terrain/Makefile") CONFIG_FILES="$CONFIG_FILES src/terrain/Makefile" ;; "src/maps/Makefile") CONFIG_FILES="$CONFIG_FILES src/maps/Makefile" ;; "src/gfx/Makefile") CONFIG_FILES="$CONFIG_FILES src/gfx/Makefile" ;; "src/gfx/flags/Makefile") CONFIG_FILES="$CONFIG_FILES src/gfx/flags/Makefile" ;; "src/gfx/terrain/Makefile") CONFIG_FILES="$CONFIG_FILES src/gfx/terrain/Makefile" ;; "src/gfx/units/Makefile") CONFIG_FILES="$CONFIG_FILES src/gfx/units/Makefile" ;; "src/ai_modules/Makefile") CONFIG_FILES="$CONFIG_FILES src/ai_modules/Makefile" ;; "src/campaigns/Makefile") CONFIG_FILES="$CONFIG_FILES src/campaigns/Makefile" ;; "src/themes/Makefile") CONFIG_FILES="$CONFIG_FILES src/themes/Makefile" ;; "src/themes/default/Makefile") CONFIG_FILES="$CONFIG_FILES src/themes/default/Makefile" ;; "util/Makefile") CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; "intl/Makefile") CONFIG_FILES="$CONFIG_FILES intl/Makefile" ;; "po/Makefile") CONFIG_FILES="$CONFIG_FILES po/Makefile" ;; "po/lgeneral/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/lgeneral/Makefile.in" ;; "po/pg/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/pg/Makefile.in" ;; "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; "tools/ltrextract/Makefile") CONFIG_FILES="$CONFIG_FILES tools/ltrextract/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" gt_tab=`printf '\t'` cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; "po-lgeneral":C) case "$CONFIG_FILES" in *po/lgeneral/Makefile.in*) sed -e "/POTFILES =/r po/lgeneral/POTFILES" po/lgeneral/Makefile.in > po/lgeneral/Makefile esac ;; "po-pg":C) case "$CONFIG_FILES" in *po/pg/Makefile.in*) cat po/pg/Makefile.in > po/pg/Makefile esac ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi lgeneral-1.3.1/missing0000664000175000017500000001420212140770461011625 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997 Free Software Foundation, Inc. # Franc,ois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing - GNU libit 0.0" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER([^):]*:\([^)]*\)).*/\1/p' configure.in` if test -z "$files"; then files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^):]*\)).*/\1/p' configure.in` test -z "$files" || files="$files.in" else files=`echo "$files" | sed -e 's/:/ /g'` fi test -z "$files" && files="config.h.in" touch $files ;; automake) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print \ | sed 's/^\(.*\).am$/touch \1.in/' \ | sh ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 lgeneral-1.3.1/Makefile.in0000664000175000017500000007457112643745055012326 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = . DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) acconfig.h \ $(srcdir)/config.h.in mkinstalldirs \ $(top_srcdir)/intl/Makefile.in AUTHORS COPYING ChangeLog \ INSTALL NEWS TODO compile config.guess config.rpath config.sub \ depcomp install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = intl/Makefile CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icondir)" DATA = $(desktop_DATA) $(icon_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = intl util lgc-pg lged src tools po EXTRA_DIST = AUTHORS COPYING ChangeLog README.lgeneral \ README.lgc-pg README.redit TODO \ lgeneral.png lgeneral.desktop \ lgeneral-redit desktopdir = $(datadir)/applications desktop_DATA = lgeneral.desktop icondir = $(datadir)/icons/hicolor/48x48/apps icon_DATA = lgeneral.png AUTOMAKE_OPTIONS = foreign all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) $(top_srcdir)/acconfig.h ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 intl/Makefile: $(top_builddir)/config.status $(top_srcdir)/intl/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir) install-iconDATA: $(icon_DATA) @$(NORMAL_INSTALL) @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(icondir)'"; \ $(MKDIR_P) "$(DESTDIR)$(icondir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ done uninstall-iconDATA: @$(NORMAL_UNINSTALL) @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(icondir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure \ --with-included-gettext \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icondir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-desktopDATA install-iconDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-desktopDATA uninstall-iconDATA .MAKE: $(am__recursive_targets) all install-am install-data-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-generic distclean-hdr \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-hook \ install-desktopDATA install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-iconDATA \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-desktopDATA uninstall-iconDATA package-translations: test x != "x$(LINGUAS)" || { echo "LINGUAS not set" ; exit 1 ; } cwd=`pwd` ; cd $(top_srcdir) ; \ for l in $(LINGUAS) ; do \ tar -cjf $$cwd/$(PACKAGE).$${l}.`date '+%Y-%m-%d'`.tar.bz2 po/*/$$l.po ; \ done install-data-hook: @echo @echo "================================================================" @echo @echo "Congratulations, LGeneral has been successfully installed to" @echo @echo " "$(inst_dir) @echo @echo "Now mount your Panzer General CD (e.g., to /mnt/cdrom) and run" @echo @echo " lgc-pg -s /mnt/cdrom/DAT" @echo @echo "Alternatively you can download the PG data package from " @echo "http://lgames.sf.net, extract it (e.g., to /tmp/pg-data) and run" @echo @echo " lgc-pg -s /tmp/pg-data" @echo @echo "For more information see README.lgc-pg." @echo @echo "================================================================" @echo # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/acinclude.m40000664000175000017500000001410712140770461012426 00000000000000# Configure paths for SDL # Sam Lantinga 9/21/99 # stolen from Manish Singh # stolen back from Frank Belew # stolen from Manish Singh # Shamelessly stolen from Owen Taylor dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS dnl AC_DEFUN([AM_PATH_SDL], [dnl dnl Get the cflags and libraries from the sdl-config script dnl AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)], sdl_prefix="$withval", sdl_prefix="") AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)], sdl_exec_prefix="$withval", sdl_exec_prefix="") AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program], , enable_sdltest=yes) if test x$sdl_exec_prefix != x ; then sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix" if test x${SDL_CONFIG+set} != xset ; then SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config fi fi if test x$sdl_prefix != x ; then sdl_args="$sdl_args --prefix=$sdl_prefix" if test x${SDL_CONFIG+set} != xset ; then SDL_CONFIG=$sdl_prefix/bin/sdl-config fi fi AC_REQUIRE([AC_CANONICAL_TARGET]) PATH="$prefix/bin:$prefix/usr/bin:$PATH" AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH]) min_sdl_version=ifelse([$1], ,0.11.0,$1) AC_MSG_CHECKING(for SDL - version >= $min_sdl_version) no_sdl="" if test "$SDL_CONFIG" = "no" ; then no_sdl=yes else SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags` SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` sdl_major_version=`$SDL_CONFIG $sdl_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_sdltest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" dnl dnl Now check if the installed SDL is sufficiently new. (Also sanity dnl checks the results of sdl-config to some extent dnl rm -f conf.sdltest AC_TRY_RUN([ #include #include #include #include "SDL.h" char* my_strdup (char *str) { char *new_str; if (str) { new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); strcpy (new_str, str); } else new_str = NULL; return new_str; } int main (int argc, char *argv[]) { int major, minor, micro; char *tmp_version; /* This hangs on some systems (?) system ("touch conf.sdltest"); */ { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = my_strdup("$min_sdl_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_sdl_version"); exit(1); } if (($sdl_major_version > major) || (($sdl_major_version == major) && ($sdl_minor_version > minor)) || (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) { return 0; } else { printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); printf("*** best to upgrade to the required version.\n"); printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); printf("*** to point to the correct copy of sdl-config, and remove the file\n"); printf("*** config.cache before re-running configure\n"); return 1; } } ],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_sdl" = x ; then AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$SDL_CONFIG" = "no" ; then echo "*** The sdl-config script installed by SDL could not be found" echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the SDL_CONFIG environment variable to the" echo "*** full path to sdl-config." else if test -f conf.sdltest ; then : else echo "*** Could not run SDL test program, checking why..." CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" AC_TRY_LINK([ #include #include "SDL.h" int main(int argc, char *argv[]) { return 0; } #undef main #define main K_and_R_C_main ], [ return 0; ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding SDL or finding the wrong" echo "*** version of SDL. If it is not finding SDL, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means SDL was incorrectly installed" echo "*** or that you have moved SDL since it was installed. In the latter case, you" echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi SDL_CFLAGS="" SDL_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(SDL_CFLAGS) AC_SUBST(SDL_LIBS) rm -f conf.sdltest ]) lgeneral-1.3.1/README.redit0000664000175000017500000000024712140770461012223 00000000000000Although the reinforcements editor is included to the lgeneral package, it is a complete package on its own. Please see lgeneral-redit/README for more information. lgeneral-1.3.1/Makefile.am0000664000175000017500000000236212477102036012271 00000000000000SUBDIRS = intl util lgc-pg lged src tools po EXTRA_DIST = AUTHORS COPYING ChangeLog README.lgeneral \ README.lgc-pg README.redit TODO \ lgeneral.png lgeneral.desktop \ lgeneral-redit desktopdir = $(datadir)/applications desktop_DATA = lgeneral.desktop icondir = $(datadir)/icons/hicolor/48x48/apps icon_DATA = lgeneral.png AUTOMAKE_OPTIONS = foreign package-translations: test x != "x$(LINGUAS)" || { echo "LINGUAS not set" ; exit 1 ; } cwd=`pwd` ; cd $(top_srcdir) ; \ for l in $(LINGUAS) ; do \ tar -cjf $$cwd/$(PACKAGE).$${l}.`date '+%Y-%m-%d'`.tar.bz2 po/*/$$l.po ; \ done install-data-hook: @echo @echo "================================================================" @echo @echo "Congratulations, LGeneral has been successfully installed to" @echo @echo " "$(inst_dir) @echo @echo "Now mount your Panzer General CD (e.g., to /mnt/cdrom) and run" @echo @echo " lgc-pg -s /mnt/cdrom/DAT" @echo @echo "Alternatively you can download the PG data package from " @echo "http://lgames.sf.net, extract it (e.g., to /tmp/pg-data) and run" @echo @echo " lgc-pg -s /tmp/pg-data" @echo @echo "For more information see README.lgc-pg." @echo @echo "================================================================" @echo lgeneral-1.3.1/acconfig.h0000664000175000017500000000060512575247131012162 00000000000000#undef ENABLE_NLS #undef HAVE_CATGETS #undef HAVE_GETTEXT #undef HAVE_LC_MESSAGES #undef HAVE_STPCPY #undef HAVE_LIBSM #undef PACKAGE_LOCALE_DIR #undef PACKAGE_DOC_DIR #undef PACKAGE_DATA_DIR #undef PACKAGE_PIXMAPS_DIR #undef PACKAGE_HELP_DIR #undef PACKAGE_MENU_DIR #undef PACKAGE_SOURCE_DIR @BOTTOM@ #ifdef HAVE_BROKEN_MKDIR # include # define mkdir(s,p) _mkdir(s) #endif lgeneral-1.3.1/AUTHORS0000664000175000017500000000015212501301112011260 00000000000000Michael Speck Leo Savernik Peter Ivanyi Contributions: BartÅ‚omiej Tez Markus Koschany and many more ... lgeneral-1.3.1/lgeneral.png0000664000175000017500000000234512477102110012526 00000000000000‰PNG  IHDR00Wù‡gAMA± üabKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÒ ;)nGbIDATxœí˜/pãFÆé,0X `  `(``P`p  àÀ‚8`p à€@A€@€€À <ãIÛµâë)m®×NõÍxdÚ·zß¾?»2tèСC‡:üqös¾Áœ­ñWfN³ Õ÷0Û€0^bþÖø¡å¸ƒûÉ‹œý~O^äd" ¼>Cß /rûiÚ9s½Ú¬ÐAÖÆþx}d#èsl„»ågŒ1ˆZk~Šc†¾l„­Ù[»L„ÉhDšeÍ(ý-üØt¶9 Í2ëx‡4‡°ü>‰¯¿8ùÐ÷yÌs­ßÜ0¾¹aÇ–7»‚¢Øq®çJ`veJº|&¹RlŒac ?O&GIšp5¼°«ü˜ç¼zsc)¥DZ]y­µ#,e-R:`ʨÕ÷µÖcø”$, D„­1l«qýÊqÀrM`à<þˆÀ°Î?æen׫¬“ÔŠI’Øûqóa6c¶X°\.Y‹ • ¡!Y. £È:¹®"ÜÙjõDÀ!/r拼zû–édÀEè—0¹uØ£”²ÀZ„×Ó)¯§Sü°T_T<­íjÆqlSOdcÓc2Á3;×p¸( ‰¢ˆ›é¸Ìq`|]>¤×ïÝÎf6®ˆ8Žy=E ^éB„žRŒªÜobÇä"¼-뤵ˆ3œh­Ya‹Éóz ¼5Øš½-º‡4Eª4ÙÃ@kÖ"G×J)Þß¾á!͹}Òœ\„«Ë€ý®Ç|± Ãg‰8ДŦµ&MS ,šÇ4=*Æ1øZ“WéQ ;.¼­1öê¢N#·xÏ•bE¬Ò”4Mù8Ÿ?K®¥Ô“¢í+e»‹›û­<Å»µó%»zqêç>75ד Qµ±kÚ©aàñÛ*³Ü0ðP=³+P=€OIbíÚŠh{”ø×â(w÷÷¶À ,àý®Ç¦‘ÇAò暉púˆlìnyUµÓõ˜º˜›¸[~ÚGÀndw÷÷ü:›‘:aüè)ÅÎ{â˜d¹ʽÂÃ/··­ç;*â,MÙcwJ·‡Ÿ‚§õÉ{§øS\¯j…È‘€ýnçú÷U‡àòòIÿ^‹ ”²í¯îñÍ3LÍŸ¿ª¢êòµm!Âuóq±`<²J.£ˆÅû÷­ñ@kvõ¥Ñ6݈¬El¸]þKãëÖìòu+ ³ã锳}¥Z;ï:¼›Ï1Æ0»½¥§A’& ~ÒWŠaUŒkVÕÎÓú ?¨Î<._/Æ)~kŒÝ‚0$Š"”RuUÈ®ócðÃ1¤I‚W¥…R _kü*ÜË׎5y7µ\~PE1C‚0DUg}c ïæsÞ•;òŸ¾Á¹êsÍ÷D}”i»+½‘õ•:zAùh¾À| ¶^Þ•Ã?ú7M‡:tèСà ¿ŠY§²×Åí{IEND®B`‚lgeneral-1.3.1/configure.in0000644000175000017500000001312412643745034012550 00000000000000dnl Process this file with autoconf to produce a configure script. AC_INIT(Makefile.am) AC_CANONICAL_TARGET AC_USE_SYSTEM_EXTENSIONS AM_INIT_AUTOMAKE(lgeneral,1.3.1) AM_CONFIG_HEADER(config.h) dnl Checks for programs. AC_PROG_CC AC_PROG_RANLIB AM_PROG_CC_C_O dnl various CFLAGS CFLAGS="$CFLAGS -Wall -std=gnu89" #CFLAGS="-O0 -g -Wall" dnl Checks for libraries. AC_CHECK_LIB(m, main,, AC_MSG_ERROR(maths library is needed)) dnl AC_CHECK_LIB(dl, main,, AC_CHECK_LIB(c, dlopen,, AC_MSG_ERROR(dl library is needed))) dnl AC_CHECK_LIB(dl, main,, AC_MSG_ERROR(dl library is needed)) dnl Checks for functions. AC_CHECK_FUNCS(strcasestr) dnl check for mkdir accepting permissions AC_MSG_CHECKING(if mkdir rejects permissions) ac_mkdir_perm_broken=yes AC_TRY_COMPILE([#include ], [mkdir("test", 0777)], [ac_mkdir_perm_broken=no]) if test x$ac_mkdir_perm_broken = xyes ; then AC_DEFINE_UNQUOTED(HAVE_BROKEN_MKDIR, 1, [Defined if mkdir rejects a second permissions parameter.]) fi AC_MSG_RESULT($ac_mkdir_perm_broken) dnl L10n support ALL_LINGUAS="en de" AC_GNU_SOURCE AM_GNU_GETTEXT XGETTEXTFLAGS= MSGFMTFLAGS=-v MSGMERGEFLAGS= MSGCONVFLAGS=--to-code=iso-8859-1 INTLINCLUDES= dnl check for msgconv AC_PATH_PROG(MSGCONV, msgconv, cat) dnl reset flags if msgconv is "dummy" test "x$MSGCONV" = xcat && MSGCONVFLAGS= dnl FIXME: This does no logging whatsoever if anything goes wrong if test x$USE_NLS = xyes -a x$XGETTEXT != "x:" ; then AC_MSG_CHECKING(whether xgettext needs --from-code) ac_xgettext_needs_from_code=error ac_xgettext_from_code=--from-code=iso-8859-1 cat <ac_tmp.c int main() { _("äöüÜÄÖß"); } EOF $XGETTEXT -k_ $ac_xgettext_from_code ac_tmp.c >/dev/null 2>&1 && ac_xgettext_needs_from_code=yes $XGETTEXT -k_ ac_tmp.c >/dev/null 2>&1 && ac_xgettext_needs_from_code=no AC_MSG_RESULT($ac_xgettext_needs_from_code) if test $ac_xgettext_needs_from_code = yes ; then XGETTEXTFLAGS="$XGETTEXTFLAGS $ac_xgettext_from_code" elif test $ac_xgettext_needs_from_code = error ; then AC_MSG_ERROR(Both invocations of $XGETTEXT failed!) fi rm -f ac_tmp.c fi dnl determining include paths for libintl.h if test x$USE_INCLUDED_LIBINTL = xyes ; then INTLINCLUDES="-I\$(top_srcdir)/intl -I\$(top_builddir)/intl" fi dnl newer versions of gettext don't support CATALOGS -> create it here if test "x$CATALOGS" = x ; then AC_MSG_CHECKING(for catalogs to be installed); for l in $ALL_LINGUAS ; do CATALOGS="$CATALOGS$l$CATOBJEXT " done AC_MSG_RESULT($ALL_LINGUAS) AC_SUBST(CATALOGS) fi dnl newer versions of gettext don't export POFILES and GMOFILES dnl export them here to stay compatible with older versions if test "x$POFILES" = x ; then for l in $ALL_LINGUAS ; do POFILES="$POFILES${l}.po " done AC_SUBST(POFILES) fi if test "x$GMOFILES" = x ; then for l in $ALL_LINGUAS ; do GMOFILES="$GMOFILES$l$CATOBJEXT " done AC_SUBST(GMOFILES) fi AC_SUBST(XGETTEXTFLAGS) AC_SUBST(MSGFMTFLAGS) AC_SUBST(MSGMERGEFLAGS) AC_SUBST(MSGCONVFLAGS) AC_SUBST(INTLINCLUDES) dnl find out whether we can determine the path of the running executable ac_paths_determ=generic ac_can_determ_paths=no AC_DEFINE_UNQUOTED(PATHS_GENERIC, 1, [Defined if detecting executable's path name is not supported at runtime.]) AC_MSG_RESULT($ac_can_determ_paths) AC_MSG_RESULT(executable's path determination strategy... $ac_paths_determ) AM_CONDITIONAL(compile_paths_linux, test x$ac_paths_determ = xlinux) dnl check SDL version AM_PATH_SDL(1.1.4,, AC_MSG_ERROR(lib SDL >=1.1.4 is needed)) dnl check sound sound_flag="-DWITH_SOUND" mixer_flag="-lSDL_mixer" AC_ARG_ENABLE( sound, [ --disable-sound Disables sound], sound_flag=""; mixer_flag="") dnl check if SDL_mixer's installed dnl if not: clear sound_flag and mixer_flag AC_CHECK_LIB(SDL_mixer, main, AC_MSG_RESULT("SDL_Mixer found"), AC_MSG_RESULT("SDL_Mixer NOT found \(get it at http://libsdl.org\): Audio disabled"); sound_flag=""; mixer_flag="") AC_SUBST(sound_flag) AC_SUBST(mixer_flag) dnl check use of dynamic libraries dnl SINCE NEVER USED TEMPORARILY DISABLED MS dnl dl_lib_flag="-ldl" dnl dl_flag="-DUSE_DL" dnl export_flag="-Wl,-export-dynamic" dl_lib_flag="" dl_flag="" export_flag="" AC_ARG_ENABLE( dl, [ --disable-dl Disable use of dynamic AI modules], dl_flag=""; export_flag=""; dl_lib_flag="";) AC_SUBST(dl_flag) AC_SUBST(export_flag) AC_SUBST(dl_lib_flag) dnl installation path inst_dir=$datadir/lgeneral inst_flag="-DINSTALLDIR=\\\"$inst_dir\\\"" dis_flag="" AC_ARG_ENABLE( install, [ --disable-install No installation. Played from the source directory.], inst_dir=. inst_flag=) AC_SUBST(inst_dir) AC_SUBST(inst_flag) # create Makefiles for Makefile.ins in po-subdirectories. # FIXME! autoconf is simply too stupid to grok that for-loop #for ac_domain in lgeneral ; do AC_CONFIG_COMMANDS([po-lgeneral], [case "$CONFIG_FILES" in *po/lgeneral/Makefile.in*) sed -e "/POTFILES =/r po/lgeneral/POTFILES" po/lgeneral/Makefile.in > po/lgeneral/Makefile esac]) AC_CONFIG_COMMANDS([po-pg], [case "$CONFIG_FILES" in *po/pg/Makefile.in*) cat po/pg/Makefile.in > po/pg/Makefile esac]) #done AC_OUTPUT(Makefile lgc-pg/Makefile lgc-pg/convdata/Makefile lged/Makefile src/Makefile src/nations/Makefile src/scenarios/Makefile src/units/Makefile src/sounds/Makefile src/music/Makefile src/terrain/Makefile src/maps/Makefile src/gfx/Makefile src/gfx/flags/Makefile src/gfx/terrain/Makefile src/gfx/units/Makefile src/ai_modules/Makefile src/campaigns/Makefile src/themes/Makefile src/themes/default/Makefile util/Makefile intl/Makefile po/Makefile po/lgeneral/Makefile.in po/pg/Makefile.in tools/Makefile tools/ltrextract/Makefile) lgeneral-1.3.1/config.h.in0000664000175000017500000003333512643745077012301 00000000000000/* config.h.in. Generated from configure.in by autoheader. */ #undef ENABLE_NLS #undef HAVE_CATGETS #undef HAVE_GETTEXT #undef HAVE_LC_MESSAGES #undef HAVE_STPCPY #undef HAVE_LIBSM #undef PACKAGE_LOCALE_DIR #undef PACKAGE_DOC_DIR #undef PACKAGE_DATA_DIR #undef PACKAGE_PIXMAPS_DIR #undef PACKAGE_HELP_DIR #undef PACKAGE_MENU_DIR #undef PACKAGE_SOURCE_DIR /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ #undef CRAY_STACKSEG_END /* Define to 1 if using `alloca.c'. */ #undef C_ALLOCA /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* Define to 1 if you have `alloca', as a function or macro. */ #undef HAVE_ALLOCA /* Define to 1 if you have and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the `argz_count' function. */ #undef HAVE_ARGZ_COUNT /* Define to 1 if you have the header file. */ #undef HAVE_ARGZ_H /* Define to 1 if you have the `argz_next' function. */ #undef HAVE_ARGZ_NEXT /* Define to 1 if you have the `argz_stringify' function. */ #undef HAVE_ARGZ_STRINGIFY /* Define to 1 if you have the `asprintf' function. */ #undef HAVE_ASPRINTF /* Defined if mkdir rejects a second permissions parameter. */ #undef HAVE_BROKEN_MKDIR /* Define to 1 if the compiler understands __builtin_expect. */ #undef HAVE_BUILTIN_EXPECT /* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_FEOF_UNLOCKED /* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_FGETS_UNLOCKED /* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_GETC_UNLOCKED /* Define to 1 if you have the declaration of `_snprintf', and to 0 if you don't. */ #undef HAVE_DECL__SNPRINTF /* Define to 1 if you have the declaration of `_snwprintf', and to 0 if you don't. */ #undef HAVE_DECL__SNWPRINTF /* Define to 1 if you have the header file. */ #undef HAVE_FEATURES_H /* Define to 1 if you have the `fwprintf' function. */ #undef HAVE_FWPRINTF /* Define to 1 if you have the `getcwd' function. */ #undef HAVE_GETCWD /* Define to 1 if you have the `getegid' function. */ #undef HAVE_GETEGID /* Define to 1 if you have the `geteuid' function. */ #undef HAVE_GETEUID /* Define to 1 if you have the `getgid' function. */ #undef HAVE_GETGID /* Define to 1 if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the `getuid' function. */ #undef HAVE_GETUID /* Define if you have the iconv() function and it works. */ #undef HAVE_ICONV /* Define if you have the 'intmax_t' type in or . */ #undef HAVE_INTMAX_T /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if exists, doesn't clash with , and declares uintmax_t. */ #undef HAVE_INTTYPES_H_WITH_UINTMAX /* Define if you have and nl_langinfo(CODESET). */ #undef HAVE_LANGINFO_CODESET /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if you have the `m' library (-lm). */ #undef HAVE_LIBM /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if the system has the type 'long long int'. */ #undef HAVE_LONG_LONG_INT /* Define to 1 if you have the `mbrtowc' function. */ #undef HAVE_MBRTOWC /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `mempcpy' function. */ #undef HAVE_MEMPCPY /* Define to 1 if you have a working `mmap' system call. */ #undef HAVE_MMAP /* Define to 1 if you have the `munmap' function. */ #undef HAVE_MUNMAP /* Define to 1 if you have the `newlocale' function. */ #undef HAVE_NEWLOCALE /* Define if your printf() function supports format strings with positions. */ #undef HAVE_POSIX_PRINTF /* Define if the defines PTHREAD_MUTEX_RECURSIVE. */ #undef HAVE_PTHREAD_MUTEX_RECURSIVE /* Define if the POSIX multithreading library has read/write locks. */ #undef HAVE_PTHREAD_RWLOCK /* Define to 1 if you have the `putenv' function. */ #undef HAVE_PUTENV /* Define to 1 if you have the `setenv' function. */ #undef HAVE_SETENV /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define if exists, doesn't clash with , and declares uintmax_t. */ #undef HAVE_STDINT_H_WITH_UINTMAX /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `stpcpy' function. */ #undef HAVE_STPCPY /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strcasestr' function. */ #undef HAVE_STRCASESTR /* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strnlen' function. */ #undef HAVE_STRNLEN /* Define to 1 if you have the `strtoul' function. */ #undef HAVE_STRTOUL /* Define to 1 if you have the `symlink' function. */ #undef HAVE_SYMLINK /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the `tsearch' function. */ #undef HAVE_TSEARCH /* Define if you have the 'uintmax_t' type in or . */ #undef HAVE_UINTMAX_T /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if the system has the type 'unsigned long long int'. */ #undef HAVE_UNSIGNED_LONG_LONG_INT /* Define to 1 if you have the `uselocale' function. */ #undef HAVE_USELOCALE /* Define to 1 or 0, depending whether the compiler supports simple visibility declarations. */ #undef HAVE_VISIBILITY /* Define if you have the 'wchar_t' type. */ #undef HAVE_WCHAR_T /* Define to 1 if you have the `wcrtomb' function. */ #undef HAVE_WCRTOMB /* Define to 1 if you have the `wcslen' function. */ #undef HAVE_WCSLEN /* Define to 1 if you have the `wcsnlen' function. */ #undef HAVE_WCSNLEN /* Define if you have the 'wint_t' type. */ #undef HAVE_WINT_T /* Define to 1 if O_NOATIME works. */ #undef HAVE_WORKING_O_NOATIME /* Define to 1 if O_NOFOLLOW works. */ #undef HAVE_WORKING_O_NOFOLLOW /* Define to 1 if you have the `__fsetlocking' function. */ #undef HAVE___FSETLOCKING /* Define as const if the declaration of iconv() needs const. */ #undef ICONV_CONST /* Define if integer division by zero raises signal SIGFPE. */ #undef INTDIV0_RAISES_SIGFPE /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Defined if detecting executable's path name is not supported at runtime. */ #undef PATHS_GENERIC /* Define if exists and defines unusable PRI* macros. */ #undef PRI_MACROS_BROKEN /* Define if the pthread_in_use() detection is hard. */ #undef PTHREAD_IN_USE_DETECTION_HARD /* Define as the maximum value of type 'size_t', if the system doesn't define it. */ #ifndef SIZE_MAX # undef SIZE_MAX #endif /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define if the POSIX multithreading library can be used. */ #undef USE_POSIX_THREADS /* Define if references to the POSIX multithreading library should be made weak. */ #undef USE_POSIX_THREADS_WEAK /* Define if the GNU Pth multithreading library can be used. */ #undef USE_PTH_THREADS /* Define if references to the GNU Pth multithreading library should be made weak. */ #undef USE_PTH_THREADS_WEAK /* Define if the old Solaris multithreading library can be used. */ #undef USE_SOLARIS_THREADS /* Define if references to the old Solaris multithreading library should be made weak. */ #undef USE_SOLARIS_THREADS_WEAK /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Define if the native Windows multithreading API can be used. */ #undef USE_WINDOWS_THREADS /* Version number of package */ #undef VERSION /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define as the type of the result of subtracting two pointers, if the system doesn't define it. */ #undef ptrdiff_t /* Define to `unsigned int' if does not define. */ #undef size_t /* Define to unsigned long or unsigned long long if and don't define. */ #undef uintmax_t #define __libc_lock_t gl_lock_t #define __libc_lock_define gl_lock_define #define __libc_lock_define_initialized gl_lock_define_initialized #define __libc_lock_init gl_lock_init #define __libc_lock_lock gl_lock_lock #define __libc_lock_unlock gl_lock_unlock #define __libc_lock_recursive_t gl_recursive_lock_t #define __libc_lock_define_recursive gl_recursive_lock_define #define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized #define __libc_lock_init_recursive gl_recursive_lock_init #define __libc_lock_lock_recursive gl_recursive_lock_lock #define __libc_lock_unlock_recursive gl_recursive_lock_unlock #define glthread_in_use libintl_thread_in_use #define glthread_lock_init_func libintl_lock_init_func #define glthread_lock_lock_func libintl_lock_lock_func #define glthread_lock_unlock_func libintl_lock_unlock_func #define glthread_lock_destroy_func libintl_lock_destroy_func #define glthread_rwlock_init_multithreaded libintl_rwlock_init_multithreaded #define glthread_rwlock_init_func libintl_rwlock_init_func #define glthread_rwlock_rdlock_multithreaded libintl_rwlock_rdlock_multithreaded #define glthread_rwlock_rdlock_func libintl_rwlock_rdlock_func #define glthread_rwlock_wrlock_multithreaded libintl_rwlock_wrlock_multithreaded #define glthread_rwlock_wrlock_func libintl_rwlock_wrlock_func #define glthread_rwlock_unlock_multithreaded libintl_rwlock_unlock_multithreaded #define glthread_rwlock_unlock_func libintl_rwlock_unlock_func #define glthread_rwlock_destroy_multithreaded libintl_rwlock_destroy_multithreaded #define glthread_rwlock_destroy_func libintl_rwlock_destroy_func #define glthread_recursive_lock_init_multithreaded libintl_recursive_lock_init_multithreaded #define glthread_recursive_lock_init_func libintl_recursive_lock_init_func #define glthread_recursive_lock_lock_multithreaded libintl_recursive_lock_lock_multithreaded #define glthread_recursive_lock_lock_func libintl_recursive_lock_lock_func #define glthread_recursive_lock_unlock_multithreaded libintl_recursive_lock_unlock_multithreaded #define glthread_recursive_lock_unlock_func libintl_recursive_lock_unlock_func #define glthread_recursive_lock_destroy_multithreaded libintl_recursive_lock_destroy_multithreaded #define glthread_recursive_lock_destroy_func libintl_recursive_lock_destroy_func #define glthread_once_func libintl_once_func #define glthread_once_singlethreaded libintl_once_singlethreaded #define glthread_once_multithreaded libintl_once_multithreaded #ifdef HAVE_BROKEN_MKDIR # include # define mkdir(s,p) _mkdir(s) #endif lgeneral-1.3.1/config.rpath0000664000175000017500000000000012250156135012523 00000000000000lgeneral-1.3.1/ChangeLog0000664000175000017500000007445712643744652012040 000000000000001.3.1: - bridge terrain type is now optional for compatibility (2016/01/08 MS) - adjusted file access mode and other stuff for portability (2015/09/13 Ivan Baidakou) - fixed seg fault on loading game (2015/09/13 Galland) - fixed seg fault that could occur on mounting unit (2015/09/13 Galland) 1.3.0: - fixed seg fault in lgc-pg when running headless (2015/07/26 Markus Koschany) - compatibility flag added for GCC5 (2015/07/26 Markus Koschany) - added core unit transfer for campaign (2014/05/01 Tez Bartlomiej) - fixed compiler issue in TESTFILE mode (2015/04/03 Michael Tautschnig) 1.2.6: - fixed all compiler warnings (2015/03/13 MS) - show message about new unit at beginning of turn (2015/03/13 MS) - splash/info screen can be closed by window icon (2015/03/13 MS) - restricted deploy mask: surrounding of own units no longer added to prevent moving whole front line one step forward (2015/03/15 MS) - removed fallback mapnames file from lgc-pg (2015/03/08 Markus Koschany) - updated icon handling (2015/03/08 Markus Koschany) - updated desktop file with category and keywords (2015/03/08 Markus Koschany) - deploy center and damaged info is properly saved/loaded now (2015/03/08 MS) - added proper engine status for active carpet bombing (2015/03/08 MS) 1.2.5: - converter reads in core unit flag and core unit limit (2015/03/01 MS) - fixed bug in carpet bombing: ground units could still supply (2015/02/22 MS) - carpet bombing only possible by level bombers (2015/02/22 MS) - added goto unit dialog for easier navigation(2015/02/22 Tez Bartlomiej) - bombers can temporarily destroy cities/airfields (2015/01/25 Tez Bartlomiej) - units can be named in scenario files (2015/01/25 Tez Bartlomiej) 1.2.4: - fixed bad test function declarations (2014/10/18 Michael Tautschnig) - improved man pages (2012/11/4 Markus Koschany) - fix broken pg road tile by mirroring counterpart (2012/11/01 MS) - removed non-free panzer general faq (2012/10/29 MS) - replaced/modified non-free graphics/sounds (2012/10/29 Markus Koschany) - applied hardened compile patch (2012/10/11 Markus Koschany) 1.2.3: - do not allow AI to place units on border of map (2012/04/20 TB) - assign nations to late-war units: FPO is Poland, FFR is France (2012/04/20 TB) - fixed bug in final view on scenario: properly disable purchase option as no player is selected in this state (2012/04/17 TB) - added Finnland ids to 'get nation from name' algorithm in lgc-pg: it is not used by PG but some additional campaigns (2012/01/27 MS) - added lgc-pg options to change player names and nations (2012/01/27 MS) - fixed bug in tactical icon conversion (2012/01/27 MS) - added some hints about building on Mac OS X (2011/08/30 ACV) - generate scenario file names from its title for custom campaigns (2011/08/17 MS) 1.2.2: - applied a number of Gentoo build patches (2011/08/16 MS) - fixed bug in move range calculation occurring when both, unit and transporter, did not use fuel (2011/08/16 MS) - fixed buffer overflow in unit name generation (2011/08/16 MS) - improved conversion of campaigns in lgc-pg (2011/08/09 MS) 1.2.1: - video mode selection dialog with all available dimensions (2011/06/13 MS) 1.2: - allow disable/enable of purchase and deploy turn in GUI (10/09/29 MS) - disable purchase when loading old saved games (10/09/29 MS) - tweaked initiative bonus for russian tanks (10/09/28 MS) - use installation path as default for lgc-pg (10/09/28 MS) - use secure snprintf instead of sprintf in lgc-pg (10/09/28 MS) - try to open PG files with lowercase and uppercase name (10/09/28 MS) - added splash screen for lgc-pg (10/09/27 MS) - added config option for AI debug messages (10/09/27 MS) - added unit purchase phase for AI (10/09/27 MS) - gain prestige for capturing flags and damaging units (10/09/26 MS) - added purchase dialogue (10/09 MS) - lgc-pg builds prestige data based on original PG data (10/09 MS) - fixed wrong deploy center block update on loading scenario (10/09/22 MS) - fixed compilation on 64 bit Linux systems (10/09/20 Pavol Rusnak) - fixed buffer overflows during campaign loading (10/09/20 Frank Schaefer) 1.2beta-14: - fixed configure warning (09/10/26 MS) - added XDG support (09/10/26 MS) - fixed some errors in READMEs (09/01/09 BH) 1.2beta-13: - fixed bad color key in font bitmaps (07/09/26 MS) - added original pg font for campaign briefings (07/09/24 Pamashoid) - ignore return value in po/lgeneral Makefile (07/09/24 MS) - bugfix: using transporter crashed if not enough fuel (07/09/24 Triple Entendre) 1.2beta-12: - fixed bug in gettext that caused 'make uninstall' to fail (06/05/29 LS) - fixed a bug that caused end_turn to lock if NUMLOCK was active (06/05/27 MS) - make it compile under mingw. Thanks to Victor Sergienko. (06/04/10 LS) 1.2beta-11: - no initial deploy allowed for allied player in MarketGarden (06/01/14 MS) - fixed translation-encoding by invoking msgconv as necessary (05/12/30 LS) - updated German translation (05/12/29 LS) - added option --campaign-start (05/12/29 LS) - campaign can now be loaded from command-line (05/12/29 LS) - added full descriptions for PG-campaign (05/12/28 LS) - brought danger zones in sync with new fuel-usage rules (05/12/28 LS) - adapted ltrextract to cope with new campaign entries and references (05/12/27 LS) - start campaign with first scenario, not with scenario called "first" (05/12/27 LS) - long-format parser is now more accurate, and stricter (05/12/26 LS) - added support for title-entry per campaign scenario (05/12/24 LS) - added support for references in campaign description (05/12/24 LS) - fixed massive (>30MB per scenario) memory leaks and some smaller ones (05/12/21 LS) - better (and faster) line wrapping algorithm (05/12/20 LS) - new briefing font (05/12/18 LS) - allow debriefings in campaigns (05/12/18 LS) - provide path selection in campaigns (05/12/18 LS) - explicitly create POFILES and GMOFILES if not defined by gettext.m4 (05/12/12 LS) 1.2beta-10: - let some AI units (in town, artillery, close to artillery etc) hold position (05/12/09 MS) - parachutists over an empty allied airfield debark like a normal unit, thus may move on the ground in the same turn (05/12/09 MS) - on Linux lgeneral is now relocateable (i. e. installation directory is not hardcoded anymore) (05/12/07 LS) - bugfix: don't crash on a savegame called lg_save_11 (05/12/05 LS) - made savegames interchangeable between big-/little-endian systems (05/12/05 LS) - introduced global versioning for savegames (05/12/05 LS) - bugfix: make font_credit adhere to new font format (05/12/04 LS) - bugfix: hardcoded output charset for all known translations (05/12/04 LS) - added README.i18n to provides guidance for translators (05/12/04 LS) - added target package-translations to Makefile.am to make it easier for translators to package their changes (05/12/04 LS) - updated German translation for pg-domain (05/12/04 LS) - added a German translation for the whole pg-domain (05/12/02 LS) - i18n part II: added provisions for translating lgeneral-resources (05/12/02 LS) - new tool ltrextract for extracting translateable strings from lgeneral-resources (05/12/02 LS) - fixed bug in casualties estimation (05/12/1 MS) - parachutists may drift away, have casualties and may not act on the ground within the same turn (05/12/1 MS) - parser now saves context information per node (05/11/30 LS) - added a German translation for hardcoded strings (05/11/27 LS) - i18n part I: added provisions for translating hardcoded strings (05/11/27 LS) - show move cost instead of mere distance when unit is selected (05/11/22 M.S.) - forecast is written to new line since string became too long for new weather types (05/11/22 M.S.) - deploy turn is now default (05/11/22 M.S.) - conquered towns become deploy centers after one turn delay (05/11/20 M.S.) - allow deployment of a unit, that may use an air transporter, as air-embarked directly above an airfield in the initial deploy turn (05/11/20 M.S.) - no auto-save in deploy turn (05/11/18 M.S.) - changed font format to encompass full iso-8859-1 charset (05/11/20 LS) - new command-line utility shptool for converting PG-shps into bmps (05/11/20 LS) - bugfix: artilleries in kiev get Opel not Air-Defense as transporter (05/11/15 M.S.) - allow initial entrenchment to be higher than the maximum of the terrain (05/11/15 M.S.) - adjusted weather for all scenarios (05/11/15 M.S.) - added new weather types to differ between air and ground conditions (05/11/15 M.S.) - usability: allow status screens to be dismissed by Space, Enter, or Esc (05/11/14 LS) - bugfix: make harbours accessible by vessels (05/11/14 LS) - restore compatibility with third-party scenarios broken since beta-8 (05/11/14 LS) - don't unduely penalise units with an inherently low ammo supply (05/11/13 LS) - terrain 'fortification' now requires tanks to use their close defense value (05/11/10 MS) - units do not take shortcuts but use the proper move path (05/11/10 MS) - improved computation of movement mask (a unit entering a hex influenced by an enemy looses all remaining movement points; this allows the defender to better slow down the attacker) (05/11/10 MS) - for defensive fire artillery causes suppression for roll <=20 (not <=18) (05/11/06 MS) - removed 'cut_strength' flag from the weather types (05/11/06 MS) 1.2beta-9: - fixed bug in range check of turn suppression (05/11/06 MS) - bugfix: corrected casualties estimation (05/11/06 MS) - strength is never cut (05/11/06 MS) - no fuel of fuel using attacker gives defender a +4 bonus (05/11/06 MS) - artillery may do rugged defense again (05/11/06 MS) - units that have 'ignore_entr' can't get a rugged defense (05/11/06 MS) - re-activated intiative rule: aircraft gets intiative of target if it's an air defense (05/11/06 MS) - deployment fields are implicitly spotted (05/11/04 LS) - undeployable units don't contribute to the deploy mask (05/11/04 LS) - allow flipping asymmetric windows by TAB to see what's behind (05/11/04 MS) - unit info pops up by right-click in deploy mode (05/11/04 MS) - bugfix: undeploy has higher priority than deploy if cursor is explicitly over an undeployable unit (05/11/04 MS) - no units may remain undeployed when ending the deploy turn (05/11/03 MS) - added default deploy mask for allied player, axis gets it in addition, too (05/11/03 MS) - made savegames robust against structural changes. Hence, you can consider them being broken again, but this was the last time (05/11/02 LS) - fuel is reduced by the number of hex tiles the unit did actually cross not by the distance to the intended destination (otherwise too much fuel is consumed on, e.g., surprise contact) (05/11/01 MS) - crashed aircrafts are removed at the end of a turn not at beginning of next own turn (this prevents that other players attack an aircraft that is going down anyway) (05/11/01 MS) - aircrafts with fuel 0 but close to an allied airfield in the end of a turn will survive (05/11/01 MS) - unused units get supplied in the end of a turn and not in the beginning of the next one (05/11/01 MS) - tweaked reinforcements for Barbarossa (05/10/30 MS) - added reinforcements for Kiev (05/10/30 MS) - german artilleries in Kiev get missing transporter (05/10/30 MS) - added strength labels with red numbers to lgc-pg (05/10/30 MS) 1.2beta-8: - unit strength is displayed in red color if either ammo or supply is low (05/10/29 MS) - shortcut '-' lets you ignore a unit for cycling by keys (05/10/29 MS) - bugfix: fixed inadvertent switch to deployment-turn on loading saved games (05/10/28 LS) - short cuts for most important menu entries (05/10/27 M.S.) - bugfix: reinforcements have proper nationality (05/10/27 M.S.) - ground units have 75% supply level with one close enemy and 50% with more (05/10/26 M.S.) - bugfix: give newly split unit a new ordinal number (05/10/25 LS) - bugfix: also display tiles as dangerous if they are influenced by enemy units (05/10/25 LS) - an attacked unit must have ammo to defend (05/10/25 M.S.) - units may split up (new units must have at least 4 strength as well as the unit itself) (05/10/25 M.S.) - units may be disbanded (05/10/23 M.S.) - introduced deployment-turn for all scenarios and all players (05/10/23 LS) - new commandline options: --(no-)deploy-turn (05/10/23 LS) - new config option: toggle deployment-turn (05/10/23 LS) - rearranged buttons of unit menu, added buttons for disband and split (05/10/23 M.S.) - memory cleanups (05/10/23 M.S.) - tweaked norway reinforcements (05/10/22 M.S.) - declared string parameters as constant where possible (05/10/22 L.S.) 1.2beta-7: - show main menu on title screen without right-click (05/10/17 M.S.) - fix: converter now works on big-endian machines too (05/10/05 J.N) - bugfix: don't allow ground units to be deployed on the ocean (05/10/17 LS) - PG-compat: allow deployment only around deployment centers belonging to the same nationality as the unit (05/10/17 LS) - bugfix: fix english ordinals between 10 and 19 (05/10/17 LS) - make jets actually sound like jets (05/10/17 LS) - bugfix: bridge engineers and us engineers now properly ignore entrenchment (05/10/17 LS) - new command line option: --version (05/10/16 LS) - bugfix: fix savegames broken by introduction of command line support (05/10/15 LS) - bugfix: fix switching of player control in scenario setup (05/10/15 LS) - bugfix: remove attacker from ai_group if it was killed in action (05/10/15 LS) - message if submarine evades (05/10/16 M.S.) - using high-order bits to get more evenly distributed pseudo-random numbers (05/10/16 M.S.) - added internal config option 'anim_speed' (may be addressed by command line) which allows to speed up animations by this factor (05/10/14 M.S.) 1.2beta-6: - command line options support: for now we have --notitle, --control, --help (05/10/14 LS) - support starting a scenario from the commandline (05/10/14 LS) - total suppression can only have consequences (e.g., surrender) if both units are ground units and if the suppression causing unit has range 0 (thus artillery cannot cause a unit to flee) (05/10/14 M.S.) - bugfix: don't consume fuel on airplanes when supplies are turned off (05/10/13 LS) - bugfix: don't consider units delayed by unit.delay != 0, but by inspecting the parse tree (05/10/07 LS) - converter renames incorrect spelling of Germain units: Jadg -> Jagd (05/10/07 LS) - make input boxes behave sensibly by introducing keypress delay/repeat rate (05/10/07 LS) - allow modifiers in input boxes. (05/10/07 LS) - Ctrl+U clears input box (05/10/07 LS) - lgc-pg exports .order file for scenario directory (05/10/07 LS) - deleting of items from linked lists optimized for the common case (05/10/07 LS) - support .order files describing a predefined file order in the file picker (05/10/07 LS) - lged: command line tool for manipulating resources and querying game databases (05/10/07 LS) - units debarking from air transport may directly move (05/10/13 M.S.) - only one (randomly chosen) unit will give defensive fire (05/10/13 M.S.) - if artillery attacks there is no support for the target (05/10/13 M.S.) - artilleries with different ranges may not merge (05/10/13 M.S.) - artillery and air-defense do only help adjacent units with defensive fire (05/10/13 M.S.) - artillery cannot do rugged defense (05/10/13 M.S.) - bugfix: slot number now correctly extracted from file name (05/10/13 M.S.) - use target's terrain for attacker to adjust initiative since fight takes place there (05/10/13 M.S.) - limit to terrain initiative, only if both units are on ground (05/10/13 M.S.) - use unmodified initiative if an aircraft attacks an air-defense (05/10/13 M.S.) - if artillery attacks a close by unit, the target may not do rugged defense (05/10/13 M.S.) - added missing include (05/10/13 M.S.) - artillery with range 1 may move first and attack then but no longer does so with full strength (05/10/13 M.S.) - round up if unit strength is cut in half (05/10/13 M.S.) - on merge, entrenchment is calculated as the weighted sum of both units, assuming entrenchment 0 for the unit that is removed (05/10/13 M.S.) - an attacker looses one entrenchment point if there were casualties (05/10/13 M.S.) - a defender looses one entrenchment point if there were casualties or with an "attacker strength"*10% chance otherwise (05/10/13 M.S.) - second info label is always shown centered below first one (05/10/12 M.S.) 1.2beta-5: - added autosave at end of human player turn (05/10/06 M.S.) - bugfix: update unit quick info if cycling unit list by keys (05/10/05 M.S.) - reinforcements for Norway (05/10/05 L.S.) - mark (by a red layer) any tile that may be reached by the aircraft within the current turn but that is too far away to fly back to an allied airfield again, thus actually dooms the unit to crash (05/10/05 L.S.) - doubled fuel costs in bad weather only for ground/naval units (05/10/05 L.S.) - added a note in the README about the shortcuts (05/09/28 M.S.) - allow keys f and F to cycle forward and backward through all units that may still fire and analogously m and M to cycle through all units that may still move (05/09/28 M.S.) 1.2beta-4: - message time increased to 1.5 secs (05/09/24 M.S.) - aircrafts close to an airfield are automatically supplied at the beginning of a turn (05/09/24 L.S.) - show distance to selected unit if the mouse is on a hex tile within the moving range (05/09/24 L.S.) 1.2beta-3: - Werner Archan's Panzer General guide included (05/09/17 M.S.) - bugfix: level bombers (instead of tactical bombers) will give turn suppression, i.e, suppression that last not only for one fight but a whole turn (05/09/16 M.S.) - enhancement of flag capturing rules (05/09/16 L.S.) - bugfixes for displaying units (05/09/16 L.S.) - suppression and casualty info while attacking (05/09/16 L.S.) - display fuel cost for current unit (05/09/16 L.S.) - FlaK doesn't give supportive fire for airplanes being attacked by other airplanes (05/09/16 L.S.) - aircrafts are supplied immediately at beginning of turn (05/09/16 L.S.) - several AI bugfixes (05/09/16 L.S.) - fixing weather in lgc-pg for Poland, Warsaw, Ardennes (05/09/16 L.S.) - bugfix: units do only mount if nescessary (05/09/16 L.S.) - reinforcements for Warsaw, Low Countries, France, Barbarossa, Ardennes (05/09/16 L.S.) - removed unnescessary semicolons in reinf file (05/09/16 M.S.) - bug fixed to allow AI vs AI games (05/09/16 ???) - AI units try to avoid swamps (05/03/24 M.S.) - fortresses may not merge (05/03/22 U.F.) - tac-bombers have active air-attack while level bombers have passive air-attack (was the other way around before) (05/03/17 U.F.) - forts and carriers have passive air-attack (05/03/17 U.F.) - bugfix: changed SDL include in lgc-pg/shp.h from SDL/SDL.h to SDL.h (04/12/24 M.S.) - bugfix: AI routine crashed when started with no units at all (04/07/08 M.S.) - when a unit attacks out of a swamp the attacked unit gets a defense bonus of +4, also the entrenchment now ranges from 0-3 (04/02/27 CY) - mountains now have INF_CLOSE_DEF, which forces vehicles to use their close defense value (04/02/27 CY) 1.2beta-2: - bugfix: campaign broke up after first scenario (04/02/23 Carlo) 1.2beta: - modified scenario results of allied offensives and ardennes to fit the campaign (04/02/13 M.S.) - added full campaign with some restrictions: player may not choose branch; this decision is made by the scenario outcome solely and the west cannot be beaten at the moment (england and russia can) (04/02/12 M.S.) - bugfix: torch did not load since a newline was missing (04/02/12 M.S.) - implemented unit order for AI group: artillery fires first, then bombers move, then ground units, then fighters and then artillery (04/02/10 M.S.) - no matter how advanced the defense of a target is, there is now always a five percent chance to get damaged by a weaker attacker (04/02/10 M.S.) - the close defense for vehicles kicks in when a) an infantry attacks a non-infantry which is on a inf_close_def tile (forest, mountains, town) b) a non-infantry attacks an infantry which is on a inf_close_def tile; otherwise the normal defense of the non-infantry is used (04/02/10 M.S.) - russian tanks get a +3 initiative bonus to indicate that although they were weaker than german tanks, they simply outnumbered them (04/02/09 M.S.) - bugfix: marketgarden did not load since a newline was missing (04/01/22 M.S.) - lgc-pg integrated into the lgeneral package (04/01/22 M.S.) - compilation issues settled for FreeBSD 5.x (04/01/22 L.C.) - when ending a turn weather is changed before spot mask is built (03/10/10 M.S.) - AI attacks more aggressive (03/10/09 M.S.) - AI is careful with mounting of units (03/10/09 M.S.) - AI covers bombers with interceptors (03/10/08 M.S.) - fixed a bug in supply level calculation: enemy's supply mask was used (03/10/08 M.S.) - if unit is in supply at least one fuel and one ammo are supplied no matter how low the suppy level is (03/10/08 M.S.) - window manager's close button works (03/10/06 M.S.) - added manual page (02/12/10 G.G.) - bug fixed that caused SegFault when too close to the border of the europe map after returning from a scenario (02/10/03 M.S.) - added missing cleanup in strategic map that caused random crashes (02/10/03 M.S.) - missing checks for 'audio_ok' added (02/09/19 T.K.) - removed configure check for libdl (02/09/19 M.S.) - 'KILLS' was renamed to 'CASUALTIES' in the loss expectations (02/09/19 M.S.) - after unit merge "vis_units" should be updated, this caused Segmentation faults, fixed (02/08/24 P.I) 1.1.1: - improved tactical component of AI (02/08/15 M.S.) - players can switch between their units with remaining movement or attacks by pressing 'n' for next and 'p' for previous (02/08/01 M.S.) - screen resolutions 1280x1024 and 1600x1200 added (02/08/01 M.S.) - terrains/maps are loaded 25% faster (02/07/29 M.S.) - 'fog of war' previously a setup option became config option (02/07/29 M.S.) - crossing a river takes two turns (02/07/27 M.S.) - units may only embark to landing boats when near to a harbor or town (02/07/27 M.S.) - non-moved units blink on strategic map (02/07/26 M.S.) - full info is not shown for unseen units (02/07/25 M.S.) - naval units and aircrafts may also merge now (02/07/19 M.S.) - when changing from strategic map to tactical map the screen must be cleared, otherwise on large screen the update is not correct (02/07/16 P.I.) 1.1 - built-in AI became default (02/07/12 M.S.) - config file is now plain text (02/07/12 M.S.) - moved 'unit supply' and 'weather influence' options to scenario setup to prevent cheating (02/07/12 M.S.) - 'compact' format for text files implemented which increases parsing by factor 10 and the overall loading process by 40% (02/07/12 M.S.) - mouse wheel may be used to scroll up/down (09/07/02 patch by Andras Salamon) - implemented CARRIER/CARRIER_OK flags (allows refuel of aircrafts at aircraft carriers) (06/07/02 M.S.) - different tile sets for different weather types (06/07/02 M.S.) - explicit listing of scenario objectives added (05/07/02 M.S.) - when a unit captures an objective by debarking it's now checked if the scenario is finished (02/07/02 M.S.) 1.0.3: - resource path for 'map' and 'unit_db' of custom scenarios (which is the scenario file) is no longer hardcoded (02/06/14 M.S. with thanks to Andras Salamon) - bug fixed that caused a crash when focusing last hex tile of a movement (02/06/08 M.S.) 1.0.2: - configure option --disable-dl implemented for portability with BeOS (02/06/05 M.S.) - enclosed units now properly surrender if completely surpressed (02/06/01 M.S.) - ships and aircrafts now use their ground defense when fighting infantry instead of their close defense (02/06/01 M.S.) - bug in move undo fixed (02/06/01 M.S.) - Sturmgeschuetze (assault tanks?) will support close allied units with full strength in opposite to normal artillery which only operates at half strength if giving defensive fire (02/06/01 M.S.) - Crashing with strategic map is fixed (02/05/31 P.I) 1.0.1: - fixed a bug in map geometry (02/05/31 M.S.) - fog of war is now optional (02/05/31 M.S.) - when a unit has attacked it may not undo it's turn (02/05/31 M.S.) - rugged defense and river modifications corrected (02/05/31 M.S.) - bug fixed which caused a second final view when second player won (02/05/31 M.S.) - submarines are easier to catch now (02/05/31 M.S.) - new victory conditions UNITS_KILLED and UNITS_SAVED implemented to allow hunting units (02/05/31 M.S.) - +8 defense bonus for naval unit instead of ground unit (02/05/30 M.S.) - slight format modification to allow use of converted custom scenarios (02/05/30 M.S.) - ground units with range 0 may only attack an aircraft when it is on the same tile (02/05/30 M.S.) 1.0: - bug in date computing corrected (02/05/29 M.S. with thanks to Andras Salamon) - damage is now computed by the original Panzer General rules (02/05/29 M.S.) - modified map geometry to display troops at the outer border of the tactical map better (02/05/29 M.S. with thanks to Andras Salamon) - function group_add_button() simplified (02/05/29 M.S. with thanks to Andras Salamon) - victory conditions adjusted so that an objective may also be hold by an allied player (02/05/28 M.S.) - VSUBCOND_CTRL_HEX_NUM has been implemented, this victory condition checks if enough objectives are controlled by player (02/05/28 M.S.) - IGNORE_ENTR flag has been implemented (02/05/28 M.S.) - return value of engine_init is checked now, if engine cannot be initialised the title screen is kept, error message goes to standrad output - second unit info is hidden as well when returning to title screen - weather request after last turn is corrected - after last turn info page also shows the result 1.0beta: -CVS'd the project -fixed a bug in movement (Peter Ivanyi) -fixed a crash that occured when the computer did its turn first -fixed a bug in the deploy gui handling (Peter Ivanyi) -dynamic ai modules loaded properly (Peter Ivanyi) 1.0alpha: -engine rebuilt from scratch -all missing features implemented 0.5.0: -reinforcements implemented -removed all 'SDL/' when including SDL -shrinked unit pictures now have proper color key , too -taken some unit graphics from PG ;-) (thanks to Eugene Kirilenko) -savings improved: -instead of ~1MB for each slot size now depends on scenario (much smaller) -campaign information to resume a campaign is saved too (saving only worked for a single scenario so far) -merging of units (to 'heal/repair' damage) implemented -slightly changed structure of unit resource files: -moved entry 'flags' above 'picture' entries -added 'sounds' entry -added audio options (sound, music) and some basic sounds -text string of an edit is properly resized (doesn't crash now) -support for various screen resolutions added -strategic map implemented -fixed a bug that caused a crash when trying to look at the package info -other minor bug fixes: -save not allowed while final viewing of map (scenario finished) -unit unselected before final view -unit unselected before end_turn to prevent some strange effects 0.4.0: -fixed a bug in the fog update occuring when fighting -possible to query unit info if scenario is over -improved the AI interface (comments, more structured) -track button of scrollbar is updated correctly -mouse wheel is supported (once you get used to it you don't want to miss it ;-) -improved unit info (now includes info about transporter and experience) -defensive fire causes suppression for the attacker which stops the attack if all of the unit has been suppressed -unit may undo its move as long as it didn't spot an enemy -fixed some bugs occuring when display depth is >16bits: (thanks to Eugenia Loli-Queru and Lodewijk) -crash in determination of unit size -wrong transparency key -weather influence: -snow and rain: -cut spotting in half -flying units can't attack -air attack of ground units cut in half -wheeled or legged ground units have doubled moving costs -clouds: -flying units attack with half intensity -implemented harbor flag for map tiles (allow ships to move and supply there) -different supply levels: -flying units must be close to an airfield -swimming units must be close to a harbor -ground units lose 10% supply level for each tile they get away from a flag (100% on a flag) -units that take no action supply automatically -fixed a bug that caused a wrong update of the unit action buttons -added bridge engineering flag for units -fixed a bug that accidently revealed the position of hostile artillery doing defensive fire -added in-game scenario info: -current/next player -turn limits -weather -forecast -description -explicit scenario objectives -adjusted major victory limit 0.3.0: -implemented a complete title menu to run a scenario or campaign, load a game or see credits about packages -implemented a small gimmick into the title screen (let's see who finds it ;-) -info (author, description, filelist) about installed packages implemented -improved the theme -added a scrollbar to the briefing window so oversized messages may be displayed, too -added an 'authors' entry to campaign and scenario files -fixed a bug in the gui causing a crash when using a listbox with a scrollbar -minor bugfixes 0.2.0: -combat system improved: -rugged defence -defensive fire by artillery, air-defence and interceptors -units stop when spotting an enemy -ambushs -hostile units control their surrounding (you can't simply move through enemy frontline) -campaign mode implemented ( and therefore scenario victory conditions implemented ) -in-game menu implemented (load, save, options, restart, quit) -HOWTO explaining structure of resource files (graphics, scenarios, campaigns, units, etc) -better parsing of resource files (warning/error messages; order of entries doesn't matter) -basic cpu strategy determined automatically (either aggressive or defensive) -single CPU opponent plays with fog of human player -map tile flags influence movement -map tile definitions read in map file instead of scenario file -unit icons (attack, move) now belong to theme instead of map tile graphics -status bar graphics improved -engine improved: -implemented 'rename unit' -you don't have to switch to air mode to attack an enemy flying above a ground unit (and vice versa) -units can move over tiles with an allied unit -various bug fixes: -much better pathfinding and unit movement -unit does not lose ammo in a fight if it can't fire -removed some hacks (only those that were too bad to keep them ;-) 0.1.0: -initial public release lgeneral-1.3.1/README.lgeneral0000664000175000017500000003141112140770461012702 00000000000000 ========================== LGeneral ========================== a turn-based strategy game released under GNU GPL Table of Contents ----------------- 1. About 2. Installation 2.1 Building LGeneral on Mac OS X 3. Troubleshooting 4. Main Menu 5. Interface 6. Unit Menu 7. Differences between LGeneral and Panzer General 8. Bugs 9. Feedback 1. About -------- LGeneral is a turn-based strategy engine heavily inspired by Panzer General. The engine itself does not provide playable data. However, the program lgc-pg (included to this package in subdirectory lgc-pg) allows conversion of the original PG data. If you do not own a copy of the game, there is a package at http://lgames.sf.net which contains this data. It is copyrighted by SSI, now part of UBI Soft, but made available in the sense of abandonware. Please see the README in the data package for more information. If you have gotten the PG data, one way or the other, see README.lgc-pg to learn how to convert the data, after you have installed LGeneral itself as described below. 2. Installation --------------- LGeneral runs in X and uses SDL (>= 1.1.4) and SDL_mixer (optional, any version). Both libraries can be found at http://libsdl.org. Now enter your favorite shell and type in the following stuff (in the directory you extracted the LGeneral source) > ./configure [--disable-sound] [--disable-install] [--disable-dl] --disable-sound: no sound --disable-install: no installation; play from source directory --disable-dl: disable use of AI modules and stick to the built-in AI > make > su (become root) > make install (if install wasn't disabled) The LGeneral engine and the converter lgc-pg are now installed. Please download the data package or use your copy of PG (DOS version) and feed the engine according to the instructions in README.lgc-pg. 2.1 Building LGeneral on Mac OS X --------------------------------- Some hints about building LGeneral on Mac OS X: * Build SDL from source. * Build gettext from source. * Compile LGeneral on a case-sensitive file system, otherwise sdl.h and SDL.h conflict. 3. Troubleshooting ------------------ 1) If SDL is not found remember that you'll additionally need the development package for compiling though not for running. (a popular Mandrake user mistake) CY reported a hint for Mandrake: It seems that their SDL package scheme is somewhat broken. When you try to install the latest devel package, it might fail because some files have to be replaced. Easier than re-installing SDL is to use the rpm option --replacefiles for installing the devel package. 2) The same applies to SDL_mixer! 3) If your sound is out of sync change the last argument for Mix_OpenAudio() in audio_open() in audio.c from 256 to 2048. This might help. 4. Main Menu ------------ When the LGeneral title screen is displayed click any mouse button to move on and you'll see the themes background without anything on it. Now click the *right* mouse button to popup the menu. Each menu item has a tooltip displayed at the top of the screen and I consider them quite self-explaining for most of the time. ;-) 1) Resolution: Modifications to the resolution settings are not applied immediately but must be confirmed with the apply button. 2) Start Scenario: Clicking on 'Load Scenario' will bring up the selection dialogue. If you did not install any scenarios this is a dead end (get lgc-pg!) else there should be a 'pg' directory. Open it and select a scenario. If the selected scenario is valid some information is shown and you may now run it or modify its settings (control and ai module for each player). 3) Start Campaign: Works analogously to 'Load Scenario'. The only campaign so far is 'PG' which is a full WW2 campaign starting in Poland and ending up in Washington if you are good enough. There are some modifications compared to the original PG campaign. Please check src/campaigns/PG for more information. 5. Interface ------------ If you start a scenario or load a game you'll be at the tactical map. Moving the cursor above a unit displays a quick info about the unit(s) and the hex tile. 1) Select A Unit: A unit is selected by left-click on it where a hex tile is split into two regions. The upper one contains the air unit and the lower one the ground unit. For example if there is no air unit and you click into the air region the ground unit will be selected if there is one. 2) Unselect Unit: A simple right-click anywhere will unselect the unit. 3) Move Unit: When selecting a unit the fog mask will change to show where the unit may move or em/debark. Left-click on any of the highlighted hex tiles to execute the movement. For aircrafts there is a danger mask. If a hex tile is potentially out of range, it is covered with red color. This means the aircraft is unlikely (well this is almost sure) to reach an allied airfield to supply in time. (If there is not at least one fuel remaining, by the end of the turn, the aircraft will crash inevitably!) Also, even if a tile is not marked, it may happen that (due to enemy aircrafts in the way) the fuel does not suffice. So this is really more of a warning. E.g., if you are close to an airfield and sure that you will conquer it the next turn, you can ignore any warnings of being out of reach for your aircrafts, because as soon as you have the airfield they can supply. 4) Attack An Enemy: If the unit within the hextile and region the pointer is on is a valid target it will change into a crosshair. A left-click initiates the attack. To decide whether an attack is useful or not have a look at the expected losses displayed at the top of the screen. (very useful!) 5) Unit Menu: If you left-click on a selected unit the unit menu will popup. (is explained below) 6) Full Unit Info: If you have no unit selected and you right-click on one a full unit info will be displayed. Note: It is still possible (though a bit slow) to move the pointer above other units to compare properties. A right-click will close the unit info. 7) Main Menu: If you have no unit selected and you right-click into an empty hextile the main menu (as described in the section above) will popup. 8) Scrolling: To scroll the tactical map either use the cursor keys or move the pointer to the border of the screen. 9) Shortcuts: You may use the keys 'n' and 'p' to cycle through all your units that may still either fire or move. 'f' and 'F' allow to cycle through only those units that may still fire. 'm'/'M' will give you the moving units list. With '-' you can toggle whether a unit is included to any of these cycles. If it is not, a purple bar is shown above the strength label. This is useful if you have a number of units in, e.g. towns, that are supposed to simply stay there. As soon as you move a unit or attack with it, the 'guard' label is removed. Same applies if the unit is attacked. Besides, there are many short cuts for the most important menu options. Check the menu, the key is shown in brackets behind the description, e.g., 'u' for undo a unit's move. 'TAB' allows you to flip the layout of asymmetrically positioned windows (like the unit quick infos or the deploy window) to see clearly what lies behind. 6. Unit Menu ------------ These are the options in the unit menu: 1) Supply: Ships and aircraft must be close to their supply point (harbor, airfield) and receive a supply level of 100 (full supply) there. Ground units receive 100 if close to an allied town and airfield and lose 10 for each hex tile away from the nearest supply point. As soon as an enemy is close the ground units supply at 75% of the actual supply level and aircrafts at 50%. If more than one enemy is close, the rate drops to 50% for ground units and 0% for aircrafts. So be aware that long sieges with no town near in the back may cause trouble if you take too long or move too fast! As a help, the unit strength is displayed in red color if the unit is either low in fuel (aircrafts <= 20, other units <= 10) or low in ammo (<=2). 2) Air Embark/Debark: If your unit is on an allied airfield and can use an air transport it may embark. If your unit is using an air transport and uses parachutes it may debark anywhere on the map (if the embarked unit is able to enter this tile, of course) else it is only allowed to debark at an allied airfield. It may not have moved yet, when trying to embark/debark (so it must come to a halt on or above the airfield before actually em-/debarking) but can move directly on the ground after debark. 3) Merge Units: LGeneral's way of reinforcements differs from PG's. Instead of purchasing replacement or elite replacement a unit may merge with another of the same class to compensate damage as long as the total strength is less or equal to 13. The unit, marked by the red up arrow, is merged into the selected unit. The new entrenchment is then the weighted sum, assuming entrenchment 0 for the marked unit (since it had to move). So to keep entrenchment you must select the unit with the high entrenchment first and merge the other into it. 4) Split Units: This allows splitting up some strength and either direct it to another close unit (which makes it an inverse merge) or put it as a new standalone unit. The unit doing the split must keep at least 4 strength. When transfering to another unit, any strength from 1 to maximum (this unit needs 4 remaining, target may not go above 13) may be selected. But if the unit is supposed to be standalone it must again have at least 4 strength. So you can only split to a new unit if the splitting unit itself has more than 7 strength. 4) Undo Turn: A unit may undo it's movement if no enemy was spotted. 5) Rename Unit: Change the name of the unit. 6) Disband Unit: If the unit did not yet act in the current turn, it may be disbanded. The unit is than permanently (after confirmation) removed from the game. 7. Differences between LGeneral and Panzer General -------------------------------------------------- As LGeneral is heavily inspired by Panzer General you can find Werner Archan's FAQ at http://lgames.sf.net in Additional Resources for LGeneral. It provides many helpful hints to master the game. However, LGeneral and PG differ in two main aspects: 1) Reinforcements: Initially I wanted to have fixed reinforcements arriving in later turns but to define these in a balanced and accurate manner proved to be quite difficult. Only a handful of scenarios feature such reinforcements. Therefore LGeneral now provides a purchase option and means to acquire prestige as in Panzer General. There will be no option for replacement though. Units may be merged and split as described in section 6. Requested units will arrive next turn for deployment. Unit orders may be cancelled any time in the same turn (prestige gets refunded). Once a unit has arrived and is ready for deployment it can no longer be refunded. The reinforcements editor lgeneral-redit (a subpackage of this package) and already defined reinforcements are still present but deactivated by default. To re-enable these and to disable the purchase option run LGeneral with command line option --no-purchase. But as I said already only a few scenarios have reinforcements defined yet so most of the time this means you just play without reinforcements. Any submissions for predefined reinforcements are still very welcome! 2) Core Units: There will be none. It is nice to have a fully experienced killer troop you brought all the way from Poland to Washington but how did you manage that? You loaded and saved to get good combat results with this unit at a low damage rate. Anyone must admit that this is a very untactical way of using a unit. Much better going with the auxiliaries: If there was a town to be taken they had to go for it at any cost thus they were used to their full tactical extent. And that is what should be done with all units on the battle field. With core units that are treated like being on holidays this can't be done, so there simply will be no way to re-use units in the next scenario of a campaign. 8. Bugs ------- We tested as much as we could and already removed a lot of funny and mysterious bugs but this game is still under development so report any suspicious behaviour to http://lgames.sf.net/contact.php. Known bugs: 1) Loading the dynamic AI now works but it seems to screw some pointers which results in no unit movement. However on some machines it does work. I wasn't able to spot the reason so if you do please tell me! 9. Feedback ----------- Any comments and bugreports are welcome. Please use the contact form at http://lgames.sf.net/contact.php. And don't forget to look at http://lgames.sf.net for updates sometimes! Enjoy the game! Michael Speck lgeneral-1.3.1/TODO0000664000175000017500000000246512610446020010722 00000000000000- transfer prestige? - strat map icon for deploy window **** Gameplay - ingame help screen with all shortcuts and interface explanation - France with 25/30 turns instead of 13/26 ??? **** Display - victory hexes are bad to see many units are arround - edit sometimes broken? (string too long, many blanks) - add a video mode of 800x480 for Nokia devices **** AI - does not use carpet bombing yet - whether enemy may attack a truck position must be checked not only by getting the plain distance but by computing the required path to allow placement behind a closed front line - aricrafts out of action do not return to game - during AI move view is not toggled (can't see airplan damage) - check bug: paratroops do not attack in crete and south france - airplanes do not return though out of fuel and in reach of an airfield (warsaw) - trucks cannot pass rivers in bad weather and they don't try to take the longer way around - AI must protect own cities with units - AI groups: implement execution order (artillery fire, bombers, fighters, ground units, artillery movement) - loop execution several times to move when a unit which is handled later blocked the destination position - tweak tactical action scores (are quite good already though) - AI does not protect airborne units - AI does not go for U-boots lgeneral-1.3.1/src/0000775000175000017500000000000012643745102011103 500000000000000lgeneral-1.3.1/src/sounds/0000775000175000017500000000000012643745101012415 500000000000000lgeneral-1.3.1/src/sounds/Makefile.in0000664000175000017500000003166312643745056014424 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/sounds DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/sounds/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/sounds/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/sounds # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/sounds/Makefile.am0000664000175000017500000000010312140770455014365 00000000000000install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/sounds lgeneral-1.3.1/src/misc.h0000664000175000017500000001525012501312762012125 00000000000000/*************************************************************************** misc.h - description ------------------- begin : Fri Jan 19 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __MISC_H #define __MISC_H struct PData; struct _Font; #define MAXPATHLEN 512 /* check if number is odd or even */ #define ODD( x ) ( x & 1 ) #define EVEN( x ) ( !( x & 1 ) ) /* free with a check */ #define FREE( ptr ) { if ( ptr ) free( ptr ); ptr = 0; } /* check if a serious of flags is set in source */ #define CHECK_FLAGS( source, flags ) ( source & (flags) ) /* return random value between ( and including ) upper,lower limit */ #define RANDOM( lower, upper ) ( ( rand() % ( ( upper ) - ( lower ) + 1 ) ) + ( lower ) ) #define DICE(maxeye) (1+(int)(((double)maxeye)*rand()/(RAND_MAX+1.0))) /* check if within this rect */ #define FOCUS( cx, cy, rx, ry, rw, rh ) ( cx >= rx && cy >= ry && cx < rx + rw && cy < ry + rh ) /* compare strings */ #define STRCMP( str1, str2 ) ( strlen( str1 ) == strlen( str2 ) && !strncmp( str1, str2, strlen( str1 ) ) ) /* return minimum */ #define MINIMUM( a, b ) ((ab)?a:b) /* compile time assert */ #ifndef NDEBUG # define COMPILE_TIME_ASSERT( x ) do { switch (0) {case 0: case x:;} } while(0) #else # define COMPILE_TIME_ASSERT( x ) #endif /* check for symbol existence at compile-time */ #ifndef NDEBUG # define COMPILE_TIME_ASSERT_SYMBOL( s ) COMPILE_TIME_ASSERT( sizeof s ) #else # define COMPILE_TIME_ASSERT_SYMBOL( s ) #endif /* ascii-codes of game-related symbols */ enum GameSymbols { CharDunno1 = 1, /* no idea (kulkanie?) */ CharDunno2 = 2, /* no idea (kulkanie?) */ CharStrength = 3, CharFuel = 4, CharAmmo = 5, CharEntr = 6, CharBack = 17, /* no idea actually (kulkanie?) */ CharDistance = 26, CharNoExp = 128, CharExpGrowth = CharNoExp, CharExp = 133, CharCheckBoxEmpty = 136, CharCheckBoxEmptyFocused = 137, CharCheckBoxChecked = 138, CharCheckBoxCheckedFocused = 139, }; #define GS_STRENGTH "\003" #define GS_FUEL "\004" #define GS_AMMO "\005" #define GS_ENTR "\006" #define GS_BACK "\021" #define GS_DISTANCE "\032" #define GS_NOEXP "\200" #define GS_EXP "\205" #define GS_CHECK_BOX_EMPTY "\210" #define GS_CHECK_BOX_EMPTY_FOCUSED "\211" #define GS_CHECK_BOX_CHECKED "\212" #define GS_CHECK_BOX_CHECKED_FOCUSED "\213" /* delay struct */ typedef struct { int limit; int cur; } Delay; /* set delay to ms milliseconds */ inline void set_delay( Delay *delay, int ms ); /* reset delay ( cur = 0 )*/ inline void reset_delay( Delay *delay ); /* check if time's out ( add ms milliseconds )and reset */ inline int timed_out( Delay *delay, int ms ); /* return distance betwteen to map positions */ int get_dist( int x1, int y1, int x2, int y2 ); /* init random seed by using ftime */ void set_random_seed(); /* get coordintaes from string */ void get_coord( const char *str, int *x, int *y ); /** text structure */ typedef struct { char **lines; int count; } Text; /** convert a str into text ( for listbox ) */ Text* create_text( struct _Font *fnt, const char *str, int width ); /** delete text */ void delete_text( Text *text ); /* ==================================================================== Delete an array of strings and set it and counter 0. ==================================================================== */ void delete_string_list( char ***list, int *count ); /* ==================================================================== To simplify conversion from string to flag tables of these entries are used. ==================================================================== */ typedef struct { char *string; int flag; } StrToFlag; /* ==================================================================== This function checks if 'name' occurs in fct and return the flag or 0 if not found. ==================================================================== */ int check_flag( const char *name, StrToFlag *fct ); /* ==================================================================== Get neighbored tile coords clockwise with id between 0 and 5. ==================================================================== */ int get_close_hex_pos( int x, int y, int id, int *dest_x, int *dest_y ); /* ==================================================================== Check if these positions are close to each other. ==================================================================== */ int is_close( int x1, int y1, int x2, int y2 ); /* ==================================================================== Copy source to dest and at maximum limit chars. Terminate with 0. ==================================================================== */ void strcpy_lt( char *dest, const char *src, int limit ); /* ==================================================================== Returns the basename of the given file. ==================================================================== */ const char *get_basename(const char *filename); /* ==================================================================== Return the domain out of the given parse-tree. If not contained, construct the domain from the file name. Will be allocated on the heap. ==================================================================== */ char *determine_domain(struct PData *tree, const char *filename); /* ==================================================================== Return the directory the game data is installed under. ==================================================================== */ const char *get_gamedir(void); /** Macro wrapper to read data from file with (very) simple error handling. * Only to be used as standalone command, not in conditions. */ #define _fread(ptr,size,nmemb,stream) \ do { int _freadretval = fread(ptr,size,nmemb,stream); if (_freadretval != nmemb && !feof(stream)) fprintf(stderr, "%s: %d: _fread error\n",__FILE__,__LINE__);} while (0) #endif lgeneral-1.3.1/src/slot.h0000664000175000017500000000430112140770455012154 00000000000000/*************************************************************************** slot.h - description ------------------- begin : Sat Jun 23 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __SLOT_H #define __SLOT_H enum { SLOT_COUNT = 11 }; /* ==================================================================== Check the save directory for saved games and add them to the slot list else setup a new entry: '_index_ ' ==================================================================== */ void slots_init(); /* ==================================================================== Get full slot name from id. ==================================================================== */ char *slot_get_name( int id ); /* ==================================================================== Get slot's file name. This slot name may be passed to slot_load/save(). ==================================================================== */ char *slot_get_fname( int id ); /* ==================================================================== Save/load game ==================================================================== */ int slot_save( int id, char *name ); int slot_load( int id ); /* ==================================================================== Return True if slot is loadable. ==================================================================== */ int slot_is_valid( int id ); #endif lgeneral-1.3.1/src/config.c0000664000175000017500000001252412575247507012452 00000000000000/*************************************************************************** config.c - description ------------------- begin : Tue Feb 13 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include #include #include #include #include #include "lg-sdl.h" #include "config.h" #include "parser.h" #include "localize.h" Config config; /* check if config directory exists; if not create it and set config_dir */ void check_config_dir_name() { struct stat info; #ifndef INSTALLDIR /* if no installation store config to current directory not home */ sprintf( config.dir_name, "." ); #else sprintf( config.dir_name, "%s/.lgames", getenv( "HOME" ) ); #endif if ( stat( config.dir_name, &info ) != 0 ) { int res; fprintf( stderr, tr("Couldn't find/open config directory '%s'\n" "Attempting to create it... "), config.dir_name ); res = mkdir( config.dir_name, S_IRWXU ); if ( res != 0 ) fprintf( stderr, tr("failed\n") ); else fprintf( stderr, tr("ok\n") ); } } /* set config to default */ void reset_config() { /* gfx options */ config.tran = 1; config.grid = 0; config.show_bar = 1; config.width = 640; config.height = 480; config.fullscreen = 0; config.anim_speed = 1; /* game options */ config.supply = 1; config.weather = 1; config.fog_of_war = 1; config.show_cpu_turn = 1; config.deploy_turn = 1; config.purchase = 1; config.ai_debug = 0; /* audio stuff */ config.sound_on = 1; config.sound_volume = 96; config.music_on = 1; config.music_volume = 96; } /* load config */ void load_config( ) { char file_name[512]; PData *pd; /* set to defaults */ check_config_dir_name(); reset_config(); /* load config */ sprintf( file_name, "%s/%s", config.dir_name, "lgeneral.conf" ); if ( ( pd = parser_read_file( "config", file_name ) ) == 0 ) { fprintf( stderr, "%s\n", parser_get_error() ); return; } /* assign */ parser_get_int( pd, "grid", &config.grid ); parser_get_int( pd, "tran", &config.tran ); parser_get_int( pd, "bar", &config.show_bar ); parser_get_int( pd, "width", &config.width ); parser_get_int( pd, "height", &config.height ); parser_get_int( pd, "fullscreen", &config.fullscreen ); parser_get_int( pd, "anim_speed", &config.anim_speed ); parser_get_int( pd, "supply", &config.supply ); parser_get_int( pd, "weather", &config.weather ); parser_get_int( pd, "fog_of_war", &config.fog_of_war ); parser_get_int( pd, "cpu_turn", &config.show_cpu_turn ); parser_get_int( pd, "deploy", &config.deploy_turn ); parser_get_int( pd, "purchase", &config.purchase ); parser_get_int( pd, "ai_debug", &config.ai_debug ); parser_get_int( pd, "sound_on", &config.sound_on ); parser_get_int( pd, "sound_volume", &config.sound_volume ); parser_get_int( pd, "music_on", &config.music_on ); parser_get_int( pd, "music_volume", &config.music_volume ); parser_free( &pd ); } /* save config */ void save_config( ) { FILE *file = 0; char file_name[512]; sprintf( file_name, "%s/%s", config.dir_name, "lgeneral.conf" ); if ( ( file = fopen( file_name, "wb" ) ) == 0 ) fprintf( stderr, tr("Cannot access config file '%s' to save settings\n"), file_name ); else { fprintf( file, "@\n" ); fprintf( file, "grid»%i\n", config.grid ); fprintf( file, "tran»%i\n", config.tran ); fprintf( file, "bar»%i\n", config.show_bar ); fprintf( file, "width»%i\n", config.width ); fprintf( file, "height»%i\n", config.height ); fprintf( file, "fullscreen»%i\n", config.fullscreen ); fprintf( file, "anim_speed»%i\n", config.anim_speed ); fprintf( file, "supply»%i\n", config.supply ); fprintf( file, "weather»%i\n", config.weather ); fprintf( file, "fog_of_war»%i\n", config.fog_of_war ); fprintf( file, "cpu_turn»%i\n", config.show_cpu_turn ); fprintf( file, "deploy»%i\n", config.deploy_turn ); fprintf( file, "purchase»%i\n", config.purchase ); fprintf( file, "ai_debug»%i\n", config.ai_debug ); fprintf( file, "sound_on»%i\n", config.sound_on ); fprintf( file, "sound_volume»%i\n", config.sound_volume ); fprintf( file, "music_on»%i\n", config.music_on ); fprintf( file, "music_volume»%i\n", config.music_volume ); fclose( file ); } } lgeneral-1.3.1/src/unit_lib.h0000664000175000017500000001730012472352767013015 00000000000000/*************************************************************************** lgeneral.h - description ------------------- begin : Sat Mar 16 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __UNIT_LIB_H #define __UNIT_LIB_H /* ==================================================================== Unit flags. ==================================================================== */ enum { SWIMMING = ( 1L << 1 ), /* ship */ DIVING = ( 1L << 2 ), /* aircraft */ FLYING = ( 1L << 3 ), /* submarine */ PARACHUTE = ( 1L << 4 ), /* may air debark anywhere */ TRANSPORTER = ( 1L << 7 ), /* is a transporter */ RECON = ( 1L << 8 ), /* multiple movements a round */ ARTILLERY = ( 1L << 9 ), /* defensive fire */ INTERCEPTOR = ( 1L << 10 ), /* protects close bombers */ AIR_DEFENSE = ( 1L << 11 ), /* defensive fire */ BRIDGE_ENG = ( 1L << 12 ), /* builds a bridge over rivers */ INFANTRY = ( 1L << 13 ), /* is infantry */ AIR_TRSP_OK = ( 1L << 14 ), /* may use air transporter */ DESTROYER = ( 1L << 15 ), /* may attack submarines */ IGNORE_ENTR = ( 1L << 16 ), /* ignore entrenchment of target */ CARRIER = ( 1L << 17 ), /* aircraft carrier */ CARRIER_OK = ( 1L << 18 ), /* may supply at aircraft carrier */ BOMBER = ( 1L << 19 ), /* receives protection by interceptors */ ATTACK_FIRST = ( 1L << 20 ), /* unit looses it's attack when moving */ LOW_ENTR_RATE = ( 1L << 21 ), /* entrenchment rate is 1 */ TANK = ( 1L << 22 ), /* is a tank */ ANTI_TANK = ( 1L << 23 ), /* anti-tank (bonus against tanks) */ SUPPR_FIRE = ( 1L << 24 ), /* unit primarily causes suppression when firing */ TURN_SUPPR = ( 1L << 25 ), /* causes lasting suppression */ JET = ( 1L << 26 ), /* airplane is a jet */ GROUND_TRSP_OK = ( 1L << 27 ), /* may have transporter (for purchase) */ CARPET_BOMBING = ( 1L << 28 ) /* may temporarily destroy cities/airfields */ }; /* ==================================================================== Target types, movement types, unit classes These may only be loaded if unit_lib_main_loaded is False. ==================================================================== */ typedef struct { char *id; char *name; } Trgt_Type; typedef struct { char *id; char *name; #ifdef WITH_SOUND Wav *wav_move; #endif } Mov_Type; typedef struct { char *id; char *name; #define UC_PT_NONE 0 #define UC_PT_NORMAL 1 #define UC_PT_TRSP 2 int purchase; } Unit_Class; /* ==================================================================== Unit map tile info icons (strength, move, attack ...) ==================================================================== */ typedef struct { SDL_Surface *str; int str_w, str_h; SDL_Surface *atk; SDL_Surface *mov; SDL_Surface *guard; } Unit_Info_Icons; /* ==================================================================== Unit icon styles. SINGLE: unit looks left and is mirrored to look right FIXED: unit has fixed looking direction ALL_DIRS: unit provides an icon (horizontal arranged) for each looking direction. ==================================================================== */ enum { UNIT_ICON_SINGLE = 0, UNIT_ICON_FIXED, UNIT_ICON_ALL_DIRS }; /* ==================================================================== As we allow unit merging it must be possible to modify a shallow copy of Unit_Lib_Entry (id, name, icons, sounds are kept). This means to have attacks as a pointer is quite bad. So we limit this array to a maxium target type count. ==================================================================== */ enum { TARGET_TYPE_LIMIT = 10 }; /* ==================================================================== Unit lib entry. ==================================================================== */ typedef struct { char *id; /* identification of this entry */ char *name; /* name */ int nation; /* nation */ int class; /* unit class */ int trgt_type; /* target type */ int ini; /* inititative */ int mov; /* movement */ int mov_type; /* movement type */ int spt; /* spotting */ int rng; /* attack range */ int atk_count; /* number of attacks per turn */ int atks[TARGET_TYPE_LIMIT]; /* attack values (number is determined by global target_type_count) */ int def_grnd; /* ground defense (non-flying units) */ int def_air; /* air defense */ int def_cls; /* close defense (infantry against non-infantry) */ int entr_rate; /* default is 2, if flag LOW_ENTR_RATE is set it's only 1 and if INFANTRY is set it's 3, this modifies the rugged defense chance */ int ammo; /* max ammunition */ int fuel; /* max fuel (0 if not used) */ SDL_Surface *icon; /* tactical icon */ SDL_Surface *icon_tiny; /* half the size; used to display air and ground unit at one tile */ int icon_type; /* either single or all_dirs */ int icon_w, icon_h; /* single icon size */ int icon_tiny_w, icon_tiny_h; /* single icon size */ int flags; int start_year, start_month, last_year; /* time of usage */ int cost; /* purchase cost in prestige points */ #ifdef WITH_SOUND int wav_alloc; /* if this flag is set wav_move must be freed else it's a pointer */ Wav *wav_move; /* pointer to the unit class default sound if wav_alloc is not set */ #endif int eval_score; /* between 0 - 1000 indicating the worth of the unit relative the best one */ } __attribute((packed)) Unit_Lib_Entry; /* ==================================================================== Load a unit library. If UNIT_LIB_MAIN is passed target_types, mov_types and unit classes will be loaded (may only happen once) ==================================================================== */ enum { UNIT_LIB_ADD = 0, UNIT_LIB_MAIN }; int unit_lib_load( char *fname, int main ); /* ==================================================================== Delete unit library. ==================================================================== */ void unit_lib_delete( void ); /* ==================================================================== Find unit lib entry by id string. ==================================================================== */ Unit_Lib_Entry* unit_lib_find( char *id ); /* ==================================================================== Evaluate the unit. This score will become a relative one whereas the best rating will be 1000. Each operational region ground/sea/air will have its own reference. This evaluation is PG specific. ==================================================================== */ void unit_lib_eval_unit( Unit_Lib_Entry *unit ); #endif lgeneral-1.3.1/src/audio.c0000664000175000017500000001026012140770455012270 00000000000000/*************************************************************************** audio.c - description ------------------- begin : Sun Jul 29 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifdef WITH_SOUND #include #include #include #include #include "audio.h" #include "misc.h" /* ==================================================================== If audio device was properly initiated this flag is set. If this flag is not set; no action will be taken for audio. ==================================================================== */ int audio_ok = 0; /* ==================================================================== If this flag is not set no sound is played. ==================================================================== */ int audio_enabled = 1; /* ==================================================================== Volume of all sounds ==================================================================== */ int audio_volume = 128; /* ==================================================================== Initiate/close audio ==================================================================== */ int audio_open() { if ( Mix_OpenAudio( MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 256 ) < 0 ) { fprintf( stderr, "%s\n", SDL_GetError() ); audio_ok = 0; return 0; } audio_ok = 1; return 1; } void audio_close() { if ( !audio_ok ) return; Mix_CloseAudio(); } /* ==================================================================== Modify audio ==================================================================== */ void audio_enable( int enable ) { if ( !audio_ok ) return; audio_enabled = enable; if ( !enable ) Mix_Pause( -1 ); /* stop all sound channels */ } void audio_set_volume( int level ) { if ( !audio_ok ) return; if ( level < 0 ) level = 0; if ( level > 128 ) level = 128; audio_volume = level; Mix_Volume( -1, level ); /* all sound channels */ } void audio_fade_out( int channel, int ms ) { if ( !audio_ok ) return; Mix_FadeOutChannel( channel, ms ); } /* ==================================================================== Wave ==================================================================== */ Wav* wav_load( char *fname, int channel ) { char path[512]; Wav *wav = 0; if ( !audio_ok ) return 0; wav = calloc( 1, sizeof( Wav ) ); /* use SRCDIR/sounds as source directory */ sprintf( path, "%s/sounds/%s", get_gamedir(), fname ); wav->chunk = Mix_LoadWAV( path ); if ( wav->chunk == 0 ) { fprintf( stderr, "%s\n", SDL_GetError() ); free( wav ); wav = 0; } wav->channel = channel; return wav; } void wav_free( Wav *wav ) { if ( !audio_ok ) return; if ( wav ) { if ( wav->chunk ) Mix_FreeChunk( wav->chunk ); free( wav ); } } void wav_set_channel( Wav *wav, int channel ) { wav->channel = channel; } void wav_play( Wav *wav ) { if ( !audio_ok ) return; if ( !audio_enabled ) return; Mix_Volume( wav->channel, audio_volume ); Mix_PlayChannel( wav->channel, wav->chunk, 0 ); } void wav_play_at( Wav *wav, int channel ) { if ( !audio_ok ) return; wav->channel = channel; wav_play( wav ); } void wav_fade_out( Wav *wav, int ms ) { if ( !audio_ok ) return; Mix_FadeOutChannel( wav->channel, ms ); } #endif lgeneral-1.3.1/src/misc.c0000664000175000017500000002606712575246413012142 00000000000000/*************************************************************************** misc.c - description ------------------- begin : Fri Jan 19 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "misc.h" #include "parser.h" #include "localize.h" #include "paths.h" #include "lg-sdl.h" #include #include #include #include extern int map_w, map_h; /* FIX ME! */ /* compares to strings and returns true if their first strlen(str1) chars are equal */ inline int equal_str( const char *str1, const char *str2 ) { if ( strlen( str1 ) != strlen( str2 ) ) return 0; return ( !strncmp( str1, str2, strlen( str1 ) ) ); } /* set delay to ms milliseconds */ inline void set_delay( Delay *delay, int ms ) { delay->limit = ms; delay->cur = 0; } /* reset delay ( cur = 0 )*/ inline void reset_delay( Delay *delay ) { delay->cur = 0; } /* check if times out and reset */ inline int timed_out( Delay *delay, int ms ) { delay->cur += ms; if ( delay->cur >= delay->limit ) { delay->cur = 0; return 1; } return 0; } /* Convert grid coordinates into isometric (diagonal) coordinates. */ inline static void convert_coords_to_diag( int *x, int *y ) { *y += (*x + 1) / 2; } /* return distance between to map positions */ int get_dist( int x0, int y0, int x1, int y1 ) { int dx, dy; convert_coords_to_diag( &x0, &y0 ); convert_coords_to_diag( &x1, &y1 ); dx = abs(x1 - x0); dy = abs(y1 - y0); if ( (y1 <= y0 && x1 >= x0) || (y1 > y0 && x1 < x0) ) return dx + dy; else if (dx > dy) return dx; else return dy; } /* init random seed by using ftime */ void set_random_seed() { srand( (unsigned int)time( 0 ) ); } /* get coordinates from string */ void get_coord( const char *str, int *x, int *y ) { int i; char *cur_arg; *x = *y = 0; /* get position of comma */ for ( i = 0; i < strlen( str ); i++ ) if ( str[i] == ',' ) break; if ( i == strlen( str ) ) { fprintf( stderr, tr("get_coord: no comma found in pair of coordinates '%s'\n"), str ); return; /* no comma found */ } /* y */ cur_arg = (char *)str + i + 1; if ( cur_arg[0] == 0 ) fprintf( stderr, tr("get_coord: warning: y-coordinate is empty (maybe you left a space between x and comma?)\n") ); *y = atoi( cur_arg ); /* x */ cur_arg = strdup( str ); cur_arg[i] = 0; *x = atoi( cur_arg ); FREE( cur_arg ); } /* replace new_lines with spaces in text */ void repl_new_lines( char *text ) { int i; for ( i = 0; i < strlen( text ); i++ ) if ( (unsigned char)text[i] < 32 ) text[i] = 32; } /** return 1 if ch is a line breaking character */ inline static int text_is_linebreak(char ch) { return ch == '#'; } /** return 1 if text is breakable just before end */ inline static int text_is_breakable(const char *begin, const char *end) { return begin != end && (end[-1] == '\t' || end[-1] == '\n' || end[-1] == ' ' || end[-1] == '-'); } /** transient data for building up a struct Text object */ struct TextData { Text *text; int reserved; }; /** * Adds the given range as a line to the struct Text object, * performing text transformations as necessary */ static void text_add_line(struct TextData *td, const char *begin, const char *end) { int idx = td->text->count; char *out; if (idx == td->reserved) { if (td->reserved == 0) td->reserved = 1; td->reserved *= 2; td->text->lines = realloc(td->text->lines, td->reserved * sizeof td->text->lines[0]); } out = td->text->lines[idx] = malloc(end - begin + 1); for (; begin != end; ++begin, ++out) { switch (*begin) { case '\n': case '\t': case '\r': case '#': *out = ' '; break; default: *out = *begin; break; } } *out = '\0'; td->text->count++; } /** * convert a str into text ( for listbox ) * width is the available width of a line in pixels */ Text* create_text( struct _Font *fnt, const char *orig_str, int width ) { struct TextData td; const char *line_start = orig_str; const char *head = orig_str; const char *committed = orig_str; int cumulated_width = 0; /* width of text in this line */ int break_line = 0; if (width < 0) width = 0; memset(&td, 0, sizeof(td)); td.text = calloc ( 1, sizeof( Text ) ); while (*committed) { int ch_width = char_width(fnt, *head); if (committed != head && text_is_linebreak(head[-1])) break_line = 1; else if (cumulated_width > width) { /* if the word is too long to fit into one line, * force a line break at the current position. */ if (committed == line_start) /* take away last char (unless only one) and break there */ committed = head - (head - 1 != line_start); head = committed; break_line = 1; } else if (text_is_breakable(committed, head)) committed = head; if (!break_line) { cumulated_width += ch_width; head++; } if (!*head) break_line = 1; if (break_line) { text_add_line(&td, line_start, head); line_start = committed = head; cumulated_width = 0; break_line = 0; } } if (!td.text->lines) text_add_line(&td, "", "" + 1); return td.text; } /** delete text */ void delete_text( Text *text ) { int i; if ( text == 0 ) return; if ( text->lines ) { for ( i = 0; i < text->count; i++ ) if ( text->lines[i] ) free( text->lines[i] ); free( text->lines ); } free( text ); } /* ==================================================================== Delete an array of strings and set it and counter 0. ==================================================================== */ void delete_string_list( char ***list, int *count ) { int i; if ( *list == 0 ) return; for ( i = 0; i < *count; i++ ) if ( (*list)[i] ) free( (*list)[i] ); free( *list ); *list = 0; *count = 0; } /* ==================================================================== This function checks if 'name' occurs in fct and return the flag or 0 if not found. ==================================================================== */ int check_flag( const char *name, StrToFlag *fct ) { /* get flags */ int i = 0; while ( fct[i].string[0] != 'X' ) { if ( STRCMP( fct[i].string, name ) ) return fct[i].flag; i++; } if ( !STRCMP( "none", name ) ) fprintf( stderr, tr("%s: unknown flag\n"), name ); return 0; } /* ==================================================================== Get neighbored tile coords clockwise with id between 0 and 5. ==================================================================== */ int get_close_hex_pos( int x, int y, int id, int *dest_x, int *dest_y ) { if ( id == 0 ) { *dest_x = x; *dest_y = y - 1; } else if ( id == 1 ) { if ( x & 1 ) { *dest_x = x + 1; *dest_y = y; } else { *dest_x = x + 1; *dest_y = y - 1; } } else if ( id == 2 ) { if ( x & 1 ) { *dest_x = x + 1; *dest_y = y + 1; } else { *dest_x = x + 1; *dest_y = y; } } else if ( id == 3 ) { *dest_x = x; *dest_y = y + 1; } else if ( id == 4 ) { if ( x & 1 ) { *dest_x = x - 1; *dest_y = y + 1; } else { *dest_x = x - 1; *dest_y = y; } } else if ( id == 5 ) { if ( x & 1 ) { *dest_x = x - 1; *dest_y = y; } else { *dest_x = x - 1; *dest_y = y - 1; } } if ( *dest_x <= 0 || *dest_y <= 0 || *dest_x >= map_w-1 || *dest_y >= map_h-1 ) return 0; return 1; } /* ==================================================================== Check if these positions are adjacent to each other. ==================================================================== */ int is_close( int x1, int y1, int x2, int y2 ) { int i, next_x, next_y; if ( x1 == x2 && y1 == y2 ) return 1; for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( x1, y1, i, &next_x, &next_y ) ) if ( next_x == x2 && next_y == y2 ) return 1; return 0; } /* ==================================================================== Copy source to dest and at maximum limit chars. Terminate with 0. ==================================================================== */ void strcpy_lt( char *dest, const char *src, int limit ) { int len = strlen( src ); if ( len > limit ) { strncpy( dest, src, limit ); dest[limit] = 0; } else strcpy( dest, src ); } /* ==================================================================== Returns the basename of the given file. ==================================================================== */ const char *get_basename(const char *filename) { const char *pos = strrchr(filename, '/'); if (pos) return pos + 1; return filename; } /* ==================================================================== Return the domain out of the given parse-tree. If not contained, construct the domain from the file name. Will be allocated on the heap. ==================================================================== */ char *determine_domain(struct PData *tree, const char *filename) { char *domain; char *pos; if ( parser_get_string(tree, "domain", &domain) ) return domain; domain = strdup(get_basename(filename)); pos = strchr(domain, '.'); if (pos) *pos = 0; return domain; } /* ==================================================================== Return path of installation directory as static string (not thread safe). ==================================================================== */ const char *get_gamedir(void) { #ifndef INSTALLDIR return "."; #else static char gamedir[MAXPATHLEN]; snprintf( gamedir, MAXPATHLEN, "%s", INSTALLDIR ); return gamedir; #endif } lgeneral-1.3.1/src/parser.h0000664000175000017500000001747012140770455012502 00000000000000/*************************************************************************** parser.h - description ------------------- begin : Sat Mar 9 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __PARSER_H #define __PARSER_H #include "list.h" #include struct CommonTreeData; /* ==================================================================== This module provides functions to parse ASCII data from strings and files. Synopsis: groupname entry1 .. entryX variable value A group entry may either be a variable or a group (interlacing). A variable value may either be a single token or a list of tokens enclosed by . Text enclosed by ".." is counted as a single token. ==================================================================== */ /* ==================================================================== Symbols. Note: These symbols are ignored when found in a token "" as they belong to this token then. PARSER_GROUP_BEGIN: PARSER_GROUP_END: PARSER_SET: PARSER_LIST_BEGIN: PARSER_LIST_END: PARSER_COMMENT_BEGIN: PARSER_COMMENT_END: PARSER_STRING: PARSER_SYMBOLS: List of all symbols + whitespace used to split strings and tokens. PARSER_SKIP_SYMBOLS: text bewteen these two symbols is handled as comment and therefore completely ignored ==================================================================== */ typedef enum ParserToken { PARSER_INVALID = -2, PARSER_EOI = -1, PARSER_GROUP_BEGIN = '{', PARSER_GROUP_END = '}', PARSER_SET = '=', PARSER_LIST_BEGIN = '(', PARSER_LIST_END = ')', PARSER_COMMENT_BEGIN = '[', PARSER_COMMENT_END = ']', PARSER_STRING = 256, } ParserToken; #define PARSER_SYMBOLS " =(){}[]" #define PARSER_SKIP_SYMBOLS "[]" /* ==================================================================== An input string is converted into a PData tree struct. The name identifies this entry and it's the token that is searched for when reading this entry. Either 'values' or 'entries' is set. If 'entries' is not NULL the PData is a group and 'entries' contains pointers to other groups or lists. If 'values' is not NULL the PData is a list and 'values' contains a list of value strings associated with 'name'. ==================================================================== */ typedef struct PData { char *name; List *values; List *entries; struct CommonTreeData *ctd; int lineno:24; /* line number this entry was parsed from */ } PData; /* ==================================================================== This function splits a string into tokens using the characters found in symbols as breakpoints. If the first symbol is ' ' all whitespaces are used as breakpoints though NOT added as a token (thus removed from string). ==================================================================== */ List* parser_split_string( const char *string, const char *symbols ); /* ==================================================================== This is the light version of parser_split_string which checks for just one character and does not add this glue characters to the list. It's about 2% faster. Wow. ==================================================================== */ List *parser_explode_string( const char *string, char c ); /* ==================================================================== This function reads in a whole file and converts it into a PData tree struct. If an error occurs NULL is returned and parser_error is set. 'tree_name' is the name of the PData tree. ==================================================================== */ PData* parser_read_file( const char *tree_name, const char *fname ); /* ==================================================================== This function frees a PData tree struct. ==================================================================== */ void parser_free( PData **pdata ); /* ==================================================================== This function creates a new PData struct, inserts it into parent, and returns it. Does not take ownership of 'name'. Does take ownership of 'list'. ==================================================================== */ PData *parser_insert_new_pdata( PData *parent, const char *name, List *values ); /* ==================================================================== Returns the file name this node was parsed from. ==================================================================== */ const char *parser_get_filename( PData *pd ); /* ==================================================================== Returns the line number this node was parsed from. ==================================================================== */ int parser_get_linenumber( PData *pd ); /* ==================================================================== Functions to access a PData tree. 'name' is the pass within tree 'pd' where subtrees are separated by '/' (e.g.: name = 'config/graphics/animations') parser_get_pdata : get pdata entry associated with 'name' parser_get_entries : get list of subtrees (PData structs) in 'name' parser_get_values : get value list of 'name' parser_get_value : get a single value from value list of 'name' parser_get_int : get first value of 'name' converted to integer parser_get_double : get first value of 'name' converted to double parser_get_string : get first value of 'name' _duplicated_ If an error occurs result is set NULL, False is returned and parse_error is set. ==================================================================== */ int parser_get_pdata ( PData *pd, const char *name, PData **result ); int parser_get_entries( PData *pd, const char *name, List **result ); int parser_get_values ( PData *pd, const char *name, List **result ); int parser_get_value ( PData *pd, const char *name, char **result, int index ); int parser_get_int ( PData *pd, const char *name, int *result ); int parser_get_double ( PData *pd, const char *name, double *result ); int parser_get_string ( PData *pd, const char *name, char **result ); /* ==================================================================== Get first value of 'name', translated to the current language in the context of the given domain, and return it _duplicated_. ==================================================================== */ int parser_get_localized_string ( PData *pd, const char *name, const char *domain, char **result ); /* ==================================================================== Returns if a parser error occurred ==================================================================== */ int parser_is_error(void); /* ==================================================================== If an error occurred you can query the message with this function. ==================================================================== */ char* parser_get_error( void ); #endif lgeneral-1.3.1/src/lgeneral.60000664000175000017500000000263312140770455012710 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.12. .TH LGENERAL "6" "October 2012" "LGeneral 1.2.3" "User Commands" .SH NAME LGeneral \- a turn-based strategy game engine. .SH SYNOPSIS \fBlgeneral\fR [options] [resource\-file] .SH DESCRIPTION LGeneral is a strategy game engine heavily inspired by Panzer General. You play single scenarios or whole campaigns turn by turn against a human player or the AI. .SH OPTIONS .HP \fB\-\-ai\-debug=\fR .IP Verbosity level of debug messages for AI turn .HP \fB\-\-campaign\-start=\fR .IP Initial state to start campaign with (debug only) .HP \fB\-\-control=\fR .IP Entity who controls the current side. is either human, or cpu (short: h, or c). Multiple options can be specified. In this case the first option refers to the first side, the second option to the second side, etc. .HP \fB\-\-(no\-)deploy\-turn\fR .IP Allow/Disallow deployment of troops before scenario starts. .HP \fB\-\-(no\-)purchase\fR .IP Enable/Disable option for purchasing by prestige. If disabled the predefined reinforcements are used. .TP \fB\-\-notitle\fR Inhibit title screen .HP \fB\-\-speed=\fR Accelerate animation speed by .TP \fB\-\-version\fR Display version information and quit .PP scenario file relative to scenarios\-directory, or campaign file relative to campaigns\-directory under /usr/share/games/lgeneral .SH SEE ALSO \fBlgc-pg\fR(1) lgeneral-1.3.1/src/scenarios/0000775000175000017500000000000012643745102013071 500000000000000lgeneral-1.3.1/src/scenarios/Makefile.in0000664000175000017500000003167712643745056015104 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/scenarios DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/scenarios/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/scenarios/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/scenarios # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/scenarios/Makefile.am0000664000175000017500000000010612140770455015043 00000000000000install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/scenarios lgeneral-1.3.1/src/slot.c0000664000175000017500000010422712575257206012165 00000000000000/*************************************************************************** slot.c - description ------------------- begin : Sat Jun 23 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include #include "lgeneral.h" #include "date.h" #include "nation.h" #include "unit.h" #include "player.h" #include "map.h" #include "misc.h" #include "scenario.h" #include "slot.h" #include "campaign.h" #include "localize.h" #include /* ==================================================================== Externals ==================================================================== */ extern Config config; extern Trgt_Type *trgt_types; extern int trgt_type_count; extern Mov_Type *mov_types; extern int mov_type_count; extern Unit_Class *unit_classes; extern int unit_class_count; extern int map_w, map_h; extern Player *cur_player; extern int turn; extern int deploy_turn; extern int cur_weather; extern Scen_Info *scen_info; extern List *units; extern List *reinf, *avail_units; extern List *players; extern int camp_loaded; extern char *camp_fname; extern Camp_Entry *camp_cur_scen; extern Map_Tile **map; extern List *prev_scen_core_units; extern char *prev_scen_fname; /* ==================================================================== Slot struct ==================================================================== */ typedef struct { char name[256]; /* displayed name */ char fname[256]; /* file name */ int valid; /* may load from this slot? */ } Slot; Slot slots[SLOT_COUNT]; /* ==================================================================== Locals ==================================================================== */ /** * This enumeration covers the savegame versioning. * Each time the layout of the savegame is changed, a new * version enumeration constant is inserted before * StoreMaxVersion, and the save_* /load_* functions are to * be adapted appropriately to handle the higher version. */ enum StorageVersion { StoreVersionLegacy = 1000, StoreUnitIsGuarding, /* up to this versions are stored per unit */ StoreGlobalVersioning, StorePurchaseData, /* cost for unit lib entries, prestige for players */ StoreCoreUnitFlag, /* units have now core/aux flag */ StoreTileDamage, /* deploy center and damaged info */ StoreCoreTransferList, /* previous' scenarios core units for campaigns */ /* insert new versions before this comment */ StoreMaxVersion, StoreHighestSupportedVersion = StoreMaxVersion - 1, StoreVersionLimit = 65535 /* must not have more, otherwise endian-detection fails */ }; /** signal endianness treatment of currently processed file */ static int endian_need_swap; /** version of the loaded file */ static enum StorageVersion store_version; /* ==================================================================== Return True if this is a saved game and return the slot index. ==================================================================== */ static int is_saved_game( char *file_name, int *i ) { char *ptr; if ( strncmp( file_name, "lg_save_", 8 ) ) return 0; ptr = &file_name[8]; (*i) = atoi(ptr); return *i < SLOT_COUNT; } /* ==================================================================== Save/load slot name to/from file. ==================================================================== */ static void slot_read_name( Slot *slot, FILE *file ) { _fread( slot->name, sizeof( slot->name ), 1, file ); } static void slot_write_name( Slot *slot, FILE *file ) { fwrite( slot->name, sizeof( slot->name ), 1, file ); } /* ==================================================================== load a single integer with fallback ==================================================================== */ static int try_load_int( FILE *file, int deflt ) { int i; if ( fread( &i, sizeof( int ), 1, file ) ) i = endian_need_swap ? SDL_Swap32(i) : i; else i = deflt; return i; } /* ==================================================================== Save/load a single integer ==================================================================== */ static void save_int( FILE *file, int i ) { /* we always write the platform-specific endianness */ fwrite( &i, sizeof( int ), 1, file ); } static inline int load_int( FILE *file ) { return try_load_int( file, 0 ); } /* ==================================================================== load a single pointer with fallback ==================================================================== */ static void *try_load_pointer( FILE *file, void *deflt ) { void *p; /* we ignore endianness here, you cannot use the pointer * anyway. */ if ( !fread( &p, sizeof( void * ), 1, file ) ) p = deflt; return p; } /* ==================================================================== Save/load a single pointer ==================================================================== */ static void save_pointer( FILE *file, const void *p ) { fwrite( &p, sizeof( void * ), 1, file ); } static inline void *load_pointer( FILE *file ) { return try_load_pointer( file, 0 ); } /* ==================================================================== Save/load a string to/from file. ==================================================================== */ static void save_string( FILE *file, char *str ) { int length; /* save length and then string itself */ length = strlen( str ); fwrite( &length, sizeof( int ), 1, file ); fwrite( str, sizeof( char ), length, file ); } static char* load_string( FILE *file ) { char *str = 0; int length; _fread( &length, sizeof( int ), 1, file ); str = calloc( length + 1, sizeof( char ) ); _fread( str, sizeof( char ), length, file ); str[length] = 0; return str; } /* ==================================================================== Save/load a unit from/to file. Save the unit struct itself afterwards the id strings of prop, trsp_prop, player, nation. sel_prop can be rebuild by checking embark. As we may merge units prop and trsp_prop may not be overwritten with original data. Instead all pointers are resolved by the id string. ==================================================================== */ enum UnitStoreParams { UnitLibSize = 4*sizeof(void *) + 26*sizeof(int) + TARGET_TYPE_LIMIT*sizeof(int) #ifdef WITH_SOUND + 1*sizeof(void *) + 1*sizeof(int) #endif , UnitNameSize = 21*sizeof(char) + 3*sizeof(char)/*padding*/, UnitTagSize = 32*sizeof(char), UnitSize = 2*UnitLibSize + 5*sizeof(void *) + UnitNameSize + UnitTagSize + 27*sizeof(int), }; static void save_unit_lib_entry( FILE *file, Unit_Lib_Entry *entry ) { int i; COMPILE_TIME_ASSERT(sizeof(Unit_Lib_Entry) == UnitLibSize); /* write each member */ /* reserved (was: id) */ save_pointer(file, entry->id); /* reserved (was: name) */ save_pointer(file, entry->name); /* nation */ save_int(file, entry->nation); /* class */ save_int(file, entry->class); /* trgt_type */ save_int(file, entry->trgt_type); /* ini */ save_int(file, entry->ini); /* mov */ save_int(file, entry->mov); /* mov_type */ save_int(file, entry->mov_type); /* spt */ save_int(file, entry->spt); /* rng */ save_int(file, entry->rng); /* atk_count */ save_int(file, entry->atk_count); /* atks[TARGET_TYPE_LIMIT] */ for (i = 0; i < TARGET_TYPE_LIMIT; i++) save_int(file, entry->atks[i]); /* def_grnd */ save_int(file, entry->def_grnd); /* def_air */ save_int(file, entry->def_air); /* def_cls */ save_int(file, entry->def_cls); /* entr_rate */ save_int(file, entry->entr_rate); /* ammo */ save_int(file, entry->ammo); /* fuel */ save_int(file, entry->fuel); /* reserved (was: icon) */ save_pointer(file, entry->icon); /* reserved (was: icon_tiny) */ save_pointer(file, entry->icon_tiny); /* icon_type */ save_int(file, entry->icon_type); /* icon_w */ save_int(file, entry->icon_w); /* icon_h */ save_int(file, entry->icon_h); /* icon_tiny_w */ save_int(file, entry->icon_tiny_w); /* icon_tiny_h */ save_int(file, entry->icon_tiny_h); /* flags */ save_int(file, entry->flags); /* start_year */ save_int(file, entry->start_year); /* start_month */ save_int(file, entry->start_month); /* last_year */ save_int(file, entry->last_year); /* cost */ save_int(file, entry->cost); /* wav_alloc */ #ifdef WITH_SOUND COMPILE_TIME_ASSERT_SYMBOL(entry->wav_alloc); #endif save_int(file, 0); /* wav_move */ #ifdef WITH_SOUND COMPILE_TIME_ASSERT_SYMBOL(entry->wav_move); #endif save_pointer(file, 0); /* reserved (was: eval_score) */ save_int(file, entry->eval_score); } static void save_unit( FILE *file, Unit *unit ) { /* Don't forget to update save_unit and load_unit if you change Unit. * If you have to add a field, use a reserved field. * Then increase the version number, * and provide defaults on reads of a lower versioned file. * Ah, yes: Don't pretend sizeof(int) == sizeof(void *) */ COMPILE_TIME_ASSERT(sizeof(Unit) == UnitSize); /* write each member */ /* prop */ save_unit_lib_entry(file, &unit->prop); /* trsp_prop */ save_unit_lib_entry(file, &unit->trsp_prop); /* reserved (was: sel_prop) */ save_pointer(file, unit->sel_prop); /* reserved (was: backup) */ save_pointer(file, unit->backup); /* name */ fwrite(unit->name, UnitNameSize, 1, file); /* reserved (was: player) */ save_pointer(file, unit->player); /* reserved (was: nation) */ save_pointer(file, unit->nation); /* reserved (was: terrain) */ save_pointer(file, unit->terrain); /* x */ save_int(file, unit->x); /* y */ save_int(file, unit->y); /* str */ save_int(file, unit->str); /* entr */ save_int(file, unit->entr); /* exp */ save_int(file, unit->exp); /* unit storage version (was: exp_level) */ COMPILE_TIME_ASSERT_SYMBOL(unit->exp_level); save_int(file, StoreCoreUnitFlag); /* delay */ save_int(file, unit->delay); /* embark */ save_int(file, unit->embark); /* orient */ save_int(file, unit->orient); /* reserved (was: icon_offset) */ save_int(file, unit->icon_offset); /* reserved (was: icon_tiny_offset) */ save_int(file, unit->icon_tiny_offset); /* supply_level */ save_int(file, unit->supply_level); /* cur_fuel */ save_int(file, unit->cur_fuel); /* cur_ammo */ save_int(file, unit->cur_ammo); /* cur_mov */ save_int(file, unit->cur_mov); /* cur_atk_count */ save_int(file, unit->cur_atk_count); /* unused (the *member* is called unused. It's not reserved ;-) ) */ save_int(file, unit->unused); /* reserved (was: damage_bar_width) */ save_int(file, unit->damage_bar_width); /* is_guarding (was: damage_bar_offset) */ COMPILE_TIME_ASSERT_SYMBOL(unit->damage_bar_offset); save_int(file, unit->is_guarding); /* core unit flag (was: suppr) */ COMPILE_TIME_ASSERT_SYMBOL(unit->suppr); save_int(file, unit->core); /* turn_suppr */ save_int(file, unit->turn_suppr); /* killed */ save_int(file, unit->killed); /* reserved (was: fresh_deploy) */ save_int(file, unit->fresh_deploy); /* tag */ fwrite(unit->tag, UnitTagSize, 1, file); /* reserved (was: eval_score) */ save_int(file, unit->eval_score); /* reserved (was: target_score) */ save_int(file, unit->target_score); /* prop.id */ save_string( file, unit->prop.id ); /* trsp_prop.id */ if ( unit->trsp_prop.id ) save_string( file, unit->trsp_prop.id ); else save_string( file, "none" ); /* player */ save_string( file, unit->player->id ); /* nation */ save_string( file, unit->nation->id ); } static void load_unit_lib_entry( FILE *file, Unit_Lib_Entry *entry ) { int i; /* write each member */ /* reserved */ load_pointer(file); /* reserved (was: name) */ load_pointer(file); /* nation (since StorePurchaseData) */ entry->nation = -1; if (store_version >= StorePurchaseData) entry->nation = load_int(file); /* class */ entry->class = load_int(file); /* trgt_type */ entry->trgt_type = load_int(file); /* ini */ entry->ini = load_int(file); /* mov */ entry->mov = load_int(file); /* mov_type */ entry->mov_type = load_int(file); /* spt */ entry->spt = load_int(file); /* rng */ entry->rng = load_int(file); /* atk_count */ entry->atk_count = load_int(file); /* atks[TARGET_TYPE_LIMIT] */ for (i = 0; i < TARGET_TYPE_LIMIT; i++) entry->atks[i] = load_int(file); /* def_grnd */ entry->def_grnd = load_int(file); /* def_air */ entry->def_air = load_int(file); /* def_cls */ entry->def_cls = load_int(file); /* entr_rate */ entry->entr_rate = load_int(file); /* ammo */ entry->ammo = load_int(file); /* fuel */ entry->fuel = load_int(file); /* reserved (was: icon) */ load_pointer(file); /* reserved (was: icon_tiny) */ load_pointer(file); /* icon_type */ entry->icon_type = load_int(file); /* icon_w */ entry->icon_w = load_int(file); /* icon_h */ entry->icon_h = load_int(file); /* icon_tiny_w */ entry->icon_tiny_w = load_int(file); /* icon_tiny_h */ entry->icon_tiny_h = load_int(file); /* flags */ entry->flags = load_int(file); /* start_year */ entry->start_year = load_int(file); /* start_month */ entry->start_month = load_int(file); /* last_year */ entry->last_year = load_int(file); /* cost (since StorePurchaseData) */ entry->cost = 0; if (store_version >= StorePurchaseData) entry->cost = load_int(file); /* wav_alloc */ #ifdef WITH_SOUND entry->wav_alloc = #endif load_int(file); /* wav_move */ load_pointer(file); /* reserved (was: eval_score) */ load_int(file); /* recalculate members not being stored */ unit_lib_eval_unit( entry ); } Unit* load_unit( FILE *file ) { Unit_Lib_Entry *lib_entry; Unit *unit = 0; char *str; int unit_store_version; int val; unit = calloc( 1, sizeof( Unit ) ); /* read each member */ /* prop */ load_unit_lib_entry(file, &unit->prop); /* trsp_prop */ load_unit_lib_entry(file, &unit->trsp_prop); /* reserved */ load_pointer(file); /* reserved */ load_pointer(file); /* name */ _fread(unit->name, UnitNameSize, 1, file); unit->name[UnitNameSize - 1] = 0; /* reserved */ load_pointer(file); /* reserved */ load_pointer(file); /* reserved */ load_pointer(file); /* x */ unit->x = load_int(file); /* y */ unit->y = load_int(file); /* str */ unit->str = load_int(file); /* entr */ unit->entr = load_int(file); /* exp */ unit->exp = load_int(file); /* unit storage version (was: exp_level) */ unit_store_version = load_int(file); /* delay */ unit->delay = load_int(file); /* embark */ unit->embark = load_int(file); /* orient */ unit->orient = load_int(file); /* reserved (was: icon_offset) */ load_int(file); /* reserved (was: icon_tiny_offset) */ load_int(file); /* supply_level */ unit->supply_level = load_int(file); /* cur_fuel */ unit->cur_fuel = load_int(file); /* cur_ammo */ unit->cur_ammo = load_int(file); /* cur_mov */ unit->cur_mov = load_int(file); /* cur_atk_count */ unit->cur_atk_count = load_int(file); /* unused (the *member* is called unused. It's not reserved ;-) ) */ unit->unused = load_int(file); /* reserved (was: damage_bar_width) */ load_int(file); /* is_guarding (was: damage_bar_offset) */ val = load_int(file); unit->is_guarding = unit_store_version >= StoreUnitIsGuarding ? val : 0; /* core unit flag (was: suppr) */ val = load_int(file); if (unit_store_version >= StoreCoreUnitFlag) unit->core = val; else unit->core = 0; /* turn_suppr */ unit->turn_suppr = load_int(file); /* killed */ unit->killed = load_int(file); /* reserved (was: fresh_deploy) */ load_int(file); /* tag */ _fread(unit->tag, UnitTagSize, 1, file); unit->tag[UnitTagSize - 1] = 0; /* reserved (was: eval_score) */ load_int(file); /* reserved (was: target_score) */ load_int(file); unit->backup = calloc( 1, sizeof( Unit ) ); /* sel_prop */ if ( unit->embark == EMBARK_NONE ) unit->sel_prop = &unit->prop; else unit->sel_prop = &unit->trsp_prop; /* props */ str = load_string( file ); lib_entry = unit_lib_find( str ); unit->prop.id = lib_entry->id; unit->prop.name = lib_entry->name; unit->prop.icon = lib_entry->icon; unit->prop.icon_tiny = lib_entry->icon_tiny; #ifdef WITH_SOUND unit->prop.wav_move = lib_entry->wav_move; #endif free( str ); /* transporter */ str = load_string( file ); lib_entry = unit_lib_find( str ); if ( lib_entry ) { unit->trsp_prop.id = lib_entry->id; unit->trsp_prop.name = lib_entry->name; unit->trsp_prop.icon = lib_entry->icon; unit->trsp_prop.icon_tiny = lib_entry->icon_tiny; #ifdef WITH_SOUND unit->trsp_prop.wav_move = lib_entry->wav_move; #endif } free( str ); /* player */ str = load_string( file ); unit->player = player_get_by_id( str ); free( str ); /* nation */ str = load_string( file ); unit->nation = nation_find( str ); free( str ); /* recalculate members that aren't stored */ unit->terrain = map[unit->x][unit->y].terrain; unit_adjust_icon( unit ); unit->exp_level = unit->exp / 100; unit_update_bar( unit ); return unit; } /* ==================================================================== Save/load player structs. The order of players in the scenario file must not have changed. It is assumed to be kept so only some values are saved. ==================================================================== */ static void save_player( FILE *file, Player *player ) { /* control, air/sea trsp used */ save_int( file, player->ctrl - 1/* compat with old save games */ ); save_int( file, player->air_trsp_used ); save_int( file, player->sea_trsp_used ); save_int( file, player->cur_prestige ); save_string( file, player->ai_fname ); } static void load_player( FILE *file, Player *player ) { /* control, air/sea trsp used */ player->ctrl = load_int( file ) + 1/* compat with old save games */; player->air_trsp_used = load_int( file ); player->sea_trsp_used = load_int( file ); player->cur_prestige = 0; if (store_version >= StorePurchaseData) player->cur_prestige = load_int( file ); free( player->ai_fname ); player->ai_fname = load_string( file ); } /* ==================================================================== Save indices in scen::units of ground and air unit on this tile. ==================================================================== */ static void save_map_tile_units( FILE *file, Map_Tile *tile ) { int i; int index; index = -1; /* ground */ list_reset( units ); if ( tile->g_unit ) for ( i = 0; i < units->count; i++ ) if ( tile->g_unit == list_next( units ) ) { index = i; break; } save_int( file, index ); /* air */ index = -1; list_reset( units ); if ( tile->a_unit ) for ( i = 0; i < units->count; i++ ) if ( tile->a_unit == list_next( units ) ) { index = i; break; } save_int( file, index ); } /* load map tile units assuming that scen::units is set to the correct units */ static void load_map_tile_units( FILE *file, Unit **unit, Unit **air_unit ) { int index; index = load_int( file ); if ( index == -1 ) *unit = 0; else *unit = list_get( units, index ); index = load_int( file ); if ( index == -1 ) *air_unit = 0; else *air_unit = list_get( units, index ); } /* ==================================================================== Save map flags: nation id and player id strings, damage, deploy center ==================================================================== */ static void save_map_tile_flag( FILE *file, Map_Tile *tile ) { if ( tile->nation ) save_string( file, tile->nation->id ); else save_string( file, "none" ); if ( tile->player ) save_string( file, tile->player->id ); else save_string( file, "none" ); /* deploy level and damage */ save_int(file, tile->deploy_center); save_int(file, tile->damaged); } static void load_map_tile_flag( FILE *file, Nation **nation, Player **player, int *deploy_center, int *damaged) { char *str; str = load_string( file ); *nation = nation_find( str ); free( str ); str = load_string( file ); *player = player_get_by_id( str ); free( str ); /* deploy level and damage */ if (store_version >= StoreTileDamage) { *deploy_center = load_int(file); *damaged = load_int(file); } } /* Load/save core unit transfer list */ static void save_prev_scen_core_units( FILE *file ) { int num = 0; transferredUnitProp *prop; /* save number of entries */ if (prev_scen_core_units) num = prev_scen_core_units->count; save_int(file, num); if (num == 0) return; /* no more data */ /* save scenario file name */ save_string(file, prev_scen_fname); /* save entries */ list_reset(prev_scen_core_units); while ((prop = list_next(prev_scen_core_units))) { save_unit_lib_entry(file, &prop->prop); save_unit_lib_entry(file, &prop->trsp_prop); save_string(file, prop->prop_id); save_string(file, prop->trsp_prop_id); save_string(file, prop->name); save_string(file, prop->player_id); save_string(file, prop->nation_id); save_int(file, prop->str); save_int(file, prop->exp); save_string(file, prop->tag); } } static void load_prev_scen_core_units( FILE *file ) { int i, num; transferredUnitProp *prop; char *str; /* load number */ num = load_int(file); if (num == 0) { if (prev_scen_core_units) list_clear(prev_scen_core_units); return; /* nothing follows */ } /* create list if not yet existing */ if (!prev_scen_core_units) prev_scen_core_units = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); else list_clear(prev_scen_core_units); /* read scenario file name */ if (prev_scen_fname) free(prev_scen_fname); prev_scen_fname = load_string(file); /* create and push entries to list */ for (i = 0; i < num; i++) { prop = calloc( 1, sizeof( transferredUnitProp ) ); load_unit_lib_entry(file, &prop->prop); load_unit_lib_entry(file, &prop->trsp_prop); str = load_string(file); snprintf( prop->prop_id, sizeof(prop->prop_id), "%s",str); free(str); str = load_string(file); snprintf( prop->trsp_prop_id, sizeof(prop->trsp_prop_id), "%s",str); free(str); str = load_string(file); snprintf( prop->name, sizeof(prop->name), "%s",str); free(str); str = load_string(file); snprintf( prop->player_id, sizeof(prop->player_id), "%s",str); free(str); str = load_string(file); snprintf( prop->nation_id, sizeof(prop->nation_id), "%s",str); free(str); prop->str = load_int(file); prop->exp = load_int(file); str = load_string(file); snprintf( prop->tag, sizeof(prop->tag), "%s",str); free(str); list_add(prev_scen_core_units, prop); } } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== Check the save directory for saved games and add them to the slot list else setup a new entry: '_index_ ' ==================================================================== */ void slots_init() { int i; DIR *dir = 0; struct dirent *entry = 0; FILE *file = 0; /* set all slots empty */ for ( i = 0; i < SLOT_COUNT; i++ ) { sprintf( slots[i].name, "" ); slots[i].fname[0] = 0; slots[i].valid = 0; } /* open directory */ if ( ( dir = opendir( config.dir_name ) ) == 0 ) { fprintf( stderr, tr("init_slots: can't open directory '%s' to read saved games\n"), config.dir_name ); return; } /* read all directory entries */ while ( ( entry = readdir( dir ) ) != 0 ) { if ( is_saved_game( entry->d_name, &i ) ) { sprintf( slots[i].fname, "%s/%s", config.dir_name, entry->d_name ); if ( ( file = fopen( slots[i].fname, "rb" ) ) == 0 ) { fprintf( stderr, tr("'%s': file not found\n"), slots[i].fname ); break; } /* read slot::name saved there */ slot_read_name( &slots[i], file ); fclose( file ); slots[i].valid = 1; } } closedir(dir); } /* ==================================================================== Get full slot name from id. ==================================================================== */ char *slot_get_name( int id ) { if ( id >= SLOT_COUNT ) id = 0; return slots[id].name; } /* ==================================================================== Get slot's file name. This slot name may be passed to slot_load/save(). ==================================================================== */ char *slot_get_fname( int id ) { if ( id >= SLOT_COUNT ) id = 0; return slots[id].fname; } /* ==================================================================== Save/load game to/from file. ==================================================================== */ int slot_save( int id, char *name ) { FILE *file = 0; char path[512]; int i, j; /* NOTE: If you change the savegame-layout, don't forget to increase the version and add proper discrimination for loading layout: slot_name version (since version StoreGlobalVersioning) campaign loaded campaign name (optional) campaign scenario id (optional) core transfer list (optional) scenario file name fog_of_war supply weather deploy purchase current turns current player_id player info unit count units reinf unit count reinf units available unit count available units map width map height map tile units map tile flags + deploy/damage info */ /* if we ever hit this, we have *big* problems */ COMPILE_TIME_ASSERT(StoreHighestSupportedVersion <= StoreVersionLimit); /* get file name */ sprintf( path, "%s/lg_save_%i", config.dir_name, id ); /* open file */ if ( ( file = fopen( path, "wb" ) ) == 0 ) { fprintf( stderr, tr("%s: not found\n"), path ); return 0; } /* update slot name */ strcpy( slots[id].name, name ); /* write slot identification */ slot_write_name( &slots[id], file ); /* write version */ save_int(file, StoreHighestSupportedVersion); /* if campaign is set some campaign info follows */ save_int( file, camp_loaded ); if ( camp_loaded ) { save_string( file, camp_fname ); save_string( file, camp_cur_scen->id ); save_prev_scen_core_units( file ); } /* basic data */ save_string( file, scen_info->fname ); save_int( file, config.fog_of_war ); save_int( file, config.supply ); save_int( file, config.weather ); save_int( file, config.deploy_turn ); save_int( file, config.purchase ); save_int( file, turn ); save_int( file, player_get_index( cur_player ) ); /* players */ list_reset( players ); for ( i = 0; i < players->count; i++ ) save_player( file, list_next( players ) ); /* units */ list_reset( units ); save_int( file, units->count ); for ( i = 0; i < units->count; i++ ) save_unit( file, list_next( units ) ); /* reinforcements */ list_reset( reinf ); save_int( file, reinf->count ); for ( i = 0; i < reinf->count; i++ ) save_unit( file, list_next( reinf ) ); list_reset( avail_units ); save_int( file, avail_units->count ); for ( i = 0; i < avail_units->count; i++ ) save_unit( file, list_next( avail_units ) ); /* map stuff */ save_int( file, map_w ); save_int( file, map_h ); for ( i = 0; i < map_w; i++ ) for ( j = 0; j < map_h; j++ ) save_map_tile_units( file, map_tile( i, j ) ); for ( i = 0; i < map_w; i++ ) for ( j = 0; j < map_h; j++ ) save_map_tile_flag( file, map_tile( i, j ) ); fclose( file ); /* is valid now */ slots[id].valid = 1; return 1; } int slot_load( int id ) { FILE *file = 0; char path[512]; int camp_saved; int i, j; char *scen_file_name = 0; int unit_count; char *str; store_version = StoreVersionLegacy; /* get file name */ sprintf( path, "%s/lg_save_%i", config.dir_name, id ); /* open file */ if ( ( file = fopen( path, "rb" ) ) == 0 ) { fprintf( stderr, tr("%s: not found\n"), path ); return 0; } /* read slot identification -- won't change anything but the file handle needs to move */ slot_read_name( &slots[id], file ); /* read version */ _fread( &store_version, sizeof( int ), 1, file ); /* check for endianness */ endian_need_swap = !!(store_version & 0xFFFF0000); if (endian_need_swap) store_version = SDL_Swap32(store_version); /* reject game if it's too new */ if (store_version > StoreHighestSupportedVersion) { fprintf(stderr, "%s: Needs version %d, we only provide %d\n", path, store_version, StoreHighestSupportedVersion); fclose(file); return 0; } /* if no versioning yet, it is legacy */ if (store_version < StoreVersionLegacy) camp_saved = store_version; else /* otherwise, campaign flag comes afterwards */ camp_saved = load_int(file); /* if campaign is set some campaign info follows */ camp_delete(); if ( camp_saved ) { /* reload campaign and set to current scenario id */ str = load_string( file ); camp_load( str ); free( str ); str = load_string( file ); camp_set_cur( str ); free( str ); if (store_version >= StoreCoreTransferList) load_prev_scen_core_units( file ); else if (prev_scen_core_units) list_clear(prev_scen_core_units); } /* the scenario that is loaded now is the one that belongs to the scenario id of the campaign above */ /* read scenario file name */ scen_file_name = load_string( file ); if ( !scen_load( scen_file_name ) ) { free( scen_file_name ); fclose(file); return 0; } free( scen_file_name ); /* basic data */ config.fog_of_war = load_int( file ); config.supply = load_int( file ); config.weather = load_int( file ); if (store_version < StorePurchaseData) { /* since no proper prestige info for already played turns and all * stored units have cost 0 which means there is no gain for damaging * or destroying units, disable purchase for old saved games. to * prevent confusion display a note. :-) * deploy is left unchanged and just used as configured by command * line option. */ if (config.purchase) { printf( "**********\n" "Note: Games saved before LGeneral version 1.2 do not provide proper prestige\n" "and purchase information. Therefore purchase option will be disabled. You can\n" "re-enable it in the settings menu when starting a new scenario.\n" "**********\n"); config.purchase = 0; } } else { config.deploy_turn = load_int( file ); config.purchase = load_int( file ); } turn = load_int( file ); cur_player = player_get_by_index( load_int( file ) ); cur_weather = scen_get_weather(); /* players */ list_reset( players ); for ( i = 0; i < players->count; i++ ) load_player( file, list_next( players ) ); /* unit stuff */ list_clear( units ); unit_count = load_int( file ); for ( i = 0; i < unit_count; i++ ) list_add( units, load_unit( file ) ); list_clear( reinf ); unit_count = load_int( file ); for ( i = 0; i < unit_count; i++ ) list_add( reinf, load_unit( file ) ); list_clear( avail_units ); unit_count = load_int( file ); for ( i = 0; i < unit_count; i++ ) list_add( avail_units, load_unit( file ) ); /* map stuff */ map_w = load_int( file ); map_h = load_int( file ); for ( i = 0; i < map_w; i++ ) for ( j = 0; j < map_h; j++ ) { load_map_tile_units( file, &map[i][j].g_unit, &map[i][j].a_unit ); if ( map[i][j].g_unit ) map[i][j].g_unit->terrain = map[i][j].terrain; if ( map[i][j].a_unit ) map[i][j].a_unit->terrain = map[i][j].terrain; } for ( i = 0; i < map_w; i++ ) for ( j = 0; j < map_h; j++ ) load_map_tile_flag( file, &map[i][j].nation, &map[i][j].player, &map[i][j].deploy_center, &map[i][j].damaged); /* cannot have deployment-turn (those cannot be saved) */ deploy_turn = 0; fclose( file ); return 1; } /* ==================================================================== Return True if slot is loadable. ==================================================================== */ int slot_is_valid( int id ) { return slots[id].valid; } lgeneral-1.3.1/src/campaign.c0000664000175000017500000003354712521150103012744 00000000000000/*************************************************************************** campaign.c - description ------------------- begin : Fri Apr 5 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "lgeneral.h" #include "parser.h" #include "list.h" #include "unit.h" #include "date.h" #include "scenario.h" #include "campaign.h" #include "localize.h" /* ==================================================================== Externals ==================================================================== */ extern Setup setup; int camp_loaded = 0; char *camp_fname = 0; char *camp_name = 0; char *camp_desc = 0; char *camp_authors = 0; List *camp_entries = 0; /* scenario entries */ Camp_Entry *camp_cur_scen = 0; static char *camp_first; /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Delete campaign entry. ==================================================================== */ static void camp_delete_entry( void *ptr ) { Camp_Entry *entry = (Camp_Entry*)ptr; if ( entry ) { if ( entry->id ) free( entry->id ); if ( entry->scen ) free( entry->scen ); if ( entry->brief ) free( entry->brief ); if ( entry->core_transfer ) free( entry->core_transfer ); if ( entry->nexts ) list_delete( entry->nexts ); if ( entry->descs ) list_delete( entry->descs ); free( entry ); } } /* check whether all next entries have a matching scenario entry */ static void camp_verify_tree() { int i; Camp_Entry *entry = 0; char *next = 0, *ptr; for ( i = 0; i < camp_entries->count; i++ ) { entry = list_get( camp_entries, i ); if ( entry->nexts && entry->nexts->count > 0 ) { list_reset( entry->nexts ); while ( (next = list_next(entry->nexts)) ) { ptr = strchr( next, '>' ); if ( ptr ) ptr++; else ptr = next; if ( camp_get_entry(ptr) == 0 ) printf( " (is a 'next' entry in scenario %s)\n", entry->id ); } } } } /** * resolve a reference to a value defined in another scenario state * @param entries parse tree containing scenario states * @param key name of entry * @param scenstat name of scenario-state from which we resolve * @return the resolved value or 0 if the value cannot be resolved * resolved. */ static const char *camp_resolve_ref(PData *entries, const char *key, const char *scen_stat) { const char *cur_scen_stat = scen_stat; char *value = (char *)scen_stat; do { PData *scen_entry; if (!parser_get_pdata(entries, cur_scen_stat, &scen_entry)) break; if (!parser_get_value(scen_entry, key, &value, 0)) { /* if key of referenced entry is not found, it is usually an error -> notify user. */ if (cur_scen_stat != scen_stat) { fprintf(stderr, tr("%s: %d: warning: entry '%s' not found in '%s/%s'\n"), parser_get_filename(scen_entry), parser_get_linenumber(scen_entry), key, entries->name, cur_scen_stat); } return 0; } /* is it a value? */ if (value[0] != '@') break; /* yes, return it outright */ /* otherwise, dereference it */ cur_scen_stat = value + 1; /* check for cycles and bail out if detected */ if (strcmp(cur_scen_stat, scen_stat) == 0) { fprintf(stderr, "%s: cycle detected: %s\n", __FUNCTION__, value); break; } } while (1); return value; } /** resolve key within entries and translate the result wrt domain */ inline static char *camp_resolve_ref_localized(PData *entries, const char *key, const char *scen_stat, const char *domain) { const char *res = camp_resolve_ref(entries, key, scen_stat); return res ? strdup(trd(domain, res)) : 0; } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== Load campaign. ==================================================================== */ int camp_load( const char *fname ) { Camp_Entry *centry = 0; PData *pd, *scen_ent, *sub, *pdent, *subsub; List *entries, *next_entries; char path[512], str[1024]; char *result, *next_scen; char *domain = 0; camp_delete(); sprintf( path, "%s/campaigns/%s", get_gamedir(), fname ); camp_fname = strdup( fname ); if ( ( pd = parser_read_file( fname, path ) ) == 0 ) goto parser_failure; domain = determine_domain(pd, fname); locale_load_domain(domain, 0/*FIXME*/); /* name, desc, authors */ if ( !parser_get_localized_string( pd, "name", domain, &camp_name ) ) goto parser_failure; if ( !parser_get_localized_string( pd, "desc", domain, &camp_desc ) ) goto parser_failure; if ( !parser_get_localized_string( pd, "authors", domain, &camp_authors ) ) goto parser_failure; /* entries */ if ( !parser_get_pdata( pd, "scenarios", &scen_ent ) ) goto parser_failure; entries = scen_ent->entries; list_reset( entries ); camp_entries = list_create( LIST_AUTO_DELETE, camp_delete_entry ); while ( ( sub = list_next( entries ) ) ) { if (!camp_first) camp_first = strdup(sub->name); centry = calloc( 1, sizeof( Camp_Entry ) ); centry->id = strdup( sub->name ); parser_get_string( sub, "scenario", ¢ry->scen ); centry->title = camp_resolve_ref_localized(scen_ent, "title", centry->id, domain); centry->brief = camp_resolve_ref_localized(scen_ent, "briefing", centry->id, domain); if (!centry->brief) goto parser_failure; if (!parser_get_string( sub, "coretransfer", ¢ry->core_transfer )) centry->core_transfer = strdup("denied"); if ( parser_get_entries( sub, "next", &next_entries ) ) { centry->nexts = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); list_reset( next_entries ); while ( ( subsub = list_next( next_entries ) ) ) { result = subsub->name; next_scen = list_first( subsub->values ); snprintf( str, sizeof(str), "%s>%s", result, next_scen ); list_add( centry->nexts, strdup( str ) ); } } /* if scenario is given, look for subtree "debriefings", otherwise * for subtree "options". Internally, they're handled the same. */ if ( (centry->scen && parser_get_pdata( sub, "debriefings", &pdent )) || parser_get_pdata( sub, "options", &pdent ) ) { next_entries = pdent->entries; centry->descs = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); list_reset( next_entries ); while ( ( subsub = list_next( next_entries ) ) ) { char key[1024]; const char *result = subsub->name; const char *next_desc; snprintf(key, sizeof key, "%s/%s", pdent->name, subsub->name); next_desc = camp_resolve_ref(scen_ent, key, centry->id); next_desc = trd(domain, next_desc ? next_desc : list_first(subsub->values)); snprintf( str, sizeof(str), "%s>%s", result, next_desc ); list_add( centry->descs, strdup( str ) ); } } list_add( camp_entries, centry ); } parser_free( &pd ); camp_loaded = 1; camp_verify_tree(); free(domain); return 1; parser_failure: fprintf( stderr, "%s\n", parser_get_error() ); camp_delete(); free(domain); return 0; } /* ==================================================================== Load a campaign description (newly allocated string) and setup the setup :) except the type which is set when the engine performs the load action. ==================================================================== */ char* camp_load_info( const char *fname ) { PData *pd; char path[512]; char *name, *desc; char *domain = 0; char *info = 0; sprintf( path, "%s/campaigns/%s", get_gamedir(), fname ); if ( ( pd = parser_read_file( fname, path ) ) == 0 ) goto parser_failure; domain = determine_domain(pd, fname); locale_load_domain(domain, 0/*FIXME*/); if ( !parser_get_value( pd, "name", &name, 0 ) ) goto parser_failure; name = (char *)trd(domain, name); if ( !parser_get_value( pd, "desc", &desc, 0 ) ) goto parser_failure; desc = (char *)trd(domain, desc); if ( ( info = calloc( strlen( name ) + strlen( desc ) + 3, sizeof( char ) ) ) == 0 ) { fprintf( stderr, tr("Out of memory\n") ); goto failure; } sprintf( info, "%s##%s", name, desc ); strcpy( setup.fname, fname ); setup.scen_state = 0; parser_free( &pd ); free(domain); return info; parser_failure: fprintf( stderr, "%s\n", parser_get_error() ); failure: if ( info ) free( info ); parser_free( &pd ); free(domain); return 0; } void camp_delete() { if ( camp_fname ) free( camp_fname ); camp_fname = 0; if ( camp_name ) free( camp_name ); camp_name = 0; if ( camp_desc ) free( camp_desc ); camp_desc = 0; if ( camp_authors ) free( camp_authors ); camp_authors = 0; if ( camp_entries ) list_delete( camp_entries ); camp_entries = 0; camp_loaded = 0; camp_cur_scen = 0; free(camp_first); camp_first = 0; } /* ==================================================================== Query next campaign scenario entry by this result for the current entry. If 'id' is NULL the first entry called 'first' is loaded. ==================================================================== */ Camp_Entry *camp_get_entry( const char *id ) { const char *search_str = id ? id : camp_first; Camp_Entry *entry; list_reset( camp_entries ); while ( ( entry = list_next( camp_entries ) ) ) if ( strcmp( entry->id, search_str ) == 0 ) { return entry; } fprintf( stderr, tr("Campaign entry '%s' not found in campaign '%s'\n"), search_str, camp_name ); return 0; } /* ==================================================================== Return list of result identifiers for current campaign entry. (List of char *) ==================================================================== */ List *camp_get_result_list() { List *list = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); if (camp_cur_scen->nexts) { const char *str; list_reset( camp_cur_scen->nexts ); while ( ( str = list_next( camp_cur_scen->nexts ) ) ) { List *tokens; if ( ( tokens = parser_split_string( str, ">" ) ) ) { list_add( list, strdup(list_first( tokens )) ); list_delete( tokens ); } } } return list; } /* ==================================================================== Return textual description of result or 0 if no description. ==================================================================== */ const char *camp_get_description(const char *result) { const char *ret = 0; if (!result) return 0; if (camp_cur_scen->descs) { const char *str; list_reset( camp_cur_scen->descs ); while ( ( str = list_next( camp_cur_scen->descs ) ) ) { List *tokens; if ( ( tokens = parser_split_string( str, ">" ) ) ) { int found = 0; if ( STRCMP( result, list_first( tokens ) ) ) { ret = strchr( str, '>' ) + 1; found = 1; } list_delete( tokens ); if ( found ) break; } } } return ret; } /* ==================================================================== Set the next scenario entry by searching the results in current scenario entry. If 'id' is NULL entry 'first' is loaded ==================================================================== */ int camp_set_next( const char *id ) { List *tokens; char *next_str; int found = 0; if ( id == 0 ) camp_cur_scen = camp_get_entry( camp_first ); else { if (!camp_cur_scen->nexts) return 0; list_reset( camp_cur_scen->nexts ); while ( ( next_str = list_next( camp_cur_scen->nexts ) ) ) { if ( ( tokens = parser_split_string( next_str, ">" ) ) ) { if ( STRCMP( id, list_first( tokens ) ) ) { camp_cur_scen = camp_get_entry( list_get( tokens, 2 ) ); found = 1; } list_delete( tokens ); if ( found ) break; } } } return camp_cur_scen != 0; } /* ==================================================================== Set current scenario by camp scen entry id. ==================================================================== */ void camp_set_cur( const char *id ) { camp_cur_scen = camp_get_entry( id ); } lgeneral-1.3.1/src/engine.h0000664000175000017500000000341612140770455012446 00000000000000/*************************************************************************** engine.h - description ------------------- begin : Sat Feb 3 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __ENGINE_H #define __ENGINE_H /* ==================================================================== Create engine (load resources that are not modified by scenario) ==================================================================== */ int engine_create(); void engine_delete(); /* ==================================================================== Initiate engine by loading scenario either as saved game or new scenario by the global 'setup'. ==================================================================== */ int engine_init(); void engine_shutdown(); /* ==================================================================== Run the engine (starts with the title screen) ==================================================================== */ void engine_run(); #endif lgeneral-1.3.1/src/ai.c0000664000175000017500000006004512555442107011566 00000000000000/*************************************************************************** ai.c - description ------------------- begin : Thu Apr 11 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "lgeneral.h" #include "date.h" #include "unit.h" #include "action.h" #include "map.h" #include "ai_tools.h" #include "ai_group.h" #include "ai.h" #include "scenario.h" #include /* ==================================================================== Externals ==================================================================== */ extern Player *cur_player; extern List *units, *avail_units, *unit_lib; extern int map_w, map_h; extern Map_Tile **map; extern Mask_Tile **mask; extern int trgt_type_count; extern int deploy_turn; extern Nation *nations; extern Scen_Info *scen_info; extern Config config; /* ==================================================================== Internal stuff ==================================================================== */ enum { AI_STATUS_INIT = 0, /* initiate turn */ AI_STATUS_FINALIZE, /* finalize turn */ AI_STATUS_DEPLOY, /* deploy new units */ AI_STATUS_SUPPLY, /* supply units that need it */ AI_STATUS_MERGE, /* merge damaged units */ AI_STATUS_GROUP, /* group and handle other units */ AI_STATUS_PURCHASE, /* order new units */ AI_STATUS_END /* end ai turn */ }; static int ai_status = AI_STATUS_INIT; /* current AI status */ static List *ai_units = 0; /* units that must be processed */ static AI_Group *ai_group = 0; /* for now it's only one group */ static int finalized = 1; /* set to true when finalized */ /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Get the supply level that is needed to get the wanted absolute values where ammo or fuel 0 means not to check this value. ==================================================================== */ #ifdef _1 static int unit_get_supply_level( Unit *unit, int abs_ammo, int abs_fuel ) { int ammo_level = 0, fuel_level = 0, miss_ammo, miss_fuel; unit_check_supply( unit, UNIT_SUPPLY_ANYTHING, &miss_ammo, &miss_fuel ); if ( abs_ammo > 0 && miss_ammo > 0 ) { if ( miss_ammo > abs_ammo ) miss_ammo = abs_ammo; ammo_level = 100 * unit->prop.ammo / miss_ammo; } if ( abs_fuel > 0 && miss_fuel > 0 ) { if ( miss_fuel > abs_fuel ) miss_fuel = abs_fuel; ammo_level = 100 * unit->prop.fuel / miss_fuel; } if ( fuel_level > ammo_level ) return fuel_level; return ammo_level; } #endif /* ==================================================================== Get the distance of 'unit' and position of object of a special type. ==================================================================== */ static int ai_check_hex_type( Unit *unit, int type, int x, int y ) { switch ( type ) { case AI_FIND_DEPOT: if ( map_is_allied_depot( &map[x][y], unit ) ) return 1; break; case AI_FIND_ENEMY_OBJ: if ( !map[x][y].obj ) return 0; case AI_FIND_ENEMY_TOWN: if ( map[x][y].player && !player_is_ally( unit->player, map[x][y].player ) ) return 1; break; case AI_FIND_OWN_OBJ: if ( !map[x][y].obj ) return 0; case AI_FIND_OWN_TOWN: if ( map[x][y].player && player_is_ally( unit->player, map[x][y].player ) ) return 1; break; } return 0; } int ai_get_dist( Unit *unit, int x, int y, int type, int *dx, int *dy, int *dist ) { int found = 0, length; int i, j; *dist = 999; for ( i = 0; i < map_w; i++ ) for ( j = 0; j < map_h; j++ ) if ( ai_check_hex_type( unit, type, i, j ) ) { length = get_dist( i, j, x, y ); if ( *dist > length ) { *dist = length; *dx = i; *dy = j; found = 1; } } return found; } /* ==================================================================== Approximate destination by best move position in range. ==================================================================== */ static int ai_approximate( Unit *unit, int dx, int dy, int *x, int *y ) { int i, j, dist = get_dist( unit->x, unit->y, dx, dy ) + 1; *x = unit->x; *y = unit->y; map_clear_mask( F_AUX ); map_get_unit_move_mask( unit ); for ( i = 0; i < map_w; i++ ) for ( j = 0; j < map_h; j++ ) if ( mask[i][j].in_range && !mask[i][j].blocked ) mask[i][j].aux = get_dist( i, j, dx, dy ) + 1; for ( i = 0; i < map_w; i++ ) for ( j = 0; j < map_h; j++ ) if ( dist > mask[i][j].aux && mask[i][j].aux > 0 ) { dist = mask[i][j].aux; *x = i; *y = j; } return ( *x != unit->x || *y != unit->y ); } /* ==================================================================== Evaluate all units by not only checking the props but also the current values. ==================================================================== */ static int get_rel( int value, int limit ) { return 1000 * value / limit; } static void ai_eval_units() { Unit *unit; list_reset( units ); while ( ( unit = list_next( units ) ) ) { if ( unit->killed ) continue; unit->eval_score = 0; if ( unit->prop.ammo > 0 ) { if ( unit->cur_ammo >= 5 ) /* it's extremly unlikely that there'll be more than five attacks on a unit within one turn so we can consider a unit with 5+ ammo 100% ready for battle */ unit->eval_score += 1000; else unit->eval_score += get_rel( unit->cur_ammo, MINIMUM( 5, unit->prop.ammo ) ); } if ( unit->prop.fuel > 0 ) { if ( ( (unit->sel_prop->flags & FLYING) && unit->cur_fuel >= 20 ) || ( !(unit->sel_prop->flags & FLYING) && unit->cur_fuel >= 10 ) ) /* a unit with this range is considered 100% operable */ unit->eval_score += 1000; else { if ( unit->sel_prop->flags & FLYING ) unit->eval_score += get_rel( unit->cur_fuel, MINIMUM( 20, unit->prop.fuel ) ); else unit->eval_score += get_rel( unit->cur_fuel, MINIMUM( 10, unit->prop.fuel ) ); } } unit->eval_score += unit->exp_level * 250; unit->eval_score += unit->str * 200; /* strength is counted doubled */ /* the unit experience is not counted as normal but gives a bonus that may increase the evaluation */ unit->eval_score /= 2 + (unit->prop.ammo > 0) + (unit->prop.fuel > 0); /* this value between 0 and 1000 indicates the readiness of the unit and therefore the permillage of eval_score */ unit->eval_score = unit->eval_score * unit->prop.eval_score / 1000; } } /* ==================================================================== Set control mask for ground/air/sea for all units. (not only the visible ones) Friends give positive and foes give negative score which is a relative the highest control value and ranges between -1000 and 1000. ==================================================================== */ typedef struct { Unit *unit; int score; int op_region; /* 0 - ground, 1 - air, 2 - sea */ } CtrlCtx; static int ai_eval_ctrl( int x, int y, void *_ctx ) { CtrlCtx *ctx = _ctx; /* our main function ai_get_ctrl_masks() adds the score for all tiles in range and as we only want to add score once we have to check only tiles in attack range that are not situated in the move range */ if ( mask[x][y].in_range ) return 1; /* okay, this is fire range but not move range */ switch ( ctx->op_region ) { case 0: mask[x][y].ctrl_grnd += ctx->score; break; case 1: mask[x][y].ctrl_air += ctx->score; break; case 2: mask[x][y].ctrl_sea += ctx->score; break; } return 1; } void ai_get_ctrl_masks() { CtrlCtx ctx; int i, j; Unit *unit; map_clear_mask( F_CTRL_GRND | F_CTRL_AIR | F_CTRL_SEA ); list_reset( units ); while ( ( unit = list_next( units ) ) ) { if ( unit->killed ) continue; map_get_unit_move_mask( unit ); /* build context */ ctx.unit = unit; ctx.score = (player_is_ally( unit->player, cur_player ))?unit->eval_score:-unit->eval_score; ctx.op_region = (unit->sel_prop->flags&FLYING)?1:(unit->sel_prop->flags&SWIMMING)?2:0; /* work through move mask and modify ctrl mask by adding score for all tiles in movement and attack range once */ for ( i = MAXIMUM( 0, unit->x - unit->cur_mov ); i <= MINIMUM( map_w - 1, unit->x + unit->cur_mov ); i++ ) for ( j = MAXIMUM( 0, unit->y - unit->cur_mov ); j <= MINIMUM( map_h - 1, unit->y + unit->cur_mov ); j++ ) if ( mask[i][j].in_range ) { switch ( ctx.op_region ) { case 0: mask[i][j].ctrl_grnd += ctx.score; break; case 1: mask[i][j].ctrl_air += ctx.score; break; case 2: mask[i][j].ctrl_sea += ctx.score; break; } ai_eval_hexes( i, j, MAXIMUM( 1, unit->sel_prop->rng ), ai_eval_ctrl, &ctx ); } } } /** Find unit in reduced unit lib entry list @ulist which has flag @flag set * and is best regarding ratio of eval score and cost. Return NULL if no such * unit found. */ Unit_Lib_Entry *get_cannonfodder( List *ulist, int flag ) { Unit_Lib_Entry *e, *u = NULL; list_reset(ulist); while ((e = list_next(ulist))) { if (!(e->flags & flag)) continue; if (u == NULL) { u = e; continue; } if ((100*e->eval_score)/e->cost > (100*u->eval_score)/u->cost) u = e; } return u; } /** Find unit in reduced unit lib entry list @ulist which has flag @flag set * and is best regarding eval score slightly penalized by high cost. * Return NULL if no such unit found. */ Unit_Lib_Entry *get_good_unit( List *ulist, int flag ) { Unit_Lib_Entry *e, *u = NULL; list_reset(ulist); while ((e = list_next(ulist))) { if (!(e->flags & flag)) continue; if (u == NULL) { u = e; continue; } if (e->eval_score-(e->cost/5) > u->eval_score-(u->cost/5)) u = e; } return u; } /** Purchase new units (shamelessly use functions from purchase_dlg for this).*/ extern int player_get_purchase_unit_limit( Player *player, int *core_limit, int *aux_limit ); extern List *get_purchase_nations( void ); extern List *get_purchasable_unit_lib_entries( const char *nationid, const char *uclassid, const Date *date ); extern int player_can_purchase_unit( Player *p, Unit_Lib_Entry *unit, Unit_Lib_Entry *trsp); extern void player_purchase_unit( Player *player, Nation *nation, int core, Unit_Lib_Entry *unit_prop, Unit_Lib_Entry *trsp_prop ); static void ai_purchase_units() { List *nlist = NULL; /* list of player's nations */ List *ulist = NULL; /* list of purchasable unit lib entries */ Unit_Lib_Entry *e = NULL; Nation *n = NULL; int ulimit = player_get_purchase_unit_limit(cur_player,0,0); struct { Unit_Lib_Entry *unit; /* unit to be bought */ Unit_Lib_Entry *trsp; /* its transporter if not NULL */ int weight; /* relative weight to other units in list */ } buy_options[5]; int num_buy_options; int maxeyes, i, j; AI_DEBUG( 1, "Prestige: %d, Units available: %d\n", cur_player->cur_prestige, ulimit); /* if no capacity, return */ if (ulimit == 0) return; ulist = get_purchasable_unit_lib_entries( NULL, NULL, &scen_info->start_date); nlist = get_purchase_nations(); /* remove all entries from ulist that do not have one of our nations */ list_reset(ulist); while ((e = list_next(ulist))) { if (e->nation == -1) { list_delete_current(ulist); /* not purchasable */ continue; } list_reset(nlist); while ((n = list_next(nlist))) if (&nations[e->nation] == n) break; if (n == NULL) { list_delete_current(ulist); /* not our nation */ continue; } AI_DEBUG(2, "%s can be purchased (score: %d, cost: %d)\n", e->name,e->eval_score,e->cost); } memset(buy_options,0,sizeof(buy_options)); num_buy_options = 0; /* FIXME: this certainly has to be more detailled and complex but for * now, keep it simple: * * for defense: buy cheapiest infantry (30%), antitank (30%), * airdefense (20%) or tank (20%) * for attack: buy good tank (40%), infantry with transporter (15%), * good artillery (15%), fighter (10%) or bomber (20%) */ if (cur_player->strat < 0) { buy_options[0].unit = get_cannonfodder( ulist, INFANTRY ); buy_options[0].weight = 30; buy_options[1].unit = get_cannonfodder( ulist, ANTI_TANK ); buy_options[1].weight = 30; buy_options[2].unit = get_cannonfodder( ulist, AIR_DEFENSE ); buy_options[2].weight = 20; buy_options[3].unit = get_cannonfodder( ulist, TANK ); buy_options[3].weight = 20; num_buy_options = 4; } else { buy_options[0].unit = get_good_unit( ulist, INFANTRY ); buy_options[0].weight = 15; buy_options[1].unit = get_good_unit( ulist, TANK ); buy_options[1].weight = 40; buy_options[2].unit = get_good_unit( ulist, ARTILLERY ); buy_options[2].weight = 15; buy_options[3].unit = get_good_unit( ulist, INTERCEPTOR ); buy_options[3].weight = 10; buy_options[4].unit = get_good_unit( ulist, BOMBER ); buy_options[4].weight = 20; num_buy_options = 5; } /* get "size of dice" :-) */ maxeyes = 0; for (i = 0; i < num_buy_options; i++) { maxeyes += buy_options[i].weight; AI_DEBUG(1, "Purchase option %d (w=%d): %s%s\n", i+1, buy_options[i].weight, buy_options[i].unit? buy_options[i].unit->name:"empty", buy_options[i].trsp? buy_options[i].trsp->name:""); if (buy_options[i].unit == NULL) { /* this is only the case for the very first scenarios * to catch it, simply fall back to infantry */ AI_DEBUG(1, "Option %d empty (use option 1)\n", i+1); buy_options[i].unit = buy_options[0].unit; } } /* try to buy units; if not possible (cost exceeds prestige) do nothing * (= save prestige and try to buy next turn) */ for (i = 0; i < ulimit; i++) { int roll = DICE(maxeyes); for (j = 0; j < num_buy_options; j++) if (roll > buy_options[j].weight) roll -= buy_options[j].weight; else break; AI_DEBUG(1, "Choosing option %d\n",j+1); if (buy_options[j].unit && player_can_purchase_unit( cur_player, buy_options[j].unit, buy_options[j].trsp)) { player_purchase_unit( cur_player, &nations[buy_options[j].unit->nation],0, buy_options[j].unit,buy_options[j].trsp); AI_DEBUG(1, "Prestige remaining: %d\n", cur_player->cur_prestige); } else AI_DEBUG(1, "Could not purchase unit?!?\n"); } list_delete( nlist ); list_delete( ulist ); } /* ==================================================================== Exports ==================================================================== */ /* ==================================================================== Initiate turn ==================================================================== */ void ai_init( void ) { List *list; /* used to speed up the creation of ai_units */ Unit *unit; AI_DEBUG(0, "AI Turn: %s\n", cur_player->name ); if ( ai_status != AI_STATUS_INIT ) { AI_DEBUG(0, "Aborted: Bad AI Status: %i\n", ai_status ); return; } finalized = 0; /* get all cur_player units, those with defensive fire come first */ list = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); list_reset( units ); while ( ( unit = list_next( units ) ) ) if ( unit->player == cur_player ) list_add( list, unit ); ai_units = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); list_reset( list ); while ( ( unit = list_next( list ) ) ) if ( unit->sel_prop->flags & ARTILLERY || unit->sel_prop->flags & AIR_DEFENSE ) { list_add( ai_units, unit ); list_delete_item( list, unit ); } list_reset( list ); while ( ( unit = list_next( list ) ) ) { if ( unit->killed ) AI_DEBUG( 0, "!!Unit %s is dead!!\n", unit->name ); list_add( ai_units, unit ); } list_delete( list ); list_reset( ai_units ); AI_DEBUG(1, "Units: %i\n", ai_units->count ); /* evaluate all units for strategic computations */ AI_DEBUG( 1, "Evaluating units...\n" ); ai_eval_units(); /* build control masks */ AI_DEBUG( 1, "Building control mask...\n" ); //ai_get_ctrl_masks(); /* check new units first */ ai_status = AI_STATUS_DEPLOY; list_reset( avail_units ); AI_DEBUG( 0, "AI Initialized\n" ); AI_DEBUG( 0, "*** DEPLOY ***\n" ); } /* ==================================================================== Queue next actions (if these actions were handled by the engine this function is called again and again until the end_turn action is received). ==================================================================== */ void ai_run( void ) { Unit *partners[MAP_MERGE_UNIT_LIMIT]; int partner_count; int i, j, x, y, dx, dy, dist, found; Unit *unit = 0, *best = 0; switch ( ai_status ) { case AI_STATUS_DEPLOY: /* deploy unit? */ if ( avail_units->count > 0 && ( unit = list_next( avail_units ) ) ) { if ( deploy_turn ) { x = unit->x; y = unit->y; assert( x >= 0 && y >= 0 ); map_remove_unit( unit ); found = 1; } else { map_get_deploy_mask(cur_player,unit,0); map_clear_mask( F_AUX ); for ( i = 1; i < map_w - 1; i++ ) for ( j = 1; j < map_h - 1; j++ ) if ( mask[i][j].deploy ) if ( ai_get_dist( unit, i, j, AI_FIND_ENEMY_OBJ, &x, &y, &dist ) ) mask[i][j].aux = dist + 1; dist = 1000; found = 0; for ( i = 1; i < map_w - 1; i++ ) for ( j = 1; j < map_h - 1; j++ ) if ( mask[i][j].aux > 0 && mask[i][j].aux < dist ) { dist = mask[i][j].aux; x = i; y = j; found = 1; /* deploy close to enemy */ } } if ( found ) { action_queue_deploy( unit, x, y ); list_reset( avail_units ); list_add( ai_units, unit ); AI_DEBUG( 1, "%s deployed to %i,%i\n", unit->name, x, y ); return; } } else { ai_status = deploy_turn ? AI_STATUS_END : AI_STATUS_MERGE; list_reset( ai_units ); AI_DEBUG( 0, deploy_turn ? "*** END TURN ***\n" : "*** MERGE ***\n" ); } break; case AI_STATUS_SUPPLY: /* get next unit */ if ( ( unit = list_next( ai_units ) ) == 0 ) { ai_status = AI_STATUS_GROUP; /* build a group with all units, -1,-1 as destination means it will simply attack/defend the nearest target. later on this should split up into several groups with different target and strategy */ ai_group = ai_group_create( cur_player->strat, -1, -1 ); list_reset( ai_units ); while ( ( unit = list_next( ai_units ) ) ) ai_group_add_unit( ai_group, unit ); AI_DEBUG( 0, "*** MOVE & ATTACK ***\n" ); } else { /* check if unit needs supply and remove it from ai_units if so */ if ( ( unit_low_fuel( unit ) || unit_low_ammo( unit ) ) ) { if ( unit->supply_level > 0 ) { action_queue_supply( unit ); list_delete_item( ai_units, unit ); AI_DEBUG( 1, "%s supplies\n", unit->name ); break; } else { AI_DEBUG( 1, "%s searches depot\n", unit->name ); if ( ai_get_dist( unit, unit->x, unit->y, AI_FIND_DEPOT, &dx, &dy, &dist ) ) if ( ai_approximate( unit, dx, dy, &x, &y ) ) { action_queue_move( unit, x, y ); list_delete_item( ai_units, unit ); AI_DEBUG( 1, "%s moves to %i,%i\n", unit->name, x, y ); break; } } } } break; case AI_STATUS_MERGE: if ( ( unit = list_next( ai_units ) ) ) { map_get_merge_units( unit, partners, &partner_count ); best = 0; /* merge with the one that has the most strength points */ for ( i = 0; i < partner_count; i++ ) if ( best == 0 ) best = partners[i]; else if ( best->str < partners[i]->str ) best = partners[i]; if ( best ) { AI_DEBUG( 1, "%s merges with %s\n", unit->name, best->name ); action_queue_merge( unit, best ); /* both units are handled now */ list_delete_item( ai_units, unit ); list_delete_item( ai_units, best ); } } else { ai_status = AI_STATUS_SUPPLY; list_reset( ai_units ); AI_DEBUG( 0, "*** SUPPLY ***\n" ); } break; case AI_STATUS_GROUP: if ( !ai_group_handle_next_unit( ai_group ) ) { ai_group_delete( ai_group ); if (config.purchase) { ai_status = AI_STATUS_PURCHASE; AI_DEBUG( 0, "*** PURCHASE ***\n" ); } else { ai_status = AI_STATUS_END; AI_DEBUG( 0, "*** END TURN ***\n" ); } } break; case AI_STATUS_PURCHASE: ai_purchase_units(); ai_status = AI_STATUS_END; AI_DEBUG( 0, "*** END TURN ***\n" ); break; case AI_STATUS_END: action_queue_end_turn(); ai_status = AI_STATUS_FINALIZE; break; } } /* ==================================================================== Undo the steps (e.g. memory allocation) made in ai_init() ==================================================================== */ void ai_finalize( void ) { AI_DEBUG(2, "%s entered\n",__FUNCTION__); if ( finalized ) return; AI_DEBUG(2, "Really finalized\n"); list_delete( ai_units ); AI_DEBUG( 0, "AI Finalized\n" ); ai_status = AI_STATUS_INIT; finalized = 1; } lgeneral-1.3.1/src/parser.c0000664000175000017500000006443112575247507012505 00000000000000/*************************************************************************** parser.c - description ------------------- begin : Sat Mar 9 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include "parser.h" #include "misc.h" #include "localize.h" /* ==================================================================== Error string. ==================================================================== */ static char parser_sub_error[1024]; static char parser_error[1024]; /* ==================================================================== Common parse tree data. ==================================================================== */ struct CommonTreeData { char *filename; /* filename which this tree was parsed from */ int ref; /* reference count */ }; static struct CommonTreeData *common_tree_data_create(const char *filename) { struct CommonTreeData *ctd = malloc(sizeof(struct CommonTreeData)); ctd->filename = strdup(filename); ctd->ref = 0; return ctd; } static void common_tree_data_delete(struct CommonTreeData *ctd) { free(ctd->filename); } static inline void common_tree_data_ref(struct CommonTreeData *ctd) { ctd->ref++; } static inline int common_tree_data_deref(struct CommonTreeData *ctd) { int del = --ctd->ref == 0; if (del) common_tree_data_delete(ctd); return del; } /* ==================================================================== This buffer is used to fully load resource files when the compact format is used. ==================================================================== */ enum { CBUFFER_SIZE = 131072*2 }; /* 256 KB */ static char cbuffer[CBUFFER_SIZE]; static char* cbuffer_pos = 0; /* position in cbuffer */ /* ==================================================================== As we need constant strings sometimes we have to define a maximum length for tokens. ==================================================================== */ enum { PARSER_MAX_TOKEN_LENGTH = 1024 }; /* ==================================================================== Stateful information we need during parsing ==================================================================== */ typedef struct { const char *fname; /* input file name */ FILE *file; /* input file descriptor */ int lineno; /* current line number */ char ch; /* current character from input stream */ ParserToken tok; /* current token */ char tokbuf[PARSER_MAX_TOKEN_LENGTH]; /* context of token */ struct CommonTreeData *ctd; } ParserState; /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Macro to shorten the fread call for a single character. ==================================================================== */ #define FILE_READCHAR( st, c ) do { \ _fread( &c, sizeof( char ), 1, (st)->file ); \ if (c == '\n') (st)->lineno++; \ } while(0) /* ==================================================================== Returns whether this is a valid character for a string. ==================================================================== */ inline static int parser_is_valid_string_char(char ch) { switch (ch) { case '$': case '/': case '@': case '_': case '.': case ':': case '~': case '-': case '%': case '#': case '^': return 1; default: return (ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || (unsigned char)ch > 127; } } /* ==================================================================== Find next newline in cbuffer and replace it with \0 and return the pointer to the current line. ==================================================================== */ static char* parser_get_next_line(ParserState *st) { char *line = cbuffer_pos; char *newpos; if ( cbuffer_pos[0] == 0 ) return 0; /* completely read. no more lines. */ if ( ( newpos = strchr( cbuffer_pos, 10 ) ) == 0 ) cbuffer_pos += strlen( cbuffer_pos ); /* last line */ else { cbuffer_pos = newpos + 1; /* set pointer to next line */ newpos[0] = 0; /* terminate current line */ } st->lineno++; return line; } /* ==================================================================== Set parse error string: "file:line: error" ==================================================================== */ static void parser_set_parse_error( ParserState *st, const char *error ) { snprintf( parser_error, sizeof parser_error, "%s: %i: %s", st->fname, st->lineno, error ); } /* ==================================================================== Print parser warning to stderr, prefixed with "file:line: msg" ==================================================================== */ static void parser_print_warning(ParserState *st, const char *msg) { parser_set_parse_error(st, msg); fprintf(stderr, tr("warning: %s\n"), parser_error); } /* ==================================================================== Read next token from given input stream and return it. ==================================================================== */ static ParserToken parser_read_token(ParserState *st) { char ch = st->ch; /* consume whitespace and comments */ int comment_nesting = 0; while (!feof(st->file) && (ch == ' ' || ch == '\t' || ch == '\n' || comment_nesting > 0 || ch == PARSER_COMMENT_BEGIN || (comment_nesting >= 0 && ch == PARSER_COMMENT_END))) { if (ch == PARSER_COMMENT_BEGIN) comment_nesting++; else if (ch == PARSER_COMMENT_END) comment_nesting--; FILE_READCHAR(st, ch); } if (feof(st->file)) { st->tok = PARSER_EOI; strcpy(st->tokbuf, tr("")); return st->tok; } switch (ch) { case PARSER_GROUP_BEGIN: case PARSER_GROUP_END: case PARSER_SET: case PARSER_LIST_BEGIN: case PARSER_LIST_END: st->tok = ch; st->tokbuf[0] = ch; st->tokbuf[1] = 0; FILE_READCHAR(st, ch); break; case '"': { /* quoted string */ int skip_next_char = 0; int idx = 0; /* prepare error message now to maintain more accurate line position */ parser_set_parse_error(st, tr("Unterminated string constant")); FILE_READCHAR(st, ch); /* skip leading quote */ while (!feof(st->file) && (skip_next_char || ch != '"')) { skip_next_char = 0; if (ch == '\\') skip_next_char = 1; else if (idx < PARSER_MAX_TOKEN_LENGTH - 1) st->tokbuf[idx++] = ch; FILE_READCHAR(st, ch); } st->tokbuf[idx] = '\0'; if (feof(st->file)) st->tok = PARSER_EOI; else { parser_error[0] = '\0'; if (idx == PARSER_MAX_TOKEN_LENGTH - 1) parser_print_warning(st, tr("token exceeds limit")); FILE_READCHAR(st, ch); /* skip trailing quote */ st->tok = PARSER_STRING; } break; } default: /* unquoted string */ if (parser_is_valid_string_char(ch)) { int idx = 0; do { if (idx < PARSER_MAX_TOKEN_LENGTH - 1) st->tokbuf[idx++] = ch; FILE_READCHAR(st, ch); } while (!feof(st->file) && parser_is_valid_string_char(ch)); if (idx == PARSER_MAX_TOKEN_LENGTH - 1) parser_print_warning(st, tr("token exceeds limit")); st->tokbuf[idx] = '\0'; st->tok = PARSER_STRING; break; } snprintf(parser_sub_error, sizeof parser_sub_error, tr("Invalid character '%c'"), ch); st->tok = PARSER_EOI; break; } st->ch = ch; return st->tok; } /* ==================================================================== Check if the given character occurs in the symbol list. If the first symbol is ' ' it is used as wildcard for all white-spaces. ==================================================================== */ static int is_symbol( int c, const char *symbols ) { int i = 0; if ( symbols[0] == ' ' && c <= 32 ) return 1; while ( symbols[i] != 0 ) if ( c == symbols[i++] ) return 1; return 0; } /* ==================================================================== Proceed in the given string until it ends or non-whitespace occurs and return the new position. ==================================================================== */ static inline const char* string_ignore_whitespace( const char *string ) { while ( *string != 0 && (unsigned char)*string <= 32 ) string++; return string; } /* ==================================================================== Creates a new pdata-entry. !!Never create any pdata-entries outside of this function!! You'll get it wrong. I'll guarantee it. This cost me many hours hours of precious sleep. ==================================================================== */ static inline PData *parser_create_pdata( char *name, List *values, int lineno, struct CommonTreeData *ctd ) { PData *pd = calloc(1, sizeof(PData)); pd->name = name; pd->values = values; pd->lineno = lineno; pd->ctd = ctd; common_tree_data_ref(pd->ctd); return pd; } /* ==================================================================== Reads in one pdata entry from the current input position ==================================================================== */ static PData* parser_parse_entry( ParserState *st ) { PData *pd = 0, *sub = 0; if (st->tok == PARSER_EOI) return 0; /* get name */ if ( st->tok != PARSER_STRING ) { sprintf( parser_sub_error, tr("parse error before '%s'"), st->tokbuf ); return 0; } pd = parser_create_pdata(strdup(st->tokbuf), 0, st->lineno, st->ctd); parser_read_token(st); /* check type */ switch ( st->tok ) { case PARSER_SET: parser_read_token(st); pd->values = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); /* assign single value or list */ if (st->tok == PARSER_STRING ) { list_add( pd->values, strdup(st->tokbuf) ); parser_read_token(st); } else if ( st->tok == PARSER_LIST_BEGIN ) { parser_read_token(st); while (st->tok == PARSER_STRING) { list_add( pd->values, strdup(st->tokbuf) ); parser_read_token(st); } if (st->tok != PARSER_LIST_END) goto parse_error; parser_read_token(st); } else { parse_error: sprintf( parser_sub_error, tr("parse error before '%s'"), st->tokbuf ); goto failure; } break; case PARSER_GROUP_BEGIN: /* check all entries until PARSER_GROUP_END */ parser_read_token(st); pd->entries = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); *parser_sub_error = 0; while ( st->tok == PARSER_STRING ) { sub = parser_parse_entry( st ); if ( sub ) list_add( pd->entries, sub ); if (*parser_sub_error) goto failure; } if (st->tok == PARSER_GROUP_END) { parser_read_token(st); break; } /* fall through */ default: sprintf( parser_sub_error, tr("parse error before '%s'"), st->tokbuf ); goto failure; } return pd; failure: parser_free( &pd ); return 0; } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== This function splits a string into tokens using the characters found in symbols as breakpoints. If the first symbol is ' ' all whitespaces are used as breakpoints though NOT added as a token (thus removed from string). ==================================================================== */ List* parser_split_string( const char *string, const char *symbols ) { int pos; char *token = 0; List *list = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); while ( string[0] != 0 ) { if ( symbols[0] == ' ' ) string = string_ignore_whitespace( string ); if ( string[0] == 0 ) break; pos = 1; /* 'read in' first character */ while ( string[pos - 1] != 0 && !is_symbol( string[pos - 1], symbols ) && string[pos - 1] != '"' ) pos++; if ( pos > 1 ) pos--; else if ( string[pos - 1] == '"' ) { /* read a string */ string++; pos = 0; while ( string[pos] != 0 && string[pos] != '"' ) pos++; token = calloc( pos + 1, sizeof( char ) ); strncpy( token, string, pos ); token[pos] = 0; list_add( list, token ); string += pos + (string[pos] != 0); continue; } token = calloc( pos + 1, sizeof( char ) ); strncpy( token, string, pos); token[pos] = 0; list_add( list, token ); string += pos; } return list; } /* ==================================================================== This is the light version of parser_split_string which checks for just one character and does not add this glue characters to the list. It's about 2% faster. Wow. ==================================================================== */ List *parser_explode_string( const char *string, char c ) { List *list = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); char *next_slash = 0; char small_buf[64]; while ( *string != 0 && ( next_slash = strchr( string, c ) ) != 0 ) { if ( next_slash != string ) { const unsigned buflen = next_slash - string; /* don't bust the stack. call alloca only on long strings */ char *buffer = buflen < sizeof small_buf ? small_buf : alloca(buflen + 1); memcpy( buffer, string, buflen ); buffer[buflen] = 0; list_add( list, strdup( buffer ) ); } string += next_slash - string + 1; } if ( string[0] != 0 ) list_add( list, strdup( string ) ); return list; } /* ==================================================================== This function reads in a whole file and converts it into a PData tree struct. If an error occurs NULL is returned and parser_error is set. ==================================================================== */ static int parser_read_file_full( ParserState *st, PData *top ) { /* parse file */ *parser_sub_error = 0; do { PData *sub = 0; if ( ( sub = parser_parse_entry( st ) ) != 0 ) list_add( top->entries, sub ); if (*parser_sub_error) return 0; } while (st->tok != PARSER_EOI); return 1; } static int parser_read_file_compact( ParserState *st, PData *section ) { /* section is the parent pdata that needs some entries */ PData *pd = 0; char *line, *cur; while ( ( line = parser_get_next_line(st) ) ) { switch ( line[0] ) { case '>': /* this section is finished */ return 1; case '<': /* add a whole subsection */ pd = parser_create_pdata(strdup( line + 1 ), 0, st->lineno, st->ctd); pd->entries = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); parser_read_file_compact( st, pd ); /* add to section */ list_add( section->entries, pd ); break; default: /* check name */ if ( ( cur = strchr( line, '»' ) ) == 0 ) { sprintf( parser_sub_error, tr("parse error: use '%c' for assignment or '<' for section"), '»' ); return 0; } cur[0] = 0; cur++; /* read values as subsection */ pd = parser_create_pdata(strdup( line ), parser_explode_string( cur, '°' ), st->lineno, st->ctd); /* add to section */ list_add( section->entries, pd ); break; } } return 1; } PData* parser_read_file( const char *tree_name, const char *fname ) { int size; char magic = 0; ParserState state = { fname, 0, 1, 0 }; ParserState *st = &state; PData *top = 0; /* open file */ if ( ( state.file = fopen( fname, "rb" ) ) == 0 ) { sprintf( parser_error, tr("%s: file not found"), fname ); return 0; } /* create common tree data */ st->ctd = common_tree_data_create(fname); /* create top level pdata */ top = parser_create_pdata(strdup( tree_name ), 0, st->lineno, st->ctd); top->entries = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); /* parse */ FILE_READCHAR( st, st->ch ); magic = st->ch; if ( magic == '@' ) { /* get the whole contents -- 1 and CBUFFER_SIZE are switched */ fseek( st->file, 0, SEEK_END ); size = ftell( st->file ) - 2; if ( size >= CBUFFER_SIZE ) { fprintf( stderr, tr("%s: file's too big to fit the compact buffer (%dKB)\n"), fname, CBUFFER_SIZE / 1024 ); size = CBUFFER_SIZE - 1; } fseek( st->file, 2, SEEK_SET ); _fread( cbuffer, 1, size, st->file ); cbuffer[size] = 0; /* set indicator to beginning of text */ cbuffer_pos = cbuffer; /* parse cbuffer */ if ( !parser_read_file_compact( st, top ) ) { parser_set_parse_error( st, parser_sub_error ); goto failure; } } else { parser_read_token(st); if ( !parser_read_file_full( st, top ) ) { parser_set_parse_error( st, parser_sub_error ); goto failure; } } /* finalize */ fclose( st->file ); return top; failure: fclose( st->file ); parser_free( &top ); return 0; } /* ==================================================================== This function frees a PData tree struct. ==================================================================== */ void parser_free( PData **pdata ) { PData *entry = 0; if ( (*pdata) == 0 ) return; if ( (*pdata)->entries ) { list_reset( (*pdata)->entries ); while ( ( entry = list_next( (*pdata)->entries ) ) ) parser_free( &entry ); list_delete( (*pdata)->entries ); } if ( (*pdata)->name ) free( (*pdata)->name ); if ( (*pdata)->values ) list_delete( (*pdata)->values ); common_tree_data_deref((*pdata)->ctd); free( *pdata ); *pdata = 0; } /* ==================================================================== This function creates a new PData struct, inserts it into parent, and returns it. Does not take ownership of 'name'. Does take ownership of 'list'. ==================================================================== */ PData *parser_insert_new_pdata( PData *parent, const char *name, List *values ) { PData *pd = parser_create_pdata(strdup(name), values, 0, parent->ctd); if (!parent->entries) parent->entries = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); list_add(parent->entries, pd); return pd; } /* ==================================================================== Returns the file name this node was parsed from. ==================================================================== */ const char *parser_get_filename( PData *pd ) { return pd->ctd->filename; } /* ==================================================================== Returns the line number this node was parsed from. ==================================================================== */ int parser_get_linenumber( PData *pd ) { return pd->lineno; } /* ==================================================================== Functions to access a PData tree. 'name' is the pass within tree 'pd' where subtrees are separated by '/' (e.g.: name = 'config/graphics/animations') parser_get_pdata : get pdata entry associated with 'name' parser_get_entries : get list of subtrees (PData structs) in 'name' parser_get_values : get value list of 'name' parser_get_value : get a single value from value list of 'name' parser_get_int : get first value of 'name' converted to integer parser_get_double : get first value of 'name' converted to double parser_get_string : get first value of 'name' _duplicated_ If an error occurs result is set NULL, False is returned and parse_error is set. ==================================================================== */ int parser_get_pdata ( PData *pd, const char *name, PData **result ) { int i, found; PData *pd_next = pd; PData *entry = 0; char *sub = 0; List *path = parser_explode_string( name, '/' ); for ( i = 0, list_reset( path ); i < path->count; i++ ) { ListIterator it; sub = list_next( path ); if ( !pd_next->entries ) { sprintf( parser_sub_error, tr("%s: no subtrees"), pd_next->name ); goto failure; } it = list_iterator( pd_next->entries ); found = 0; while ( ( entry = list_iterator_next( &it ) ) ) if ( strlen( entry->name ) == strlen( sub ) && !strncmp( entry->name, sub, strlen( sub ) ) ) { pd_next = entry; found = 1; break; } if ( !found ) { sprintf( parser_sub_error, tr("%s: subtree '%s' not found"), pd_next->name, sub ); goto failure; } } list_delete( path ); *result = pd_next; return 1; failure: sprintf( parser_error, "parser_get_pdata: %s/%s: %s", pd->name, name, parser_sub_error ); list_delete( path ); *result = 0; return 0; } int parser_get_entries( PData *pd, const char *name, List **result ) { PData *entry; *result = 0; if ( !parser_get_pdata( pd, name, &entry ) ) { sprintf( parser_sub_error, "parser_get_entries:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } if ( !entry->entries || entry->entries->count == 0 ) { sprintf( parser_error, tr("parser_get_entries: %s/%s: no subtrees"), pd->name, name ); return 0; } *result = entry->entries; return 1; } int parser_get_values ( PData *pd, const char *name, List **result ) { PData *entry; *result = 0; if ( !parser_get_pdata( pd, name, &entry ) ) { sprintf( parser_sub_error, "parser_get_values:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } if ( !entry->values || entry->values->count == 0 ) { sprintf( parser_error, tr("parser_get_values: %s/%s: no values"), pd->name, name ); return 0; } *result = entry->values; return 1; } int parser_get_value ( PData *pd, const char *name, char **result, int index ) { List *values; if ( !parser_get_values( pd, name, &values ) ) { sprintf( parser_sub_error, "parser_get_value:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } if ( index >= values->count ) { sprintf( parser_error, tr("parser_get_value: %s/%s: index %i out of range (%i elements)"), pd->name, name, index, values->count ); return 0; } *result = list_get( values, index ); return 1; } int parser_get_int ( PData *pd, const char *name, int *result ) { char *value; if ( !parser_get_value( pd, name, &value, 0 ) ) { sprintf( parser_sub_error, "parser_get_int:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } *result = atoi( value ); return 1; } int parser_get_double ( PData *pd, const char *name, double *result ) { char *value; if ( !parser_get_value( pd, name, &value, 0 ) ) { sprintf( parser_sub_error, "parser_get_double:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } *result = strtod( value, 0 ); return 1; } int parser_get_string ( PData *pd, const char *name, char **result ) { char *value; if ( !parser_get_value( pd, name, &value, 0 ) ) { sprintf( parser_sub_error, "parser_get_string:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } *result = strdup( value ); return 1; } /* ==================================================================== Get first value of 'name', translated to the current language in the context of the given domain, and return it _duplicated_. ==================================================================== */ int parser_get_localized_string ( PData *pd, const char *name, const char *domain, char **result ) { char *value; if ( !parser_get_value( pd, name, &value, 0 ) ) { sprintf( parser_sub_error, "parser_get_string:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } *result = strdup( trd(domain, value) ); return 1; } /* ==================================================================== Returns if a parser error occurred ==================================================================== */ int parser_is_error(void) { return !!*parser_error; } /* ==================================================================== If an error occurred you can query the reason with this function. ==================================================================== */ char* parser_get_error( void ) { return parser_error; } lgeneral-1.3.1/src/units/0000775000175000017500000000000012643745102012245 500000000000000lgeneral-1.3.1/src/units/Makefile.in0000664000175000017500000003165712643745057014257 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/units DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/units/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/units/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/units # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/units/Makefile.am0000664000175000017500000000010212140770453014211 00000000000000install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/units lgeneral-1.3.1/src/music/0000775000175000017500000000000012643745101012222 500000000000000lgeneral-1.3.1/src/music/Makefile.in0000664000175000017500000003165712643745056014234 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/music DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/music/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/music/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/music # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/music/Makefile.am0000664000175000017500000000010212140770455014171 00000000000000install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/music lgeneral-1.3.1/src/scenario.c0000664000175000017500000014422712575247507013016 00000000000000/*************************************************************************** scenario.c - description ------------------- begin : Fri Jan 19 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "lgeneral.h" #include "parser.h" #include "date.h" #include "nation.h" #include "unit.h" #include "file.h" #include "map.h" #include "campaign.h" #include "scenario.h" #include "localize.h" #if DEBUG_CAMPAIGN # include # include #endif /* ==================================================================== Externals ==================================================================== */ extern Sdl sdl; extern Config config; extern Nation *nations; extern int nation_count; extern int nation_flag_width, nation_flag_height; extern Trgt_Type *trgt_types; extern int trgt_type_count; extern Mov_Type *mov_types; extern int mov_type_count; extern Unit_Class *unit_classes; extern int unit_class_count; extern Map_Tile **map; extern Mask_Tile **mask; extern int map_w, map_h; extern Weather_Type *weather_types; extern int weather_type_count; extern List *players; extern Font *log_font; extern Setup setup; extern int deploy_turn; extern List *unit_lib; extern Camp_Entry *camp_cur_scen; extern int camp_loaded; /* ==================================================================== Scenario data. ==================================================================== */ List *prev_scen_core_units = 0; //list of units transfered between scenarios //type: transferredUnitProp in unit.h char *prev_scen_fname = 0; //file name of previous scenario Setup setup; /* engine setup with scenario information */ Scen_Info *scen_info = 0; int *weather = 0; /* weather type for each turn as id to weather_types */ int cur_weather; /* weather of current turn */ int turn; /* current turn id */ List *units = 0; /* active units */ List *vis_units = 0; /* all units spotted by current player */ List *avail_units = 0; /* available units for current player to deploy */ List *reinf = 0; /* reinforcements -- units with a delay (if delay is 0 a unit is made available in avail_units if the player controls it. */ Player *player = 0; /* current player */ int log_x, log_y; /* position where to draw log info */ char *scen_domain; /* domain this scenario was loaded under */ /* VICTORY CONDITIONS */ char scen_result[64] = ""; /* the scenario result is saved here */ char scen_message[128] = ""; /* the final scenario message is saved here */ int vcond_check_type = 0; /* test victory conditions this turn */ VCond *vconds = 0; /* victory conditions */ int vcond_count = 0; static int *casualties; /* sum of casualties grouped by unit class and player */ /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Check if subcondition is fullfilled. ==================================================================== */ static int subcond_check( VSubCond *cond ) { Unit *unit; int x,y,count; if ( cond == 0 ) return 0; switch ( cond->type ) { case VSUBCOND_CTRL_ALL_HEXES: for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) if ( map[x][y].player && map[x][y].obj ) if ( !player_is_ally( cond->player, map[x][y].player ) ) return 0; return 1; case VSUBCOND_CTRL_HEX: if ( map[cond->x][cond->y].player ) if ( player_is_ally( cond->player, map[cond->x][cond->y].player ) ) return 1; return 0; case VSUBCOND_TURNS_LEFT: if ( scen_info->turn_limit - turn > cond->count ) return 1; else return 0; case VSUBCOND_CTRL_HEX_NUM: count = 0; for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) if ( map[x][y].player && map[x][y].obj ) if ( player_is_ally( cond->player, map[x][y].player ) ) count++; if ( count >= cond->count ) return 1; return 0; case VSUBCOND_UNITS_KILLED: /* as long as there are units out using this tag this condition is not fullfilled */ list_reset( units ); while ( ( unit = list_next( units ) ) ) if ( !unit->killed && !player_is_ally( cond->player, unit->player ) ) if ( unit->tag[0] != 0 && STRCMP( unit->tag, cond->tag ) ) return 0; return 1; case VSUBCOND_UNITS_SAVED: /* we counted the number of units with this tag so count again and if one is missing: bingo */ list_reset( units ); count = 0; while ( ( unit = list_next( units ) ) ) if ( player_is_ally( cond->player, unit->player ) ) if ( unit->tag[0] != 0 && STRCMP( unit->tag, cond->tag ) ) count++; if ( count == cond->count ) return 1; return 0; } return 0; } /** Set no_purchase for all nations that either have no purchasable * units in current unit library or have neither flag nor unit under * control (thus are not present in this scenario). */ static void update_nations_purchase_flag() { int i, x, y; Unit_Lib_Entry *e = NULL; Unit *u = NULL; /* clear flag -- misuse it for checks below */ for (i = 0; i < nation_count; i++) nations[i].no_purchase = 0; /* mark all nations that have at least one entry assigned */ list_reset( unit_lib ); while ((e = list_next( unit_lib ))) if (e->nation != -1) nations[e->nation].no_purchase |= 0x01; /* mark all nations that have at least one unit/flag under control */ list_reset( units ); while ((u = list_next( units ))) u->nation->no_purchase |= 0x02; list_reset( reinf ); while ((u = list_next( reinf ))) u->nation->no_purchase |= 0x02; for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) if ( map[x][y].nation ) map[x][y].nation->no_purchase |= 0x02; /* map results - purchase okay if both flags set */ for (i = 0; i < nation_count; i++) if (nations[i].no_purchase == 0x03) nations[i].no_purchase = 0; else nations[i].no_purchase = 1; } /** Check if core unit transfer is possible. */ static int core_transfer_allowed() { if (!camp_loaded) return 0; /* transferring is only for campaign */ if (!prev_scen_core_units) return 0; /* no core units saved from last scenario */ if (prev_scen_core_units->count == 0) return 0; /* no units in list */ if (strcmp(camp_cur_scen->core_transfer,"denied") == 0) return 0; /* core transfer is always denied */ if (strcmp(camp_cur_scen->core_transfer,"allowed") == 0) return 1; /* core transfer is always allowed */ /* core transfer is okay if scenario (file name) matches * the from clause, e.g., from:pg/Poland */ if (strncmp(camp_cur_scen->core_transfer,"from:",5)) return 0; /* doesn't start with from: */ if (prev_scen_fname == 0) return 0; /* previous scenario file name missing */ if (strcmp(camp_cur_scen->core_transfer+5, prev_scen_fname) == 0) return 1; /* previous scenario matches */ return 0; } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== Load a scenario. ==================================================================== */ int scen_load( const char *fname ) { char log_str[256]; int unit_ref = 0; int i, j, x, y, obj; Nation *nation; PData *pd, *sub, *flag, *subsub; PData *pd_vcond, *pd_bind, *pd_vsubcond; List *entries, *values, *flags; char path[512]; char *str, *lib; char *domain; Player *player = 0; Unit_Lib_Entry *unit_prop = 0, *trsp_prop = 0; Unit *unit; Unit unit_base; /* used to store values for unit */ int unit_delayed = 0; scen_delete(); sprintf( path, "%s/scenarios/%s", get_gamedir(), fname ); if ( ( pd = parser_read_file( fname, path ) ) == 0 ) goto parser_failure; free(scen_domain); domain = scen_domain = determine_domain(pd, fname); locale_load_domain(domain, 0/*FIXME*/); SDL_FillRect( sdl.screen, 0, 0x0 ); log_font->align = ALIGN_X_LEFT | ALIGN_Y_TOP; log_x = 2; log_y = 2; sprintf( log_str, tr("*** Loading scenario '%s' ***"), fname ); write_line( sdl.screen, log_font, log_str, log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); /* get scenario info */ sprintf( log_str, tr("Loading Scenario Info")); write_line( sdl.screen, log_font, log_str, log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); scen_info = calloc( 1, sizeof( Scen_Info ) ); scen_info->fname = strdup( fname ); if ( !parser_get_localized_string( pd, "name", domain, &scen_info->name ) ) goto parser_failure; if ( !parser_get_localized_string( pd, "desc", domain, &scen_info->desc ) ) goto parser_failure; if ( !parser_get_localized_string( pd, "authors", domain, &scen_info->authors) ) goto parser_failure; if ( !parser_get_value( pd, "date", &str, 0 ) ) goto parser_failure; str_to_date( &scen_info->start_date, str ); if ( !parser_get_int( pd, "turns", &scen_info->turn_limit ) ) goto parser_failure; if ( !parser_get_int( pd, "turns_per_day", &scen_info->turns_per_day ) ) goto parser_failure; if ( !parser_get_int( pd, "days_per_turn", &scen_info->days_per_turn ) ) goto parser_failure; if ( !parser_get_entries( pd, "players", &entries ) ) goto parser_failure; scen_info->player_count = entries->count; /* nations */ sprintf( log_str, tr("Loading Nations") ); write_line( sdl.screen, log_font, log_str, log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); if ( !parser_get_value( pd, "nation_db", &str, 0 ) ) goto parser_failure; if ( !nations_load( str ) ) goto failure; /* unit libs */ if ( !parser_get_pdata( pd, "unit_db", &sub ) ) { /* check the scenario file itself but only for the main entry */ sprintf(path, "../scenarios/%s", fname); str = path; sprintf( log_str, tr("Loading Main Unit Library '%s'"), str ); write_line( sdl.screen, log_font, log_str, log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); if ( !unit_lib_load( str, UNIT_LIB_MAIN ) ) goto parser_failure; } else { if ( !parser_get_value( sub, "main", &str, 0 ) ) goto parser_failure; sprintf( log_str, tr("Loading Main Unit Library '%s'"), str ); write_line( sdl.screen, log_font, log_str, log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); if ( !unit_lib_load( str, UNIT_LIB_MAIN ) ) goto parser_failure; if ( parser_get_values( sub, "add", &values ) ) { list_reset( values ); while ( ( lib = list_next( values ) ) ) { sprintf( log_str, tr("Loading Additional Unit Library '%s'"), lib ); write_line( sdl.screen, log_font, log_str, log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); if ( !unit_lib_load( lib, UNIT_LIB_ADD ) ) goto failure; } } } /* map and weather */ if ( !parser_get_value( pd, "map", &str, 0 ) ) { sprintf(path, "../scenarios/%s", fname); /* check the scenario file itself */ str = path; } sprintf( log_str, tr("Loading Map '%s'"), str ); write_line( sdl.screen, log_font, log_str, log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); if ( !map_load( str ) ) goto failure; weather = calloc( scen_info->turn_limit, sizeof( int ) ); if ( parser_get_values( pd, "weather", &values ) ) { list_reset( values ); i = 0; while ( ( str = list_next( values ) ) ) { if ( i == scen_info->turn_limit ) break; for ( j = 0; j < weather_type_count; j++ ) if ( STRCMP( str, weather_types[j].id ) ) { weather[i] = j; break; } i++; } } /* players */ sprintf( log_str, tr("Loading Players") ); write_line( sdl.screen, log_font, log_str, log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); if ( !parser_get_entries( pd, "players", &entries ) ) goto parser_failure; list_reset( entries ); while ( ( sub = list_next( entries ) ) ) { /* create player */ player = calloc( 1, sizeof( Player ) ); player->id = strdup( sub->name ); if ( !parser_get_localized_string( sub, "name", domain, &player->name ) ) goto parser_failure; if ( !parser_get_values( sub, "nations", &values ) ) goto parser_failure; player->nation_count = values->count; player->nations = calloc( player->nation_count, sizeof( Nation* ) ); list_reset( values ); for ( i = 0; i < values->count; i++ ) player->nations[i] = nation_find( list_next( values ) ); /* unit limit (0 = no limit) */ parser_get_int(sub, "unit_limit", &player->unit_limit); /* core units + aux units = unit_limit */ parser_get_int(sub, "core_unit_limit", &player->core_unit_limit); if ( !parser_get_value( sub, "orientation", &str, 0 ) ) goto parser_failure; if ( STRCMP( str, "right" ) ) /* alldirs not implemented yet */ player->orient = UNIT_ORIENT_RIGHT; else player->orient = UNIT_ORIENT_LEFT; if ( !parser_get_value( sub, "control", &str, 0 ) ) goto parser_failure; if ( STRCMP( str, "cpu" ) ) player->ctrl = PLAYER_CTRL_CPU; else player->ctrl = PLAYER_CTRL_HUMAN; if ( !parser_get_string( sub, "ai_module", &player->ai_fname ) ) player->ai_fname = strdup( "default" ); if ( !parser_get_int( sub, "strategy", &player->strat ) ) goto parser_failure; if ( parser_get_pdata( sub, "transporters/air", &subsub ) ) { if ( !parser_get_value( subsub, "unit", &str, 0 ) ) goto parser_failure; player->air_trsp = unit_lib_find( str ); if ( !parser_get_int( subsub, "count", &player->air_trsp_count ) ) goto parser_failure; } if ( parser_get_pdata( sub, "transporters/sea", &subsub ) ) { if ( !parser_get_value( subsub, "unit", &str, 0 ) ) goto parser_failure; player->sea_trsp = unit_lib_find( str ); if ( !parser_get_int( subsub, "count", &player->sea_trsp_count ) ) goto parser_failure; } /* Load prestige info if any. If none is present show a warning. */ player->prestige_per_turn = calloc( scen_info->turn_limit, sizeof(int)); if (!player->prestige_per_turn) { fprintf( stderr, tr("Out of memory\n") ); goto failure; } if ( parser_get_values( sub, "prestige", &values ) ) { list_reset( values ); i = 0; while ( ( str = list_next( values ) ) ) { player->prestige_per_turn[i] = atoi(str); i++; } } else fprintf( stderr, tr("Oops: No prestige info for player %s " "in scenario %s.\nMaybe you did not " "convert scenarios after update?\n"), player->name, scen_info->name ); player->cur_prestige = 0; /* will be adjusted on turn begin */ player_add( player ); player = 0; } /* set alliances */ list_reset( players ); for ( i = 0; i < players->count; i++ ) { player = list_next( players ); player->allies = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); sprintf( path, "players/%s/allied_players", player->id ); if ( parser_get_values( pd, path, &values ) ) { list_reset( values ); for ( j = 0; j < values->count; j++ ) list_add( player->allies, player_get_by_id( list_next( values ) ) ); } } /* flags */ sprintf( log_str, tr("Loading Flags") ); write_line( sdl.screen, log_font, log_str, log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); if ( !parser_get_entries( pd, "flags", &flags ) ) goto parser_failure; list_reset( flags ); while ( ( flag = list_next( flags ) ) ) { if ( !parser_get_int( flag, "x", &x ) ) goto parser_failure; if ( !parser_get_int( flag, "y", &y ) ) goto parser_failure; obj = 0; parser_get_int( flag, "obj", &obj ); if ( !parser_get_value( flag, "nation", &str, 0 ) ) goto parser_failure; nation = nation_find( str ); map[x][y].nation = nation; map[x][y].player = player_get_by_nation( nation ); if ( map[x][y].nation ) map[x][y].deploy_center = 1; map[x][y].obj = obj; } /* victory conditions */ scen_result[0] = 0; sprintf( log_str, tr("Loading Victory Conditions") ); write_line( sdl.screen, log_font, log_str, log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); /* check type */ vcond_check_type = VCOND_CHECK_EVERY_TURN; if ( parser_get_value( pd, "result/check", &str, 0 ) ) { if ( STRCMP( str, "last_turn" ) ) vcond_check_type = VCOND_CHECK_LAST_TURN; } if ( !parser_get_entries( pd, "result", &entries ) ) goto parser_failure; /* reset vic conds may not be done in scen_delete() as this is called before the check */ scen_result[0] = 0; scen_message[0] = 0; /* count conditions */ list_reset( entries ); i = 0; while ( ( pd_vcond = list_next( entries ) ) ) if ( STRCMP( pd_vcond->name, "cond" ) ) i++; vcond_count = i + 1; /* create conditions */ vconds = calloc( vcond_count, sizeof( VCond ) ); list_reset( entries ); i = 1; /* the very first condition is the else condition */ while ( ( pd_vcond = list_next( entries ) ) ) { if ( STRCMP( pd_vcond->name, "cond" ) ) { /* result & message */ if ( parser_get_value( pd_vcond, "result", &str, 0 ) ) strcpy_lt( vconds[i].result, str, 63 ); else strcpy( vconds[i].result, "undefined" ); if ( parser_get_value( pd_vcond, "message", &str, 0 ) ) strcpy_lt( vconds[i].message, trd(domain, str), 127 ); else strcpy( vconds[i].message, "undefined" ); /* and linkage */ if ( parser_get_pdata( pd_vcond, "and", &pd_bind ) ) { vconds[i].sub_and_count = pd_bind->entries->count; /* create subconditions */ vconds[i].subconds_and = calloc( vconds[i].sub_and_count, sizeof( VSubCond ) ); list_reset( pd_bind->entries ); j = 0; while ( ( pd_vsubcond = list_next( pd_bind->entries ) ) ) { /* get subconds */ if ( STRCMP( pd_vsubcond->name, "control_all_hexes" ) ) { vconds[i].subconds_and[j].type = VSUBCOND_CTRL_ALL_HEXES; if ( !parser_get_value( pd_vsubcond, "player", &str, 0 ) ) goto parser_failure; vconds[i].subconds_and[j].player = player_get_by_id( str ); } else if ( STRCMP( pd_vsubcond->name, "control_hex" ) ) { vconds[i].subconds_and[j].type = VSUBCOND_CTRL_HEX; if ( !parser_get_value( pd_vsubcond, "player", &str, 0 ) ) goto parser_failure; vconds[i].subconds_and[j].player = player_get_by_id( str ); if ( !parser_get_int( pd_vsubcond, "x", &vconds[i].subconds_and[j].x ) ) goto parser_failure; if ( !parser_get_int( pd_vsubcond, "y", &vconds[i].subconds_and[j].y ) ) goto parser_failure; } else if ( STRCMP( pd_vsubcond->name, "turns_left" ) ) { vconds[i].subconds_and[j].type = VSUBCOND_TURNS_LEFT; if ( !parser_get_int( pd_vsubcond, "count", &vconds[i].subconds_and[j].count ) ) goto parser_failure; } else if ( STRCMP( pd_vsubcond->name, "control_hex_num" ) ) { vconds[i].subconds_and[j].type = VSUBCOND_CTRL_HEX_NUM; if ( !parser_get_value( pd_vsubcond, "player", &str, 0 ) ) goto parser_failure; vconds[i].subconds_and[j].player = player_get_by_id( str ); if ( !parser_get_int( pd_vsubcond, "count", &vconds[i].subconds_and[j].count ) ) goto parser_failure; } else if ( STRCMP( pd_vsubcond->name, "units_killed" ) ) { vconds[i].subconds_and[j].type = VSUBCOND_UNITS_KILLED; if ( !parser_get_value( pd_vsubcond, "player", &str, 0 ) ) goto parser_failure; vconds[i].subconds_and[j].player = player_get_by_id( str ); if ( !parser_get_value( pd_vsubcond, "tag", &str, 0 ) ) goto parser_failure; strcpy_lt( vconds[i].subconds_and[j].tag, str, 31 ); } else if ( STRCMP( pd_vsubcond->name, "units_saved" ) ) { vconds[i].subconds_and[j].type = VSUBCOND_UNITS_SAVED; if ( !parser_get_value( pd_vsubcond, "player", &str, 0 ) ) goto parser_failure; vconds[i].subconds_and[j].player = player_get_by_id( str ); if ( !parser_get_value( pd_vsubcond, "tag", &str, 0 ) ) goto parser_failure; strcpy_lt( vconds[i].subconds_and[j].tag, str, 31 ); vconds[i].subconds_and[j].count = 0; /* units will be counted */ } j++; } } /* or linkage */ if ( parser_get_pdata( pd_vcond, "or", &pd_bind ) ) { vconds[i].sub_or_count = pd_bind->entries->count; /* create subconditions */ vconds[i].subconds_or = calloc( vconds[i].sub_or_count, sizeof( VSubCond ) ); list_reset( pd_bind->entries ); j = 0; while ( ( pd_vsubcond = list_next( pd_bind->entries ) ) ) { /* get subconds */ if ( STRCMP( pd_vsubcond->name, "control_all_hexes" ) ) { vconds[i].subconds_or[j].type = VSUBCOND_CTRL_ALL_HEXES; if ( !parser_get_value( pd_vsubcond, "player", &str, 0 ) ) goto parser_failure; vconds[i].subconds_or[j].player = player_get_by_id( str ); } else if ( STRCMP( pd_vsubcond->name, "control_hex" ) ) { vconds[i].subconds_or[j].type = VSUBCOND_CTRL_HEX; if ( !parser_get_value( pd_vsubcond, "player", &str, 0 ) ) goto parser_failure; vconds[i].subconds_or[j].player = player_get_by_id( str ); if ( !parser_get_int( pd_vsubcond, "x", &vconds[i].subconds_or[j].x ) ) goto parser_failure; if ( !parser_get_int( pd_vsubcond, "y", &vconds[i].subconds_or[j].y ) ) goto parser_failure; } else if ( STRCMP( pd_vsubcond->name, "turns_left" ) ) { vconds[i].subconds_or[j].type = VSUBCOND_TURNS_LEFT; if ( !parser_get_int( pd_vsubcond, "count", &vconds[i].subconds_or[j].count ) ) goto parser_failure; } else if ( STRCMP( pd_vsubcond->name, "control_hex_num" ) ) { vconds[i].subconds_or[j].type = VSUBCOND_CTRL_HEX_NUM; if ( !parser_get_value( pd_vsubcond, "player", &str, 0 ) ) goto parser_failure; vconds[i].subconds_or[j].player = player_get_by_id( str ); if ( !parser_get_int( pd_vsubcond, "count", &vconds[i].subconds_or[j].count ) ) goto parser_failure; } else if ( STRCMP( pd_vsubcond->name, "units_killed" ) ) { vconds[i].subconds_or[j].type = VSUBCOND_UNITS_KILLED; if ( !parser_get_value( pd_vsubcond, "player", &str, 0 ) ) goto parser_failure; vconds[i].subconds_or[j].player = player_get_by_id( str ); if ( !parser_get_value( pd_vsubcond, "tag", &str, 0 ) ) goto parser_failure; strcpy_lt( vconds[i].subconds_or[j].tag, str, 31 ); } else if ( STRCMP( pd_vsubcond->name, "units_saved" ) ) { vconds[i].subconds_or[j].type = VSUBCOND_UNITS_SAVED; if ( !parser_get_value( pd_vsubcond, "player", &str, 0 ) ) goto parser_failure; vconds[i].subconds_or[j].player = player_get_by_id( str ); if ( !parser_get_value( pd_vsubcond, "tag", &str, 0 ) ) goto parser_failure; strcpy_lt( vconds[i].subconds_or[j].tag, str, 31 ); vconds[i].subconds_or[j].count = 0; /* units will be counted */ } j++; } } /* no sub conditions at all? */ if ( vconds[i].sub_and_count == 0 && vconds[i].sub_or_count == 0 ) { fprintf( stderr, tr("No subconditions specified!\n") ); goto failure; } /* next condition */ i++; } } /* else condition (used if no other condition is fullfilled and scenario ends) */ strcpy( vconds[0].result, "defeat" ); strcpy( vconds[0].message, tr("Defeat") ); if ( parser_get_pdata( pd, "result/else", &pd_vcond ) ) { if ( parser_get_value( pd_vcond, "result", &str, 0 ) ) strcpy_lt( vconds[0].result, str, 63 ); if ( parser_get_value( pd_vcond, "message", &str, 0 ) ) strcpy_lt( vconds[0].message, trd(domain, str), 127 ); } /* units */ sprintf( log_str, tr("Loading Units") ); write_line( sdl.screen, log_font, log_str, log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); units = list_create( LIST_AUTO_DELETE, unit_delete ); reinf = list_create( LIST_AUTO_DELETE, unit_delete ); avail_units = list_create( LIST_AUTO_DELETE, unit_delete ); vis_units = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); if ( core_transfer_allowed() ) unit_ref += scen_load_core_units(); /* transfer old units */ if ( !parser_get_entries( pd, "units", &entries ) ) goto parser_failure; list_reset( entries ); while ( ( sub = list_next( entries ) ) ) { /* unit type */ if ( !parser_get_value( sub, "id", &str, 0 ) ) goto parser_failure; if ( ( unit_prop = unit_lib_find( str ) ) == 0 ) { fprintf( stderr, tr("%s: unit entry not found\n"), str ); goto failure; } memset( &unit_base, 0, sizeof( Unit ) ); /* nation & player */ if ( !parser_get_value( sub, "nation", &str, 0 ) ) goto parser_failure; if ( ( unit_base.nation = nation_find( str ) ) == 0 ) { fprintf( stderr, tr("%s: not a nation\n"), str ); goto failure; } if ( ( unit_base.player = player_get_by_nation( unit_base.nation ) ) == 0 ) { fprintf( stderr, tr("%s: no player controls this nation\n"), unit_base.nation->name ); goto failure; } /* core flag (if not set/found: auxiliary unit) */ if (camp_loaded) parser_get_int( sub, "core", &unit_base.core ); else unit_base.core = 0; /* no core stuff in single scenario */ /* name */ if ( !parser_get_value( sub, "name", &str,0) ) unit_set_generic_name( &unit_base, unit_ref + 1, unit_prop->name ); else strcpy_lt( unit_base.name, str, 31 ); /* delay */ unit_delayed = parser_get_int( sub, "delay", &unit_base.delay ); /* position */ if ( !parser_get_int( sub, "x", &unit_base.x ) && !unit_delayed ) goto parser_failure; if ( !parser_get_int( sub, "y", &unit_base.y ) && !unit_delayed ) goto parser_failure; if ( !unit_delayed && ( unit_base.x <= 0 || unit_base.y <= 0 || unit_base.x >= map_w - 1 || unit_base.y >= map_h - 1 ) ) { fprintf( stderr, tr("%s: out of map: ignored\n"), unit_base.name ); continue; } /* strength, entrenchment, experience */ if ( !parser_get_int( sub, "str", &unit_base.str ) ) goto parser_failure; if ( !parser_get_int( sub, "entr", &unit_base.entr ) ) goto parser_failure; if ( !parser_get_int( sub, "exp", &unit_base.exp_level ) ) goto parser_failure; /* transporter */ trsp_prop = 0; if ( parser_get_value( sub, "trsp", &str, 0 ) && !STRCMP( str, "none" ) ) trsp_prop = unit_lib_find( str ); /* orientation */ unit_base.orient = unit_base.player->orient; /* tag if set */ unit_base.tag[0] = 0; if ( parser_get_value( sub, "tag", &str, 0 ) ) { strcpy_lt( unit_base.tag, str, 31 ); /* check all subconds for UNITS_SAVED and increase the counter if this unit is allied */ for ( i = 1; i < vcond_count; i++ ) { for ( j = 0; j < vconds[i].sub_and_count; j++ ) if ( vconds[i].subconds_and[j].type == VSUBCOND_UNITS_SAVED ) if ( STRCMP( unit_base.tag, vconds[i].subconds_and[j].tag ) ) vconds[i].subconds_and[j].count++; for ( j = 0; j < vconds[i].sub_or_count; j++ ) if ( vconds[i].subconds_or[j].type == VSUBCOND_UNITS_SAVED ) if ( STRCMP( unit_base.tag, vconds[i].subconds_or[j].tag ) ) vconds[i].subconds_or[j].count++; } } /* actual unit */ unit = unit_create( unit_prop, trsp_prop, &unit_base ); /* put unit to active or reinforcements list */ //not so fast if ( unit->core != 1 || ( !core_transfer_allowed() ) ) { //if unit is core, and we have if ( !unit_delayed ) { //to transfer forces, we shouldn't list_add( units, unit );//put them. Exception: unit->core=2 /* add unit to map */ map_insert_unit( unit ); } else if (!config.purchase) /* no fixed reinfs with purchase enabled */ list_add( reinf, unit ); /* adjust transporter count */ if ( unit->embark == EMBARK_SEA ) { unit->player->sea_trsp_count++; unit->player->sea_trsp_used++; } else if ( unit->embark == EMBARK_AIR ) { unit->player->air_trsp_count++; unit->player->air_trsp_used++; } unit_ref++; } } /* load deployment hexes */ if ( parser_get_entries( pd, "deployfields", &entries ) ) { list_reset( entries ); while ( ( sub = list_next( entries ) ) ) { Player *pl; int plidx; if ( !parser_get_value( sub, "id", &str, 0 ) ) goto parser_failure; pl = player_get_by_id( str ); if ( !pl ) goto parser_failure; plidx = player_get_index( pl ); if ( parser_get_values( sub, "coordinates", &values ) && values->count>0 ) { list_reset( values ); while ( ( lib = list_next( values ) ) ) { if (!strcmp(lib,"default")) { x=-1; y=-1; } else if (!strcmp(lib,"none")) { pl->no_init_deploy = 1; continue; } else get_coord( lib, &x, &y ); map_set_deploy_field( x, y, plidx ); } } } } parser_free( &pd ); casualties = calloc( scen_info->player_count * unit_class_count, sizeof casualties[0] ); deploy_turn = config.deploy_turn; /* check which nations may do purchase for this scenario */ update_nations_purchase_flag(); return 1; parser_failure: fprintf( stderr, "%s\n", parser_get_error() ); failure: terrain_delete(); scen_delete(); if ( player ) player_delete( player ); if ( pd ) parser_free( &pd ); return 0; } /* ==================================================================== Load a scenario description. ==================================================================== */ char* scen_load_info( const char *fname ) { PData *pd, *sub; char path[512]; List *entries; char *name, *desc, *turns, count[4], *str; char *info = 0; char *domain = 0; int i; sprintf( path, "%s/scenarios/%s", get_gamedir(), fname ); if ( ( pd = parser_read_file( fname, path ) ) == 0 ) goto parser_failure; /* title and description */ domain = determine_domain(pd, fname); locale_load_domain(domain, 0/*FIXME*/); if ( !parser_get_value( pd, "name", &name, 0 ) ) goto parser_failure; name = (char *)trd(domain, name); if ( !parser_get_value( pd, "desc", &desc, 0 ) ) goto parser_failure; desc = (char *)trd(domain, desc); if ( !parser_get_entries( pd, "players", &entries ) ) goto parser_failure; if ( !parser_get_value( pd, "turns", &turns, 0 ) ) goto parser_failure; sprintf( count, "%i", entries->count ); if ( ( info = calloc( strlen( name ) + strlen( desc ) + strlen( count ) + strlen( turns ) + 30, sizeof( char ) ) ) == 0 ) { fprintf( stderr, tr("Out of memory\n") ); goto failure; } sprintf( info, tr("%s##%s##%s Turns#%s Players"), name, desc, turns, count ); /* set setup */ scen_clear_setup(); strcpy( setup.fname, fname ); setup.player_count = entries->count; setup.ctrl = calloc( setup.player_count, sizeof( int ) ); setup.names = calloc( setup.player_count, sizeof( char* ) ); setup.modules = calloc( setup.player_count, sizeof( char* ) ); /* load the player ctrls */ list_reset( entries ); i = 0; while ( ( sub = list_next( entries ) ) ) { if ( !parser_get_value( sub, "name", &str, 0 ) ) goto parser_failure; setup.names[i] = strdup(trd(domain, str)); if ( !parser_get_value( sub, "control", &str, 0 ) ) goto parser_failure; if ( STRCMP( str, "cpu" ) ) setup.ctrl[i] = PLAYER_CTRL_CPU; else setup.ctrl[i] = PLAYER_CTRL_HUMAN; if ( !parser_get_string( sub, "ai_module", &setup.modules[i] ) ) setup.modules[i] = strdup( "default" ); i++; } parser_free( &pd ); free(domain); return info; parser_failure: fprintf( stderr, "%s\n", parser_get_error() ); failure: if ( pd ) parser_free( &pd ); if ( info ) free( info ); free(domain); return 0; } /* ==================================================================== Fill the scenario part in 'setup' with the loaded player information. ==================================================================== */ void scen_set_setup() { int i; Player *player; scen_clear_setup(); setup.player_count = players->count; setup.ctrl = calloc( setup.player_count, sizeof( int ) ); setup.names = calloc( setup.player_count, sizeof( char* ) ); setup.modules = calloc( setup.player_count, sizeof( char* ) ); list_reset( players ); for ( i = 0; i < setup.player_count; i++ ) { player = list_next( players ); setup.ctrl[i] = player->ctrl; setup.names[i] = strdup( player->name ); setup.modules[i] = strdup( player->ai_fname ); } } /* ==================================================================== Clear the pointers in 'setup' which were loaded by scen_load_info() ==================================================================== */ void scen_clear_setup() { int i; if ( setup.ctrl ) { free( setup.ctrl ); setup.ctrl = 0; } if ( setup.names ) { for ( i = 0; i < setup.player_count; i++ ) if ( setup.names[i] ) free( setup.names[i] ); free( setup.names ); setup.names = 0; } if ( setup.modules ) { for ( i = 0; i < setup.player_count; i++ ) if ( setup.modules[i] ) free( setup.modules[i] ); free( setup.modules ); setup.modules = 0; } setup.player_count = 0; } /* ==================================================================== Delete scenario ==================================================================== */ void scen_delete() { int i; #if 0 int j; printf( "Casualties:\n" ); for (i = 0; casualties && i < scen_info->player_count; i++) { printf( "%s Side\n", player_get_by_index(i)->name ); for (j = 0; j < unit_class_count; j++) printf( "%d\t%s\n", scen_get_casualties( i, j ), unit_classes[j].name ); } #endif free( casualties ); casualties = 0; turn = 0; cur_weather = 0; if ( scen_info ) { if ( scen_info->fname ) free( scen_info->fname ); if ( scen_info->name ) free( scen_info->name ); if ( scen_info->desc ) free( scen_info->desc ); if ( scen_info->authors ) free( scen_info->authors ); free( scen_info ); scen_info = 0; } if ( weather ) { free( weather ); weather = 0; } if ( vconds ) { for ( i = 0; i < vcond_count; i++ ) { if ( vconds[i].subconds_and ) free( vconds[i].subconds_and ); if ( vconds[i].subconds_or ) free( vconds[i].subconds_or ); } free( vconds ); vconds = 0; vcond_count = 0; } if ( units ) { list_delete( units ); units = 0; } if ( vis_units ) { list_delete( vis_units ); vis_units = 0; } if ( avail_units ) { list_delete( avail_units ); avail_units = 0; } if ( reinf ) { list_delete( reinf ); reinf = 0; } nations_delete(); unit_lib_delete(); players_delete(); map_delete(); free(scen_domain); scen_domain = 0; } /* ==================================================================== Set the current attack and movement. If SCEN_PREP_UNIT_FIRST is passed the entrenchment is not modified. Units are neither supplied or killed here! ==================================================================== */ void scen_prep_unit( Unit *unit, int type ) { int min_entr, max_entr; /* unit may not be undeployed */ unit->fresh_deploy = 0; /* remove turn suppression */ unit->turn_suppr = 0; /* allow actions */ unit->unused = 1; unit->cur_mov = unit->sel_prop->mov; if ( unit_check_ground_trsp( unit ) ) unit->cur_mov = unit->trsp_prop.mov; /* if we have bad weather the relation between mov : fuel is 1 : 2 * for ground units */ if ( !(unit->sel_prop->flags & SWIMMING) && !(unit->sel_prop->flags & FLYING) && (weather_types[scen_get_weather()].flags & DOUBLE_FUEL_COST) ) { if ( unit_check_fuel_usage( unit ) && unit->cur_fuel < unit->cur_mov * 2 ) unit->cur_mov = unit->cur_fuel / 2; } else if ( unit_check_fuel_usage( unit ) && unit->cur_fuel < unit->cur_mov ) unit->cur_mov = unit->cur_fuel; unit_unmount( unit ); unit->cur_atk_count = unit->sel_prop->atk_count; /* if unit is preparded normally check entrenchment */ if ( type == SCEN_PREP_UNIT_NORMAL && !(unit->sel_prop->flags & FLYING) ) { min_entr = map_tile( unit->x, unit->y )->terrain->min_entr; max_entr = map_tile( unit->x,unit->y )->terrain->max_entr; if ( unit->entr < min_entr ) unit->entr = min_entr; else if ( unit->entr < max_entr ) unit->entr++; } } /* ==================================================================== Check if the victory conditions are fullfilled and if so return True. 'result' is used then to determine the next scenario in the campaign. If 'after_last_turn' is set this is the check called by end_turn(). If no condition is fullfilled the else condition is used (very first one). ==================================================================== */ int scen_check_result( int after_last_turn ) { int i, j, and_okay, or_okay; #if DEBUG_CAMPAIGN char fname[512]; FILE *f; snprintf(fname, sizeof fname, "%s/.lgames/.scenresult", getenv("HOME")); f = fopen(fname, "rb"); if (f) { unsigned len; scen_result[0] = '\0'; if (!fgets(scen_result, sizeof scen_result, f)) /* do nothing as scen_result is simply empty then */; fclose(f); len = strlen(scen_result); if (len > 0 && scen_result[len-1] == '\n') scen_result[len-1] = '\0'; strcpy(scen_message, scen_result); if (len > 0) return 1; } #endif if ( vcond_check_type == VCOND_CHECK_EVERY_TURN || after_last_turn ) { for ( i = 1; i < vcond_count; i++ ) { /* AND binding */ and_okay = 1; for ( j = 0; j < vconds[i].sub_and_count; j++ ) if ( !subcond_check( &vconds[i].subconds_and[j] ) ) { and_okay = 0; break; } /* OR binding */ or_okay = 0; for ( j = 0; j < vconds[i].sub_or_count; j++ ) if ( subcond_check( &vconds[i].subconds_or[j] ) ) { or_okay = 1; break; } if ( vconds[i].sub_or_count == 0 ) or_okay = 1; if ( or_okay && and_okay ) { strcpy( scen_result, vconds[i].result ); strcpy( scen_message, vconds[i].message ); return 1; } } } if ( after_last_turn ) { strcpy( scen_result, vconds[0].result ); strcpy( scen_message, vconds[0].message ); return 1; } return 0; } /* ==================================================================== Return True if scenario is done. ==================================================================== */ int scen_done() { return scen_result[0] != 0; } /* ==================================================================== Return result string. ==================================================================== */ char *scen_get_result() { return scen_result; } /* ==================================================================== Return result message ==================================================================== */ char *scen_get_result_message() { return scen_message; } /* ==================================================================== Clear result and message ==================================================================== */ void scen_clear_result() { scen_result[0] = 0; scen_message[0] = 0; } /* ==================================================================== Check the supply level of a unit. (hex tiles with SUPPLY_GROUND have 100% supply) ==================================================================== */ void scen_adjust_unit_supply_level( Unit *unit ) { unit->supply_level = map_get_unit_supply_level( unit->x, unit->y, unit ); } /* ==================================================================== Get current weather/forecast ==================================================================== */ int scen_get_weather( void ) { if ( turn < scen_info->turn_limit && config.weather ) return weather[turn]; else return 0; } int scen_get_forecast( void ) { if ( turn + 1 < scen_info->turn_limit ) return weather[turn + 1]; else return 0; } /* ==================================================================== Get date string of current date. ==================================================================== */ void scen_get_date( char *date_str ) { int hour; int phase; char buf[256]; Date date = scen_info->start_date; if ( scen_info->days_per_turn > 0 ) { date_add_days( &date, scen_info->days_per_turn * turn ); date_to_str( date_str, date, FULL_NAME_DATE ); } else { date_add_days( &date, turn / scen_info->turns_per_day ); date_to_str( buf, date, FULL_NAME_DATE ); phase = turn % scen_info->turns_per_day; hour = 8 + phase * 6; sprintf( date_str, "%s %02i:00", buf, hour ); } } /* ==================================================================== Get/Add casualties for unit class and player. ==================================================================== */ int scen_get_casualties( int player, int class ) { if (!casualties || player < 0 || player >= scen_info->player_count || class < 0 || class >= unit_class_count) return 0; return casualties[player*unit_class_count + class]; } int scen_inc_casualties( int player, int class ) { if (!casualties || player < 0 || player >= scen_info->player_count || class < 0 || class >= unit_class_count) return 0; return ++casualties[player*unit_class_count + class]; } /* ==================================================================== Add casualties for unit. Regard unit and transport classes. ==================================================================== */ int scen_inc_casualties_for_unit( Unit *unit ) { int player = player_get_index( unit->player ); int cnt = scen_inc_casualties( player, unit->prop.class ); if ( unit->trsp_prop.id ) cnt = scen_inc_casualties( player, unit->trsp_prop.class ); return cnt; } /* ==================================================================== Add core units to list that will be used in next scenario. Return unit quantity. ==================================================================== */ int scen_save_core_units( ) { int n_units = 0; //how many units we saved? Unit * current; transferredUnitProp * cur; //local copy of unit parameters /* save file name for restricted core transfers */ #ifdef DEBUG_CORETRANSFER printf("saving core units for %s\n", scen_info->fname); #endif if (prev_scen_fname) free(prev_scen_fname); prev_scen_fname = strdup(scen_info->fname); if ( !prev_scen_core_units && units ) prev_scen_core_units = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); else if (prev_scen_core_units) list_clear(prev_scen_core_units); if ( units ) if ( !list_empty( units ) ) { current = list_first( units ); do //don't transfer killed units if ( current->core && !current->killed ) { cur = unit_create_transfer_props( current ); list_add( prev_scen_core_units, cur); n_units++; } while( (current = list_next( units )) ); } if ( reinf ) if ( !list_empty( reinf ) ) { current = list_first( reinf ); do if ( current->core ) { cur = unit_create_transfer_props( current ); list_add( prev_scen_core_units, cur); n_units++; } while( (current = list_next( reinf )) ); } if ( avail_units ) if ( !list_empty( avail_units ) ) { current = list_first( avail_units ); do if ( current->core ) { cur = unit_create_transfer_props( current ); list_add( prev_scen_core_units, cur); n_units++; } while( (current = list_next( avail_units )) ); } #ifdef DEBUG_CORETRANSFER printf("saved %d core units\n", n_units); #endif return n_units; } /* ==================================================================== Load core units from list. Return unit quantity. ==================================================================== */ int scen_load_core_units() { int n_units = 0; transferredUnitProp * current; Unit_Lib_Entry *unit_prop=0, *trsp_prop = 0; Unit unit_base; Unit * unit; if ( prev_scen_core_units && !list_empty( prev_scen_core_units ) ) { list_reset( prev_scen_core_units ); current = list_first( prev_scen_core_units ); do { /* fix all pointers and icon settings in properties */ unit_prop = unit_lib_find( current->prop_id ); current->prop.id = unit_prop->id; current->prop.name = unit_prop->name; current->prop.icon = unit_prop->icon; current->prop.icon_tiny = unit_prop->icon_tiny; current->prop.icon_type = unit_prop->icon_type; current->prop.icon_w = unit_prop->icon_w; current->prop.icon_h = unit_prop->icon_h; current->prop.icon_tiny_w = unit_prop->icon_tiny_w; current->prop.icon_tiny_h = unit_prop->icon_tiny_h; #ifdef WITH_SOUND current->prop.wav_alloc = unit_prop->wav_alloc; current->prop.wav_move = unit_prop->wav_move; #endif trsp_prop = unit_lib_find( current->trsp_prop_id ); if (trsp_prop) { current->trsp_prop.id = trsp_prop->id; current->trsp_prop.name = trsp_prop->name; current->trsp_prop.icon = trsp_prop->icon; current->trsp_prop.icon_tiny = trsp_prop->icon_tiny; current->trsp_prop.icon_type = trsp_prop->icon_type; current->trsp_prop.icon_w = trsp_prop->icon_w; current->trsp_prop.icon_h = trsp_prop->icon_h; current->trsp_prop.icon_tiny_w = trsp_prop->icon_tiny_w; current->trsp_prop.icon_tiny_h = trsp_prop->icon_tiny_h; #ifdef WITH_SOUND current->trsp_prop.wav_alloc = trsp_prop->wav_alloc; current->trsp_prop.wav_move = trsp_prop->wav_move; #endif } /* create unit base */ memset( &unit_base, 0, sizeof( Unit ) ); strcpy_lt( unit_base.name, current->name, 20 ); unit_base.core = 1; unit_base.player = player_get_by_id( current->player_id ); unit_base.nation = nation_find( current->nation_id ); unit_base.str = current->str; unit_base.orient = unit_base.player->orient; strcpy_lt( unit_base.tag, current->tag, 31 ); /* create unit */ unit_prop = ¤t->prop; if (trsp_prop) trsp_prop = ¤t->trsp_prop; unit = unit_create( unit_prop, trsp_prop, &unit_base ); /* set experience */ unit_add_exp(unit, current->exp); /* add to reinforcements */ list_add( reinf, unit ); n_units++; } while ( (current = list_next( prev_scen_core_units )) ); } #ifdef DEBUG_CORETRANSFER printf("loaded %d core units\n", n_units); #endif return n_units; } lgeneral-1.3.1/src/list.c0000664000175000017500000003037612140770455012154 00000000000000/*************************************************************************** list.c - description ------------------- begin : Sun Sep 2 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include "list.h" /* ==================================================================== Create a new list auto_delete: Free memory of data pointer when deleting entry callback: Use this callback to free memory of data including the data pointer itself. Return Value: List pointer ==================================================================== */ List *list_create( int auto_delete, void (*callback)(void*) ) { List *list = calloc( 1, sizeof( List ) ); list->head.next = &list->tail; list->head.prev = &list->head; list->tail.next = &list->tail; list->tail.prev = &list->head; list->auto_delete = auto_delete; list->callback = callback; list->cur_entry = &list->head; return list; } /* ==================================================================== Delete list and entries. ==================================================================== */ void list_delete( List *list ) { list_clear( list ); free( list ); } /* ==================================================================== Delete all entries but keep the list. Reset current_entry to head pointer. ==================================================================== */ void list_clear( List *list ) { while( !list_empty( list ) ) list_delete_pos( list, 0 ); } /* ==================================================================== Insert new item at position. Return Value: True if successful else False. ==================================================================== */ int list_insert( List *list, void *item, int pos ) { int i; List_Entry *cur = &list->head; List_Entry *new_entry = 0; /* check if insertion possible */ if ( pos < 0 || pos > list->count ) return 0; if ( item == 0 ) return 0; /* get to previous entry */ for (i = 0; i < pos; i++) cur = cur->next; /* create and anchor new entry */ new_entry = calloc( 1, sizeof( List_Entry ) ); new_entry->item = item; new_entry->next = cur->next; new_entry->prev = cur; cur->next->prev = new_entry; cur->next = new_entry; list->count++; return 1; } /* ==================================================================== Add new item at the end of the list. ==================================================================== */ int list_add( List *list, void *item ) { List_Entry *new_entry = 0; /* check if insertion possible */ if ( item == 0 ) return 0; /* create and anchor new entry */ new_entry = calloc( 1, sizeof( List_Entry ) ); new_entry->item = item; new_entry->next = &list->tail; new_entry->prev = list->tail.prev; list->tail.prev->next = new_entry; list->tail.prev = new_entry; list->count++; return 1; } /* ==================================================================== Delete item at position. If this was the current entry update current_entry to valid previous pointer. Return Value: True if successful else False. ==================================================================== */ int list_delete_pos( List *list, int pos ) { int i; List_Entry *cur = &list->head; /* check if deletion possbile */ if ( list_empty( list ) ) return 0; if ( pos < 0 || pos >= list->count ) return 0; /* get to correct entry */ for ( i = 0; i <= pos; i++ ) cur = cur->next; /* modify anchors */ cur->next->prev = cur->prev; cur->prev->next = cur->next; /* decrease counter */ list->count--; /* check current_entry */ if ( list->cur_entry == cur ) list->cur_entry = list->cur_entry->prev; /* free memory */ if ( list->auto_delete ) { if ( list->callback ) (list->callback)( cur->item ); else free( cur->item ); } free( cur ); return 1; } /* ==================================================================== Delete item if in list. If this was the current entry update current_entry to valid previous pointer. Return Value: True if successful else False. ==================================================================== */ int list_delete_item( List *list, void *item ) { return list->cur_entry->item == item ? list_delete_current( list ) : list_delete_pos( list, list_check( list, item ) ); } /* ==================================================================== Delete entry. Return Value: True if successful else False. ==================================================================== */ int list_delete_entry( List *list, List_Entry *entry ) { /* delete possible? */ if ( entry == 0 ) return 0; if ( list->count == 0 ) return 0; if ( entry == &list->head || entry == &list->tail ) return 0; /* adjust anchor and counter */ entry->prev->next = entry->next; entry->next->prev = entry->prev; list->count--; /* check current_entry */ if ( list->cur_entry == entry ) list->cur_entry = list->cur_entry->prev; /* free memory */ if ( list->auto_delete ) { if ( list->callback ) (list->callback)( entry->item ); else free( entry->item ); } free( entry ); return 1; } /* ==================================================================== Get item from position if in list. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_get( List *list, int pos ) { int i; List_Entry *cur = &list->head; if ( pos < 0 || pos >= list->count ) return 0; for ( i = 0; i <= pos; i++ ) cur = cur->next; return cur->item; } /* ==================================================================== Check if item's in list. Return Value: Position of item else -1. ==================================================================== */ int list_check( List *list, void *item ) { int pos = -1; List_Entry *cur = list->head.next; while ( cur != &list->tail ) { pos++; if ( cur->item == item ) return pos; cur = cur->next; } return -1; } /* ==================================================================== Return first item stored in list and set current_entry to this entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_first( List *list ) { list->cur_entry = list->head.next; return list->head.next->item; } /* ==================================================================== Return last item stored in list and set current_entry to this entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_last( List *list ) { list->cur_entry = list->tail.prev; return list->tail.prev->item; } /* ==================================================================== Return item in current_entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_current( List *list ) { return list->cur_entry->item; } /* ==================================================================== Return an iterator to the list. ==================================================================== */ ListIterator list_iterator( List *list ) { ListIterator it = { list, &list->head }; return it; } /* ==================================================================== Reset current_entry to head of list. ==================================================================== */ void list_reset( List *list ) { list->cur_entry = &list->head; } /* ==================================================================== Get next item and update current_entry (reset if tail reached) Return Value: Item pointer if found else Null (if tail of list). ==================================================================== */ void* list_next( List *list ) { list->cur_entry = list->cur_entry->next; if ( list->cur_entry == &list->tail ) list_reset( list ); return list->cur_entry->item; } /* ==================================================================== Get previous item and update current_entry. Return Value: Item pointer if found else Null (if head of list). ==================================================================== */ void* list_prev( List *list ) { list->cur_entry = list->cur_entry->prev; return list->cur_entry->item; } /* ==================================================================== Delete the current entry if not tail or head. This is the entry that contains the last returned item by list_next/prev(). Return Value: True if it was a valid deleteable entry. ==================================================================== */ int list_delete_current( List *list ) { if ( list->cur_entry == 0 || list->cur_entry == &list->head || list->cur_entry == &list->tail ) return 0; list_delete_entry( list, list->cur_entry ); return 1; } /* ==================================================================== Check if list is empty. Return Value: True if list counter is 0 else False. ==================================================================== */ int list_empty( List *list ) { return list->count == 0; } /* ==================================================================== Return entry containing the passed item. Return Value: True if entry found else False. ==================================================================== */ List_Entry *list_entry( List *list, void *item ) { List_Entry *entry = list->head.next; while ( entry != &list->tail ) { if ( entry->item == item ) return entry; entry = entry->next; } return 0; } /* ==================================================================== Transfer an entry from one list to another list by removing from 'source' and adding to 'dest' thus if source does not contain the item this is equvalent to list_add( dest, item ). ==================================================================== */ void list_transfer( List *source, List *dest, void *item ) { int old_auto_flag; /* add to destination */ list_add( dest, item ); /* as the pointer is added to dest without changes only the empty entry must be deleted in source */ old_auto_flag = source->auto_delete; source->auto_delete = LIST_NO_AUTO_DELETE; list_delete_item( source, item ); source->auto_delete = old_auto_flag; } /* ==================================================================== Deqeue the first list entry. (must not use auto_delete therefore) ==================================================================== */ void *list_dequeue( List *list ) { void *item; if ( list->count > 0 ) { item = list->head.next->item; list_delete_pos( list, 0 ); return item; } else return 0; } /* ==================================================================== Returns the current element and increments the iterator. ==================================================================== */ void *list_iterator_next( ListIterator *it ) { return (it->cur_entry = it->cur_entry->next)->item; } /* ==================================================================== Checks whether there are more items in the list. ==================================================================== */ int list_iterator_has_next( ListIterator *it ) { return it->cur_entry != &it->l->tail; } lgeneral-1.3.1/src/action.c0000664000175000017500000001717712461201622012451 00000000000000/*************************************************************************** action.c - description ------------------- begin : Mon Apr 1 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "lgeneral.h" #include "unit.h" #include "action.h" static List *actions = 0; /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Create basic action. ==================================================================== */ static Action *action_create( int type ) { Action *action = calloc( 1, sizeof( Action ) ); action->type = type; return action; } /* ==================================================================== Queue an action. ==================================================================== */ static void action_queue( Action *action ) { list_add( actions, action ); } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== Create/delete engine action queue ==================================================================== */ void actions_create() { actions_delete(); actions = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); } void actions_delete() { if ( actions ) { actions_clear(); list_delete( actions ); actions = 0; } } /* ==================================================================== Get next action or clear all actions. The returned action struct must be cleared by engine after usage. ==================================================================== */ Action* actions_dequeue() { return list_dequeue( actions ); } void actions_clear() { Action *action = 0; while ( ( action = list_dequeue( actions ) ) ) free( action ); } /* ==================================================================== Returns topmost action in queue or 0 if none available. ==================================================================== */ Action *actions_top(void) { return list_last( actions ); } /* ==================================================================== Remove the last action in queue (cancelled confirmation) ==================================================================== */ void action_remove_last() { Action *action = 0; if ( actions->count == 0 ) return; action = list_last( actions ); list_delete_item( actions, action ); free( action ); } /* ==================================================================== Get number of queued actions ==================================================================== */ int actions_count() { return actions->count; } /* ==================================================================== Create an engine action and automatically queue it. The engine will perform security checks before handling an action to prevent illegal actions. ==================================================================== */ void action_queue_none() { Action *action = action_create( ACTION_NONE ); action_queue( action ); } void action_queue_end_turn() { Action *action = action_create( ACTION_END_TURN ); action_queue( action ); } void action_queue_move( Unit *unit, int x, int y ) { Action *action = action_create( ACTION_MOVE ); action->unit = unit; action->x = x; action->y = y; action_queue( action ); } void action_queue_attack( Unit *unit, Unit *target ) { Action *action = action_create( ACTION_ATTACK ); action->unit = unit; action->target = target; action_queue( action ); } void action_queue_strategic_attack( Unit *unit) { Action *action = action_create( ACTION_STRATEGIC_ATTACK ); action->unit = unit; action_queue( action ); } void action_queue_supply( Unit *unit ) { Action *action = action_create( ACTION_SUPPLY ); action->unit = unit; action_queue( action ); } void action_queue_embark_sea( Unit *unit, int x, int y ) { Action *action = action_create( ACTION_EMBARK_SEA ); action->unit = unit; action->x = x; action->y = y; action_queue( action ); } void action_queue_debark_sea( Unit *unit, int x, int y ) { Action *action = action_create( ACTION_DEBARK_SEA ); action->unit = unit; action->x = x; action->y = y; action_queue( action ); } void action_queue_embark_air( Unit *unit, int x, int y ) { Action *action = action_create( ACTION_EMBARK_AIR ); action->unit = unit; action->x = x; action->y = y; action_queue( action ); } void action_queue_debark_air( Unit *unit, int x, int y, int normal_landing ) { Action *action = action_create( ACTION_DEBARK_AIR ); action->unit = unit; action->x = x; action->y = y; action->id = normal_landing; action_queue( action ); } void action_queue_merge( Unit *unit, Unit *partner ) { Action *action = action_create( ACTION_MERGE ); action->unit = unit; action->target = partner; action_queue( action ); } void action_queue_split( Unit *unit, int str, int x, int y, Unit *partner ) { Action *action = action_create( ACTION_SPLIT ); action->unit = unit; action->target = partner; action->x = x; action->y = y; action->str = str; action_queue( action ); } void action_queue_disband( Unit *unit ) { Action *action = action_create( ACTION_DISBAND ); action->unit = unit; action_queue( action ); } void action_queue_deploy( Unit *unit, int x, int y ) { Action *action = action_create( ACTION_DEPLOY ); action->unit = unit; action->x = x; action->y = y; action_queue( action ); } void action_queue_draw_map() { Action *action = action_create( ACTION_DRAW_MAP ); action_queue( action ); } void action_queue_set_spot_mask() { Action *action = action_create( ACTION_SET_SPOT_MASK ); action_queue( action ); } void action_queue_set_vmode( int w, int h, int fullscreen ) { Action *action = action_create( ACTION_SET_VMODE ); action->w = w; action->h = h; action->full = fullscreen; action_queue( action ); } void action_queue_quit() { Action *action = action_create( ACTION_QUIT ); action_queue( action ); } void action_queue_restart() { Action *action = action_create( ACTION_RESTART ); action_queue( action ); } void action_queue_load( int id ) { Action *action = action_create( ACTION_LOAD ); action->id = id; action_queue( action ); } void action_queue_overwrite( int id ) { Action *action = action_create( ACTION_OVERWRITE ); action->id = id; action_queue( action ); } void action_queue_start_scen() { Action *action = action_create( ACTION_START_SCEN ); action_queue( action ); } void action_queue_start_camp() { Action *action = action_create( ACTION_START_CAMP ); action_queue( action ); } lgeneral-1.3.1/src/terrain.c0000664000175000017500000003612712140770455012645 00000000000000/*************************************************************************** terrain.c - description ------------------- begin : Wed Mar 17 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "lgeneral.h" #include "parser.h" #include "unit_lib.h" #include "terrain.h" #include "localize.h" /* ==================================================================== Externals ==================================================================== */ extern Sdl sdl; extern Mov_Type *mov_types; extern int mov_type_count; extern int log_x, log_y; extern Font *log_font; extern Config config; /* ==================================================================== Flag conversion table ==================================================================== */ StrToFlag fct_terrain[] = { { "no_air_attack", NO_AIR_ATTACK }, { "double_fuel_cost", DOUBLE_FUEL_COST }, { "supply_air", SUPPLY_AIR }, { "supply_ground", SUPPLY_GROUND }, { "supply_ships", SUPPLY_SHIPS }, { "river", RIVER }, { "no_spotting", NO_SPOTTING }, { "inf_close_def", INF_CLOSE_DEF }, { "cut_strength", CUT_STRENGTH }, { "bad_sight", BAD_SIGHT }, { "swamp", SWAMP }, { "X", 0} }; /* ==================================================================== Geometry of a hex tile ==================================================================== */ int hex_w, hex_h; int hex_x_offset, hex_y_offset; /* ==================================================================== Terrain types & co ==================================================================== */ Terrain_Type *terrain_types = 0; int terrain_type_count = 0; Weather_Type *weather_types = 0; int weather_type_count = 0; Terrain_Icons *terrain_icons = 0; /* ==================================================================== Load terrain types, weather information and hex tile icons. ==================================================================== */ int terrain_load( char *fname ) { int i, j, k; PData *pd, *sub, *subsub, *subsubsub; List *entries, *flags; char path[512]; char *flag, *str; char *domain = 0; int count; /* log info */ int log_dot_limit = 40; /* maximum of dots */ char log_str[128]; sprintf( path, "%s/maps/%s", get_gamedir(), fname ); if ( ( pd = parser_read_file( fname, path ) ) == 0 ) goto parser_failure; domain = determine_domain(pd, fname); locale_load_domain(domain, 0/*FIXME*/); /* get weather */ if ( !parser_get_entries( pd, "weather", &entries ) ) goto parser_failure; weather_type_count = entries->count; weather_types = calloc( weather_type_count, sizeof( Weather_Type ) ); list_reset( entries ); i = 0; while ( ( sub = list_next( entries ) ) ) { weather_types[i].id = strdup( sub->name ); if ( !parser_get_localized_string( sub, "name", domain, &weather_types[i].name ) ) goto parser_failure; if ( !parser_get_values( sub, "flags", &flags ) ) goto parser_failure; list_reset( flags ); while ( ( flag = list_next( flags ) ) ) weather_types[i].flags |= check_flag( flag, fct_terrain ); i++; } /* hex tile geometry */ if ( !parser_get_int( pd, "hex_width", &hex_w ) ) goto parser_failure; if ( !parser_get_int( pd, "hex_height", &hex_h ) ) goto parser_failure; if ( !parser_get_int( pd, "hex_x_offset", &hex_x_offset ) ) goto parser_failure; if ( !parser_get_int( pd, "hex_y_offset", &hex_y_offset ) ) goto parser_failure; /* terrain icons */ terrain_icons = calloc( 1, sizeof( Terrain_Icons ) ); if ( !parser_get_value( pd, "fog", &str, 0 ) ) goto parser_failure; sprintf( path, "terrain/%s", str ); if ( ( terrain_icons->fog = load_surf( path, SDL_SWSURFACE ) ) == 0 ) goto failure; if ( !parser_get_value( pd, "danger", &str, 0 ) ) goto parser_failure; sprintf( path, "terrain/%s", str ); if ( ( terrain_icons->danger = load_surf( path, SDL_SWSURFACE ) ) == 0 ) goto failure; if ( !parser_get_value( pd, "grid", &str, 0 ) ) goto parser_failure; sprintf( path, "terrain/%s", str ); if ( ( terrain_icons->grid = load_surf( path, SDL_SWSURFACE ) ) == 0 ) goto failure; if ( !parser_get_value( pd, "frame", &str, 0 ) ) goto parser_failure; sprintf( path, "terrain/%s", str ); if ( ( terrain_icons->select = load_surf( path, SDL_SWSURFACE ) ) == 0 ) goto failure; if ( !parser_get_value( pd, "crosshair", &str, 0 ) ) goto parser_failure; sprintf( path, "terrain/%s", str ); if ( ( terrain_icons->cross = anim_create( load_surf( path, SDL_SWSURFACE ), 1000/config.anim_speed, hex_w, hex_h, sdl.screen, 0, 0 ) ) == 0 ) goto failure; anim_hide( terrain_icons->cross, 1 ); if ( !parser_get_value( pd, "explosion", &str, 0 ) ) goto parser_failure; sprintf( path, "terrain/%s", str ); if ( ( terrain_icons->expl1 = anim_create( load_surf( path, SDL_SWSURFACE ), 50/config.anim_speed, hex_w, hex_h, sdl.screen, 0, 0 ) ) == 0 ) goto failure; anim_hide( terrain_icons->expl1, 1 ); if ( ( terrain_icons->expl2 = anim_create( load_surf( path, SDL_SWSURFACE ), 50/config.anim_speed, hex_w, hex_h, sdl.screen, 0, 0 ) ) == 0 ) goto failure; anim_hide( terrain_icons->expl2, 1 ); /* terrain sounds */ #ifdef WITH_SOUND if ( parser_get_value( pd, "explosion_sound", &str, 0 ) ) terrain_icons->wav_expl = wav_load( str, 2 ); if ( parser_get_value( pd, "select_sound", &str, 0 ) ) terrain_icons->wav_select = wav_load( str, 1 ); #endif /* terrain types */ if ( !parser_get_entries( pd, "terrain", &entries ) ) goto parser_failure; terrain_type_count = entries->count; terrain_types = calloc( terrain_type_count, sizeof( Terrain_Type ) ); list_reset( entries ); i = 0; while ( ( sub = list_next( entries ) ) ) { /* id */ terrain_types[i].id = sub->name[0]; /* name */ if ( !parser_get_localized_string( sub, "name", domain, &terrain_types[i].name ) ) goto parser_failure; /* each weather type got its own image -- if it's named 'default' we point towards the image of weather_type 0 */ terrain_types[i].images = calloc( weather_type_count, sizeof( SDL_Surface* ) ); for ( j = 0; j < weather_type_count; j++ ) { sprintf( path, "image/%s", weather_types[j].id ); if ( !parser_get_value( sub, path, &str, 0 ) ) goto parser_failure; if ( STRCMP( "default", str ) && j > 0 ) { /* just a pointer */ terrain_types[i].images[j] = terrain_types[i].images[0]; } else { sprintf( path, "terrain/%s", str ); if ( ( terrain_types[i].images[j] = load_surf( path, SDL_SWSURFACE ) ) == 0 ) goto parser_failure; SDL_SetColorKey( terrain_types[i].images[j], SDL_SRCCOLORKEY, get_pixel( terrain_types[i].images[j], 0, 0 ) ); } } /* fog image */ terrain_types[i].images_fogged = calloc( weather_type_count, sizeof( SDL_Surface* ) ); for ( j = 0; j < weather_type_count; j++ ) { if ( terrain_types[i].images[j] == terrain_types[i].images[0] && j > 0 ) { /* just a pointer */ terrain_types[i].images_fogged[j] = terrain_types[i].images_fogged[0]; } else { terrain_types[i].images_fogged[j] = create_surf( terrain_types[i].images[j]->w, terrain_types[i].images[j]->h, SDL_SWSURFACE ); FULL_DEST( terrain_types[i].images_fogged[j] ); FULL_SOURCE( terrain_types[i].images[j] ); blit_surf(); count = terrain_types[i].images[j]->w / hex_w; for ( k = 0; k < count; k++ ) { DEST( terrain_types[i].images_fogged[j], k * hex_w, 0, hex_w, hex_h ); SOURCE( terrain_icons->fog, 0, 0 ); alpha_blit_surf( FOG_ALPHA ); } SDL_SetColorKey( terrain_types[i].images_fogged[j], SDL_SRCCOLORKEY, get_pixel( terrain_types[i].images[j], 0, 0 ) ); } } /* spot cost */ terrain_types[i].spt = calloc( weather_type_count, sizeof( int ) ); if ( !parser_get_pdata( sub, "spot_cost", &subsub ) ) goto parser_failure; for ( j = 0; j < weather_type_count; j++ ) if ( !parser_get_int( subsub, weather_types[j].id, &terrain_types[i].spt[j] ) ) goto parser_failure; /* mov cost */ terrain_types[i].mov = calloc( mov_type_count * weather_type_count, sizeof( int ) ); if ( !parser_get_pdata( sub, "move_cost", &subsub ) ) goto parser_failure; for ( k = 0; k < mov_type_count; k++ ) { if ( !parser_get_pdata( subsub, mov_types[k].id, &subsubsub ) ) goto parser_failure; for ( j = 0; j < weather_type_count; j++ ) { if ( !parser_get_value( subsubsub, weather_types[j].id, &str, 0 ) ) goto parser_failure; if ( str[0] == 'X' ) terrain_types[i].mov[j + k * weather_type_count] = 0; /* impassable */ else if ( str[0] == 'A' ) terrain_types[i].mov[j + k * weather_type_count] = -1; /* costs all */ else terrain_types[i].mov[j + k * weather_type_count] = atoi( str ); /* normal cost */ } } /* entrenchment */ if ( !parser_get_int( sub, "min_entr", &terrain_types[i].min_entr ) ) goto parser_failure; if ( !parser_get_int( sub, "max_entr", &terrain_types[i].max_entr ) ) goto parser_failure; /* initiative modification */ if ( !parser_get_int( sub, "max_init", &terrain_types[i].max_ini ) ) goto parser_failure; /* flags */ terrain_types[i].flags = calloc( weather_type_count, sizeof( int ) ); if ( !parser_get_pdata( sub, "flags", &subsub ) ) goto parser_failure; for ( j = 0; j < weather_type_count; j++ ) { if ( !parser_get_values( subsub, weather_types[j].id, &flags ) ) goto parser_failure; list_reset( flags ); while ( ( flag = list_next( flags ) ) ) terrain_types[i].flags[j] |= check_flag( flag, fct_terrain ); } /* next terrain */ i++; /* LOG */ strcpy( log_str, " [ ]" ); for ( k = 0; k < i * log_dot_limit / entries->count; k++ ) log_str[3 + k] = '*'; write_text( log_font, sdl.screen, log_x, log_y, log_str, 255 ); SDL_UpdateRect( sdl.screen, log_font->last_x, log_font->last_y, log_font->last_width, log_font->last_height ); } parser_free( &pd ); /* LOG */ write_line( sdl.screen, log_font, log_str, log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); free(domain); return 1; parser_failure: fprintf( stderr, "%s\n", parser_get_error() ); failure: terrain_delete(); if ( pd ) parser_free( &pd ); free(domain); printf(tr("If data seems to be missing, please re-run the converter lgc-pg.\n")); return 0; } /* ==================================================================== Delete terrain types & co ==================================================================== */ void terrain_delete( void ) { int i, j; /* terrain types */ if ( terrain_types ) { for ( i = 0; i < terrain_type_count; i++ ) { if ( terrain_types[i].images ) { for ( j = weather_type_count - 1; j >= 0; j-- ) if ( terrain_types[i].images[j] ) { if ( terrain_types[i].images[j] == terrain_types[i].images[0] ) if ( j > 0 ) continue; /* only a pointer */ SDL_FreeSurface( terrain_types[i].images[j] ); } free( terrain_types[i].images ); } if ( terrain_types[i].images_fogged ) { for ( j = weather_type_count - 1; j >= 0; j-- ) if ( terrain_types[i].images_fogged[j] ) { if ( terrain_types[i].images_fogged[j] == terrain_types[i].images_fogged[0] ) if ( j > 0 ) continue; /* only a pointer */ SDL_FreeSurface( terrain_types[i].images_fogged[j] ); } free( terrain_types[i].images_fogged ); } if ( terrain_types[i].flags ) free( terrain_types[i].flags ); if ( terrain_types[i].mov ) free( terrain_types[i].mov ); if ( terrain_types[i].spt ) free( terrain_types[i].spt ); if ( terrain_types[i].name ) free( terrain_types[i].name ); } free( terrain_types ); terrain_types = 0; terrain_type_count = 0; } /* weather */ if ( weather_types ) { for ( i = 0; i < weather_type_count; i++ ) { if ( weather_types[i].id ) free( weather_types[i].id ); if ( weather_types[i].name ) free( weather_types[i].name ); } free( weather_types ); weather_types = 0; weather_type_count = 0; } /* terrain icons */ if ( terrain_icons ) { if ( terrain_icons->fog ) SDL_FreeSurface( terrain_icons->fog ); if ( terrain_icons->grid ) SDL_FreeSurface( terrain_icons->grid ); if ( terrain_icons->danger ) SDL_FreeSurface( terrain_icons->danger ); if ( terrain_icons->select ) SDL_FreeSurface( terrain_icons->select ); anim_delete( &terrain_icons->cross ); anim_delete( &terrain_icons->expl1 ); anim_delete( &terrain_icons->expl2 ); #ifdef WITH_SOUND if ( terrain_icons->wav_expl ) wav_free( terrain_icons->wav_expl ); if ( terrain_icons->wav_select ) wav_free( terrain_icons->wav_select ); #endif free( terrain_icons ); terrain_icons = 0; } } /* ==================================================================== Get the movement cost for a terrain type by passing movement type id and weather id in addition. Return -1 if all movement points are consumed Return 0 if movement is impossible Return cost else. ==================================================================== */ int terrain_get_mov( Terrain_Type *type, int mov_type, int weather ) { return type->mov[mov_type * weather_type_count + weather]; } lgeneral-1.3.1/src/ai_tools.c0000664000175000017500000000473412140770455013011 00000000000000/*************************************************************************** ai_tools.c - description ------------------- begin : Sat Oct 5 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "lgeneral.h" #include "unit.h" #include "map.h" #include "ai_tools.h" extern Mask_Tile **mask; /* ==================================================================== Check the surrounding of a tile and apply the eval function to it. Results may be stored in the context. If 'eval_func' returns False the evaluation is broken up. ==================================================================== */ static AI_Pos *ai_create_pos( int x, int y ) { AI_Pos *pos = calloc( 1, sizeof( AI_Pos ) ); pos->x = x; pos->y = y; return pos; } void ai_eval_hexes( int x, int y, int range, int(*eval_func)(int,int,void*), void *ctx ) { List *list = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); AI_Pos *pos; int i, nx, ny; /* gather and handle all positions by breitensuche. use AUX mask to mark visited positions */ map_clear_mask( F_AUX ); list_add( list, ai_create_pos( x, y ) ); mask[x][y].aux = 1; list_reset( list ); while ( list->count > 0 ) { pos = list_dequeue( list ); if ( !eval_func( pos->x, pos->y, ctx ) ) { free( pos ); break; } for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( pos->x, pos->y, i, &nx, &ny ) ) if ( !mask[nx][ny].aux && get_dist( x, y, nx, ny ) <= range ) { list_add( list, ai_create_pos( nx, ny ) ); mask[nx][ny].aux = 1; } free( pos ); } list_delete( list ); } lgeneral-1.3.1/src/unit.h0000664000175000017500000003733212526035554012166 00000000000000/*************************************************************************** unit.h - description ------------------- begin : Fri Jan 19 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __UNIT_H #define __UNIT_H #include "unit_lib.h" #include "nation.h" #include "player.h" #include "terrain.h" //#define DEBUG_ATTACK /* ==================================================================== Embark types for a unit. ==================================================================== */ enum { EMBARK_NONE = 0, EMBARK_GROUND, EMBARK_SEA, EMBARK_AIR, DROP_BY_PARACHUTE }; /* ==================================================================== Looking direction of units (used as icon id). ==================================================================== */ enum { UNIT_ORIENT_RIGHT = 0, UNIT_ORIENT_LEFT, UNIT_ORIENT_UP = 0, UNIT_ORIENT_RIGHT_UP, UNIT_ORIENT_RIGHT_DOWN, UNIT_ORIENT_DOWN, UNIT_ORIENT_LEFT_DOWN, UNIT_ORIENT_LEFT_UP }; /* unit life bar stuff */ /* there aren't used colors but bitmaps with small colored tiles */ enum { BAR_WIDTH = 31, BAR_HEIGHT = 4, BAR_TILE_WIDTH = 3, BAR_TILE_HEIGHT = 4 }; /* ==================================================================== Tactical unit. We allow unit merging so the basic properties may change and are therefore no pointers into the library but shallow copies (this means an entry's id, name, icons, sounds ARE pointers and will not be touched). To determine wether a unit has a transporter unit->trsp_prop->id is checked. ( 0 = no transporter, 1 = has transporter ) ==================================================================== */ typedef struct _Unit { Unit_Lib_Entry prop; /* properties */ Unit_Lib_Entry trsp_prop; /* transporters properties */ Unit_Lib_Entry *sel_prop; /* selected props: either prop or trsp_prop */ struct _Unit *backup; /* used to backup various unit values that may temporaly change (e.g. expected losses) */ char name[24]; /* unit name */ int core; /* 1 = core, 0 = aux */ Player *player; /* controlling player */ Nation *nation; /* nation unit belongs to */ Terrain_Type *terrain; /* terrain the unit is currently on */ int x, y; /* map position */ int str; /* strength */ int entr; /* entrenchment */ int exp; /* experience */ int exp_level; /* exp level computed from exp */ int delay; /* delay in turns before unit becomes avaiable as reinforcement */ int embark; /* embark type */ int orient; /* current orientation */ int icon_offset; /* offset in unit's sel_prop->icon */ int icon_tiny_offset; /* offset in sep_prop->tiny_icon */ int supply_level; /* in percent; military targets are centers of supply */ int cur_fuel; /* current fuel */ int cur_ammo; /* current ammo */ int cur_mov; /* movement points this turn */ int cur_atk_count; /* number of attacks this turn */ int unused; /* unit didn't take an action this turn so far */ int damage_bar_width; /* current life bar width in map->life_icons */ int damage_bar_offset; /* offset in map->damage_icons */ int suppr; /* unit suppression for a single fight (caused by artillery, cleared after fight) */ int turn_suppr; /* unit suppression for whole turn caused by tactical bombing, low fuel(< 20) or low ammo (< 2) */ int is_guarding; /* do not include to list when cycling units */ int killed; /* 1: remove from map & delete this unit 2: delete only */ int fresh_deploy; /* if this is true this unit was deployed in this turn and as long as it is unused it may be undeployed in the same turn */ char tag[32]; /* if tag is set the unit belongs to a unit group that is monitored by the victory conditions units_killed() and units_saved() */ int eval_score; /* between 0 - 1000 indicating the worth of the unit */ /* AI eval */ int target_score; /* when targets of an AI unit are gathered this value is set to the result score for attack of unit on this target */ } __attribute((packed)) Unit; /* ==================================================================== Data needed to transfer unit between scenarios FIXME: id strings may have any length but 32 should be more than enough and simplifies the handling... will break with longer ids! ==================================================================== */ typedef struct { Unit_Lib_Entry prop; Unit_Lib_Entry trsp_prop; char prop_id[32]; char trsp_prop_id[32]; char name[24]; char player_id[32]; char nation_id[32]; int str; int exp; char tag[32]; } transferredUnitProp; /* ==================================================================== Create a unit by passing a Unit struct with the following stuff set: x, y, str, entr, exp, delay, orient, nation, player. This function will use the passed values to create a Unit struct with all values set then. ==================================================================== */ Unit *unit_create( Unit_Lib_Entry *prop, Unit_Lib_Entry *trsp_prop, Unit *base ); /* ==================================================================== Delete a unit. Pass the pointer as void* to allow usage as callback for a list. ==================================================================== */ void unit_delete( void *ptr ); /* ==================================================================== Give unit a generic name. ==================================================================== */ void unit_set_generic_name( Unit *unit, int number, const char *stem ); /* ==================================================================== Update unit icon according to it's orientation. ==================================================================== */ void unit_adjust_icon( Unit *unit ); /* ==================================================================== Adjust orientation (and adjust icon) of unit if looking towards x,y. ==================================================================== */ void unit_adjust_orient( Unit *unit, int x, int y ); /* ==================================================================== Check if unit can supply something (ammo, fuel, anything) and return the amount that is supplyable. ==================================================================== */ enum { UNIT_SUPPLY_AMMO = 1, UNIT_SUPPLY_FUEL, UNIT_SUPPLY_ANYTHING, UNIT_SUPPLY_ALL }; int unit_check_supply( Unit *unit, int type, int *missing_ammo, int *missing_fuel ); /* ==================================================================== Supply percentage of maximum fuel/ammo/both Return True if unit was supplied. ==================================================================== */ int unit_supply_intern( Unit *unit, int type ); int unit_supply( Unit *unit, int type ); /* ==================================================================== Check if a unit uses fuel in it's current state (embarked or not). ==================================================================== */ int unit_check_fuel_usage( Unit *unit ); /* ==================================================================== Add experience and compute experience level. Return True if levelup. ==================================================================== */ int unit_add_exp( Unit *unit, int exp ); /* ==================================================================== Mount/unmount unit to ground transporter. ==================================================================== */ void unit_mount( Unit *unit ); void unit_unmount( Unit *unit ); /* ==================================================================== Check if units are close to each other. This means on neighbored hex tiles. ==================================================================== */ int unit_is_close( Unit *unit, Unit *target ); /* ==================================================================== Check if unit may activly attack (unit initiated attack) or passivly attack (target initated attack, unit defenses) the target. ==================================================================== */ enum { UNIT_ACTIVE_ATTACK = 0, UNIT_PASSIVE_ATTACK, UNIT_DEFENSIVE_ATTACK }; int unit_check_attack( Unit *unit, Unit *target, int type ); /* ==================================================================== Compute damage/supression the target takes when unit attacks the target. No properties will be changed. If 'real' is set the dices are rolled else it's a stochastical prediction. ==================================================================== */ void unit_get_damage( Unit *aggressor, Unit *unit, Unit *target, int type, int real, int rugged_def, int *damage, int *suppr ); /* ==================================================================== Execute a single fight (no defensive fire check) with random values. unit_surprise_attack() handles an attack with a surprising target (e.g. Out Of The Sun) If a rugged defense occured in a normal fight (surprise_attack is always rugged) 'rugged_def' is set. Ammo is decreased and experience gained. unit_normal_attack() accepts UNIT_ACTIVE_ATTACK or UNIT_DEFENSIVE_ATTACK as 'type' depending if this unit supports or activly attacks. ==================================================================== */ enum { AR_NONE = 0, /* nothing special */ AR_UNIT_ATTACK_BROKEN_UP = ( 1L << 1), /* target stroke first and unit broke up attack */ AR_UNIT_SUPPRESSED = ( 1L << 2), /* unit alive but fully suppressed */ AR_TARGET_SUPPRESSED = ( 1L << 3), /* dito */ AR_UNIT_KILLED = ( 1L << 4), /* real strength is 0 */ AR_TARGET_KILLED = ( 1L << 5), /* dito */ AR_RUGGED_DEFENSE = ( 1L << 6), /* target made rugged defense */ AR_EVADED = ( 1L << 7), /* unit evaded */ }; int unit_normal_attack( Unit *unit, Unit *target, int type ); int unit_surprise_attack( Unit *unit, Unit *target ); /* ==================================================================== Go through a complete battle unit vs. target including known(!) defensive support stuff and with no random modifications. Return the final damage taken by both units. As the terrain may have influence the id of the terrain the battle takes place (defending unit's hex) is provided. ==================================================================== */ void unit_get_expected_losses( Unit *unit, Unit *target, int *unit_damage, int *target_damage ); /* ==================================================================== This function checks 'units' for supporters of 'target' that will give defensive fire to before the real battle 'unit' vs 'target' takes place. These units are put to 'df_units' (which is not created here) ==================================================================== */ void unit_get_df_units( Unit *unit, Unit *target, List *units, List *df_units ); void unit_get_df_units_strategic( Unit *unit, Player * player,List *units, List *df_units ); /* ==================================================================== Check if these two units are allowed to merge with each other. ==================================================================== */ int unit_check_merge( Unit *unit, Unit *source ); /* ==================================================================== Get the maximum strength the unit can give for a split in its current state. Unit must have at least strength 3 remaining. ==================================================================== */ int unit_get_split_strength( Unit *unit ); /* ==================================================================== Merge these two units: unit is the new unit and source must be removed from map and memory after this function was called. ==================================================================== */ void unit_merge( Unit *unit, Unit *source ); /* ==================================================================== Return True if unit uses a ground transporter. ==================================================================== */ int unit_check_ground_trsp( Unit *unit ); /* ==================================================================== Backup unit to its backup pointer (shallow copy) ==================================================================== */ void unit_backup( Unit *unit ); void unit_restore( Unit *unit ); /* ==================================================================== Check if target may do rugged defense ==================================================================== */ int unit_check_rugged_def( Unit *unit, Unit *target ); /* ==================================================================== Compute the rugged defense chance. ==================================================================== */ int unit_get_rugged_def_chance( Unit *unit, Unit *target ); /* ==================================================================== Calculate the used fuel quantity. 'cost' is the base fuel cost to be deducted by terrain movement. The cost will be adjusted as needed. ==================================================================== */ int unit_calc_fuel_usage( Unit *unit, int cost ); /* ==================================================================== Update unit bar. ==================================================================== */ void unit_update_bar( Unit *unit ); /* ==================================================================== Disable all actions. ==================================================================== */ void unit_set_as_used( Unit *unit ); /* ==================================================================== Duplicate the unit. ==================================================================== */ Unit *unit_duplicate( Unit *unit ); /* Duplicate properties required for transferring to next scenario. */ transferredUnitProp *unit_create_transfer_props( Unit *unit ); /* ==================================================================== Check if unit has low ammo or fuel. ==================================================================== */ int unit_low_fuel( Unit *unit ); int unit_low_ammo( Unit *unit ); /* ==================================================================== Check whether unit can be considered for deployment. ==================================================================== */ int unit_supports_deploy( Unit *unit ); #endif lgeneral-1.3.1/src/unit.c0000664000175000017500000015136212526051031012145 00000000000000/*************************************************************************** unit.c - description ------------------- begin : Fri Jan 19 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "lgeneral.h" #include "list.h" #include "unit.h" #include "localize.h" /* ==================================================================== Externals ==================================================================== */ extern int scen_get_weather( void ); extern Sdl sdl; extern Config config; extern int trgt_type_count; extern List *vis_units; /* units known zo current player */ extern List *units; extern int cur_weather; extern Weather_Type *weather_types; extern Unit *cur_target; /* ==================================================================== Locals ==================================================================== */ //#define DEBUG_ATTACK /* ==================================================================== Update unit's bar info according to strength. ==================================================================== */ static void update_bar( Unit *unit ) { /* bar width */ unit->damage_bar_width = unit->str * BAR_TILE_WIDTH; if ( unit->damage_bar_width == 0 && unit->str > 0 ) unit->damage_bar_width = BAR_TILE_WIDTH; /* bar color is defined by vertical offset in map->life_icons */ if ( unit->str > 4 ) unit->damage_bar_offset = 0; else if ( unit->str > 2 ) unit->damage_bar_offset = BAR_TILE_HEIGHT; else unit->damage_bar_offset = BAR_TILE_HEIGHT * 2; } /* ==================================================================== Get the current unit strength which is: max { 0, unit->str - unit->suppr - unit->turn_suppr } ==================================================================== */ static int unit_get_cur_str( Unit *unit ) { int cur_str = unit->str - unit->suppr - unit->turn_suppr; if ( cur_str < 0 ) cur_str = 0; return cur_str; } /* ==================================================================== Apply suppression and damage to unit. Return the remaining actual strength. If attacker is a bomber the suppression is counted as turn suppression. ==================================================================== */ static int unit_apply_damage( Unit *unit, int damage, int suppr, Unit *attacker ) { unit->str -= damage; if ( unit->str < 0 ) { unit->str = 0; return 0; } if ( attacker && attacker->sel_prop->flags & TURN_SUPPR ) { unit->turn_suppr += suppr; if ( unit->str - unit->turn_suppr - unit->suppr < 0 ) { unit->turn_suppr = unit->str - unit->suppr; return 0; } } else { unit->suppr += suppr; if ( unit->str - unit->turn_suppr - unit->suppr < 0 ) { unit->suppr = unit->str - unit->turn_suppr; return 0; } } return unit_get_cur_str( unit ); } /** Add prestige for player of unit @unit, based on properties of attacked * unit @target and the damage @target_dam inflicted to it. */ static void unit_gain_prestige( Unit *unit, const Unit *target, int target_dam ) { int gain = 0; /* I played around with PG a little but did not figure out how the * formula works. Some points seem to hold true though: * - own damage/unit loss does not give prestige penalty * (therefore we don't consider unit damage here) * - if target is damaged but not destroyed then some random prestige * is gained based on cost, experience and damage * - if target is destroyed then more prestige is gained based on * cost and experience with just a little random modification * * FIXME: the formula used when unit is destroyed seems to be quite * good, but the one for mere damage not so much especially when * experience increases: rolling the dice more times does not increase * chance very much for low cost units so we give less prestige for * cheap, experienced units compared to PG... */ if (target->str == 0) { /* if unit destroyed: ((1/24 of cost) * exp) +- 10% */ gain = ((target->exp_level + 1) * target->prop.cost * 10 + 120/*round up*/) / 240; gain = ((111 - DICE(21)) * gain) / 100; if (gain == 0) gain = 1; } else { /* if damaged: try half damage multiplied by experience throws * on 50-dice against one tenth of cost. at maximum four times * experience can be gained */ int throws = ((target_dam + 1) / 2) * (target->exp_level+1); int i, limit = 4 * (target->exp_level+1) - 1; for (i = 0; i < throws; i++) if( DICE(50) < target->prop.cost/10 ) { gain++; if (gain == limit) break; } } unit->player->cur_prestige += gain; //printf("%s attacked %s (%d damage%s): prestige +%d\n", // unit->name, target->name, target_dam, // (target->str==0)?", killed":"", gain); } /* ==================================================================== Execute a single fight (no defensive fire check) with random values. (only if 'luck' is set) If 'force_rugged is set'. Rugged defense will be forced. ==================================================================== */ enum { ATK_BOTH_STRIKE = 0, ATK_UNIT_FIRST, ATK_TARGET_FIRST, ATK_NO_STRIKE }; static int unit_attack( Unit *unit, Unit *target, int type, int real, int force_rugged ) { int unit_old_str = unit->str;//, target_old_str = target->str; int unit_old_ini = unit->sel_prop->ini, target_old_ini = target->sel_prop->ini; int unit_dam = 0, unit_suppr = 0, target_dam = 0, target_suppr = 0; int rugged_chance, rugged_def = 0; int exp_mod; int ret = AR_NONE; /* clear flags */ int strike; /* check if rugged defense occurs */ if ( real && type == UNIT_ACTIVE_ATTACK ) if ( unit_check_rugged_def( unit, target ) || ( force_rugged && unit_is_close( unit, target ) ) ) { rugged_chance = unit_get_rugged_def_chance( unit, target ); if ( DICE(100) <= rugged_chance || force_rugged ) rugged_def = 1; } /* PG's formula for initiative is min { base initiative, terrain max initiative } + ( exp_level + 1 ) / 2 + D3 */ /* against aircrafts the initiative is used since terrain does not matter */ /* target's terrain is used for fight */ if ( !(unit->sel_prop->flags & FLYING) && !(target->sel_prop->flags & FLYING) ) { unit->sel_prop->ini = MINIMUM( unit->sel_prop->ini, target->terrain->max_ini ); target->sel_prop->ini = MINIMUM( target->sel_prop->ini, target->terrain->max_ini ); } unit->sel_prop->ini += ( unit->exp_level + 1 ) / 2; target->sel_prop->ini += ( target->exp_level + 1 ) / 2; /* special initiative rules: antitank inits attack tank|recon: atk 0, def 99 tank inits attack against anti-tank: atk 0, def 99 defensive fire: atk 99, def 0 submarine attacks: atk 99, def 0 ranged attack: atk 99, def 0 rugged defense: atk 0 air unit attacks air defense: atk = def non-art vs art: atk 0, def 99 */ if ( unit->sel_prop->flags & ANTI_TANK ) if ( target->sel_prop->flags & TANK ) { unit->sel_prop->ini = 0; target->sel_prop->ini = 99; } if ( (unit->sel_prop->flags&DIVING) || (unit->sel_prop->flags&ARTILLERY) || (unit->sel_prop->flags&AIR_DEFENSE) || type == UNIT_DEFENSIVE_ATTACK ) { unit->sel_prop->ini = 99; target->sel_prop->ini = 0; } if ( unit->sel_prop->flags & FLYING ) if ( target->sel_prop->flags & AIR_DEFENSE ) unit->sel_prop->ini = target->sel_prop->ini; if ( rugged_def ) unit->sel_prop->ini = 0; if ( force_rugged ) target->sel_prop->ini = 99; /* the dice is rolled after these changes */ if ( real ) { unit->sel_prop->ini += DICE(3); target->sel_prop->ini += DICE(3); } #ifdef DEBUG_ATTACK if ( real ) { printf( "%s Initiative: %i\n", unit->name, unit->sel_prop->ini ); printf( "%s Initiative: %i\n", target->name, target->sel_prop->ini ); if ( unit_check_rugged_def( unit, target ) ) printf( "\nRugged Defense: %s (%i%%)\n", rugged_def ? "yes" : "no", unit_get_rugged_def_chance( unit, target ) ); } #endif /* in a real combat a submarine may evade */ if ( real && type == UNIT_ACTIVE_ATTACK && ( target->sel_prop->flags & DIVING ) ) { if ( DICE(10) <= 7 + ( target->exp_level - unit->exp_level ) / 2 ) { strike = ATK_NO_STRIKE; ret |= AR_EVADED; } else strike = ATK_UNIT_FIRST; #ifdef DEBUG_ATTACK printf ( "\nSubmarine Evasion: %s (%i%%)\n", (strike==ATK_NO_STRIKE)?"yes":"no", 10 * (7 + ( target->exp_level - unit->exp_level ) / 2) ); #endif } else /* who is first? */ if ( unit->sel_prop->ini == target->sel_prop->ini ) strike = ATK_BOTH_STRIKE; else if ( unit->sel_prop->ini > target->sel_prop->ini ) strike = ATK_UNIT_FIRST; else strike = ATK_TARGET_FIRST; /* the one with the highest initiative begins first if not defensive fire or artillery */ if ( strike == ATK_BOTH_STRIKE ) { /* both strike at the same time */ unit_get_damage( unit, unit, target, type, real, rugged_def, &target_dam, &target_suppr ); if ( unit_check_attack( target, unit, UNIT_PASSIVE_ATTACK ) ) unit_get_damage( unit, target, unit, UNIT_PASSIVE_ATTACK, real, rugged_def, &unit_dam, &unit_suppr ); unit_apply_damage( target, target_dam, target_suppr, unit ); unit_apply_damage( unit, unit_dam, unit_suppr, target ); } else if ( strike == ATK_UNIT_FIRST ) { /* unit strikes first */ unit_get_damage( unit, unit, target, type, real, rugged_def, &target_dam, &target_suppr ); if ( unit_apply_damage( target, target_dam, target_suppr, unit ) ) if ( unit_check_attack( target, unit, UNIT_PASSIVE_ATTACK ) && type != UNIT_DEFENSIVE_ATTACK ) { unit_get_damage( unit, target, unit, UNIT_PASSIVE_ATTACK, real, rugged_def, &unit_dam, &unit_suppr ); unit_apply_damage( unit, unit_dam, unit_suppr, target ); } } else if ( strike == ATK_TARGET_FIRST ) { /* target strikes first */ if ( unit_check_attack( target, unit, UNIT_PASSIVE_ATTACK ) ) { unit_get_damage( unit, target, unit, UNIT_PASSIVE_ATTACK, real, rugged_def, &unit_dam, &unit_suppr ); if ( !unit_apply_damage( unit, unit_dam, unit_suppr, target ) ) ret |= AR_UNIT_ATTACK_BROKEN_UP; } if ( unit_get_cur_str( unit ) > 0 ) { unit_get_damage( unit, unit, target, type, real, rugged_def, &target_dam, &target_suppr ); unit_apply_damage( target, target_dam, target_suppr, unit ); } } /* check return value */ if ( unit->str == 0 ) ret |= AR_UNIT_KILLED; else if ( unit_get_cur_str( unit ) == 0 ) ret |= AR_UNIT_SUPPRESSED; if ( target->str == 0 ) ret |= AR_TARGET_KILLED; else if ( unit_get_cur_str( target ) == 0 ) ret |= AR_TARGET_SUPPRESSED; if ( rugged_def ) ret |= AR_RUGGED_DEFENSE; if ( real ) { /* cost ammo */ if ( config.supply ) { //if (DICE(10)<=target_old_str) unit->cur_ammo--; if ( unit_check_attack( target, unit, UNIT_PASSIVE_ATTACK ) && target->cur_ammo > 0 ) //if (DICE(10)<=unit_old_str) target->cur_ammo--; } /* costs attack */ if ( unit->cur_atk_count > 0 ) unit->cur_atk_count--; /* target: loose entrenchment if damage was taken or with a unit->str*10% chance */ if ( target->entr > 0 ) if (target_dam > 0 || DICE(10)<=unit_old_str) target->entr--; /* attacker looses entrenchment if it got hurt */ if ( unit->entr > 0 && unit_dam > 0 ) unit->entr--; /* gain experience */ exp_mod = target->exp_level - unit->exp_level; if ( exp_mod < 1 ) exp_mod = 1; unit_add_exp( unit, exp_mod * target_dam + unit_dam ); exp_mod = unit->exp_level - target->exp_level; if ( exp_mod < 1 ) exp_mod = 1; unit_add_exp( target, exp_mod * unit_dam + target_dam ); if ( unit_is_close( unit, target ) ) { unit_add_exp( unit, 10 ); unit_add_exp( target, 10 ); } /* gain prestige */ unit_gain_prestige( unit, target, target_dam ); unit_gain_prestige( target, unit, unit_dam ); /* adjust life bars */ update_bar( unit ); update_bar( target ); } unit->sel_prop->ini = unit_old_ini; target->sel_prop->ini = target_old_ini; return ret; } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== Create a unit by passing a Unit struct with the following stuff set: name, x, y, str, entr, exp_level, delay, orient, nation, player. This function will use the passed values to create a Unit struct with all values set then. ==================================================================== */ Unit *unit_create( Unit_Lib_Entry *prop, Unit_Lib_Entry *trsp_prop, Unit *base ) { Unit *unit = 0; if ( prop == 0 ) return 0; unit = calloc( 1, sizeof( Unit ) ); /* shallow copy of properties */ memcpy( &unit->prop, prop, sizeof( Unit_Lib_Entry ) ); unit->sel_prop = &unit->prop; unit->embark = EMBARK_NONE; /* assign the passed transporter without any check */ if ( trsp_prop && !( prop->flags & FLYING ) && !( prop->flags & SWIMMING ) ) { memcpy( &unit->trsp_prop, trsp_prop, sizeof( Unit_Lib_Entry ) ); /* a sea/air ground transporter is active per default */ if ( trsp_prop->flags & SWIMMING ) { unit->embark = EMBARK_SEA; unit->sel_prop = &unit->trsp_prop; } if ( trsp_prop->flags & FLYING ) { unit->embark = EMBARK_AIR; unit->sel_prop = &unit->trsp_prop; } } /* copy the base values */ unit->core = base->core; unit->delay = base->delay; unit->x = base->x; unit->y = base->y; unit->str = base->str; unit->entr = base->entr; unit->player = base->player; unit->nation = base->nation; strcpy_lt( unit->name, base->name, 20 ); unit_add_exp( unit, base->exp_level * 100 ); unit->orient = base->orient; unit_adjust_icon( unit ); unit->unused = 1; unit->supply_level = 100; unit->cur_ammo = unit->prop.ammo; unit->cur_fuel = unit->prop.fuel; if ( unit->cur_fuel == 0 && unit->trsp_prop.id && unit->trsp_prop.fuel > 0 ) unit->cur_fuel = unit->trsp_prop.fuel; strcpy_lt( unit->tag, base->tag, 31 ); /* update life bar properties */ update_bar( unit ); /* allocate backup mem */ unit->backup = calloc( 1, sizeof( Unit ) ); return unit; } /* ==================================================================== Delete a unit. Pass the pointer as void* to allow usage as callback for a list. ==================================================================== */ void unit_delete( void *ptr ) { Unit *unit = (Unit*)ptr; if ( unit == 0 ) return; if ( unit->backup ) free( unit->backup ); free( unit ); } /* ==================================================================== Give unit a generic name. ==================================================================== */ void unit_set_generic_name( Unit *unit, int number, const char *stem ) { char numbuf[8]; locale_write_ordinal_number(numbuf, sizeof numbuf, number); snprintf(unit->name, 24, "%s %s", numbuf, stem); } /* ==================================================================== Update unit icon according to it's orientation. ==================================================================== */ void unit_adjust_icon( Unit *unit ) { unit->icon_offset = unit->sel_prop->icon_w * unit->orient; unit->icon_tiny_offset = unit->sel_prop->icon_tiny_w * unit->orient; } /* ==================================================================== Adjust orientation (and adjust icon) of unit if looking towards x,y. ==================================================================== */ void unit_adjust_orient( Unit *unit, int x, int y ) { if ( unit->prop.icon_type == UNIT_ICON_SINGLE ) { if ( x < unit->x ) { unit->orient = UNIT_ORIENT_LEFT; unit->icon_offset = unit->sel_prop->icon_w; unit->icon_tiny_offset = unit->sel_prop->icon_tiny_w; } else if ( x > unit->x ) { unit->orient = UNIT_ORIENT_RIGHT; unit->icon_offset = 0; unit->icon_tiny_offset = 0; } } else { /* not implemented yet */ } } /* ==================================================================== Check if unit can supply something (ammo, fuel, anything) and return the amount that is supplyable. ==================================================================== */ int unit_check_supply( Unit *unit, int type, int *missing_ammo, int *missing_fuel ) { int ret = 0; int max_fuel = unit->sel_prop->fuel; if ( missing_ammo ) *missing_ammo = 0; if ( missing_fuel ) *missing_fuel = 0; /* no supply near or already moved? */ if ( unit->embark == EMBARK_SEA || unit->embark == EMBARK_AIR ) return 0; if ( unit->supply_level == 0 ) return 0; if ( !unit->unused ) return 0; /* supply ammo? */ if ( type == UNIT_SUPPLY_AMMO || type == UNIT_SUPPLY_ANYTHING ) if ( unit->cur_ammo < unit->prop.ammo ) { ret = 1; if ( missing_ammo ) *missing_ammo = unit->prop.ammo - unit->cur_ammo; } if ( type == UNIT_SUPPLY_AMMO ) return ret; /* if we have a ground transporter assigned we need to use it's fuel as max */ if ( unit_check_fuel_usage( unit ) && max_fuel == 0 ) max_fuel = unit->trsp_prop.fuel; /* supply fuel? */ if ( type == UNIT_SUPPLY_FUEL || type == UNIT_SUPPLY_ANYTHING ) if ( unit->cur_fuel < max_fuel ) { ret = 1; if ( missing_fuel ) *missing_fuel = max_fuel - unit->cur_fuel; } return ret; } /* ==================================================================== Supply percentage of maximum fuel/ammo/both. _intern does not block movement etc. Return True if unit was supplied. ==================================================================== */ int unit_supply_intern( Unit *unit, int type ) { int amount_ammo, amount_fuel, max, supply_amount; int supplied = 0; /* ammo */ if ( type == UNIT_SUPPLY_AMMO || type == UNIT_SUPPLY_ALL ) if ( unit_check_supply( unit, UNIT_SUPPLY_AMMO, &amount_ammo, &amount_fuel ) ) { max = unit->cur_ammo + amount_ammo ; supply_amount = unit->supply_level * max / 100; if ( supply_amount == 0 ) supply_amount = 1; /* at least one */ unit->cur_ammo += supply_amount; if ( unit->cur_ammo > max ) unit->cur_ammo = max; supplied = 1; } /* fuel */ if ( type == UNIT_SUPPLY_FUEL || type == UNIT_SUPPLY_ALL ) if ( unit_check_supply( unit, UNIT_SUPPLY_FUEL, &amount_ammo, &amount_fuel ) ) { max = unit->cur_fuel + amount_fuel ; supply_amount = unit->supply_level * max / 100; if ( supply_amount == 0 ) supply_amount = 1; /* at least one */ unit->cur_fuel += supply_amount; if ( unit->cur_fuel > max ) unit->cur_fuel = max; supplied = 1; } return supplied; } int unit_supply( Unit *unit, int type ) { int supplied = unit_supply_intern(unit,type); if (supplied) { /* no other actions allowed */ unit->unused = 0; unit->cur_mov = 0; unit->cur_atk_count = 0; } return supplied; } /* ==================================================================== Check if a unit uses fuel in it's current state (embarked or not). ==================================================================== */ int unit_check_fuel_usage( Unit *unit ) { if ( unit->embark == EMBARK_SEA || unit->embark == EMBARK_AIR ) return 0; if ( unit->prop.fuel > 0 ) return 1; if ( unit->trsp_prop.id && unit->trsp_prop.fuel > 0 ) return 1; return 0; } /* ==================================================================== Add experience and compute experience level. Return True if levelup. ==================================================================== */ int unit_add_exp( Unit *unit, int exp ) { int old_level = unit->exp_level; unit->exp += exp; if ( unit->exp >= 500 ) unit->exp = 500; unit->exp_level = unit->exp / 100; return ( old_level != unit->exp_level ); } /* ==================================================================== Mount/unmount unit to ground transporter. ==================================================================== */ void unit_mount( Unit *unit ) { if ( unit->trsp_prop.id == 0 || unit->embark != EMBARK_NONE ) return; /* set prop pointer */ unit->sel_prop = &unit->trsp_prop; unit->embark = EMBARK_GROUND; /* adjust pic offset */ unit_adjust_icon( unit ); /* no entrenchment when mounting */ unit->entr = 0; } void unit_unmount( Unit *unit ) { if ( unit->embark != EMBARK_GROUND ) return; /* set prop pointer */ unit->sel_prop = &unit->prop; unit->embark = EMBARK_NONE; /* adjust pic offset */ unit_adjust_icon( unit ); /* no entrenchment when mounting */ unit->entr = 0; } /* ==================================================================== Check if units are close to each other. This means on neighbored hex tiles. ==================================================================== */ int unit_is_close( Unit *unit, Unit *target ) { return is_close( unit->x, unit->y, target->x, target->y ); } /* ==================================================================== Check if unit may activly attack (unit initiated attack) or passivly attack (target initated attack, unit defenses) the target. ==================================================================== */ int unit_check_attack( Unit *unit, Unit *target, int type ) { if ( target == 0 || unit == target ) return 0; if ( player_is_ally( unit->player, target->player ) ) return 0; if ( unit->sel_prop->flags & FLYING && !( target->sel_prop->flags & FLYING ) ) if ( unit->sel_prop->rng == 0 ) if ( unit->x != target->x || unit->y != target->y ) return 0; /* range 0 means above unit for an aircraft */ /* if the target flys and the unit is ground with a range of 0 the aircraft may only be harmed when above unit */ if ( !(unit->sel_prop->flags & FLYING) && ( target->sel_prop->flags & FLYING ) ) if ( unit->sel_prop->rng == 0 ) if ( unit->x != target->x || unit->y != target->y ) return 0; /* only destroyers may harm submarines */ if ( target->sel_prop->flags & DIVING && !( unit->sel_prop->flags & DESTROYER ) ) return 0; if ( weather_types[cur_weather].flags & NO_AIR_ATTACK ) { if ( unit->sel_prop->flags & FLYING ) return 0; if ( target->sel_prop->flags & FLYING ) return 0; } if ( type == UNIT_ACTIVE_ATTACK ) { /* agressor */ if ( unit->cur_ammo <= 0 ) return 0; if ( unit->sel_prop->atks[target->sel_prop->trgt_type] <= 0 ) return 0; if ( unit->cur_atk_count == 0 ) return 0; if ( !unit_is_close( unit, target ) && get_dist( unit->x, unit->y, target->x, target->y ) > unit->sel_prop->rng ) return 0; } else if ( type == UNIT_DEFENSIVE_ATTACK ) { /* defensive fire */ if ( unit->sel_prop->atks[target->sel_prop->trgt_type] <= 0 ) return 0; if ( unit->cur_ammo <= 0 ) return 0; if ( ( unit->sel_prop->flags & ( INTERCEPTOR | ARTILLERY | AIR_DEFENSE ) ) == 0 ) return 0; if ( target->sel_prop->flags & ( ARTILLERY | AIR_DEFENSE | SWIMMING ) ) return 0; if ( unit->sel_prop->flags & INTERCEPTOR ) { /* the interceptor is propably not beside the attacker so the range check is different * can't be done here because the unit the target attacks isn't passed so * unit_get_df_units() must have a look itself */ } else if ( get_dist( unit->x, unit->y, target->x, target->y ) > unit->sel_prop->rng ) return 0; } else { /* counter-attack */ if ( unit->cur_ammo <= 0 ) return 0; if ( !unit_is_close( unit, target ) && get_dist( unit->x, unit->y, target->x, target->y ) > unit->sel_prop->rng ) return 0; if ( unit->sel_prop->atks[target->sel_prop->trgt_type] == 0 ) return 0; /* artillery may only defend against close units */ if ( unit->sel_prop->flags & ARTILLERY ) if ( !unit_is_close( unit, target ) ) return 0; /* you may defend against artillery only when close */ if ( target->sel_prop->flags & ARTILLERY ) if ( !unit_is_close( unit, target ) ) return 0; } return 1; } /* ==================================================================== Compute damage/supression the target takes when unit attacks the target. No properties will be changed. If 'real' is set the dices are rolled else it's a stochastical prediction. 'aggressor' is the unit that initiated the attack, either 'unit' or 'target'. It is not always 'unit' as 'unit' and 'target are switched for get_damage depending on whether there is a striking back and who had the highest initiative. ==================================================================== */ void unit_get_damage( Unit *aggressor, Unit *unit, Unit *target, int type, int real, int rugged_def, int *damage, int *suppr ) { int atk_strength, max_roll, min_roll, die_mod; int atk_grade, def_grade, diff, result; float suppr_chance, kill_chance; /* use PG's formula to compute the attack/defense grade*/ /* basic attack */ atk_grade = abs( unit->sel_prop->atks[target->sel_prop->trgt_type] ); #ifdef DEBUG_ATTACK if ( real ) printf( "\n%s attacks:\n", unit->name ); if ( real ) printf( " base: %2i\n", atk_grade ); if ( real ) printf( " exp: +%i\n", unit->exp_level); #endif /* experience */ atk_grade += unit->exp_level; /* target on a river? */ if ( !(target->sel_prop->flags & FLYING ) ) if ( target->terrain->flags[cur_weather] & RIVER ) { atk_grade += 4; #ifdef DEBUG_ATTACK if ( real ) printf( " river: +4\n" ); #endif } /* counterattack of rugged defense unit? */ if ( type == UNIT_PASSIVE_ATTACK && rugged_def ) { atk_grade += 4; #ifdef DEBUG_ATTACK if ( real ) printf( " rugdef: +4\n" ); #endif } #ifdef DEBUG_ATTACK if ( real ) printf( "---\n%s defends:\n", target->name ); #endif /* basic defense */ if ( unit->sel_prop->flags & FLYING ) def_grade = target->sel_prop->def_air; else { def_grade = target->sel_prop->def_grnd; /* apply close defense? */ if ( unit->sel_prop->flags & INFANTRY ) if ( !( target->sel_prop->flags & INFANTRY ) ) if ( !( target->sel_prop->flags & FLYING ) ) if ( !( target->sel_prop->flags & SWIMMING ) ) { if ( target == aggressor ) if ( unit->terrain->flags[cur_weather]&INF_CLOSE_DEF ) def_grade = target->sel_prop->def_cls; if ( unit == aggressor ) if ( target->terrain->flags[cur_weather]&INF_CLOSE_DEF ) def_grade = target->sel_prop->def_cls; } } #ifdef DEBUG_ATTACK if ( real ) printf( " base: %2i\n", def_grade ); if ( real ) printf( " exp: +%i\n", target->exp_level ); #endif /* experience */ def_grade += target->exp_level; /* attacker on a river or swamp? */ if ( !(unit->sel_prop->flags & FLYING) ) if ( !(unit->sel_prop->flags & SWIMMING) ) if ( !(target->sel_prop->flags & FLYING) ) { if ( unit->terrain->flags[cur_weather] & SWAMP ) { def_grade += 4; #ifdef DEBUG_ATTACK if ( real ) printf( " swamp: +4\n" ); #endif } else if ( unit->terrain->flags[cur_weather] & RIVER ) { def_grade += 4; #ifdef DEBUG_ATTACK if ( real ) printf( " river: +4\n" ); #endif } } /* rugged defense? */ if ( type == UNIT_ACTIVE_ATTACK && rugged_def ) { def_grade += 4; #ifdef DEBUG_ATTACK if ( real ) printf( " rugdef: +4\n" ); #endif } /* entrenchment */ if ( unit->sel_prop->flags & IGNORE_ENTR ) def_grade += 0; else { if ( unit->sel_prop->flags & INFANTRY ) def_grade += target->entr / 2; else def_grade += target->entr; #ifdef DEBUG_ATTACK if ( real ) printf( " entr: +%i\n", (unit->sel_prop->flags & INFANTRY) ? target->entr / 2 : target->entr ); #endif } /* naval vs ground unit */ if ( !(unit->sel_prop->flags & SWIMMING ) ) if ( !(unit->sel_prop->flags & FLYING) ) if ( target->sel_prop->flags & SWIMMING ) { def_grade += 8; #ifdef DEBUG_ATTACK if ( real ) printf( " naval: +8\n" ); #endif } /* bad weather? */ if ( unit->sel_prop->rng > 0 ) if ( weather_types[cur_weather].flags & BAD_SIGHT ) { def_grade += 3; #ifdef DEBUG_ATTACK if ( real ) printf( " sight: +3\n" ); #endif } /* initiating attack against artillery? */ if ( type == UNIT_PASSIVE_ATTACK ) if ( unit->sel_prop->flags & ARTILLERY ) { def_grade += 3; #ifdef DEBUG_ATTACK if ( real ) printf( " def vs art: +3\n" ); #endif } /* infantry versus anti_tank? */ if ( target->sel_prop->flags & INFANTRY ) if ( unit->sel_prop->flags & ANTI_TANK ) { def_grade += 2; #ifdef DEBUG_ATTACK if ( real ) printf( " antitnk:+2\n" ); #endif } /* no fuel makes attacker less effective */ if ( unit_check_fuel_usage( unit ) && unit->cur_fuel == 0 ) { def_grade += 4; #ifdef DEBUG_ATTACK if ( real ) printf( " lowfuel:+4\n" ); #endif } /* attacker strength */ atk_strength = unit_get_cur_str( unit ); #ifdef DEBUG_ATTACK if ( real && atk_strength != unit_get_cur_str( unit ) ) printf( "---\n%s with half strength\n", unit->name ); #endif /* PG's formula: get difference between attack and defense strike for each strength point with if ( diff <= 4 ) D20 + diff else D20 + 4 + 0.4 * ( diff - 4 ) suppr_fire flag set: 1-10 miss, 11-18 suppr, 19+ kill normal: 1-10 miss, 11-12 suppr, 13+ kill */ diff = atk_grade - def_grade; if ( diff < -7 ) diff = -7; *damage = 0; *suppr = 0; #ifdef DEBUG_ATTACK if ( real ) { printf( "---\n%i x %i --> %i x %i\n", atk_strength, atk_grade, unit_get_cur_str( target ), def_grade ); } #endif /* get the chances for suppression and kills (computed here to use also for debug info */ suppr_chance = kill_chance = 0; die_mod = ( diff <= 4 ? diff : 4 + 2 * ( diff - 4 ) / 5 ); min_roll = 1 + die_mod; max_roll = 20 + die_mod; /* get chances for suppression and kills */ if ( unit->sel_prop->flags & SUPPR_FIRE ) { int limit = (type==UNIT_DEFENSIVE_ATTACK)?20:18; if (limit-min_roll>=0) suppr_chance = 0.05*(MINIMUM(limit,max_roll)-MAXIMUM(11,min_roll)+1); if (max_roll>limit) kill_chance = 0.05*(max_roll-MAXIMUM(limit+1,min_roll)+1); } else { if (12-min_roll>=0) suppr_chance = 0.05*(MINIMUM(12,max_roll)-MAXIMUM(11,min_roll)+1); if (max_roll>12) kill_chance = 0.05*(max_roll-MAXIMUM(13,min_roll)+1); } if (suppr_chance<0) suppr_chance=0; if (kill_chance<0) kill_chance=0; if ( real ) { #ifdef DEBUG_ATTACK printf( "Roll: D20 + %i (Kill: %i%%, Suppr: %i%%)\n", diff <= 4 ? diff : 4 + 2 * ( diff - 4 ) / 5, (int)(100 * kill_chance), (int)(100 * suppr_chance) ); #endif while ( atk_strength-- > 0 ) { if ( diff <= 4 ) result = DICE(20) + diff; else result = DICE(20) + 4 + 2 * ( diff - 4 ) / 5; if ( unit->sel_prop->flags & SUPPR_FIRE ) { int limit = (type==UNIT_DEFENSIVE_ATTACK)?20:18; if ( result >= 11 && result <= limit ) (*suppr)++; else if ( result >= limit+1 ) (*damage)++; } else { if ( result >= 11 && result <= 12 ) (*suppr)++; else if ( result >= 13 ) (*damage)++; } } #ifdef DEBUG_ATTACK printf( "Kills: %i, Suppression: %i\n\n", *damage, *suppr ); #endif } else { *suppr = (int)(suppr_chance * atk_strength); *damage = (int)(kill_chance * atk_strength); } } /* ==================================================================== Execute a single fight (no defensive fire check) with random values. unit_surprise_attack() handles an attack with a surprising target (e.g. Out Of The Sun) If a rugged defense occured in a normal fight (surprise_attack is always rugged) 'rugged_def' is set. ==================================================================== */ int unit_normal_attack( Unit *unit, Unit *target, int type ) { return unit_attack( unit, target, type, 1, 0 ); } int unit_surprise_attack( Unit *unit, Unit *target ) { return unit_attack( unit, target, UNIT_ACTIVE_ATTACK, 1, 1 ); } /* ==================================================================== Go through a complete battle unit vs. target including known(!) defensive support stuff and with no random modifications. Return the final damage taken by both units. As the terrain may have influence the id of the terrain the battle takes place (defending unit's hex) is provided. ==================================================================== */ void unit_get_expected_losses( Unit *unit, Unit *target, int *unit_damage, int *target_damage ) { int damage, suppr; Unit *df; List *df_units = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); #ifdef DEBUG_ATTACK printf( "***********************\n" ); #endif unit_get_df_units( unit, target, vis_units, df_units ); unit_backup( unit ); unit_backup( target ); /* let defensive fire go to work (no chance to defend against this) */ list_reset( df_units ); while ( ( df = list_next( df_units ) ) ) { unit_get_damage( unit, df, unit, UNIT_DEFENSIVE_ATTACK, 0, 0, &damage, &suppr ); if ( !unit_apply_damage( unit, damage, suppr, 0 ) ) break; } /* actual fight if attack has strength remaining */ if ( unit_get_cur_str( unit ) > 0 ) unit_attack( unit, target, UNIT_ACTIVE_ATTACK, 0, 0 ); /* get done damage */ *unit_damage = unit->str; *target_damage = target->str; unit_restore( unit ); unit_restore( target ); *unit_damage = unit->str - *unit_damage; *target_damage = target->str - *target_damage; list_delete( df_units ); } /* ==================================================================== This function checks 'units' for supporters of 'target' that will give defensive fire to before the real battle 'unit' vs 'target' takes place. These units are put to 'df_units' (which is not created here) Only adjacent units are defended and only ONE (randomly chosen) supporter will actually fire as long as it does not have the flag 'full_def_str'. (This means, all units with that flag plus one normal supporter will fire.) ==================================================================== */ void unit_get_df_units( Unit *unit, Unit *target, List *units, List *df_units ) { Unit *entry; list_clear( df_units ); if ( unit->sel_prop->flags & FLYING ) { list_reset( units ); while ( ( entry = list_next( units ) ) ) { if ( entry->killed ) continue; if ( entry == target ) continue; if ( entry == unit ) continue; /* bombers -- intercepting impossibly covered by unit_check_attack() */ if ( !(target->sel_prop->flags & INTERCEPTOR) ) if ( unit_is_close( target, entry ) ) if ( entry->sel_prop->flags & INTERCEPTOR ) if ( player_is_ally( entry->player, target->player ) ) if ( entry->cur_ammo > 0 ) { list_add( df_units, entry ); continue; } /* air-defense */ if ( entry->sel_prop->flags & AIR_DEFENSE ) /* FlaK will not give support when an air-to-air attack is * taking place. First, in reality it would prove distastrous, * second, Panzer General doesn't allow it, either. */ if ( !(target->sel_prop->flags & FLYING) ) if ( unit_is_close( target, entry ) ) /* adjacent help only */ if ( unit_check_attack( entry, unit, UNIT_DEFENSIVE_ATTACK ) ) list_add( df_units, entry ); } } else if ( unit->sel_prop->rng==0 ) { /* artillery for melee combat; if unit attacks ranged, there is no support */ list_reset( units ); while ( ( entry = list_next( units ) ) ) { if ( entry->killed ) continue; if ( entry == target ) continue; if ( entry == unit ) continue; /* HACK: An artillery with range 1 cannot support adjacent units but should do so. So we allow to give defensive fire on a range of 2 like a normal artillery */ if ( entry->sel_prop->flags & ARTILLERY && entry->sel_prop->rng == 1 ) if ( unit_is_close( target, entry ) ) if ( player_is_ally( entry->player, target->player ) ) if ( entry->cur_ammo > 0 ) { list_add( df_units, entry ); continue; } /* normal artillery */ if ( entry->sel_prop->flags & ARTILLERY ) if ( unit_is_close( target, entry ) ) /* adjacent help only */ if ( unit_check_attack( entry, unit, UNIT_DEFENSIVE_ATTACK ) ) list_add( df_units, entry ); } } /* randomly remove all support but one */ if (df_units->count>0) { entry = list_get(df_units,rand()%df_units->count); list_clear(df_units); list_add( df_units, entry ); } } /* get defenders for strategic bombing of players supply center */ void unit_get_df_units_strategic( Unit *unit, Player * player,List *units, List *df_units ) { Unit *entry; list_clear( df_units ); if ( unit->sel_prop->flags & FLYING ) { list_reset( units ); while ( ( entry = list_next( units ) ) ) { if ( entry->killed ) continue; if ( entry == unit ) continue; /* bombers -- intercepting impossibly covered by unit_check_attack() */ if ( unit_is_close( unit, entry ) ) if ( entry->sel_prop->flags & INTERCEPTOR ) if ( player_is_ally( entry->player, player ) ) if ( entry->cur_ammo > 0 ) { list_add( df_units, entry ); continue; } /* air-defense */ if ( entry->sel_prop->flags & AIR_DEFENSE ) if ( unit_is_close( unit, entry ) ) /* adjacent help only */ if ( player_is_ally( entry->player, player ) ) if ( entry->cur_ammo > 0 ) { list_add( df_units, entry ); continue; } } } /* randomly remove all support but one */ if (df_units->count>0) { entry = list_get(df_units,rand()%df_units->count); list_clear(df_units); list_add( df_units, entry ); } } /* ==================================================================== Check if these two units are allowed to merge with each other. ==================================================================== */ int unit_check_merge( Unit *unit, Unit *source ) { /* units must not be sea/air embarked */ if ( unit->embark != EMBARK_NONE || source->embark != EMBARK_NONE ) return 0; /* same class */ if ( unit->prop.class != source->prop.class ) return 0; /* same player */ if ( !player_is_ally( unit->player, source->player ) ) return 0; /* first unit must not have moved so far */ if ( !unit->unused ) return 0; /* both units must have same movement type */ if ( unit->prop.mov_type != source->prop.mov_type ) return 0; /* the unit strength must not exceed limit */ if ( unit->str + source->str > 13 ) return 0; /* fortresses (unit-class 7) could not merge */ if ( unit->prop.class == 7 ) return 0; /* artillery with different ranges may not merge */ if (unit->prop.flags&ARTILLERY && unit->prop.rng!=source->prop.rng) return 0; /* not failed so far: allow merge */ return 1; } /* ==================================================================== Get the maximum strength the unit can give for a split in its current state. Unit must have at least strength 3 remaining. ==================================================================== */ int unit_get_split_strength( Unit *unit ) { if ( unit->embark != EMBARK_NONE ) return 0; if ( !unit->unused ) return 0; if ( unit->str <= 4 ) return 0; if ( unit->prop.class == 7 ) return 0; /* fortress */ return unit->str - 4; } /* ==================================================================== Merge these two units: unit is the new unit and source must be removed from map and memory after this function was called. ==================================================================== */ void unit_merge( Unit *unit, Unit *source ) { /* units relative weight */ float weight1, weight2, total; int i, neg; /* compute weight */ weight1 = unit->str; weight2 = source->str; total = unit->str + source->str; /* adjust so weight1 + weigth2 = 1 */ weight1 /= total; weight2 /= total; /* no other actions allowed */ unit->unused = 0; unit->cur_mov = 0; unit->cur_atk_count = 0; /* update cost since used for gaining prestige */ unit->prop.cost = (unit->prop.cost * unit->str + source->prop.cost * source->str) / (unit->str + source->str); /* repair damage */ unit->str += source->str; /* reorganization costs some entrenchment: the new units are assumed to have entrenchment 0 since they come. new entr is rounded weighted sum */ unit->entr = floor((float)unit->entr*weight1+0.5); /* + 0 * weight2 */ /* update experience */ i = (int)( weight1 * unit->exp + weight2 * source->exp ); unit->exp = 0; unit_add_exp( unit, i ); /* update unit::prop */ /* related initiative */ unit->prop.ini = (int)( weight1 * unit->prop.ini + weight2 * source->prop.ini ); /* minimum movement */ if ( source->prop.mov < unit->prop.mov ) unit->prop.mov = source->prop.mov; /* maximum spotting */ if ( source->prop.spt > unit->prop.spt ) unit->prop.spt = source->prop.spt; /* maximum range */ if ( source->prop.rng > unit->prop.rng ) unit->prop.rng = source->prop.rng; /* relative attack count */ unit->prop.atk_count = (int)( weight1 * unit->prop.atk_count + weight2 * source->prop.atk_count ); if ( unit->prop.atk_count == 0 ) unit->prop.atk_count = 1; /* relative attacks */ /* if attack is negative simply use absolute value; only restore negative if both units are negative */ for ( i = 0; i < trgt_type_count; i++ ) { neg = ( unit->prop.atks[i] < 0 && source->prop.atks[i] < 0 ); unit->prop.atks[i] = (int)( weight1 * abs( unit->prop.atks[i] ) + weight2 * ( source->prop.atks[i] ) ); if ( neg ) unit->prop.atks[i] *= -1; } /* relative defence */ unit->prop.def_grnd = (int)( weight1 * unit->prop.def_grnd + weight2 * source->prop.def_grnd ); unit->prop.def_air = (int)( weight1 * unit->prop.def_air + weight2 * source->prop.def_air ); unit->prop.def_cls = (int)( weight1 * unit->prop.def_cls + weight2 * source->prop.def_cls ); /* relative ammo */ unit->prop.ammo = (int)( weight1 * unit->prop.ammo + weight2 * source->prop.ammo ); unit->cur_ammo = (int)( weight1 * unit->cur_ammo + weight2 * source->cur_ammo ); /* relative fuel */ unit->prop.fuel = (int)( weight1 * unit->prop.fuel + weight2 * source->prop.fuel ); unit->cur_fuel = (int)( weight1 * unit->cur_fuel + weight2 * source->cur_fuel ); /* merge flags */ unit->prop.flags |= source->prop.flags; /* sounds, picture are kept */ /* unit::trans_prop isn't updated so far: */ /* transporter of first unit is kept if any else second unit's transporter is used */ if ( unit->trsp_prop.id == 0 && source->trsp_prop.id ) { memcpy( &unit->trsp_prop, &source->trsp_prop, sizeof( Unit_Lib_Entry ) ); /* as this must be a ground transporter copy current fuel value */ unit->cur_fuel = source->cur_fuel; } update_bar( unit ); } /* ==================================================================== Return True if unit uses a ground transporter. ==================================================================== */ int unit_check_ground_trsp( Unit *unit ) { if ( unit->trsp_prop.id == 0 ) return 0; if ( unit->trsp_prop.flags & FLYING ) return 0; if ( unit->trsp_prop.flags & SWIMMING ) return 0; return 1; } /* ==================================================================== Backup unit to its backup pointer (shallow copy) ==================================================================== */ void unit_backup( Unit *unit ) { memcpy( unit->backup, unit, sizeof( Unit ) ); } void unit_restore( Unit *unit ) { if ( unit->backup->prop.id != 0 ) { memcpy( unit, unit->backup, sizeof( Unit ) ); memset( unit->backup, 0, sizeof( Unit ) ); } else fprintf( stderr, "%s: can't restore backup: not set\n", unit->name ); } /* ==================================================================== Check if target may do rugged defense ==================================================================== */ int unit_check_rugged_def( Unit *unit, Unit *target ) { if ( ( unit->sel_prop->flags & FLYING ) || ( target->sel_prop->flags & FLYING ) ) return 0; if ( ( unit->sel_prop->flags & SWIMMING ) || ( target->sel_prop->flags & SWIMMING ) ) return 0; if (unit->sel_prop->flags & ARTILLERY ) return 0; /* no rugged def against range attack */ if (unit->sel_prop->flags&IGNORE_ENTR) return 0; /* no rugged def for pioneers and such */ if ( !unit_is_close( unit, target ) ) return 0; if ( target->entr == 0 ) return 0; return 1; } /* ==================================================================== Compute the targets rugged defense chance. ==================================================================== */ int unit_get_rugged_def_chance( Unit *unit, Unit *target ) { /* PG's formula is 5% * def_entr * ( (def_exp_level + 2) / (atk_exp_level + 2) ) * ( (def_entr_rate + 1) / (atk_entr_rate + 1) ) */ return (int)( 5.0 * target->entr * ( (float)(target->exp_level + 2) / (unit->exp_level + 2) ) * ( (float)(target->sel_prop->entr_rate + 1) / (unit->sel_prop->entr_rate + 1) ) ); } /* ==================================================================== Calculate the used fuel quantity. 'cost' is the base fuel cost to be deducted by terrain movement. The cost will be adjusted as needed. ==================================================================== */ int unit_calc_fuel_usage( Unit *unit, int cost ) { int used = cost; /* air units use up *at least* the half of their initial movement points. */ if ( unit->sel_prop->flags & FLYING ) { int half = unit->sel_prop->mov / 2; if ( used < half ) used = half; } /* ground units face a penalty during bad weather */ if ( !(unit->sel_prop->flags & SWIMMING) && !(unit->sel_prop->flags & FLYING) && weather_types[scen_get_weather()].flags & DOUBLE_FUEL_COST ) used *= 2; return used; } /* ==================================================================== Update unit bar. ==================================================================== */ void unit_update_bar( Unit *unit ) { update_bar(unit); } /* ==================================================================== Disable all actions. ==================================================================== */ void unit_set_as_used( Unit *unit ) { unit->unused = 0; unit->cur_mov = 0; unit->cur_atk_count = 0; } /* ==================================================================== Duplicate the unit. ==================================================================== */ Unit *unit_duplicate( Unit *unit ) { Unit *new = calloc(1,sizeof(Unit)); memcpy(new,unit,sizeof(Unit)); unit_set_generic_name(new, units->count + 1, unit->prop.name); if (unit->sel_prop==&unit->prop) new->sel_prop=&new->prop; else new->sel_prop=&new->trsp_prop; new->backup = calloc( 1, sizeof( Unit ) ); /* terrain can't be updated here */ return new; } transferredUnitProp *unit_create_transfer_props( Unit *unit ) { transferredUnitProp *result = calloc( 1, sizeof( transferredUnitProp ) ); /* copy basic property structs * ALL POINTERS WILL BE REALLOCATED AND BROKEN IN NEXT SCENARIO! */ memcpy(&result->prop, &unit->prop, sizeof(unit->prop)); memcpy(&result->trsp_prop, &unit->trsp_prop, sizeof(unit->trsp_prop)); snprintf( result->prop_id, sizeof(result->prop_id), "%s", unit->prop.id); /* do not keep temporary air/sea transporter */ if( unit->trsp_prop.id && !(unit->trsp_prop.flags & SWIMMING) && !(unit->trsp_prop.flags & FLYING)) snprintf( result->trsp_prop_id,sizeof(result->trsp_prop_id),"%s",unit->trsp_prop.id ); else snprintf( result->trsp_prop_id,sizeof(result->trsp_prop_id),"none" ); snprintf( result->name, sizeof(result->name),"%s", unit->name); snprintf( result->nation_id, sizeof(result->nation_id), "%s",unit->nation->id); snprintf( result->player_id, sizeof(result->player_id), "%s",unit->player->id); result->str = unit->str; result->exp = unit->exp; snprintf( result->tag, sizeof(result->tag), "%s",unit->tag); return result; } /* ==================================================================== Check if unit has low ammo or fuel. ==================================================================== */ int unit_low_fuel( Unit *unit ) { if ( !unit_check_fuel_usage( unit ) ) return 0; if ( unit->sel_prop->flags & FLYING ) { if ( unit->cur_fuel <= 20 ) return 1; return 0; } if ( unit->cur_fuel <= 10 ) return 1; return 0; } int unit_low_ammo( Unit *unit ) { /* a unit is low on ammo if it has less than twenty percent of its * class' ammo supply left, or less than two quantities, * whatever value is lower */ int percentage = unit->sel_prop->ammo / 5; return unit->embark == EMBARK_NONE && unit->cur_ammo <= MINIMUM( percentage, 2 ); } /* ==================================================================== Check whether unit can be considered for deployment. ==================================================================== */ int unit_supports_deploy( Unit *unit ) { return !(unit->prop.flags & SWIMMING) /* ships and */ && unit->prop.mov > 0; /* fortresses cannot be deployed */ } lgeneral-1.3.1/src/engine.c0000664000175000017500000055330212555410410012435 00000000000000/*************************************************************************** engine.c - description ------------------- begin : Sat Feb 3 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifdef USE_DL #include #endif #include #include "lgeneral.h" #include "date.h" #include "event.h" #include "windows.h" #include "nation.h" #include "unit.h" #include "purchase_dlg.h" #include "gui.h" #include "map.h" #include "scenario.h" #include "slot.h" #include "action.h" #include "strat_map.h" #include "campaign.h" #include "ai.h" #include "engine.h" #include "localize.h" /* ==================================================================== Externals ==================================================================== */ extern Sdl sdl; extern Config config; extern int cur_weather; /* used in unit.c to compute weather influence on units; set by set_player() */ extern Nation *nations; extern int nation_count; extern int nation_flag_width, nation_flag_height; extern int hex_w, hex_h; extern int hex_x_offset, hex_y_offset; extern Terrain_Icons *terrain_icons; extern int map_w, map_h; extern Weather_Type *weather_types; extern List *players; extern int turn; extern List *units; extern List *reinf; extern List *avail_units; extern Scen_Info *scen_info; extern Map_Tile **map; extern Mask_Tile **mask; extern GUI *gui; extern int camp_loaded; extern Camp_Entry *camp_cur_scen; extern Setup setup; extern int term_game, sdl_quit; extern List *prev_scen_core_units; extern char *prev_scen_fname; /* ==================================================================== Engine ==================================================================== */ int modify_fog = 0; /* if this is False the fog initiated by map_set_fog() is kept throughout the turn else it's updated with movement mask etc */ int cur_ctrl = 0; /* current control type (equals player->ctrl if set else it's PLAYER_CTRL_NOBODY) */ Player *cur_player = 0; /* current player pointer */ typedef struct { /* unit move backup */ int used; Unit unit; /* shallow copy of unit */ /* used to reset map flag if unit captured one */ int flag_saved; /* these to values used? */ Nation *dest_nation; Player *dest_player; } Move_Backup; Move_Backup move_backup = { 0 }; /* backup to undo last move */ int fleeing_unit = 0; /* if this is true the unit's move is not backuped */ int air_mode = 0; /* air units are primary */ int end_scen = 0; /* True if scenario is finished or aborted */ List *left_deploy_units = 0; /* list with unit pointers to avail_units of all units that arent placed yet */ Unit *deploy_unit = 0; /* current unit selected in deploy list */ Unit *surrender_unit = 0;/* unit that will surrender */ Unit *move_unit = 0; /* currently moving unit */ Unit *surp_unit = 0; /* if set cur_unit has surprise_contact with this unit if moving */ Unit *cur_unit = 0; /* currently selected unit (by human) */ Unit *cur_target = 0; /* target of cur_unit */ Unit *cur_atk = 0; /* current attacker - if not defensive fire it's identical with cur_unit */ Unit *cur_def = 0; /* is the current defender - identical with cur_target if not defensive fire (then it's cur_unit) */ List *df_units = 0; /* this is a list of defensive fire units giving support to cur_target. as long as this list isn't empty cur_unit becomes the cur_def and cur_atk is the current defensive unit. if this list is empty in the last step cur_unit and cur_target actually do their fight if attack wasn't broken up */ int defFire = 0; /* combat is supportive so switch casualties */ int merge_unit_count = 0; Unit *merge_units[MAP_MERGE_UNIT_LIMIT]; /* list of merge partners for cur_unit */ int split_unit_count = 0; Unit *split_units[MAP_SPLIT_UNIT_LIMIT]; /* list of split partners */ int cur_split_str = 0; /* DISPLAY */ enum { SC_NONE = 0, SC_VERT, SC_HORI }; int sc_type = 0, sc_diff = 0; /* screen copy type. used to speed up complete map updates */ SDL_Surface *sc_buffer = 0; /* screen copy buffer */ int *hex_mask = 0; /* used to determine hex from pointer pos */ int map_x, map_y; /* current position in map */ int map_sw, map_sh; /* number of tiles drawn to screen */ int map_sx, map_sy; /* position where to draw first tile */ int draw_map = 0; /* if this flag is true engine_update() calls engine_draw_map() */ enum { SCROLL_NONE = 0, SCROLL_LEFT, SCROLL_RIGHT, SCROLL_UP, SCROLL_DOWN }; int scroll_hori = 0, scroll_vert = 0; /* scrolling directions if any */ int blind_cpu_turn = 0; /* if this is true all movements are hidden */ Button *last_button = 0; /* last button that was pressed. used to clear the down state when button was released */ /* MISC */ int old_mx = -1, old_my = -1; /* last map tile the cursor was on */ int old_region = -1; /* region in map tile */ int scroll_block_keys = 0; /* block keys fro scrolling */ int scroll_block = 0; /* block scrolling if set used to have a constant scrolling speed */ int scroll_time = 100; /* one scroll every 'scroll_time' milliseconds */ Delay scroll_delay; /* used to time out the remaining milliseconds */ int slot_id; /* slot id to which game is saved */ Delay blink_delay; /* used to blink dots on strat map */ /* ACTION */ enum { STATUS_NONE = 0, /* actions that are divided into different phases have this status set */ STATUS_MOVE, /* move unit along 'way' */ STATUS_ATTACK, /* unit attacks cur_target (inclusive defensive fire) */ STATUS_STRAT_ATTACK, /* aka carpet bombing */ STATUS_MERGE, /* human may merge with partners */ STATUS_SPLIT, /* human wants to split up a unit */ STATUS_DEPLOY, /* human may deploy units */ STATUS_UNIT_LIST, /* human may see unit list */ STATUS_DROP, /* select drop zone for parachutists */ STATUS_INFO, /* show full unit infos */ STATUS_SCEN_INFO, /* show scenario info */ STATUS_CONF, /* run confirm window */ STATUS_UNIT_MENU, /* running the unit buttons */ STATUS_GAME_MENU, /* game menu */ STATUS_DEPLOY_INFO, /* full unit info while deploying */ STATUS_STRAT_MAP, /* showing the strategic map */ STATUS_RENAME, /* rename unit */ STATUS_SAVE, /* running the save edit */ STATUS_TITLE, /* show the background */ STATUS_TITLE_MENU, /* run title menu */ STATUS_RUN_SCEN_DLG, /* run scenario dialogue */ STATUS_RUN_CAMP_DLG, /* run campaign dialogue */ STATUS_RUN_SETUP, /* run setup of scenario */ STATUS_RUN_MODULE_DLG, /* select ai module */ STATUS_CAMP_BRIEFING, /* run campaign briefing dialogue */ STATUS_PURCHASE, /* run unit purchase dialogue */ STATUS_VMODE_DLG /* run video mode selection */ }; int status; /* statuses defined in engine_tools.h */ enum { PHASE_NONE = 0, /* COMBAT */ PHASE_INIT_ATK, /* initiate attack cross */ PHASE_SHOW_ATK_CROSS, /* attacker cross */ PHASE_SHOW_DEF_CROSS, /* defender cross */ PHASE_COMBAT, /* compute and take damage */ PHASE_EVASION, /* sub evades */ PHASE_RUGGED_DEF, /* stop the engine for some time and display the rugged defense message */ PHASE_PREP_EXPLOSIONS, /* setup the explosions */ PHASE_SHOW_EXPLOSIONS, /* animate both explosions */ PHASE_FIGHT_MSG, /* show fight status messages */ PHASE_CHECK_RESULT, /* clean up this fight and initiate next if any */ PHASE_BROKEN_UP_MSG, /* display broken up message if needed */ PHASE_SURRENDER_MSG, /* display surrender message */ PHASE_END_COMBAT, /* clear status and redraw */ /* STRATEGIC ATTACK */ PHASE_SA_INIT, /* set label and delay */ PHASE_SA_ATTACK, /* time out delay, then perform attack */ PHASE_SA_EXPLOSION, /* on success: show explosion */ PHASE_SA_FINALIZE, /* clean up */ /* MOVEMENT */ PHASE_INIT_MOVE, /* initiate movement */ PHASE_START_SINGLE_MOVE, /* initiate movement to next way point from current position */ PHASE_RUN_SINGLE_MOVE, /* run single movement and call START_SINGLE_MOVEMENT when done */ PHASE_CHECK_LAST_MOVE, /* check last single move for suprise contact, flag capture, scenario end */ PHASE_END_MOVE /* finalize movement */ }; int phase; Way_Point *way = 0; /* way points for movement */ int way_length = 0; int way_pos = 0; int dest_x, dest_y; /* ending point of the way */ Image *move_image = 0; /* image that contains the moving unit graphic */ float move_vel = 0.3; /* pixels per millisecond */ Delay move_time; /* time a single movement takes */ typedef struct { float x,y; } Vector; Vector unit_vector; /* floating position of animation */ Vector move_vector; /* vector the unit moves along */ int surp_contact = 0; /* true if the current combat is the result of a surprise contact */ int atk_result = 0; /* result of the attack */ Delay msg_delay; /* broken up message delay */ int atk_took_damage = 0; int def_took_damage = 0; /* if True an explosion is displayed when attacked */ int atk_damage_delta; /* damage delta for attacking unit */ int atk_suppr_delta; /* supression delta for attacking unit */ int def_damage_delta; /* damage delta for defending unit */ int def_suppr_delta; /* supression delta for defending unit */ static int has_danger_zone; /* whether there are any danger zones */ int deploy_turn; /* 1 if this is the deployment-turn */ static Action *top_committed_action;/* topmost action not to be removed */ static struct MessagePane *camp_pane; /* state of campaign message pane */ static char *last_debriefing; /* text of last debriefing */ /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Forwarded ==================================================================== */ static void engine_draw_map(); static void engine_update_info( int mx, int my, int region ); static void engine_goto_xy( int x, int y ); static void engine_set_status( int newstat ); static void engine_show_final_message( void ); static void engine_select_player( Player *player, int skip_unit_prep ); static int engine_capture_flag( Unit *unit ); static void engine_show_game_menu( int cx, int cy ); static void engine_handle_button( int id ); static int engine_has_strategic_target(int active, int x,int y); /* ==================================================================== End the scenario and display final message. ==================================================================== */ static void engine_finish_scenario() { /* finalize ai turn if any */ if ( cur_player && cur_player->ctrl == PLAYER_CTRL_CPU ) (cur_player->ai_finalize)(); blind_cpu_turn = 0; engine_show_final_message(); group_set_active( gui->base_menu, ID_MENU, 0 ); draw_map = 1; image_hide( gui->cursors, 0 ); gui_set_cursor( CURSOR_STD ); engine_select_player( 0, 0 ); turn = scen_info->turn_limit; engine_set_status( STATUS_NONE ); phase = PHASE_NONE; if (camp_loaded) scen_save_core_units(); /* store core units for next scenario */ } /* ==================================================================== Return the first human player. ==================================================================== */ static Player *engine_human_player(int *human_count) { Player *human = 0; int count = 0; int i; for ( i = 0; i < players->count; i++ ) { Player *player = list_get( players, i ); if ( player->ctrl == PLAYER_CTRL_HUMAN ) { if ( count == 0 ) human = player; count++; } } if (human_count) *human_count = count; return human; } /* ==================================================================== Clear danger zone. ==================================================================== */ static void engine_clear_danger_mask() { if ( has_danger_zone ) { map_clear_mask( F_DANGER ); has_danger_zone = 0; } } /* ==================================================================== Set wanted status. ==================================================================== */ static void engine_set_status( int newstat ) { if ( newstat == STATUS_NONE && setup.type == SETUP_RUN_TITLE ) { status = STATUS_TITLE; /* re-show main menu */ if (!term_game) engine_show_game_menu(10,10); } else status = newstat; } /* ==================================================================== Draw wallpaper and background. ==================================================================== */ static void engine_draw_bkgnd() { int i, j; for ( j = 0; j < sdl.screen->h; j += gui->wallpaper->h ) for ( i = 0; i < sdl.screen->w; i += gui->wallpaper->w ) { DEST( sdl.screen, i, j, gui->wallpaper->w, gui->wallpaper->h ); SOURCE( gui->wallpaper, 0, 0 ); blit_surf(); } DEST( sdl.screen, ( sdl.screen->w - gui->bkgnd->w ) / 2, ( sdl.screen->h - gui->bkgnd->h ) / 2, gui->bkgnd->w, gui->bkgnd->h ); SOURCE( gui->bkgnd, 0, 0 ); blit_surf(); } /* ==================================================================== Returns true when the status screen dismission events took place. ==================================================================== */ inline static int engine_status_screen_dismissed() { int dummy; return event_get_buttonup( &dummy, &dummy, &dummy ) || event_check_key(SDLK_SPACE) || event_check_key(SDLK_RETURN) || event_check_key(SDLK_ESCAPE) || event_check_quit(); } #if 0 /* ==================================================================== Display a big message box (e.g. briefing) and wait for click. ==================================================================== */ static void engine_show_message( char *msg ) { struct MessagePane *pane = gui_create_message_pane(); gui_set_message_pane_text(pane, msg); engine_draw_bkgnd(); gui_draw_message_pane(pane); /* wait */ SDL_PumpEvents(); event_clear(); while ( !engine_status_screen_dismissed() ) { SDL_PumpEvents(); SDL_Delay( 20 ); } event_clear(); gui_delete_message_pane(pane); } #endif /* ==================================================================== Store debriefing of last scenario or an empty string. ==================================================================== */ static void engine_store_debriefing(const char *result) { const char *str = camp_get_description(result); free(last_debriefing); last_debriefing = 0; if (str) last_debriefing = strdup(str); } /* ==================================================================== Prepare display of next campaign briefing. ==================================================================== */ static void engine_prep_camp_brief() { gui_delete_message_pane(camp_pane); camp_pane = 0; engine_draw_bkgnd(); camp_pane = gui_create_message_pane(); /* make up scenario text */ { char *txt = alloca((camp_cur_scen->title ? strlen(camp_cur_scen->title) + 2 : 0) + (last_debriefing ? strlen(last_debriefing) + 1 : 0) + (camp_cur_scen->brief ? strlen(camp_cur_scen->brief) : 0) + 2 + 1); strcpy(txt, ""); if (camp_cur_scen->title) { strcat(txt, camp_cur_scen->title); strcat(txt, "##"); } if (last_debriefing) { strcat(txt, last_debriefing); strcat(txt, " "); } if (camp_cur_scen->brief) { strcat(txt, camp_cur_scen->brief); strcat(txt, "##"); } gui_set_message_pane_text(camp_pane, txt); } /* provide options or default id */ if (camp_cur_scen->scen) { gui_set_message_pane_default(camp_pane, "nextscen"); } else { List *ids = camp_get_result_list(); List *vals = list_create(LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK); char *result; list_reset(ids); while ((result = list_next(ids))) { const char *desc = camp_get_description(result); list_add(vals, desc ? (void *)desc : (void *)result); } /* no ids means finishing state */ if (ids->count == 0) gui_set_message_pane_default(camp_pane, " "); /* don't provide explicit selection if there is only one id */ else if (ids->count == 1) gui_set_message_pane_default(camp_pane, list_first(ids)); else gui_set_message_pane_options(camp_pane, ids, vals); list_delete(ids); list_delete(vals); } gui_draw_message_pane(camp_pane); engine_set_status(STATUS_CAMP_BRIEFING); } /* ==================================================================== Check menu buttons and enable/disable according to engine status. ==================================================================== */ static void engine_check_menu_buttons() { /* airmode */ group_set_active( gui->base_menu, ID_AIR_MODE, 1 ); /* menu */ if ( cur_ctrl == PLAYER_CTRL_NOBODY ) group_set_active( gui->base_menu, ID_MENU, 0 ); else group_set_active( gui->base_menu, ID_MENU, 1 ); /* info */ if ( status != STATUS_NONE ) group_set_active( gui->base_menu, ID_SCEN_INFO, 0 ); else group_set_active( gui->base_menu, ID_SCEN_INFO, 1 ); /* purchase */ if ( config.purchase && cur_ctrl != PLAYER_CTRL_NOBODY && (!deploy_turn && status == STATUS_NONE ) ) group_set_active( gui->base_menu, ID_PURCHASE, 1 ); else group_set_active( gui->base_menu, ID_PURCHASE, 0 ); /* deploy */ if ( ( avail_units->count > 0 || deploy_turn ) && status == STATUS_NONE ) group_set_active( gui->base_menu, ID_DEPLOY, 1 ); else group_set_active( gui->base_menu, ID_DEPLOY, 0 ); //unit list if ( status == STATUS_NONE ) group_set_active( gui->base_menu, ID_UNIT_LIST, 1 ); else group_set_active( gui->base_menu, ID_UNIT_LIST, 0 ); /* strat map */ if ( status == STATUS_NONE ) group_set_active( gui->base_menu, ID_STRAT_MAP, 1 ); else group_set_active( gui->base_menu, ID_STRAT_MAP, 0 ); /* end turn */ if ( status != STATUS_NONE ) group_set_active( gui->base_menu, ID_END_TURN, 0 ); else group_set_active( gui->base_menu, ID_END_TURN, 1 ); /* victory conditions */ if ( status != STATUS_NONE ) group_set_active( gui->base_menu, ID_CONDITIONS, 0 ); else group_set_active( gui->base_menu, ID_CONDITIONS, 1 ); } /* ==================================================================== Check unit buttons. (use current unit) ==================================================================== */ static void engine_check_unit_buttons() { char str[128]; if ( cur_unit == 0 ) return; /* rename */ group_set_active( gui->unit_buttons, ID_RENAME, 1 ); /* supply */ if ( unit_check_supply( cur_unit, UNIT_SUPPLY_ANYTHING, 0, 0 ) ) { group_set_active( gui->unit_buttons, ID_SUPPLY, 1 ); /* show supply level */ sprintf( str, tr("Supply Unit [s] (Rate:%3i%%)"), cur_unit->supply_level ); strcpy( group_get_button( gui->unit_buttons, ID_SUPPLY )->tooltip, str ); } else group_set_active( gui->unit_buttons, ID_SUPPLY, 0 ); /* merge */ if ( merge_unit_count > 0 ) group_set_active( gui->unit_buttons, ID_MERGE, 1 ); else group_set_active( gui->unit_buttons, ID_MERGE, 0 ); /* split */ if (unit_get_split_strength(cur_unit)>0) group_set_active( gui->unit_buttons, ID_SPLIT, 1 ); else group_set_active( gui->unit_buttons, ID_SPLIT, 0 ); /* undo */ if ( move_backup.used ) group_set_active( gui->unit_buttons, ID_UNDO, 1 ); else group_set_active( gui->unit_buttons, ID_UNDO, 0 ); /* air embark */ if ( map_check_unit_embark( cur_unit, cur_unit->x, cur_unit->y, EMBARK_AIR, 0 ) || map_check_unit_debark( cur_unit, cur_unit->x, cur_unit->y, EMBARK_AIR, 0 ) ) group_set_active( gui->unit_buttons, ID_EMBARK_AIR, 1 ); else group_set_active( gui->unit_buttons, ID_EMBARK_AIR, 0 ); /* disband */ if (cur_unit->unused) group_set_active( gui->unit_buttons, ID_DISBAND, 1 ); else group_set_active( gui->unit_buttons, ID_DISBAND, 0 ); } /* ==================================================================== Show/Hide full unit info while deploying ==================================================================== */ static void engine_show_deploy_unit_info( Unit *unit ) { status = STATUS_DEPLOY_INFO; gui_show_full_info( unit ); group_set_active( gui->deploy_window, ID_DEPLOY_UP, 0 ); group_set_active( gui->deploy_window, ID_DEPLOY_DOWN, 0 ); group_set_active( gui->deploy_window, ID_APPLY_DEPLOY, 0 ); group_set_active( gui->deploy_window, ID_CANCEL_DEPLOY, 0 ); } static void engine_hide_deploy_unit_info() { status = STATUS_DEPLOY; frame_hide( gui->finfo, 1 ); old_mx = old_my = -1; group_set_active( gui->deploy_window, ID_DEPLOY_UP, 1 ); group_set_active( gui->deploy_window, ID_DEPLOY_DOWN, 1 ); group_set_active( gui->deploy_window, ID_APPLY_DEPLOY, 1 ); group_set_active( gui->deploy_window, ID_CANCEL_DEPLOY, !deploy_turn ); } /* ==================================================================== Show/Hide game menu. ==================================================================== */ static void engine_show_game_menu( int cx, int cy ) { int i; if ( setup.type == SETUP_RUN_TITLE ) { status = STATUS_TITLE_MENU; if ( cy + gui->main_menu->frame->img->img->h >= sdl.screen->h ) cy = sdl.screen->h - gui->main_menu->frame->img->img->h; group_move( gui->main_menu, cx, cy ); group_hide( gui->main_menu, 0 ); group_set_active( gui->main_menu, ID_SAVE, 0 ); group_set_active( gui->main_menu, ID_RESTART, 0 ); } else { engine_check_menu_buttons(); gui_show_menu( cx, cy ); status = STATUS_GAME_MENU; group_set_active( gui->main_menu, ID_SAVE, 1 ); group_set_active( gui->main_menu, ID_RESTART, 1 ); } /* lock config buttons */ group_lock_button( gui->opt_menu, ID_C_SUPPLY, config.supply ); group_lock_button( gui->opt_menu, ID_C_WEATHER, config.weather ); group_lock_button( gui->opt_menu, ID_C_GRID, config.grid ); group_lock_button( gui->opt_menu, ID_C_SHOW_CPU, config.show_cpu_turn ); group_lock_button( gui->opt_menu, ID_C_SHOW_STRENGTH, config.show_bar ); group_lock_button( gui->opt_menu, ID_C_SOUND, config.sound_on ); /* loads */ gui_update_slot_tooltips(); for ( i = 0; i < SLOT_COUNT; i++ ) if ( slot_is_valid( i ) ) group_set_active( gui->load_menu, ID_LOAD_0 + i, 1 ); else group_set_active( gui->load_menu, ID_LOAD_0 + i, 0 ); } static void engine_hide_game_menu() { if ( setup.type == SETUP_RUN_TITLE ) { status = STATUS_TITLE; label_hide( gui->label, 1 ); label_hide( gui->label2, 1 ); } else engine_set_status( STATUS_NONE ); group_hide( gui->base_menu, 1 ); group_hide( gui->main_menu, 1 ); group_hide( gui->save_menu, 1 ); group_hide( gui->load_menu, 1 ); group_hide( gui->opt_menu, 1 ); old_mx = old_my = -1; } /* ==================================================================== Show/Hide unit menu. ==================================================================== */ static void engine_show_unit_menu( int cx, int cy ) { engine_check_unit_buttons(); gui_show_unit_buttons( cx, cy ); status = STATUS_UNIT_MENU; } static void engine_hide_unit_menu() { engine_set_status( STATUS_NONE ); group_hide( gui->unit_buttons, 1 ); group_hide( gui->split_menu, 1 ); old_mx = old_my = -1; } /* ==================================================================== Initiate the confirmation window. (if this returnes ID_CANCEL the last action stored will be removed) ==================================================================== */ static void engine_confirm_action( const char *text ) { top_committed_action = 0; gui_show_confirm( text ); status = STATUS_CONF; } /* ==================================================================== Initiate the confirmation window. If this returnes ID_CANCEL all actions downto but excluding 'last_persistent_action' are removed. If 'last_persistent_action' does not exist, all actions are removed. ==================================================================== */ static void engine_confirm_actions( Action *last_persistent_action, const char *text ) { top_committed_action = last_persistent_action; gui_show_confirm( text ); status = STATUS_CONF; } /* ==================================================================== Display final scenario message (called when scen_check_result() returns True). ==================================================================== */ static void engine_show_final_message() { event_wait_until_no_input(); SDL_FillRect( sdl.screen, 0, 0x0 ); gui->font_turn_info->align = ALIGN_X_CENTER | ALIGN_Y_CENTER; write_text( gui->font_turn_info, sdl.screen, sdl.screen->w / 2, sdl.screen->h / 2, scen_get_result_message(), 255 ); refresh_screen( 0, 0, 0, 0 ); while ( !engine_status_screen_dismissed() ) { SDL_PumpEvents(); SDL_Delay( 20 ); } event_clear(); } /* ==================================================================== Show turn info (done before turn) ==================================================================== */ static void engine_show_turn_info() { int text_x, text_y; int time_factor; char text[400]; FULL_DEST( sdl.screen ); fill_surf( 0x0 ); #if 0 # define i time_factor gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_TOP; text_x = text_y = 0; write_line( sdl.screen, gui->font_std, "Charset Test (latin1): Flöße über Wasser. \241Señálalo!", text_x, &text_y ); text[32] = 0; for (i = 0; i < 256; i++) { text[i % 32] = i ? i : 127; if ((i + 1) % 32 == 0) write_line( sdl.screen, gui->font_std, text, text_x, &text_y ); } # undef i #endif text_x = sdl.screen->w >> 1; text_y = ( sdl.screen->h - 4 * gui->font_turn_info->height ) >> 1; gui->font_turn_info->align = ALIGN_X_CENTER | ALIGN_Y_TOP; scen_get_date( text ); write_text( gui->font_turn_info, sdl.screen, text_x, text_y, text, OPAQUE ); text_y += gui->font_turn_info->height; sprintf( text, tr("Next Player: %s"), cur_player->name ); write_text( gui->font_turn_info, sdl.screen, text_x, text_y, text, OPAQUE ); text_y += gui->font_turn_info->height; if ( deploy_turn ) { if ( cur_player->ctrl == PLAYER_CTRL_HUMAN ) { text_y += gui->font_turn_info->height; write_text( gui->font_turn_info, sdl.screen, text_x, text_y, tr("Deploy your troops"), OPAQUE ); text_y += gui->font_turn_info->height; refresh_screen( 0, 0, 0, 0 ); SDL_PumpEvents(); event_clear(); while ( !engine_status_screen_dismissed() ) SDL_PumpEvents(); SDL_Delay( 20 ); event_clear(); } /* don't show screen for computer-controlled players */ return; } if ( turn + 1 < scen_info->turn_limit ) { sprintf( text, tr("Remaining Turns: %i"), scen_info->turn_limit - turn ); write_text( gui->font_turn_info, sdl.screen, text_x, text_y, text, OPAQUE ); text_y += gui->font_turn_info->height; } sprintf( text, tr("Weather: %s"), weather_types[scen_get_weather()].name ); write_text( gui->font_turn_info, sdl.screen, text_x, text_y, text, OPAQUE ); text_y += gui->font_turn_info->height; if ( turn + 1 < scen_info->turn_limit ) sprintf( text, tr("Turn: %d"), turn + 1 ); else sprintf( text, tr("Last Turn") ); write_text( gui->font_turn_info, sdl.screen, text_x, text_y, text, OPAQUE ); /* hint about available reinforcements */ if (avail_units->count > 0) { text_y += gui->font_turn_info->height; text_y += gui->font_turn_info->height; sprintf( text, tr("New units can be deployed!") ); write_text( gui->font_turn_info, sdl.screen, text_x, text_y, text, OPAQUE ); } refresh_screen( 0, 0, 0, 0 ); SDL_PumpEvents(); event_clear(); time_factor = 3000/20; /* wait 3 sec */ while ( !engine_status_screen_dismissed() && time_factor ) { SDL_PumpEvents(); SDL_Delay( 20 ); if (cur_ctrl != PLAYER_CTRL_HUMAN) time_factor--; } event_clear(); } /* ==================================================================== Backup data that will be restored when unit move was undone. (destination flag, spot mask, unit position) If x != -1 the flag at x,y will be saved. ==================================================================== */ static void engine_backup_move( Unit *unit, int x, int y ) { if ( move_backup.used == 0 ) { move_backup.used = 1; memcpy( &move_backup.unit, unit, sizeof( Unit ) ); map_backup_spot_mask(); } if ( x != -1 ) { move_backup.dest_nation = map[x][y].nation; move_backup.dest_player = map[x][y].player; move_backup.flag_saved = 1; } else move_backup.flag_saved = 0; } static void engine_undo_move( Unit *unit ) { int new_embark; if ( !move_backup.used ) return; map_remove_unit( unit ); if ( move_backup.flag_saved ) { map[unit->x][unit->y].player = move_backup.dest_player; map[unit->x][unit->y].nation = move_backup.dest_nation; move_backup.flag_saved = 0; } /* get stuff before restoring pointer */ new_embark = unit->embark; /* restore */ memcpy( unit, &move_backup.unit, sizeof( Unit ) ); /* check debark/embark counters */ if ( unit->embark == EMBARK_NONE ) { if ( new_embark == EMBARK_AIR ) unit->player->air_trsp_used--; if ( new_embark == EMBARK_SEA ) unit->player->sea_trsp_used--; } else if ( unit->embark == EMBARK_SEA && new_embark == EMBARK_NONE ) unit->player->sea_trsp_used++; else if ( unit->embark == EMBARK_AIR && new_embark == EMBARK_NONE ) unit->player->air_trsp_used++; unit_adjust_icon( unit ); /* adjust picture as direction may have changed */ map_insert_unit( unit ); map_restore_spot_mask(); if ( modify_fog ) map_set_fog( F_SPOT ); move_backup.used = 0; } static void engine_clear_backup() { move_backup.used = 0; move_backup.flag_saved = 0; } /* ==================================================================== Remove unit from map and unit list and clear it's influence. ==================================================================== */ static void engine_remove_unit( Unit *unit ) { if (unit->killed >= 2) return; /* check if it's an enemy to the current player; if so the influence must be removed */ if ( !player_is_ally( cur_player, unit->player ) ) map_remove_unit_infl( unit ); map_remove_unit( unit ); /* from unit list */ unit->killed = 2; } /* ==================================================================== Select this unit and unselect old selection if nescessary. Clear the selection if NULL is passed as unit. ==================================================================== */ static void engine_select_unit( Unit *unit ) { /* select unit */ cur_unit = unit; engine_clear_danger_mask(); if ( cur_unit == 0 ) { /* clear view */ if ( modify_fog ) map_set_fog( F_SPOT ); engine_clear_backup(); return; } /* switch air/ground */ if ( unit->sel_prop->flags & FLYING ) air_mode = 1; else air_mode = 0; /* get merge partners and set merge_unit mask */ map_get_merge_units( cur_unit, merge_units, &merge_unit_count ); /* moving range */ map_get_unit_move_mask( unit ); if ( modify_fog && unit->cur_mov > 0 ) { map_set_fog( F_IN_RANGE ); mask[unit->x][unit->y].fog = 0; } else map_set_fog( F_SPOT ); /* determine danger zone for air units */ if ( modify_fog && config.supply && unit->cur_mov && (unit->sel_prop->flags & FLYING) && unit->sel_prop->fuel) has_danger_zone = map_get_danger_mask( unit ); return; } /* ==================================================================== Return current units in avail_units to reinf list. Get all valid reinforcements for the current player from reinf and put them to avail_units. Aircrafts come first. ==================================================================== */ static void engine_update_avail_reinf_list() { Unit *unit; int i; /* available reinforcements */ list_reset( avail_units ); while ( avail_units->count > 0 ) list_transfer( avail_units, reinf, list_first( avail_units ) ); /* add all units from scen::reinf whose delay <= cur_turn */ list_reset( reinf ); for ( i = 0; i < reinf->count; i++ ) { unit = list_next( reinf ); if ( unit->sel_prop->flags & FLYING && unit->player == cur_player && unit->delay <= turn ) { list_transfer( reinf, avail_units, unit ); /* index must be reset if unit was added */ i--; } } list_reset( reinf ); for ( i = 0; i < reinf->count; i++ ) { unit = list_next( reinf ); if ( !(unit->sel_prop->flags & FLYING) && unit->player == cur_player && unit->delay <= turn ) { list_transfer( reinf, avail_units, unit ); /* index must be reset if unit was added */ i--; } } } /* ==================================================================== Initiate player as current player and prepare its turn. If 'skip_unit_prep' is set scen_prep_unit() is not called. ==================================================================== */ static void engine_select_player( Player *player, int skip_unit_prep ) { Player *human; int i, human_count, x, y; Unit *unit; cur_player = player; if ( player ) cur_ctrl = player->ctrl; else cur_ctrl = PLAYER_CTRL_NOBODY; if ( !skip_unit_prep ) { /* update available reinforcements */ engine_update_avail_reinf_list(); /* prepare units for turn -- fuel, mov-points, entr, weather etc */ list_reset( units ); for ( i = 0; i < units->count; i++ ) { unit = list_next( units ); if ( unit->player == cur_player ) { if ( turn == 0 ) scen_prep_unit( unit, SCEN_PREP_UNIT_FIRST ); else scen_prep_unit( unit, SCEN_PREP_UNIT_NORMAL ); } } } /* set fog */ switch ( cur_ctrl ) { case PLAYER_CTRL_HUMAN: modify_fog = 1; map_set_spot_mask(); map_set_fog( F_SPOT ); break; case PLAYER_CTRL_NOBODY: for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) mask[x][y].spot = 1; map_set_fog( 0 ); break; case PLAYER_CTRL_CPU: human = engine_human_player( &human_count ); if ( human_count == 1 ) { modify_fog = 0; map_set_spot_mask(); map_set_fog_by_player( human ); } else { modify_fog = 1; map_set_spot_mask(); map_set_fog( F_SPOT ); } break; } /* count down deploy center delay's (1==deploy center again) */ if ( !skip_unit_prep ) for (x=0;x 1 && map[x][y].player == cur_player) map[x][y].deploy_center--; if (map[x][y].damaged > 0 && map[x][y].player == cur_player) map[x][y].damaged--; } /* set influence mask */ if ( cur_ctrl != PLAYER_CTRL_NOBODY ) map_set_infl_mask(); map_get_vis_units(); if ( !skip_unit_prep) { /* prepare deployment dialog on deployment-turn */ if ( deploy_turn && cur_player && cur_player->ctrl == PLAYER_CTRL_HUMAN ) engine_handle_button( ID_DEPLOY ); else group_hide( gui->deploy_window, 1 ); /* supply levels */ list_reset( units ); while ( ( unit = list_next( units ) ) ) if ( unit->player == cur_player ) scen_adjust_unit_supply_level( unit ); /* mark unit as re-deployable in deployment-turn when it is * located on a deployment-field and is allowed to be re-deployed. */ if (deploy_turn) { map_get_deploy_mask(cur_player,0,1); list_reset( units ); while ( ( unit = list_next( units ) ) ) { if ( unit->player == cur_player ) if ( mask[unit->x][unit->y].deploy ) if ( unit_supports_deploy(unit) ) { unit->fresh_deploy = 1; list_transfer( units, avail_units, unit ); } } } } /* clear selections/actions */ cur_unit = cur_target = cur_atk = cur_def = surp_unit = move_unit = deploy_unit = 0; merge_unit_count = 0; list_clear( df_units ); actions_clear(); scroll_block = 0; } /* ==================================================================== Begin turn of next player. Therefore select next player or use 'forced_player' if not NULL (then the next is the one after 'forced_player'). If 'skip_unit_prep' is set scen_prep_unit() is not called. ==================================================================== */ static void engine_begin_turn( Player *forced_player, int skip_unit_prep ) { char text[400]; int new_turn = 0; Player *player = 0; /* clear various stuff that may be still set from last turn */ group_set_active( gui->confirm, ID_OK, 1 ); engine_hide_unit_menu(); engine_hide_game_menu(); /* clear undo */ engine_clear_backup(); /* clear hideous clicks */ if ( !deploy_turn && cur_ctrl == PLAYER_CTRL_HUMAN ) event_wait_until_no_input(); /* get player */ if ( forced_player == 0 ) { /* next player and turn */ player = players_get_next( &new_turn ); if ( new_turn ) { turn++; } if ( turn == scen_info->turn_limit ) { /* use else condition as scenario result */ /* and take a final look */ scen_check_result( 1 ); blind_cpu_turn = 0; engine_show_final_message(); draw_map = 1; image_hide( gui->cursors, 0 ); gui_set_cursor( CURSOR_STD ); engine_select_player( 0, skip_unit_prep ); engine_set_status( STATUS_NONE ); phase = PHASE_NONE; if (camp_loaded) scen_save_core_units(); /* store core units for next scenario */ return; } else { cur_weather = scen_get_weather(); engine_select_player( player, skip_unit_prep ); } } else { engine_select_player( forced_player, skip_unit_prep ); players_set_current( player_get_index( forced_player ) ); } /* Add prestige for regular turn begin (skip_unit_prep means game has been * loaded). */ if (!deploy_turn && !skip_unit_prep) cur_player->cur_prestige += cur_player->prestige_per_turn[turn]; #if DEBUG_CAMPAIGN if ( scen_check_result(0) ) { blind_cpu_turn = 0; engine_show_final_message(); draw_map = 1; image_hide( gui->cursors, 0 ); gui_set_cursor( CURSOR_STD ); engine_select_player( 0, skip_unit_prep ); engine_set_status( STATUS_NONE ); phase = PHASE_NONE; end_scen = 1; return; } #endif /* init ai turn if any */ if ( cur_player && cur_player->ctrl == PLAYER_CTRL_CPU ) (cur_player->ai_init)(); /* turn info */ engine_show_turn_info(); engine_set_status( deploy_turn ? STATUS_DEPLOY : STATUS_NONE ); phase = PHASE_NONE; /* update screen */ if ( cur_ctrl != PLAYER_CTRL_CPU || config.show_cpu_turn ) { if ( cur_ctrl == PLAYER_CTRL_CPU ) engine_update_info( 0, 0, 0 ); else { image_hide( gui->cursors, 0 ); } engine_draw_map(); refresh_screen( 0, 0, 0, 0 ); blind_cpu_turn = 0; } else { engine_update_info( 0, 0, 0 ); draw_map = 0; FULL_DEST( sdl.screen ); fill_surf( 0x0 ); gui->font_turn_info->align = ALIGN_X_CENTER | ALIGN_Y_CENTER; sprintf( text, tr("CPU thinks...") ); write_text( gui->font_turn_info, sdl.screen, sdl.screen->w >> 1, sdl.screen->h >> 1, text, OPAQUE ); sprintf( text, tr("( Enable option 'Show Cpu Turn' if you want to see what it is doing. )") ); write_text( gui->font_turn_info, sdl.screen, sdl.screen->w >> 1, ( sdl.screen->h >> 1 )+ 20, text, OPAQUE ); refresh_screen( 0, 0, 0, 0 ); blind_cpu_turn = 1; } } /* ==================================================================== End turn of current player without selecting next player. Here autosave happens, aircrafts crash, units get supplied. ==================================================================== */ static void engine_end_turn() { int i; Unit *unit; /* finalize ai turn if any */ if ( cur_player && cur_player->ctrl == PLAYER_CTRL_CPU ) (cur_player->ai_finalize)(); /* if turn == scen_info->turn_limit this was a final look */ if ( turn == scen_info->turn_limit ) { end_scen = 1; return; } /* autosave game for a human */ if (!deploy_turn && cur_player && cur_player->ctrl == PLAYER_CTRL_HUMAN) slot_save( 10 /* Autosave */, "Autosave" ); /* fuel up and kill crashed aircrafts*/ list_reset( units ); while ( (unit=list_next(units)) ) { if ( unit->player != cur_player ) continue; /* supply unused ground units just as if it were done manually and any aircraft with the updated supply level */ if (config.supply && unit_check_fuel_usage( unit )) { if (unit->prop.flags & FLYING) { /* loose half fuel even if not moved */ if (unit->cur_mov>0) /* FIXME: this goes wrong if units may move multiple times */ { unit->cur_fuel -= unit_calc_fuel_usage(unit,0); if (unit->cur_fuel<0) unit->cur_fuel = 0; } /* supply? */ scen_adjust_unit_supply_level( unit ); if ( unit->supply_level > 0 ) { unit->unused = 1; /* required to fuel up */ unit_supply( unit, UNIT_SUPPLY_ALL ); } /* crash if no fuel */ if (unit->cur_fuel == 0) unit->killed = 1; } else if ( unit->unused && unit->supply_level > 0 ) unit_supply( unit, UNIT_SUPPLY_ALL ); } } /* remove all units that were killed in the last turn */ list_reset( units ); for ( i = 0; i < units->count; i++ ) { unit = list_next(units); if ( unit->killed ) { engine_remove_unit( unit ); list_delete_item( units, unit ); i--; /* adjust index */ } } } /* ==================================================================== Get map/screen position from cursor/map position. ==================================================================== */ static int engine_get_screen_pos( int mx, int my, int *sx, int *sy ) { int x = map_sx, y = map_sy; /* this is the starting position if x-pos of first tile on screen is not odd */ /* if it is odd we must add the y_offset to the starting position */ if ( ODD( map_x ) ) y += hex_y_offset; /* reduce to visible map tiles */ mx -= map_x; my -= map_y; /* check range */ if ( mx < 0 || my < 0) return 0; /* compute pos */ x += mx * hex_x_offset; y += my * hex_h; /* if x_pos of first tile is even we must add y_offset to the odd tiles in screen */ if ( EVEN( map_x ) ) { if ( ODD( mx ) ) y += hex_y_offset; } else { /* we must substract y_offset from even tiles */ if ( ODD( mx ) ) y -= hex_y_offset; } /* check range */ if ( x >= sdl.screen->w || y >= sdl.screen->h ) return 0; /* assign */ *sx = x; *sy = y; return 1; } enum { REGION_GROUND = 0, REGION_AIR }; static int engine_get_map_pos( int sx, int sy, int *mx, int *my, int *region ) { int x = 0, y = 0; int screen_x, screen_y; int tile_x, tile_y; int total_y_offset; if ( status == STATUS_STRAT_MAP ) { /* strategic map */ if ( strat_map_get_pos( sx, sy, mx, my ) ) { if ( *mx < 0 || *my < 0 || *mx >= map_w || *my >= map_h ) return 0; return 1; } return 0; } /* get the map offset in screen from mouse position */ x = ( sx - map_sx ) / hex_x_offset; /* y value computes the same like the x value but their may be an offset of engine::y_offset */ total_y_offset = 0; if ( EVEN( map_x ) && ODD( x ) ) total_y_offset = hex_y_offset; /* if engine::map_x is odd there must be an offset of engine::y_offset for the start of first tile */ /* and all odd tiles receive an offset of -engine::y_offset so the result is: odd: offset = 0 even: offset = engine::y_offset it's best to draw this ;-D */ if ( ODD( map_x ) && EVEN( x ) ) total_y_offset = hex_y_offset; y = ( sy - total_y_offset - map_sy ) / hex_h; /* compute screen position */ if ( !engine_get_screen_pos( x + map_x, y + map_y, &screen_x, &screen_y ) ) return 0; /* test mask with sx - screen_x, sy - screen_y */ tile_x = sx - screen_x; tile_y = sy - screen_y; if ( !hex_mask[tile_y * hex_w + tile_x] ) { if ( EVEN( map_x ) ) { if ( tile_y < hex_y_offset && EVEN( x ) ) y--; if ( tile_y >= hex_y_offset && ODD( x ) ) y++; } else { if ( tile_y < hex_y_offset && ODD( x ) ) y--; if ( tile_y >= hex_y_offset && EVEN( x ) ) y++; } x--; } /* region */ if ( tile_y < ( hex_h >> 1 ) ) *region = REGION_AIR; else *region = REGION_GROUND; /* add engine map offset and assign */ x += map_x; y += map_y; *mx = x; *my = y; /* check range */ if ( x < 0 || y < 0 || x >= map_w || y >= map_h ) return 0; /* ok, tile exists */ return 1; } /* ==================================================================== If x,y is not on screen center this map tile and check if screencopy is possible (but only if use_sc is True) ==================================================================== */ static int engine_focus( int x, int y, int use_sc ) { int new_x, new_y; if ( x <= map_x + 1 || y <= map_y + 1 || x >= map_x + map_sw - 1 - 2 || y >= map_y + map_sh - 1 - 2 ) { new_x = x - ( map_sw >> 1 ); new_y = y - ( map_sh >> 1 ); if ( new_x & 1 ) new_x++; if ( new_y & 1 ) new_y++; engine_goto_xy( new_x, new_y ); if ( !use_sc ) sc_type = SC_NONE; /* no screencopy */ return 1; } return 0; } /* ==================================================================== Move to this position and set 'draw_map' if actually moved. ==================================================================== */ static void engine_goto_xy( int x, int y ) { int x_diff, y_diff; /* check range */ if ( x < 0 ) x = 0; if ( y < 0 ) y = 0; /* if more tiles are displayed then map has ( black space the rest ) no change in position allowed */ if ( map_sw >= map_w ) x = 0; else if ( x > map_w - map_sw ) x = map_w - map_sw; if ( map_sh >= map_h ) y = 0; else if ( y > map_h - map_sh ) y = map_h - map_sh; /* check if screencopy is possible */ x_diff = x - map_x; y_diff = y - map_y; /* if one diff is ==0 and one diff !=0 do it! */ if ( x_diff == 0 && y_diff != 0 ) { sc_type = SC_VERT; sc_diff = y_diff; } else if ( x_diff != 0 && y_diff == 0 ) { sc_type = SC_HORI; sc_diff = x_diff; } /* actually moving? */ if ( x != map_x || y != map_y ) { map_x = x; map_y = y; draw_map = 1; } } /* ==================================================================== Check if mouse position is in scroll region or key is pressed and scrolling is possible. If 'by_wheel' is true scroll_hori/vert has been by using the mouse wheel and checking the keys/mouse must be skipped. ==================================================================== */ enum { SC_NORMAL = 0, SC_BY_WHEEL }; static void engine_check_scroll(int by_wheel) { int region; int tol = 3; /* border in which scrolling by mouse */ int mx, my, cx, cy; if ( scroll_block ) return; if ( setup.type == SETUP_RUN_TITLE ) return; if( !by_wheel ) { /* keys */ scroll_hori = scroll_vert = SCROLL_NONE; if ( !scroll_block_keys ) { if ( event_check_key( SDLK_UP ) && map_y > 0) scroll_vert = SCROLL_UP; else if ( event_check_key( SDLK_DOWN ) && map_y < map_h - map_sh ) scroll_vert = SCROLL_DOWN; if ( event_check_key( SDLK_LEFT ) && map_x > 0 ) scroll_hori = SCROLL_LEFT; else if ( event_check_key( SDLK_RIGHT ) && map_x < map_w - map_sw ) scroll_hori = SCROLL_RIGHT; } if ( scroll_vert == SCROLL_NONE && scroll_hori == SCROLL_NONE ) { /* mouse */ event_get_cursor_pos( &mx, &my ); if ( my <= tol && map_y > 0 ) scroll_vert = SCROLL_UP; else if ( mx >= sdl.screen->w - tol - 1 && map_x < map_w - map_sw ) scroll_hori = SCROLL_RIGHT; else if ( my >= sdl.screen->h - tol - 1 && map_y < map_h - map_sh ) scroll_vert = SCROLL_DOWN; else if ( mx <= tol && map_x > 0 ) scroll_hori = SCROLL_LEFT; } } /* scroll */ if ( scroll_vert != SCROLL_NONE || scroll_hori != SCROLL_NONE ) { if ( scroll_vert == SCROLL_UP ) engine_goto_xy( map_x, map_y - 2 ); else if ( scroll_hori == SCROLL_RIGHT ) engine_goto_xy( map_x + 2, map_y ); else if ( scroll_vert == SCROLL_DOWN ) engine_goto_xy( map_x, map_y + 2 ); else if ( scroll_hori == SCROLL_LEFT ) engine_goto_xy( map_x - 2, map_y ); event_get_cursor_pos( &cx, &cy ); if(engine_get_map_pos( cx, cy, &mx, &my, ®ion )) engine_update_info( mx, my, region ); if ( !by_wheel ) scroll_block = 1; } } /* ==================================================================== Update full map. ==================================================================== */ static void engine_draw_map() { int x, y, abs_y; int i, j; int start_map_x, start_map_y, end_map_x, end_map_y; int buffer_height, buffer_width, buffer_offset; int use_frame = ( cur_ctrl != PLAYER_CTRL_CPU ); enum Stage { DrawTerrain, DrawUnits, DrawDangerZone } stage = DrawTerrain; enum Stage top_stage = has_danger_zone ? DrawDangerZone : DrawUnits; /* reset_timer(); */ draw_map = 0; if ( status == STATUS_STRAT_MAP ) { sc_type = SC_NONE; strat_map_draw(); return; } if ( status == STATUS_TITLE || status == STATUS_TITLE_MENU ) { sc_type = SC_NONE; engine_draw_bkgnd(); return; } /* screen copy? */ start_map_x = map_x; start_map_y = map_y; end_map_x = map_x + map_sw; end_map_y = map_y + map_sh; if ( sc_type == SC_VERT ) { /* clear flag */ sc_type = SC_NONE; /* set buffer offset and height */ buffer_offset = abs( sc_diff ) * hex_h; buffer_height = sdl.screen->h - buffer_offset; /* going down */ if ( sc_diff > 0 ) { /* copy screen to buffer */ DEST( sc_buffer, 0, 0, sdl.screen->w, buffer_height ); SOURCE( sdl.screen, 0, buffer_offset ); blit_surf(); /* copy buffer to new pos */ DEST( sdl.screen, 0, 0, sdl.screen->w, buffer_height ); SOURCE( sc_buffer, 0, 0 ); blit_surf(); /* set loop range to redraw lower lines */ start_map_y += map_sh - sc_diff - 2; } /* going up */ else { /* copy screen to buffer */ DEST( sc_buffer, 0, 0, sdl.screen->w, buffer_height ); SOURCE( sdl.screen, 0, 0 ); blit_surf(); /* copy buffer to new pos */ DEST( sdl.screen, 0, buffer_offset, sdl.screen->w, buffer_height ); SOURCE( sc_buffer, 0, 0 ); blit_surf(); /* set loop range to redraw upper lines */ end_map_y = map_y + abs( sc_diff ) + 1; } } else if ( sc_type == SC_HORI ) { /* clear flag */ sc_type = SC_NONE; /* set buffer offset and width */ buffer_offset = abs( sc_diff ) * hex_x_offset; buffer_width = sdl.screen->w - buffer_offset; buffer_height = sdl.screen->h; /* going right */ if ( sc_diff > 0 ) { /* copy screen to buffer */ DEST( sc_buffer, 0, 0, buffer_width, buffer_height ); SOURCE( sdl.screen, buffer_offset, 0 ); blit_surf(); /* copy buffer to new pos */ DEST( sdl.screen, 0, 0, buffer_width, buffer_height ); SOURCE( sc_buffer, 0, 0 ); blit_surf(); /* set loop range to redraw right lines */ start_map_x += map_sw - sc_diff - 2; } /* going left */ else { /* copy screen to buffer */ DEST( sc_buffer, 0, 0, buffer_width, buffer_height ); SOURCE( sdl.screen, 0, 0 ); blit_surf(); /* copy buffer to new pos */ DEST( sdl.screen, buffer_offset, 0, buffer_width, buffer_height ); SOURCE( sc_buffer, 0, 0 ); blit_surf(); /* set loop range to redraw right lines */ end_map_x = map_x + abs( sc_diff ) + 1; } } for (; stage <= top_stage; stage++) { /* start position for drawing */ x = map_sx + ( start_map_x - map_x ) * hex_x_offset; y = map_sy + ( start_map_y - map_y ) * hex_h; /* end_map_xy must not exceed map's size */ if ( end_map_x >= map_w ) end_map_x = map_w; if ( end_map_y >= map_h ) end_map_y = map_h; /* loop to draw map tile */ for ( j = start_map_y; j < end_map_y; j++ ) { for ( i = start_map_x; i < end_map_x; i++ ) { /* update each map tile */ if ( i & 1 ) abs_y = y + hex_y_offset; else abs_y = y; switch (stage) { case DrawTerrain: map_draw_terrain( sdl.screen, i, j, x, abs_y ); break; case DrawUnits: if ( cur_unit && cur_unit->x == i && cur_unit->y == j && status != STATUS_MOVE && mask[i][j].spot ) map_draw_units( sdl.screen, i, j, x, abs_y, !air_mode, use_frame ); else map_draw_units( sdl.screen, i, j, x, abs_y, !air_mode, 0 ); break; case DrawDangerZone: if ( mask[i][j].danger ) map_apply_danger_to_tile( sdl.screen, i, j, x, abs_y ); break; } x += hex_x_offset; } y += hex_h; x = map_sx + ( start_map_x - map_x ) * hex_x_offset; } } /* printf( "time needed: %i ms\n", get_time() ); */ } /* ==================================================================== Get primary unit on tile. ==================================================================== */ static Unit *engine_get_prim_unit( int x, int y, int region ) { if ( x < 0 || y < 0 || x >= map_w || y >= map_h ) return 0; if ( region == REGION_AIR ) { if ( map[x][y].a_unit ) return map[x][y].a_unit; else return map[x][y].g_unit; } else { if ( map[x][y].g_unit ) return map[x][y].g_unit; else { /* XXX if current unit can do strategic attack, do * not return air unit otherwise attack cannot be performed */ if (engine_has_strategic_target (1,x,y)) return 0; else return map[x][y].a_unit; } } } /** Perform a strategic attack by cur_unit on its tile. * Return 1 if successul, 0 otherwise. */ static int engine_strategic_attack(int active) { int r, ret = 0; /* safety checks */ if( cur_unit == 0) return ret; if (!engine_has_strategic_target(active, cur_unit->x, cur_unit->y)) return ret; if (active) { /* loose attack and ammo */ if ( cur_unit->cur_atk_count > 0 ) cur_unit->cur_atk_count--; if ( config.supply ) { if (cur_unit->cur_ammo > 0) cur_unit->cur_ammo--; } /* no experience/prestige: carpet bombing is no skill at all... */ } /* 2% chance of successful damage (two turns) for each strength point */ r = DICE(100); if (r <= cur_unit->str*2) { map[cur_unit->x][cur_unit->y].deploy_center = 3; map[cur_unit->x][cur_unit->y].damaged = 3; ret = 1; } return ret; } /* ==================================================================== Check if there is a target for current unit on x,y. ==================================================================== */ static int engine_has_strategic_target(int active, int x,int y) { //deny strategic bombing when it rains if ( weather_types[cur_weather].flags & NO_AIR_ATTACK ) return 0; if ( x < 0 || y < 0 || x >= map_w || y >= map_h ) return 0; if ( !mask[x][y].spot ) return 0; if ( cur_unit == 0 ) return 0; if (x != cur_unit->x || y != cur_unit->y) return 0; if (map[x][y].nation == 0) return 0; if (player_is_ally(map[x][y].player, cur_unit->player)) return 0; if (!(cur_unit->sel_prop->flags & CARPET_BOMBING)) return 0; if (active) { if ( cur_unit->cur_ammo <= 0 ) return 0; if ( cur_unit->cur_atk_count == 0 ) return 0; } return 1; } static Unit* engine_get_target( int x, int y, int region ) { Unit *unit; if ( x < 0 || y < 0 || x >= map_w || y >= map_h ) return 0; if ( !mask[x][y].spot ) return 0; if ( cur_unit == 0 ) return 0; if ( ( unit = engine_get_prim_unit( x, y, region ) ) ) if ( unit_check_attack( cur_unit, unit, UNIT_ACTIVE_ATTACK ) ) return unit; return 0; /* if ( region == REGION_AIR ) { if ( map[x][y].a_unit && unit_check_attack( cur_unit, map[x][y].a_unit, UNIT_ACTIVE_ATTACK ) ) return map[x][y].a_unit; else if ( map[x][y].g_unit && unit_check_attack( cur_unit, map[x][y].g_unit, UNIT_ACTIVE_ATTACK ) ) return map[x][y].g_unit; else return 0; } else { if ( map[x][y].g_unit && unit_check_attack( cur_unit, map[x][y].g_unit, UNIT_ACTIVE_ATTACK ) ) return map[x][y].g_unit; else if ( map[x][y].a_unit && unit_check_attack( cur_unit, map[x][y].a_unit, UNIT_ACTIVE_ATTACK ) ) return map[x][y].a_unit; else return 0; }*/ } /* ==================================================================== Check if there is a selectable unit for current player on x,y The currently selected unit is not counted as selectable. (though a primary unit on the same tile may be selected if it's not the current unit) ==================================================================== */ static Unit* engine_get_select_unit( int x, int y, int region ) { if ( x < 0 || y < 0 || x >= map_w || y >= map_h ) return 0; if ( !mask[x][y].spot ) return 0; if ( region == REGION_AIR ) { if ( map[x][y].a_unit && map[x][y].a_unit->player == cur_player ) { if ( cur_unit == map[x][y].a_unit ) return 0; else return map[x][y].a_unit; } else if ( map[x][y].g_unit && map[x][y].g_unit->player == cur_player ) return map[x][y].g_unit; else return 0; } else { if ( map[x][y].g_unit && map[x][y].g_unit->player == cur_player ) { if ( cur_unit == map[x][y].g_unit ) return 0; else return map[x][y].g_unit; } else if ( map[x][y].a_unit && map[x][y].a_unit->player == cur_player ) return map[x][y].a_unit; else return 0; } } /* ==================================================================== Update the unit quick info and map tile info if map tile mx,my, region has the focus. Also update the cursor. ==================================================================== */ static void engine_update_info( int mx, int my, int region ) { Unit *unit1 = 0, *unit2 = 0, *unit; char str[256]; int att_damage, def_damage; int moveCost = 0; /* no infos when cpu is acting */ if ( cur_ctrl == PLAYER_CTRL_CPU ) { image_hide( gui->cursors, 1 ); label_hide( gui->label, 1 ); label_hide( gui->label2, 1 ); frame_hide( gui->qinfo1, 1 ); frame_hide( gui->qinfo2, 1 ); return; } if ( cur_unit && cur_unit->cur_mov > 0 && mask[mx][my].in_range && !mask[mx][my].blocked ) moveCost = mask[mx][my].moveCost; /* entered a new tile so update the terrain info */ if (status == STATUS_PURCHASE) { snprintf( str, 256, tr("Prestige: %d"), cur_player->cur_prestige ); label_write( gui->label, gui->font_std, str ); } else if (status==STATUS_DROP) { label_write( gui->label, gui->font_std,tr("Select Drop Zone") ); } else if (status==STATUS_SPLIT) { sprintf( str, tr("Split Up %d Strength"), cur_split_str ); label_write( gui->label, gui->font_std, str ); } else if (moveCost>0) { sprintf( str, "%s (%i,%i) " GS_DISTANCE "%d", map[mx][my].name, mx, my, moveCost ); label_write( gui->label, gui->font_status, str ); } else { if (map[mx][my].damaged) { sprintf( str, "%s (%i,%i) [%i]", map[mx][my].name, mx, my, map[mx][my].damaged); label_write( gui->label, gui->font_error, str ); } else { sprintf( str, "%s (%i,%i)", map[mx][my].name, mx, my ); label_write( gui->label, gui->font_status, str ); } } /* DEBUG: sprintf( str, "(%d,%d), P: %d B: %d I: %d D: %d",mx,my,mask[mx][my].in_range-1,mask[mx][my].blocked,mask[mx][my].vis_infl,mask[mx][my].distance); label_write( gui->label, gui->font_std, str ); */ /* update the unit info */ if ( !mask[mx][my].spot ) { if ( cur_unit ) gui_show_quick_info( gui->qinfo1, cur_unit ); else frame_hide( gui->qinfo1, 1 ); frame_hide( gui->qinfo2, 1 ); } else { if ( cur_unit && ( mx != cur_unit->x || my != cur_unit->y ) ) { unit1 = cur_unit; unit2 = engine_get_prim_unit( mx, my, region ); } else { if ( map[mx][my].a_unit && map[mx][my].g_unit ) { unit1 = map[mx][my].g_unit; unit2 = map[mx][my].a_unit; } else if ( map[mx][my].a_unit ) unit1 = map[mx][my].a_unit; else if ( map[mx][my].g_unit ) unit1 = map[mx][my].g_unit; } if ( unit1 ) gui_show_quick_info( gui->qinfo1, unit1 ); else frame_hide( gui->qinfo1, 1 ); if ( unit2 && status != STATUS_UNIT_MENU ) gui_show_quick_info( gui->qinfo2, unit2 ); else frame_hide( gui->qinfo2, 1 ); /* show expected losses? */ if ( cur_unit && ( unit = engine_get_target( mx, my, region ) ) ) { unit_get_expected_losses( cur_unit, unit, &att_damage, &def_damage ); gui_show_expected_losses( cur_unit, unit, att_damage, def_damage ); } /* if ( unit1 && unit2 ) { if ( engine_get_target( mx, my, region ) ) if ( unit1 == cur_unit && unit_check_attack( unit1, unit2, UNIT_ACTIVE_ATTACK ) ) { unit_get_expected_losses( unit1, unit2, map[unit2->x][unit2->y].terrain, &att_damage, &def_damage ); gui_show_expected_losses( unit1, unit2, att_damage, def_damage ); } else if ( unit2 == cur_unit && unit_check_attack( unit2, unit1, UNIT_ACTIVE_ATTACK ) ) { unit_get_expected_losses( unit2, unit1, map[unit1->x][unit1->y].terrain, &att_damage, &def_damage ); gui_show_expected_losses( unit2, unit1, att_damage, def_damage ); } }*/ } if ( cur_player == 0 ) gui_set_cursor( CURSOR_STD ); else /* cursor */ switch ( status ) { case STATUS_TITLE: case STATUS_TITLE_MENU: case STATUS_STRAT_MAP: case STATUS_GAME_MENU: case STATUS_UNIT_MENU: gui_set_cursor( CURSOR_STD ); break; case STATUS_DROP: if ( mask[mx][my].deploy ) gui_set_cursor( CURSOR_DEBARK ); else gui_set_cursor( CURSOR_STD ); break; case STATUS_MERGE: if ( mask[mx][my].merge_unit ) gui_set_cursor( CURSOR_UNDEPLOY ); else gui_set_cursor( CURSOR_STD ); break; case STATUS_SPLIT: if (mask[mx][my].split_unit||mask[mx][my].split_okay) gui_set_cursor( CURSOR_DEPLOY ); else gui_set_cursor( CURSOR_STD ); break; case STATUS_DEPLOY: if (map_get_undeploy_unit(mx,my,region==REGION_AIR)) gui_set_cursor( CURSOR_UNDEPLOY ); else if (deploy_unit&&mask[mx][my].deploy) gui_set_cursor( CURSOR_DEPLOY ); else if (map_get_undeploy_unit(mx,my,region!=REGION_AIR)) gui_set_cursor( CURSOR_UNDEPLOY ); else gui_set_cursor( CURSOR_STD ); break; default: if ( cur_unit ) { if ( cur_unit->x == mx && cur_unit->y == my && engine_get_prim_unit( mx, my, region ) == cur_unit ) gui_set_cursor( CURSOR_STD ); else /* unit selected */ if ( engine_get_target( mx, my, region ) || engine_has_strategic_target(1,mx,my)) gui_set_cursor( CURSOR_ATTACK ); else if ( mask[mx][my].in_range && ( cur_unit->x != mx || cur_unit->y != my ) && !mask[mx][my].blocked ) { if ( mask[mx][my].mount ) gui_set_cursor( CURSOR_MOUNT ); else gui_set_cursor( CURSOR_MOVE ); } else if ( mask[mx][my].sea_embark ) { if ( cur_unit->embark == EMBARK_SEA ) gui_set_cursor( CURSOR_DEBARK ); else gui_set_cursor( CURSOR_EMBARK ); } else if ( engine_get_select_unit( mx, my, region ) ) gui_set_cursor( CURSOR_SELECT ); else gui_set_cursor( CURSOR_STD ); } else { /* no unit selected */ if ( engine_get_select_unit( mx, my, region ) ) gui_set_cursor( CURSOR_SELECT ); else gui_set_cursor( CURSOR_STD ); } break; } /* new unit info */ if ( status == STATUS_INFO || status == STATUS_DEPLOY_INFO ) { if ( engine_get_prim_unit( mx, my, region ) ) if ( mask[mx][my].spot ) gui_show_full_info( engine_get_prim_unit( mx, my, region ) ); } } /* ==================================================================== Hide all animated toplevel windows. ==================================================================== */ static void engine_begin_frame() { if ( status == STATUS_ATTACK || status == STATUS_STRAT_ATTACK ) { anim_draw_bkgnd( terrain_icons->cross ); anim_draw_bkgnd( terrain_icons->expl1 ); anim_draw_bkgnd( terrain_icons->expl2 ); } if ( status == STATUS_MOVE && move_image ) image_draw_bkgnd( move_image ); gui_draw_bkgnds(); } /* ==================================================================== Handle all requested screen updates, draw the windows and refresh the screen. ==================================================================== */ static void engine_end_frame() { int full_refresh = 0; // if ( blind_cpu_turn ) return; if ( draw_map ) { engine_draw_map(); full_refresh = 1; } if ( status == STATUS_ATTACK || status == STATUS_STRAT_ATTACK ) { anim_get_bkgnd( terrain_icons->cross ); anim_get_bkgnd( terrain_icons->expl1 ); anim_get_bkgnd( terrain_icons->expl2 ); } if ( status == STATUS_MOVE && move_image ) /* on surprise attack this image ain't created yet */ image_get_bkgnd( move_image ); gui_get_bkgnds(); if ( status == STATUS_ATTACK || status == STATUS_STRAT_ATTACK ) { anim_draw( terrain_icons->cross ); anim_draw( terrain_icons->expl1 ); anim_draw( terrain_icons->expl2 ); } if ( status == STATUS_MOVE && move_image ) { image_draw( move_image ); } gui_draw(); if ( full_refresh ) refresh_screen( 0, 0, 0, 0 ); else refresh_rects(); } /* ==================================================================== Handle a button that was clicked. ==================================================================== */ static void engine_handle_button( int id ) { char path[512]; char str[128]; int x, y, i, max; Unit *unit; Action *last_act; switch ( id ) { /* loads */ case ID_LOAD_0: case ID_LOAD_1: case ID_LOAD_2: case ID_LOAD_3: case ID_LOAD_4: case ID_LOAD_5: case ID_LOAD_6: case ID_LOAD_7: case ID_LOAD_8: case ID_LOAD_9: case ID_LOAD_10: engine_hide_game_menu(); action_queue_load( id - ID_LOAD_0 ); slot_id = id - ID_LOAD_0; sprintf( str, tr("Load Game '%s'"), slot_get_name( slot_id ) ); engine_confirm_action( str ); break; /* saves */ case ID_SAVE_0: case ID_SAVE_1: case ID_SAVE_2: case ID_SAVE_3: case ID_SAVE_4: case ID_SAVE_5: case ID_SAVE_6: case ID_SAVE_7: case ID_SAVE_8: case ID_SAVE_9: case ID_SAVE_10: engine_hide_game_menu(); action_queue_overwrite( id - ID_SAVE_0 ); if ( slot_is_valid( id - ID_SAVE_0 ) ) engine_confirm_action( tr("Overwrite saved game?") ); break; /* options */ case ID_C_SOUND: #ifdef WITH_SOUND config.sound_on = !config.sound_on; audio_enable( config.sound_on ); #endif break; case ID_C_SOUND_INC: #ifdef WITH_SOUND config.sound_volume += 16; if ( config.sound_volume > 128 ) config.sound_volume = 128; audio_set_volume( config.sound_volume ); #endif break; case ID_C_SOUND_DEC: #ifdef WITH_SOUND config.sound_volume -= 16; if ( config.sound_volume < 0 ) config.sound_volume = 0; audio_set_volume( config.sound_volume ); #endif break; case ID_C_SUPPLY: config.supply = !config.supply; break; case ID_C_WEATHER: config.weather = !config.weather; if ( status == STATUS_GAME_MENU ) { cur_weather = scen_get_weather(); draw_map = 1; } break; case ID_C_GRID: config.grid = !config.grid; draw_map = 1; break; case ID_C_SHOW_STRENGTH: config.show_bar = !config.show_bar; draw_map = 1; break; case ID_C_SHOW_CPU: config.show_cpu_turn = !config.show_cpu_turn; break; case ID_C_VMODE: engine_hide_game_menu(); gui_vmode_dlg_show(); status = STATUS_VMODE_DLG; break; /* main menu */ case ID_MENU: x = gui->base_menu->frame->img->bkgnd->surf_rect.x + 30 - 1; y = gui->base_menu->frame->img->bkgnd->surf_rect.y; if ( y + gui->main_menu->frame->img->img->h >= sdl.screen->h ) y = sdl.screen->h - gui->main_menu->frame->img->img->h; group_move( gui->main_menu, x, y ); group_hide( gui->main_menu, 0 ); break; case ID_OPTIONS: group_hide( gui->load_menu, 1 ); group_hide( gui->save_menu, 1 ); x = gui->main_menu->frame->img->bkgnd->surf_rect.x + 30 - 1; y = gui->main_menu->frame->img->bkgnd->surf_rect.y; if ( y + gui->opt_menu->frame->img->img->h >= sdl.screen->h ) y = sdl.screen->h - gui->opt_menu->frame->img->img->h; group_move( gui->opt_menu, x, y ); group_hide( gui->opt_menu, 0 ); break; case ID_RESTART: engine_hide_game_menu(); action_queue_restart(); engine_confirm_action( tr("Do you really want to restart this scenario?") ); break; case ID_SCEN: engine_hide_game_menu(); sprintf( path, "%s/scenarios", get_gamedir() ); fdlg_open( gui->scen_dlg, path ); group_set_active( gui->scen_dlg->group, ID_SCEN_SETUP, 0 ); group_set_active( gui->scen_dlg->group, ID_SCEN_OK, 0 ); group_set_active( gui->scen_dlg->group, ID_SCEN_CANCEL, 1 ); status = STATUS_RUN_SCEN_DLG; break; case ID_CAMP: engine_hide_game_menu(); sprintf( path, "%s/campaigns", get_gamedir() ); fdlg_open( gui->camp_dlg, path ); group_set_active( gui->camp_dlg->group, ID_CAMP_OK, 0 ); group_set_active( gui->camp_dlg->group, ID_CAMP_CANCEL, 1 ); status = STATUS_RUN_CAMP_DLG; break; case ID_SAVE: group_hide( gui->load_menu, 1 ); group_hide( gui->opt_menu, 1 ); x = gui->main_menu->frame->img->bkgnd->surf_rect.x + 30 - 1; y = gui->main_menu->frame->img->bkgnd->surf_rect.y; if ( y + gui->save_menu->frame->img->img->h >= sdl.screen->h ) y = sdl.screen->h - gui->save_menu->frame->img->img->h; group_move( gui->save_menu, x, y ); group_hide( gui->save_menu, 0 ); break; case ID_LOAD: group_hide( gui->save_menu, 1 ); group_hide( gui->opt_menu, 1 ); x = gui->main_menu->frame->img->bkgnd->surf_rect.x + 30 - 1; y = gui->main_menu->frame->img->bkgnd->surf_rect.y; if ( y + gui->load_menu->frame->img->img->h >= sdl.screen->h ) y = sdl.screen->h - gui->load_menu->frame->img->img->h; group_move( gui->load_menu, x, y ); group_hide( gui->load_menu, 0 ); break; case ID_QUIT: engine_hide_game_menu(); action_queue_quit(); engine_confirm_action( tr("Do you really want to quit?") ); break; case ID_AIR_MODE: engine_hide_game_menu(); air_mode = !air_mode; draw_map = 1; break; case ID_END_TURN: engine_hide_game_menu(); action_queue_end_turn(); group_set_active( gui->base_menu, ID_END_TURN, 0 ); engine_confirm_action( tr("Do you really want to end your turn?") ); break; case ID_SCEN_INFO: engine_hide_game_menu(); gui_show_scen_info(); status = STATUS_SCEN_INFO; break; case ID_CONDITIONS: engine_hide_game_menu(); gui_show_conds(); status = STATUS_SCEN_INFO; /* is okay for the engine ;) */ break; case ID_CANCEL: /* a confirmation window is run before an action so if cancel is hit all actions more recent than top_committed_action will be removed. If not given, only the topmost action is removed */ while ( actions_top() != top_committed_action ) { action_remove_last(); if ( !top_committed_action ) break; } /* fall through */ case ID_OK: engine_set_status( deploy_turn ? STATUS_DEPLOY : STATUS_NONE ); group_hide( gui->confirm, 1 ); old_mx = old_my = -1; draw_map = 1; break; case ID_SUPPLY: if (cur_unit==0) break; action_queue_supply( cur_unit ); engine_select_unit( cur_unit ); draw_map = 1; engine_hide_unit_menu(); break; case ID_EMBARK_AIR: if ( cur_unit->embark == EMBARK_NONE ) { action_queue_embark_air( cur_unit, cur_unit->x, cur_unit->y ); if ( cur_unit->trsp_prop.id ) engine_confirm_action( tr("Abandon the ground transporter?") ); engine_backup_move( cur_unit, -1, -1 ); engine_hide_unit_menu(); } else { int drop = 0; if (cur_unit->prop.flags&PARACHUTE) { int x = cur_unit->x, y = cur_unit->y; drop = 1; if (map[x][y].terrain->flags[cur_weather] & SUPPLY_AIR) if (player_is_ally(map[x][y].player,cur_unit->player)) if (map[x][y].g_unit==0) drop = 0; } if (!drop) { action_queue_debark_air( cur_unit, cur_unit->x, cur_unit->y, 1 ); engine_backup_move( cur_unit, -1, -1 ); engine_hide_unit_menu(); } else { map_get_dropzone_mask(cur_unit); map_set_fog( F_DEPLOY ); engine_hide_unit_menu(); status = STATUS_DROP; } } draw_map = 1; break; case ID_SPLIT: if (cur_unit==0) break; max = unit_get_split_strength(cur_unit); for (i=0;i<10;i++) group_set_active(gui->split_menu,ID_SPLIT_1+i,iunit_buttons->frame->img->bkgnd->surf_rect.x + 30 - 1; y = gui->unit_buttons->frame->img->bkgnd->surf_rect.y; if ( y + gui->split_menu->frame->img->img->h >= sdl.screen->h ) y = sdl.screen->h - gui->split_menu->frame->img->img->h; group_move( gui->split_menu, x, y ); group_hide( gui->split_menu, 0 ); break; case ID_SPLIT_1: case ID_SPLIT_2: case ID_SPLIT_3: case ID_SPLIT_4: case ID_SPLIT_5: case ID_SPLIT_6: case ID_SPLIT_7: case ID_SPLIT_8: case ID_SPLIT_9: case ID_SPLIT_10: if (cur_unit==0) break; cur_split_str = id-ID_SPLIT_1+1; map_get_split_units_and_hexes(cur_unit,cur_split_str,split_units,&split_unit_count); map_set_fog( F_SPLIT_UNIT ); engine_hide_unit_menu(); status = STATUS_SPLIT; draw_map = 1; break; case ID_MERGE: if (cur_unit&&merge_unit_count>0) { map_set_fog( F_MERGE_UNIT ); engine_hide_unit_menu(); status = STATUS_MERGE; draw_map = 1; } break; case ID_DISBAND: if (cur_unit==0) break; engine_hide_unit_menu(); action_queue_disband(cur_unit); engine_confirm_action( tr("Do you really want to disband this unit?") ); break; case ID_UNDO: if (cur_unit==0) break; engine_undo_move( cur_unit ); engine_select_unit( cur_unit ); engine_focus( cur_unit->x, cur_unit->y, 0 ); draw_map = 1; engine_hide_unit_menu(); break; case ID_RENAME: if (cur_unit==0) break; engine_hide_unit_menu(); status = STATUS_RENAME; edit_show( gui->edit, cur_unit->name ); scroll_block_keys = 1; break; case ID_PURCHASE: engine_hide_game_menu(); engine_select_unit( 0 ); gui_show_purchase_window(); status = STATUS_PURCHASE; draw_map = 1; break; case ID_PURCHASE_EXIT: purchase_dlg_hide( gui->purchase_dlg, 1 ); engine_set_status( STATUS_NONE ); break; case ID_DEPLOY: if ( avail_units->count > 0 || deploy_turn ) { engine_hide_game_menu(); engine_select_unit( 0 ); gui_show_deploy_window(); map_get_deploy_mask(cur_player,deploy_unit,deploy_turn); map_set_fog( F_DEPLOY ); status = STATUS_DEPLOY; draw_map = 1; } break; case ID_UNIT_LIST: engine_hide_game_menu(); gui_render_unit_list(gui_prepare_unit_list(),units); gui_show_unit_list(); status = STATUS_UNIT_LIST; break; case ID_STRAT_MAP: engine_hide_game_menu(); status = STATUS_STRAT_MAP; strat_map_update_terrain_layer(); strat_map_update_unit_layer(); set_delay( &blink_delay, 500 ); draw_map = 1; break; case ID_SCEN_CANCEL: fdlg_hide( gui->scen_dlg, 1 ); engine_set_status( STATUS_NONE ); break; case ID_SCEN_OK: fdlg_hide( gui->scen_dlg, 1 ); engine_set_status( STATUS_NONE ); action_queue_start_scen(); break; case ID_CAMP_CANCEL: fdlg_hide( gui->camp_dlg, 1 ); engine_set_status( STATUS_NONE ); break; case ID_CAMP_OK: fdlg_hide( gui->camp_dlg, 1 ); setup.type = SETUP_CAMP_BRIEFING; engine_set_status( STATUS_NONE ); action_queue_start_camp(); break; case ID_SCEN_SETUP: fdlg_hide( gui->scen_dlg, 1 ); gui_open_scen_setup(); status = STATUS_RUN_SETUP; break; case ID_SETUP_OK: fdlg_hide( gui->scen_dlg, 0 ); sdlg_hide( gui->setup, 1 ); status = STATUS_RUN_SCEN_DLG; break; case ID_SETUP_SUPPLY: config.supply = !config.supply; break; case ID_SETUP_WEATHER: config.weather = !config.weather; break; case ID_SETUP_FOG: config.fog_of_war = !config.fog_of_war; break; case ID_SETUP_DEPLOYTURN: config.deploy_turn = !config.deploy_turn; break; case ID_SETUP_PURCHASE: config.purchase = !config.purchase; break; case ID_SETUP_CTRL: setup.ctrl[gui->setup->sel_id] = !(setup.ctrl[gui->setup->sel_id] - 1) + 1; gui_handle_player_select( gui->setup->list->cur_item ); break; case ID_SETUP_MODULE: sdlg_hide( gui->setup, 1 ); group_set_active( gui->module_dlg->group, ID_MODULE_OK, 0 ); group_set_active( gui->module_dlg->group, ID_MODULE_CANCEL, 1 ); sprintf( path, "%s/ai_modules", get_gamedir() ); fdlg_open( gui->module_dlg, path ); status = STATUS_RUN_MODULE_DLG; break; case ID_MODULE_OK: if ( gui->module_dlg->lbox->cur_item ) { if ( gui->module_dlg->subdir[0] != 0 ) sprintf( path, "%s/%s", gui->module_dlg->subdir, (char*)gui->module_dlg->lbox->cur_item ); else sprintf( path, "%s", (char*)gui->module_dlg->lbox->cur_item ); free( setup.modules[gui->setup->sel_id] ); setup.modules[gui->setup->sel_id] = strdup( path ); gui_handle_player_select( gui->setup->list->cur_item ); } case ID_MODULE_CANCEL: fdlg_hide( gui->module_dlg, 1 ); sdlg_hide( gui->setup, 0 ); status = STATUS_RUN_SETUP; break; case ID_DEPLOY_UP: gui_scroll_deploy_up(); break; case ID_DEPLOY_DOWN: gui_scroll_deploy_down(); break; case ID_APPLY_DEPLOY: /* transfer all units with x != -1 */ list_reset( avail_units ); last_act = actions_top(); while ( ( unit = list_next( avail_units ) ) ) if ( unit->x != -1 ) action_queue_deploy( unit, unit->x, unit->y ); if ( cur_ctrl == PLAYER_CTRL_HUMAN ) { if ( deploy_turn ) { action_queue_end_turn(); engine_confirm_actions( last_act, tr("End deployment?") ); } else { action_queue_set_spot_mask(); action_queue_draw_map(); } } if ( !deploy_turn ) { engine_set_status( STATUS_NONE ); group_hide( gui->deploy_window, 1 ); } break; case ID_CANCEL_DEPLOY: list_reset( avail_units ); while ( ( unit = list_next( avail_units ) ) ) if ( unit->x != -1 ) map_remove_unit( unit ); draw_map = 1; engine_set_status( STATUS_NONE ); group_hide( gui->deploy_window, 1 ); map_set_fog( F_SPOT ); break; case ID_VMODE_OK: i = select_dlg_get_selected_item_index( gui->vmode_dlg ); if (i == -1) break; action_queue_set_vmode( sdl.vmodes[i].width, sdl.vmodes[i].height, sdl.vmodes[i].fullscreen); select_dlg_hide( gui->vmode_dlg, 1 ); label_hide(gui->label, 1); engine_set_status( STATUS_NONE ); break; case ID_VMODE_CANCEL: select_dlg_hide( gui->vmode_dlg, 1 ); label_hide(gui->label, 1); engine_set_status( STATUS_NONE ); break; } } /* ==================================================================== Undeploys the given unit. Does not remove it from the map. ==================================================================== */ static void engine_undeploy_unit( Unit *unit ) { int mx = unit->x, my = unit->y; unit->x = -1; unit->y = -1; /* disembark units if they are embarked */ if ( map_check_unit_debark( unit, mx, my, EMBARK_AIR, 1 ) ) map_debark_unit( unit, -1, -1, EMBARK_AIR, 0 ); if ( map_check_unit_debark( unit, mx, my, EMBARK_SEA, 1 ) ) map_debark_unit( unit, -1, -1, EMBARK_SEA, 0 ); gui_add_deploy_unit( unit ); } /* ==================================================================== Get actions from input events or CPU and queue them. ==================================================================== */ static void engine_check_events(int *reinit) { int region; int hide_edit = 0; SDL_Event event; Unit *unit; int cx, cy, button = 0; int mx, my, keypressed = 0; SDL_PumpEvents(); /* gather events in the queue */ if ( sdl_quit ) term_game = 1; /* end game by window manager */ if ( status == STATUS_MOVE || status == STATUS_ATTACK || status == STATUS_STRAT_ATTACK ) return; if ( cur_ctrl == PLAYER_CTRL_CPU ) { if ( actions_count() == 0 ) (cur_player->ai_run)(); } else { if ( event_get_motion( &cx, &cy ) ) { if ( setup.type == SETUP_RUN_TITLE ) ; else if (status == STATUS_CAMP_BRIEFING) { gui_handle_message_pane_event(camp_pane, cx, cy, BUTTON_NONE, 0); } else { if ( status == STATUS_DEPLOY || status == STATUS_DEPLOY_INFO ) { gui_handle_deploy_motion( cx, cy, &unit ); if ( unit ) { if ( status == STATUS_DEPLOY_INFO ) gui_show_full_info( unit ); /* display info of this unit */ gui_show_quick_info( gui->qinfo1, unit ); frame_hide( gui->qinfo2, 1 ); } } if ( engine_get_map_pos( cx, cy, &mx, &my, ®ion ) ) { /* mouse motion */ if ( mx != old_mx || my != old_my || region != old_region ) { old_mx = mx; old_my = my, old_region = region; engine_update_info( mx, my, region ); } } } gui_handle_motion( cx, cy ); /* if gui->label is hidden we are on a gui window and there is no * tooltip; in case of purchase dialogue unhide it to show prestige * info */ if ( status == STATUS_PURCHASE && gui->label->frame->img->bkgnd->hide ) label_hide( gui->label, 0 ); } if ( event_get_buttondown( &button, &cx, &cy ) ) { /* click */ if ( gui_handle_button( button, cx, cy, &last_button ) ) { engine_handle_button( last_button->id ); #ifdef WITH_SOUND wav_play( gui->wav_click ); #endif } else { switch ( status ) { case STATUS_TITLE: /* title menu */ if ( button == BUTTON_RIGHT ) engine_show_game_menu( cx, cy ); break; case STATUS_TITLE_MENU: if ( button == BUTTON_RIGHT ) engine_hide_game_menu(); break; case STATUS_CAMP_BRIEFING: gui_handle_message_pane_event(camp_pane, cx, cy, button, 1); break; default: if ( setup.type == SETUP_RUN_TITLE ) break; /* checking mouse wheel */ if ( status == STATUS_NONE ) { if( button == WHEEL_UP ) { scroll_vert = SCROLL_UP; engine_check_scroll( SC_BY_WHEEL ); } else if( button == WHEEL_DOWN ) { scroll_vert = SCROLL_DOWN; engine_check_scroll( SC_BY_WHEEL ); } } /* select unit from deploy window */ if ( status == STATUS_DEPLOY) { if ( gui_handle_deploy_click(button, cx, cy) ) { if ( button == BUTTON_RIGHT ) { engine_show_deploy_unit_info( deploy_unit ); } map_get_deploy_mask(cur_player,deploy_unit,deploy_turn); map_set_fog( F_DEPLOY ); draw_map = 1; break; } } /* selection only from map */ if ( !engine_get_map_pos( cx, cy, &mx, &my, ®ion ) ) break; switch ( status ) { case STATUS_STRAT_MAP: /* switch from strat map to tactical map */ if ( button == BUTTON_LEFT ) engine_focus( mx, my, 0 ); engine_set_status( STATUS_NONE ); old_mx = old_my = -1; /* before updating the map, clear the screen */ SDL_FillRect( sdl.screen, 0, 0x0 ); draw_map = 1; break; case STATUS_GAME_MENU: if ( button == BUTTON_RIGHT ) engine_hide_game_menu(); break; case STATUS_DEPLOY_INFO: engine_hide_deploy_unit_info(); break; case STATUS_DEPLOY: /* deploy/undeploy */ if ( button == BUTTON_LEFT ) { /* deploy, but check whether we are explicitly on a un-deployable unit */ if ((unit=map_get_undeploy_unit(mx,my,region==REGION_AIR))) {} else if ( deploy_unit && mask[mx][my].deploy ) { Unit *old_unit; /* embark to air if embarkable and explicitly on air region in deploy turn */ if ( deploy_turn && map_check_unit_embark( deploy_unit, mx, my, EMBARK_AIR, 1 ) && (region==REGION_AIR||map[mx][my].g_unit) ) map_embark_unit( deploy_unit, -1, -1, EMBARK_AIR, 0 ); /* embark into sea transport if placed onto ocean */ else if ( map_check_unit_embark( deploy_unit, mx, my, EMBARK_SEA, 1 ) ) map_embark_unit( deploy_unit, -1, -1, EMBARK_SEA, 0 ); deploy_unit->x = mx; deploy_unit->y = my; deploy_unit->fresh_deploy = 1; /* swap units if already there */ old_unit = map_swap_unit( deploy_unit ); gui_remove_deploy_unit( deploy_unit ); if ( old_unit ) engine_undeploy_unit( old_unit ); if ( deploy_unit || deploy_turn ) { map_get_deploy_mask(cur_player,deploy_unit,deploy_turn); map_set_fog( F_DEPLOY ); } else { map_clear_mask( F_DEPLOY ); map_set_fog( F_DEPLOY ); } engine_update_info(mx,my,region); draw_map = 1; } /* undeploy unit of other region? */ else unit=map_get_undeploy_unit(mx,my,region!=REGION_AIR); if (unit) { /* undeploy? */ map_remove_unit( unit ); engine_undeploy_unit( unit ); map_get_deploy_mask(cur_player,deploy_unit,deploy_turn); map_set_fog( F_DEPLOY ); engine_update_info(mx,my,region); draw_map = 1; } /* check end_deploy button */ if (deploy_turn) group_set_active(gui->deploy_window,ID_APPLY_DEPLOY,(left_deploy_units->count>0)?0:1); } else if ( button == BUTTON_RIGHT ) { if ( mask[mx][my].spot && ( unit = engine_get_prim_unit( mx, my, region ) ) ) { /* info */ engine_show_deploy_unit_info( unit ); } } break; case STATUS_UNIT_LIST: if (button == WHEEL_DOWN) { gui_scroll_unit_list_down(units); } else if (button == WHEEL_UP) { gui_scroll_unit_list_up(units); } else if (button == BUTTON_RIGHT) { status = STATUS_NONE; gui_hide_unit_list(); } else if ((unit = gui_unit_list_unit_clicked(units,cx,cy)) ) { status = STATUS_NONE; gui_hide_unit_list(); engine_focus(unit->x,unit->y,0); engine_select_unit(unit); draw_map=1; } break; case STATUS_DROP: if ( button == BUTTON_RIGHT ) { /* clear status */ engine_set_status( STATUS_NONE ); gui_set_cursor(CURSOR_STD); map_set_fog( F_IN_RANGE ); mask[cur_unit->x][cur_unit->y].fog = 0; draw_map = 1; } else if ( button == BUTTON_LEFT ) if ( mask[mx][my].deploy ) { action_queue_debark_air( cur_unit, mx, my, 0 ); map_set_fog( F_SPOT ); engine_set_status( STATUS_NONE ); gui_set_cursor(CURSOR_STD); draw_map = 1; } break; case STATUS_MERGE: if ( button == BUTTON_RIGHT ) { /* clear status */ engine_set_status( STATUS_NONE ); gui_set_cursor(CURSOR_STD); map_set_fog( F_IN_RANGE ); mask[cur_unit->x][cur_unit->y].fog = 0; draw_map = 1; } else if ( button == BUTTON_LEFT ) if ( mask[mx][my].merge_unit ) { action_queue_merge( cur_unit, mask[mx][my].merge_unit ); map_set_fog( F_SPOT ); engine_set_status( STATUS_NONE ); gui_set_cursor(CURSOR_STD); draw_map = 1; } break; case STATUS_SPLIT: if ( button == BUTTON_RIGHT ) { /* clear status */ engine_set_status( STATUS_NONE ); gui_set_cursor(CURSOR_STD); map_set_fog( F_IN_RANGE ); mask[cur_unit->x][cur_unit->y].fog = 0; draw_map = 1; } else if ( button == BUTTON_LEFT ) { if ( mask[mx][my].split_unit||mask[mx][my].split_okay ) { action_queue_split( cur_unit, cur_split_str, mx, my, mask[mx][my].split_unit ); cur_split_str = 0; map_set_fog( F_SPOT ); engine_set_status( STATUS_NONE ); gui_set_cursor(CURSOR_STD); draw_map = 1; } } break; case STATUS_UNIT_MENU: if ( button == BUTTON_RIGHT ) engine_hide_unit_menu(); break; case STATUS_SCEN_INFO: engine_set_status( STATUS_NONE ); frame_hide( gui->sinfo, 1 ); old_mx = old_my = -1; break; case STATUS_INFO: engine_set_status( STATUS_NONE ); frame_hide( gui->finfo, 1 ); old_mx = old_my = -1; break; case STATUS_NONE: switch ( button ) { case BUTTON_LEFT: if ( cur_unit ) { /* handle current unit */ if ( cur_unit->x == mx && cur_unit->y == my && engine_get_prim_unit( mx, my, region ) == cur_unit) engine_show_unit_menu( cx, cy ); else if ( ( unit = engine_get_target( mx, my, region ) ) ) { action_queue_attack( cur_unit, unit ); frame_hide( gui->qinfo1, 1 ); frame_hide( gui->qinfo2, 1 ); } else if( engine_has_strategic_target(1,mx, my) ) { action_queue_strategic_attack( cur_unit ); frame_hide( gui->qinfo1, 1 ); frame_hide( gui->qinfo2, 1 ); } else if ( mask[mx][my].in_range && !mask[mx][my].blocked ) { action_queue_move( cur_unit, mx, my ); frame_hide( gui->qinfo1, 1 ); frame_hide( gui->qinfo2, 1 ); } else if ( mask[mx][my].sea_embark ) { if ( cur_unit->embark == EMBARK_NONE ) action_queue_embark_sea( cur_unit, mx, my ); else action_queue_debark_sea( cur_unit, mx, my ); engine_backup_move( cur_unit, mx, my ); draw_map = 1; } else if ( ( unit = engine_get_select_unit( mx, my, region ) ) && cur_unit != unit ) { /* first capture the flag for the human unit */ if ( cur_ctrl == PLAYER_CTRL_HUMAN ) { if ( engine_capture_flag( cur_unit ) ) { /* CHECK IF SCENARIO IS FINISHED */ if ( scen_check_result( 0 ) ) { engine_finish_scenario(); break; } } } engine_select_unit( unit ); engine_clear_backup(); engine_update_info( mx, my, region ); draw_map = 1; } } else if ( ( unit = engine_get_select_unit( mx, my, region ) ) && cur_unit != unit ) { /* select unit */ engine_select_unit( unit ); engine_update_info( mx, my, region ); draw_map = 1; #ifdef WITH_SOUND wav_play( terrain_icons->wav_select ); #endif } break; case BUTTON_RIGHT: if ( cur_unit == 0 ) { if ( mask[mx][my].spot && ( unit = engine_get_prim_unit( mx, my, region ) ) ) { /* show unit info */ gui_show_full_info( unit ); status = STATUS_INFO; gui_set_cursor( CURSOR_STD ); } else { /* show menu */ engine_show_game_menu( cx, cy ); } } else if ( cur_unit ) { /* handle current unit */ if ( cur_unit->x == mx && cur_unit->y == my && engine_get_prim_unit( mx, my, region ) == cur_unit ) engine_show_unit_menu( cx, cy ); else { /* first capture the flag for the human unit */ if ( cur_ctrl == PLAYER_CTRL_HUMAN ) { if ( engine_capture_flag( cur_unit ) ) { /* CHECK IF SCENARIO IS FINISHED */ if ( scen_check_result( 0 ) ) { engine_finish_scenario(); break; } } } /* release unit */ engine_select_unit( 0 ); engine_update_info( mx, my, region ); draw_map = 1; } } break; } break; } } } } else if ( event_get_buttonup( &button, &cx, &cy ) ) { if (status == STATUS_CAMP_BRIEFING) { const char *result; gui_handle_message_pane_event(camp_pane, cx, cy, button, 0); /* check for selection/dismission */ result = gui_get_message_pane_selection(camp_pane); if (result && strcmp(result, "nextscen") == 0) { /* start scenario */ sprintf( setup.fname, "%s", camp_cur_scen->scen ); setup.type = SETUP_DEFAULT_SCEN; end_scen = 1; *reinit = 1; } else if (result) { /* load next campaign entry */ setup.type = SETUP_CAMP_BRIEFING; engine_store_debriefing(0); if ( !camp_set_next( result ) ) setup.type = SETUP_RUN_TITLE; end_scen = 1; *reinit = 1; } return; } /* if there was a button pressed released it */ if ( last_button ) { if ( !last_button->lock ) { last_button->down = 0; if ( last_button->active ) last_button->button_rect.x = 0; } if ( last_button->button_rect.x == 0 ) if ( button_focus( last_button, cx, cy ) ) last_button->button_rect.x = last_button->surf_rect.w; last_button = 0; } } if ( SDL_PollEvent( &event ) ) { if ( event.type == SDL_KEYDOWN ) { /* allow mirroring anywhere */ if (event.key.keysym.sym==SDLK_TAB) { gui_mirror_asymm_windows(); keypressed = 1; } if ( status == STATUS_NONE || status == STATUS_INFO || status == STATUS_UNIT_MENU ) { int shiftPressed = event.key.keysym.mod&KMOD_LSHIFT||event.key.keysym.mod&KMOD_RSHIFT; if ( (status != STATUS_UNIT_MENU) && (event.key.keysym.sym == SDLK_n || (event.key.keysym.sym == SDLK_f&&!shiftPressed) || (event.key.keysym.sym == SDLK_m&&!shiftPressed) ) ) { int stype = (event.key.keysym.sym==SDLK_n)?0:(event.key.keysym.sym==SDLK_f)?1:2; /* select next unit that has either movement or attack left */ list_reset( units ); if ( cur_unit != 0 ) while ( ( unit = list_next( units ) ) ) if ( cur_unit == unit ) break; /* get next unit */ while ( ( unit = list_next( units ) ) ) { if ( unit->killed ) continue; if ( unit->is_guarding ) continue; if ( unit->player == cur_player ) if ( ((stype==0||stype==2)&&unit->cur_mov > 0) || ((stype==0||stype==1)&&unit->cur_atk_count > 0) ) break; } if ( unit == 0 ) { /* search again from beginning of list */ list_reset( units ); while ( ( unit = list_next( units ) ) ) { if ( unit->killed ) continue; if ( unit->is_guarding ) continue; if ( unit->player == cur_player ) if ( ((stype==0||stype==2)&&unit->cur_mov > 0) || ((stype==0||stype==1)&&unit->cur_atk_count > 0) ) break; } } if ( unit ) { engine_select_unit( unit ); engine_focus( cur_unit->x, cur_unit->y, 0 ); draw_map = 1; if ( status == STATUS_INFO ) gui_show_full_info( unit ); gui_show_quick_info( gui->qinfo1, cur_unit ); frame_hide( gui->qinfo2, 1 ); } keypressed = 1; } else if ( (status != STATUS_UNIT_MENU) && (event.key.keysym.sym == SDLK_p || (event.key.keysym.sym == SDLK_f&&shiftPressed) || (event.key.keysym.sym == SDLK_m&&shiftPressed) ) ) { int stype = (event.key.keysym.sym==SDLK_p)?0:(event.key.keysym.sym==SDLK_f)?1:2; /* select previous unit that has either movement or attack left */ list_reset( units ); if ( cur_unit != 0 ) while ( ( unit = list_next( units ) ) ) if ( cur_unit == unit ) break; /* get previous unit */ while ( ( unit = list_prev( units ) ) ) { if ( unit->killed ) continue; if ( unit->is_guarding ) continue; if ( unit->player == cur_player ) if ( ((stype==0||stype==2)&&unit->cur_mov > 0) || ((stype==0||stype==1)&&unit->cur_atk_count > 0) ) break; } if ( unit == 0 ) { /* search again from end of list */ units->cur_entry = &units->tail; while ( ( unit = list_prev( units ) ) ) { if ( unit->killed ) continue; if ( unit->is_guarding ) continue; if ( unit->player == cur_player ) if ( ((stype==0||stype==2)&&unit->cur_mov > 0) || ((stype==0||stype==1)&&unit->cur_atk_count > 0) ) break; } } if ( unit ) { engine_select_unit( unit ); engine_focus( cur_unit->x, cur_unit->y, 0 ); draw_map = 1; if ( status == STATUS_INFO ) gui_show_full_info( unit ); gui_show_quick_info( gui->qinfo1, cur_unit ); frame_hide( gui->qinfo2, 1 ); } keypressed = 1; } else { Uint8 *keystate; int numkeys; keypressed = 1; switch (event.key.keysym.sym) { case SDLK_t: if (status!=STATUS_UNIT_MENU) engine_handle_button(ID_AIR_MODE); break; case SDLK_o: if (status!=STATUS_UNIT_MENU) engine_handle_button(ID_STRAT_MAP); break; case SDLK_d: if (status!=STATUS_UNIT_MENU) engine_handle_button(ID_DEPLOY); break; case SDLK_e: if (status!=STATUS_UNIT_MENU) engine_handle_button(ID_END_TURN); break; case SDLK_v: if (status!=STATUS_UNIT_MENU) engine_handle_button(ID_C_VMODE); break; case SDLK_g: if (status!=STATUS_UNIT_MENU) engine_handle_button(ID_C_GRID); break; case SDLK_PERIOD: if (status!=STATUS_UNIT_MENU) engine_handle_button(ID_C_SHOW_STRENGTH); break; case SDLK_i: if (status!=STATUS_UNIT_MENU) engine_handle_button(ID_SCEN_INFO); break; case SDLK_u: engine_handle_button(ID_UNDO); break; case SDLK_s: engine_handle_button(ID_SUPPLY); break; case SDLK_j: engine_handle_button(ID_MERGE); break; case SDLK_1: case SDLK_2: case SDLK_3: case SDLK_4: case SDLK_5: case SDLK_6: case SDLK_7: case SDLK_8: case SDLK_9: keystate = SDL_GetKeyState(&numkeys); if (keystate[SDLK_x]) engine_handle_button(ID_SPLIT_1+event.key.keysym.sym-SDLK_1); break; case SDLK_MINUS: if (cur_unit) cur_unit->is_guarding = !cur_unit->is_guarding; draw_map = 1; break; default: keypressed = 0; break; } } } else if ( status == STATUS_CONF ) { if ( event.key.keysym.sym == SDLK_RETURN ) engine_handle_button(ID_OK); else if ( event.key.keysym.sym == SDLK_ESCAPE ) engine_handle_button(ID_CANCEL); } else if ( status == STATUS_RENAME || status == STATUS_SAVE ) { if ( event.key.keysym.sym == SDLK_RETURN ) { /* apply */ switch ( status ) { case STATUS_RENAME: strcpy_lt( cur_unit->name, gui->edit->text, 20 ); hide_edit = 1; break; case STATUS_SAVE: slot_save( slot_id, gui->edit->text ); hide_edit = 1; printf( tr("Game saved to slot '%i' as '%s'.\n"), slot_id, gui->edit->text ); break; } keypressed = 1; } else if ( event.key.keysym.sym == SDLK_ESCAPE ) hide_edit = 1; if ( hide_edit ) { engine_set_status( STATUS_NONE ); edit_hide( gui->edit, 1 ); old_mx = old_my = -1; scroll_block_keys = 0; } else { edit_handle_key( gui->edit, event.key.keysym.sym, event.key.keysym.mod, event.key.keysym.unicode ); #ifdef WITH_SOUND wav_play( gui->wav_edit ); #endif } } #ifdef WITH_SOUND if (keypressed) wav_play( gui->wav_click ); #endif } } /* scrolling */ engine_check_scroll( SC_NORMAL ); } } /* ==================================================================== Get next combatants assuming that cur_unit attacks cur_target. Set cur_atk and cur_def and return True if there are any more combatants. ==================================================================== */ static int engine_get_next_combatants() { int fight = 0; char str[128]; /* check if there are supporting units; if so initate fight between attacker and these units */ if ( df_units->count > 0 ) { cur_atk = list_first( df_units ); cur_def = cur_unit; fight = 1; defFire = 1; /* set message if seen */ if ( !blind_cpu_turn ) { if ( cur_atk->sel_prop->flags & ARTILLERY ) sprintf( str, tr("Defensive Fire") ); else if ( cur_atk->sel_prop->flags & AIR_DEFENSE ) sprintf( str, tr("Air-Defense") ); else sprintf( str, tr("Interceptors") ); label_write( gui->label, gui->font_error, str ); } } else { /* clear info */ if ( !blind_cpu_turn ) label_hide( gui->label, 1 ); /* normal attack */ cur_atk = cur_unit; cur_def = cur_target; if (cur_target == NULL) /* empty tile = carpet bombing */ fight = 0; else fight = 1; defFire = 0; } return fight; } /* ==================================================================== Unit is completely suppressed so check if it does nothing tries to move to a neighbored tile surrenders because it can't move away ==================================================================== */ enum { UNIT_STAYS = 0, UNIT_FLEES, UNIT_SURRENDERS }; static void engine_handle_suppr( Unit *unit, int *type, int *x, int *y ) { int i, nx, ny; *type = UNIT_STAYS; if ( unit->sel_prop->mov == 0 ) return; /* 80% chance that unit wants to flee */ if ( DICE(10) <= 8 ) { unit->cur_mov = 1; map_get_unit_move_mask( unit ); /* get best close hex. if none: surrender */ for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( unit->x, unit->y, i, &nx, &ny ) ) if ( mask[nx][ny].in_range && !mask[nx][ny].blocked ) { *type = UNIT_FLEES; *x = nx; *y = ny; return; } /* surrender! */ *type = UNIT_SURRENDERS; } } /* ==================================================================== Check if unit stays on top of an enemy flag and capture it. Return True if the flag was captured. ==================================================================== */ static int engine_capture_flag( Unit *unit ) { if ( !( unit->sel_prop->flags & FLYING ) ) if ( !( unit->sel_prop->flags & SWIMMING ) ) if ( map[unit->x][unit->y].nation != 0 ) if ( !player_is_ally( map[unit->x][unit->y].player, unit->player ) ) { /* capture */ map[unit->x][unit->y].nation = unit->nation; map[unit->x][unit->y].player = unit->player; /* a conquered flag gets deploy ability again after some turns */ map[unit->x][unit->y].deploy_center = 3; /* a regular flag gives 40, a victory objective 80, * no prestige loss for other player */ unit->player->cur_prestige += 40; if (map[unit->x][unit->y].obj) unit->player->cur_prestige += 40; return 1; } return 0; } /* ==================================================================== Deqeue the next action and perform it. ==================================================================== */ static void engine_handle_next_action( int *reinit ) { Action *action = 0; int enemy_spotted = 0; int depth, flags, i, j; /* lock action queue? */ if ( status == STATUS_CONF || status == STATUS_ATTACK || status == STATUS_STRAT_ATTACK || status == STATUS_MOVE ) return; /* get action */ if ( ( action = actions_dequeue() ) == 0 ) return; /* handle it */ switch ( action->type ) { case ACTION_START_SCEN: camp_delete(); setup.type = SETUP_INIT_SCEN; *reinit = 1; end_scen = 1; break; case ACTION_START_CAMP: setup.type = SETUP_INIT_CAMP; *reinit = 1; end_scen = 1; break; case ACTION_OVERWRITE: status = STATUS_SAVE; edit_show( gui->edit, slot_get_name( action->id ) ); scroll_block_keys = 1; slot_id = action->id; break; case ACTION_LOAD: setup.type = SETUP_LOAD_GAME; strcpy( setup.fname, slot_get_fname( action->id ) ); setup.slot_id = action->id; *reinit = 1; end_scen = 1; break; case ACTION_RESTART: strcpy( setup.fname, scen_info->fname ); setup.type = SETUP_INIT_SCEN; *reinit = 1; end_scen = 1; break; case ACTION_QUIT: engine_set_status( STATUS_NONE ); end_scen = 1; break; case ACTION_SET_VMODE: flags = SDL_SWSURFACE; if ( action->full ) flags |= SDL_FULLSCREEN; depth = SDL_VideoModeOK( action->w, action->h, 32, flags ); if ( depth == 0 ) { fprintf( stderr, tr("Video Mode: %ix%i, Fullscreen: %i not available\n"), action->w, action->h, action->full ); } else { /* videomode */ SDL_SetVideoMode( action->w, action->h, depth, flags ); printf(tr("Applied video mode %dx%dx%d %s\n"), action->w, action->h, depth, (flags&SDL_FULLSCREEN)?tr("Fullscreen"): tr("Window")); /* adjust windows */ gui_adjust(); if ( setup.type != SETUP_RUN_TITLE ) { /* reset engine's map size (number of tiles on screen) */ for ( i = map_sx, map_sw = 0; i < sdl.screen->w; i += hex_x_offset ) map_sw++; for ( j = map_sy, map_sh = 0; j < sdl.screen->h; j += hex_h ) map_sh++; /* reset map pos if nescessary */ if ( map_x + map_sw >= map_w ) map_x = map_w - map_sw; if ( map_y + map_sh >= map_h ) map_y = map_h - map_sh; if ( map_x < 0 ) map_x = 0; if ( map_y < 0 ) map_y = 0; /* recreate strategic map */ strat_map_delete(); strat_map_create(); /* recreate screen buffer */ free_surf( &sc_buffer ); sc_buffer = create_surf( sdl.screen->w, sdl.screen->h, SDL_SWSURFACE ); } /* redraw map */ draw_map = 1; /* set config */ config.width = action->w; config.height = action->h; config.fullscreen = flags & SDL_FULLSCREEN; } break; case ACTION_SET_SPOT_MASK: map_set_spot_mask(); map_set_fog( F_SPOT ); break; case ACTION_DRAW_MAP: draw_map = 1; break; case ACTION_DEPLOY: action->unit->delay = 0; action->unit->fresh_deploy = 0; action->unit->x = action->x; action->unit->y = action->y; list_transfer( avail_units, units, action->unit ); if ( cur_ctrl == PLAYER_CTRL_CPU ) /* for human player it is already inserted */ map_insert_unit( action->unit ); scen_prep_unit( action->unit, SCEN_PREP_UNIT_FIRST ); break; case ACTION_EMBARK_SEA: if ( map_check_unit_embark( action->unit, action->x, action->y, EMBARK_SEA, 0 ) ) { map_embark_unit( action->unit, action->x, action->y, EMBARK_SEA, &enemy_spotted ); if ( enemy_spotted ) engine_clear_backup(); if ( cur_ctrl == PLAYER_CTRL_HUMAN ) engine_select_unit( action->unit ); } break; case ACTION_DEBARK_SEA: if ( map_check_unit_debark( action->unit, action->x, action->y, EMBARK_SEA, 0 ) ) { map_debark_unit( action->unit, action->x, action->y, EMBARK_SEA, &enemy_spotted ); if ( enemy_spotted ) engine_clear_backup(); if ( cur_ctrl == PLAYER_CTRL_HUMAN ) engine_select_unit( action->unit ); /* CHECK IF SCENARIO IS FINISHED (by capturing last flag) */ if ( scen_check_result( 0 ) ) { engine_finish_scenario(); break; } } break; case ACTION_MERGE: if ( unit_check_merge( action->unit, action->target ) ) { unit_merge( action->unit, action->target ); engine_remove_unit( action->target ); map_get_vis_units(); if ( cur_ctrl == PLAYER_CTRL_HUMAN ) engine_select_unit( action->unit ); } break; case ACTION_SPLIT: if ( map_check_unit_split(action->unit,action->str,action->x,action->y,action->target) ) { if (action->target) { /* do reverse merge */ int old_str = action->unit->str; action->unit->str = action->str; unit_merge(action->target,action->unit); action->unit->str = old_str-action->str; unit_set_as_used(action->unit); unit_update_bar(action->unit); } else { /* add new unit */ int dummy; Unit *newUnit = unit_duplicate( action->unit ); newUnit->str = action->str; newUnit->x = action->x; newUnit->y = action->y; newUnit->terrain = map[newUnit->x][newUnit->y].terrain; action->unit->str -= action->str; list_add(units,newUnit); map_insert_unit(newUnit); unit_set_as_used(action->unit); unit_set_as_used(newUnit); unit_update_bar(action->unit); unit_update_bar(newUnit); map_update_spot_mask(newUnit,&dummy); map_set_fog(F_SPOT); } } break; case ACTION_DISBAND: engine_remove_unit( action->unit ); map_get_vis_units(); if ( cur_ctrl == PLAYER_CTRL_HUMAN ) engine_select_unit(0); break; case ACTION_EMBARK_AIR: if ( map_check_unit_embark( action->unit, action->x, action->y, EMBARK_AIR, 0 ) ) { map_embark_unit( action->unit, action->x, action->y, EMBARK_AIR, &enemy_spotted ); if ( enemy_spotted ) engine_clear_backup(); if ( cur_ctrl == PLAYER_CTRL_HUMAN ) engine_select_unit( action->unit ); } break; case ACTION_DEBARK_AIR: if ( map_check_unit_debark( action->unit, action->x, action->y, EMBARK_AIR, 0 ) ) { if (action->id==1) /* normal landing */ map_debark_unit( action->unit, action->x, action->y, EMBARK_AIR, &enemy_spotted ); else map_debark_unit( action->unit, action->x, action->y, DROP_BY_PARACHUTE, &enemy_spotted ); if ( enemy_spotted ) engine_clear_backup(); if ( cur_ctrl == PLAYER_CTRL_HUMAN ) engine_select_unit( action->unit ); /* CHECK IF SCENARIO IS FINISHED (by capturing last flag) */ if ( scen_check_result( 0 ) ) { engine_finish_scenario(); break; } } break; case ACTION_SUPPLY: if ( unit_check_supply( action->unit, UNIT_SUPPLY_ANYTHING, 0, 0 ) ) unit_supply( action->unit, UNIT_SUPPLY_ALL ); break; case ACTION_END_TURN: engine_end_turn(); if (!end_scen) engine_begin_turn( 0, 0 ); break; case ACTION_MOVE: cur_unit = action->unit; move_unit = action->unit; if ( move_unit->cur_mov == 0 ) { fprintf( stderr, tr("%s has no move points remaining\n"), move_unit->name ); break; } dest_x = action->x; dest_y = action->y; status = STATUS_MOVE; phase = PHASE_INIT_MOVE; engine_clear_danger_mask(); if ( cur_ctrl == PLAYER_CTRL_HUMAN ) image_hide( gui->cursors, 1 ); break; case ACTION_ATTACK: if ( !unit_check_attack( action->unit, action->target, UNIT_ACTIVE_ATTACK ) ) { fprintf( stderr, tr("'%s' (%i,%i) can not attack '%s' (%i,%i)\n"), action->unit->name, action->unit->x, action->unit->y, action->target->name, action->target->x, action->target->y ); break; } if ( !mask[action->target->x][action->target->y].spot ) { fprintf( stderr, tr("'%s' may not attack unit '%s' (not visible)\n"), action->unit->name, action->target->name ); break; } cur_unit = action->unit; cur_target = action->target; unit_get_df_units( cur_unit, cur_target, units, df_units ); if ( engine_get_next_combatants() ) { status = STATUS_ATTACK; phase = PHASE_INIT_ATK; engine_clear_danger_mask(); if ( cur_ctrl == PLAYER_CTRL_HUMAN ) image_hide( gui->cursors, 1 ); } break; case ACTION_STRATEGIC_ATTACK: cur_unit = action->unit; cur_target = NULL; unit_get_df_units_strategic( cur_unit, map[cur_unit->x][cur_unit->y].player, units, df_units ); if (engine_get_next_combatants()) { /* close unit attacks before carpet bombing * use regular combat status to handle this * when it comes to final fight with non-existing * target, engine will switch over again */ status = STATUS_ATTACK; phase = PHASE_INIT_ATK; } else { /* no defensive fire, run carpet bombing straight */ status = STATUS_STRAT_ATTACK; phase = PHASE_SA_INIT; } engine_clear_danger_mask(); if ( cur_ctrl == PLAYER_CTRL_HUMAN ) image_hide( gui->cursors, 1 ); break; } free( action ); } /* ==================================================================== Update the engine if an action is currently handled. ==================================================================== */ static void engine_update( int ms ) { int cx, cy; int old_atk_str, old_def_str; int old_atk_suppr, old_def_suppr; int old_atk_turn_suppr, old_def_turn_suppr; int reset = 0; int broken_up = 0; int was_final_fight = 0; int type = UNIT_STAYS, dx, dy; int start_x, start_y, end_x, end_y; float len; int i; int enemy_spotted = 0; int surrender = 0; /* check status and phase */ switch ( status ) { case STATUS_MOVE: switch ( phase ) { case PHASE_INIT_MOVE: /* get move mask */ map_get_unit_move_mask( move_unit ); /* check if tile is in reach */ if ( mask[dest_x][dest_y].in_range == 0 ) { fprintf( stderr, tr("%i,%i out of reach for '%s'\n"), dest_x, dest_y, move_unit->name ); phase = PHASE_END_MOVE; break; } if ( mask[dest_x][dest_y].blocked ) { fprintf( stderr, tr("%i,%i is blocked ('%s' wants to move there)\n"), dest_x, dest_y, move_unit->name ); phase = PHASE_END_MOVE; break; } way = map_get_unit_way_points( move_unit, dest_x, dest_y, &way_length, &surp_unit ); if ( way == 0 ) { fprintf( stderr, tr("There is no way for unit '%s' to move to %i,%i\n"), move_unit->name, dest_x, dest_y ); phase = PHASE_END_MOVE; break; } /* remove unit influence */ if ( !player_is_ally( move_unit->player, cur_player ) ) map_remove_unit_infl( move_unit ); /* backup the unit but only if this is not a fleeing unit! */ if ( fleeing_unit ) fleeing_unit = 0; else engine_backup_move( move_unit, dest_x, dest_y ); /* if ground transporter needed mount unit */ if ( mask[dest_x][dest_y].mount ) unit_mount( move_unit ); /* start at first way point */ way_pos = 0; /* unit's used */ move_unit->unused = 0; /* artillery looses ability to attack */ if ( move_unit->sel_prop->flags & ATTACK_FIRST ) move_unit->cur_atk_count = 0; /* decrease moving points */ /* if ( ( move_unit->sel_prop->flags & RECON ) && surp_unit == 0 ) move_unit->cur_mov = mask[dest_x][dest_y].in_range - 1; else*/ move_unit->cur_mov = 0; if ( move_unit->cur_mov < 0 ) move_unit->cur_mov = 0; /* no entrenchment */ move_unit->entr = 0; /* build up the image */ if ( !blind_cpu_turn ) { move_image = image_create( create_surf( move_unit->sel_prop->icon->w, move_unit->sel_prop->icon->h, SDL_SWSURFACE ), move_unit->sel_prop->icon_w, move_unit->sel_prop->icon_h, sdl.screen, 0, 0 ); image_set_region( move_image, move_unit->icon_offset, 0, move_unit->sel_prop->icon_w, move_unit->sel_prop->icon_h ); SDL_FillRect( move_image->img, 0, move_unit->sel_prop->icon->format->colorkey ); SDL_SetColorKey( move_image->img, SDL_SRCCOLORKEY, move_unit->sel_prop->icon->format->colorkey ); FULL_DEST( move_image->img ); FULL_SOURCE( move_unit->sel_prop->icon ); blit_surf(); if ( mask[move_unit->x][move_unit->y].fog ) image_hide( move_image, 1 ); } /* remove unit from map */ map_remove_unit( move_unit ); if ( !blind_cpu_turn ) { engine_get_screen_pos( move_unit->x, move_unit->y, &start_x, &start_y ); start_x += ( ( hex_w - move_unit->sel_prop->icon_w ) >> 1 ); start_y += ( ( hex_h - move_unit->sel_prop->icon_h ) >> 1 ); image_move( move_image, start_x, start_y ); draw_map = 1; } /* animate */ phase = PHASE_START_SINGLE_MOVE; /* play sound */ #ifdef WITH_SOUND if ( !mask[move_unit->x][move_unit->y].fog ) wav_play( move_unit->sel_prop->wav_move ); #endif /* since it moves it is no longer assumed to be a guard */ move_unit->is_guarding = 0; break; case PHASE_START_SINGLE_MOVE: /* get next start way point */ if ( blind_cpu_turn ) { way_pos = way_length - 1; /* quick move unit */ for ( i = 1; i < way_length; i++ ) { move_unit->x = way[i].x; move_unit->y = way[i].y; map_update_spot_mask( move_unit, &enemy_spotted ); } } else if ( !modify_fog ) { i = way_pos; while ( i + 1 < way_length && mask[way[i].x][way[i].y].fog && mask[way[i + 1].x][way[i + 1].y].fog ) { i++; /* quick move unit */ move_unit->x = way[i].x; move_unit->y = way[i].y; map_update_spot_mask( move_unit, &enemy_spotted ); } way_pos = i; } /* focus current way point */ if ( way_pos < way_length - 1 ) if ( !blind_cpu_turn && ( MAP_CHECK_VIS( way[way_pos].x, way[way_pos].y ) || MAP_CHECK_VIS( way[way_pos + 1].x, way[way_pos + 1].y ) ) ) { if ( engine_focus( way[way_pos].x, way[way_pos].y, 1 ) ) { engine_get_screen_pos( way[way_pos].x, way[way_pos].y, &start_x, &start_y ); start_x += ( ( hex_w - move_unit->sel_prop->icon_w ) >> 1 ); start_y += ( ( hex_h - move_unit->sel_prop->icon_h ) >> 1 ); image_move( move_image, start_x, start_y ); } } /* units looking direction */ unit_adjust_orient( move_unit, way[way_pos].x, way[way_pos].y ); if ( !blind_cpu_turn ) image_set_region( move_image, move_unit->icon_offset, 0, move_unit->sel_prop->icon_w, move_unit->sel_prop->icon_h ); /* units position */ move_unit->x = way[way_pos].x; move_unit->y = way[way_pos].y; /* update spotting */ map_update_spot_mask( move_unit, &enemy_spotted ); if ( modify_fog ) map_set_fog( F_SPOT ); if ( enemy_spotted ) { /* if you spotted an enemy it's not allowed to undo the turn */ engine_clear_backup(); } /* determine next step */ if ( way_pos == way_length - 1 ) phase = PHASE_CHECK_LAST_MOVE; else { /* animate? */ if ( MAP_CHECK_VIS( way[way_pos].x, way[way_pos].y ) || MAP_CHECK_VIS( way[way_pos + 1].x, way[way_pos + 1].y ) ) { engine_get_screen_pos( way[way_pos].x, way[way_pos].y, &start_x, &start_y ); start_x += ( ( hex_w - move_unit->sel_prop->icon_w ) >> 1 ); start_y += ( ( hex_h - move_unit->sel_prop->icon_h ) >> 1 ); engine_get_screen_pos( way[way_pos + 1].x, way[way_pos + 1].y, &end_x, &end_y ); end_x += ( ( hex_w - move_unit->sel_prop->icon_w ) >> 1 ); end_y += ( ( hex_h - move_unit->sel_prop->icon_h ) >> 1 ); unit_vector.x = start_x; unit_vector.y = start_y; move_vector.x = end_x - start_x; move_vector.y = end_y - start_y; len = sqrt( move_vector.x * move_vector.x + move_vector.y * move_vector.y ); move_vector.x /= len; move_vector.y /= len; image_move( move_image, (int)unit_vector.x, (int)unit_vector.y ); set_delay( &move_time, ((int)( len / move_vel ))/config.anim_speed ); } else set_delay( &move_time, 0 ); phase = PHASE_RUN_SINGLE_MOVE; image_hide( move_image, 0 ); } break; case PHASE_RUN_SINGLE_MOVE: if ( timed_out( &move_time, ms ) ) { /* next way point */ way_pos++; /* next movement */ phase = PHASE_START_SINGLE_MOVE; } else { unit_vector.x += move_vector.x * move_vel * ms; unit_vector.y += move_vector.y * move_vel * ms; image_move( move_image, (int)unit_vector.x, (int)unit_vector.y ); } break; case PHASE_CHECK_LAST_MOVE: /* insert unit */ map_insert_unit( move_unit ); /* capture flag if there is one */ /* NOTE: only do it for AI. For the human player, it will * be done on deselecting the current unit to resemble * original Panzer General behaviour */ if ( cur_ctrl == PLAYER_CTRL_CPU ) { if ( engine_capture_flag( move_unit ) ) { /* CHECK IF SCENARIO IS FINISHED */ if ( scen_check_result( 0 ) ) { engine_finish_scenario(); break; } } } /* add influence */ if ( !player_is_ally( move_unit->player, cur_player ) ) map_add_unit_infl( move_unit ); /* update the visible units list */ map_get_vis_units(); map_set_vis_infl_mask(); /* next phase */ phase = PHASE_END_MOVE; break; case PHASE_END_MOVE: /* fade out sound */ #ifdef WITH_SOUND audio_fade_out( 0, 500 ); /* move sound channel */ #endif /* decrease fuel for way_pos hex tiles of movement */ if ( unit_check_fuel_usage( move_unit ) && config.supply ) { move_unit->cur_fuel -= unit_calc_fuel_usage( move_unit, way_pos ); if ( move_unit->cur_fuel < 0 ) move_unit->cur_fuel = 0; } /* clear move buffer image */ if ( !blind_cpu_turn ) image_delete( &move_image ); /* run surprise contact */ if ( surp_unit ) { cur_unit = move_unit; cur_target = surp_unit; surp_contact = 1; surp_unit = 0; if ( engine_get_next_combatants() ) { status = STATUS_ATTACK; phase = PHASE_INIT_ATK; if ( !blind_cpu_turn ) { image_hide( gui->cursors, 1 ); draw_map = 1; } } break; } /* reselect unit -- cur_unit may differ from move_unit! */ if ( cur_ctrl == PLAYER_CTRL_HUMAN ) engine_select_unit( cur_unit ); /* status */ engine_set_status( STATUS_NONE ); phase = PHASE_NONE; /* allow new human/cpu input */ if ( !blind_cpu_turn ) { if ( cur_ctrl == PLAYER_CTRL_HUMAN ) { gui_set_cursor( CURSOR_STD ); image_hide( gui->cursors, 0 ); old_mx = old_my = -1; } draw_map = 1; } break; } break; case STATUS_STRAT_ATTACK: switch (phase) { case PHASE_SA_INIT: if ( !blind_cpu_turn && MAP_CHECK_VIS( cur_unit->x, cur_unit->y ) ) { engine_focus( cur_unit->x, cur_unit->y, 1 ); label_write( gui->label, gui->font_error, tr("Carpet Bombing!") ); engine_get_screen_pos( cur_unit->x, cur_unit->y, &cx, &cy ); reset_delay( &msg_delay ); } phase = PHASE_SA_ATTACK; break; case PHASE_SA_ATTACK: if ( timed_out( &msg_delay, ms) ) { phase = PHASE_SA_FINALIZE; label_hide( gui->label, 1 ); /* perform active attack */ if (engine_strategic_attack(1)) { if ( !blind_cpu_turn && MAP_CHECK_VIS( cur_unit->x, cur_unit->y ) ) { map_draw_tile( sdl.screen, cur_unit->x, cur_unit->y, cx, cy, !air_mode, 0 ); anim_move( terrain_icons->expl1, cx, cy ); anim_play( terrain_icons->expl1, 0 ); phase = PHASE_SA_EXPLOSION; } } } break; case PHASE_SA_EXPLOSION: if ( !terrain_icons->expl1->playing ) { phase = PHASE_SA_FINALIZE; anim_hide( terrain_icons->expl1, 1 ); } break; case PHASE_SA_FINALIZE: engine_clear_backup(); /* no undo allowed now */ /* reselect unit */ if ( cur_ctrl == PLAYER_CTRL_HUMAN ) engine_select_unit( cur_unit ); /* status */ engine_set_status( STATUS_NONE ); phase = PHASE_NONE; /* allow new human/cpu input */ if ( !blind_cpu_turn ) { if ( cur_ctrl == PLAYER_CTRL_HUMAN ) { image_hide( gui->cursors, 0 ); gui_set_cursor( CURSOR_STD ); } draw_map = 1; } break; } break; case STATUS_ATTACK: switch ( phase ) { case PHASE_INIT_ATK: #ifdef DEBUG_ATTACK printf( "\n" ); #endif if ( !blind_cpu_turn ) { if ( MAP_CHECK_VIS( cur_atk->x, cur_atk->y ) ) { /* show attacker cross */ engine_focus( cur_atk->x, cur_atk->y, 1 ); engine_get_screen_pos( cur_atk->x, cur_atk->y, &cx, &cy ); anim_move( terrain_icons->cross, cx, cy ); anim_play( terrain_icons->cross, 0 ); } phase = PHASE_SHOW_ATK_CROSS; label_hide( gui->label2, 1 ); } else phase = PHASE_COMBAT; /* both units in a fight are no longer just guarding */ cur_atk->is_guarding = 0; cur_def->is_guarding = 0; break; case PHASE_SHOW_ATK_CROSS: if ( !terrain_icons->cross->playing ) { if ( MAP_CHECK_VIS( cur_def->x, cur_def->y ) ) { /* show defender cross */ engine_focus( cur_def->x, cur_def->y, 1 ); engine_get_screen_pos( cur_def->x, cur_def->y, &cx, &cy ); anim_move( terrain_icons->cross, cx, cy ); anim_play( terrain_icons->cross, 0 ); } phase = PHASE_SHOW_DEF_CROSS; } break; case PHASE_SHOW_DEF_CROSS: if ( !terrain_icons->cross->playing ) phase = PHASE_COMBAT; break; case PHASE_COMBAT: /* backup old strength to see who needs and explosion */ old_atk_str = cur_atk->str; old_def_str = cur_def->str; /* backup old suppression to calculate delta */ old_atk_suppr = cur_atk->suppr; old_def_suppr = cur_def->suppr; old_atk_turn_suppr = cur_atk->turn_suppr; old_def_turn_suppr = cur_def->turn_suppr; /* take damage */ if ( surp_contact ) atk_result = unit_surprise_attack( cur_atk, cur_def ); else { if ( df_units->count > 0 ) atk_result = unit_normal_attack( cur_atk, cur_def, UNIT_DEFENSIVE_ATTACK ); else atk_result = unit_normal_attack( cur_atk, cur_def, UNIT_ACTIVE_ATTACK ); } /* calculate deltas */ atk_damage_delta = old_atk_str - cur_atk->str; def_damage_delta = old_def_str - cur_def->str; atk_suppr_delta = cur_atk->suppr - old_atk_suppr; def_suppr_delta = cur_def->suppr - old_def_suppr; atk_suppr_delta += cur_atk->turn_suppr - old_atk_turn_suppr; def_suppr_delta += cur_def->turn_suppr - old_def_turn_suppr; if ( blind_cpu_turn ) phase = PHASE_CHECK_RESULT; else { /* if rugged defense add a pause */ if ( atk_result & AR_RUGGED_DEFENSE ) { phase = PHASE_RUGGED_DEF; if ( cur_def->sel_prop->flags & FLYING ) label_write( gui->label, gui->font_error, tr("Out Of The Sun!") ); else if ( cur_def->sel_prop->flags & SWIMMING ) label_write( gui->label, gui->font_error, tr("Surprise Contact!") ); else label_write( gui->label, gui->font_error, tr("Rugged Defense!") ); reset_delay( &msg_delay ); } else if (atk_result & AR_EVADED) { /* if sub evaded give info */ label_write( gui->label, gui->font_error, tr("Submarine evades!") ); reset_delay( &msg_delay ); phase = PHASE_EVASION; } else phase = PHASE_PREP_EXPLOSIONS; } break; case PHASE_EVASION: if ( timed_out( &msg_delay, ms ) ) { phase = PHASE_PREP_EXPLOSIONS; label_hide( gui->label, 1 ); } break; case PHASE_RUGGED_DEF: if ( timed_out( &msg_delay, ms ) ) { phase = PHASE_PREP_EXPLOSIONS; label_hide( gui->label, 1 ); } break; case PHASE_PREP_EXPLOSIONS: engine_focus( cur_def->x, cur_def->y, 1 ); if (defFire) gui_show_actual_losses( cur_def, cur_atk, def_suppr_delta, def_damage_delta, atk_suppr_delta, atk_damage_delta ); else { if (cur_atk->sel_prop->flags & TURN_SUPPR) gui_show_actual_losses( cur_atk, cur_def, atk_suppr_delta, atk_damage_delta, def_suppr_delta, def_damage_delta ); else gui_show_actual_losses( cur_atk, cur_def, 0, atk_damage_delta, 0, def_damage_delta ); } /* attacker epxlosion */ if ( atk_damage_delta ) { engine_get_screen_pos( cur_atk->x, cur_atk->y, &cx, &cy ); if (!cur_atk->str) map_remove_unit( cur_atk ); map_draw_tile( sdl.screen, cur_atk->x, cur_atk->y, cx, cy, !air_mode, 0 ); anim_move( terrain_icons->expl1, cx, cy ); anim_play( terrain_icons->expl1, 0 ); } /* defender explosion */ if ( def_damage_delta ) { engine_get_screen_pos( cur_def->x, cur_def->y, &cx, &cy ); if (!cur_def->str) map_remove_unit( cur_def ); map_draw_tile( sdl.screen, cur_def->x, cur_def->y, cx, cy, !air_mode, 0 ); anim_move( terrain_icons->expl2, cx, cy ); anim_play( terrain_icons->expl2, 0 ); } phase = PHASE_SHOW_EXPLOSIONS; /* play sound */ #ifdef WITH_SOUND if ( def_damage_delta || atk_damage_delta ) wav_play( terrain_icons->wav_expl ); #endif break; case PHASE_SHOW_EXPLOSIONS: if ( !terrain_icons->expl1->playing && !terrain_icons->expl2->playing ) { phase = PHASE_FIGHT_MSG; reset_delay( &msg_delay ); anim_hide( terrain_icons->expl1, 1 ); anim_hide( terrain_icons->expl2, 1 ); } break; case PHASE_FIGHT_MSG: if ( timed_out( &msg_delay, ms ) ) { phase = PHASE_CHECK_RESULT; } break; case PHASE_CHECK_RESULT: surp_contact = 0; /* check attack result */ if ( atk_result & AR_UNIT_KILLED ) { scen_inc_casualties_for_unit( cur_atk ); engine_remove_unit( cur_atk ); cur_atk = 0; } if ( atk_result & AR_TARGET_KILLED ) { scen_inc_casualties_for_unit( cur_def ); engine_remove_unit( cur_def ); cur_def = 0; } /* CHECK IF SCENARIO IS FINISHED DUE TO UNITS_KILLED OR UNITS_SAVED */ if ( scen_check_result( 0 ) ) { engine_finish_scenario(); break; } reset = 1; if ( df_units->count > 0 ) { /* this fight was with a supporting unit, * clean it from df list and set reset=0 to * get to next fight */ if ( atk_result & AR_TARGET_SUPPRESSED || atk_result & AR_TARGET_KILLED ) { list_clear( df_units ); if ( atk_result & AR_TARGET_KILLED ) cur_unit = 0; else { /* supressed unit looses its actions */ cur_unit->cur_mov = 0; cur_unit->cur_atk_count = 0; cur_unit->unused = 0; broken_up = 1; } } else { reset = 0; list_delete_pos( df_units, 0 ); } } else was_final_fight = 1; if ( !reset ) { /* continue fighting */ if ( engine_get_next_combatants() ) { status = STATUS_ATTACK; phase = PHASE_INIT_ATK; } else { /* no target = empty tile was attacked * -> carpet bombing! switch engine status */ status = STATUS_STRAT_ATTACK; phase = PHASE_SA_INIT; } } else { /* clear suppression from defensive fire */ if ( cur_atk ) { cur_atk->suppr = 0; cur_atk->unused = 0; } if ( cur_def ) cur_def->suppr = 0; /* if this was the final fight between selected unit and selected target check if one of these units was completely suppressed and surrenders or flees */ if ( was_final_fight ) { engine_clear_backup(); /* no undo allowed after attack */ if ( cur_atk != 0 && cur_def != 0 ) { if ( atk_result & AR_UNIT_ATTACK_BROKEN_UP ) { /* unit broke up the attack */ broken_up = 1; } else /* total suppression may only cause fleeing or surrender if: both units are ground/naval units in close combat: the unit that causes suppr must have range 0 (melee) inf -> fort (fort may surrender) fort -> adjacent inf (inf will not flee) */ if (!(cur_atk->sel_prop->flags&FLYING)&& !(cur_def->sel_prop->flags&FLYING)) { if ( atk_result & AR_UNIT_SUPPRESSED && !(atk_result & AR_TARGET_SUPPRESSED) && cur_def->sel_prop->rng==0 ) { /* cur_unit is suppressed */ engine_handle_suppr( cur_atk, &type, &dx, &dy ); if ( type == UNIT_FLEES ) { status = STATUS_MOVE; phase = PHASE_INIT_MOVE; move_unit = cur_atk; fleeing_unit = 1; dest_x = dx; dest_y = dy; break; } else if ( type == UNIT_SURRENDERS ) { surrender = 1; surrender_unit = cur_atk; } } else if ( atk_result & AR_TARGET_SUPPRESSED && !(atk_result & AR_UNIT_SUPPRESSED) && cur_atk->sel_prop->rng==0 ) { /* cur_target is suppressed */ engine_handle_suppr( cur_def, &type, &dx, &dy ); if ( type == UNIT_FLEES ) { status = STATUS_MOVE; phase = PHASE_INIT_MOVE; move_unit = cur_def; fleeing_unit = 1; dest_x = dx; dest_y = dy; break; } else if ( type == UNIT_SURRENDERS ) { surrender = 1; surrender_unit = cur_def; } } } } /* XXX (maybe) apply passive strategic bombing */ engine_strategic_attack(0); /* clear pointers */ if ( cur_atk == 0 ) cur_unit = 0; if ( cur_def == 0 ) cur_target = 0; } if ( broken_up ) { phase = PHASE_BROKEN_UP_MSG; label_write( gui->label, gui->font_error, tr("Attack Broken Up!") ); reset_delay( &msg_delay ); break; } if ( surrender ) { const char *msg = surrender_unit->sel_prop->flags & SWIMMING ? tr("Ship is scuttled!") : tr("Surrenders!"); phase = PHASE_SURRENDER_MSG; label_write( gui->label, gui->font_error, msg ); reset_delay( &msg_delay ); break; } phase = PHASE_END_COMBAT; } break; case PHASE_SURRENDER_MSG: if ( timed_out( &msg_delay, ms ) ) { if ( surrender_unit == cur_atk ) { cur_unit = 0; cur_atk = 0; } if ( surrender_unit == cur_def ) { cur_def = 0; cur_target = 0; } engine_remove_unit( surrender_unit ); phase = PHASE_END_COMBAT; label_hide( gui->label, 1 ); } break; case PHASE_BROKEN_UP_MSG: if ( timed_out( &msg_delay, ms ) ) { phase = PHASE_END_COMBAT; label_hide( gui->label, 1 ); } break; case PHASE_END_COMBAT: #ifdef WITH_SOUND audio_fade_out( 2, 1500 ); /* explosion sound channel */ #endif /* costs one fuel point for attacker */ if ( cur_unit && unit_check_fuel_usage( cur_unit ) && cur_unit->cur_fuel > 0 ) cur_unit->cur_fuel--; /* update the visible units list */ map_get_vis_units(); map_set_vis_infl_mask(); /* reselect unit */ if ( cur_ctrl == PLAYER_CTRL_HUMAN ) engine_select_unit( cur_unit ); /* status */ engine_set_status( STATUS_NONE ); label_hide( gui->label2, 1 ); phase = PHASE_NONE; /* allow new human/cpu input */ if ( !blind_cpu_turn ) { if ( cur_ctrl == PLAYER_CTRL_HUMAN ) { image_hide( gui->cursors, 0 ); gui_set_cursor( CURSOR_STD ); } draw_map = 1; } break; } break; } /* update anims */ if ( status == STATUS_ATTACK || status == STATUS_STRAT_ATTACK ) { anim_update( terrain_icons->cross, ms ); anim_update( terrain_icons->expl1, ms ); anim_update( terrain_icons->expl2, ms ); } if ( status == STATUS_STRAT_MAP ) { if ( timed_out( &blink_delay, ms ) ) strat_map_blink(); } if ( status == STATUS_CAMP_BRIEFING ) { gui_draw_message_pane(camp_pane); } /* update gui */ gui_update( ms ); if ( edit_update( gui->edit, ms ) ) { #ifdef WITH_SOUND wav_play( gui->wav_edit ); #endif } } /* ==================================================================== Main game loop. If a restart is nescessary 'setup' is modified and 'reinit' is set True. ==================================================================== */ static void engine_main_loop( int *reinit ) { int ms; if ( status == STATUS_TITLE && !term_game ) { engine_draw_bkgnd(); engine_show_game_menu(10,10); refresh_screen( 0, 0, 0, 0 ); } else if ( status == STATUS_CAMP_BRIEFING ) ; else engine_begin_turn( cur_player, setup.type == SETUP_LOAD_GAME /* skip unit preps then */ ); gui_get_bkgnds(); *reinit = 0; reset_timer(); while( !end_scen && !term_game ) { engine_begin_frame(); /* check input/cpu events and put to action queue */ engine_check_events(reinit); /* handle queued actions */ engine_handle_next_action( reinit ); /* get time */ ms = get_time(); /* delay next scroll step */ if ( scroll_vert || scroll_hori ) { if ( scroll_time > ms ) { set_delay( &scroll_delay, scroll_time ); scroll_block = 1; scroll_vert = scroll_hori = SCROLL_NONE; } else set_delay( &scroll_delay, 0 ); } if ( timed_out( &scroll_delay, ms ) ) scroll_block = 0; /* update */ engine_update( ms ); engine_end_frame(); /* short delay */ SDL_Delay( 5 ); } /* hide these windows, so the initial screen looks as original */ frame_hide(gui->qinfo1, 1); frame_hide(gui->qinfo2, 1); label_hide(gui->label, 1); label_hide( gui->label2, 1 ); } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== Create engine (load resources that are not modified by scenario) ==================================================================== */ int engine_create() { slots_init(); gui_load( "default" ); return 1; } void engine_delete() { engine_shutdown(); scen_clear_setup(); if (prev_scen_core_units) list_delete(prev_scen_core_units); if (prev_scen_fname) free(prev_scen_fname); gui_delete(); } /* ==================================================================== Initiate engine by loading scenario either as saved game or new scenario by the global 'setup'. ==================================================================== */ int engine_init() { int i, j; Player *player; #ifdef USE_DL char path[256]; #endif end_scen = 0; /* build action queue */ actions_create(); /* scenario&campaign or title*/ if ( setup.type == SETUP_RUN_TITLE ) { status = STATUS_TITLE; return 1; } if ( setup.type == SETUP_CAMP_BRIEFING ) { status = STATUS_CAMP_BRIEFING; return 1; } if ( setup.type == SETUP_LOAD_GAME ) { if ( !slot_load( setup.slot_id ) ) return 0; } else if ( setup.type == SETUP_INIT_CAMP ) { if ( !camp_load( setup.fname ) ) return 0; camp_set_cur( setup.scen_state ); if ( !camp_cur_scen ) return 0; setup.type = SETUP_CAMP_BRIEFING; /* new campaign so clear core unit transfer list if any */ if (prev_scen_core_units) list_clear(prev_scen_core_units); return 1; } else { if ( !scen_load( setup.fname ) ) return 0; if ( setup.type == SETUP_INIT_SCEN ) { /* player control */ list_reset( players ); for ( i = 0; i < setup.player_count; i++ ) { player = list_next( players ); player->ctrl = setup.ctrl[i]; free( player->ai_fname ); player->ai_fname = strdup( setup.modules[i] ); } } /* select first player */ cur_player = players_get_first(); } /* store current settings to setup */ scen_set_setup(); /* load the ai modules */ list_reset( players ); for ( i = 0; i < players->count; i++ ) { player = list_next( players ); /* clear callbacks */ player->ai_init = 0; player->ai_run = 0; player->ai_finalize = 0; if ( player->ctrl == PLAYER_CTRL_CPU ) { #ifdef USE_DL if ( strcmp( "default", player->ai_fname ) ) { sprintf( path, "%s/ai_modules/%s", get_gamedir(), player->ai_fname ); if ( ( player->ai_mod_handle = dlopen( path, RTLD_GLOBAL | RTLD_NOW ) ) == 0 ) fprintf( stderr, "%s\n", dlerror() ); else { if ( ( player->ai_init = dlsym( player->ai_mod_handle, "ai_init" ) ) == 0 ) fprintf( stderr, "%s\n", dlerror() ); if ( ( player->ai_run = dlsym( player->ai_mod_handle, "ai_run" ) ) == 0 ) fprintf( stderr, "%s\n", dlerror() ); if ( ( player->ai_finalize = dlsym( player->ai_mod_handle, "ai_finalize" ) ) == 0 ) fprintf( stderr, "%s\n", dlerror() ); } if ( player->ai_init == 0 || player->ai_run == 0 || player->ai_finalize == 0 ) { fprintf( stderr, tr("%s: AI module '%s' invalid. Use built-in AI.\n"), player->name, player->ai_fname ); /* use the internal AI */ player->ai_init = ai_init; player->ai_run = ai_run; player->ai_finalize = ai_finalize; if ( player->ai_mod_handle ) { dlclose( player->ai_mod_handle ); player->ai_mod_handle = 0; } } } else { player->ai_init = ai_init; player->ai_run = ai_run; player->ai_finalize = ai_finalize; } #else player->ai_init = ai_init; player->ai_run = ai_run; player->ai_finalize = ai_finalize; #endif } } /* no unit selected */ cur_unit = cur_target = cur_atk = cur_def = move_unit = surp_unit = deploy_unit = surrender_unit = 0; df_units = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); /* engine */ /* tile mask */ /* 1 = map tile directly hit 0 = neighbor */ hex_mask = calloc( hex_w * hex_h, sizeof ( int ) ); for ( j = 0; j < hex_h; j++ ) for ( i = 0; i < hex_w; i++ ) if ( get_pixel( terrain_icons->fog, i, j ) ) hex_mask[j * hex_w + i] = 1; /* screen copy buffer */ sc_buffer = create_surf( sdl.screen->w, sdl.screen->h, SDL_SWSURFACE ); sc_type = 0; /* map geometry */ map_x = map_y = 0; map_sx = -hex_x_offset; map_sy = -hex_h; for ( i = map_sx, map_sw = 0; i < sdl.screen->w; i += hex_x_offset ) map_sw++; for ( j = map_sy, map_sh = 0; j < sdl.screen->h; j += hex_h ) map_sh++; /* reset scroll delay */ set_delay( &scroll_delay, 0 ); scroll_block = 0; /* message delay */ set_delay( &msg_delay, 1500/config.anim_speed ); /* hide animations */ anim_hide( terrain_icons->cross, 1 ); anim_hide( terrain_icons->expl1, 1 ); anim_hide( terrain_icons->expl2, 1 ); /* remaining deploy units list */ left_deploy_units = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); /* build strategic map */ strat_map_create(); /* clear status */ status = STATUS_NONE; /* weather */ cur_weather = scen_get_weather(); return 1; } void engine_shutdown() { engine_set_status( STATUS_NONE ); modify_fog = 0; cur_player = 0; cur_ctrl = 0; cur_unit = cur_target = cur_atk = cur_def = move_unit = surp_unit = deploy_unit = surrender_unit = 0; memset( merge_units, 0, sizeof( int ) * MAP_MERGE_UNIT_LIMIT ); merge_unit_count = 0; engine_clear_backup(); scroll_hori = scroll_vert = 0; last_button = 0; scen_delete(); if ( df_units ) { list_delete( df_units ); df_units = 0; } if ( hex_mask ) { free( hex_mask ); hex_mask = 0; } if ( sc_buffer ) { SDL_FreeSurface( sc_buffer ); sc_buffer = 0; } sc_type = SC_NONE; actions_delete(); if ( way ) { free( way ); way = 0; way_length = 0; way_pos = 0; } if ( left_deploy_units ) { list_delete( left_deploy_units ); left_deploy_units = 0; } strat_map_delete(); } /* ==================================================================== Run the engine (starts with the title screen) ==================================================================== */ void engine_run() { int reinit = 1; if (setup.type == SETUP_UNKNOWN) setup.type = SETUP_RUN_TITLE; while ( 1 ) { while ( reinit ) { reinit = 0; if(engine_init() == 0) { /* if engine initialisation is unsuccessful */ /* stay with the title screen */ status = STATUS_TITLE; setup.type = SETUP_RUN_TITLE; } if ( turn == 0 && camp_loaded && setup.type == SETUP_CAMP_BRIEFING ) engine_prep_camp_brief(); engine_main_loop( &reinit ); if (term_game) break; engine_shutdown(); } if ( scen_done() ) { if ( camp_loaded ) { engine_store_debriefing(scen_get_result()); /* determine next scenario in campaign */ if ( !camp_set_next( scen_get_result() ) ) break; if ( camp_cur_scen->nexts == 0 ) { /* final message */ setup.type = SETUP_CAMP_BRIEFING; reinit = 1; } else if ( !camp_cur_scen->scen ) { /* options */ setup.type = SETUP_CAMP_BRIEFING; reinit = 1; } else { /* next scenario */ sprintf( setup.fname, "%s", camp_cur_scen->scen ); setup.type = SETUP_CAMP_BRIEFING; reinit = 1; } } else { setup.type = SETUP_RUN_TITLE; reinit = 1; } } else break; /* clear result before next loop (if any) */ scen_clear_result(); } } lgeneral-1.3.1/src/lg-sdl.h0000664000175000017500000001117312575246413012366 00000000000000/*************************************************************************** sdl.h - description ------------------- begin : Thu Apr 20 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef SDL_H #define SDL_H #include #ifdef __cplusplus extern "C" { #endif /* for development */ //#define SDL_1_1_5 // draw region // #define DEST(p, i, j, k, l) {sdl.d.s = p; sdl.d.r.x = i; sdl.d.r.y = j; sdl.d.r.w = k; sdl.d.r.h = l;} #define SOURCE(p, i, j) {sdl.s.s = p; sdl.s.r.x = i; sdl.s.r.y = j; sdl.s.r.w = sdl.d.r.w; sdl.s.r.h = sdl.d.r.h;} #define FULL_DEST(p) {sdl.d.s = p; sdl.d.r.x = 0; sdl.d.r.y = 0; sdl.d.r.w = (p)->w; sdl.d.r.h = (p)->h;} #define FULL_SOURCE(p) {sdl.s.s = p; sdl.s.r.x = 0; sdl.s.r.y = 0; sdl.s.r.w = sdl.d.r.w; sdl.s.r.h = sdl.d.r.h;} typedef struct { SDL_Surface *s; SDL_Rect r; } DrawRgn; // Sdl Surface // #define SDL_NONFATAL 0x10000000 SDL_Surface* load_surf(const char *fname, int f); SDL_Surface* create_surf(int w, int h, int f); void free_surf( SDL_Surface **surf ); int disp_format(SDL_Surface *sur); inline void lock_surf(SDL_Surface *sur); inline void unlock_surf(SDL_Surface *sur); void blit_surf(void); void alpha_blit_surf(int alpha); void fill_surf(int c); void set_surf_clip( SDL_Surface *surf, int x, int y, int w, int h ); Uint32 set_pixel( SDL_Surface *surf, int x, int y, int pixel ); Uint32 get_pixel( SDL_Surface *surf, int x, int y ); // Sdl Font // #ifdef SDL_1_1_5 enum { OPAQUE = 0 }; #else enum { OPAQUE = 255 }; #endif enum { ALIGN_X_LEFT = (1L<<1), ALIGN_X_CENTER = (1L<<2), ALIGN_X_RIGHT = (1L<<3), ALIGN_Y_TOP = (1L<<4), ALIGN_Y_CENTER = (1L<<5), ALIGN_Y_BOTTOM = (1L<<6) }; typedef struct _Font { SDL_Surface *pic; int align; int color; int height; int char_offset[256]; int width; // total width of surface, *must* follow char_offset // because it is used for spilling char_offset char keys[256]; char offset; char length; //last written rect int last_x; int last_y; int last_width; int last_height; } Font; Font* load_font(const char *fname); void font_load_glyphs(Font *font, const char *fname); void free_font(Font **sfnt); int write_text(Font *sfnt, SDL_Surface *dest, int x, int y, const char *str, int alpha); void write_line( SDL_Surface *surf, Font *font, const char *str, int x, int *y ); inline void lock_font(Font *sfnt); inline void unlock_font(Font *sfnt); SDL_Rect last_write_rect(Font *fnt); int text_width(Font *fnt, const char *str); int char_width(Font *fnt, char c); /* Sdl */ enum { RECT_LIMIT = 200, DIM_STEPS = 8, DIM_DELAY = 20 }; #define DIM_SCREEN() dim_screen(DIM_STEPS, DIM_DELAY, 255) #define UNDIM_SCREEN() undim_screen(DIM_STEPS, DIM_DELAY, 255) typedef struct { int width, height, depth; int fullscreen; } VideoModeInfo; typedef struct { SDL_Surface *screen; DrawRgn d, s; int rect_count; SDL_Rect rect[RECT_LIMIT]; int num_vmodes; VideoModeInfo *vmodes; } Sdl; void init_sdl( int f ); void quit_sdl(); int get_video_modes( VideoModeInfo **vmi ); int set_video_mode( int width, int height, int fullscreen ); void hardware_cap(); void refresh_screen( int x, int y, int w, int h ); void refresh_rects(); void add_refresh_region( int x, int y, int w, int h ); void add_refresh_rect( SDL_Rect *rect ); void dim_screen(int steps, int delay, int trp); void undim_screen(int steps, int delay, int trp); int wait_for_key(); void wait_for_click(); inline void lock_screen(); inline void unlock_screen(); inline void flip_screen(); /* cursor */ /* creates cursor */ SDL_Cursor* create_cursor( int width, int height, int hot_x, int hot_y, const char *source ); /* timer */ int get_time(); void reset_timer(); #ifdef __cplusplus }; #endif #endif lgeneral-1.3.1/src/map.h0000664000175000017500000004154712472366473011776 00000000000000/*************************************************************************** map.h - description ------------------- begin : Sat Jan 20 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __MAP_H #define __MAP_H #include "terrain.h" enum { FAIR = 0, CLOUDS, RAIN, SNOW }; /* ==================================================================== Map tile ==================================================================== */ typedef struct { char *name; /* name of this map tile */ Terrain_Type *terrain; /* terrain properties */ int terrain_id; /* id of terrain properties */ int image_offset; /* image offset in prop->image */ int strat_image_offset; /* offset in the list of strategic tiny terrain images */ Nation *nation; /* nation that owns this flag (NULL == no nation) */ Player *player; /* dito */ int obj; /* military objective ? */ int deploy_center; /* deploy allowed? */ int damaged; /* if carped bombed >0, counts down to 0 again */ Unit *g_unit; /* ground/naval unit pointer */ Unit *a_unit; /* air unit pointer */ } Map_Tile; /* ==================================================================== To determine various things of the map (deploy, spot, blocked ...) a map mask is used and these are the flags for it. ==================================================================== */ enum { F_FOG = ( 1L << 1 ), F_SPOT = ( 1L << 2 ), F_IN_RANGE = ( 1L << 3 ), F_MOUNT = ( 1L << 4 ), F_SEA_EMBARK = ( 1L << 5 ), F_AUX = ( 1L << 6 ), F_INFL = ( 1L << 7 ), F_INFL_AIR = ( 1L << 8 ), F_VIS_INFL = ( 1L << 9 ), F_VIS_INFL_AIR = ( 1L << 10 ), F_BLOCKED = ( 1L << 11 ), F_BACKUP = ( 1L << 12 ), F_MERGE_UNIT = ( 1L << 13), F_INVERSE_FOG = ( 1L << 14 ), /* inversion of F_FOG */ F_DEPLOY = ( 1L << 15 ), F_CTRL_GRND = ( 1L << 17 ), F_CTRL_AIR = ( 1L << 18 ), F_CTRL_SEA = ( 1L << 19 ), F_MOVE_COST = ( 1L << 20 ), F_DANGER = ( 1L << 21 ), F_SPLIT_UNIT = ( 1L << 22 ), F_DISTANCE = ( 1L << 23 ) }; /* ==================================================================== Map mask tile. ==================================================================== */ typedef struct { int fog; /* if true the engine covers this tile with fog. if ENGINE_MODIFY_FOG is set this fog may change depending on the action (range of unit, merge partners etc */ int spot; /* true if any of your units observes this map tile; you can only attack units on a map tile that you spot */ /* used for a selected unit */ int in_range; /* this is used for pathfinding; it's -1 if tile isn't in range else it's set to the remaining moving points of the unit; enemy influence is not included */ int distance; /* mere distance to current unit; used for danger mask */ int moveCost; /* total costs to reach this tile */ int blocked; /* units can move over there tiles with an allied unit but they must not stop there; so allow movment to a tile only if in_range and !blocked */ int mount; /* true if unit must mount to reach this tile */ int sea_embark; /* sea embark possible? */ int infl; /* at the beginning of a player's turn this mask is set; each tile close to a hostile unit gets infl increased; if influence is 1 moving costs are doubled; if influence is >=2 this tile is impassible (unit stops at this tile); if a unit can't see a tile with infl >= 2 and tries to move there it will stop on this tile; independed from a unit's moving points passing an influenced tile costs all mov-points */ int vis_infl; /* analogue to infl but only spotted units contribute to this mask; used to setup in_range mask */ int air_infl; /* analouge for flying units */ int vis_air_infl; int aux; /* used to setup any of the upper values */ int backup; /* used to backup spot mask for undo unit move */ Unit *merge_unit; /* if not NULL this is a pointer to a unit the one who called map_get_merge_units() may merge with. you'll need to remember the other unit as it is not saved here */ Unit *split_unit; /* target unit may transfer strength to */ int split_okay; /* unit may transfer a new subunit to this tile */ int deploy; /* deploy mask: 1: unit may deploy their, 0 unit may not deploy their; setup by deploy.c */ int danger; /* 1: mark this tile as being dangerous to enter */ /* AI masks */ int ctrl_grnd; /* mask of controlled area for a player. own units give there positive combat value in move+attack range while enemy scores are substracted. the final value for each tile is relative to the highest absolute control value thus it ranges from -1000 to 1000 */ int ctrl_air; int ctrl_sea; /* each operational region has it's own control mask */ } Mask_Tile; /* ==================================================================== Load map. ==================================================================== */ int map_load( char *fname ); /* ==================================================================== Delete map. ==================================================================== */ void map_delete( ); /* ==================================================================== Get tile at x,y ==================================================================== */ Map_Tile* map_tile( int x, int y ); Mask_Tile* map_mask_tile( int x, int y ); /* ==================================================================== Clear the passed map mask flags. ==================================================================== */ void map_clear_mask( int flags ); /* ==================================================================== Swap units. Returns the previous unit or 0 if none. ==================================================================== */ Unit *map_swap_unit( Unit *unit ); /* ==================================================================== Insert, Remove unit pointer from map. ==================================================================== */ void map_insert_unit( Unit *unit ); void map_remove_unit( Unit *unit ); /* ==================================================================== Get neighbored tiles clockwise with id between 0 and 5. ==================================================================== */ Map_Tile* map_get_close_hex( int x, int y, int id ); /* ==================================================================== Add/set spotting of a unit to auxiliary mask ==================================================================== */ void map_add_unit_spot_mask( Unit *unit ); void map_get_unit_spot_mask( Unit *unit ); /* ==================================================================== Set movement range of a unit to in_range/sea_embark/mount. ==================================================================== */ void map_get_unit_move_mask( Unit *unit ); void map_clear_unit_move_mask(); /* ==================================================================== Recreates the danger mask for 'unit'. The fog must be set to the movement range of 'unit' for this function to work properly. The movement cost of the mask must have been set for 'unit'. Returns 1 when at least one tile's danger mask was set, otherwise 0. ==================================================================== */ int map_get_danger_mask( Unit *unit ); /* ==================================================================== Get a list of way points the unit moves along to it's destination. This includes check for unseen influence by enemy units (e.g. Surprise Contact). ==================================================================== */ typedef struct { int x, y; } Way_Point; Way_Point* map_get_unit_way_points( Unit *unit, int x, int y, int *count, Unit **ambush_unit ); /* ==================================================================== Backup/restore spot mask to/from backup mask. Used for Undo Turn. ==================================================================== */ void map_backup_spot_mask(); void map_restore_spot_mask(); /* ==================================================================== Get unit's merge partners and set mask 'merge'. At maximum MAP_MERGE_UNIT_LIMIT units. All unused entries in partners are set 0. ==================================================================== */ enum { MAP_MERGE_UNIT_LIMIT = 6 }; void map_get_merge_units( Unit *unit, Unit **partners, int *count ); /* ==================================================================== Check if unit may transfer strength to unit (if not NULL) or create a stand alone unit (if unit NULL) on the coordinates. ==================================================================== */ int map_check_unit_split( Unit *unit, int str, int x, int y, Unit *dest ); /* ==================================================================== Get unit's split partners assuming unit wants to give 'str' strength points and set mask 'split'. At maximum MAP_SPLIT_UNIT_LIMIT units. All unused entries in partners are set 0. 'str' must be valid amount, this is not checked here. ==================================================================== */ enum { MAP_SPLIT_UNIT_LIMIT = 6 }; void map_get_split_units_and_hexes( Unit *unit, int str, Unit **partners, int *count ); /* ==================================================================== Get a list (vis_units) of all visible units by checking spot mask. ==================================================================== */ void map_get_vis_units( void ); /* ==================================================================== Draw a map tile terrain to surface. (fogged if mask::fog is set) ==================================================================== */ void map_draw_terrain( SDL_Surface *surf, int map_x, int map_y, int x, int y ); /* ==================================================================== Draw tile units. If mask::fog is set no units are drawn. If 'ground' is True the ground unit is drawn as primary and the air unit is drawn small (and vice versa). If 'select' is set a selection frame is added. ==================================================================== */ void map_draw_units( SDL_Surface *surf, int map_x, int map_y, int x, int y, int ground, int select ); /* ==================================================================== Draw danger tile. Expects 'surf' to contain a fully drawn tile at the given position which will be tinted by overlaying the danger terrain surface. ==================================================================== */ void map_apply_danger_to_tile( SDL_Surface *surf, int map_x, int map_y, int x, int y ); /* ==================================================================== Draw terrain and units. ==================================================================== */ void map_draw_tile( SDL_Surface *surf, int map_x, int map_y, int x, int y, int ground, int select ); /* ==================================================================== Set/update spot mask of by engine's current player. The update adds the tiles seen by unit. ==================================================================== */ void map_set_spot_mask(); void map_update_spot_mask( Unit *unit, int *enemy_spotted ); /* ==================================================================== Set mask::fog (which is the actual fog of the engine) to either spot mask, in_range mask (covers sea_embark), merge mask, deploy mask. ==================================================================== */ void map_set_fog( int type ); /* ==================================================================== Set the fog to players spot mask by using mask::aux (not mask::spot) ==================================================================== */ void map_set_fog_by_player( Player *player ); /* ==================================================================== Check if this map tile is visible to the engine (isn't covered by mask::fog or mask::spot as modification is allowed and it may be another's player fog (e.g. one human against cpu)) ==================================================================== */ #define MAP_CHECK_VIS( mapx, mapy ) ( ( !modify_fog && !mask[mapx][mapy].fog ) || ( modify_fog && mask[mapx][mapy].spot ) ) /* ==================================================================== Modify the various influence masks. ==================================================================== */ void map_add_unit_infl( Unit *unit ); void map_remove_unit_infl( Unit *unit ); void map_remove_vis_unit_infl( Unit *unit ); void map_set_infl_mask(); void map_set_vis_infl_mask(); /* ==================================================================== Check if unit may air/sea embark/debark at x,y. If 'init' != 0, used relaxed rules for deployment ==================================================================== */ int map_check_unit_embark( Unit *unit, int x, int y, int type, int init ); int map_check_unit_debark( Unit *unit, int x, int y, int type, int init ); /* ==================================================================== Embark/debark unit and return if an enemy was spotted. If 'enemy_spotted' is 0, don't recalculate spot mask. If unit's coordinates or x and y are out of bounds, the respective tile is not manipulated. ==================================================================== */ void map_embark_unit( Unit *unit, int x, int y, int type, int *enemy_spotted ); void map_debark_unit( Unit *unit, int x, int y, int type, int *enemy_spotted ); /* ==================================================================== Set the deploy mask for this unit. If 'init', use the initial deploy mask (or a default one). If not, set the valid deploy centers. In a second run, remove any tile blocked by an own unit if 'unit' is set. ==================================================================== */ void map_get_deploy_mask( Player *player, Unit *unit, int init ); /* ==================================================================== Mark this field being a deployment-field for the given player. ==================================================================== */ void map_set_deploy_field( int mx, int my, int player ); /* ==================================================================== Check whether this field is a deployment-field for the given player. ==================================================================== */ int map_is_deploy_field( int mx, int my, int player ); /* ==================================================================== Check if unit may be deployed to mx, my or return undeployable unit there. If 'air_mode' is set the air unit is checked first. 'player' is the index of the player. ==================================================================== */ int map_check_deploy( Unit *unit, int mx, int my, int player, int init, int air_mode ); Unit* map_get_undeploy_unit( int x, int y, int air_region ); /* ==================================================================== Check the supply level of tile (mx, my) in the context of 'unit'. (hex tiles with SUPPLY_GROUND have 100% supply) ==================================================================== */ int map_get_unit_supply_level( int mx, int my, Unit *unit ); /* ==================================================================== Check if this map tile is a supply point for the given unit. ==================================================================== */ int map_is_allied_depot( Map_Tile *tile, Unit *unit ); /* ==================================================================== Checks whether this hex (mx, my) is supplied by a depot in the context of 'unit'. ==================================================================== */ int map_supplied_by_depot( int mx, int my, Unit *unit ); /* ==================================================================== Get drop zone for unit (all close hexes that are free). ==================================================================== */ void map_get_dropzone_mask( Unit *unit ); #endif lgeneral-1.3.1/src/gfx/0000775000175000017500000000000012643745101011666 500000000000000lgeneral-1.3.1/src/gfx/units/0000775000175000017500000000000012643745101013030 500000000000000lgeneral-1.3.1/src/gfx/units/Makefile.in0000664000175000017500000003603612643745056015036 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/gfx/units DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(unitsdir)" DATA = $(units_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ unitsdir = $(inst_dir)/gfx/units units_DATA = all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gfx/units/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gfx/units/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-unitsDATA: $(units_DATA) @$(NORMAL_INSTALL) @list='$(units_DATA)'; test -n "$(unitsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(unitsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(unitsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(unitsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(unitsdir)" || exit $$?; \ done uninstall-unitsDATA: @$(NORMAL_UNINSTALL) @list='$(units_DATA)'; test -n "$(unitsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(unitsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(unitsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-unitsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-unitsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-unitsDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-unitsDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/gfx/units/Makefile.am0000664000175000017500000000005512140770453015004 00000000000000unitsdir = $(inst_dir)/gfx/units units_DATA =lgeneral-1.3.1/src/gfx/font_credit.bmp0000664000175000017500000006571612140770454014626 00000000000000BMÎkÎ( hœ œ ææ***...&&&Æb¾^jjjfff²ú¶þ²þ¦îj–zîvÊfŠŠŠ®®®ŽŽŽNNN–چ Vz :V.F^þjþþþÖÖÖ®®öââþþözêv~~~ÚÚÚJJJþþúúúâú¦¦îöööº^úŽö‚²Z†¦®‚ÎÚ~ŠŽBbfŽÎ NnþÆÆú¢¢úæö~~ú¶¶þ®Vþ¶ÖjÖöÊêš¶br Rz""þÒnþ¢þªîz¶ZÚþ²Ö BN Z‚fþž~>ªÊj~®¾ÂJŠªJvŠv~‚NRRú~¢¢öŠŠúººî‚BÊÚÞšª®†’–V^^FNNòòöîîîFFæêšNŽFf2R*žºZnŽššr~‚>FF"""ÒÒö¶¶ö–JJ&.¾ÞFJNv>b2†ž Rb Vf:>Bÿÿÿþ®ÞþžÆî‚¢æzšþ’ºò‚¢Âf‚þ’¶þªÖþšÂþ޲Ör’ÒnŠÊj†¾b~²^vz>NÖrŽ’Nb~BV^2>’JbR.6N*6†FVÿÿÿããã ìììÕÕÕâââüüüÝÝÝ×××ýýýàààñññôôôåååùùùæææáááäääòòòÞÞÞÛÛÛÜÜÜêêêøøøëëëßßß÷÷÷ïïïõõõÙÙÙéééûûûØØØðððèèèííí666:^^R~~†ÆÆjÖÖrrrvvvJvv‚úö¾þþ†þþvîêFfbFFFnnnbbbVššzöò†æâÚþþªþþvâÞR¦¦:::222f²®VVV‚îîŽúúZZZRRRjÎÊZ²®Nššƒƒƒƒƒƒ„„„„„„„„„„ƒ„„„„„„„„ƒ„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒžžžž  ƒƒƒžžž ƒƒƒƒƒƒž ƒ¢ ƒƒƒƒƒƒƒƒ¢¢¢¢ ƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„„„„„„„„„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ¢ ƒƒƒžžƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒžžƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ¢¢¢¢ ƒƒ¢¢¢¢ }~noPPW€\‚u          ž  ž                                     ¦  ž                                                                ž                                ¢¢¢¢¢¢¢                     žž       ž ž                ž ¾                  »¢                           » žžžžžž               ž                                                                                                                                                                                           ž                    »¢  »¢ vwi2xmnyz{EFQs||ž   ž  ž ž  žžž ž¢¢ žž  žžžž ¢¢  °žžžžžžžžžžžžžž ž ž±¢¢ ²žžž  ž žžžž  žž¶ ¢¢©žž  ž¢ žžžžžž ¢ ¢¢±ž  žžžž žžžµ  ¢¢¢¢¢¢ž žžžž ž ž žžžžž¦¢¢ ± žžžžžžžž ž ž ¹ ¢¢¢¢  ¢ žžžž  ž žžžžž ž žžžž ¢ ž ž ž ž ½ ¢¢¢¢¢¢®¬žžž žžžž žžž ž ž ž¸¦  ¢¢¢¢ žžž ž ®¢¢¢ ¢ žžžžž ž žžžžžžž ž *¢¢¢¢¢¢  ž ž ¢ žžžž  ž       ª ¢ ·°žž žžž žžžžž ž ¢ ¢ ž   ¢ ¢¢¢¢¢¢®¬žž žžž žžžžÂÂ'ÂÜ'ÂÜÜÜÜž¢ žžžžžž½ žžžžž žžžžžžžžžžžžžžž¢    žžžŸžžžŸžŸžž¢¢¢¢ž ¢ ž ¢ ž ¢ ž ¢ ž ¢ ž ¢ ž °¢¢ žžžž ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢žžžžžžžžžžžžžžžžžžžžžžžµ  ž ¹ ¢¢¢¢  ¢¢¢¢  ¢¢¢¢  ¢¢¢¢  ¢¢¢¢  ž¢¢¢¢  žžžž žžžž žžžž žžžž ½ ž ž ž¸¦  žžž ž žžž ž žžž ž žžž ž žžž ž žžž ž ž žžž¢¢¢¢ ®¢¢¢ ®¢¢¢ ®¢¢¢ ®¢¢¢ žžžžžžžžžžžžžžžžžžžžžžž  ž ¢ žžžž  žžžž  žžžž  žžžž  žžžž  žžžž  žžžžžžžžžžžžžžžž   ¢ ž    ¢ )Jhijki@lmnoOpqQerstu››˜ ¢ ¢ žžžž  ž žžžž © ¢    žžžžž ¢¢  ž ž žž    ž  ž¢ ¢ž ž žž  ¢žžžž      ¢  ž   ž ¢ ¢ž  ž žž¬  ¢ ¬ ž žž ž ž ž §¢  žž ž ž ž ž ¸¢ ¢ žžž ž žžž ž ž ž ¢ ¢ ž žžž ž žž ² ¢ žž žžž žž¢ ¢ ¢¶žž ž ¢¢ ž   ž ž ž ž ž ž¢ ¢  ž ž ¢ ¢ž ž žžž  žžž ž ¢ ¢ žž žž ž ž ž ž ž¢¢ ± žžžžÁ  ¢ ž ž   Âáâ'Ââ‚ÂãäÜÂâ‚ÂãäÜäåãäÜäåãäÜäåãäÜä垢¢¢¢¢žžžž¢žžž¢ž žžž žžžž¢žžžÁ žžŸŸžŸŸŸŸž¢   ¢ž ¢ ž ¢ ž ¢ ž ¢ ž ¢ ž ¢ ž °  ž ž¢ ¢ ¢ ¢ ž ž ž ž ž¬  ž ž ¸¢ ¸¢ ¸¢ ¸¢ ¸¢ žž¸¢ ž ž ž ž ž ž ž ž ž ž žž¢ žžž žžž žžž žžž žžž žžž žžž¢ ¢ž ¢ž ¢ž ¢ž ¢ž ž ž ž ¶žž ž ¢ ¢ž ¢ž ¢ž ¢ž ¢ž ž¢žž ž ž ž ž ž ž ž ž žžžÁ žž žžžÁ )(]^_!!`a!!NBbUOVFQcde5fg„„„„„„˜œš“ž ¢  ¢  žž ž žžžž¤¢ ž žž ž ¯¢  ž  ž žžžžžž¢ ¢ž ž žž ¢ žžžžžµ®¢ ž ž ž ž ž    ¢ ¢žž ž¬ ¢ ® ž  ž ž ž ž ¢ ¢ žž ž  ž ž ž ž¢ ¢ ¼žž ž žž ž ž ¬ ¢ ¢ ž ž ž ž žž ¬ ¢ žž žž ž¯ ¢ ž ž      ¢ žžž  ž ž ž ž ž  ž¢ ¢ * ž ž ¢ ¢ž žžž žžž ¢  ¢¥ž ž ž žž ž ¥ ¢ žž ž žž À ¢ ž žžžÂÞ$ÈÕÙ$ÈßÙàÕ6ßÙàÍ6ßÙàÍ6ßÙàÍ6ž¢ ¢¢žžžžžžžžžžžž ž¢žžžžžžžžžžžžžŸžžž žž žžžžžžžžžžŸŸžŸŸŸŸž´ ¢ž    ¢ ž    ¢ ž    ¢ ž    ¢ ž    ¢ ž    ¢ ž  °   ž ¢ ¢ ¢ ¢ ž ž ž ž ž¬ ž žž ž¢ ž¢ ž¢ ž¢ ž¢ žžž¢¢ ž i ž i ž i ž i ž žžžžž¯ žž žž žž žž žž žž žž¢ ž      ž      ž      ž      ž ž ž ž ž ž ¢ ¢ž ¢ž ¢ž ¢ž ¢ž ¢žž ž ž ž ž ž ž ž ž ž žž žžžž žž S9J)=!!!,=!!!!/1T@UCVWQXXYZ[\„„„„„„„‹“š››œœ˜•—––ž ¥¢¢¢¢¢žžž žž  ž ¢  žž    ž        ž ž¢ . žž   žžž   ¢ ¢¢žž žž   ¢   ž¢ ž ž žžž žžž±¢¢ ¢žž žž ¢    ¢    ž žžžž    ž ž ¢ ¢ žž ž ž ž ž žž ž% ¢     ¢ž ž ž      žž ž i ¢¢ ž ž ž žžž ¬ ¢ žž žžžžž žž ¢  ¢ž žžž¬®¢ ¢    žž ž  ž ž ž žžž ³ ¢ ¼ ž ž  ¢ ¢ž žž žž £  ¢¢ ž ž ž ž ž ž ±¢ žž ž ž ¬  ¢ž ž    ÚÂÛÈÂÚÂÛÙÂÚÂÛÙÙ ÜÅ×ÕÝ ÜÅÍÕÝ ÜÅ×ÕÝž¢ ¢žžžž žžžžžžžžžžžžŸžžžžžžžžž ž žžžžžžžŸžŸŸŸž ž žžž±¢¢ žžž±¢¢ žžž±¢¢ žžž±¢¢ žžž±¢¢ žžž±¢¢ ž°   ž ¢    ¢    ¢    ¢    ž ž ž ž žž ž žž ž% ž% ž% ž% ž% žž¢% ž « ž « ž « ž « ž žžž¯ žžžžž žžžžž žžžžž žžžžž žžžžž žžžžž žžžžž¢  žžž¬®¢ žžž¬®¢ žžž¬®¢ žžž¬®¢ ž ž ž ž ¢ž ž  ¢ ¢ž ¢ž ¢ž ¢ž ¢ž ¢žž ž ž ž ž ž ž ž ž ž ž žžž ž (H)(IJ<=!!!!!!!!!!KLMNOPFQR„„„„„„„––—•˜™”“’‘ž ¢¢  žžžž žž ž ¢ žžžžžžžžžžžžžžžžž ž¢ ® ž žžžžž žž  ¢¢ ¢¢¯ž žžžž  žžž ¢ ¢  ž  ž       ¢ž ž žž ž¢ ¢¢¥ž  ž žž ®¢¢¢¢¢®¬ž žžžžžž ž ¢ ¢³ ž ž ž ž ž žž ž* ¢¢¢¢¢  ¢ž žžžžž  žžžžž ž « ¢  ž žž ž ž ¬ ¢ žž    žžžž   ¢¢%¶ ž¾¢¢¢¢¦žž žž  žž ž ž ž i ¢  % žžž  ¢¢žžžžžžž ž  ¢¢   ¢ž    ž ž ž ž ž ¢ %ž ž ž    ¬  ¢¢ ½ žžžžÐÑÒ&ÐÑÒ&ÐÑÒ&ÓÔÕÙÒ&ÓÔÕÕØØÙÄÓÔÕÖרÙÄž¢ ¢žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžŸžžžžžžžŸžž ž žžžžžžžŸŸžžŸŸŸ žž¢ ž¢ ž¢ ž¢ ž¢ ž¢ žžž°¢¢ ž ®¢¢¢®¢¢¢®¢¢¢®¢¢¢ž ž ž ž žž ž žž ž* ž* ž* ž* ž* žžžž* ž ¨ ž ¨ ž ¨ ž ¨ žž žž ž¯   ž   ž   ž   ž   ž   ž  žž   ¢ž¾ž¾ž¾ž¾ž ž ž ž ¢¢¢% žž  ¢¢ž¢ž¢ž¢ž¢žžžžžž¢žžž ž ž ž ž ž ž ž ž ž žž ž ž 99(:;<=>?!!!!!!!!@A1BCDEFG„Ž‘’“”•ˆŠž   §¢¢¢¢¨ž  ž žž ž ¢žž ž ž ž¢  ¢  ž ž žž ž ž­¢¢ ž žž ž±¢ ¢¢±žžžž žžžžžž¢ ž ž žžž ž¢ ¢ž  ž žž ¬ ¢ ž ž ž ž ¢ ¢ ¸ ž ž žžž ž žž žž ¢ ¢¬ žž ž ž ž ¨ ¢ » ž ž žž žž ¬ ¢ žž   žžžžž žžž³¢¢¢¢¢¢ žžžž¢ žžžžž žžžžžžžž ž½ ¢¢¢ižž±¢¢±žžžžžžžžžžžžž¿²¢¢¢¢¾´¤žžžžžžž¢¢žžžžžžžž¬¢» ž     ÃÈÉÃÈÉÃÈÉÊÝÉÊãÉÝÏÊËÌÍÎÏž ¢ ¢žžžžžž¢žžž¢žžžžžžž¢žžžžžžžžžŸžžžžŸžžžžžžŸŸžžžŸžŸžžŸ  žž¢ ž¢ ž¢ ž¢ ž¢ ž¢ ž°  ž ¬ ¬ ¬ ¬ ž ž ž ž žžžžž žžž žž žž žž žž žž žžžžž ž ¥ ž ¥ ž ¥ ž ¥ žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžž³¢¢¢žžžžžžžžžžžžžžžžžžžžžžžž  ž±¢¢±žžž±žžž±žžž±žžž±žžž±žžžžžžžžžžžžžžžžžžž())*+,-.!!!!!!!!/012345678‰Šˆ‹Œ†‡ž ž ž ¥ ¢ ¦ž   ž  ž žžž ž ¢ žžžž ž¢¢¢ ž ž ž žž ž ¢ ž žž ž¢ ¢žž ¢ ´ ž ž ž¢¢žž  žžž ¢ ž  ž ž ž ¢ ¢ ž ž žžžž žžž žž °¢ ¢® žž ž  ž ž ¥ ¢¥ ž ž žž žž ¬ ¢ ž ž ³ž ¢ ¢  ž   ž ž ¢ ¢ ¢ ž ž ž žžÂfÂÂfÂÂfÂfÂÂÉÂÆÇž³¢¢¢¢žžžžž  žž  žžžžžžžžžžžŸžžžŸžžžžžžŸžŸŸŸŸ žž¢ž¢ž¢ž¢ž¢ž¢ž° ž  ž ž ž ž ž ž ž ž žžž ž žž žž žž žž žž žžž ž ¥ ž ¥ ž ¥ ž ¥ ž ž žžžž ž ž    ¢ žž  !!!!"#$%&'„„„„„„„†‡ˆž ž ž ¡¢£¤žžžžž ž ž ¢ž ž¦¢¢ ž   ž    ž žž ž      ¢       ž žžž¢ž ¤¢   ¢¬   žž¢¢žž   žžžž      ¢      ž   žž ž  ž    ¢   ¢ ž ž ž ž ž ž žžž¢¢¢¤žž   ž  ž    ž ¥ ¢ ž ž ž ž ž ž ž     µ ¢       ž ž¯ ž ¢ ¢  %ž žžž ž ¢¢   ¢   žžžž     ÂÃÂÂÃÂÂÃÂÂÃÂÂÃÂÄÅ¢žžž žž   žžžžžžžžžžžžžžžžŸŸžžžžŸžŸŸžŸžŸŸŸ ž°ž°ž°ž°ž°ž°ž°ž   žžžž¬®¢ žžž¬®¢ žžž¬®¢ žžž¬®¢ žžžžž žžžžž žžžžž žžžžž žžžž žžžžžžžžžžžžžžžžžžžžžžžž³ž³ž³ž³žž ž ž žžžžžžžžžžžžžžžžžž¢ žžžžžžžžžžžžžžžžž  „„„„„„„…†žžžŸžžžž¢žžž¢žžžžžžžžžžžžžžž§ª¢¢¢¦«¬žžžžžžžžžž³žž¢¢¢¢¬žžžž°¢¢¢·žžžžžžžžžžž¬®¢¢¢¢¢¢¢žžžžžžžžžžž¤³¢¢¢¢žžžžžžžžžžžž§º¨¢¢¢¢Ÿ¬žžžžžžžžžžžžžžž³¢žžžžžžžžžžžžž¢¢¢¢¢žžžž®žž¢¢¢¢žžžž¢¢¢¢¢·¸žžžžžžÂžžžžž žžžžžžžžžžžžžžžžžžžžžžžžžžŸŸŸžžžžžžŸŸžžžžžžžžžžžž°¢¢žžžžžžž®žžžžžžžž±žžžžžžžžžžžžžžžžžžž žžžžžžžžžžžžžžžžžžžžžžž¢¢žžžžžžžžžžžžžžžžžžž „„„„„„„žžžžžžžžžžžžžžžžžžžžžž®žžžžžžžžžžžžžžžžžžžžžžžžž„„„   lgeneral-1.3.1/src/gfx/terrain/0000775000175000017500000000000012643745101013332 500000000000000lgeneral-1.3.1/src/gfx/terrain/Makefile.in0000664000175000017500000003612012643745056015332 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/gfx/terrain DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(terraindir)" DATA = $(terrain_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ terraindir = $(inst_dir)/gfx/terrain terrain_DATA = all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gfx/terrain/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gfx/terrain/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-terrainDATA: $(terrain_DATA) @$(NORMAL_INSTALL) @list='$(terrain_DATA)'; test -n "$(terraindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(terraindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(terraindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(terraindir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(terraindir)" || exit $$?; \ done uninstall-terrainDATA: @$(NORMAL_UNINSTALL) @list='$(terrain_DATA)'; test -n "$(terraindir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(terraindir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(terraindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-terrainDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-terrainDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-terrainDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-terrainDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/gfx/terrain/Makefile.am0000664000175000017500000000006312140770453015305 00000000000000terraindir = $(inst_dir)/gfx/terrain terrain_DATA =lgeneral-1.3.1/src/gfx/Makefile.in0000664000175000017500000005243112643745056013671 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/gfx DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(gfxdir)" DATA = $(gfx_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ gfxdir = $(inst_dir)/gfx gfx_DATA = font_credit.bmp title.bmp EXTRA_DIST = $(gfx_DATA) SUBDIRS = flags terrain units all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gfx/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gfx/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-gfxDATA: $(gfx_DATA) @$(NORMAL_INSTALL) @list='$(gfx_DATA)'; test -n "$(gfxdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(gfxdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(gfxdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(gfxdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(gfxdir)" || exit $$?; \ done uninstall-gfxDATA: @$(NORMAL_UNINSTALL) @list='$(gfx_DATA)'; test -n "$(gfxdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(gfxdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(gfxdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-gfxDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-gfxDATA .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-tags distdir dvi dvi-am \ html html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-gfxDATA install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-gfxDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/gfx/Makefile.am0000664000175000017500000000017012140770454013641 00000000000000gfxdir = $(inst_dir)/gfx gfx_DATA = font_credit.bmp title.bmp EXTRA_DIST = $(gfx_DATA) SUBDIRS = flags terrain units lgeneral-1.3.1/src/gfx/title.bmp0000664000175000017500000113206212140770454013435 00000000000000BM2´2(€à°ë ë ÿÿ bbbŠŠŠ«ªª;::¿¾¾==·Âff˜JJJvvvÛÚÚ—––£ÓÒÒ""P&&&LLožžÑZZZÎÎγ²²AAŸžž~~~ŽèjjjgfãÊÊÊ/..::SFFFŽŽÎVVV¶¶â¬¬ìhhÈÆÆÆ¤¤²§¦¦·¶¶’‘›LL 322AA莎NNN?>>†††¬¬Ì A//„rrrqpÀÀÝWW’˜˜¬7ww¶hfo¹¹Æ­­·¢¢ª65@//sâââÁÀËA@uÂÂÂ((DHHµQNW¦ª®pnwšž¢xv~426DBJ·¶ºƒŠQP†šš¢KKÓ×ÖÖ:>B›šš\Z^€~†ÇÆç‚‚åebj¯®®’’’²²Ñvv®,,Q@@l))5wwÊRRmnnnÜ766£¢¢»ººxx–CBBKJ\zzz0/‘fff..?™˜âLLçËÊÛ^^^#"$ÇÆÔŽŽ»AAd‹Š’RRR‚‚‚³²½'&*0/hXX~44ç--ŸLJN;:C@?¤trz¾ÂÆ>>S½¾ÂßÞÞÎÎÛÌÊÎYYzÈÆÊž¦ª––žff®Ž–..6¨QQÈ®²¶»º¾ª®²tsÞ²<:>’šžVVlljo¡¢¦ÑÎÒ*.2***26:ŒŠŽXVZˆ†Š”’–"#ïONRxvzXX°££Ãdbf€~‚BFJfd‡pnr˜–š>>Ñ11`CB^$$hŽ’@@œtrv+ÒÒÜCBFžžñÕÒÖ--ÝÖÖÞ¬¬à˜˜ÃÚÖÚŽŽ®yzed‚TRW(„‚†$$­ZZvÀÀñ¸¸Ù55P`^bYYê,*.¢¦ª¨¦ª€¢IFO‚‚ÇYYÕƒ„·VV¿†…¢¢ä¤¤¾hfj¬ª®Â¾Â$$` .-ÃYY ]ZbªMJR°®²ÃÂÆ00±RR_¦¢¦µµïstì0.286:ÊÆÆ??‘´²¶_]g\\†~z~ÎÊÊpp£˜˜º@>Bœšž ž£ÒÎÎHFJbc÷ttz °°­‚kNýNkNkNkùkkýkýýý‚‚æ‚æ£ç\£4t!¤](öüðßißððööööEßç'' ]±¸Ýo¬tÏõiòVý.õW­\븤‚ýkä£úëú¶¶È¸‚zW¬W.¬õÈõ[¬Æ¬°Jäkšýkš‚ÏW‚zõë'ëë 䂿ÆÕšMï+gg+î¡¡¡uu/.¤ .. !!!z kkkk. .. ... k ý .z .!!./.zzz. ....k . .. k/ý..k .z zÆz !!.¨¨zk/  zý».H‚‚ÆÆ®ù»ý®Õ‚®»šù»»ï¡Mš/ký»k»»»/ššš/ïù/ššùùkùšùý‚‚‚æ‚‚‚‚æzÆH‚HHH.H.H.Hý‚Æùg}/‚æz¤z‚Æzz..ƤϤ¤!¤¤ÆÆ¤¬¬¬¬ÏÏϬ!zkg.t!!tootto  ©oteezz!.!!tϬWzzz .z!z . z!¸'(ißðððððßðððöðßçòiòò((((ò¦¥ëëV'ëh'ëëçiië(iðßðßÓ-\ißiiç(ßiiiihV'Võe--t ‚kù.¬Ïkïgïšý.‚/ššïMš+uÑg/ký‚‚ýýk/kkýtõ0{õ{õõ 4eõ444eooõõ{ ­{0È0È¥¦ '(ßEEßEEEE-]-0õ0¥0Ýõõ¬ýùùNùšïššïïïšïšššùùkk‚¦ò('-©!.Wõ\ððððßßßðððððßò'Ó'ë']4o¬oÏÏe òiiò4zW¬¶çëÈWzæ‚kæ¸úÞÞëÓë¶õoϬoÆ Æ°£¦X¸[°Lõ;Hý‚æHH‚¤¤ \ÞëÈݤÆHýšÑîîMM/g+¡¡¡¡¡¡g» .Æ ‚...ztz..z!!! .zzz.kkkk    .z.  ..  ..!... k k ®®kUk»kg.. / z.U k k»ùšýýùƒ»š//U»ùù/»‚¨ý/îMùùùùš/ù»ùùššùùšïùšš//ùù/šùkNkNkýýÕÕ‚æ‚‚kýýýý‚‚H.ýk‚ýMÑÑ‚zHz¤¤‚.z¤‚‚ýzÆzzæÆz¤¤¤!WÏWÏϬ¬Wt!++/zt!!tottttteeooozt!¤¤Ïz!z‚.! !!z..‚. .z!to4-ë\iððßðððßßððßii(úÓòÞëëÓ±¶ûë'(òÓ'ëû\ißò'Ó(–ðððßë'(ßii(ç\òiiii(\']­õõkýz‚‚ý.‚WW‚/ùšškýkkkgggguÑîgÑ+ùš//////H¸Èõõõ¸õ e4teotto ¸¸¸õ­¶£-È£¶Ó(iiiEEE'\\]-¸!!¤!‚ùššùïMMîîM++MîîMMMïïïk­Þò\£¸Ï.kk¬£\ððßi(ißiðði(ëӥݬÏtÏÝÞ((ò\ ¬¤¶Èõ¬ææÆ‚ýæ¤õÓçççÞÓú£ Ýe¬zä©ú±ÚL…LõõJWHH¤¤¤Ï[Ý Vò(çë¥[äÆ.M+Ñg/ýýšM++îMš! k»..zÏ!..z .z!...z!!z..  !!. !z. ..zz. .......z.z... ..  .zz k/..eo../‚Uk// »////k¢/ƒgšššš/š//»»/î’/šššš/ƒù/ùš///ššššššùùùššùš/šùkkkkkýkk/ýNùkkýÕ‚ý‚H‚ïMgk ÆÆz¨zz‚ý‚zÆzƤ¤ ‚æzÆzÆzƤϬݬÝ!.gkz!!!toottto¬to!zWWϬÏoz.z.z .zz z. !to{ òißßððßOßððßßß(±£¶V-VëVë(ßßòÓë'\ßßçßðßßððß((ißðçë(iiE(i-õ‚ý ý.ÆÆ....‚ùkýkùkk‚¤Mgï¡+uïïï/š/gg/ Wo¸ õõõõõõ44eeoooo4 ¸° õ¸4ȱVëÓÓç(i((((\ç\ëV0oùïïMMMMMMMÑîî+îîîMîîÑîîîïÏ]ëÞú-e¤ kkÆ£((ò((((ò\h] tot¬©±ëõ¥­WW¬Ï¤¤¤ÆHHææ‚‚W¶çOßi(òÞ¶õ¸¸°¬W¥ûúP…õLX£L¬¤H¤[°°°Ýo4 ißi(Þúõݤýï¡g/ù/g+g+++¡+.ùk .ztoz‚ z!z!oet!!!!!zt!z!tz!!..!t!z!!!!!tz ..zz  .z!!!zz...¨. kÆ.¬t.¨ ‚¨.k/k»kk////»N»@//šïïgš@g@ïïMîgš/ùùùƒ/ïš//ššùù/ššïšù/ššššššïš/ùùùùùùššNkùùšùùùùkýNšk‚HÆÆ.‚z¨‚‚‚‚z¬ÝϤæzzÆzæ æ.ƤÏϬot!...!!!!!oootttooooooozz!t¬¬4õ4eoWz.zz‚k zzý.!°{ ë\(iððððßißßßOßßO¥©©õõȱ''£ë\ßßiiOiii(\òEðððððçç(ðßßðð(ç(ßððE((ii¸zý‚.zzýkkù/kkù/ýk//‚!zšî}uuu+gšg‚ze õõõõ °eeo4õ ozeõeeeõ­eõ-4±çç\\çò((iiii(iiii((V044k++ÑîîîîîîîMM+MîîîîMî++šÆõ±''Ó ©¬zù Þç((ò(((\ ¦¦¬W4¶±È¤Ý¶¤ký‚‚‚‚k/kýæ‚æ‚¤õÞOò(òë±0Ýeoo䤬õ‘¥;°…¸J¸JäÆ¤Ý°°Ýt0\(ßßiÞ±õÆÑÑÑuÑg+¡+ggî¡¡g//.ttzzt!zÆoe!zz!!!!!!ttto!.z¤tÏt !!t!!toeezz..z .zz.z.z..zzz...k.. z..z!.kk® kUkk ùU/g¢šššš@¢¢ï@šššùùš+ï//ù//ïïïššš/ùùššš/ššïš/šïšùù/š/ùùùškkù/šùkkšMùÕ‚.HÆz‚‚¨‚‚¤æ‚¤ÏϤæzÆÆÆ.kškk‚Ƥ¤¤¤otoeetttoottooooooez44õõ4oe¬!!¤. .zttz.zttto4õ¥Vç(ßiðiOßðßðOßß(ë ¦±¦£Vë±ÞO((Oò\ÞÓç–ððöüðiëßßððßßiðßEE(EE‚š/.‚‚‚ýš//ššù//kký/kHW.š¡ÑîgMÑÑÑÑMg///k°õõõ ¸°eÝ4oeoW4 e¸¥-ݸ¥£¥¦'\ò\çò(((i(iii(\'\(\' e!t¬ý+ÑÑÑîîîîîîî+MMî+îîîMMMMïšzoÓë\ë-©Ï./k.õç(iißßEðß('' 4ÏäϸVV°¬õ VÏïšý‚kÕ/ùÕÕùNæækH£òòçÞ]V¶eeoä¬ýÆõ±õ;¸¬ä[…HÕæä¬W¤te© ëð(ëÈýîuÑ¡/++g+¡¡š/gg !z!t.z!!!!t4etzzz!!!tttt!z!zzz!!¤¤kz.tzz!o!z!.z!.. kk®  ....‚ . z ý ..  / ‚kký»»ùƒ/ù»//š¢š//š//ùšMîïïšššššgïššššïïššgšš/šïšù/ššùùù//ššù/ùùùkù䤤.ÆÆ‚‚¨¨‚ý‚.zæ‚zzzzÆÆ‚šMšý¤WtÏWWWϤ!oÝottooeooo4 oee õeÝoÆoot!‚z!toozkkzt!tÝe¥- ëëçç\(iiißððÞ ¥£±ûÓ(–òòO(òÞ(ððöüöð(úë(ðððßiiðßßßðißðE(-o /ýkk‚ý/k/ùù/ù/šškùký‚..ý/îÑÑ+g/šg+îMšïï‚!°õõõ4ee4et!o4e 0--õ°ÈëÞòii(ißiii((i\\hi(\V kkkïîîîÑîîîîîîî+îMîîMM+MšïïïÆÏ©h(i(\-©ýù¤'ißðöüüüüðßÞ0eoe¥±\ßië-ú¶¥/Mù‚šNùNæNùšNÕïùä£ëë­¥¶õ©Ý¤¤¨ù»Æ¥¶£­¬Æ¤…Xæù»Hý ¤Ý ](ßðßÞ¥Ýý}uÑ+/k/+g+¡¡¡+¡¡/z.zz.zz zoo4oz!!ooozzz!!!!tzz.../zz!zz!z!t!.z!z!z. kkk ®® z»  kkk/ k/kkkN»»kkk®ššššïššƒïïï@šM¡¡MïšïgïMïššïïïššïgïïïïšššïšš/ššïï/ùù/ïšš/šgMMšùïï.WÆ.‚¨¨¨¨z‚ýk‚‚‚ýýzÆ.ææ¨kMÑk¤¬¬ÏϬ¬!zz!t!oootoeooooooeoeõ4Wooe °o°ÏzzoÝ.!ot!..Ý4­0¦ë\ßßißßßßðððßOçë£õ-VÓ(EèE((–i\iiiðððüüöð\V'iððððiißiiiEiß‚ý/‚‚ùškk//////k/ýz¤¤.ùkù/ù//////ï////k/k‚o4õ©© ¸Ýotzttoo  ''h--¥-VVëç(((i(ò(((ii\\\(ii\'-t/šùïïMMîîMMMMïgïïïš/š/kkkký¤ ëððEEööðE(£¬.k.°±iðü½½üöi¦¸¬((ßßÞõȸ¬ÏýïùHùššùÕNù@ïïMù椣ëë± ¥£õoÆ../k¨Ï £Èݤ¤õ¥X[ýš»ùæ¬[¬©EEð'©äùM¡}¡++++++ïïg¡á¡¡/k+ug»z! ....z to!!z!!o! !ootz. .z!!zz!!!z!!.!!zzz.  .‚ kk..!¨» »/k®k k/kk U//šù/šš/šššššïù/ïššMîÑîMïï++gïïgïgïššgMïïïggššššïgïššù/š//ïM}}ï‚ýý¤ÝWÆý‚.¨¨z¨‚¤!‚‚ýýýýýkkùgîÑÑ+ýÆÆÆ!¤ÏÏto!tteeeeeoe4oeo!!zo4eõtzzoo¤!!eeoÏt.kk/koÝeeõ0 'ððððððßððßò\'¦VÞiß(–èðE(iiEEßßEðððööüüöiúV'ißiçò(ii((ißßý//š///kýkùù/ùkù//k‚.¤W.//k/ššïš/g/ýý¤¬ õõ{4eeÝo¬tt!¤t4¥--hh-°Ý-ë\(((òòççòi(ò((\\Vi(\'ÝæýýùùùšïšùùùùùùkýýNýýý‚‚‚‚‚¤ÝÝe]iöüüððüüüüð( {oÏ!{\Eü½ü½Ÿüð¶°{ëë]òòݤWÆÆNšNæùš@ùNNùïïï’šNýÆ­úÓëV±±Èä.¨ý¨!.Æ¥¬¤õXPÈókùù¤[[[[EEeÆkMuu¡g}Ñ¡¡uuáuu=u/.z.tozz!!z..!o.!zzz!ttz....¤z!!z z.zz zz z.!!  k.» . ® ‚® ®z...Uk./š/» kšïï»ùUš/šššššk®ï@ïïgMgïïïïïïgïïMïgïggïïïgïïïïïïgïïïïïïššï+uîkkýH¤¤¨kýý‚‚¨‚‚k‚‚‚¤Æz‚kM+Ñîîï+ù‚¤!¤¤tottoeettoo444mm 44o!ztoÝ44 44eeeeee44z4. .z!Ýeee {]Óiððððßð(i('±–Eß–ßèðßßßEðEððEððöööððð\¶\ßii(\ßEii((ßi-Ïzký/škkššk//ùkkkýkkk‚.zkkýù/ïg/šïgï/ .o È©¸õõÝݬ¬¤te¥]h]V].W'Ó(ç\Þ\((iiiëë'iii((\¥Ý¤æ‚‚ýýýý‚ýý‚‚‚æææ‚‚‚‚ææÆ‚‚‚¤Ïoe'öüößðüüüüðß' £ÝÆ!°-ðüüüüð-õe©4o¬ÈòÈý‚WÆNNÕÕ@M@ùNNùï@šîšNkšzȱ¥ÞÓõ¤.zWÏÆ/k¥°°õõyõ[‚ýƬ¬¬°¸±\i\¥t./g+Ñš¡++ÑÑÑ+¡Ñ¡¡¡¡..Æzzz.k zzzz.zzt!.zzz..zz  ý ý..!zzz!z!!zz!!!z..z.kzzz... k  .k .®® kk//k/šïgšùùššš¢ï/šùššïïïMî+ïMïïïMggïïïïïgïïïïïïïïïïïïïïïïï+}uuïýkN‚HH‚k‚ýýý‚‚‚k‚‚zæzz‚ýg+Ñ}¡+šÑMýz¤¤¤Wt¬ooootoeeee4¸mmõeetoeeeettoo4eeoz!!zz!e4õ0\ððßiiçç(\ë\\iEEßßðüöðEEEööðööðð\]'iiòið {õ 0¥{z/ký//kšk/ïkùkýkkýý . ýzW‚/k‚‚..‚k/š/M/šk¬°õ¸ ¸°4°eo¬o¬!{ 'h \'h]° '\((\(((\V 'hh (ii(\V©äÆÆ‚‚‚‚‚‚æÕ‚‚z.Hzæ‚‚‚‚‚ÆH‚‚Æoe4üößðüüüüüöEO¶õWÏ©ëð'­¬Wäo¬ëë¤/‚æNNNÕšï@ƒNNùMššMùNýïšoëÞú¥úç(eÆÏooÏ/zõ¸We°õ¶XÆHæäWÆ;¸©{ ¥¬ /ïMÑÑgï/++Ñ++îî+g¡+¡+î¡}¡+/!!. .zz.. .zzz... !. ... tz..zzz..z.zzzz!z!zz!!z .z!z... . . k.z‚kkkk//ùkUšgMï/Uš¢MMggï@šïšïïuÑgïïMïggMgMMgïMïgïïïgïïgïgïgïgïgMuuîï/NkkNýýkùýýýkýýýýý ‚....ýkùîî}¡¡ùz¤¤ttoooeeeeoeee4 mmooooooottooo4o.o{oto4!!!oe mõ-h(ßðßò\\'ëÈ©© ßiEððüööððööððöððEE('ißiE((õ///kù/ùùkkù/ù/š/ù/ù///ùù/ ‚ý‚‚‚Ïoz!ÏÏÏÏ.ýùš////ý.e¸°e ©°°ÝÏoeeÝ4-V'h'hh --Vëë'''(((ii\('''hV h' V(((i(\붸ÏHHæ¤ææ‚‚ýý‚‚ææHæ‚‚‚æ‚‚‚‚‚‚zϬe ëöüöððüT½üüöð¥ÝWe0V-©¸zzW°o¬ÏWÈùššùýÕÕù@ïïùNNïïïšýýæùù‚­'ÞëÞòߦݰÝ!.Ï ¸°õ¸JõÚ£°ä¤¤HWXõ¬¬4e‚/šš+îkkù//gg/gîï+g/¡¡¡tooo!z!zz.ý ..  k/.  .‚ z. .zzzz.k . .. .z!...  . ... k kk kk‚ »ù/Uk»»»/ïšš//Mgg¢¢ïïïï@guuïšgMMïïïMïïïïgïïïgïïïgšïïïïïgïïïšïM¡uuu+šùNkNùùùNùýkNkNkýýký‚‚.‚ýýýkk/ùïîkz¤!¤¤Ïttttttooooe4eoee4 {{ote4ooooooe4eooozz!! ¬!44t..e m-ë(\''' z!.¸EEðöðüöööðöööüðöðöðE(i(\V ëõ‚///////////šùkù/kù////kýk..z¬ݰt.‚//kùkï/kk/.õ 4ee4 Ýo¬e4t{ 'h'h]]---Vh'''\\\ë¦ VVVV4]\(ië£¸ÏÆÆÆ¤ä䯂ý‚‚‚æzzæ‚‚‚‚‚‚‚æ‚ ÆÏe44iüüöðT½½üðߣ ¬W.¤¤.z4 eo¬õ(Þ!ký‚HHlNù@šNÕÕùšùNHææýý¤ÈÓòòii(\ 4°eÝݰ ¸¸È£¥õXXõL¬¤¨WJÏz‚¨Æz.kkùïM kkkýýkM/ùškkù/gkïg+¡/.t! ‚.. .k .. k//k ‚...z. kkkz . k k////kk//Ukkk Ukk»kkk»  kkkkk/šƒšƒUUšššš@ïïïššMÑá}îgïgïggïMMïMgMïïgïgïgïïïïïgïïïgïgî}uu}ïùùýkNkùùùkùkýkýkýkýýý ‚ý ‚ýýýýý‚kïýƤ¤!!ÏW!z!!!tto4 44eee4 4444 mõ ooee44ot44 eeoozz!z.to!!otoo4{{{ V ë\'h{ W‚.¬­ßEðööüüüüüüüüöðöðð\ \\ë .kk//k//////šï//ùùkkùkš/kùkk‚.!e¬k/ïïïùï//ýk/zeõ¸ ¬ooݬoe4¸õ'ë-]]õ ¥¥¥-V'\\\\\\\\\\ ]Vhë'h-'(i¶õݤÆHzÏÏWæ‚‚ý‚‚ææ‚‚‚ý‚‚‚æz‚zHÝ{{0ööü½TTT½Tüü½üð\V­°¤z!!zzϸ Ý4(¬õ°WÆÆÆHææHHHææHæHæHæz‚.±òi(i(iVõe°°e°4°õ ±ÚõXÚ£JÏÆW¤Æý//ý ýkMgg+ïkk/+++/ù+¡+Mu¡/z. . kk k/k .z!!!z. zz.z!!!z ..z.. z. .  /k k/////////U/kkk»kkk® »k» . kkùùùùkù/UùU/šššš¢ïïïšM¡uÑMšïgïïMïMMgïïgïgïïgïïïMïïïšïïîÑ+îškùNNkkùkNýùNýýkkkkýýýýý‚‚‚‚‚‚ýý‚‚k‚‚zÆÆÆÆÆtzzz!!zz!te {õ m 444 ee 44e4 4otooe 4o!oezk!t!to!oo0000V'zƸ V-'iiðöüüüüüüüüðððE(]-{e./ý///////ù//šššš/kkkùù/ùkký ý ‚W Æ.ýgïšš//kk‚44ee¬¬¬Ýo°¸4e -'VV-00õ{ V'\\\(\\(h0-]- ë\\00]\ii(V¶õݤz.ææW¤æ‚ýý‚‚‚‚ý‚‚‚ý‚‚z‚‚æ°--V(öüüT½TTöððüüöi\£©¬ÆÆ.Æe°©0- \ßëoõ¤¤Æ¤HHHÆHHHHlHHææÆz..zݱ(ißiO]­eÝeoݬݸȑ¥PX¥yyJW¤¨kg++/ýýý+î¡¡+gg¡¡¡áááuák..z.. z .z!!!!tt!...z!z..z!z  ‚...  .. kkU/UUkUk/kkk k  ‚ ®»»»»»»ùk»»ùšïïïggMšš+¡áÑMšïïgïïggggïïïgïïïgïïïgïgïgïïïïïMMM¡ÑMîîïùùùkùkkýkNùkkkùš/ùýýký ý ýýæzz‚ýk/ï/ùùùùkkkkkkkk zoõ0{ m mm e4444 44444meooo44eotttz 4 o/ !tt..to{--0m0\-¤‚hðüöi\\(ißðöüüüüöðððööðii(ë]Ý k/gggš/////š//š/š/šš/ùkù/š//k//ý.kýz¬e¤k/ïïšïg/k//k.WÝÝÏoõ©eÝÝe¬¬¸eÝ hV00{m{0 \\\\'\\\V--0{ '\( iii ¸¤zæ‚‚‚æææýý‚‚‚‚ýÕ‚‚‚‚ý‚æ‚‚zõëVV hßüüü½üößßöüTüEë0°oz..Æ 'ÞòiEiõ!¤Ï¬;;[[[[óääÆäÆêê¤ä¤Æ!Æ!Ï(ßiiòçÓ±­Ý¬¬¬o¸õÚ¥¥PÚ±ë);¨»MÑÑÑ/ .!.kg++ùùg+k/+ÑgMï¡=uÑz!zz!zzz!z!z..z ..z!zz .z!! .z.k//k . . k ...... kk /k k/kkk»‚.».. ®®ùùN ‚ýùš¢ï¢gMïgïšïMÑgïšïïMMïïMMïgïMïgïïïïggïïïïïšïgMÑÑîîMîîšùNùùùùùkNkùNýùï+/ý‚ýýýýý‚‚z¤z‚ýýkïššgïïgï/.!Ý] Ȱee4ee4 õ{{{{{4eeomoootee4eot!zt! kkz!!.!t{-000{õ¥ë(0eð½üððEßEEßðöööüöEðöðEßß ýg+/ù/k///ïïš/ùkkk///ùùùš/kššý.ýý¤¤.ùš/ïïMggï//ý‚.W¬ÏWzÏeݤWW¬4ttÝee -¥ õ ¸0Vh'h'\\\''\\ëVVV]{'\\ m](ii'-°ÏÏWÆæ‚ýký‚‚‚‚‚‚æ‚ýý‚‚‚‚ýý‚‚‚¤¥Ó''ëëë\öüüðEiëëÓòðü½öE\0t!Ƭ­iiEEVϰLXXXXõ5JJ;;[[[;ݬϬÏWW©ëßiòÞV­Ýݰ¸m©õ¥¥LPëÞ±©ÆšÑÑg.z.. /+g+k/ýz‚ýk/ïšggg¡uu}!!zzzz!!!kk.!. ..!!!.!W .¤..!!.... k/ k   k...!o.. Uk®Ukkk .k® . ¨... ‚ ‚®Õ‚®®®Õ‚H¨UššgïïšïîîïšïïïïïïMïïMïïïggïgïïïMgïgïïïgÑuïMî+ùùùkùkkýýkNkkkù+ÑM/‚‚ý‚ýý ‚‚‚¤¤Æ‚ýk/ïM+MMg+++++kz hV4{-ettoo4{õõ0-]-4e4ooooem eoetzoo.z!!t!  0-0 £\ßò'(ç(EößßððEððöüüððöE\{/+///////ï///////kkýkùš/kkùù/š/ù// .‚.Wýgïg/k/kÆ.ÆWϬ¬¬Ý‚.¸4eϬ°¸õ{{0õ0-\\\\''\\\'''\\-]ë V\\''{]V(i'¬ÏϤæz‚ý‚‚‚‚‚‚‚æ‚‚‚‚‚‚‚ýý‚‚ý!£ò\ëVëßöðßi'ëißßüTü\ ©oz!hii(((e¬Ï©õ£‘‘‘yPPXjXXXXLõõ­ ¸õõ¦çßßi(ò(ë-¸°ee…õXÈP¥úÞû¶©ÆMÑÑý.. ugg//g+ggg++gMî¡}áá}î/ . ..... !zzz.‚z!.z!.z!.z..../kkk z kk// k ....!®kUk.. Uk®U/U ® . ®  .¨¨..z¤t‚Õ/ïššMš@g@šgMïšïšgMMMMïMgïgMïgïïïïïïïïïï+ÑuuuÑ+š/gÑ+ïùkkkùkNkNkùkNkkšî}Ñ+k‚‚ýkýýý‚‚¤¤¤zzæ‚ÆÆ‚kïïî+g+g//tõetWoe -00{0 4{m44 eeeooottt!tz!ot!. z!z!t.!4eo00mm{((Ó(ò(\'©¥\(ððððöööüüöEðEðð\õk¡//g/gg////k///ùk/ù///kýkkk//ùkk‚!¤¬W/gù/ïšgMškW..‚zWÏWÝ‚kƤ°ooe©°°õ0V ]00V V((\\\h''\'\\-0 h'VV\(\\V - V'(\V©°¸°¬¤Ææýý‚‚‚‚‚‚æz‚‚‚‚‚‚‚‚.悤£ç(ë'\ë'' ]V(\ë(öüðih¸!Æ!m-ë(-°WÏÝ¥ûëû±))‘y‘±±¦¦¦¦±±¦¦]¦ë(iiOi(ißi룩°õ0XP‘ûÓúP…Wù¡¡uîkz.ù++u¡¡+++++gg+++¡g¡}uu¡¡š!Æz!!!!z!!!z!!z!z‚.zzt!z ..gk .z   ® .. ®...‚zW¨!z » ¨..zzzz.¨  Õ‚‚‚¨Æ»U¢ššgšïïšššïMgïïïïMïggMïïMMgïMgggïïïïg+ÑuuÑMšššgîMšùùùNùùùùNùNùNkNù+ÑÑgùýýýý‚‚‚Hz¤ÆÆÆ¤z¤Wä¤Hz /gg//ý{4!!k !-{0e 0 mm eeeo ooeo!z!!ot!z !!!zzomeo4000­¥VVVi(ëV(((ððððüöüüöððööEöiõ‚g¡Ñ/šïï/ïš///ý..k//ù////ùk//ï/ùý.Æ.Ýý/ïšïï/g//.Ϥ ‚eo ÝoÝÝݬ¬¬Ý¸© {  ]'\\((((h V\hh'\-e0VVh'\VVh--hV'\'-õÈ0 ÝW‚‚æ‚‚‚‚‚Æzææ‚‚‚æ‚...z](ç\\ëV úëëVëëV -V']'ßðüTTü(hmo..o]i'4ÏÏWÆõëÞëûûúûëëëúëëëVÓòßiiOiEöE'­¸õ­-ëû¥°!k+¡Ñ+++ýz /guu¡Ñggî+/gg++ïï¡}}¡¡+k!!!!zzzz.z!z!o!o.z!z!..z./..z!z z! .z.!z. ...k®.. ¨zz.z¤z..Æzztttzz. ‚.¨‚ ® »šïš¢ïïïšššïîMïšïïïïïgMMïMMgïgïïïïïMïï+MMîuuuîï/ùMîîï/ùùùkùùùkùùkùkùkýk/îÑÑ+šký‚‚‚zÆzHæz¤W¤¤¤Ï°¸ÝÆ.k//////!4 o!zz///k‚44õ e44 mõ00 m{ ee memme!!!!zz! !tz.!o4 44{-] ]-]]V''OõV(ððßßßðððöððöööüüüizkgššï/ïï/šš/ùý.Æ.‚ýk/ùù/ù/š/ùkù‚‚ÆWz//šùš/kš/ïù‚ýÏÏ‚ý!° ¸õ4õÝoeeÝe°¸°¸°{V'h(ii(ii(\\''hhë\h - h''hVVhV- 'h]h VVÈõ¸ÏH‚‚‚‚z‚‚H¤Æzæ‚‚‚z..‚. (\\ë¦- ûVVVëëV -Vë'iðüüüüöh !zÆ©ëÓ­o¬¬¤-ëëëÞëëëëëëëëëëëÞëú±úú±\iß–ißðE(¥4©{{붸¤/+}}}¡g ‚kk ù+g.ggg/k /‚ýïgu}¡MïîMý!!!!!!!zz!tzz!eWz¤z!z.ù.!!tz.tt .. z ¨... k ¤!zÆzzzzz....!!!!z!Ïoz¨zÆ!¤Ï¬ƨ‚ýšgïïMMï@šîuÑMšïMMMïïïggïïggïgïgMÑî+îÑMššššMïùùùkùùùùùùùkùùùkùùùýùg}Ñî/ý‚‚æ¤ÆzzƤW¤¤ÆÏݰÝW! k/k.oõeWÆ!kkk o o!Ï!zoõ4-VV{m{mm{{4e 0o!z!ttzz! .kgete {]V''VVV \(ßð(Eððððßðööüüðüüüöððõ.///uMïg/šïïgšš/ššù/ý‚..‚ý‚kkk/ù/š//kkkýzWkš/š/ù/ù///k‚kÆ.zÏÏ ¸ ݸe¸Ý4õ°!¬° {V\((Eii(\\\h\((V hh'''' ]  ''-]V'ëh'']¶±¥Ý¤‚‚æææ‚ÆÆÆæææ‚ææz..ze(i(ëVV¦ ëëëë -] '(ööððüüüTüðh04t!!Ï4¦£4¸¸oÈë\ÞÞëëëëëV £±ú ¶V\ßßEò ©m¥ ë 0š+}¡g/kk.zz¨zk WMgkÆW¤z‚z!ý//++gg¢šggkzz..!tttz...‚ z!Woo!.z¨ /.!!!tttt !!Æt!z..‚ zoott¬oo!¨.zÝetäϬ;ÝÏä䨚¢š@g¢g¢ïššïïMïïïg++MM++g++îîîîîîMMî}Ñ+Mïšù/šïîïšùùùùùùùùùùùkùkkkùkkkýšM+š‚‚zæ¤zÆz¤¤¤¤Æ¤Ï¬¬Ï¬ot!.kkm ]04!!/kkzõVWoz .!oõ0] 00]-0000m{-{e/!oo!zzk!t /zte00 h''hV ÞððððððððEððððððöüüðððößë!ý/kk¡gggšgggïgï/kýýýýkkkšùš/š/k/k..šš/š///š/gký/‚.Ïe¬Ý°°¬°eõõ4!eõݬ­ ë'\iiðði(\\\h\\i\ ]\ Vëh0] ]]hV±ú¦¸ÆÆæÆzÆzÆæ‚‚æzæÆz..!eh(iòV- VVëë'ë'ëV VV'(ððiðöüüöðh4zÆÏ-¶õϰú\ÞÞÞëëëëëVVúVëë¶£¦\–Eßßßòë-¦V¶{4k¡¡¡ÑÑ//..!Æ..zš.ot.!./š/ù»k+++îïïMz. .!!!!!z‚.zzz¬ÝÝÏ!tt zzkzzt!!tWWz!ÏÏ z .z¤tto¬Ïttt!!!oooooäϬݬÏϬ!š¢ššïgïïïïšš++MïMîÑÑMî}îî}uu}îïïîgšùùkùùï++ïškùùùùšïšùùùkýkkýkkýý‚ýùg/‚‚æzƤ.Ƥ¤¤¤¤äݬÏϬÝooz  o.. °o.k .!õ4{{0õ0VV ]----0-000 o.oo! !!oz.!.zoom 0 ë''V-]EöððEððððððððöööüööððöi Ï//k/+¡¡gšgggïgïgïgïšùkkkýk/kkkk/kýk‚‚kïkùkk//gk‚zÝÏÝeÝõe©©©4õõõ­õ V(iEiEi((\\\\'\\V]Vh(\\\hëV V\h--VV- '\h¦ë¦[ÆÆÆæææz‚‚‚æzæzz.z¤õh\' VëëëëëëëVVV'ë'\\iE((iðöüüüüE\±õÏz.zÆ!Ý£¶-¥ ¬¸V\\ëëëëë''Óë]ÈõÈ–EEß(ëVúúV{ez/+î¡}}¡k//g‚Ý00 z{! e.z¤./k.k/MîMšï‚î¡t.!o¬!Ýe¸t .!.!ooz.z¬t¤!z ‚¨/‚!ztš».¤ooÝotoootoooottWoe¬¬tWä¬o¤šM//ïššgïšššïïÑ}¡+M+u}Ñ}Ñ+uáuuáuu+šùùš/ùNkùkùMîMùkkùùùùïîÑ+šùùkkNýýýý‚‚‚.ýký‚‚zzÆ¤Ææ¤¤W¤¤¬¬¬Ï¬ÝÝo¬eeeom-- -4-¬¤!. õz!Ïz Æo {{{eeVV -00]0om{ te kkt ..z!!!t oo0\'V]]höððööðððEððððððüüööðë .kkkù/Ñ¡Ñ/MMïšgïgïgïgïšš//š/š/kkýýýý‚kkk‚ý. kkùk‚/k////‚!Ý Ïݬe4°¸o{ȸÈ- ßi(iii(ii\\(\\\(''\\h'Vh'i(i('''] ih]]hV]V\'ë£ëûÆÆæHzHz‚‚‚zHæHz..¤È õ£---¶ëëëëëëëVë\\\\((\(iðüüüðië¥ÝÆze-¦¦± eõ\\ëëVëë±VȰõ¦ëòßßEO'Ó !/ggM¡¡¡î‚!tÝý!4t!eo0ë(ò W!-¦õÏ!ztWWz. .ýïîî¡+šM/gîîù!zWoϤ!Ïoz!ÏozÆooe4 oÝo4­{ eÝooz.!z .zt¬o em oeoot!¬otet4mo°4eeeoem®¢/////@ïïšš@guuuáu}+MMMï+î¡ÑîMMïùkùNNNýkNk/MšùýNùkùkš+uuùýký‚H‚ý‚‚ýý‚ƨz‚‚‚‚‚¤zƤWÏWW¤¤ÏäÏÏoeo ]]¥°ootW . .4\]tom-me 0-004o0 0o!ot!ttk.emeooh\\\'V] 'iðöðEððððüöööië{¤/kkkk/kkgššššïgMïïïïïšïïïggšškùkk ý. ‚ý‚..‚.ý/kkkkýzÆÏÝoõWW..ݬooeÝõõõ¥V'(((i(((((\\\(((((i('(ih''VVii\\''V-] E(\-h\\ hëhë¥ûûÆH¤W¤H‚‚‚ææzzzæ‚æzWzz¤W¬°-ûVVëç\\\\((\\\iEðöüüüöðòV­¬¤Ï¸]±úV¦ £ ¥ëÞëëë ¥-õ¸°Ï°4õ¥¦ißß–(ÞVõt/+î  È­­V{È-ȱ\ë-e4±] tz!oõzo‚ +++kMM+MtzztÏttÏo!!t!tÏWWÝeooem{©oõo¸o¸Ý4Ýo4m4o40{m eooWzt4Ý©eooe eÄmm +ggMggšï@ïî}uáu}¡MgïïïMïgïïïšùùkkkkkýkùkïMîùýkkšïM/ùïÑ+šý‚.Æ.‚..ýý‚Æzz.æz‚zæzzæÆÆÆÆÏ¬Ýݬ¬¬Ý¬ooeotoe{0eoÝ4 \'{õetz.!\ëVoto0{{{o©ee{0e!oeoo!+o4 motom]'(\' VViðööðEööððöði{¤kùkk/ùkk/ggš/šgïïMMšïšïïšïïïgïggg//ýý/k.‚z‚ ý¤Æ‚.k.Æ‚ý.¤¤t°Ý4e¬e!zteo-¥¥ ë'hh\(ii\\(i(((i(iV VVh\ h'''']{ mEi'h(VVë'ë륣ëõ䯤Ï俯z‚‚Æ¤ÆææzÆÆ‚‚ýýý‚‚‚!õ--£-ò\ç\Þ\((\\\\\iii(iðöüüüðߥe°­¦úV±Vëë ÈVV¦-¥õe¬Ï¤¤¤­õõ¥-‘'(iiEi(û¸!k/ý/‚W©¶' Vëðßò£V(('hV-£me¤z¬4meoÏte o‚kMMïg/kï++g/ùz!to¬o¬¬zÆ!!!totooem©o]44m Èe eooo{h›\h ]-0m 4m{ÄeooeÝ4¥-m¸ gggššïïïMM+Ñu¡îMïïšššššš/šùù/ù/ùkùùùkùùùùùkM+MkNkùïÑïù/+ÑuÑM/.ÆH..ÆH‚.¤¤Æzææzææ¤¤WWWÏϬÏϬϬÏtteoto40{{00eeh(\ ]0eÏtÝ({{V4o ]0]]{4 {mootzt04m{{{{]'(Vh\ööEððiEððö ¬.ýkkkù//ù//ùîÑ+ù/ïMgggššgïïš/gg+g//‚W.ù‚‚ùkkkzzW.¤¤Æ.‚/.zWz‚¤!eÝt©te¬ooooe õ - Vh\(\ii(\(iiii(iiEüE']]''ë\'0-hh'- z.ii''\-0VVȸúyÝÆ¤óäÆÆÆææ¤¤HH¤ÆÆz‚ý‚‚‚‚ý‚!°00õ° \ç\\(((ò\\\\\\(i('hðüüüöðÞ¦-]V± ¶Vëçëõõ¸e¬Ï¤zzÆ!!ÏÏe õ©­£-V\i(ò–ß–Oh4z. zÝ-¦\–ðßiööð\ ë(ß((Ve©et¸4te¸  š++ššùš+î+M/ïoootÏWzzWzzzÝ44eoݸmeÝemm4Ýee44e°¸4z  (†E(•\Ž {---›0e4m00Ä —  °¦Ä/gšïï+¡î+ÑîMš/ššïïïšššššššš/ùkkùMškùMîMùNkkï}î+ÑÑÑÑ+kH.HÆÆ.‚ÆÝ¬¤Æ¨zæzƤW¬¬Ýݰ¸°°°Ýݰ¬oeo4 -{ ¸4 \\V-¥õeei'-04]V]00- V{ õ{4e¬o¤tttz m{00]'\\\''V'V0iðöððEEðüöüð]t‚k////ù/k//ùùg/ïggïššïšMg/.¬!¤.‚.z.ýýýý‚¤¬Ï¤k/k‚!WoÏÆW¬eoo4õÝo¬o¸ õ0 ë\\\i(ii(\i(i(i(iiEðüE\'-]V'\\''Vhõei(hVVV { V 륣¦L[ÏÝÏÆÆ¤HÆÏ[ä[WÆz‚ý‚‚ýý‚¤Ýõ0{°¬¬­\Þë\(((((\\\(h]hiðüöð(çÞÓú ¶±ß°zzzϬ¸õ¥£Èõ4°°XV±Vû'ë±ûç–Om!!o]ëiißßißEEi(iiië- õ4©{0m  +¡M» kg++Mïïg oeootoz.zz.ýk.z! zzem{e4­-©{©oe-¥¸eee44]-{4t4-]›h•ˆ(†i(\›-VI——\\(i0- hžI'V  £V\{+gggï@ïîÑÑMgïïššš/ššïšš/ššššùù/š/ùšïîîîMïMî+ïùkkýùMÑÑÑMïMÑg‚H.zHý‚W¸°Wz‚‚‚zz‚¤¤W¤ÏϬ¬ÝÝÝÝÝeoooe h] õ{0 eo4]''04 '((]  V\']0­õ0 \ {{ ot4ott!oeoõ4e{  e {0]\\'hVVhV-ððEððöEiöE]tk/k/š////ù/ù//+MšïMgïïšgMgggk ‚¤¬.ùùk/.Ækkýk.W4¤kký!¬Ý¬W..WWÆtW!¬¤!W¬°eoõ ]((\\ii((ð(E(\\ð' V'\V]h'hV-° 00{'h\'VVV]{0]V ë õ¥¦¶õ;ݬW¤¤Æ¤°¸õL[Ææ‚‚ý‚ýýæ[È£ÈõoÏÏ!Ϧ\\(((\\\((ii(- 'h Vðüüðß(±¦(ßVϬ È-úVëV0W¬õ¥V'''릥¥VOiòh{o EEç'\òðßi(ißðði\'ú-¸¤  ¥]]¥m°Ïý+g .‚MMgšîo!.!o//» »k ¤.!t©©--  VoÏ{¦0e4ݰ°©Vç-e0'—Ž•i–††ˆ††E†i(i††(\'I\(iˆE\(\'\EÈïMkššïšïgïMMîššš//ššššš/š/šš//ùššïšššgîîM++îîïùùùkýùšuuÑšN/+îýH.HHýýW°°W.‚ýz‚‚z¤¤¤zÆzÆÆÆ¤W¤¤WϬoo ']mm0]e°{ ë ¥¥0õ{-\']  ð\]{0{{£'h -4 !. .! 0V {{{ \((\\ëhðiiððh\E zz‚/ùkù////ù///g++ïšïgïgïï/‚.zWWÆý/ï/šý‚ù/kk.W¤k zzϬÏÝW¤!z.!¤zÆ!¤¬Ýet.!¸ V(i(\'(iiii(\Viiihhh''\(\'] h{-¥V]-h '\\'VV]00- VëÈ¥ú£Ý[¬Ï䤤[L©¬°°ÏH‚ýÕýýý‚æÝ¥¥õeÏϤ!zÝ-Vë\((i(((i((( Vh0°­(ðüüðiV±úÞii ­õ¶±ë\\ÞÞëõúVV±± ¶¦ûçò¥4ei%%èèiç(EEð(ß(ii\çë±- tõ00£]©Ï!gÑîšù»g+++î++!/z¤++g//k! ¬.!to©- ±¶O(0! h-­mm­0m ›(0I†i†%††%%††%(i'—((–†%E%EEi—\iÄkšk/gMï+îï/š/ššùššššš//šùšùššùššMMîïï+îMšïîîîïškkùýNùMÑÑuÑïkùùùý‚.‚..‚ýzϬW‚‚‚.‚ý¤Æ¤Æ¤¤¤¤WϬÏϬooeotomV0õõ m{-e{] --{0-\'-ö ¥¥0Vë]-]]o!..//ko 4{-V -](ii(i\'ööðßE]V .k‚k/ù/ùkù//kùk//g¡îgš/ïgggùï///.ÏÝW..ýï/ùkkk/ùùkýz¤Ï¤!¤¤ݤÏo!Ϥ.z¤!¬¬ÝõõõÏk/.Ý((V'\\\ii\(('V\'i(h''''']Vh-o­ 'VVV'\''h -õ{]VVõõë-ÝäϬ¬ÏϰȩäϬƂ‚ýýýý‚‚‚¬¥¥õ¬Wzæ‚æW© ë\(((((((((((ii(\'h]õ{\iðöðiÞëëëç(çëÓ\ççòòòÞçç\ë±¶-¶õ°õ¥¥¦ûÓçò\\'ûV-{ %ðèöð((òiEßðißð(ò\ç\úV¦ëú¬­{õ{°z!.»++ggïgÑÑ¡¡¡¡¡g.z kk.z/ ..! tÏ4¦\'h\(EE'¸'ð–'±\ ]]m0-](–%†%%†ˆ•ŽVIiEEE%%i(\o++/š+ïïîÑÑ+ïùšššš/šùšùššùùùùù//MîÑîÑ+ïùùššïškNkkkkïMïšM}ÑMùkkk‚.H.H.‚k‚H¤.‚‚‚æ‚‚‚‚‚z¤ÏWWÏϬÏÏäÏϬoe0mmm e È VV -- È0]'''--V(i\hV -  ]] ]ez..z!o4 4tzõ00 -- hiii((öööð({Wkkk/k//ùk//ùùkkù/MuÑgg//gïš////ýz¤¤zý/šgïïg/š/‚ //ù.zWÏ.¤Ï¬¤¤!WÆ.ÆÆWWW¬¬¸Èõ t .Ýõ{V\'\h- {h'] h'\iii  \((\\\h ]- e Vhë\(\']000VV000ݤ¤ÏÝÝÝݬW¤¤¤‚ýÕýÕý‚ý欦-õݬ¤Æ‚Õ‚‚ÆeÈòòççòòò(((ò\\\' (ßßç'ëëÓ((ëëò(((ç((òòçë±¶õ¸©°°ÈVû'Þ\\\ú£--£¶\%ðððèEßEEßEEßiðð((i\''-È--tõõ¬.oz /Ñ¡¡îg¡uuu¡/ .zzt.!¬Ý¸{{ ¬¬{-V\\(O e'\('È-¦'¶-h'—•i%TŠT%%%(i†%%%iç(ik+kg/gïî}}}+ïššššš/ù/ï/ù///ùšïîîMM+îîMšùùùùkkýýÕù/Mïùù/M+gš/ùý‚.H.ýýý.zƨ¤z‚ý‚z‚¤¤¤¤ÆæÆÆÆ¤WäWäÏtooee{4e {{4VV-V] m]]'\h00i']\'\ 0¶ ¤.t4- -0-{!00- \(iß'iEüüöðEh W/kù/kkùùkùù//kùkùš+ákýg/k//ý¤Ýzýššgïggš/k.ýkký.!¤!.W¬WÆÆ.¤ÆzzWÏz°õ¶¦¶­È{]V'\]] 4-''h' hhi(']õ{'i(\\ë0V]]0h'hë\ißi('h-] ''hV '0W°¸Ý¬¬ÏW¤Hýýý‚ýýæ‚‚¬V-õ°¤zz‚‚‚ý‚zW© '\ççççòçò\\\'ëë\çëÓçiç ëçòç\\\V¥õ44¸È¦ Þ\çò(\çç±õ ] OððððEEEEßEöüE\i'ë¦0]õ!Æ‚/Wt!!z‚ýý}¡MÑ¡uuu¡!!.¤eo¬44oze'ç\\Þò\V¦hh m È'\\\VV(i%%†%%EEE†èèm/ïggggïïššššššškššù»ùùš/ùgMïšššgî+šùkkkký‚‚‚kMïkkkùùùýkkýý‚.H.‚‚.ÆÆ¨zÆ‚ý‚‚‚W¤¤Æ¤¬õ­WϬ¬ÏϬeeeoe-4õ{©õoV¦{ -0]{ 0]Vhh]]m'h''V'\'0- ''0zõ ]¥0-Ve {0] ]]'((i'iðöööð(È‚/k/ýý////kkkùùkkýkùu+šš‚‚g+ïg/ù//‚tW.ïgïgïï/ýk///ýý..WW¬¤zz.z‚z.!z!‚.W!ÝÈ ¥ içòi(h] 'h]e4- ('\VVhhVh]{-'\EEii\\hVV-{{{m'\\''iEßi\'hë\\h'-°¬e­Èõ°°¸°ÏÆæ‚ý‚‚‚ý‚‚ýæ¶VõÝϤæ‚ýÕýÕ‚‚zÏ©õ¥¦±¦¶¦VVVh'\'\ëëëë'ëë\iië0-ë'Vúë ¥0õ­¥±ëÞ\ç\\çòÞÞ-ee¥]'EöðððððEEßßEðEðüöi(ði-¸õ{{!¨!./.!zz‚ýkkgu¡Ñ¡î¡uáuu¡ug.... ¨tÏW¬¤.0 ûhë'']''ëV- \ç'\(E%TTTT‹†%‹Ÿ‹‹‹.ùk+gî}uîš@š@š/»kùùƒ/ùùùù»šùšîMšùšš/+¡}Mùkk‚‚‚ý‚ÕkïMýýkýý‚‚‚ýký‚.H.zÆÆÆÆ.¤zýý‚‚‚WÆÆz¤¬°W¬ÏÏooe 4o4-{ { me]-Vm4 VVV]hVe'\\V'\VV-0]h(\-mVVë 4m{m0] ]h\\\\'(öüöðë°.kkkkù///ùkkkkkkùkù//š¡}ï/kkù‚šgg//ý¬Wk/gMgïïgýWšùk‚..ÝϤ¤¤Æ/ký.!‚!z¬¸­- ¶ ëÞi(i -'mooe'\'' V''\]õVh'(ii'VõVto¸© \({\\(((''\(('-4 ȶ]00¥-õWz‚ýýæ‚‚ý‚‚‚ýÝ -õ°¤‚‚‚‚Õ‚‚ý‚æzƤ¤Wä¤Ï¬Ï¬ÝÝõ(\Vh((((ç\''(ß(]4 È¥¥0¥¶ ]-¶¦úç(iòçÞ\\Þçç'¥e°-]hEöððððEEEðEðöðEiEi'oeõ4meoÆ.kgkz‚ý/gÑáu¡}uu¡¡á}g z!!!W./ze{¶VV±ú±h ¥hVV¦ú£¥ú'\\Þ(ˆ%‹¿%%%‹ŸˆkggÑ}îïššššï/»»ùïš/ššƒ/kùš/ùïg+ïk//šïÑ}ÑùÕýææýýÕkïMgkNNýý‚.æýý‚‚ÆzÆÆ¤¤¤¤zƤ‚ý‚.‚¤z.zzÆ‚‚ƤWÏWWWä¬4eom-{mmÈo40{0©e°o V ]'h-e \\h\h]]h\'] ''\'-m4-]--\ V'\\\\\\\'iöðÝkkkkk/ù///k/ù/ùkkk/kù/}}/ýk/kgggïï¤!ýg+gMï/ký.¤kššùkk‚‚ýzÏÏz‚z.Æýýzk!..¤ÝõõV ¶¶ë\ò((' -Vhh-]õ'h] hVVh'V]{ Vh\\'\' V'h]4Vz\\\\\ëV'(ëë]0 ''V-e¤‚ýý‚‚Õ‚‚‚æz..°ë Ý‚‚‚æ‚ÕNý‚ýýý‚Õý‚‚‚‚æææ.‚ƬV\e ëëiiß(\\(ßð(Èo°Ý40ȶ úúë'\((((\'ÞÞ\\{]]ûðüüðöööðEEEEEüüöð((ëe 4eä!zkgýkgÑ¡uîÑÑ¡uu}¡¡+kkkk .z.šÝ4-{{m-V­4]'V{õ¦]V±VžVhÓž\iET%‹%‹h.g+gg}u}+šššï/N»ùïšššššš//šgîMùùšù/MÑ}+ïkýýkýNkkgîMùùkýk‚‚‚ký.!¤ÆÆÆz¤¤W¤WW‚‚‚..¤z‚‚‚ÆÆ¤zƤ¤¤Wttoo0m 0{õõ'õ oo4---]VV]m\(i\' --]]'\i(h]]'h V ë'(iii(((\V]ëõÆ/š//š////ùkýùùùkkýùkùšýùšgïg‚WýïMïšgg/kýk.¤./ï/š/ýk/ýWtz‚¤.z..zoWW¬¸°°©È£ 'ç(ßßhV È¥VV 'V VV V] hh \\ ]h'V0]]-0£''(\\\\\\- h(\\ë'\\\ëV4¤ ý‚‚‚‚ýý‚‚Õ‚‚‚¤-¥W‚‚‚‚NýÕ‚‚ýý‚‚Õ‚‚‚‚‚‚‚‚‚zzW '- Ȱ-ë(ðßiòßöðÞ¥¸¬oW¥]±ëÓÞççò(ò(òÞ\ÓÓÞç(±]¦V''ÓðüüöööðððEEEüüðE(V0±±È°4õõÝoWÆ kï++/gÑ¡u¡+¡¡uu¡ukkk» z¤ttW./¤o4°õmm-{©VÓV0 ]0 ] V£\\iEŸTTTTTTT .gM¡gšššššï/ùkù/ïï/šššššù/šïî+ïïššù/ï}Ñîš/NkùkšM+ï/kýN‚‚ýý‚Ƥ¤ÆÆzƤ¤W¤WW.‚.z‚‚‚‚æzÆÆæ¤ÏÏääÏtoooot{{mm ¸mëV°4¸0õ4õ{{]-00õh(''V]]- e0'(i\'E\h\(\\hhh\(EiiEEEEihe./šù/ùùýýýùkkkýýkùùùïÑî//kšïgïýÆ.MMšM///ý.z‚W¤‚kš/šùùý¤¤zÏ.H.‚!zo¬Ýݰõ¶ë'çç((\V -õ ëV V{-0{  0õ ]Võ\'' ]0õoeÈ¥{õõ-]]V V(t/(ò\'ë\\\((\\\\(Vz. ‚‚æýæ‚ý‚ýý‚ ýz¤‚ýý‚ýýýÕÕÕýÕýÕÕÕÕ‚Õ‚‚æ‚‚‚æ¬ ¥-©!¤°¥ëßööüß'±0õõ õ±ëÞçò((i((òÞç'Ó'ëV û VVVÞò(ðüü‹ööðEEßßðöüE''Võe0-­¬otzý/+Ñgg++¡u¡++¡¡¡u¡//k.Ƥz¤.gg/zäe;444{£-'ú-0 V (ii–ETŸÆ++Mïïšššššššƒ//šï/ùùšï+MšùšššMîîîšùù/šïÑ}îïkkkýkïîMšùký‚‚‚.ÆÆHzÆÆÆÆÆ¤ÆW¤‚ýý‚‚ý‚‚z.‚ýkƤäÏÏWÏooet m m4o t4{--0 - 0---0\'V0 {-e](EðEi'E\'(iii(\\ò\(iEh¤+Ñ}Ñ+////ùkk/ùkýkù/ùkù/îM//ýgïgg‚./Mggkýký¤W¤Æ¤.kkš/k///ýz¤¤ÆÏz. .!Ϭ¬¬¸Ýõ¶ë'ÓÞçç(VVV ]]h' ] {{eõ0õõ40]e! 'h ]{o°{{]-]\\'ëegki((((ò\'''\(\((\\\çë£4Wz ý‚‚‚ýHýý‚‚Õ‚ýý ýýý‚ý‚ÕÕÕÕ‚ÕÕÕÕý‚‚‚ææ‚‚Õ‚‚‚¬ë ¥Võzz¤W¶iŸ½ö(Óëëúúú±úëÞç(Oò(((ççÓ'úVVúVõ¬o ]ûû¦¦\((EððüüüöððEßððüö(V4W¸õ°Wo¬¤‚kMÑuáÑÑÑuu}î+¡Ñu}uuu¡î//kkk ¨!!¨ !.šïš o44ee4 0 ú' ] -VëÞiEEEE%‹%T††TTŸŸè©z+gïïššïššïššï@ššùùùšgÑîg//š/+îMšùùšï¡}îšNÕýÕ‚ùïî+ï/ùý‚‚.H.‚‚.Æ!¤ÆzHz¤z‚ký‚ý‚‚‚ýýýz¤zƤ¤¤¤¤Æto{oe44{moe4­V40V-0' -V VV-(\'\'' ]'- 'EðEE\ih 'E(\(iiE(Ei-tk+Ñ}î+++Mg/ù///kkù///ùùš+/ù./ïïMïšý/Mgk‚ý...z¤z.z.ýš/ïgšùšùù/kÆW.ÆÆÆ.W¬õW­­Vë'\Þ\((ç\(ii(\'V¶''V]¥--0-- ]{{¥ V ]V-m{ 00{0]V'V'(\'Èkgki((\((((iii(((ççÓ ÏÆ.‚‚‚‚‚‚æ¤ÝäH‚ýý‚‚ýýýýýýý‚‚æÕÕÕ‚‚‚Õ‚ÕýÕNýýÕÕÕý‚‚Ï¦ë ¶õ¤.z.z¤ðößçÞòòòòiß(((çÞÓú¦££¦­Ï!zõûV \(((Eö‹ðEßiEððV4¸©°¥­[¤W¤¨¤HùMÑá===uuuuÇu¡¡+îîÑ}}}uuu}}Ñ¡ùký ‚¨!!ÆzH.ùššk.WÝott¬°44ÈV\hû'hÞ'(EE%%%†iˆii†TTTTT½ ŸŸ†kUšï+ÑMššššïïššššïš/ù/šg+}ššš/ššgÑîïkšMîÑîîï/ùkkkkkùùšMîùký‚‚H..‚ÆÆH¨Æz‚‚‚‚‚‚‚‚ ‚‚.‚.æzÆæzÆÆ!Æ!z!t{ii\V õ4 e44tt{-V om] V'\'\V ('Vhh\EððEððEiððEEEEEiii(\V00{WýMMšïî}ÑM/ù/ùk//š/+Ñ+k‚.ïgg/g/kk//ýý‚WzÆz.‚ýýýÆ..kk/ù/kkÆÏ.z.ÆW.e4W‚W-\'òii(ç\ç(ç\\''hh0]--4¸-00hV­{VV-V0õ4{ V0t-h'V'Þ''(£ gg/ (\\\\(ððEi\'¦õ¬¤Æ‚ý‚‚ ýý‚HõûúX[¤ÆÆÆæz.‚‚ýý‚‚æ‚‚‚‚‚Õ‚æ‚ÕÕÕÕÕÕÕÕ‚ÕÕ¤¥± ú멤..‚zW¶(i(ò(ççò((ç((ii(òÞ릥©õ-úëÓ¥¬‚e V 'ÞçßöüðEEðEð\VȸÝo¸õ©ó¤HýùïïMÑuu=áá=áá=uÇuá}Ñîîîîîî¡}uuáuu}+ùý‚.¨ÆÆÆzHù/ù¨W¬toem-hV]Vhûúh\(–è%†%%Eii%TTT TTTT½½½T½ÂEMgMggïššššššïššššïïššMgïgMÑuuÑgš/ù/ššMîMkNùšï/kýýý‚‚kkkNkùïîšký‚‚‚‚H.ÆÆ‚‚zz‚¨.‚‚‚‚‚‚ý‚ý‚‚.zæzzÆÆzÆÆÆ¤!t{(iiihhVV-4Vh0ee0V hh-VV00\\{ ðöEEððöððEðEßEðEðEEßEðEßi']õ õ{ .šššgîÑu}ÑÑgškù/ù/gÑšzÏ‚+gùg/ýý.¤¤....‚ýk//ù‚.Æýkïïùšùkš.Ï.Æý.W.44ϬzõVç(i(\\çò\\\ë '\\VÏ!o{ È]V¸o{¥ ¥{-VV¥oo¤e V04õõ-\\hh- \'Vzg/tEi(((iðððöððððEEßi\V°WÆz‚ý‚‚‚‚‚ý‚‚¤±çÓ붸ÝäW¤zz.‚ýýýý‚Õ‚‚ý‚‚‚‚‚‚‚‚‚‚‚‚æ‚‚‚z¬¸£ûëV¸W.‚‚zeVç((ò((òò(ò(çòò\ò((òÓ¦õ¸Ý¸¦úëÞë{to{]V±\\òò(EööEEEEEV4t¤Ï[äWÆýïMÑÑÑuá==uááuáuuá=áu}¡îîîîÑÑ}Ç=á=uu@ýNN»Õ‚¨Æ¨‚ùïg»z¤ooõ-VV] V¶{0VÒ\(E%%E%%%†i†TTTT ½TTT½‹½ŸŸÄ}¡¡}îM@ššššššššššššššÑÑîîMš/šïššîîšýýkkkkýý‚‚‚ýýù/ùkkùgškýý‚‚‚.HÆ.ýýkýý‚‚ýýýýýýýýý‚‚‚‚‚ÆzÆÆÆÆ¤!!0((i((\\'Eð\-{]hho{h'{0-V - 'hV- '  ðüððððöððððEððöððððEðððß\ ¥{ õ ¸ õ¤gg//ù/+Ñ¡ÑÑ+îï//šg+kÏ‚/gMùgšk.Æ.. ‚...ý/ššïù‚..ý/šù//kkkýÆkýkký e¬!-'\V(i\\ò\ç'ëëV¥°õȸ­-­ ë-¸õ­-V õ¸Ýzo-V]0 {]h(iÞ{{V-¸.+gù.oEðððßßðððððððßßi((\' ݤ‚‚‚‚ýý‚‚‚ý‚‚æWë\ÞÈW¤Wæ‚ýýýýýNÕÕÕ‚ý‚‚‚‚‚‚‚‚‚ýÕæÕæ‚Õæ‚ÆÝȱ£Ææ‚‚zõ\ò((((ò((òç\\ò(òç른Ýϸ¦ëÓ\Þ¦¬¶V'\çòòòOèööEßiV0eoWz.ÆÆæýýýïÑÑ}uuuááu}ÑÑuááu}ÑÑÑîîîî++Ñ¡}=É=áuýý‚‚¨.ýîM‚HzWoeot¬Ï40¶±úú ¦--Äo4'(\iiE TTTT† TTTT¿TTTTT‹ŸŸ‹çù=uu¡Mgïïšš/@/šš/ššššùšMÑ}¡¡uu}ÑMgïgMMîMšýýý‚‚‚‚‚æ‚ýùùùùýkýùïÑšýýýý‚‚..H.‚‚‚‚‚‚‚‚‚‚‚ýý‚ý‚‚zæ‚‚ÆzÆz!¤¤¤!i(((\\\h\Eð('hhtVhV000 h h'hVVV] VVV]-\ðüöðððððEEðEEðEðEððððiç --È­õ44¸!+Ñ+gùk/ùù///+Ñ}Ñ+Mššù//k‚Wýšk+/ý.‚ýkký‚‚k/ïgšùkýkšïšš//ùý/kkk/g/!¤ze¸¸-h'ëV'(((\\\\ëçëë ­°õ©õ¸¬¬¸õëÈõ­-¥{õ­¥-©0]-0 V \\-eݰ¥¦¤g+ù tõiði(iiii((\ëV'¥eo¤W¤æýzæýý‚‚‚‚‚‚‚Wëç\\룰Wæzý‚‚ýýÕýÕNÕÕÕÕÕ‚ÕÕÕ‚Õ‚ÕÕÕýýÕÕýÕÕÕÆ[°JäHæ‚Õzݶ\((iißi((iiò\\(('¦õ°äõëú'Óë4V''Óçò(i(iEððEi(õÝW¤.»»ýùššùMÑ}}uuuu}ÑÑîÑÑÑÑ}}uuá}îîîîîîîî}=ááááušýýýNý»ý‚‚»šù.Æ!Wot¸0-V''h±{­°¸Þ(ž]]Ž—•†TT ¿T¿TTTTTTTTTT†iEŸ‹Ÿ‹Â?¢Ñ+îMMMïšššššš/š//šššù/šgMîÑ¡ÑÑ}+MMïšùšùýýkkNýýÕÕ‚Õkù/ý‚H‚‚N/ïùkNNý‚‚H.ÆWÏÝÝÝݤWWÏW¤Æz‚‚‚æÆÆzzÆÆ!¤¤¤Wtt](iii('iiV em-- -0õm---V-0VV]{0\ðööðEEðEðððððEðððððß( ----0õ ouÑ+/k/ýý/šg+Ñuu+ïM/kz/gù/ïškýýýk/kýýkïïšš/ùššï/šk//k‚š/kWooe¥ÈVëhV ]V'(iEði'ëë\ õ¤z¦ ¥©õ°È-'\- õõõ¥¥õõVë-{---Vë''V{{{¬-­/g»!mh'ëV]VV-Èõeo¬o-ëeÏ¬ÏÆÏÏÆ‚æH‚‚‚‚‚‚‚z¨Ïë(ç\±õW¤‚ýýýýÕ‚ÕÕÕæÕ‚‚Õ‚ýÕýÕÕ‚‚‚æ‚Õ‚Õ‚ÕýæHÆÆHHææÆ¨zÏõ-òiiii((iiii((ò(((\'ú¶©óõëÞVȤo0 hÓ\ò(òi(i(ii–EEß(\°tz..kššMMMMîÑuáuÑÑÑÑîÑÑÑÑÑ}}uuÑÑÑîîîîÑîîÑ¡áááuá¡ýýýýN‚¨‚ýkk.!tt!z{ ¥±V0Ä  iˆiIžŽˆ½TT TTTTTT¿T%ˆ½‹½ Kggïïïš/ù»ššššš/šƒù/ùù/šïš/ïî}}}uî+ÑkýùkýýùùùNùkNýýkýkN¨Æ‚Õý/+ùýký‚..WW¬Ý°Ý¬[WWÏW䤯zÆææz¤W¤Æz¤¤äÏÏtt\iEii'ð(\Eð( ]- eommõ -h'm -]{{--- (öööEEðEißðöððððEðði(\ ---¦-£00{õz+uÑ+ggù.ýkkk/MÑ+g+ùš/ïM/ýškù//ký‚‚/gšïšïïššg/k‚.‚/zÝz¥V V -- '\\EEi\'ë-{ÝõúV-±¶õVë'õ¸ ¸È{õõ¶\ëÈ- h\'']0 mt ]4©‚gïMù.©Óß-¸¬ÏϤÏϤz..æ‚Ï0­ÈȰ[ÝÏzý椤æ‚.‚‚æzH[Þiçë±¥°W.‚‚ýÕ‚‚‚‚ÕÕÕÕ‚‚‚Õ‚‚‚ÕÕý‚ææ‚‚‚‚ÕÕ‚‚æ‚æHææ‚‚‚‚.Ï-\(ii((((iiiiiii((çÞë±­[õëÓ -­Ï 4V\\((ii–i–iii–i(( šg+îÑîïîu}uááu}}uu}ÑÑ}}Ñu¡}¡ÑîîîîîÑ}áááuášýý ‚..¤Æ‚kù@ï» . zz Ý­¬Ï°£õ{¥h(ˆE%EE%TTT TTTTTTTTTT†ˆ¿¿Ÿ TÈ@ùššùùùùù/ùùù/ù/@šù»ùïšýguá}ggÑgkæýýýùùùùkùkkýkÕNÕk.¨kùkšîMšùkk HHW¤W¬ÏW¤¤¤ÆÆÆzz.‚Æz‚z¤WÆÆ¤ä¬Ý¬ÏÏt'E\(i(h-((''E(''h]- m4e{V]õ{V{{V VV(üöðEððEiðððððððßßi ¶ --- ]-{ ‚}¡+/‚ýk ýkkùš+ýk/++gMk‚ïù/k‚‚kï/ïšššgïïgMgÆzÆÏ.Wt‚¬©¥ VVVë(\ii\ë ëëV ]­Vë ± È'-¸{]ÈÈ-õõë \\'h ---{e°-¦VÈýïg/. iðW‚‚Æzæ‚æ‚ý‚ý‚‚zϬ©¸Ý°ÝÏæ‚‚Æ‚‚‚ææææH¤¸Þ((\ë±¥°W.ýýý‚ÕÕýÕÕÕ‚‚‚ÕÕÕÕÕÕÕýÕ‚‚ÕÕýÕÕ‚Õ‚ææ‚æ‚‚‚ý‚z‚z°'(i((((iiiii((((çÞÓúP£û±­e¬..4úÞ(Oißßi((O–ßii((mt ‚/ggÑÑ}u}+Ñáu===ááuáuÑuuuuuuÑ}ÑÑÑîîîîîîbÑÑ}ááááÇuï»N‚H¤‚¤¨N»+g/ et!o©{õúh(EE½TTTTT ½TTTTTTTTTT†(T ‰%Ïšïùù/ùù/šïïš/ƒ/ùš/ùù/N¨ýùïuïMMùHkýýùùùkýýýýNkkkkýÆÆNùÕýï+îïkN‚‚.H.zWϬÏW¤Æ!‚z椤z‚‚ÆW¤Æz¤¬¬ÝÝÝW\ö'V\i(( ehöðEVV'h'h\- { ] e'- --0\üüððööðEðööððððß((iÓ ¶-¶ ----¥{/î+Ñ¡+kýkýýk///k Æt‚g+ý‚ïï//ùš/ù/gï/Mïš/ïggggïgg/zzÆÏWze4õ-V V(('h] VëëV °È'¥©0\ë ¥{ÈÈ-¶¥V''\\hV--00 VV'(\ÏggïùW Eè䯂‚HÆæýÕýýýýýæz椸°ÏÝݬÆzæz‚ý H¤Ï[¥ûçßi(\Þû±£õ°W‚‚‚ýýÕÕÕ‚‚Õ‚ÕýÕýNýNýÕÕÕÕ‚ÕÕÕ‚æ‚Õ‚‚‚ææ‚‚‚‚¨‚‚Ïëç((((iiiii(òò(ççÓëú õo¤W.­±òòEèEEEßßEiii\õÆýkg+gÑ}}}Ñu==uá==áá=ÉÉ=Çuáá=á=uÑÑÑÑ¡ÑîîîîîîîÑuááÇ=ááá»ùzWÏ¬ÏÆÆ¤.kk.Æ4-- Vh(\ß%E‹ŸTTTTTTTTTT%%%†i%TT ‰ÒÕš»ùù/ššïîM@ššš//ù»»ýùšïù»ùîšïgïgký/ýýNýkNýkNkùkýý‚ý‚¨¨.‚Nkùïïù‚Ƥ.H¤W¤¤WÏ‚ÆzÆææÆ¤‚ýýƤzÆÆHõ¥°ÝÝoÝo('Vhii\(ð{] ëVhVhhV-m0{ 0]-''{ -(ððööðööööööði(\\ë ¶ - ]]-£00õzg/šgîîÑ+î+/ùùù//ý!¸°‚áÑg+/ùš/šgMïïïMïïgïïïgg/k‚zWÝ!¬W°©-¥]{­V\i(( ¥V''¦-4õ¦ë± ¸ ç -­Èõõ¥ ë'\\(V00- --{]\\\i\©/ggk°'ßè褂æ‚Hýýýýýýýýýý‚‚¤Ï¬õ©WÆææ‚ý‚æÆÏ°¦(ðßi(\Þë¶£Èõ.ýýýýýÕÕææÕÕýÕÕÕýÕÕNýÕ‚ÕÕý‚‚Õææ‚‚æzƤ悂‚‚‚¨¤¥(\ç(iii(ÞòòÓû¶[¤W!¤z°]V((iEðððEEðöEßi\VmÏ. kMÑÑÑ}uááá}Ñuááá===áuá=á==áÑÑÑÑ¡¡ÑîÑÑ}¡}áááuuuá¡gšÆWt¤Æ!¬¤.z..zto!Ϧ¦±'\\iˆi(%%‹‹‹TTTT TTT %EEE†TT ‰ TL/š kkùšïïgî}+ï+î’ïšùù»ùùšù»ýý»šMššùk‚HýýýkýkkkkNkkkýýýkæÆz¨‚kkkýkšMïùýý‚HÆÆÆzƤ¤!zÆ‚zzÆææ¤W¤‚‚ÆÝȱ£¸ÝÝÏeot\\ih4oV\\]V]-V ''h- {õõ{{{õ{-(öðööööðööðððV ¦ ¶ ¦ --¦-0¥Æ///ï+îÑ+gg//kÆe¥È4káÑ+Ñ+ù/gg//gïš/šïgMïgMgïgMïggù/¤.Ïݬeeeõõ°-õ¥{-'\VhhV0V ë-eõ{úÓVçÓëò(\ ¦È¸­ ¸ ë'ëë'ëë --{È-]V -h(hÈgïïï/ýÝ-–EiP;äHæýæÕýùýýýýýký‚æ¤ä°©[æ‚‚ýý‚‚ý‚æzæ[úßiiiç±¥­¥¥õW‚‚ýýý‚‚Õ‚‚ÕÕýÕýÕÕýkNÕ‚ÕÕÕ‚ææÕææææ¤Ý¥Ï‚zæý‚¨‚Ï \\(ççÞ±°¤¨¤!.¤° (–EEððöðEðööE(\0ý‚kýk+ÑgïîÑÑuuÑ+îuÑ}á=ÇááááááuÑÑÑ¡¡Ñ¡¡Ñ}}}uuuáá=áuuuï ¤¤¤H¨zä¬Woo4e Vž\òòEEi%TTTTT¿TTT T%††%%†TTTTTTT T•»+ï///ššš@ïïîÑuuMšù»»ù/k»ùïÑMgš‚ÆÆÆÆHýkýùùkýNkkýýýkýýzƤÆ.‚ýý‚Hýg+ïMšùk‚z¤¤z¤¤¤¤Æzæz‚z¤¤Æzä°ëúÞëÈ©°äeo\('\(\Vmhi{h'h\hh'''VV-e0-04 0Vüüüöööüðði\VVV VV± VV ¦¦--¥000{z/ùùkù/g+uuÑg/.©{©¤šÑáÑg/gÑÑ//+gïšš/š/šïïggïMggïgggg/z¬ÆzÏ ©W­V¶V''¥0{]-VVe¥ °õ¦\ii((ò(i'£--Ȱ°-ëëë¶ hV0È0]]]-]'(V\Výgg/ {çð(hXL[ÆæÕýÕýNýNýýýýý‚‚æÆ¬Ý¤‚ý‚ýý‚‚‚¨zææzÈ(ßi((¶-¥¥{ Ýz‚‚‚‚‚ÕýýNÕNýýNÕÕýÕ‚‚ÕýÕ‚Õý‚‚æ‚‚æÏ-¥¬‚Õ‚‚‚Õ¨e(\((\\(\\ç±ÈÝH椤WW¬¥V\OiðöööðEðößi' kg+++¡ïšMîîîÑuáÑÑ}u}MîÑuáuá=áuáuÑ¡}Ñ¡ÑÑ}uuuáuááÉ==u¡î’ïýÆÆ.‚‚¨ÆÆz!!to44úhii%%%E%½TTTTTTT T¿ TTTTTTTTT TT T ‰ T¦Mù»U@@šù/guuu}uÑM/ùù//ùš/@g+Mš»Æä¨‚‚ý»ýùýýNkýkýý‚ýýýý¤¤Wƨ‚‚..H.kùýý//ïk.¤¤¤!¤WWzzzæ.z.æzÏõ¦çëëVÈÝÏ oo\h--'] -(\(ðV{-'hV'\'hh' V'\' {]00-VEüööüöi\ëVVVVVVVVV± V ¦£00È0{Ï/š//kk/ššï++ÑÑÑ‚W4Ϥý+g/Æ‚//‚ýÑ¡gïšïïïggïïïïšýz‚‚.¤.ÆzÝ ''h---0õ]-- VÈõ±(ßßßßii(ë¥õe©°õ ëë -¥{õ ­- hVh(ëVV!ï+.Ï­iO4¨/;[¤HHÕÕÕýNNý‚HHzHý‚æH¬æýýæýýý‚¨zæ‚.H­iii(çëV-- ¥Wæ‚‚‚ýÕ‚‚‚ÕÕNýýÕ‚Õ‚‚‚ÕÕÕÕÕýÕý‚‚ z­±È¬HææÕæ..õëò(\\\\Ó0¤¤¤¤¤¤¸© {¦ë\(iEððö‹üðEððEEE£¬.+g¡¡¡ÑMMïïM+}á}Ñ¡ÑMîÑuáu=á=ááuuÑÑÑÑÑÑÑ}}}uááuáuáÇ===}îšššš».!!Æz!¤!!Æ!tot4mÈV'\i%%%‹TTTTTTTTTT¿ T TTTT TT TT T T T½RMk»/ššƒù/ïM}u¡¡}u¡+///šùƒïgîÑîMﻤW‚»»»»ýýkkkkýký‚‚ýýýý¤WW¤z¨.HÆÆH.HƤ‚ýk/ùk‚!!¤W¤¤W¤¤¤¤¤z.W¸¥±õ¥©©Èݤõ' m {V\h-\h\ëhh\'' -V\'VV]h'\h 'hëh iööüüüð(ëVV± VVúVV±VV V VVVV --0{0{{4ù///ùùk///+gk‚‚Æ//šggk‚..!W¤k+ÑÑ++ggïïïïïš/k‚‚ýýkýWÏ.W-ë¦õõ-4e-VV-{V--ÈÈ'ëçiii('¦ 'ë ¬e¥V--  È õ¥õ 0'\'\'\(0‚gg‚ϸëß(Ý/ù[[WæÕýÕýNNýæýH[óH‚æææä¬æ‚ýýýýýæææ‚‚‚‚­iiiççòçV£õÝz‚æ‚ýÕÕÕýýNýNÕÕýÕÕÕÕýÕýÕýÕÕ‚‚‚z¬¥V¶°ÆÕÕææ..e\\\\\\\\ë -V¥ÆHÆä[ݸ- £\ièööööðEßEðEE'W+uuááuÑMg+îuáuÑÑMîîîîÑÑuu==É=uu}}}}uÑ}uuuuuáááuuá=á¡ïùkš//NäÏϬäÏooe44]-]V((iŸ½TTTTTTTTTTTT T ¿ T T½T ÓïMšškùšš//šïšïî}}Ñ}á¡Mššš///ï’+ïšïk¨Æýký»k»kýùýýýýý‚‚‚ýýý¤¤¤Ææ¨ÆÆÆ¤¤Æ¤W¬Æ¤¤‚kùý‚!ÏW¤¤¤¤¤.z¤Ï°È--ÝÈõ¸¥eÆ4õtV oõV\Vhë\'hh'h õV\'h h\hüüüüö(ëVVûVVV±VúVVúVV±VV ëV -000Èõ//k//kkk/kýýkýz‚/îMgggkHzWoÏkïÑÑÑÑÑ++ggšgggggïšš/ù.‚‚.ýk.¸ÏÏ©¦{44]-{ V{-õ]- -\((\ëÈõ¤e¦VV{z È -¸õ-©-­°õ00¥ë'\Þ\h!gš/.¦iò¸/g/kW;ÏHýýýýýýýææä…ÝHæææýæÆæ‚æýNý‚‚‚‚ýý‚‚©(ßiòçç(ë ¥°Wæ‚‚ÕÕkNNýýýNNýNÕý‚ÕNÕýÕýÕý‚ z°£±£JÆæ‚ý‚ý¤e{¦hV]4¤°Ï䯤õ©È¥¥(iððöüöEðEm¡u¡uuu¡MMg+Ñ}áuîMMMMMMMMÑuá=É==u}}uáá=áá}}uáááuuuu}î@»»ƒššù¤ÏÝÝóo¸© -Vhh'EöTTT½TTTT T TT TT ½ T>Pïš///ù/šš/»/šïuu¡}+@/ššš//gî+ïïšùïù‚¨»ùýýýýkýkýýý‚‚ý‚‚‚ýýÆzÆ!ƨƤƤ¤Æ¤WWz¤!‚k/‚Ïݬ¤z¤W‚Wݸõ¥¥ÈõV-õ¸Wzõt!o-00 hië0Vë'hh']''Vh {-V]''h''V ]'\\(V'ðüößçëVV±VVVVVVVVVVV hëV ¦-0000 k////kkk/kk ýkýzÝWk+Ñ}¡Ñ}/z¬ÏW¤‚ýkï+}¡Ñ+šgMgMgg///‚ùk/.Ýoo!z!.z°õ­È{ V- V¥ V'Vë õϤÏõ­- -õ ¸¥¥-Ȱ¸z- -4õ]ë\\'V]((\ÓhWggkWÈ\(/ù¨.H‚ýýýýýýý‚‚[ȸäHææ‚ÕæÕýýýý‚æ‚ýýùý¨ °ii('\ÞëV£Ý!.¤¤HÕÕýýNNNNýNýÕÕÕÕÕ‚ÕÕ‚‚‚‚tW¸-¦¤Æ‚‚ý‚‚¤¬Ýݬ¬W¤WÆÆ.¬;WÆä°È­©õ\(ißðEðööE(iii( ¤¡u¡¡Ñï+îÑ}uuîkMMMMMMMÑu=ÉÉ=u}Ñuu==á=á}ÑÑÑ}áááuáu}Mkùšïg ¬ÝÝõ4em0-{'ii%%TTTTTTTTTTTTTTTTT ¿ T T TTTT%ˆ)gîšïï@š/ùý.ƒ/ï+îÑîMgššïï’gïššïùk‚‚ùùý‚»kkkýkýýz‚ýý‚‚ýýæzÆææzÆWz¤¤ÆÆW¤Æ¤ÆÆ. k!o°o!¤¤¤!W°õ°ot.Ï!!4]m!- 0E]\i'  ']h\VVVh-]'\'h\V(\Vðöß(VVûVVVVVVV ë -0{È00õýkkkkýý ý ký.Wݬ.k+ÑuÑ/.¤ÏW.ýýýýk/ïMîÑÑ¡Ñggïggš/ï/¤õeõ!¤‚4e©¤- V ë Vëhh-¸õ¸õ¥ ëÈõ­4°-¸{-°¬ È¥ÈÈÈ \ò\ë- ßi4gg+š/‚ë–'Wï/š.‚ææýÕýNýýýký.õzæ‚ýýÕýNýýN‚Õýý‚‚‚‚ \i((i\V¶ë\\ë¦-õW‚æÏ©¤ææýý‚kýÕNæ‚‚Õ‚ýÕÕæ‚zW­eÏÈVû±õ¬æz‚Õz‚Hæ‚‚‚‚¨Æ¨HÆ[©õ¸[õ¶0{­õV\iEEEEððEi\((\V.áu¡ÑÑ++Ñî}uuÑšgMîMîîîÑÑÇáÉÉ=áu}}á=ááááu}}}¡ÑÑ¡uuuuu}Ñ¡gg+îgk¤Wt 40{]i%öTTTTT TTTT TTTT T TTT è¬u}}gïššššùÕš/šïïïùùùùù//ù+ïïï»»/zÆýùùkš»ýýýýý¨ÆÆæzÆæÕ‚z‚¤zÕzÆ.Hz¤WWÏW¤Æzz.zz z¤. !!..tÈ44!/////z]ih0o-'h--h0më''0h(--] 'V (iV'hhhh\'ë\ö(\ëú V ëV¦ VV ë 0{0{4ùkk‚.!¤¤.‚kkz¤ÏÏÏz‚/gÑ/ýýÆÆ‚ùk‚.kùù//šgÑÑÑgMgïïgïš/k .õ¥ !Ƹtz°¸Ý--­VV VVVV\V-¥V\\ëë0eõ-õݸõ {ȰõVȰ{'(iV]\iii]/gk/+..¸'\]W/»¬ýýýýýýýý‚ý ‚.W[¤¤Æ‚ýýýýýýýý‚‚ýæÆH¨¨¨ oiiii õ-'òçÞ ¶õÏýýưPX°äH‚‚ýýÕ‚æ‚ÕÕ‚ÕÕÕ‚‚æÝ£õÝt - ¦È¬‚‚Ղ椬¤zææzHƤ丶¦£Èõ¥¦VV 0(ißEEEEEðE\(i 0 kuáá¡+++ÑîîÑ}uîùïMMîîÑuÇÇ==ÉÉ=uÑÑuuuáááá}ÑÑÑÑÑÑÑ¡}}}}Ñ+ggï+++ze  0-hßEEEöüTTTTTTÂT TTTTT TT¿ T TTˆÄMuuuÑgššš/ý ýýÕÕùùký»ùƒš/MMMšù»šýÆÆýùýýùùù»ýkýýæýý‚‚æký‚æ¤Æ‚¤WƤ¤WWW¤ÆH.¤!.....zz‚.! m 4o! //.400 \ëVh(Vm V 0'h0-VhV (''''\h' h'\h\ ]'úVV VúV VV V V ¦ ë 0{õõõ4¬g/ýWWW¤¤.ýk‚ϬWÆ‚ýùgÑï/ggšš/ý‚.k//ùkýýkšMÑuÑ+gggïš///ý¤oo°ÏÆݤeõ-ë'VV VVë È\\ë'ë--Èot ­-V õo-V­­h(\\\Vë'ëë(ißð gggg/ÆVÞ­¬Ý¤!Ï-»ýýýýýýýý‚ý¨¤ÝoÏ¬ä¤ææýý‚ý‚zzæÆÏݰ°° 4iiii(Ý ò\ëúV¥Ý‚ý‚æÏ°¸Ý[äæ‚‚‚æ‚ýNÕýÕýÕ‚‚zÝ-ÈoõÈ£ -¸æ‚NkÕÆ[¤ææH¤ÆÆ¤Ýȱú±¦¶¦±ëë'\(iiEE(ð¦­mg¡uá¡+Ñ¡¡ÑÑ}ÑÑ}uÑïîîîÑ}uáÉ===ÉÉáuuuuuuááuuÑ}}}¡îÑîîÑÑÑ¡ÑMï///+îgk!!eõm{-úV\\ii%ð‹ööTT%¸Ñ}}bMMMîîMkù»æÆæ ù»ýý»ùMîî++îî+Mý‚»MMù/ïMïM=áššùùùùýNùk‚ÆÆ‚ý‚ÆÆzÆÆH‚‚ýýk.  .!z.. zomttz!.. k!z ./z4{{{]VV -0  ]{ -ëV\ \V'h-'ë Ýݦ-V V ± ¦¦ ¦ ¦ --- --¶VVV 0õ4 4e¤M‚ýýkï/‚ý!ÝÏýù/ï+Ñkýg+ïk/+MMMkgýg+î+ÑÑîgMgšý..W¬ .Ïϰõ¬VçV --Võ-ë'ëë'ëV 0Ïõ¸°È-V ]õ0{V\ë-ççðßð먚gïgg/Ï-ëz4{© ]‚ýNýHýýýýýý¨ÆW¤z¤H‚ÕÕý‚ý¨W¬Ýõ¶Vëë''ii((4.Ýë\\\õzýýýææ¤Ï¬[äNÕNNýÕÕýÕÕýÕ‚Ï-{¬Ïݰe©¥-õ¤æ‚Nkæ¤WÆæW[ÏÝȱëÓÓ'ëë''ú¥(((Ei(\ßk+á++ÑÑ¡uuuÑîÑÑïMMî}uáÉÉÉÉÉÉÉu}}uu}á==uÑ}}}uÑÑîîÑÑbîMù . /++k¬e°0{0¶V'hiEðö‹öööööTTT½±ï}}+Mî+MMMMïš@Mƒ ƨææý‚Õý »šMîÑMMî’šýýšMMšMîïMî=uïšïšùùýýkýÆWÆýk‚¤zæ¤Æ¨‚.‚‚‚ý zzzz. zz. !.z. kgzgkáug.tooõ{{-4- V-- ---]h00h\' -0(']'\h{¬e-¦V ¦ ¦ ¦ ¦ ¦ ¦ ] ¦ ë ÈõeÝoWý+/ký//šgk/zÆWÆk/šïî+kzýÑšš+gg/¤.gggïgîÑÑ¡¡Ñgggïg.¬Ï¤zkzzÝ4 ÈëëV¥õõ¶¸õ¶ç¥õ-ú-{¸Ýoo õ°õV]¥ e{] h'\V V\(ò(È/ïîg+WO\J!zõe°¥ûæýýýæýýýýý.äϤ¨æýýýý‚ý Ƭ°¸õȦëÓëë\(EEEiiii\-z.õçççòò-W‚ý‚‚ý‚W¸L;XL‚ÕkýÕÕÕÕNNýý‚!¸­ÝÏe¬¬õ¥õW‚‚ýk‚Õæý‚ä°õõÈúëÞÞççëëë'''(iEE(i\0 +ÑÑ}áuu}ÑÑïîÑ}uuá==É==É=á}uu}}uÉÉ=uuá}Ñî¡Ñ}}}uuuggk»šg+! õ{0-- h'(iEEðö%%½TTT½½TTŸÈ u+MMM+M+îM+Mù‚‚.zýýù»ý»ùïÑ}}MMîMk ýšïšƒïîïšMuáMùšïïMùùšNæWæýkýæz‚ÆzÆzƤW!!!zk.kk .k/.z¡kguu/káuá=u/!!!ogm4ot0-  h''-4õõõ \V\\4­V V ¦ ¦ ]¦ ¦ -¦ Vë-{õeW./îšýk/ïšš/‚zÏÆ.kïïM+ÑÑ/‚¤ýý/++M+ÑÑ+g.Ï.MMgïgg+îÑÑÑ+ïgMï/ ‚.Æz°¬Ý ¸¸¥ë¦ë'È­We çi(¥È-Vë 0õ ° 4õ- -õ©eoo4Vë'h\''\òë'È//gggý­–i»/.m±Þ.‚ýýý‚ýýýzW£ú¶õtÆæ‚ýæýæ ‚!­¸ ÈúëëßðEii\Vz¥\(òç .‚ýýýýHõ¤¸¦äÕÕÕÕÕkÕýNýýý.ȸ¤¤!ÝÈ©WýææýÕkÕkHõ£]ú'çç\ëëh'(iiiEßßiiß\£/g¡ÑîáuáÇÑîîÇu}uááá======áu}}Ñîu=Éáá}}}uÑÑÑááááá=ááug+¡+ o m{h\hòEEðEööETT½½½½¿†äÑ/æùb¡Ñ+ïM’îï’Mš»ý‚H.ÕýýNN+¡Ñ+MMšNNùš/kkkïš=uïšïïšùkù‚¤Wýkýýýý‚‚‚zzÆW¬Ý¬! .+k¡++k +gu=áu+g+g.oott ! .zke44¤ k!õ4.ztm{V'h{mh'] V]4°{¦VVV ¦ ¦ ¦¦- - -] V ]-{õW!gÑg/ïMgšk‚WÏ.kïïgMÑkýƤzHý/ï+}ÑÑ+‚¤‚ý+++Mg+++îÑ+gïgïggM‚t¬eõõõÈõ¦Vë õ.W¬ÝiiV-V¦-ëVÈeÝ4È-­õÈ]V-Ýt¬e(h\'V --¥.zùMgïggÏ(ë°k/¤È -‚‚ýùýý‚‚æH[È-¥¸Ïæý‚ýæýæýæ¬õ¶­o¬°­VV h(ðEßi(i('ÈW.¬¦(ii\VeÆ‚ýýýN‚¤WæWXXÆ‚‚ÕÕÕÕNæ‚æ‚ý! õÏϤ¤z°¦õ¤æÆHýýNýkÆõ¶ëëççç'h''h\((EEßEEß((ß/ý kÑÑ}uÇ==ÑM}==uáu}uá=á=áááuuuu}uuáuá}Ñ}}}}}}uááuuáÉá==¡îîÑî»t4m{{- (ðE%öööö%EŸTTTTT½TÏ}ïùý.»ïÑîïïMMMïgš»ý»ýý‚»ù»ÕgîîÑÑ’šùùùï»ƒïïšÑ}šùùùkýýýzä¤ýýýkk‚ý‚‚‚æ.ÆÆý/++.k+zkkzzý /g+ k/ko--0V-kg.+¡t/z.z0e !zm-m-]]VV'ë']VVh¬È V-¦ ]¦ ± ]¦ ]¦-¦ ¦{õe4Ïzš+MMgg/ý.WÏ.ùïšïg++Ñ‚‚ý‚.ý/kýkîÑÑkÆ‚/îM+M+M+g+¡îgïggggý¤W-¥©õ¥-­-ݸ¸-- ç\-{Ý¥£V ÈÈõ¬¸¦-0¥-¥È­ ­ \EEih '((Voz¤Ækg+šMgk¥iÓt.»Ï]]±úýýýýýý‚H[°õ©õõ¸Ý¤‚ý‚ýդݰ©õtWÝõÈ0- \EEEiii(\ë‚zõ'òòç븤‚‚Õýýý‚æææX[æææÕNNH¤æ‚ý‚‚oõe!!‚¬£õWHWÆæÕkÕNä¥úÓ\ç\ëëV''](iEðööEEEß(\(( Ñ !!zk+Ñ}uá==}M}=É=áuuá=áá==ááuuáuáuááuáÇÑ}uáu}uÇÑîÑ}uu++++k°-]ii'(Eö%%öð%%TTŸTT½TŸÂ­MNU𬭤ïÑî++îgM’gùšïšššM++MïïMÑÑMùùïîîÑMïïïïïMïïušMšùkkæÆ¤ýÕækùý‚ý‚‚‚‚šÑukzz....!! kkk/.!!/. o o]õ0oz!g //gk//{e!o4m]Vo ]] h' 'h hhetõ]V -¦ ¦¦ ¦ ± V¶-] - VV¦-- V õ 4Wý+î+M+ïïk‚.W¤ÆkgM+ïîgk¤‚‚...ý.¤kî+/Æ/g+++++++MgîÑÑgï/ïggï/ý.WÈõõ¦££¶­È Vççë\\ ¬°°¦£ V¥ûõõ¥õ¥--¥¥­-]'ii\hV'\\V]¥ ¬!ý-Æï+šï/­(¬‚¤¬ !¸õȦ¦¶ýýýýýææä£ûë'ëë¦ ÆýýææäXõ¸õ°WÆææÆt¬Ý-iEiiii-z‚Ï-òç\ëÈÏæ‚‚ýýý‚‚‚ýÆJLäææ‚ÕNä;Hý‚‚ ¤¸ W¤!Wõ¥óÆä䯂kýý;±Þ(((((\' - ]ë \(ißððöööEEEiòß(£W+kzzk+}u=Éáááuu=ÉÉuÑuÑáá=====Ñîáá===áuÇ}uááááuu}}ÑîÑ}}u}¡¡ÑM++ýe {h\ò(\E%%‹öTŸTTTTTT‹°îUš¡ÚLýMùùšý»šMîMM+ï+îî++îÑîÑšš+++MkšïïïMîïMïïïï}}ï}}Mïùæ¤ýýkkýýýýýýý¨‚+Ñz!!!!z zz . /  +k'(   Vm]0- tttt!z.g et!4-]-]V]0--V'hV-eeõÈ-¶¦ ± ¦ VVVV ¦¦ ]¦ ¦- V-õ °¸¬./MM++gî+Mïšk..zýïMMî+gk.‚ý!¬¬¬Ý‚++g/‚‚ÑÑMM+++gÑîgïgggš/š/‚zW­V¶-ëÈ\ç\çëÈ -¥©õõ- ±V'V ¸©Ý©õÈÈ¥­¸0'' V'''‚. õ¤kk£.šggïggÏ\\Ýgš­t©-0¸ ‚‚ýýý¤¸±ëûûëëú¶ Æýýææä¸õ©…¬ææ‚‚æææzzzoiii(('õ!zÝ¥ëç\¶°Æ‚‚ý‚‚‚‚‚ý‚¤L…HNæÕÕÆõóÕýý .o­°Wz‚z°¥HÆÝ[‚NNý¥òÞç(i\' .t] \ððööööEßii(ß(k‚z‚‚.kuu==ÉáuuÉá=áuuÑá===uá=áááá==áuuuîÑ}u}ÑÑuÑ}’}î}¡}gk+ÑÑk{õhiEE%%ððööööööö%E%ŸTT½½½½T¿ ïšU N£ž‘y󤍿‚Õæ¨ý‚ﬨM}îMšùïïMïïšïMMïïïïïïMï}á=uMùýNýkýýý‚ýýýï‚ý‚zz.. . .... z z/+ko ok 0oee'0t!thõ k¬e-]]-e0]0V\h ]--] {00{ ]õe ­¥ VúV ¦¦] úúVV ± ¦ V ]VV-©eez/+Mgg++ï+Mgg+Mk‚z‚ï+MMký.¤..¬eõ4 Wgg¤ý+Ñ+¡ÑgMg++M+Ñ+ïgïgšgï/šï/æÝ¥ Vúß°]ëë-°È ¥õ-õWWõ-£¶£Èõ°õ\\h-0V\h‚gý¤õÝ/ý/+ggš/¤Vi¥/W{ ݸ¬zýýý‚ýH°¦úú¦¶¥0õ¬æýææ¤;J…©¸ÝÆ‚æýæýæ . 'ßi(iiò z‚z¬¶çõHýýý‚Ný‚æý‚æ;¥äý‚Õ‚HXLH‚ý‚‚¤¸õÏz¤.϶ÈäHJ‚ýNæ¶òòòii(ç'ëVÈzz4È\EöüüüðßßEß((ß(\­W¬Ïzý}=uáÉÉ=uuáuÉáuÑá====ÉÉáÉá==ááá=uÑîî}}Ñ}ïïM¡MuîÑuu /ï/ýz{'(èðE‹öööö%%Ÿ½T½T½ †KŽŽžKÚHMù ¬¨ýù/ Ƥ¤äJõ¶È¬'ïÑšùšï@ïïšššïïïšùùšù/ýšîÑÑ}kNškýýýæ‚/ýg‚¤¤!!z!zzzzz.z.ý .!Ï!/+ õ]!õ!.omm\ktzk t0(4t.t4]'-4o0{0VÓë V] Vh e¸õ­È¶  ]¦ úVVV VV ] ]¦{!¬k+î+îM+++ggMMg‚kšg+ý/‚¬eWoõÈ©¸©°Ï.ý.šÑÑÑ}Ñ++++MggÑÑgšMïšg/ý°ë(ò¶Æ!õ\'õ¸£V¦oW©ÈÝ- ---¥õ£Vë'¶]'VÝ/gggkkgMï.Èi /š¤4ÈÈ .ýý‚æ¨Ý­úëë±£õ­õW.‚‚æÏ¸¸ÝÏݸä‚ýææýý‚‚.! ßßiiiiißi']z‚.WõV\£Æk‚ý‚ký‚ýÕý‚W£Ýæ‚‚‚æ©XÆÆ‚ýýzݸÝozz£¦JÆÝ¸æÕk‚©úëò(ii\ë¶°¤z‚  (ððööðEEEE((–(ßi\ë\\''ë¥záÑš@+šùNïïáÉ=/î=áuáá===áuá}uááuÑîuu¡áïïïîîîÑu}k.Mgšz. hòEð‹ööö%%T½TTTT½TŸ¿½ŸOȤ®ÆÄ‘õäæ®kU»æWJ©…LP¨M»Nšïïïùùùƒš/ùùšùškššýHùšýî}ùï}ÑÑáš‚ !‚zÆz¤z zozõÝ+.VV ze !{t h004]tkt0¥oeo¸0]em{{0- '--VhV4o-ȶ ±VV VVVVVVVV - V --00o.ýg+++M+gM+++ïkùšggMgkýzÝ4 õ0õÝϤ.kîÑÑî+++++M+Mgï+}Ñgggï//ššššššgýW'(\¸Èòë'£¸e-¶ÝWõV ¸È£ë õõ£¶VVV VV©¤g//ÏVz+Mš‚­iëz//.»¤©4¥.Óßý .ϰ±'ÓçÞ ¥eÆ‚‚¨!¸£õÏH.Ï°Ïæýææ‚æ‚.¨¥ißßi((ii]ÏÆÆ‚z¬¦ú¸‚‚.ýNý‚æýÕ‚¤£È¤‚‚‚‚¬¶¸Æ‚ý‚z¬°4{0o‚©¦LÝ©¬‚kýæ¤Ý¸V\((\ú­Ý¤‚‚ýæ!.ðöððEEEEß(iiß(((\'iðEðEiëõ¦û)õ;°;…J»îš‚[¤HHϤýMM/Ñîî»»+uuuÑ/MïîÑïïgÑÑ@gÑšï+kz/ýÆW! h]VEŸT½½TTTTT½T¿½ŸÂ½T•ŽžK›¦RI–ˆ†••Ó0óW;õkî}@ùšMM@ïïùùN»k»»ùùùšïšùý‚Ææ‚k/kÑuáÑgýýýý‚... .. zzz k!e¬ o.]( /e.-- .{{h] 4!m m{m!4]m0 {mmm{ V]]-0{ e°VVVVVVú V ¦ -¦V± V VV --0õ Ý‚/ÑÑî+M++M+++Mg/ïgïM+ýzW¤¸õ ¬.kg+ÑÑ++MMMMMgg++îîÑ¡g//ùkkýkkýkkkk/šïš/Ï-¶0ç\린ݤ¥¶V£¶V ¥Èõ  õ¥ë' V0k/k/g/ 'ïg/MgÝi(ýƤ¤ù.e4°¬ Æ£iè ‚Ýe-ÞòëVõWzý !o°¥0tz ‚[[Æ‚ýýÕýýæ‚­iðiii(ißi((¦©ä‚ýæ¤Ý£¥¬z.‚‚ýkýý‚æÝ¸¤‚‚‚ý¬¶£ÝæýæÆÏÏz­V-ÏÝ-­°¤‚ý‚‚‚Ƭ­ ëëë¶ÝæNýHW° ë\(ißiißEß(((\\''ë\iOOi(ÓO–çû¦¦)ûú…¤HW¦¶õ¸X¸äMÑîïÑÑîïÑu+/ùN¨‚»ý»‚¨Æký¨Õ/kk+g».»zW¬mÓh\ßO––EööŸTTT½½½T¿ T½½½½½Â½ÂºÂTT½‹Ÿ KÄXÈ©ùMgù’MïMï@šš» ý»ýNýùùùgšýýý¨ýýz‚ýšš/kkkkýýk‚ýk kkk. z!zÝek4t!{.gtz-{oz4{\ek0] ¸e!e 04m-] e 40-V'' V]-¶ ëhVVV ±¶VV ¶ -- ¦  ¦ ± ¥0õeW¤¬ ++ÑMM++g+M+++MgMgMgggïýÆÝÝÏÝÝ‚îÑîî++M++++M+M+Mg+++îÑ}M/k‚zzz‚‚ýý‚kýkkù///ïýÏVòߥ°õõ¥¸-ëëë - ¥¶¸Ý-ë¶-V\og////ggg 'õ+ïù\i/k.z¤ ýo°!k»¤õû\WÏ£õ­-ëÓç\V¸Ýz..¨Æ©¶]o¨ ¨¤æ‚æýýýý.ýçßðßiii(\ò(ë£ÏÆæ‚‚!¸­¬.‚ýNÕýNýý‚æ‚ýk‚ýWȱ¥…Ï‚.W¤ eV­õÈõÝWæ‚‚æ‚æ¤Ý­{Ȱ¬äæïî@ùNýHýõ0Þ\\((ii((((iEEiO(ißòòÞë±PÚ£¦±ÚõH¬ëë±¶È¥¸ùuÑšÑuÑ}îùÆN‚¬Æ¤Ïe;°¬[[Ϥ!!!ÏϬ[J{ çißEEEðETTTTT½T½TTTŸŸŸ†ŸTŸTTÂTŸÂ‹èû¨ù/ùïïMMï@š»‚ùù»ýkýùký .¨‚‚‚ýýýkýkkýkýkýký  kWWeo{ë]!.zk.!Ïz.4 gk.t¤/zt4]{{ om ''VVë-{----ëëëV±VV ¦ ¶ ¶ ¦ - ¦¦----õõe.k.gîMgg++î+M++MgggMgMMg/.ϤÏÏ.kgMÑÑÑÑÑÑî+M++M+M+++M++MM+Mgîgšýý‚‚‚‚‚ýýkkk/kùš///ïš//¬V'ȤݰÈë¶© 'ëV--­õ¸-'ç¤/!\t//k/g+ !-\¨šMßÝùkMš/ ÆW!t¸¥©'ëV-¶ëë¶o¤!z‚.t¬¥ë¦4Æýýýýý‚æÕÕ‚‚æ‚Wëßðßi((i(ò(ò¦JÏÆH WH‚ýýýNÕýýý‚ýýýýæõ¦°P£ä‚¤¤‚Ï] ¥­°Wzý‚‚‚zÆæz¤.ýšÑ}}}}Ñ}ÑÑîÑÑõÈú\(\ißEEððEðððß(ßßßiß\iðßòÞçòçú¶£õ£¦úõõÓë뱦ë±WÑîÑ+ïï.‚gùϰÏWݬݬ;Ý;o¬o¬t¬°4¸­¦h(EðöEŸŸŸTTTTTT½¿TŸ‹‹‹½T‹Ÿ½Â½ŸÂ£ùƒîbî+š+gïùý//k» ý ‚ ‚.ƨ kýkkýký ý ýý‚ý ý ýz  ]-¥õE k.!!z!! !o/.z!! Ï{V VVeoeEðEV -eV\ - VVúV V VV VV V ¦¦V ¦---{ ¬‚ýgÑ++ggM++î++M+MgïgM++îM/‚zý‚ýî+îï+îMM++Mg++MgMggM++î+gïgg+/kùù/ùkùkùù////////kk/kýz‚zõ¸õV ¶ëëëëÈõ¥V-ë-¥.gÆ i\!gg/g+zeeëëïkçð­g /g/k.o»¤Ï°õmÝ¥ëÞ'ëÞë Ϥ‚zÏ4¬.4©z..æý‚ýýÕý‚‚‚‚H¥ißði(òò(\Þçòòë£Ý¤.ý‚¨WϤýNýNNÕÕýý‚Õ‚ýH©õH;¦¸Æ‚¤z¬-VV õWÆz‚kýýý+ÑÑÑ}Ñ}}Ñb’MMMïï¥]òißððßßðEðEßEEiEöðßßß((\\ò\ç\¥0­ Võ¶\h ]±]±õ +ùg/.kù.tݬÝ;e4e04tÆo!Æe¬©¸]' h'ðE%Eüü½T½TTTTT½TTT‹‹ŸTTTi£°t/ ýkššï+gkký‚kkkk . zz /kkkkk‚ ýkký k/4--]' - o- W!t õekkk/!h'-{4 { e44ð-]]0'(ëVVVVVëëVV- ¦ -- ----{õ4¤kkÑÑîgîMgMM+gM+MMgM++Ñ+g/‚‚k++/šggM++ggMî++++îîîî+škkk kgîÑ+gïï/ššššš///k/škšïg/¸õ£±ëûV-¸ò(ëë­Ýõ¤/k.m(hzggg -õïk‚Èi¦ýïg/ý//k‚¨.¤!.©hÞ!È'\ç\òÞë£!. ­o ¨± ¬ýææ‚ýý‚ýæ‚ý‚Hzõçðði((ò'ëëçòòò±°Æ.H¨Æ¤HýýýýNkÕký‚ký‚‚WÏz¤­¶©¤¤.-VV]õW‚‚z¤Ý0¥Wý+îÑ}u}ubîbÑÑÑ0Vë\(i((ii((i((ißEði((Þëëçë ¥­¦¦¥ 'ú±¦¦ zÑ+kg¡¡kz /kz¤ooeõ4©õe4¬!oW¬[¬°V'iúEððüŸTTTTTT‹‹ŸŸŸTTT‹E'EE\V]m ý/g//k//kk/kkk ý ...‚ýkk 4õet¤tÏoeeh]00 o.toooo -V]  Vhm !!ooEh-000 '± VVúëëëëV ¦]]]- ¦¦----£õ¤WzkîÑggî+gg+šM+î++Ñ}îšýkùýkg}gïùïšùgM+gM+++M+îîMgïùýkýguÉuá¡=gïgšïggï/ï//šgšù/¬Æ4°-ç\ õõ--°WÏe °t0ßõk+gg/ï/¬Võ(¤/k©ië‚+gšM/z‚.. zo ±(E¤ëÓ'Óë\òÞV tÏ400.ý Ï-£ä¨ýý‚æÕÕæ‚æýz‚äëððß\((\ëëëëçOÞ£.!HýýýýýNýÕNNkýÕÕÕ‚ææHæHÝûõ¬Wõ-VV-4ݤ. ƶë-¥¸¬æýkšî}}pùNùšùš0¦\ç\(((\Þ\\\(O\'\hVÓÓòÞÞ±¥¦V]°­'ë-]V-Vë4 +/g+Ñ+‚‚/ ¤e©Ý m{ õ{m4 ©e44o{]Óhh\EEETTTTTTTTTTTTˆŸ TüŸŸß0©oz.z.!z.. .. . ý ‚ ýýkký . kkk oõÏ!zzz¬õ-­{--et ]]]õoo{V]']]hh{z.oÝ{hö'0{m4]iðÞú ] VVVëV - ¦¦-- ]-000e!ý. ýùg+MMï++++++¡¡¡Ñ}îgýÆ.‚.gîÑîg/ùg/MggîM++Ñ+ï/kgg+=ÉÉá+á}ugššïggïgšïš/šš/ù//ïš.¸ëò ¤z°¥¶­W¤ z¤4õ0ë¶ ëWš//gý¥-Óú.zë‚+gîg/.¬kù‚ý¨Pë–ðèõ¥'V¥]±V±Vë¶ Ýõ- ¶¨ýýt£¶Æ‚ýýýæýýýæ‚‚ýz¶ððð\(çëûúëçÞ±[ ýýýkýNýýNÕNNÕÕÕÕýÕ‚æææz¬ëÞúõ¸¥-V -õõ!°¶'ë]¥¸¤ý‚ÕýšMšùùNýýk¶ë((ò(iß((iii((ii(ii(((((''òë'¦ -¥©-'  -V\¦egMgïkù ý t {eÈ0¸©m Èm4ÄÄÄe°]]Vi(EE%iðöTTüTŸT½T‹‹‹‹‹‹‹ŸŸTòEü‹üE04eeee4e 4e ttoÏWWW¤!zz Ý!¤z. zt°eoe 4e o -4õ004o0V{V' hm 0h(i-õm4o'ðE' VVVëëVV - - --¦- ----{{õoký¤‚g+g+ÑîÑ¡ÑÑÑÑ¡î+M/.Æ‚ý‚MîîMùMgš+++îî+Mkkï++îî+uÉáÉággggïïggïgïš/ïgïgg £òúÏÈȶëë¸kkoÆ.ȱë'\¥Æk/g//g/õ -ò-ùï°¦Ïïggïg+gýozý Æ»z¸'ißèð¦]¶{0¥¶]£¥¶£­±Vú¦¸z ‚룤ÕNýæýÕ‚‚‚‚ý‚°ðððë'\(iòÞë¶úÞÓë eW.‚ýý‚ýNNýNÕNÕÕÕNÕÕÕÕæ‚¤¦Þû¥È- ]-0Èeo{''hhV-ÈÝ‚ýkNNùNýƒkýý ë\iii((i(iiððEßððßi(ii'ë\ëç ëV]­£õ] V-]¶ 'V!kš t!¤..!zo©meÈ­44 {mm -mÄ ­ÈmÈÄ£ ]h%%ð%%üTTüüŸTŸŸŸTTTTTTŸ‹TTiŸü-o4 m em4ottozotttݸ°otz.tt‚.z..Ϭ¬ 4e 4t o eee4eo4õ©°{V- ((V {0 {VðëV VVVV V ëëVV ¦¦- -]-¦---0{õ4¤/îkÝzîÑÑÑ}ÑÑÑ+îïgïù..k/M+gÑÑÑîggïšggMîî+=É==É=ÉuáïgMgggMgggšïïïïïšïïïïkÏÈ\ë-æï.õõ­¸Ý¬õç¬g/šùš+.V¥¶Þio' +M++++/¤Ý¤‚z¨úOßEðöVû-È£õõ-±0¥ë' VëV{¤ý‚ zõÓ¶äæýýýNýý‚ý ‚Ï'ððßò'ëi(ç룸ȣ¥¶]Ȱ¤ææýýýÕ‚ÕýýNÕNÕÕÕÕNÕææ¸¦V± VV¦--È- ë\\\'ëV-¶¥ÏzææÆ¤æÕkNkýÆÏ'\\(iiò(i(OO(ßðöðEEßEiOOi(\ëë\ £¦¦¦V¦­© \ëVVúV{¨k.!e oÝÈõÈÈ000]0£úV¦00-£Ú-£¦±ë(EèiööüüŸ½½½‹‹%‹‹%%%†E†%%EüTTT(-0m{ee0etzzt!.zz.!tWot!.‚ý‚!!t!¸°eeeoo!/ 0ooo.ttzo0{hh(iihiV]m Vh\(Eð'V VVV - ------------0õõo‚gÑï./ÑÑîÑÑÑîMgM++MgMššMïšýkšg+Ñg+++g.¤/î+îÑÑÑÑ+uuáÉáÉ=+gMggggïMgïššgïššššïïï/ïM(({ÆgÏ£Óú­© (¥zg/šgg+¸-±'kzë'¨îïgîMgggùÏe£ðßðö¥-¦È¥0]ëëV\çëëÓ' ¬‚‚‚.ýõëûõ¤æÕýNýý‚‚‚zii(\(ii\Þú°¤Æ¤ÆÝ£-¥HæææýÕýÕÕÕÕææÕNÕýk‚zϸ¦û'---- ëi(h -V­°õ­¥­äÕNNý‚o \iiò(((ððßßßi(iii(ë'Þú¥-¥±ëúÈ¥(\'ëoz¤4È0°°£-]¥]¶]-- hhKú)¶¦]]-yúððEüüüŸöö‹TTŸ‹‹‹%%%Þˆ½ŸüE ­ mo!Weõe4Ï4 4Ýz.ÆÏt!!z‚ !oo¬eeÝeoo°4eoeem m.. .zz z!..!t©{ðöðE(((hVeðöðüöi\V'\ëë ¦ ¦- ---------00{õ 4zgÑÑ+îÑÑ+ïgîîškk/++MMggïg+gggg¡ÑÑ¡ÑgýƬÆk+M+î+uáááÉuÑÑMg+Mïïggggšgïïïïïggïšïïù‚¶­.gze-ëÞ\òð\o ggïšgg.ú{Vç(e‚0ë¬M+ggMgg+îMMû¦õ¶'iðèEðè{-'V ¥£-¦''Ó\\ç\\'e. ý ý ÆõëëXêææýý‚‚‚ý‚õEðEiiçë±È䨨.‚Ƹ úX[Hæýæ‚‚ýÕÕ‚æÕææ‚ý‚Õæ¤°È¦¦¥{¥-Ýhi(i']-oe-£¸ÆkNùýz°õõ''çi(ç\Þ\\(iðßß(iißii(iiûë\V-£-ú¦­­(\ë\\Ó\ ote ¦ o{--]ÈÈ0¥{]V'Ó'hKV ¦¶y-¶û\EEüððððð‹üüü‹Ÿ½TT‹‹%E'i%Ÿ0 mo!eto!..teee¤z..zz‚k‚z.‚ý¤¬¬Ïoeo.zz..z!z....z!!!4ööüEðöüð hüöEðð\V Vë\'V ]-------£-00000{õ e‚Ñg+ý/î+kùï+Mkýkšïî+MgMîÑîÑ+ÑÑ/ýý‚Æ‚+Mgïgg+Ñ++=áuá=Ñ+MgM+ïgïgMgïïïgïgïïïgïg+Mïgkkùùïý°¦ÞißöðÈ ù/šMï©ë-Óß'¤-'Ýïîg+gïg++g» Þ¶ðEßh h - ëççò\ëÈÆ ý ‚‚H¸ëë¥äææýýæýý ¬'ðöððð(ë õä.H‚ýÆÝ­£È°¤zz‚‚æÕýý‚ææ‚‚Õ‚‚ææ¨äÝÏϬÝtÝV((ißi\¤‚±õä‚Nýkýzõ­õ-Ó\((((((ii((\((ßii(i((ûÓçÓ¦£¦­-¥ò\\ç\'ëçe]V--õe¸m0£õ]VV]0£ ÓÓ'hhhú±V±V›\iE%üööö%%ððððüüö‹ö½TT½½‹‹‹%E%öð%ö-õ Ïeo!z¤oo..!t¤to !kkkk .zzze 4¬tt 44eeooee{e!z/ e4tz e!o--(üüüöðEöööiEööðððððEEEi'ëë''Ó((\]-000000{0{0õõ 4 ÑîggÆ.+M//g+g/kï++}ÑÑÑ+g+ÑÑÑÑ/ýÆW¬¬‚ýgggýkýggMî++ÑáÉ=áÉá+î=uîîMgM+ggïïgïggïgïgïMgïggg/ùùù.]ÓÞiöö'z/ýš/Mïï+¨¦¦'ߣ4ÓÈk+g+g+++kýgoúú(ßèð'¸\\ 0]'\ ÝÝÈ V-¬.‚ý‚.‚.H°ëÞȤæÕæý‚ý‚H¦ðüüöEEi(i\'h £¸WÆ.‚ý‚[È£©[.ý‚‚ýý‚‚ÕæÕÕÕýÕÕÕÕ¨H‚Õ‚ý‚.¥ç(ißi(ÞVõݶë Hý‚ýýk‚-­­ '\(((òç\(Oi(Ó\iii(i(\''çú¶¦±È-­È'(('\Þ¶e ¶]¥£---¥õ­]VV ] û'''ë'›±±¦¦›hß%öüüü%%öö‹öö‹ŸŸT½T½‹‹‹‹èhE‹‹ððöE¦ eÏ!¤z4¸e!!t ‚z.kk.t¤ eo4 õ o zzt .z . 0e4m0 4 EüððððüöüüEöððEEEðEEE\ë\ò\ ¥¥¥000È000000¥-0õõ4kÑMÑ‚zÑîÑ}îM+}ÑÑM//k/++ïù¬Ýݤý/+++g.Ï.ù++ÑuuuÉ=áuuÉáuÉ+î+gï++gMMggïgïïïšggggMïïggg/ggš‚©±Þißð¬šÆïgMggg°£ß­-¥‚MMïgg+Mgïgk»// -ßEðßt(i('\iiiii\¥Wzz- ­¬¨ý‚‚‚ýýÆõëû¸ÆæÕæ‚ýý.(ððüüöðßiiiçë±õÝäæýýæÏ¸È­4W‚‚‚‚‚‚‚‚‚‚ýÕÕýÕýÕÕÕÕýÕùk‚‚Ý 'çòiiV°0'Þ¶¤kN‚ý‚ký¬È°õ ë\òòò\Þ\(iO'çiiEiòÞÓ''V -­-¥­i\\ò(ò((\ ]-V¥¥ V ¦- VëhV¦-¶]ë'hV ¦] ±ÞEßüöööö%ööŸ½TT½½½Ÿ‹‹'%%‹ö'4ttzt-{o!zzt¤!!z!. ztoeõõeõ¥õ­ z !/ ..õzõ0](ðöüööðEiiEEß('\(\\ë ---0¥0-00È0--{{õ ¸eÑÑÑ+Ñù¤gÑ+Ñ+gšïgîî+gšùùk‚ÑÑîM//H‚k/////‚Æ‚H+++gk+áÉ=ÑÑáá++MgïgggggïgMïïgggïgïïïgïgggggïšMMïMk4ëòßððõk ¤gggg+/úVëððiçúÆg+g+MïMï+ý»/¬°¦iß– !ïïii\\(EEië-4oeõ¶ëȨ‚‚ýýýýW¥Þ¦;æææzýý‚Ï ßöðööð(iii((çëú¥¸¤ýýý¤[õ£È°ÏÆ‚‚æ‚‚Õ‚‚ÕÕÕýÕýÕýÕkNýNùNk‚¤Ý©¶ëõ\ç¦ä‚ýùšï++‚Ïýkz \ç(ç'(i(\Ó(ßßEEiëëV¦£È]-£ë(\Þ\((ßi(V]V¥]'ëëV'\\Ó- úë\\\Þ\Ó'V ) ú(EEö‹üŸöö‹ö‹ð%%%ð%èðE‹öŸT‹‹‹'%%%üO£meootoz4m tz.Æ.. ¤tto!.¤z.ÆW¬°{õ4õ õõ 0o { 4o4{o. .e k!!õt-{4e- VöüüüüEEEi(iEEEEi((òÞë'' £¥¥£--0-¥0ÈÈÈ­È0¥õ ee+ÑÑ¡+k+g.MïïM+MšùM++ï/ùùk‚ugïïggù‚.zzHH‚/++Mý‚k‚+uá+î+MîMî+gïgïgggïïïïgïggïggïgïï++ïg/ä0iöüú©.ïù!š+gï+gëëiið-W++Mg+g+ggg ý‚/ýt4{]'ë g+/iii(iEððöðß\¥W4õ-ë\òÓ£W¨‚‚‚‚‚¤±ÞP¤ÆÆÆæ‚‚ýÏúßðööði((ii\\òëú¥°W¤Ï¬¸­Èe¬¤zæ‚ýÕýÕæ‚‚ÕÕÕNýNÕNN‚ùkýNNùýzϬÏz.Ï]òÞJkÑuu}uu Wzk­ V'\ë'(ßÞ\iEEß(\Þë¦-¦]ëë'(('Þ'Vh'Þç(ië¶ 'Þ''ë\('ú''ç\\'žûúVû'Þ(%ðüüüüöð%ðð%%ð%ð%%%E%ðö‹ŸŸŸŸŸ‹'%%%%üE 4too¬o! .!. .z!e¤ !!!ttemm°eee]V{z.em o oõ !eo{']0 ðüüüüüüðEEEEiiißßi((''-¥-¥--¥{ÈÈÈÈÈ{õ­0¥--Èõõk+î+¤/¤.Mïï/ùïï/ùùšggg/ùkk/‚guuÑîggïk¤¬¬¬.k/gg+gÑu¡==ááá+î+MgM+++gïšïgïgïïgïïggMgggggïïgïggg+++/‚­Þ¬Ïï/z/gïgîkúúëißߦýï+ggM+g/ýùkk WÝe©£ ïMïk\((Eööüüz.oõ£úòii£¸ä!!¨.‚°ëÏ¤ÆÆ‚‚‚‚¬ißðEii((\òëëëú¥õ©õÈ¥¥¥õ¬Æ‚‚‚ýÕýÕÕýÕÕ‚‚ýýÕÕÕÕNšNNNùNkNÕ‚ý‚.o-ëççÏu=É}/++Ï­eƤ4 ¶¶ 'Ó(i('\ißEßOOO\릦¶ë(\ð(ÓVV'\ßÞ]-ë'\\\(ÞÞ\((O((i(Þžûûhž\iEüö‹ö%%%ðððð%ðð%%%ð%%ð%öŸŸŸ‹—Eð\­©e¬ote ee!.zWt{ez!ättWtoÝoo4eoe ¦õe4{]tmmetk 4eeV\h\ðüüüüöðiiiEðEEiEßii((\ç'ëhV V VV¶¥£¥¥¥--£-]V ¥0 +Ñ+š¤ýz¬+gšïùk//šùùùk/ùšÑÑÑîk‚‚‚k/ký.ýzkááÉÉ==+uáÑïMî+M+î+MïšïšïMgggïggMMgMMggggïïïïM+MkÆ.­õo .ïù.kïMg¬ÓÞ(ð\‚MggMMggïgý‚gý¤ooõo»MMïš]\iEEðüð\z!ÝÈ-(i(ë- ÝÏÆ.Æ¥õÏÏϤ‚‚‚ýƸÓiðEðEi(((\çëëëëë ¥¦V¥Ý‚‚‚æ‚‚Õ‚Õ‚‚ý‚ÕÕÕýNNNùùNÕNNNNNýýýze- ë-š=á}ý¸¤t 'ëÈõ­­-V]- ë'ëiß\(ðßi(ëú¦¶\ßÞð((hV(ißßV]h'''ç(\\\\i((iO((òÞ'ûKžKú'–EEE%%%ð%%%%ð%%%ð%%%ðððè%%%ð‹ŸŸŸ‹ŸŸŸŸ‹‹‹‹‹%üi{¸eo¸meÝ!zz¤!¬e]{z!ÏoÏtWo¬ ©{¦0e {-omet k 4z!emV]eõ-h(öüöüüüöðEðööE((((iiEßßi(((\\'ëhVVV ¶ VV ]]]V-{0¤g+î/‚‚/WýM/ùïMgïgï/ïï+g}+ÑgïùkkýÆýý.ÆH+ÑýuááÑ‚HýýkùgM+î+ggš/šš/šïgMgïïgggMMMMgïï+ggggg‚4©¸õû£šš/šMïMk­(ð°+gMMgk/¨z/.‚o¬++g+gtiðöüE ]'çò(ßißðßòÓ Ï.o¥ o¬¤æ‚‚‚Hä¶iððEE((((\'\V ëúõÆ‚‚ýý‚ÕæÕÕÕÕÕÕ‚ýÕýNNNùNææææÕNNN‚¬­0Ȭù}šÕW¸Ý¸ëÞëë-¥È¸{ VVëëÓçðò'''(ßEëë¶£¦ë(ú(iiçç\' ]-\Ó'±{{--¦'Vëûë\\\çç(O(ÓúV± ±'(iEiEŸi‹‹%%%ðððð%%%%%%%%%EEEEöð%%%%‹Ÿ‹‹‹ŸT%ŸŸŸ½‹‹‹‹T%è0{-{4e4¸oW!zzzzz.zt!¤‚0­z!ÏeetÝm o00z {{t4z ]oe4-h{- 0öüöüEEððööððði\i((ç(ò(ò\\'hhë'hhVVV -----{04kîkzý+‚‚/kùùïggM++ïš/gM+ggÑÑ++ÑÑ+Mšïšùýkùýkg¡Ñ==uMuÆÆ‚ýkkùšg++MMgš//ššššššMgïïggïggggggïggïgMgggMW¶ (iõšg+g!Óiß©g+gšggý!Æ.Æ!k»ýkz°Ïkïgï/ V(ðüööði(ëë'çò(iißEEEEEEi(ëe ­õ4¸¸Ïæ‚‚HƤ'EðEEððEiiii(((\\\\\\'ëëë-Ïæ‚ý‚‚Õý‚Õ‚ÕÕ‚‚‚ÕÕÕÕNNNÕä;¤NNNý‚õV¥ÈWÆÕšÆ¤Ï°¸¥ççÓú¦£­©õ-ëëVV'ði''''\\ië뱦çii(ii('hë¶ 0­4¸-£V(\ë(\(\(ò\\iò\\((Óh¦]Vhh\(–\E(Eðð%ðð%ððE%%EE%%%%%E%ð%%%EEEEE%E%%ðð%%öö%(‹ŸŸŸŸü -4 eeo!z!z‚‚z¤‚z õ.kÆW!to¬o4e4 eõ4/40o oot z0moe04iõ--00õhüööiððüöEEöüðiii(ë''\(ò'ë'hhë'ëV --£{0õ +gz‚ï/‚ý/ïMîggïšgggM+gÑ+++g++++gáá+á+áuý.k/ùkýkïMMggggïïïšùšššïšggï//ïïggMMMggïggMgMïM+ïM‚¥'ßß(ÝgMgM++k¸°-iß‚g/gkýkýk/ýWW¤zz»k/.oõzMMgMM++ï!o (ißöðði(''(((ò(ißßEðEEEii\V {õ¬¤‚æææÆ¬­iððEðEEi((i((\'ë\릸Ƃ‚æ‚Õ‚ÕÕý‚‚‚‚ÕÕÕÕÕùùNæPJæùýÕ¤ÈëhV£/ÑšHÏó°0Þ(ÞÓV¶¦È¸©-ëVúú(iß(ëëÓ\륦'(iEi\\(\úV]0 ]­ 0-ëëh\('iO\\iiÞ\(òëh\Þ'ÞÓ ¦Vû'òV'ðÞˆ‹E%%%%%ðEE%%%%EEE%EE%%%%%E%EEEEE%EðEè%ððüŸŸ‹‹‹%i‹Tü %Vh'00me¬W!z¤!z .. ¸°//.!!!tto4ee4 z to!k! {VV{]V-ëhoehðöEEðüöööEEðEEEðßEV\\\ë''hVV -0--]-.k/gïýkš‚ïšgMgïgMgg//g/ýM+Ñ++îÑ+++ká=ágýkïš+//ùkk/gMgg+g+gMgï/kýkš///ššgïMgggïïMg+Mî+++ùÈ–ò¬g+g++HV¸ OiÝïš»‚z.z.kýzz/ù‚! e/g/ggg+k(\]VEEßßë\çç\\ò(iEðEEß(ii\\\'V¶È°Ï‚HææÆÝo]EðððEððð((\\'\Þë °z‚æ‚‚æÕæ‚æææ‚Õ‚‚‚ÕùNNæõ)‘äNÕý϶hëÈgš¬Ý;…ÏWÈßßòë¦õ¬ ë úVëçiði\Ó'''±''V ¦'\çß(ßi\Vú±]V]'\Þ\\(ð(ßßß(i'\(\''ž ¦¶ û'O(%ÞE%(i%%%ðE%%ðEèE%EEE%%%EE%EEEEEEEEEE%è%%%%%‹‹Ÿ‹‹‹ŸŸTü ühV\]0m4ot¤!¤¤.ý.z­og/k ‚ztzkzett.0mt!!zktmeom]0h]z¦0o£\\iðöðððEEðEßiëç((\\'h''ëhëV  -----0õ .‚+Mkkïgš/ïgM+ggg//¤z.‚Æ.kk.¡Ñ+kggÑ+Ñu=Éu+áÑïï++¡g+gggï/M+MM+ïï/kýý/š/kýý»ù//šïgšgïïMMM+gïM++ggggÝßO(ç.ï+g+M+¸-'(ë/î++ùùg/ !!¤W ïk ‚WzšMgMMMïïii(m4 ß' Vhë'ßEðððEi((\\\'ÈææHææWÝÝVßðððEEii\\h Vh\\ÞV°z‚‚‚‚‚ÕæzHæ‚‚ææææýýkæXúúÏù‚æ¸ë'ë-°kÑ+HϰϬV(ßiòçëëVõ°Ïõ V '(ßßði\'ëh ûçÞ£¥¦ÓÞ(ii(((hhV-]¦'ú'ë'òðß(ßi((\']ë\hûûû£¥£\ðE%çiiO(EEðð%ð%%è%EEEEEEEEEEEEEEEEEEEEEEEEEEE%%ŸŸ‹ETT '--õemõ!z!!‚/ý.Ý0tg//ýzto!ggo/!m0tzk// ] õV V\õm4]  \'ë'ë'\\\(EEEEEðß(i('((ò\Þ''ë'húVV -----õõõ4.ýgMï/ùMggï///ý.ÆÝWzÆ! k+¡gk‚ÝáuÉÉ=¡áá+/gÑu/Ñ¡ï/ùšgš+î+gïïš kùùùù//ùù/šïggïggïggggg+gggg+++g¨\\(°ùg++++.È òõï+Mg+gg/ý.zo¸W¨/k» ùMggg++ggõ¦-ÏiEE'] ](ðöEEð(\\ççú­ÏHzæ‚HݬÝëßðEEEßi(i(V00-]Vh'\\Võ..‚‚æzæææ‚‚æ‚æækýý‚±ûäý‚¤Èë-ÝÝ+ÑM‚ÏÝ϶òßiVëëë¶°¤zo]ë''ú çiiðiò''h±Vë' ¥('\(ßiEi(i(\'V VVVë(i\ii(ißißi(\± V'ç\û]--h\ðEEöE%%ð%èðEEEEEEE%%EEEEEEEEEEEEEEEEEEEèðö‹‹‹%•EEEEŸ½Ÿ TTi Veõtttz .kkz°.k////z!t!.ze{0o {0kg//m]e4o{]4¸¦4£\(\V4 ißEðEi((iò\\\\\''hhëëVV VV -0õ 4.ýï+kï+g ýk// ‚.Æ.¤t¬¬4z‚‚kggugýÏõ-áuÑuu=ÉÑgMu=+ÑuÑùMgï/ùšgggšùýkýùïï/kkùšgïgïïMggMg++MM+Mg+M++M++/ Ói¨+/MgMîgg°ò'.gg++M/k‚zÝÝ4ÈÏWùš kg+g+îMgggo..ƨÆÏ£'(EE(m m{ V-hiððöððEEi\\ç\\ÞûXäHææ‚W¸ä°òðßßßii(]]\\\h0eW‚‚‚ÆæHæÕæææ‚æ‚ý‚NݦëÝý‚¤úëÈÏo°Ýk+}š‚ÏÝõi(¶ëëV¸z/z¶\ëVVë\(((((\'úëëV'\\'(EEi((i(\hh\(\((–iiiÞÞÓë] ûççh ]] úëEEöèð%ð%%%%E%%%EEEEEEEEEEEEEE–ßEEE%🟋IVEŸE\ŸŸŸ½½‹ETTÂTTT]m­{ ot!kkï/Æý/k z!!k!eõ{{4 m zz/kz  00\h'-­tÆe(((i(ç']hV0{V'''h 0hV\\(Þ\'''ëh --- V ¦¥{õõmmõ ¤ /ïùš+gïÆÝ¸¬!¤oz¤zo4z‚á==Éá.!ÏÉÉÉî}á¡+ggggššgkkùùš//šùù///gïïïggïgMgMM+MMggg+Mg++++MgMÝë(g+gggÆÈëõkgggïk‚z¤WÏϤÝÆz.k»ï++Mggïïš.‚‚‚¨ÆÏ¥iE\- h\hV0'iðððöððEß\çÞ±Æz‚‚ư¬z¦(Eßßi(ii ] '' ÆæææÆHz‚æææææ‚ææý[±û°ýæ©V¸tõ°°¬z++îîý°VV¬¬õ¸Ýtýkk¬¶ç\Óë V'\(ÓVëV±'\ò((ëßißßßi(((ii\hh'\'\\ç((('\'ú¶ '\\'V¦¦¶¶VEEEððöö%%ð%%%%EEEEEEEEEEEE––EEEEEEE%‹‹%\'ŸOŸETTT½ŸŸŸ TT Ÿ õeeot! ///+ ýk .  toomõ¸eozk.!  0-- Èh(¥!{ßðE((\\\h']-{Ýõ eV\''' --£-¦----õõõ .ýš++/šggï/¤0£ eõõ ÝÝÏtW!guuá=uu+. ¤ÑááÉ=¡u=uÑ=á}M+MgïMgïš//šškùùgù»kk//ïgïgïggggggMg+M+g++Mggî+î++gM.'(kgMgïgïï+š.ý»ïgMggký‚‚ ùï/¨.‚ýMgMgïgï/.‚‚ .Ƥõ±iiEihVii\h---'iðððüöðEE(çÞÓûõÏHæ‚æÝæÝòßii((ii(ë''Vh'-ÝÆzææÆæ‚ÕæÆHæ¤W¤‚W¶ë©ÕW£°‚õ£õe °ÏzkM‚Æk‚WÏW¤¤æý!È-\ç\VVhëë\\\úV ¦ \ç(((\Óii((Eii(Ei\'ëëhh('ë\òçÞ\' \\\\\V]] ißEEöðððüö%%EèE%EEEEEEE%%EEEEEEiii–ˆEßß%Eöi%•TTTT½T½½TTTTTTE] m4¬t!kš/g¡k/ k gu/otooettk/gg e]e!{ m4t¥ -z0\ððððEððiiii\\\'V- 0 ''''ëhëë -----{õõ4 ݤ.k+ššïMî+ÆÈ£©44ÝÏ4oÏ +=É==É=ÉýëýuáÉuáÑÑu==á++gMî+Mï//gMMgïïš/kkùùgMgïgïïï/ïgMMïïïgMg+gMg++g++++M++g ÞÞkïï+ïgg+++gg//ïïš/kk»//Æ!ÆÏ.z.kïgMgg+/. ‚¨Æ.Æe 'i({ 44(\hV-Vððööööððß(\Þë¶ÝH‚‚æ[¸¤‚Ýßiii\Þ\\(((((((\\ V ëV­ÏæHzzæ‚‚HݬzWݤ¤zõú¸k¤Ï¤õõõÈ©o ÝWýkkg/‚Ƭõ­È££©õ¶¦ '\VV Vë'ÓVV¦ VÓ\(Oiçi(((iiiiòißßß(ç'\((ißiÞVë\\Þ\(hÓçÓÞ'hV]¦V((OEEðEEEèE%EEEEˆEˆEEEEEEEi–iEEEEEˆEEEE%ð%öŸŸi‹T%TETTT½TTT½T{e!¤oot!š//ý++ggg‚ý kuueÝzWettk++ ..gVe{oe44-me -õÝ-ðEðEððE((ßEEEEß'V t0ëç'''ëëhëëhëëV]-00õõ{õõ©4e4ot¤k+ÑgggîgMgÆ©-¥Ý¤¤ݬ¸Ï¡áá=É=uuu‚WgN+Ñuu¡áÑ===Ñîî+Ñ+gg+g++MM////ù/šïgggg/MgMggggMgMgM++g+M++++î+ke++gMïgï+++WÈ¥zïggšù.Ï ».ÏW ‚/Mg++ggïgšz..‚H¤°Èë Voz (\h iðEðððððEii\\Þë±õ¤æý‚Ý¥°z‚eiii(('\\\\\\\\hV'h ÆÆææ.‚‚Ï¥õ¤¬¸ÝÝ‚¸-°ýz¬È ­õ0õetzW ©¸ÝÝÏzW¸-ëëë\ëç¶ëë- ë'ëVVV úë'húV±¦±çò(iß\((\''\(ii((iiðßßiòißißE'''\\\\Ó'\''''Óëhú ] (O(iEEEEEEßE–iEEEi–E%%%%–ŸŸEE%•'\—iTT‹%ŸT½T½E]mtoÆz ù/g/k‚!z..¡ágz4ee.z/ .k/!ttzo]04 e-m]{ ¥£{È-'(ðððßE(((EEißEEEi\' Ve '\'''hVëhë -¥õ¥0È{õ e tW‚ggggM+îkõV¥°Ϭt¬oz¡ÉÉ=g‚Ýý-¬+u+uu}áÑÑ+gÑÑ+++ïMMMgïg//k/ïïïMïgggïgg++++gMMgîî+î++gî+»+ggg+gM++M+.û'Þ'ý+ïgïgk!° t/k.zï+M++ïšggWz¨.WÝÆ°VVh-{eoõ('(EEðEEEði(iòòç뱦X¤‚ý[±¶¬‚z­\(i(i((hhë\''hëë °Æzz.‚‚H°±È¤­ ¸¤õ-Ý ° È0­õ¤z¤¬Ý¸°eo¬õÈ ë\çç\ççÞ\VÈ ë'ëhV] ëVVV'\(((ò\(((('\ò((((ßßiii((ßßEß(\\\\\'\\\\\ò\h'''h]- iEEEEEEEEEEEi––iiiiiiiiii–iiEEEV%E%‹‹èO%E—ˆ%ŸŸ½TEŸŸTT½TTTüö{et!z¨zz..//kkoo/á¡.z z 44m{e{V] hhEöE\ii(ißðððßE\h(Eðß'\ë-h'hh'ëVVVV]{0õ0{et Ï.‚¤zš+gMgÑî+++ýõVÝݤ¤zÆuuÉuýkškWVõýî=u=Ñ=+}Ñ++ÑÑ++îîÑî++gýký»kšïïïïïgggï+ïššg+M++++M+++++M+î++g++gïg+g+gggïï+©\\z+gggM.Ï©hõ/gšùgk¨++gMggï/ WHýÆo¤°\(((i(\\' ]\(ððEEi(((ò\±£¶úL¤Õ¬úë©Ï‚z{iò\\ëh''''\\V©Wzz‚‚欥ÈWõ-­õõ-t°h0{{È¥õÏ!¤¬Ï¬¸õ¸¸­¥õ±ë\çç\ë\çëëõõ ëë'ëhVúV VVV'\Þ'\((''\\'\òi(i'ë\Þ\'''\릱ò\'ë¦VhhÓh¦ ú'EEEEèèEèEð%Eiii((ò(((iiiiiEEEEE\%%%i(ˆEüüme{e¤z..!!.š//zo  T‰‰T\] ..- Viiöüöiißð\(ißißEi\i(\' '''hh V - ]-0õe-4 oÏÏ!¤!!k./Ñ+++++‚Wõ¸¬¤/ùÉ==u!  \ë!Wg=áu}îî¡MîÑ¡ÑÑÑÑÑ¡¡ÑÑîgk.¤‚ýýk/ïïggggggggggM+Mîî++++g+++++++îîMïgg+Mî+MM+gg© ȸ.ù‚t°­û¦ïškk/ ïM+gggMggšù-°¤ý!­äViEEEEðEEi(\'hi((Eððððßii(çòÓȰ°¦ë[‚ëÞV©¤ý¤ (((VVhë''h\\'Ȭ¤æzæÏ© ëÈWm00t' ¥ÈÈÝÏWϬݸ{È{õ­¥È¥±ë\\ëëëëú£°õ ë'ë¦]¦± ¦h'hëVh\'\h\'\'V]]-Vëë\ëë' h' ÈV V]ûÞ'hû'EEE%%ðEE%%%èEEi((i(((((i((iiiii–EEEEˆˆßE–ç%è%ˆ(\E‹ŸŸŸŸ(TETüüEo4 44Ýzz! ////! ohhü‰ TiEöö(]z/z4 'Eöüüöðööð''iððð'ë\(\'iißi\(\V '''VV -¥È V 0]{õe4¸ 0 4©4oo¬¤!!oýýg=ÉÉÉáîáÑu==ákÝÝ‚gáu+ÉႬ‚/H ò¦Ýý++uÑî+gîï+++ÑÑî+ÑÑ¡¡¡}ÑÑï‚Æ!»//šïïšggïMMgïMggggî++++g++g+M+M++++++ggM+î+ggggg+©°‚/ý¤Ý¸­Vë\ýïMgù .ùî++MMgggïgš/¦¤äú±Ï4(EEEEii((\hh'\((iEððöððEß(\\ë¬Ï¸±°‚°ëÞÞ z.(\V(i(\'VV''ë h\ë­ÏzzÆW­Vë Ý­00¤zV\---È{õ¬Ýe¬Ý©­¥{­­ÈÈõ­-¶±ë\çëVë린°© ë\\'ëV ]]ë'V' £\ÞVë\\''ë'¦' V V± ëVVVVV V-V û0¶ú]±úhhh'\ðð%E%%E%è%EEE(ò((i(ii(iiii(iiˆˆEEEEEˆÓhi%Eèi苟Ÿ%TEŸTTTüTWtoeot!o +uuuá 0ü B ‰T Eii(ðüð'((ðüðüüðöðEðEi(ß(iðððiëÞ(\'iii(((\ë'ëhVVV õ- ¥--{40õ 4õ ݬ4 eetz!ý‚+Éu=ÉuÑÉÉÉ=É=¬/g==Ñá/õ°/¸ëiiÞ'¥+=ÑîkgMM+ï+MÑÑ++ÑÑÑ¡¡¡î+gùkšïggïïïggggMggMgM++++++M++g++îî+îMMgMgg+++g-­­£ ûëú ú±­!+++M/kùggggggMgïgg/i±õÝëõ ßii(iiihh''\iððEððEEßi(òV ÏϤÈȨ[úÞò¥¤z‚¬V(\ V(ië ë'ëhVë'ȸ¬¤õë\ëVÈ]­ V0V -È¥õõõõe°õõõ­­­ÈÈõ-V'\\ëëëëúú±Èõ°°-ë\òò\'hëh'''V V È ë''h\VV]hV'ë'ë ]]0]£-V-0]]õ4{VV ]±''hûž(EiEEEEEEEEEEEE–((\\(((((i((((((((iEEEEEEiEò\%E‹‹‹Ÿ‹E(T‹ETT½½üT].z‚.to/+..¡áá=Éá/(‰ ÂTT ETEiE((EðööööüðööEððööððiiii((ðEi(''''(ii(((\\'''ëëëVõõ­- ¥-V{­-]0õ 4e eeee¬zÏzýguááÑÉ=uuuuuÑg+¡É=ݸk¨\ðò\\ëÝááÑkkï+++Ñîî+++++îÑÑÑ}Ñ+gg+gMMggMMggïgM+ggg++gMM+M+gM+M+++î++++++MggM++ïïMMM‚û'禸tz.z.‚/++g+MgM+g+MMgïšššgïùE(V°¥Óòë\iEii(((h'\\\(EðööððEð{¤¤Æ¸¦WϱÓòò'°z..Ýë(] {Vß(± V Vëhh'ë £¸¸¥Vòç\ëV ­õ -ÈVV -¥]--]0­ e4{¥¥¥-È{''\h VVë¦W¸ÈúÞçççëë\\\\ ¥]- 'h'h V\ëhë''('\\'ëë\õ-¦£ ]¥-©È-0{- û]''ûhEiEEEßEEEE((\\(iiii(((ò(ii(iEEEEEEEEEE%\%T†½ŸüŸöÝ/. k zîᡚ.k .šî+/k]‰  T‰Tð((EEEöEEEðöðöðüüEðð(ß(i((EðEEð(\'\òißi((ç\(çëëëëë -È00 --V¥¥]]]{4õ{--{4ee..Æ‚/+ÉÉ==Éáu===ÉÉÉÉuuÉÑ=ÉÉ++È‚gõò((ò(õgïýù/ýkïMï+ÑÑÑîîîgM+++¡¡¡ÑÑÑ++g+gggMgg++++M+M+MgMMî+++g+++M++++M++îî++MgMï/kšMïïï!òçOo/š/¨g++g+ïgïïk/gMggš¢ggšööE - \((i((Eih'\iEðöððððði-oÆz.o¶¬W±Þçò¥W.zÆ(iÓÈ{ \ßð(\ë -{-¶V'ëV-õ­VVëëVõÝW¸ V-¬eõ 4e{--{õeõ{È{ \(\\']4¥£¶¦û¦ÝÕÕæÝ¥¦±¦££¶((' ±± -¥õ­]hh'h\ë]]\V] 'ë\ë-ú'V-ë'ëë±¥¦ mm V--]V±]±'hûë'\(ˆßEEEE–EEi(\Þi(((ii((iiEEEE%%%%%ŸŸˆ½ŸŸT%%TŸŸŸŸ 0{¶]-ç'! !-eg/kk4 g+ggü  öEi((EððöðEßðEððöððß(((i\ëh\ßßßðië\ç(i(((òç\çë'ëëëV ¥ V¥-¥-- ]--e¸0-- o¬W‚./Éá=+šááÑ+îuÉág=ÉÆ¤Ï/zÓiðò(Ægk.kkk+k‚Ñ+MMî++M++î¡Ñ+î+MMî+î++gM+++MM+M+MïM+++MgMîM+++++g+î++gMgge‚ï+g/šÏ\\\È!¨. ¨¤»g+gîMg++g/gg+Mgggg»!ððEE(ii\(((iEiiE\\i(\\iEðððððð 4o!-z±òòòëõW‚.Ýëßiú¥õ-ëòiòçë¦ÈȶVVV ­È-Ý¬È ëV£õÆýÏ¥V¶õ¤¤WÝ!z4 mot¤W¬ooÝ{i((h0 oo¬Ý°äæùùNNH䤯ÆÏÝ£çißßi(((ë±¶£­] h' 0'('úVçë (£ë\'V]¥'-È0-''ëhhV'h'h'\EEiiiiiiiO(\\O(((OiiEEE†%%%ŸŸŸ(T\¦4tz ztÏýz¤ {‹ß°!¤ÏE4]òT T TöðEi(ðððððEEiEðEEß((\ëV ðEEiðß(çëë'ë\(((ç\ç\\\\\ë--ú ¦ë V ë ­­ -V-¥{{-õeÝoW.+ïáu+MMM+gM++îÉ+}+o‚Égkšõòiëß\Ï+‚.zkšk‚ýk!¤+//gî+î+Ñ+îî+gM+MgMMM+++g+++++++Mg+gg+++++++gî++î+M+M 0 ¬/¢ï-\h¤¸ 0V.+ïMMg+gî/ïgg¢/¢g/» \i((i(((\E(\ið\h(i(\iEððððE(-!õ!±(ßiòç¥W.z ððßòVõ©¥ëòiiçV¶¶ -­eÝ--z.¤¥ëëV£õõ£ë0Ï!oÝ!.emm oÝÏzz!.ýý/-'ë' õo‚ùùïÑá}ÑîîïïùùùÕHW¥ðððßððði(((((''' ('\V\\¶Vç(Ó-£0¦-È0-Vë''ëûúV'hi–iiiiiiiiiOi((((\\\\•(i(EEEEE%%%%%‹‹‹ŸŸŸŸŸŸ‹½Ÿ Ÿ\0 …00¸]üüEÝùk % TTT%üüüT T TTðððöEðEðððEißiß(i('VV] -Óißi\((ë'iëVòò(òç\\ç\\\V¥¥--ë Vë - ------0{0{õ eÝo¬Ï¤.ùk+š++Ñî+îM+î+Má=É=uáÉuÏ\\(¤zzW¤.. ¤Ï.ý¤ý+++g+g+g+îMÑî+g+g+î+++MMMî++Mî+++gïgMî++M+++Mî++g+gg‚JW¤ Ýù.]ò'ÞÞP0­m0Úg+g++g+î+ggMMg¢¢gk¨oÈ-ë'h'h'h'(00Vði\(ð(h\iii(\iEðði 0ðii(ëõÏ.ÏßððßçV0õÈ \i(ÞV-04¬°¥¤.z¸ 'ë¦-£-룬Wot !¸õ{õee zz. ‚t {-VV0W¤ /ššÑá}ÑÑîMïšùùùNÕWÈë(EO(ðßðði(h\(hë'ë'ëhëhV¶]Ó]£]Èõm¥¥-¦û V ¦]¦±'''Ó(i((i–OO((((i(i((òÞ''h''h''—•(iiiiiiEE%%%E%ŸŸ%Tü%(Þëú¦hhû-°õ E!k/kziT %½EiTT TðEððEði(Eðði((ç'ë\\úVV-'((ò\(Þë'V çi((((ò\\\\\\VV¶ ëVV ------0õõ 4otÆ ///î¬.+Ñ++î+îîÑ=Éáîáág©Þò\Ýk‚¬¬¤W!ýký.Wzký/ïÑÑî+gg¡îM++î+ggïg+M+î+î++++M++++++++M++î+gg î+M+Mgîgg+Mùo/U{Oi] 4Þ(çú¦'VV'Ó]zšî+gggg++++M++Mg¢Uz {]hVh' {]]-'(.!'(ðE(ii(EEii(((iEEEi]] hE(VÏ.4Þðði(ë ÈõVÞçÞë±Èõ¸ÝW°Wz.Ïõ¦ëV¶]ë ¥¤Ý ¤o4eo4õ 4õe . zW¬oõ ¦{õ °Ææ‚ýNùùùNùùæ‚ýýÕNšNùýõëðßEðßç'\iðð\i'Vú]'\'ë\'ëV--]VVV]-  °m-]V]¶¶V]]hh'(i(iiiiiiiiiii(iOi((•\\\(iiiiˆˆEEEE%Ÿ‹‹Ei½ŸŸŸŸ‹Ÿ%iii½‰   TŸ‹ööð\EüTTEEEðE(\ðß(('ëÓ''Þ\\(i((ò\(\V ¶ (ò\(\\\\\\\'¶-¥V ]-¥0eõõ44¬Ý¬¤./îk/ýÆýî+îîMMî+îÑ++ÑÑæ-òõk ݬ¤Æ¤¤¬¬ýšïgM+++Mg++îîîîî+ggïïgMM+++î++++++Mî+M+++M++++++++++î++k¤ .+‚V—(o ¶Þ'húm y{zM+gïMgMMMgMggg¢¢/ ] Oh e 'Vhhhh\((i\(ëiEE((\'EEEE' \iEiii((-.Ý'ßðëëë¦\\ë¶¥¥©zzz¤zzW­ë'ëëò¶©¸È0¶{õ]m-VVV{etoe {0{{¥ V ¶ÈÝÝÝ[¤æÕÕÕƒšùÕNNÕýùšùïï¤e ßßßðöðëë(Ei\(Ei\'i(çëVÓ'¶]-''] °{È4 4¸m¥-ûú0VV-]Vûë'((i(((iiiiiii(((i((((((\\Þ\\''\\\\((O(iEEEè%%%%%ŸŸTTŸTü½T%Þ(üTT zgk ý Ÿ‰TT%ihhö üEEEEiEE('ë'ëVúVVòëii(((\ ]V'((\\\''ëV-V -- --{00{o¸eeeÝÏt.kM+/ÆÝ¤+îÑ++îM+++Ñî+ÑuÏ(õ °õo¬W .WW¬¤/ïgîMÑ+++î+++î+îî+ggMggg+gg+î++gg++îî+ggggîMg++++M+’¤ o/ùei›/ çÞ\žõ¸!/++gM++g+++gggïgg/®t›\\i%ëVVh\\\hi ëß\\h'ðEE(((' (ßðEð('(ðiiiii\Ï‚õ\ß(ëëë\çç\\'--ú ¤Æzz¤¸ë ¶¶¶ëë-\ë\iii0{0-È{- V ¶¥õ¸õõ[HNNNNƒ@šNNæææÕýÕMMý‚¸çòiðöði''(EiiEEiiiðE(\ç'ëë VÞç¦]eõ­0 ­­£m È£ 0£ ]]V úh'((((((((((((((ò\\\'''\•(iEˆEEEè%%%%‹‹Ÿ%½TŸ‹T\ETT //0  T% (h(ü EEEEiEEE(çVVh\((ß(òëV ¶]-'\\\\\\\\''ëëV ¶VVV ] -{0{4eeo¬ÏW.k+Mgš/.Ï‚M++ÑÑ++îîîMî}î+Ñu+¥¦o.zõõ°oWW‚‚zÝW¤ýM++ÑÑ+gMï+MÑÑ+î++î++ïM++gM+MgMM+gMgïgggššùù»ùM++++gM+ïg­{Ïk+»z¥–ˆ g¤û\\\\\Ó-»MggM++++MMggggg¢¢.om]\i(iE'h\((\'hhii hEð(\\'ë(ßEi' V((iEð((iiEðEEiç ÈϬ¦çòëë\\\ë 0-¶õõot¬!.¬ ëVõõ¶ °Èúë\0 '\(iß\' --]V ¶£Èõ¤ÕÕÕNÕùƒMšÕÕææÕæNšš+k£(ððð('ç\ið(Eðißðii']ë'-0õeÏ-¥V £¸õ{¦¦]¶ú¦0-Vúò(\\\\((\(iiii((i(\\''I\\I\\i–EEEE%%%%%‹Ÿ‹((ŸŸT‹TTŸTŸŸ%hT ‰T ‹\ o­ T ðiVhüöEEEEßiißß(VV\ú± ¦'Vëë\((ç'V] h\\ë'\''''¥¥- VVV ]]--{{0{õõõoooÏÏWýÑ+gg/+k/+î+MÑî+îÑuá¡Mg‚õÈ ¬e¬!ýÆ!ϤýÑ+îgggg+++MMMgMgMMîîgg+M++M+MMM+M+MMMMM++M+M+gk/g++M+îM+++ 0­»++g 0‚0žÓOç\ Wgg+¢ïg+îgg++M¢ïï+g¢gk.-KI—h—iˆ]]'''hh'h'(ië'i\i\'h'h]È '\ ¸ -V'(h(h-e¤¤W¤Ý-¥¸¬4õÈ{­È¥¶¶eeÝÏý 4- Ȱ-¦­¶ëVVV''iiii\\V---VV ±¶£õWæNÕÕNÕù@MšÕæææ‚ýÕÕMÑÑ/WÈ'(Eðß'(ðEßðß(iiißi(VVVVÓç0¸4 ]'ëV£VV-¶ ± ¦-¦'\(\\((i(\\(i\\\\\\\\\\\\\\\(\O–EEˆEEE%%ððð%‹‹‹Ÿ–ŸŸŸ½TüŸŸ'i½T½T TTT½Töööçh\öEEi(i(i(V 'iVVV 'VV\ë\((ò((\V-¥ ]-ç\\\''ë'hë'ëV0­]¦¦VV -0{ õ{õ õ eeoo¬¬Ï¤.k+gk‚¤.¤Æ/gÑ+Ñî+Ñîîî+îÑÑ.o©©4o¬Æ.¨/k/MÑ+gïg/ïgî+Mïšùù/ïgîîg++g++M+M+ggM+M++MggMM+Mggï/gî+î++++k­¤+gk.Ï! ±\O(ÞÓ{zî g++++gMMggggg+gUk -Ž\h]]OE–{- ]V-]h'\'V-V'V(ßi\]'h- '\¸¬We'h -hiV­W‚..k/zkš+šk‚zÏ4¸£V-{‚z­õ4zkW{ȸÝÏ­V  ¶Vëh õ0\i((òëV--¶] ±¶-©ÆæÕùÕNùNNƒMšùÕæææÕÕNÕýýÕý°ë(Eðð(\iißEðEEEEßi((ißEiòë'ëëë(V± ë-(\'ë ]¶¶ ¦õ©0 V\\Þ\(\'\(iO((\\\\\\\•((\i––EEE%èè%è%%%%%%‹‹%Þ%%TTŸTð%ß%T½TTTTTTTöðEßEöüßißi((\\((((hVëhV]VVV \'\\ë-0--\\\' 'ëh' Èõ¥--- -00{{õõ{õ õeÏoÏW.k+ÑÑ+ù‚Ƭ¬ÆÝÏ/ÑÑîM++î+ÑÑ++‚¸e ¸°¤!!!kg+î+ÑgkkýzùùkkýkùùMÑÑgMM++++++g+gg++++gM++MgggM/»M+++++î+g¤£gšïùšW{¶¥iIž¥ z¨š+š+MMggg+g¢ggg+M¢/»o ]\V4\EOVV- V]{-]V\-{\(i'õ0\ßßððih0i(0ò\-4. mo-((\ ¸õÝý/zk/¡k.¥Vëõ]õ¤zW¥V-¥°¤Ï-ÈeÏzõVë -- Vë'V ë(EßEiiò(i( -] ëúõÏÕÕNNÕùùNÕùïïùN‚‚æýæÕæNý‚k¤ÈÓißß\(iEßðEßiðiò\''ëë\ë\\\'ðEiÓÓhV -0¸°m0-\Ó\(ò\'\\\\\\\\\\\\\\\(i•iii–E%%%%è%%%%ðö‹‹ŸèŸTŸŸüüŸEEò‹E½TTTTTüŸTüü‹öE'\\\(\'h'h ''h\±]±Vëç(\'h\\\({-]-'\\ë'V'''ëëV{¥V £õ{-{0{õõõõõ ¬oo¬WzýîÑî+gýÏWýkšk¤.MîîÑÑ+î+îîÑÑ+gýÝ­õo44ÏWýMýš+Ñgùkkk‚¨‚k‚k/g+ÑÑî++ïM+îî+M+î+Mîg+Mgggg+M+ïM/ù!»++îgîgîg‚m4/î/+»4¦'›{.k¢gg+M+++++MMgMgMgMMšU.-Vް¤eV–O'-0V 'V(h °0(0ëiiiiòë¥'\h'\(\¸¤o4]{ehi(]- ¥Ýư¤Mk椭\\{°¥õzÆÝ\ëÈ¥©õ ¥Ý¤!©VëV--¥ ëhh h\iEßi(((((i(VëëëÈÆýÕÕÕùÕNNÕÕù@@ùÕÕææÕ‚ææýNNNHݦçii''(ò(ißi(ii(((ç\ið('ëV\òçë]ë(ßðßEßi((' ]-¥] '\\(\\\Ó'\\\\\I\(\((—(iii–Eˆ†è%E%%è%%%%%%(%%%ü‹%ðüE%TTT(ŸüöðEi\h''h'h¦]h''h'h' hëëV]VVÓë]ò(i\ëë''\']¥0-¥ ëVë ÈÈ---0--00õõ õ ¸4°eÏWÏW.Ñ+gk¤¤ù+ï+Ñ+î+}ÑÑÑÑ+++îMùæeõ¸ÝÏÝÝÏý//ý/M++ùkšùù/ ýkgg+î+¡îÑ+g+++î+++++ïg+gMîMïggMš¨e»ï++M+gg£‚+gggz¸¥L.gM+++ggMg+gggggg++ggggkz Ž\z t¶('4o]]- h\]-oo V\ ë((i(ç0 (((\((ò­ÏoWÝoWÏ0 '\hë­oÆÝÝ‚ïk.¸ë\\zko¸z!4V¥-¥¥VÏ!WõVëV-­È V-0ëiii(ißii((ißðòëëõ¤NN‚NÕùNùNÕÕNšƒùÕÕæÕææHÕ‚NNùý¬Èçi'ç\\''(i((ißßòëVV ¶ V Vë'úë'ißiEßEi(ûúX-úÞÓ'\\\\ç\ç\\\'\\\\\\\\ò•(\((\iiiiˆEE%E%E%%èð%%%%ð%‹‹E%%%%%ö‹‹E'(ŸEŸŸTE\\ðüööEE–E'ëh -- -0ë]-VV£- ¦V'ëVÓ(i(\'V''h--]]­0]'V ëV]-¥{È0--0000{Èõ00õ © eee4°z‚../gÑÑ+gù..kï+îgîÑîÑÑÑÑÑÑÑÑî+î+î+gMz¸©°ÝÝWýýýkýgkýk/kkkï/++ÑÑÑ¡Ñ+gMMM+î+gMMîMgMg//kk/»!4 ­Ækgîî+ï!¶ïggggïMùgg+++Mgg+M+MgMM+¢g++g+gM¢/»h—\m.U m\Ž(% 4 {{\\V-h 4\V\(\-¶­{'ii(i ©°zÆ‚/‚õ¥¥-Vë'V-¤zϬù}Mk‚Ï ë\¤gtݬ -úV¶¶-­-õÏt¬õ ë -È­È]-eeV\i((ißi(ii(i(ò\Ȭ‚ýýkÕýýýÕýýÕýNNùNNÕÕÕÕÕææÕNÕùùæ¶ûç(çëëëë'ëò((ç\i(ò'V V V ¶- V ç\òi(((((('4¥h(iò(\\'\\\\\Þ'''hhhž\\\\\\(\\OO(iiEEEEE%E%%%%%%%ð%%%%ðèEðèE%Eè%E\'i‹%ŸŸE'\Eöööði–i\ V ]V  õ-£õ--£]hhVVë]VVëV V]­{V Vëë £¥¥--0õ{{{{{{õõ °44ee4eoýg+ÑÑÑ+šÆÆkîÑ+gMÑîM+Ñî+ÑÑÑÑÑÑÑÑÑîîg+gk¬õõ¬k/kýýù+k‚zkk‚zýgM+ÑÑ¡¡¡¡Ñî++++gg/ýk/gïïïšùý.z¤oe©¥¨ùgg++î{ /ggM+gM++g¢Mgg+MgMg+MM+g+++¢g¢+gt0I\h¬U!o]—Ž%†hV\((\h'V] -4.(''''ë(--e (ðßi(ëVV-¸Æ‚šî°­ÈÈ¥--0õz椬¬ýÑMk ‚¬ ­¤‚.më ¥ -¸°¤ý‚æWeõ---¥õ¸­0¸Vii(ißißß(iii(ë¥ÝzýÕýÕÕ‚H‚ýýýýýÕNNùƒùæÕÕÕÕÕÕNÕNNNNäȱçòçú''ç((((((i(V - --- ¶ ¶ V'''''\(\çû  -\((('hi(((((\Þhh'Ó'\\\\\(•\\(((ii–EEEèE%è%è%%%%%%è%%%%%%%ö\i%%EèEE%%%%%%E%(èŸEiŸüE''EöEEi hë-{V'V0­-00m 0ëV'\ç(\ 'ë'''V ]0 ­õ¥ ë ¦- -{õ{õõ e °eeÝÝÏz.gáÑÑîïk‚î++M++++++îÑÑîÑÑ+ÑÑîÑîîšÆÏýîùý/Mk ýýký‚¨ùM++ÑÑÑÑ+î}+gk»ký»//Mg/z¤e0Pm{Èe»g+g++/ 0ýM+Mîî+ïg/z.g+MMgM+Mgg++++g¢ggg o-\•]¬k®t©hEE%(Ei(\'V]]0e \(i\''ëë'V --V\- ¬¬Ïäæ‚ký/ï+¤¸È¶-¥-õ.kzÏϬæÑMkzýz¬0ëõW椭±ëëVÈõo‚/+Mïùký¤õ©¸ÏW¤­ 'V\i(ii(ò(i\'V©!.¤WäWÆÆ¤¤æ‚‚kNýNNNNùùNÕÕÕÕ‚ææÕÕNùùÆ©¦ûëëç\ëëÞiii((ëë(( -¥--¶VVV V'ëV úú((\VõÝ{ú(i(\hhEEEEEEiEi((iÓ'\\\ç\((\\(•(iˆEEEè%%%èð%è%è%%%%%%%%%ö%ö%%ðii–i(ò(EiüEiŸöE\–öööððE–ihh'' m] ]0-{Èõõõ] ± V'\ëëë'ë''ëh ]m {­¥ëV -----{{{õõ 4e¸eeW¤ÆÆ‚kgMáÉÑÑî+gùîM++MîïgÑMîÑî+îÑÑÑÑÑî+îî¡+gu+g//kz‚kùk‚kM+Ñ+Ñ}¡¡Ñ++Mk‚ý ‚ùš+Mg/šgM/»ÆÝ­y¸¬4m!+ïMî+ï!4Æ+î+++M/kk!!]!M+M+gM+++ggM+g+++¢gg¢U!e›\—]/UkmŽi†%%EiððE\ 00--hi(ë\\ëVë'{o¤zýæýùîîMkùï}ưõõ¥-õÏkk¤°¬¤¨MMk ‚. ¤ ëtz¤Ó±0zÆkMkýkkzÏWƤz¤kkz¸ Ý ëV-È­õ°õ °°¸©J[[ÏäH‚‚ýNNNNNùùùNùùÕÕæHæÕÕÕÕùý¤¸¶úëë\(i(((((\'±(-¥- ë  V' ]]]\\Þ£{úëh((hhë'ii–iOiiii–iii(òòO((ç\ÞòO(\\\iˆˆˆEEEEEEˆE%EE%E%%èè%%%%E%%E%èEç'ûûEV¶ûV'O%Ÿ(EEŸüöEöööðiii]] '' VV-£' h {©©{ 0 -È0 V'ëëëë''he4mõ- VV¦--000{õõõ4õ©e4eÝϤW‚gg+M+Mgá=ÑMÑM+îMM+++ÑMg}+ÑÑ+Ñ+ïî+î+îîÑÑÑÑ¡}¡+ï++//ýÆkùkïMÑѡѡÑ+M/ý..ý/šïg++Mî++š/gg/š. -õÏte¬»š+gM+gg/ï++î++gϬ¸úh\{/++++++MM+¢g¢++g+¢ o—IU¢U.­ii%†ÓöüðEiih 04­'- \i-¦Þi(\' \çë4¨Æ¨‚‚ÕýÑîšäHš}+ùHƤõ©¤k‚Ý-¸zz‚zz.‚‚ ‚°ú¤z °tÆ!!zýk/æ©Ýæk‚¤¤‚‚‚‚Wýg‚¬Ïæk°ëëõWý‚Ïõ­¥¥¥Èõ£­…¬WÆ‚æýNNkÕýýÕÕNùš@ùÕæHæææææÕNÕÆ° úúúë\çò(i(('V \ç - ë'ë - Vë'-000-'\\ëë' ]] V¶-V\ëVhh(iiiiiiò(i(iiiO((ò(OO((ò\\(((•(i(•OEEE%%%EE%E%%è%Eè%%è%%ð%%%%E(hh'hiE%iiE%Ÿ%(ŸŸE'ÞöŸ‹öüööððEiOi - V'hh]V---''ëV¦È õ õ0õe4 VV Vë-- -õ õ õ]V V ----0{È{õõõ °Ï¤ÆýkgMgïî+ïï/gMÑî++îgîî+îîMgîgÑîMM++îÑîî+Ñ+Mgïg//ùk‚kšýîÑ¡¡ÑÑÑÑgk‚ýz¤zýý/g+î++++Mï//gï/o©W !Wkg/MM++g++gg+ggïMùÏ!õ\çûzîggî++ggMgg++ +gg/.4\\\ U/{ t]i(i—mððiiiEði]{ iih'ëVi(V]0]ú¥¬¨¬¨‚æNïîîù©šîùý‚NkÆÏݤzWõ 0°õ£¥ez . z eWÏ4¥È{0¸ÝÝ¥Þ¦Hk‚‚‚‚æ‚‚¤ýššzÆkkù¤¦ë¸ !ÝÈ£-£--£¥õ¬¤æÕ‚‚kýkýýÕÕæÕNNƒššÕæææHææææNùýW°õ- ë\(ë '\ VëëVVV ¥]'ë -¥-ëçVV ±hûV-V'(hhh'(iiiiiiii((iiO(O((iii'Þççç(((\\•i(((i(iiiiEEE%EèèE%è%èè%%%%%%%%ð%èèè%E''i%ð(E‹‹ŸTüŸßŸˆ(ßV'EŸ‹ööüöðEEi((-0£ 'Vë]£ ë- VV] ú¥¶ ¸4õ õ--¥00--- V0 V]õõõ¥--¦ ]---{{{õõ©¸¬Wkggî++Mï/ïggÑM++î+îM++g+î++î++M+++îîî+îîÑî++î+¡Ñîîggïký.  ï+ÑÑÑÑ+š‚W¬¤.ùgî++M+î++î+++ggùšš/»z¨//kù/ïgîïù»Mî+g++ï!zçOg+++++Mîg¢g++g+g++gzm\IKe!!! \-om¥]VI{ ii(((i(V0-0Vië(ò(\ë'V  {ÝÏ[ÆHæNšïMNPú;ùýýÕkýÕæ¤ÆW¸¥¶¥­¶V'±z.ý.¤¥¶õë(ÞëÓú]¶¶õææ¤æ‚‚ÕýæH‚kkæ¤ýý¤úë¥Ý]Þë VV±¶£°äÆæý‚‚ýNÕýNNÕææÕÕNùïïùæHæHHHHæÕNNÕ¤õÈ- VV'('VVV'\\ëëë ¶ -Vh V]-V\\ë' ¶¦¦]úë'\iÞç\iiiiiiO(ç(i(OO(i(òi(iÞ'\\\\(O(ÞÞ(–i(OEiEE†%EEE%%%%%%ð%%ðð%ièˆEðö(èö‹EðièTEÞòçüüö‹‹öðEEEiò{ ]úh'' ¶¦V¦ \¦ VV¥]õ£{ eõ]Vë]-È­-V44V ¦- -¥{õõõõ4ee¬.‚/M+ïgMgïgïïïš=Ñ+Ñ+++++M+î++îî+ÑÑî+îîîîÑÑîî+++ÑÑÑîî+Mù!¨ýùg}++k»ýý///k.z.k++++î++î+îMgg/k/ù»k.¨ùMgïM++ï/4/gg+îîîM/¤(ò-MîîMM+î+g++MMg¢¢+U-Ž'\Žmzt4toK(h00]hŽ'0Ý \(('\('-{0hh((('\('(ò\\(\ë¶ °õ¸ÏäH¤æýÕÆ)&ÚäH‚NýýÕ‚Õ‚Ï©¸õ0]'\òòVõW..¤¥°zõßßò((ç\ûõÆHóÏæýýNù‚¤æ‚椤ý°¦úëÓ\ðÞVë'ë £©¬Æ‚ýÕýý‚ýýNkýÕæÕNNNNššÕææææHæHÆæÕšNæÏ¬°õ{¥-]'\ëVëV-¶ ë'ëëVVVVV-- ]0-­ h-] ¶--V'ë'Þiiii(ii(iž­'òÓO(((((((Oi'ž\iòò\•i((OEEE–(EE%†%%%E%%%%%%ðè%ð%%O‹T½ŸEEETihi(ˆŸöööðöðèßEEEiò40-'''VVò\ë-]]¶£-£]V¦ VV]È{'']¶V -õe°õÈ¥------õõ õ ¤ùMg++Mgïïšïïšg+Ñ++ÑîîgMî+îî+îîîî++ÑÑî+îîÑîÑîî+Mký!!kgMk.Ƥ‚‚z!Wo¬!g¡¡Ñ}Ñ+îîîî++M+MîMïgškggšggMM/e°¨ggMî++gz¤¸ëO'!++++++î+gMggg++.e›\ŽŽ-ez!!®!K•\—\›o ‚e\\\- h -'iE\ V'--ëi(ò븰õ°[¤ä[æææäPÚõõ[Hæ‚ýkNk‚Ƥ¤Ý¥V\\(\'¬.¤¶ÈÝõëòò((òçò¶ÝÆ;L[æNÕNk‚ÆæHä°Èæ¤õ±Þßßúë(('VÈݤzýýææææýýýýý‚ÕNÕNNÕšïšÕæH‚æHææHæÕNùÕæÆW¬4ÈÈ¥ ëV' --Vë'VVVV 0õ00 ]0 ë]¥0- 'hh'hiiii(iO (-¥ú('-(((((((ç'V'\hh\(çÞÞ\•(iE†EOˆEEEE%%%E%%%%%Eè%è%ðèEööüöö%%i%üöööèEðßE–E½i('üüüöððððEEððE( {¸õë''hhVVÓç(ç'È0¥-]] úë'\Ó] ¶ëVë']0m --{{{ ¸°eÏkïšï/š/ššïáÑÑîî++M++î+M+îîîîîîî++îîÑ++îÑÑî++îîîM/ý‚ýš/‚!oWÆ//¸WýgÑÑÑ¡+++++++++gïggg///kššk/ï++.©//Mg+++ïo-ç /++++î++g++gggšk{hhVh\Ž- mo/¢g.(iV/((i'h {- V\((\] 0V È{ë(i(\ç'ëõ¸¸°[¤¤äæHä[LL…¤æýÕÕNýN‚‚‚‚¤oÈòçÞçëõzW-Vëò\'Þ °¤ÆXÚ…äÕNkÕHó;[©¥¶¸æý϶çi''(ßiV­¬zzæÆHÆäÆÆ¤æNý‚ÕýNNNNÕšššýææHæHæææäóäHHææÆ!¬°õ0-{---ë¶0Vë ¶ VëV] -{ õ¸õ0]VëV{{È0-'hh((i((i(i'i\iii\\\Þ—ç'h'\ëúÓ'\•(OE†iEii–EEEEE%è%%%E%%E%è%%ç'ö%‹(E%ðEOi(i%ˆTEçüðEEEEEEEEi{0£hh'ëV\\\V VVV ëë' {Vëëë Vëh -0{ oõõ© eoWMšïšggïšgïïgïgÉuÑ+î+gggM+++M+++îîÑÑÑ+îîîîîîîMÑÑî++î+gïk‚.Wo‚+‚ÝzïÑÑÑÑÑÑÑîîîî+MMMMMMgMgššïïšš/‚ ®/gg+g» ‚/.ggg+g­{ g+îî+î+Mïgš/ù»ÆVV›ŽŽotez¢¢//]\†•›zkk.t(ii\hhV ]' 0õ0-]--V\\(çë-õ ¥¥¬äW‚ÆóJPõ[Ý[Ææ‚ÕNÕÕÕÕý‚ýýWõ\\\\\Vݤë¶ ¦ ëëVV¥ư¦±¥JHNNýH£P£¦ú¥Æ‚¤-çÞëëEEß( °.¤Ï°õX£¶£¥õ°Æý‚ÕÕNÕÕÕšššNæææææHææHúRPäHæýýæÆÏ°¸!Wõ¸0-È ¸¥ ¶--0¥õee4¸¥¥¥ V -0õõÈ0-] hhii(\-iiii(iOVûhž\Ó'ÞÓh ëhû(\\(–EEEE–iiˆEEEEè%†èEEEE%Eððihòð%èðð(Eèðè%iEüßEöðE½TðöèEEEðEEEEV] '''V V'ë' ¦¦ë -£h ëë ] V ]0]- otÏo¤g+ïšïgïï/ïš/šïïïguÉÑ+Mîî+MgM+++MMM+MîîîÑîÑÑÑîîîÑîÑîîîîÑ+/.¬ÝÆgÑÑÑ+/ý‚z+îÑÑ}îÑ¡¡¡++++îî+++ïggù .k‚/ù‚¨k Mîg!£Ï»‚ïî++M‚W\Vgî+++î++gý!oe0úK V]›''o kU/—i\Ž]¤®k®((\\'hhV'hh'h]--È- Vë'ë çÈõo°Ï¤æ¤¬°õõÏäݤH‚ÕkÕÕkýNýý‚ÏÈëÞ\ç\\\¶õç¦0- VëëëúëVõ°£ëûV£Ýýýý‚õû - ë  ¤¶ ë\ii\õÏoõõ0 ëVV¦VëúõWý‚ÕÕÕÕÕùùýHHHæ‚ææææ¤Ú|ß&yJäNýý‚.¤Æ¤°¥Ý.¥-¦ ±±ë¥õ°e° 40È]-{õõ¶±-¥{¥--VV ¦(\m]iiiiii-\ÞÓž''''\çò\Þ\\\•O–EiˆiiEEEEEˆEEEEEEEEEEÞhðEEEèEiE%èEE%EE\OŸüüüŸŸEˆŸ‹ö‹öðiEEðü‹]''ëhë''\VV¦V'\ë]{0V'ëë]VVV'ëh]{0{õõÈõ¸¸ÝW!‚/uÑ+/šššššš/š/šMg=É++î++gMg+++î+M++++îî+¡ÑÑÑÑîîîîÑî+îÑ+ù‚káu+kz¤‚g¡Ñ¡}¡¡¡¡¡ÑÑMMMMMgggïšùý¨ÏW.ý »»‚.+î++/4  /g++ïùÆ!4Æî++îî+š»‚õ¦Òžh›-V\Ž-/+¢/ — › ‚! \\\ë\(\'\\V]]- eõVë'ëVë -£Ètzztt¤Æ!¬4°ÏÆWϤzHýýýÕýýýÕýý‚W­ëçç\çç È '- ëV ±úë¶-õzý‚-h h'¸ o V'\ 0 ]Vëë'ë £¦ ûë¶Ý¨‚æÕæNùùNÕææH‚‚ææ‚HH¸Þ|OççRõJW悂ƤÝ- ©õëëëççòò禭¸¸¸Ý°{{õm{]¥°°°ÈVú¦± ¥00-]±¦]-¶\\Viii(OOOi0¦ç\\'hh'''hž\òiçç\\\\çi–(–EEˆEEEEEEEßEEE(ðöðèE%%EE–ß%ðE(ihiŸ‹üߟŸöööðððððEEEEEEðöðÞh±±VVVVVh\(i\ëV¦£¦ \VõÞ\' ''ëhV-¥--{õ°4e.á=áá+ggïïš/îÉá+îîî+MgM+î+îÑ+î+îÑÑÑÑÑÑÑîÑÑÑÑ++uÑ‚ý/+¡ÑÑ}¡¡Ñ¡¡¡Ñgk//g+MMïš!WÏe{{t»gk»¡¡¡ ýýg/š++Ñ¡g!šÑg¡Ñ !e0 'žV L]¦0 I›m®¡uá+gz4 \Ž 0K .o]'V\\]0Vë---] ¸-VhV\h ¶-¥­õ¬ÏÏW¤¬oÝoÆ‚‚æææHæææææ‚‚‚Õý‚¤¶ëç\çòòòë 른-ë-±úç ¥-È‚.¬-ëV h\]zÝVV-4o¸õ-V]]ëû -£-- £°¤æÕÕÕùšùÕ‚ææHææ‚‚‚‚HÆõúÞòO|ç&±¥©ÝÝÈëë\òÞç((ßiò¥È- 0¸¬!¬­¸Ý¸õ¶±¶¦¦{{¥--0\\\\\'V((iiOii((0¶Óhhhhhhhh'\((ç\\Þ\ii–ii(iiˆˆEˆEEEEEEEEEßçE%%%E%%èEEiE%iEö('i%èiðüŸüðEEßEEèððßß–V ' --£-¥-ÞV Vhë0\\'ë\ëVV -- ]00õ ot!!!WÆ/+gÑuá==u¡gggggšïïg+u}gî+î+î+îÑÑ¡ÑÑÑÑîÑÑÑÑîîÑÑÑÑ¡Ñ}}ÑMgïÆz .‚ýggg/k.¬õõ­{­meg g¢Ug¡»z¢++kMgššgkÆok¡¡¡¡î}¡Ñ¡¤t¥ûV­Ý¤Ý{£{›+=u gU¨4]]]4®-{-È\ëh'hh {¬!0-V'ë\{õ0- VV ¸¥­õ­-£¸õÈÏÆoWÆÆzÆÆHÆääÏ䤯ÆH¤ó¬WÆHÏÈÞçòÞÞçVõeõÈ{ °¸ç(ò\ ¥È¥¸¤ý ë -h'0õ00'ëVV-40{-ëh -Èõõõ©eW¤äÆæNNùN‚Õæææææ‚‚‚æH‚‚ä;õP¶úÓòòççë±V\ç((ò\\iiòë¶¶ëë-õ¸¸°z‚¤¤¤¬©¥¥¥¶£È{{¥£{õm m\\ ]ii((((ò(ò00Ó'Vúúhûûhë'\òi\\((i(iOiiOi((iOiEEEEˆEð%EEßEEèE%E–%E%iiö'V'(‹üEEöTEEi(EðöEEii( ú\\ç'ú]0¥È¥V'\ëh\\ÞV- ±h'Þ\ëVV-0--0õõõeo!ýk¡ggï+ÑááÉáuggšïïïïïÑÑ++î+Mg+îÑîÑÑ¡ÑÑÑÑ¡Ñ}ÑÑÑ}}Ñ¡ÑÑÑÑÑÑÑÑÑu}}ÑMîgg+Mù.!¤zùîgïg/ýÆ ­­õ¸°¬!»š./¡á¡ !+M/++»ݦ u¡î¡¡Ñš¸¶±Ï‚tÄoo44¸›-+uu¡g/z - Ž-U ]-] {ei(\heo!¤È'ß\]{ e¸0 eWÏ©¦±õ0¥eWW¤¤o°ÝϤ¤[;[¤WÏ[Ýݬ¤zƬÈú\çú©ÈëçúõÏÝe°­­õë((\V¥--¥Ý‚° -VhV--] '(' õ V-- 4¬otz¨HæNNÕNNýÕÕæÕ‚.Hæ‚‚‚H‚æÆÆ¤äóPúëòòÞçòçëççò\ëúVV¸¸¸°¤z‚ÆÆææ¤°õ¥£°¬Ý {0{eoe\'-O((((OòòúV'Ó'ûVúhûh''Ó\çh±V h(i(Oii((òiiˆEEˆEèE–EßEEEE%EEE%ö%(èiEü%EE%EEE%ööEi(((( Vh'\òçëëV\Þ\'h'('V --0--õ4e¤.k+uááu+/ïg+Ñuu==uÑMïgggï+=}+îM/ùï+¡ÑÑÑ¡ÑÑÑÑѡѡuÑѡѡ¡ÑÑÑÑÑgîggg’ï »‚Æ!z¨¡+î+‚È£õÝttWttÏz » .u¢.Uu}k/ M»o0õ±©šÑg+¡}uî/.¥{!¢Èo¬ {-4.¢ +hŽŽm ko{VŽ mÝii\'\V WzWoo4õ ò ÝÏÏz!Ƥ!¤o¥úV±¶¸oW¤Ýe ­{ £ÈÝϤäݰ©°[ÏÏä¤¤ÆææzÆWõúú©¨W¶ççëõ¤¤È-òçëV ëë0ëëh]]Vë'ë'' h--ÈõϤ¤¤Æ.‚ýƒƒùÕæýÕÕ‚Õ‚‚.H‚ææHæ‚ÆÆÆæÆÆHWÝõ-¦¦ëòiçëú­-ú\\ë¥õÝÏz‚¤¤¤HÕ¤L­õõÏWÏÝe©­Èõeo4ÞÞÞÓ'\((iò('''''ž'húúVhúû'''Þ\\ú\ ± -hò((O(O•(iEO(((iEEE–ßEEEßEEO((hhEö%ö%òE‹‹(%E%ð‹üüüði(i('ú\\ç\((ç\' V\(iëëë'(\ë ¦00000 ozzýkk+ÑÑuáÉu¡+ïš/gg+Ñu==u+îïg+áÑ+îîgšg+îÑ¡¡¡}Ñ¡ÑÑÑ¡uÑÑÑ¡uuu¡¡¡¡¡}ÑÑÑÑÑÑÑÑÑѡѻÆz.¨Ït ïg¡¡ÑÑMggý¬P-õ‚ý‚ý ý‚.¨ÆÆ ‚.¨U .u»¡ko¤ g¡u¡+î¡}¡î!eÄo®¤¸ÏÝm ee./gg/t0h\—{!U¨ -››-{ii\\\õÝÝõ¶]¶Vëëë¸ÆÆz.¨¤¬¸Èõ©ÈÓV£õÝÏeõ0-] ±£©Ý¬¬ÏÏϤÆääÆzæ‚æ‚æzý¤°¬¨HW°¦(ò]õ°Ý¸ ëëVëëëë'ë-ë'ëVVV(i(hõ{-\¥°o!Æ!¤zH¤æNššNÕÕ‚Õææ‚HHH‚.Hæ.H‚æ¨Hææ‚ææÆÆÆ Óòii\\ë± VëëVVë ¸ÏÏzϤWäWä[õúPÝ[¬¸©È-V­È((\Ó'm (((((Ó'žhú±Vëhû -VV]]V¶''hi((i(¦›i(ò((ò—\\i\(']]] hi–ßEEEE%E%E'V±ûÓhE%i\Oö%ööö‹ööüüð(ŸŸöüöüüüöE(iiii \\\\\\\ëVV h\ò(('hë'\\ëV- --00{õ o¤‚ýkkgšgáÉágïgïgîá==ág+M+Mg+ÑuÑ¡uÑÑÑÑÑ¡uÑ¡¡uáuu¡ÑÑu¡¡ÑÑÑÑÑ}¡ï/+g+»!»î}¡ÑÑý ¸zkïkkk ‚z!. ÏϨÏ!gu¡+k'î¡Ñ¡u}¡Mgï ©ú©}¡gùÏÏ0{etk¢¢g¢Ut]IIKokU£¬toÄVV-¥È¶±Èõ­­õõoÆzÆz‚ÆÆÆ[ݬWݶ'\òú±¶0¥£--±±¥°Ýä¤ÆæææW[äzæÆ‚ýæ‚‚æÆ¤¤¨H¨¤ë(òV o!zzzÏÈë\\ëëëë\ç\\'VV( ]\\'h -õ¸¤!!zzÆÆæNÕÕÕÕÕæææH‚‚‚HHH.ææHHÆÆæ‚ææzzæ[¶ë\(çëÞë ¦±ëë - ¥ Ï!ÏÏ­ÏWWäÏÏPõ©°[°¸{¥]VÓ- öß–ç\Ó'h¦hò(((\'Ó\\hhhë'ë]]±Èû]ÝÝe{\ò(O\Ó'(\•\V{ •žK•(––EEEEEE%E%èE ži'ç%iEEE%üö‹ööööö‹‹öEi‹öüüüüEßi((ò(\-0 hhÓò(\'\\h \\ò((\\''\(( - -0õõ eW‚k/ïM+MïgïïMÑu===+Mgïgï==ÉuÑÉ=îîMgMîuÑÑ+ÑÑÑÑuuu}uÑÑ¡uÑÑÑÑ¡ÑÑÑÑÑîÑ¡¡á¡ùM¡Ñ¡¡ÑÑ¡¡¡/z°Jo./ïïg+ggïù .!ätz®š!e¸‚ ¡gk¤m »á¡î¡}}}î/U.¸ú›!+»kktϬ ©Ýt.gggk-—(•hÄ!Uzm-Ýk \\- \ë± È­©¤æÆÆÆ¤Æ‚¨.¨¨Æz¤¤ÆÆÆä°-\(\\\Ó'V]-{]ȰWÆz.ææ¤¤¬Ï¤ÆææýNýýýæÕææ¨ýý‚¤õÞ(ëõoÝÏeϰVë\\ëëë\\\ëV \(ëë'hV{õ{­õÝttW¤¤¨‚ÕÕHHæææHæH‚H‚HƤHæ‚‚‚æzæHæææÆæ[¦\ëë\ëëëV-¶Vë'ë¥õ¸¬¸õ-¥ÏÆæÆäH¤ÏÏ[¸Ýo©õ¥-ú' ­°üüö%ÞVmûòò(•((\---]V' ¶­£{eÈëVÓ¶¶ hÓÓçÞ¶'ÞÞ\\\]m'iO(iii((ièEEEEEè%EEE–(\'ÞðòEöðöööüü‹ü‹‹öüüüößüü‹‹‹ß(\'\\'h''\\''''ë \((\(\\V0--{õõ °¤ýgg+îî+ggggggï++¡u==uÑ+gšgMîá===ÑÑ+g+gï++îÑÑÑuuuu¡ÑÑÑÑÑ¡ÑÑÑÑÑÑÑ¡¡¡ï+¡u¡¡¡ÑÑ¡¡g o.ïgggMMšù ¨¤tt.®®.¬mt¬‚š.g¡¡+Ñ¡¡M/z K±¬g¡+¤WW°¸m¥©¤ U+ z -—(\I]o ¨e-VK]okz ]'\ëV­Ý¤‚‚‚z..zæzƨ‚HÆæH¨äݰ¸¥Vë\òçç\Ó'' 0- õ¤zz‚‚H¤¤ÆHæ‚Õýýýýý‚ýýýýææ‚¨H椱ú¶¶ëëë --£Vëë\úë\\\hh\('\\'VV-õ{¥{õeÏÏW¤æNNHHHæHææÆHHHHÆH‚ææHÆÆÆHHæHÆæ¤¥ÞÓÓúVû Vë VëçVȸ°°õÈ oWWzÏäWÆÆýšïùùÆÝ©­0- ûë]£Ÿüüüüü‹ßiÓý çò(òVeee V)¸mõë'h''ëhûh'']'''h'h'K-Ý{'—((i((•ò((EEEEèˆEE%E(E‹‹üöö‹üüüööö‹öö‹‹ð‹ö‹‹üüðEi((('ÓÓ'hû'-V'\Þ\\ç\(( 0{-{õõ44eoW!kïM++++MMggïïïgšÑu=É=ÑgïgïgMïg}uÉÉ=}Ñ+gïgÑÑÑÑÑÑÑÑuu¡¡u¡Ñ¡¡ÑÑÑÑ¡ÑÑÑÑÑÑÑ+ïMu=}¡¡+kW©LÏgM+ïïgš‚ý.oz®z¤ 4 Ut4{g++ ++++î++g zo¥›he/M¢g¬¸4­¦hhÄ.U 'K'((h-4. o]VIh]m°Ä \\\\' ¤zH‚‚‚‚‚‚æÆzæzæ‚æ¤ÏX¥¥¶±VVV¶Vhëhëë-£±È¬¤Hææææ‚ýN‚kNkýýýÕÕNýýýÕýææHäW° --¶--0õ °ÏݰVëëëë'\hh'''\(\ë'' ë¥õõ­­°¬ϤzWÆæÕHÆHææææHHæ‚‚‚H.ææææH¨ææææH‚ä¶ç'ëëV£ ëë\\ëV]-­õ°¸­°Ï¤Ïݸ¸W‚æšÑMM+îH‚Æ¥¦Vëëüüü‹‹üüüüè¤(((hV]]'\'''Ó\ÞhëëhûV¦ ] ) ]tÏooÄK-©ÈoW]ž\i(\\\\( ç–E%EEEE%(ˆ%iiööööööööööööööööüööööööü‹öððEEððEðði'h\\\'VV\\\\ò((0õõ õ4¸ee¬W‚kgMg+î+++Mgg+++ïïï+Ñá===á+šg+ïgMuÉ==á+ggîÑuuÑ+uuÑÑÑÑÑî¡u¡¡¡u¡Ñ¡¡¡Ñ¡u¡¡î¡ÑÑ¡ÑÑ+ÑÑÑ¡¡¡}}Ñ+M¡u¡Ñ}gzeL ÆggMïgMgk‚‚ .¬zkUz0{t/{- !/+gMî+++MMM+Mk¤°È±ž »M¶4 ­¶KIÝggk \—IŽKk! -]ŽŽh\Ž''\\\\ëV--] !WÏz‚‚ææzæÆzæ¤ÆÆÆÝõ£¦¦úëV V¥Ï -£¸õV ¥£¶¶©¤¨‚ýýýýækNýkNýýýýkNÕ‚ýæýæHä©°ÝëV¶­ÝÝÏzzH .ÆÏe- ëëVëë\\'Ó\''ëëVh-­ ­ ÝÝÝW.‚HæÆä䤯HææHHH‚‚HHHHæHæææææ‚ææÆõÞ(ò\ç\ ÈVëÞëëë £¶¶­õ¸4°¸e¬ÝÝ[æÑkÆÆ¬¬[Wςƭ¶±úûë'\ŸüüüüüŸü–!¥‹èEi((\((ò((\ç\\\Þ\'V ¦]¶£]--£ÈWù/ 04{4 VŽ'I—\I(] ' ¶iEEE%EEˆE%ðððöööööððöðöööööö(''iEüüðöööööüüüöð\''Þ\\Þç((((\0õõõ 4eݬz‚/+++++++îM++î+îîM+î+MÑuÉÉ=¡ggïÉu}==uÑ+îÑÑÑÑÑÑÑ+ѡѡ¡¡¡¡ÑÑ¡¡¡Ñ¡¡¡¡¡î¡¡ÑÑÑ¡ÑÑÑ¡î+M+MM}°°ý/gšgg+gù‚¨.¨Æ!¤! kg.t {4¢¢! e + ++M+îîggïý¤;Xy‘h k /oV›{m£ Žž­+k]›h\h- ®ÝÄ]KhK]-{-ÞÞë -44-ÈÝݬæ‚.zzÆÆWÏÏÏϸ¥¶¶±ûëú--¶ -ÝzzÆÏ°È­È£ÈõÝHýý‚Õý¤õÆk‚ýýýýýÕýÕ‚ææ‚æó¸£¦È0ë']õ°o¤¤!Æ.zWe{- \òò(\ëȶë¦Vhëë È­õõõe¬¤‚‚æÆää¤äÆHÆHH¤¤H‚ææHÆä䤨ÕHÆÆæÝÞiòðð(ç¶õV È£¦¥°õõeÝe¸¤zškÝzݬõ¸°[¬[Ï¥ ûVëŸüŸ‹üŸü‹üöŸ£ÏE TT%–•(i\ò((O(O(òçÞçÞç\'Ó?hÓ±£¥£¶£¦V¦¥­­¥±'KIhI\çiiO–h­mV±iEE\'OEEèEðððèEEßiißßßEEèððööèEE(ðöööüüöüüöüüüüöE\'\\\'ë'(\\\\\\\-õ4 4ÝW¤z‚ù+î+M+Ñ+ggg++M+++î+++gMuáÉ==uîggM¡gïgMÑá=u+îÑ+î+ÑÑî+îî+î++îÑ¡¡ÑÑÑÑÑÑ¡¡uÑÑÑÑÑÑÑ¡ÑÑÑÑî+ï+îá»ee!/g/gMgMM/ýz!!tt! U+g¢» ]g//+  + +++î¢/ýä4ȦVû +šz¸ K {©£ —\ošg¢ •h›K0m{®z{0 ›]­e¬Äú­Ý¤¤zze] ¸Ït.‚ýæW°õ¦ú ¶0-V-È¥ëV¦-¥-V¥4¸¸4ÈVûëëÓÓûõ䯿æ‚ýùý‚H‚ý‚‚ýNÕýÕNÕ‚‚ææzõÓÓÓ\òiò\' ¶¥{ 4°ttÏÝ ¥-V Vë(iß(ò\'--¶V¶-±ëëë'\ëúV¥õÈÈ­õe°ÝäÏ[óÏ䤤Ƥ¤¤ÆH‚‚æÆä[[äÆHzÆÆz\(òiðð\--\¥¥- V¶--£õ° ¸ozšgý4äõõ¸ e¬ù VëûVû½Ÿüü‹ü‹èöi % TÂTiEEEèE–ß%%%üðEEE–O\Óççò•ç—Ó—çÒëÓúû(h\¸eEEEÓ!¥0 òOO(ç'¥hëçOOO((òò((((iEðEöüðöü(ööüööüööüüöüöðEh'''\\\ç\\ç\Þ(({õm4õeϤ.‚kîîî+gš+ÑÑ+gïg+MggîîîîMggïgMuuá=áuM¡gššguá=u¡î++MM+î++++++ÑÑM+++ÑÑÑ¡¡uááuÑÑÑÑÑÑÑÑÑ¡îÑÑ+¡uMteÝÆšM/k+MM/‚ÆzzWW¤‚k/g+¢¢¤U++ +g+MM+ Mïù‚¬©°°Ú úûz!eÈh—'±¶¥£›' ¨/Mk-Ž\ŽÄm¬-VK]m4eoÝo0'¤æý‚æ.{Vh'o¬.æz!¥ç릶¶­õ¶úû-­¥¥õ0õõ¶úëÞiòÞúú£È­©õ¸[ݬWÆÆææýk‚HÆæÕ‚‚‚椦ß(ò((ii(i(('V ]4eÈ­-ë\ii(\Óëëëúúëçò(\'ú¥¥¥{­¸¬¸…;;;[[ó¤ÆÆÆ¤Æ‚HHæHÆÏ[ÏÆÆææÆÆÝÓiò(i(\ë\ë¥õ­È¥---°õõ°©ÏÏWt°­õe­õ ¸°¸°ýW¦ëûúúŸüöö‹ðö‹èÓèTŸüTT TT%ŸŸ‹‹EEE%èß––çÞçëžžIžÞÓžÓI ¤Äž!kžO–ˆEèß‹iëÏýz4 Þ']eȶhû±]¦ 'ë\çò(((òòò((ßððöö‹‹‹öðüüöööðööööððßi(hë'û\ç\\\\Þ\\\(\{õõõõõoÏ!ýkM++++ggš+Ñ++ï+îggM+++ïïïg+}¡¡+¡áá=á=/ï/ù/ïu==u¡g+Ñ+++ïgM+gîîîîÑ++++î¡Ñ¡áááá¡Ñѡѡ¡Ñ¡¡ÑÑ¡+¡Ñ4Jä‚/g+MMgk!ݤýýùïMM+¢gke-¶og++g++ ++gM+ïU» zÝÝ.Æ­ûIÒI±L ¥hÒhV¦¦ I¬UkÝ— ¥etz.kkWVIK4eo ›‚‚ ‚¨.t{V'']4Ýzzzõ\òç''ëV -¦ ¶È-¥­­ÝÝ0-¦ûë¶[ÆäWäÝ©¥££±úú¥°¬¬æýHä[ÆÕ‚Õýưû(iiii(((ii(ò(ë¦{¸°ݰ°õ-ë\\\çÞë\\çò(òçë ¦ ¶-¥Ý°J…JJL…;Ýóää䤯‚æ‚æH¤ä¤ó䯿zzæÝ(i(i((òÞë -õ¸°° ­¥È¸õ-¥õë­¦'¦È­£ ]0¸ ° ¸õÏz]ûûV¦VöEðßèðE–û öTTööEEððè–߈OiŽ—Ò¥žŽ\IIÒ—KÆg°»¶Oòi(OO\ÓÓçžë\ûÓ©¸Ó''›ûhëÓÓç((–EßèEöðöE–iißEððööööö((öööüðöööö \'h \\\\\\\\\Þ\(¥õõõõõõõ4‚ /+îî+MgïgMÑMg+MgMÑîggg+¡¡î+gï==u¡ï//ù/ï++Ñá==¡¡++îg++++îÑÑîîîÑ¡ÑÑ}uááu}¡¡Ñ¡¡¡¡ÑÑ+îÑ+Ñ¡/o©/Mîîgù¨o°ÝtWÆggM+MgMk¤ ]]!++ ++g++M+MšUùUšU¨H'?¦ zmK'›]VhIÈkk°V\Ò]eo¨ko-\ÏtWo-\(‚æ.z!{hë-4Ýz.z]\ëëVë''V'ë¦Ý­ÈÝÈÈ¥¦úÝæ‚‚ý‚‚ææzƬ°°ä©¬¤æÆÝ…;Hæ‚ý¤ÈÞ(iß(iii((iii((\\ëV¶0õ°¬­- Vë\çòççÞ\\\\ò((òú -È­õõõXPõ……JÝääÆHH‚HHääÆääÆææææW¦(ßii(i(Óëë-ÝÝõ0¶-¥-VõëçëëiòÓëÓ(£õ¸©¸¸È©¤Èú¦-ß–Oèöiið–ò\ü‹è%%ðßßö%èE%ˆ–\›•\Ko\—•II\X}/»IÒÞ\Þçò\\Ó\\Þ©¸çÓçÞ((ißèö‹öüÂüðiEððööööö(iEðöðöðE0]£-°e-­£''''''\Þ\\\\\\\-{0{ õ ¸õ¬./ïM++Mgïïïïï+Ñ+gg+î+gï+Ñ+î++M+ïggî+Mg=u=áu¡gšgïggg¡u=áuÑÑM/kkšï+Ñ+Ñî+î¡uáu¡ÑÑÑ¡¡ÑÑîîÑÑM¬¸äùÑ¡}Ñš‚¬t¨»š+M++++gggU eg++gg +ggMMš++zÄ'Ž{;‚U¢»o¶žI'Ž\¶zš\› 04e4¸e{›V—K©!!Ïe4hii .ÆätÏ{'°¬z.z­ëëëë¶-ëë VV£Ýõ -È--¥P¶óý‚‚ý‚æ‚zHƤÆ!ä±òúÈÏÆ…Põäæ‚‚Wûòißßißiiiiißi\çÓ''ë'륩¬¬¬{°õõ0¥-]'ii(òÞ\(i(çë-¶È­õÈ£PP¥¥PõXXL…;Ý䯯æH¤J¤¤¤¤H¨zz¤©ißi(ßß'Þ ©Ýݰõ{0-±0-Þë\i(iòii\]­õ¸Ý4­W¸ Óë¶õç–Eð–Ei°Ïß½ŸüTT½TTT%%%%%%%öiòè‹ðOO–iè–¬ÝU¸––ˆ(——Ï+oÄ+ ±\\ÞçÞçççÓ\çëeÈû'\òòO(O–ßè‹üTT Tüßi–ßEððöüüöEi('\ßð(\üüiÈϦV VVh''Þ\'V{õõ4ee° ¸4tk++ggïïï/šggïggMggï+++Mg+îgg+gM++M=É¡¡uá=g/ïMg+u=á=¡+ïÆz‚ùg+î+îM+îîîÑÑÑÑÑ¡}¡¡¡¡ÑÑÑîÑÑÑ¡¡îî+¡¡M!¤+¡}¡g !¨kïgg++MMMM++MMg.W40©g  ++++gg¢g¢+M+gM‚¥±L¨®¢/Ž›h'I4/ ›Þ\- e ©VŽ { !!o°£•ˆ‚¤ä¬°¬tmë\¥­°¤.zõ¶VV]¥¦V V- ëë- ¥-Vë ¶±£õ±¸¨HæææHæ¤ä¬¤¬¶(i\ë£ÝȶÚ;æH‚¤Èëòò(iiiii((ii(\ëëëëëëúȸ¬¬Ïõ0e¬¬W‚‚zÏ¥Ó(iiòç\çÞ(i'¶-­õõ­¥­X¥ÚÚPõXXXX…ÏÆÆÆæäPJÆÆä䯿¨æ‚¤¥(i(ði\ò\ú-ÈÈÈ¥¥-V¦¬õççò(i(i(òiië£È¸ÆÏ©È¥£Óëû0O–iE–(–ç/!ö üT TŸ½TT%%%%E%%ö omÞß––––è%\¬W°–†%†i–ˆžUÆ.0•I>•\\çòç(\(iÞõÈE–ò•\ßOßèöüTÂTTT ½üE––ißðððöE üüߣV¥T ½ ½i­o m{ õ-Vh' V'ë'h õo °¤oÝÆ‚ï+++Mggïïg/š/g/ïkkkMggMïgïggïg+gùkMùïgM+ÉÉÑ+g¡ááá+MššgM+=áÑï/ý¨z/g++îîîîî++ÑÑÑÑÑÑî¡Ñ¡î¡î+++M+ggM+ +kkM+ïgMî+M++gg++++!4¥]/ +g¢++¢MšÆMM®£žŽ©¨k»»t0'I''›K.»¶ÞÞ'±Æ.¬e°õ] '¸WŽiiHWÝeõõtoi(V¥‚z¤°- ¶ ­¸ÏÈ-¥­ee­- ¦--¦--¶ -¥¶XäæHH¤ÆäÏ[ ëëVëë ëõȱ)LäHz‚z©ûëëVhhhhhhhi(ÞÓëëëë -È­°õ¥¥¥È¤ý ÝV(ði\ç\\\ò(çëëú£Èõ¸°J…X£¥õõPÚ¦ú¶[¤ÆHH[¥°ÆH;¤Hƨ¨W°'iòòÓ\içú¶¶]±]¬Æ0ëÞ\òòççÞççÓ¶©¨4°õ…£©¬\ë¥E–i‹ßO©‚M럟Ÿ½ŸŸT%E%E%E%!0 °EiiEè%笸¬O‹‹‹††ŽmKˆ–(iEOiEEßE%' ž%O–OEö½½TTTTTT  üEiiiißEðöTööðiVÞŸ ‰ÂTüi(ë. o- ] --V ëë ÈÏÝϬ. Mî+îMMggïï//ï//Mg//ššgMMggg/kÆý/šîuÉ=}¡î+}u==u++ïšMgïMgá++îïýkùïgMM+Ñî+g+ÑÑîÑÑÑ¡ÑÑ¡ÑÑîî+M+ÑÑ+¢U»‚‚k¡î+++++îgMgù»Æe¸­£ -z++g++g¢¢¢+M Xh°š®P—ޱ­J;mVhÒ'K±\{. ((ûek 4 ¥- û-¥¶] (i(\¤Ý¸­¥¦{4òë-Ýý.Wõ-V ÈõÝÝõÈ o!!¬õõÈ{õe õ­0-£È)ú¸ää¤äÏ[°õëV]-]- \V¥±±y°ÆHý‚W¥ ]]--] ë\ò(ç'ëëëû -¥ÈÈ-V -Ȱ!.ýz­\ßßòç\Þ\çç\ëú¦õÝ[;…XÈXXP£¦)±£J;;¤ÆäõJä¤õõ[Æzzæz¤-çç\çÞ ¥¶ëÓë±.Óçò(Þç\Þh¦ ¬££¥­õ-¦£Vû (öðç0VTüöüü½TŸ%%EE%'¨ %ðöOO–E%ˆˆÓ¤U¤\‹‹E%†E†%%‹Ÿç­ ˆ†%½½T½TÂTTT ÂÂöEß–iiEßßððööðü½½‰ ‰ ‰‰Vez/.4õ{¥¥-­-V ¥Ý‚zk//áuuáîî++Mggggïïgššk/k//ïïggšš/ù//‚ ýgïï¡==u¡MMÑ¡+}á=áugïgïïï}áîîî+g/‚‚ ùM+Ñîg+Ñî¡ÑÑÑ¡Ñ+îÑ¡ÑÑÑî ÑÑÑ++gššuuîgù/šgï/ù‚Ï4­ ­-o¢g + +¢++U©±K‚¸Ž¶¦)‘¦Rhž'ŽŽhV]ž'£Ä\­o¤kzÏ!e e ]h¶±h'Ž\–V¬©È¦úë'VV-zÝ¥ ëõ¬¥¥- -¥õϬ¸õÝW4¸Ýtõ­Èȥȭ£ëú©[[[JLõõ­--0{]\-¦))P䯂z¤°----]È00]\\òçòò\çç\ëV¶¥-¥Èȶ¶¶V-z ‚o (ßiç\\\\\\\\'\ õÝ;L¥¥¥¶¶¶)ú±¶…°õóóÝÏÆ­°ÆÆÆ.¨z¸\(\ç(ò' ¶VÞÞ±oÝëç(ßò((ë'ÓÓÓÞ묩¦]]£¥¦ûë£Æ¬ ‚òÓÆûðÞ½ŸT‰½üT TT T%(ei‹–ò–èèˆèè‹O%I¤•‹‹‹EEˆ†‹†‹‹‹‹‹‹‹•ÈO%½½½TTTTT T ÂTüðEßßißððèöü ‰‰ÂE'-. /.tõõ0­È¥ÈÈÈ0o¤°¬.gÑ==ááÑ=á++g+ïggggïM//kkšk ÆÆýgšgš//kkkzÝÏ.ïgš+uÉáuÑî++îÑ++¡á==ïïšïï¡=Ñ+gÑ»‚ /++Ñ¡ÑÑî¡¡¡++îî++MMîÑ¡ÑÑ¡Ñ+++ÑÑ +¡uš.¨ ù/Ætem{¸ä¨.¨em/+++++/g.4£y[¢M@¬£ [e­¦hhžh› —\—V( .!z/kz!z¤'Þ V(ÞÈ] Ýȱë\\\']-­-ëë] !Ï ë -¦-È£-Èe¬­¥È¸õ¥--¥¥¥¥¶ÞÞ¶…¸¸…õ¥£¶-----]V±£¦)yÝÆææz¬­0{ hç(\\(òòòòç\ë ÈÈÈÈ¥--¶V­¤ ýz{\ò(ççç\ç\ëë'ëë\\'¶õ…õX­¥¦¶¥¥¶¦Ú°PP©[Ï©;¤ÏJJ¤ÆÆ.‚.\(ëò(\ë±V ±ë\±­¶ißiii\úVë\\\\ú°£]¶¦± ûëVȰ­©J O½ ¿‰Â‰Â¿TºÂ ÂTTTTTTTTT‹-.¦yò%%苈†–‹†%†i%%‹‹‹‹‹Ÿߦ ‹‹Ÿ½TTTTTÂT ÂT ½üüöððöðüüŸ  ‰‰‰‰BðÏk V ¦¦ ¦¥©­ .ư¤gáÑî+++ïïïggïggù/šz//¬Ïk//kkkýo¶¶-£æïg/ïîuuuÑîMMM+uuá=áîMï=îî++gÑ+ù‚»gÑîMîÑ¡Ñ++ѡѡÑÑîî+MMgg+ÑÑ ¡ +g¢¡}¡+¡ááÑg W°©-¦¸.¢Me!+¢+goÄ  z‚»+gÆ!o©°eJJÈ)hh'h›K(—\—KÆ!Ï /šký.¬ëÓh(Vz.¨z¬©hëç\\\']¥­VûVõݰ°¥ V¥­¥--¶¦¦-­mõ-¦-ÈõÈ-]¥­È-úçßÞÈõÈ¥£±±¦---¦]] Óë¶±)¦õÆæz¤°È¥õ0]-0õ0]V'\ òi((ç\òç'-0¥0-¶¶ V¶z‚‚°ëòòç\ëVVëëëë-Èõ©õõ££È­¥¶P©õ£¦¥°;Ȱ¤ä䯤ÆHz©çë'\çëVëúëò õë'Óòiðißi\ëúëÓ\Ó¥È -VëVúëëO ‰‰‰ ‰‰ ‰ ‰‰ T T TTTTTTTŸE›e4h%Ÿ‹ŸŸ‹‹‹‹‹‹††ˆ% hEŸ½½ŸT½½T  ½Ÿ½Ÿ½½ÂŸÂ ‰‰‰‰‰‰‰‰ ð­zt\ð'ë'ëh±¦ ¥V¥°È£¦¶/u+M/gïggïggggggïggïg//kz¬õW‚Wt//š/ Æz¶Óõ ú ïšïšïu=}ÑÑîM+áá=ááîgMïgïgáÑî+M++šýgî+ÑÑÑÑÑÑÑÑÑ¡¡Ñѡѡîî++îîMîî++++ ¡+g¢¢MU¢+}¡+ko-ÈÝgMggg! U+ -{z¢/.k¢±(›{PÚ-›KžžŽ'ŽÒK›Vh—KŽ' Ï!Æ!»//ï/ ]((õ .W4Ïoëë''\ë]õWW-¦-Ý­-V ¶È­¥È-¦ ¥È¥---Ȱ¸-¶ÈõȶVëßð±££±úëV¶--]--ëò±¦¦ú¶ÏÆz¬õ­­ ¸õ¥¥¥]-­¬õëVÝë((çççò(\ë]¶¶¶¶-¶¶ V¥Ý!‚Ï-'ç\'VVëhë''ëû¶õõȶ¶£¶¶¦£¥VúëúÈ©¥¸¤Æó[䯤¤.‚õòòë'çëëëëÞë£ëç(ßißßðß\ëë'ç\Þ±­V±ÓÞÓÓ\Óú'Þi‰‰‰‰‰‰‰‰‰ ‰‰‰ ‰‰ ‰ T T TTTTTTŸ‹%ŸT%O–%Ÿ‹‹‹‹‹%ˆ%%%-蟟 ½½ÂTT T ÂT  ‰ ‰‰‰‰B‰Ÿ'°š.'ü ë'ëë'V¦ëú±-0ÈȦ¬Ñýk/++gïïgggggïg/ Ï Ýzù+škzt4eȱ] kïšMMMuáÑ==Éá}îgïïggggguáî++Ñg+ÑîùùïîÑÑѡѡÑÑ¡¡Ñ¡Ñîîî+++++ ¡¡¡¡ +¢šk»»U ÆÝ ¤šggggkz¸ÏU ŽŽ kUkU¨£IIž›KhŽžžKKŽhKŽŽ—Ϭo.z¬z‚ .//š//.Ó(EVW .z4 o!¦h'h-z.zõ-È­È­È¥¥£¥-¶­¥--¶-¥-¥-­ee£-- --ȶòö禶ëë ¶¶--£¶£±±ë©¦V°ÏÝ­õ­õ¸¥ÈõõÈõ¸0V0Æ! \\çÞçç(Óë± ¶0-¶-¶Vë¶Wk¤-'\\\h Vëë'­°­£¶¶¶ -È ë¥õõõÏ.äÏä¤[äHH°Óòòçëë\\'ëç\ëçò(iðßiiðßi\Ó\Óëë'¦£Þ\i(òò'Vúë–‰‰‰‰‰‰ ‰‰‰ ‰‰‰‰‰ ‰ T TTTTTTTTTŸ½ŸŸŸ‹‹‹‹‹EK°4ÈŽi%‹‹‹‹ðVi½TTüüTTT TÂT‰ T ‰‰ ‰‰‰‰‰‰Âß 4'4VðTÂ'ë''ë  °¬°¬kÝV¶ÆÉ==g‚ÉÉu/gggï/ù‚Ý0­togï ÏݶÓ±ë(Þ]Ý¥gïggïÑuu===Ñ+ïMgïgïgg/gu=MîÑMMg+šî+++ÑÑÑÑîîÑÑÑ¡ÑѡѡîîÑÑ++++    +gkzto¬o. Ugg+++@k¨¬++Ut›h0Khh- .¸žK››ž›Ž'ŽK±¦›žII\Ž'\ŽK{¤z.‚.ýzzkù//kz{ë(iE( ý.Ϭte!-\\ë ! ýzõ-¶---Èõõ¥ V¶õ¥-¶--¥{ȥݬÝe­-¦ -¥õ{'öië± ëV¶--£--¶- Vë\Ve4°4-0­Èõ­Èõ ÈÈõõõõ¶¶ ëëë\çò\ë --¶-¶ ë\­z¤¬°Vë'\'ë Vëû õ¬oõ£±V -¸­ ¶ú È¥¥ÝÆä[Ïä;[ÆHä¦òòÞë]ë\ë'Èò(iß(òißiç\\ëúú¶¥\òißßOû ±h'i‰‰‰‰‰‰ ‰‰‰‰‰ ‰ TT TTT TT TTTŸŸŸŸŸŸ‹‹‹‹‹E–¶tÏ‘žO†‹‹‹è%±\ET TüÂÂT‰T  ‰  ‰‰ ‰‰‰ üß±ÝÝ{ öü{EöüTëë''¦V-W¤Ïõ¥æk0­á+áá/ÉÉák‚‚kg///kkýkzt4ýýMï/. È£eÓiiòò\¥‚gïgÑá=É=u}MïMggggMMMgg+gÑÑáááîî+î++îîgšïîM+¡ÑÑ¡ÑÑÑѡѡ¡ÑÑÑ¡î+¡+ +¢k .g¡+U¢¡ /U ¡+M M šæ¤e tg+¸h›- h—\h]›K0{h Ž{'\I—K{e!!ttW¤¨.ƒššš/š/ù¤PÞOOiEiß¶. t.! 4 \\'V]e!.‚z¸¥È--¥õ°­ ¶¥Èõ­-¶ --¥¥eeõݰÈ-¥¥¥¥È¶iðëV±V £¥¥¥¶]±ëëV¦­tz ë¶-¥--­4e ¥È¥¥ ëççëççÓÓ\\\\ç'ë ±V±Vçëõ¸¦È­ '\\''ëhhVV¶---¶Èõ­ ë'ëë©¶ë\ë£È¥°¤[;ä[[¤ÆÆúÞë -ç\ëÞç°ò(òÞ\(ßðß(òÞëëV¥ÓißEßi¶ ëO‰‰‰‰‰‰‰‰‰‰‰ ‰ ‰‰‰‰ ‰ T TTTTTTT½Ÿ‹ŸŸ‹‹E–ÄWÏÏ40›i%‹IV%%TEiü Tü  T T ‰ ‰Âü(ç­°õÓè‰ Oiö‹ü 'ë£õëë¥kMýtÏý¬ý¸¥‚škuÉáÉ=Égùkù/ký‚z.¤¬W.t¬¤ùï/kzz!¬¬0úç(iò'-¸ïuu==ááuá=}ï+ggïïgg+uá=á=uuÑîî+îîîî+g/îÑÑÑî¡¡Ñ¡¡¡ÑÑÑÑ¡¡+gš‚ϰ¸­­ ¢¢4 g +UUg¡á g/ äÈ›PÆ/+kÝ --]h'\\'Ž ]›'hh'hK -- hŽI—\ް¬t!tÝot!.»šù/š/ý¬È'ççOßßß(t Ƥ-±°tmh\\(\-o!‚oÈõ¸­¥-¶­õ£-¥¥¶¶£-¶¶VV ¥È¸ 0°È¥È-¶ Èði\뱦¶¶-££¶]¶õ4õ È­°­õ£-¶--¥õõ°õ]ëë'ò'V±çòç\\ç\çëúë'ëë'ë-õ¸--¤¬¥ëëVVV V ¶-¥--¥È-ë\çë릸­ëëë-¥¦õÝJ;ä;䤯HÝõ£¶ ëÓÓÞò£©çV¶ë(ðßi(ò\ÓÞÞ\ VOEß–Oç£Vi‰‰‰‰‰‰‰‰‰‰‰ ‰ ‰ T TTTTTTTTTT½TTTTŸŸ‹Ÿ‹‹‹‹‹E—oW¬¬¤!ÆÆ¤m¦(–†(]E4(%T\eVTüßö TT  ‰ ½ð£õ¬;¶O½‰‰‰‰ öüüm!Ï¥¦¥šue!W©ýïýá=šÉÉÑÉu/k‚¤WÏW¤Æ¤zz!È Wg‚È{õÆk  ­i((iV‚Ñ===uÑ++MuÉÑïïšggM¡===ááÑî+îÑÑÑîîî+g»++î+++îÑ}Ñ¡ÑÑÑî+ù.äo4Ä{] Èz ¡¡k{Kg +¢//¢¢¢ ¢U¨ÆÏÄÈ0±›J.k¨Ke.e'—IhKh›-h—V'KVVVK'\I\›o..zt¬°e¤¨ý»šš/š/æÝ±OòòOß–ßÞ»¨WVò£Ï0(ii( ] -o¸- ¸{-V¦-¶£¶¶¦¦ -¥¥ °4eÈõõõÈ--¥È°¸ßò'ú ± ]¶0È ¬W­¶V±£±ú­È¥õõȥȶëòëúë¶¥­-'ç\Þ\ç\çç'ëÓë'Óëë Èõ­¶¶°‚¬--¸õõȭȶ ¦VV¦-¥-Vë\ëë£È-± £¥£¥[JJ[X°¤ÆæH¤°¥ ë±ëõ­ëçVúëòii(òç\ççò((ë¶(i–iOi禶úçi߉‰‰‰‰‰‰‰ ‰ ‰ ‰‰ TTTTTTTTTT½T‹Ÿ‹Ÿ‹EžtWtWÏƤ¤!¤Æo £žˆˆ-E ]]V\E{-¸VÓV- ÂT  ÂÂT½ð(û­;Ý…±ß‰B‰‰BBÂððöT t‚.gý°©ý!Æk=á¤Ï‚õÝkM+=Máu+g+gg+g+gšg 0Þ'°¸¬‚oÆzõ-­Vë õo¤¤ý+¡¡ïšš/==+gîÑáá==ááuÑÑîM++Ñîîîî+îî+/šMî+î+ÑÑîÑÑîî++îîÑîšt¶ ¶¶0 eWg¡+tŽ'!¢g+U®® ¨¨Æä°©­Ú¥P¥…!®/z oU/ Ž\\VVKh ›ŽVVhhŽ\\IIhŽ z».Ï!z./ïg»¥ÓçòOòOO–]./ý4­ëm.hßßh](­õÈ­£-¶ - Vú ȸ¬ÏoÏe­­Ýõ¥ -­õݬëi(ëV±¶0õ¬Ý°õ-¶ ú]£]-{0£££­­--¶\\ëõõ£­õ¸­ë\ëë\çòòçÞ'ëëÓëëë ¥È¥ ûV°Ïõ°æz¤Ý¬Ïݸõ-V-ÈÈÈ-±Þ\ëë¶¥-±¦¥È¥¸õL©ÚXäæHÆ‚¤°¥ú''Þ(ëe-Þò(çëÞ\òòòòçççò(òç¦'iOçòOÞ](ðð‰‰‰‰‰‰‰‰‰‰‰‰ ‰ ‰ TTTTTTTTTTTŸŸŸ‹Ÿ‹‹‹‹‹%(‘!Ït¤WtW¤WWW¬!¨!4e4iE'iü(;TöÈTÂÂT½öß\­Ý¬Ý¬¬Xú߉‰‰B ‰ B‰öüüü' ¬ýýg¶°Ý{¥ ÆÏ{¸¬!ýÑMî+g++gggýkzo]Þ£¥©¤gt.‚Ý!õÝÏÏ{Æ/ïgggïgáÉáá====áuÑÑîî+î+M+î+î+îî+îÑîî+îïù/+Ñ¡îÑÑ¡¡Ñîî+¡k4£¶ t¨/g+¡ ¡++0I›!U !W;4©…oϰ©ÄLÈÚm‚UU › \I—›hI ©em ›h'I\\\IhK- ! zWÏtt!!z/ù/ïù¨‘VÓçòòòOi4‚ ‚¤4e -4¤((hVV\h0ç\ë ¶¶¶-¥¥-¶Vë¶0¸4Ýo°°¤ÝÈÈÈ¥---­--¥ iÓV¥ÈeÏoe4õ]V ¦¶£È­¥¶¦± ]¶¶¶úëëëë ¥­Èõ¥-± ¥V¦0 ë\\ç(ÞëëÓ\ëV-­¥¶ú¶©°°W‚ÆzÆÆWÝõ-ëë 0© Èȶëúú¦¦¦¶-£¥£¥XXXLX¥J䤯¨æÆ¸ëòòiç¦ëç\\\\\'òòò((ò((ÓOiòç\ë¶]'üð‰‰‰‰‰‰‰ ‰ ‰ ‰ TTT T TüTT½ŸŸŸ‹‹%†–›¥¸Ï!!!o¤WtzzƤ zÆ..o0¦hE¦/Ý‹Ÿú0ößih0©¬¬Ý©¦òè ‰‰‰‰‰‰‰‰‰ ööööëVWo£kÆÏ¬o©¸Æ}¡u=uMkùggkkýk.¬ÏÝõ¸°¶zg.ÝÆzW4z õW!­¦°ùM+Ñ¡u====áuuîM+Ñî++îÑ++îÑîÑÑ++Ñ+kùgÑ¡}¡Ñ¡î¡¡î++ÑM+¡îùý»/M+Ñ +¡+¡+¡/ I t!Ï 4m¥Ú£Äó¨;©£)mÆ»UgMMk-Ž'\\—\Ž {0{ ¸È]hhŽI'hK -›otttt¬oÆ»šùùšk.¤4PÓO\ÓOò¦°oe.Æ‚!W!!-0-''ë\h-V'V ---Èõ¥-VëëV--õ°¬oݬW!.Ý--¥---È---¥Èë¶4Ýoݰȶ¶¦V±]-¶¶¶ ¦ú'ëVVú ¶ ëûú¶£-£Vú ¥°È-­­Þç\Þòò'ëÞçç\ëV¶¶¶ú¶õ¸ÝWzzH¤[°©­-¥eÝ e¸È- ë -¥È£¦¶£¥XõPyX;¤¤ÆæzϦ((ii(ò'ë'ççÓV±Óòii(òçòiëßßç'-]\öü‰‰‰‰‰‰ ‰ ‰‰  ‰ TT TTü%ðTŸŸŸŸ‹‹‹‹‹%ˆ–%OİÏz.ÆÆ. ‚ kk!!Ï©£]ú\+.ëë'°!©L;o;¬WÏo¸±–ŸÂ‰ ‰‰‰‰‰‰‰‰BB‰Âöðði ] ­ÈÈõ¤gÑuááu}u=áuuugg/kkg/kýzÏÏÏõÈ­{­ý!ÆÑuák°¥V¦ .¨-]ÝoeõõÝ+=====uuáÉáÑîîîî+î++îî+îîÑ+î+îîÑîÑÑ¡gg+Ñ¡¡¡¡ÑÑ+îîî+g//MîÑ¡¡Ñ Ñ+  z'I0ooo Ä­{©!.ÝĦPz¢M¢¢ h]\—\h]°¬Ý- --Ž\'h›±]ÈÈ Ýo¬¬oe4eo¤k/ý ݱi\\(--V±Ýzz Æ]] VVV'V¥]V --- È­- ¶-¥È­Ï¤ÆW¤z‚ È-0­È-¥0­­°{¥°.W°{{ {¦ ]¶]££ V±Vú\i(\ÞÓë]¥¶ ¶V ¦¶¶- £-¶¥¥ú-È]ëëÞçòò(òçÞ\Óëëë¶£X°äÆæ¤¤Ï¸[¬Æý‚¤WÈ¥- ¶Ó'ë¶£­È£ ¦‘Ú¥XÚ¦£J䤯H!z°iiiëõ'ëÓë'¶±ëçii(((ißçÓi(ò\\'ë]]ö‰ü‰‰‰‰‰‰ ‰‰‰ ‰‰‰ ‰ Tü%%%%EETTŸŸŸ‹‹‹‹‹%†Eˆ‹%ˆOIKP;ÆWƨ.U¢ššU¢ùùùUý!¤!¤Æ¤.»äk»ÏWooW)ç ‰ ‰¿‰ ‰‰‰‰‰‰‰‰ Ÿðß00 ¶­¬¤Ý.Ñ¡áu¡u}Mšýýýý¤W¤‚‚¸{4 õ{£0. +gkõ{Ïkz¬!Æ kïá=u}+îÑuÑ++M+îî++î+îîîî+MM+îÑî+ÑÑÑÑ¡}¡¡¡}¡u¡îîî+îîš/kg+î¡+î¡Ñ¡+ ¡+ Ž4tzÆe¬ °…J¨U‚;­¥¢š¢/z0K\›4Vh¦Äeee{]hh\\Ž'Ž› ]-00W¬o°m ¬zkù//»!¤ÝV((Oii-¥±ëû]h£ -  -- -õ4õ¥ÈõõõȰÏϬ¬W!z.Ýõ°{¥Èȸ° õõ0ÈÈ-¶V¶­eW¬¸õ4õ-¶¥¥¶¶¦ëëëë(i(ÞÓú]£­õõ¦± ¦¦¦--¥¶±-- ëëëç(((òççëëû¶£õóÆÆ[[WƤ¥­z‚zýýW£±V'ëòçë± úúúú¦£XX¥£L[ÏäÆz‚z¬{ëi'±òÞ'ëÓçç(iiiiißß(''ßO\\ëëVë T‰ü‰‰‰‰‰‰B ‰‰ ‰‰T ‰‰ ‰ T TE%%öèiŸŸŸ‹‹‹‹%%iˆ%‹E†–%iI±©W®U+/š»‚ý/¤W¤¤!W¤tW¤ÏÏW.Ϭ¬¸±iŸÂ ‰‰ ¿‰‰‰‰‰‰‰‰‰‰‰‰ÂöEEEë0õ- {°ÝÏ‚ï+‚!;/g}uuMá/z.W¬Ýš/¤zÆ‚4­Æ/ Èt/Ñuuá/.u‚kugtõõÈÑggšš=áîÑÑÑÑî+îîMM+Ñ+++ÑÑÑÑÑÑîÑ¡¡uáu¡¡¡áuuÑÑÑîî¡++ï/»»ïî+  ¡+U]ŽK!zzzó¤Ï¬®U¨­È‚kóÆš‚K'Ž{ot KÈ žh\\—\Ih±]£¥©{°!oem!//»Æmò(–iE–\úV0ë\Þçú'ë-00 --{õ¸õ¥0õõõ°Ý°°°ÝÏW¤Ï¤¤¬ È-¥õ õ °eÝÈÈ0È¥Võo È-£È0¶-£ 'Þ'\V¶¦ ­È-V± ±±V¶¶ ¶¥£-Vò\'ë\\çòòòòÞ\ë±£…ó;;L;Æýäû¤‚‚kšý¥ëëÓëV'ç\ëëëëûûú£L°¸©Ý[䯯¤¤zW \i((òÞëëò((ò((ò(ii(Ó-'\Þû¥]VëVÓE‰ü‰‰‰‰‰‰ ‰‰‰ ‰‰ TT ði%½ŸŸŸŸŸ‹‹‹‹%†ŽIE•Ei—•±¦›O•£•¦­Æ ®Æ‚®ù/g»k¤W»» ÆÝ¤¤Wz¤¬ÝÈúçð ‰ ¿Â ‰‰‰‰‰‰‰‰‰‰‰‰‰‰ ðððë{{ÈÈ{»¤©È¤.ýù/oÆ¡¡îî.°W¤ýgu‚g/¡=uÑz‚uu°zïg/ktÈ ú0k¡Ñï//}=á+îÑÑîîÑÑî+î++îîîî++ÑÑîî¡ÑÑ¡}uuá¡ÑuáuÑÑîîîg/ .ý/Ñ¡¡ zhŽ0Æ!.‚ !WÏÝWƨ;HLÒ¦¥\\ŽhŽ'K{!..4 ŽÒ'ç''V¦]]]]¶£eetoemm­ /ššo-\O(iß–ðß(\(\© õR'ò( È{{{õ 0]-¥{È£-{­õõW!¸X¶¥©°Ý¸°¬Ý¸Èõeݬo°°ee{©°¸¶ ¥È¥¥ÈÈ£V'ë -]ë' ëë-VV±-¥- ¶¦ ¶-¦ ¦ VëVò'\çë £úÞçç(çççç\\'''ë릭…õ¸ÝÆæææ;zæýùùk¸úëëúë'Þòçëúë±ú±£õݬݰ;Ϥ¤Æä¤!¤ÏV\-ði\ëúVÞçòiò\ÞÞçòO'¦¦ £Ý]Óð ‰ü‰‰‰‰‰‰‰‰ Ÿðð‰‰ ‰‰ T T(ETTTE(iEŸŸ‹‹‹‹%ˆIE(›(ޱI…¦O—¦¦——›+ÆäÚÞ£ä¬ý¨H!N¤»ÆÆ¤¤ÏÆ ¸çöüüT  ‰‰‰Â‰ ‰‰‰‰‰‰‰‰‰‰B‰½ööð0©Ý0©¤ùù.ÏÏ­‚¤..õ¤ý¡kÝȬkï+¬Ï/Æ.ùùš‚+/ýkÈ£¬.¬kä­{±ëÝMuÑ+šš}É}MMîgîî+Ñî+++++M++îî++îîî+îî+Ñ¡ÑÑî¡áá}Ñ¡u=á¡Ñ¡ÑÑÑ+îM/‚. gg+Ñ¡ ¡ go—h°z!Æz.ƤÏݸ°¬‚!϶ÓÓÒ——žŽ›K'Ž'hk tž'Þû{¦V¶0£-¥0{°¬Æ¸m¥{mozk//»ÈëòòOi(ßߣ-\ë¸ ý‚ ±Ó¥oW4õ¸Ï ¥¥-È0-­­ÈƬȣõ¸J¸°°ÝݬÈõ¬õ ¸¸õ õõ0õe4- ¶¶È¥úò'h'h''hhV'hhh¦-¦±VV V ëëëVëëë'VÈë\ë¦VëÓ\\Þ'ëëëú£õ°¤Õý‚æý‚‚ý‚‚ýýæÆ£ëû¶úëë\ëV±±VV¶¦¶õ¸4ÝÝݸ¸Ýóä䤯¤¤V' (çëëëòißß(ò\\òi\ëõ©¦­Ói'\𠉉‰ ‰ (h VV¦ T ÂOTTð((ŸŸŸ‹‹‹‹‹%‹‹–©¬›E ©4h‘›††¶Ú¥OžÄÏÆ¨¬†±¸>Ó‘;óyyÆLJóóWäääz‚¬Rö  Â‰‰  ‰‰‰‰‰‰‰‰‰‰‰‰‰‰B TöðEû4e.kýWϨzÏ©k»W‚z­W¸¬ù+MÑ/gïùýõ!Æ.‚‚/kk¨ È­. ú¥]]ý}îg/=Ñ+gïMîM++Mî+++gg+î++î+î++î++îîÑ¡¡uá=u¡Ñ¡¡uáuîî+îî++M/ý¨.k+ ¡ +g¢mI t z¤o¬J…Je¤óž|?I——Kh {¶IIhŽŽ0k¤m'Ó'h {V±]-¥­!Ý0¶-© //kz{(((–O(O\!¤¸¥oý/ù.mt.zäÏo¸õõ­È­¸{-È0õÏzzƤ¤¤Ï[ÝÝÝÏϬ¬õ-¶-È­õ¸õ¸44°õÈ{0V]È£Vò\ßihh''h''ëëV]¶ ëëëëëë'Þëëëú-­¥Vëë±Vëú±¶£ÈõõÝõõÈõ¤ÆÆzææýæææÆæÕNN‚¤[)ëë¦ëë''ç\ëV± ¦-õ44¸õ­…[ä[¬ÆÆohß(çëë\òòißi(çi\ëë¶È ­ ßÓö‰‰‰‰‰‰ (±ð‰ èTTi\ü  Tü%i(%TTT%(i%ŸŸ‹ŸŸ‹Ÿ‹‹E ¸ ¥I0›m›%­±%-Xˆž¬Ý¥»ÆÞOÏJû–4û–ðyEë¸o¤/ÏÏä¥E TT ‰‰ ‰ ‰‰‰‰‰‰‰‰BBB ðEi0 ‚oÝÏ»ïz¥¥0e°È©V¦õÏ=áuuu}+gktõÆ!‚‚ÆkHk/!°¦0 {°­V{£V­ 0 M¡¡gïš=+î++îî+îîîîMîî+îîîîÑî++îÑî+Ñ¡¡áááu¡¡Ñá=uîÑÑî++î+++gk.z Ug ¡ ++/0zk !Ï4­ÄÄÄ­X­ÈÚPVûÓÒ•I±)›z‚¶mm .tI''¥ t]V-]]---eo4{-¶± /k¨ '((((–(((Þ¶t‚ý kz¬t¨‚W¤oe4oÝ ÈȬݥȤ.Ƥ¤¤¤ÆHÆÆ¤¤ä¬¸ V¦¶¥õ °ÝÝ­õõ-È­ëë\ßßëh''hV--ë'ë'Óëëëëëú Vëë릶-È­­VV¶]õ ÝϤÆz.ýz¤ÆÆææææ‚ýæýýæóÆýùNHæ¶úÞÞëúëëëëëëëë''ë¶¥È-¥­­¥È©;ÝÝ[¤Ï£ççõ](Vë\Þ\òçç\Ó£¸­V£¦-ç(çÓ–E‹ ‰ èE\±öT ‰‰ ü ±È û¦ûOöüß(ò%TTTOòO%½Ÿ‹‹‹‹‹££—¶'£±iŽ0e•±]ž–KW­ž!-ëòÈçy)hÞè¶èŸ‹OÆ!Ï!oWÏ­i ÂT½   ‰‰‰ ‰‰‰‰‰‰‰‰ ½öðV¸Ï0{¶Èoe¬e¥õ¸ëVû©Ýg}}ù/¡uuu¡kÆgî/+šok/g/È'0m°¤©ëV ­¶W¡îî¡Mš/îuÑîMî+++îîî+îîîî+îî++îÑÑ+Mîîî+Ñ¡¡u=áuÑ¡uáá++++îî+Mgšù‚‚k+}¡Ñ¢¡¡U]Žek®z¤o4m mÄÈÚ¦R›¦R›ÒIIŽR¦È!U!Ækzz®te-ŽÞ' m{­m ûV££-¶]0!°õ{-]¶ -]eW.zoV(\\(' 0e‚k‚ϰõ¬¸È4¬WWϬ©õõݰõݤzϬ[õL䤯¤ä¬Ý°õ ­ ---­ õ¸°Ýϰõ°¬o°õ¥Óë] 'çëhëh'h'úVVëëçç\\V± ±VVV V¶¦ ¶È¥Vë]õeÏWzHH‚ýýý‚ýý‚‚kææzæýýNæýNæõyHNýHHä°­ëiÞëúVëë\Þ\'ú VV¶¥È¥­©õXõÝ£\iõ-ç±-V ¶¶ úV±¦£È[ϦÞÓ È¦¥¶\ú'04]ü½Ó '½ ‰‰  òW.]Ÿ(Ó¶¥VEði(ŸT½T(ç(%ŸŸŸŸ‹‹‹‹%%Ž¥-—I]Kˆ(K ]Ihˆ'ûÓ£V((èE–ðihëöðŸü‹‹ò›\-;.WÝWW©½½ TÂÂÂÂT ‰B‰‰ Töð(ú V]¶0 õÈ0°W¸È¥-Ó'±©oeý‚¤kMïg+//g‚// kÝ0ý+gk‚¸-¥©-Èó£'-°°£ ú¨Mgîgký++++îî+++î++++î++++îîî+îîî++î¡ÑÑ¡uááu¡îîááuÑîîîMî+îgggMg» +¡¡+¡.›K!kz!otoJȶV?K]-KŽŽ±£››Ä®Æ.g¢Uk -h'm.t4]¦¥Ó -£m¬W­¥-V¦¶¦V0¸ t{Ói\\'h e!eo¤¬Wo¸mÝ ­©ݬÏtÝeeeee­0 °4Ý丩[ϰÝϬ¬¬¸¸ 4õ ¸°°°¸°Ý° È-¶¥£] ]]ë'hë''V V'Þ\\ëëúëëëë± ¶¶V¦-È-£°!Æ ‚.‚‚‚‚‚¨ýýæýýýææý‚ÕNNùä£R£[óJJL;ä[úòòçëëÞçÓÞçççççë-¥-£õ­¶ú±©°¥\ ¸ëç(°õȥȭõú¶V\'-­õ- ¥£¥4.Whß  V½‰ ‰‰ ‰TúkïkÞ‰ÂžÚ i–ŸŸ%òOŸŸ½‹Ÿ‹Ÿ‹%‹†•†%I?‹†%EˆiI'OèèüûVßöŸüðèðûhEh¸W¨t¤Ýiüöü ‹öüT½ÂTŸT T‰BB‰üðß\ V]¦-Èõ-±õ û'-¸Ï¬‚Ï gï/W‚æ ýïý¥°ïšùùýýÝÝ© -m- ¦¦‚ïM+ï/.Ægáu+îîîîîî++++++î+îÑÑîM+++î++î+Mîî+uuá+¡uáá¡+ÑÑ++MîM+MïïM+îgïU®»¢  ++K›!‚t!¤!.¨äÄ‘±ûû¦ÚL£)¥¬ÆÏW¸.Mk z{]›Vȸzk.{V \¶00õzÈ-±]]hV±VÓ]WtV(–' {e eoo!e4e©©!¤¬J¬¬äư4oÏtt¤¤o¬¸­]È¥-ÈÝÆÏÏϰ¸°°WÆæ‚.zW¬¬ÝoݸÝ44oeeõ­0¶V £00-£ 'h'ë]-ÞëëëëÓëëëëëV]úVëëë-Èõ£-¥È¥o¬¤ÆÆH¨‚‚ýÕ‚HÕýæýýÕ‚N‚ÕkšššõëçûJ¶çëûõääPÞß(çëëÞiò\ò\\ççç\ëV¦¦¥£¦ëëõWz°ëõ¤¬ÈòiÝWÈ-õ'ßÓ¥õ­­©ÈV-­4e¶üöüT ‰‰‰ ‰ ÂT Ýšg¦T TT½\ ;ÈŸTT½E(Ÿ½Ÿ‹‹‹‹‹%%ˆi(-K†%–(Óhi%‹‹‹‹‹(矋öèEèß0žö–¦¨W¨¨¸ßüT‹öü½T½üŸ‹üÂü‰‰‰ ððÞ 0ÝõÈ0] 4¥È­ë±Ï¤zý¤kš//ÆÆ‚kšMe/ï/zzù.È4£È©0¦V ek/+ïùùùM+îîî++îî++MMîîîî+MMî++îî+MîÑî¡uááÑî}uuu¡î+îî+MMM+MMgï» !Æ.MÑM…ž¦tWÏÕ»Æ!ƬÈÈ©¬PÒÓûLy»zϸ¥È‚…£±¶ÈÄĸWý !tÝõVV0oz 4{È© È]VV'\\\]e4±Þ ݰ Ïz.°e©Ýzt4eeet!o°eeÆ!¤ztÝÝe©õ©­­©¸WÆæÆWÏϤ¤Hæ‚ý.z¤tÏe °o©eee¸õ- ± ëëëëëë'ÞëV'\\ëúëÓëëÓÞë È ¶± ±-õȶ£££õ°Ï¤¤z¨ÆÆæHææÕÕÕýNýæý‚‚ýýNùMïæúOß±LçOÞÓúH°ëiß(çÞò(((ò\\ëçç\çç\ëV ¶-] õW°¶¦WgÕÈòÈo¥¦­e¤°£ ëi¥Ó-Ýݦ¦V¥X0E( ‰ ‰  ¤š‚OTT TTTTO{W¬Þ%Ÿð(çiˆTŸ‹‹‹‹‹‹‹%†O†%‹‹%‹EIhO%ö‹öü‹öð‹(‹ð'£iß%ü­ý‚¨‚»¦‹TTüüT üüüöüüü‰‰ Âüði'ûV-!Ý{-ú±0¬z¬¬¸¬kg»šù»Æ gù!eÝ.zeùš/ ‚ùïg/¤Ïz¬°õ4ä4õ ¸¥ ±¥¤/šîîùkýîÑ+Ñîî+îM+++îÑÑ+++î+î+ÑÑîuuu+îÑuu¡+î++++MMgïššUU»®‚ÆW¬zUk£I¶Æz®‚zW©È-¦ÝÆPII—û¦››­äJP)››‘)±£©¸e°°;ùNte - -z.t4õ0- VÓ'\çç'-õ{o¬e o¨ zo 4W!Ý °°ot°õ­0¸tW¤Wݤ©ÏÆ.Æ‚‚‚‚æ‚‚‚ý‚‚.ƤWÏϰ­{õõ{õÈ¥õ È¥¶ ëëë'\'ë'ë\(\\Þ'\'''\çV¶ ±£¶V룣±V¦-°oot!Æ‚‚‚Õ‚æÆæNNýNNýýý‚ýÕùšùÕ¤¶OòXLòÓ¥Èõä¤äúißßißßi(çòç\Þ\\ëëëV¶±V z¬ VÆïýõú\ë õݰ°ÝtÏõȬ±±{û' °Þû±©{'òüüTT T TT T üOÓT T ½%\û­]V¦È4©Èû(T½Ÿ‹Ÿ‹‹‹‹†–i†‹%†ÞÒ>èð‹ü½öð(ö¦iŸßOiöç{!!./ ûöT‹ü T‹ü‹‹‹‹ŸT ½öööߦ t ­-V±0ooz¤t»zý/k/»¤.ýÏWÆõÝùý.ý/ýÝz.z­ ]0±' ¦-ä/gîgšký=uMÑÑÑÑÑ+î++M+îîÑîî++îîî+îÑîÑîuáá¡}u¡îîîî++ggMîMMîMïšï//»‚®‚zoÆz©È¬‚UƤÝÚ-P)RÚoe›—›Ú‘Ĭ°P¦£›±£L¬¤e¬Æ »‚e 0 £mõ¦ ëë\\\\V eo° ©¸.z.zm oÏo¬o¬W0¥£¶õz¤t¤.z¤zz¤¬WzƤƂý‚‚‚‚‚ý‚ƤÏÏttWϰ{Èõ 4©­È­­¥¶-] ëëVVë\òÞÓëú'\\\\(òÞ\çÓëëëçÞ'-¶VúëçòÞ £ ± ¥eW¬¬W¤!¤ÕըƨýÕý»»ýý‚‚‚NNkNæä;££ÏõÓ¦Ý䯤Þðßiððð–çççòi(Ó\ëëVVVë' ¶ëëõÆÆæäÝõõ¦ëV©Ý¤WÝõ£¶{©-'ÈÝ'¶¥'-©©0±ò\(EðüööŸ T‰ ü  ÂT T½TT%içž ‘y£¶ëߟ‹‹‹‹‹‹‹‹%Ei%%†Ÿ%†–ž\èö‹‹Ÿ‹ŸöE–ç¦Þ‹öEOèßÞLÆ k4ß½üŸÂ üöüö‹T½ðEi(' ' e©]V V ¤ »oƤgšùšg.¤kù.‚¨!kšÏ{.ý¤¨¬ ©õ{o4]'V £]°kMgîMšk=áî+îÑî+M+îî+î+îîî+îî¡uáu}¡uuî+++MMMM+g+g+ Ñ++ M¢k‚‚k® !ƨzz®U®‚Æ©¥±)£ûçÓJ¤y¦Ä°Ä…Ý­-ÚÄ[¬¬…°W ®¨W ­0{] Vë'ëûÓ\\\\(-mootte e4e !zo!z¬ÝÏz!tóÏ-{È¥eÏϬWÆzW¸¬z¸¤. !o¤Æ‚‚‚‚‚‚‚æWÝeeeÝeõõ­õõõõ­­­¥Vë-] ëëV¶ ëëÓë \\\(ç\\\\ÞëVò((ç ¶ ÈWtt¬¬ÝÏWÆHƨ‚.HH‚æææýNýÕ‚¤LLJÈL±±©ÝäH¤¤¶ðßßßßßßi(òççii(ëëëë(\ò ÏæïMÆä¸Ï¬õ-{oä ¦¶­õõ!H.¦õ­4­ozt¶oheeih!ÈðT\{ü¥úü ½½T T½Ÿ‹%%%‹(矋‹‹‹‹‹%%%–i%‹%ˆ(Iòi(èüöüööç…hEö‹öèè‹‹ßßO°¨‚ ÆÓTüü½Â‰ ‹èöÂÂüöüß(\ 'ë­t¥¦¥W°°õ»+‚»+»¤kýššk/Æ‚zý/ ¤ý//ý°¬‚. ýW.©J° o0'-h\]ݰWkggî+g//É+îÑîîîÑîî+M+î+î++ÑÑîî+++î++îÑÑÑ¡¡u}}ggg+gM+ggggMï+îÑîî Ñ¢k‚¨ »»UUUk®»®®¤…¶RŽŽŽŽŽIK£X¶K¥;ÏW;]±Ú¬ÆÏÝÏÝ­ mWÏݰõ{{]-£-]] VúëÓ\Þ\ç'044ot¤!oe Ï!eo ÝWz¬zÆ!Æz¤W¸o¤¤ä¬ÝoWe -Ïz. ..‚¤z‚‚ ‚‚ý‚z¤Ï¬ÝÏÝeõ- -õ -ëV¥¶ ëëë - VVV'\çëò\\\\\''çi\(ò(i(ëë\ççÓVë\\\\\ëëë'0õ¬WƬݰ°ÝW¸õ¬Æ¤W䤤æNùk‚ýÆP±±ëÞç±ÝäϤæOßOiii–ßi–iòçÞçòç\ëë'\çç(((ú°ÆæÑM©¥õݤ¬-òßÓ¦ÈõÝï}Æ£.ýÝ.°¨îg£/î¸}°òMH+©©/mò!ßTTTTTÂTÂTTT½ŸŸŸ‹{¥‹‹‹‹‹%ii%%‹%%%%%%è%‹‹‹‹ðT± iiðüðöüTððEtýýýÝöŸŸÂ ‰ Ÿ‹Ÿ ½ö‹Ÿüß(\h -¦ë{0õ¤¤Ï-©Æ Wo///ùW¤kùùgïýo°ýg‚ýgg!o¬kkzo°Ý4¦\'ë\]o©-4Wzkšïgïïš==¡+++îîîÑî+î+î+îÑîîîîîî¡¡¡++¡++’MM+M+++ggM+Mïïg+++MMš» ‚Æ.»U¢UU®U®ÆĦK'O–––•—•—RX…£)ÄÏU¢Õ¸©Ä­Ú¥­L­¥£0]--¦ Vë''''\\\(((]­eõmtt¸°{ozztoeooz¤o¤!!tÆHÆÆ¤Ý¸°Ý¬ÏÏÏÏWÆ‚‚.æ‚‚ ‚‚‚‚‚æzäÝÝÝWϤ¬õ£VëëV{©­­­¦\'ë - 'ë'\'\\\\''(\\\\çò\¥¦òiÞ 'ëë'\Þ\ë¥õW!ƤW¬¸È£°¤¸-°ÏÏÝÝ[äHkùýææHJ¦ëòòòò¦õ¦ûÝÝçòi(òòi(O(iiò\\Þ\\ç(òò(((縤æÆùWõ±-õ©°Þðò±õ ÝWggõ­ ‚z õ!Ñuý> u û+-(»š¤/ä­¨¤ë ÂT TÂTTTTŸŸ½½ŸŸè禟%‹‹‹‹%<–ˆ%‹ü‹üü‹üüE£Þü‹ŸŸüüTüû.!Æ!T Â‰  üði'-0-]È­­4o¬­0õù-Æz°tƒz‚ùšgýõ‚/‚‚./kÆz‚W¸ È©4]ë\o!¸Ï.ùkù//ùšgÑÉáÑ+ÑîÑîÑ+î++î+M++îî+++Ñîî+î+++ÑÑÑÑ+MMÑîî+++MîMïïïgïgïgMMMM¢šU ®®®UU®®U¤¦''IOO(–IžŽ±Ž›°Ukzó­4Õš+¢ °È©­¶]£Ú-¶V]£-¦ Vhhúë\\(((( em{©{ eõottƤÆt¤ÏÏÆ!!¨!¬õ…°Ý°°[Ïä¤Hæ‚‚‚ææ‚‚‚ý‚ý‚ý‚!Ϭ¸e õ¸¸¥-¥õõVëV]©°¥ \Þ' ]'''''\\''(\\\ë'\\\\ç(ç''ëëë'\ëú-õ o¤!ÝÈ]0e¬4õ{õ°[[äæNýæz¤£û±çÓVÈõ(Þ±õõ\ç(iò(ß–òiiç\ò((ò(ò(((çÈóƤÏýkýzÝ¥°Þ ¬Ý(ÞÈÏÝù/Æ­õýƬý¬äïMumiï}¨(žÄK.­/oko¬¸ T½ TÂÂTTTTTTTò¶ˆ‹‹‹‹‹‹%E–E‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ð](ŸðüŸŸŸ½ŸÂTŸW¬¤­Ÿ  ¿Â‰¿ ‰ ÂE{©­¸õ©Ý°z¤¤©Ï.MW/óV0 ¤g/ï/k‚ÝkkHkÆ !¥o¬¬Ý¥oo£m¸¥'iz¸¬¨ýùïù .k/+u+Ñî+++îî+î+M++î++îî+Mî++îî+î+îîî++î++Ñî+g+Ñî+î++îÑ+Mš/ïM+g¢¢g î M¢k®æ.®¨®äL ȶKIIOOO±°¶K])Ú;‚+¢®!LJÆU¢Mg.…­£¶)úúúRhëëë'ë'\ò(i((\¦¸e ©m© m©o°oemoo!.!W!W Æ!Æ.Æt±ë¶õõ°Ý¬¬Ï¤‚‚ý‚ææHHæÕ‚‚ý ‚oÝ õ¶¶¶]-¦ëÓ\òòçVÈ¥¶¦±ëë-­'hhhhhë''\ç\\\\h'\\\((ç''ëë'ë¶¶V¶¶¶-­ °ÝWWÝ{]0]¶ õ-¥J[¤ÆÆH¤W­££ë04oWòë­¸õVç((òOii––(\(((((((((òç¶­¦Ý¤¤!õÝ!Wo°ë°¤]Þ {¥-W‚W W©‚z¤ù¤kÑë–¬¢­–/ý/¶ošùMÈ­°TTTTÂTTTT½T½½½Ÿ‹¶—Oˆ†‹%%%%†E%‹‹‹ü‹öüúûöŸŸŸ½T½TTTTÂ\o¬o¬ò  ¿‰‰‰‰‰‰‰‰‰‰ i-°¬. ݸ°¬¸°!¤.ÆWk/+ýtÆ ‚¤š/ï‚tÆ‚./.ÝW­£©©4Wz.Ýõ¸°40V'\Ve¤-'k/ïšk‚k¡uÑÑÑÑî++î+++î+++î+îî+++++++M+îî+îîîîÑ+îgÑîîî++îÑMkššM¢ššš@gg¢+ Ñ ¢U®¨l¨40È{›ŽIOi•ŽK±›KKÚL°¸‚M®! äU+ š‚Ýͱúhë?Þ\\ÞÓÞÓ\\\ò((((-° 4e4 ° eÝe © °ez!otWz°ÏÝe4°tW.oXX¸°[ää¤H‚‚‚‚ææ‚æ‚ýýæ‚‚.ÆÏ­õ{- ëëÓëëë\ò £°­-VV¦Vú¶È hhhh' V\((\\V\\\ç\\\\\ë]ȸ°È ¦V ±-õ°eõ­eõ0-¦V-]¦]£{©°[Ý䤤ä[© \\Þë4'Þ\õõ((O((ii\\\((((ò縬£[WÆW­ezݬz¥çë0õ¬Ý]ÞÓëúõõÈWưÏÝz¤ó¬W£Oð)iÄV%•y°Ò›­>V òh‹T ½ÂTTTTTTŸŸŸŸŸ–K¸°Ý¸‘iˆˆ†%%%EE††E%E†%%ˆˆ%‹‹‹öö‹‹ü½i­O½‹TTTŸTTÈe¬- ‰Â‰‰ ‰‰‰ ‰‰‰ ü ¤.ýý‚!¸­¸Ï‚W.eš{¸š¨+g/.¤ý/»ýk‚W!z‚zÏW!zÆt¤Æ!¬mVh­ Vh4ýïï/ý.»ïá=¡¡u}îî+++îîîî++î+î++MM+++g++MM++M++î++++Ñ¡î++gg+îggggšùýý ‚®»N‚® ®®UšM+ ¢šUÄÚy››KŽ——(>—Žž?ŽK±¶]›±¬¢¡/‚®o-Ȩg¢»‚0›Óž?ÓÓÞÞççç\ç\\ç(h¥ot°4¸ ­m4°444eoee!tt!!WeJݤ!Æ‚¨!J°[ÏϤ¤!æ‚‚ý¨H‚‚‚‚ý‚ýýk‚Ýõ ± Vëë\\çòòç\ëëú¶£ ¦ÈÈ¥-¶VëV -VV V\\' ''(\¥\\\ëëÞ\\\ë\]°W‚¬ ëëëë Ȱ°¥Èõ­¦hëÓVëë ­õõõõ°Wưݶççòë¶ëëëëë-­õ\(i(i(ë-ÈÈ\((\\ WzäW[°©¥¥Ï¬WõV]¶¦ VÈçÓú¶¥¥­ÝÏȭݬ¬¸úið薋½‹¥!©EˆiièEŸTTT½TT½‹ŸŸ‹%ˆ((((h O((%%EE†iii–ˆE†ˆ%‹‹‹‹ö‹ö(òüöüüŸŸ½TTT½½TTTTò;e ‰‰ ‰ ¿‰‰‰‰‰\¸‚ý/ z¤Ïtz¤ !‚ϬMkõ¥¨š‚䚂Ϥ‚k‚¨z.»/ý¤W!W¸¬! ký omõ .t00¸!kšïg/kýk/Ñ+áááîîî+++M+M+M+’+++++MgM+++î++Ñ+Mîî¡î++ïšg¡gïgšš» .z!!z¨.¨!ÆÆ‚®UkUUU¨oÄÚy]›žŽK›ŽŽIŽŽIŽK¶­X‘žŽP¨M ¢š»ÝP¦©¨šš»ÆLûÞç\çò\çç(òç\çò(ÝW4{­õ °e4°e eWt¬¤z!!.¬°!¨.¨ÏÏÆ¨¨¨Æ¨‚‚¨‚HH‚‚æz‚‚ýW¬Ý°­-'(ç\ë\\ëë¶ ¦¦Þ\릦¶¶¶ ëV¥¥---]]--V'hh\''\\\']'\(ò\\iòë¶­õõ¶ëçÞ'ë-õ ­-¥{¦±¶ ëë'ë±¶¥£-¦-°W¸õ°-ç\'ëÈÏ­ úë륰¸¦'çç' .‚ o¸-Vë\ëeÆÏW¥úޱȥ°\¶­ ¶\ò\òòòÞ±ÈÈõõõϬ¤W¶(OððOTT ŸŸ±eˆO†%EiièE蟽TTTTö%%%†–ˆ†%(†E††O¦©0È£—(–i(\iiiE––E‹‹‹(õÞöE苽½½TTTT½ ü£Ý;½Â ‰‰¿ ‰‰‰‰‰‰ öVokM+‚Ýo°-­°©°z/ï+e¨/¨oýMšM/!!e4!kϰz‚¤‚kùæ¤.¤4¸»š/kù‚¥­teoÝÈeÆkšššš//ù+=ÉáááááÑ+îî+++î+M+++M+++++î+++gM+++gMîg+îîÑÑ+ï+î+ggš/ký‚¨Æ¨‚æ¨ÆW¤Æ¤ó[Ïoe…X0ÄÄ]KŽy‘ žI›Xe¸]KŽÚ!UU ¨¤.¤©©ÆgMg‚4VÓëëç\ò\'ë\Þ''- o4 õ0-4oeÝo¬We{­ÏW¤z¤°Ý!z¸­¤t¤¤¨¨H‚‚‚ý‚‚¨ÆÆ¤äÏ¤Ææzõ¦õ­¥ ëi\ëëV ±V -­¶'ëëë ¶¶ ¶-­ - 0 VhVë\\\(\'h\'\\ç\\(\ç(ò(ç'V¶È-V\ëëV-e¸È]¦Vëúë¶¶]úëúëë붸°­õÝWë'úëë¦-‚ý° ¦ V±õݰõëúWý‚ký æW{õ¤z¤Ïç\ëV ÈÝWõ¶õ!eë(ið'±ç\ë¦õ¸­¥©WÏϬ¸‘EEèòT ¿ TŸEˆ–Eˆˆ††½T½üö%%%E–ˆi%%†E%O–%(Ž K¶40ž((••••(iˆˆ‹‹‹%è¦ÞEiçOçEü½TT ½ÂÂTŸÞݰ¥Ÿ ‰ ‰‰¿‰‰‰Â(Æ/ggz°­ ©m©¤kïMg! ù¨Wšù//»4t ¬°Ï.©‚š¤æýWÏý/škù/ïzVV4V¦o° ­õÆï+gï/ùš+îuÉÉÉ=áÑ++++î+++M++M+++M++M+MMgM++MMgMî+gg+Ñ¡gg+Ñîïšïùý‚ ‚¨¨‚‚ÆóÏW° 4……LÄÄ4{)›‘{Ú00-KK04Ä›—ŽK U/+¡»æ./¢»W¬‚¢gïý[¶ëÓòçç\\ë''ú¶0Èõ-õ¸0õe - -{õõ{4eotÝõ0 tݬ¸oW4©eÝz‚‚H.‚ý‚‚‚‚¨äÝõõ¸ä‚.Ý¥¥-0ëëëëV¶¥­¥¶ õÝ¥\ ±VVúVV¥°¬-ë¥0]ë''h V\\ëhë'\\\\\\((\\(çõ-V'\\0¶V-õõõ­­­-£¥­ÓÞÞÞ­¸¸¶ëõú(Þ°zõVõ°gg©ë'-¬]'ÝýõVÈÝ© -¤ÏõõݤýÑÑÑý‚zÆææÆWÝ­Vëú -¦¶¬.zý‚ ‚ëiò]i\'V¥¥V±õÏÝ (ßßèEüT T TÂ%%ˆEE%½èß%ßE‹EE‹%E†%%E%•(K°¶—(O(((O†––E%‹%%%‹‹ÞÓ%öiÞÓëO%Ÿ½½½TTTTT½E¬e E ‰ ‰ ‰‰‰ TèÏùýý.¤°] ]£‚šg¡}ÆÏ z kù/¸J¤ !tz‚gk‚toz ùšùkšîšzo¶ú©V£ze£'VÏšMMgïMgï=ÉÉ¡M+î+++M++++î++gggMgMggMgMg+gM+î+MMÑî¡îî++M+gkk»»k» æ¨Æ!¤¬Ý¬¬¸© Ä Ä0y{ÄL{Ú{Ä›KK¦-›K‘‘U»N¢¢®®®/ge‚»ý !õÓÓç\'Óú-£Ó\ë-°e­]V¥{¶ £]{õÈ V-­¸eÝe 4Ï!e¬W°ÝݸÝÏ¬ææ‚‚‚æ‚zæ¨H¬õ¶ëÓë]õςư­-0¥-¥-¶-0õ¸©¶V ë'ú¶¥õ-¦ ± ÈõÈ- ---ë\\'''°-ëë\ëëë'ë'i((ò(çëëòò Èç\V£¥­¦¦­ëÞëÈ(iòÞõ£'-o¶Óç­ \ç ëÝk çÞ((-Þi뤤ȣ¶Võ- ¬Ï ú£°¸¸æÑšWÆæÆÝ©õõ£¶úëëV¦ÈõõÝæz¤W䥶ëçÞ0ëßOç¦õ ëȸ¬°'(ßEèEçð T TT%%ˆˆiiˆ%‹èEßE‹%E%‹%ˆE%–†††ˆi•- KOO—>O–i†‹%‹%EK£i‹(ëûVhEüTTTT Âü‘oÝÝ ‰ ¿‰‰‰ Ÿ(m¤W.‚ÏWW£ë°Æš++=k4ÆÏ.Wϸzk»oõ¬‚Æ‚///ïk ¨4»+š»/‚»š+.õ­¸om4 ëÝkgggg+gMgïgM+Ñ=u+M+î+îîM+g+gî+++++Mggïïïïïg++îMgÑ+Mîî+ï+Mgk ý‚®æz¤tÏÝݰJÄ{{{ÄXÚÚÄ…LL{0{0K›KK ÚóÚ.¨!z®æzݰ­XP)¦L­¦ú±ûÞç\ëÓûë {õ-ë\{Ýeë ] õe{£ÈÈ]V]-¸ ­0{õtz©4°©eoWÝÆ¬¨.‚Õ‚‚‚æÆæWõ±ÓçòçÓëõz‚W°--­ ¸¸­õ{õ°¸-­VV¦¶---¦V V¦- ¶¥0 \\\h VV'ë\\'ë\\\(iii(\çç\çȶç\ ¬õ- Vúõ±ëççßßi(¶'(£¸\\¦©'V϶Þçië ë¶W¸-¥¤¤°¸.¤¥-¥¸°‚[HHÏ[¬¸£ëVV'ë¶È¤­¸Wz¬¦ëëç(ç\((Oõ­V£õ°õ'\ßEEðEöT ÂTTT%%–iiE†%%%%%%ˆˆ†‹%†%†ˆˆ††††i%Ie¦(†•Oˆ%%%%%\±-O%ðòû±úòèü½TTÂTTTTeÝÝ ¿Â¿ ‰‰ ü\ t.!¨ ý­0ùîî¡u}ÈÝzšù‚¬tÆš.¤‚¸!kùù»ï/Æ‚¤JšîšùkÆe !WW‚oõhõ ïgšîgškšgšgîu¡î+++î+MgMgMggM+++MgMïïïšM+îî++ï++gî++g/»ùïšùý‚»» ý Ƥ䬬¬¤tWä¬JÄXXÚy{…44ÄÄÄP0]ŽŽKžKPä¨t 0ÄP©L©È›K'Ž''ž¦-±Vúûúúú¶û']]]ë õ¬e0¦ëVë-  È0{±'ë V- ]V¶±Ý!õ]-eõ¬Æ!W¬¸t!t‚.‚ýæ‚HH¤Ï°±Þ((((ç]¬z.Ý-õ4õ {Võ4¸¥¶È--¥ ¶­-'ë --Vëë±¶-Vë\\'''hh{­\\\\\'''\ò((ii ¶Vë\ççççë­¥\\]õÈÈVÓú¸¥¶'ðßððððúëÞÈ]iò\VV{-e -°±òòëõõk+¥ë ­¬ .kgýW]¶±¦¶¶æÑùÝÈ£©ä¤æ¸±'hh''¶õ¬‚¤°±õ¸ðüðò\òúçò(ëȰ­¥­¸ÈððE\EEð T T TT%%iiii–E%%Ÿ†%†––ˆ†%%ˆiE†%E]XiOiˆiˆ%%‹iú‘¶(Ÿð'i%Ÿ½½½TÂT½½Tß°;°0öT‰‰ ‰‰ ½V°4©0±o»kzýïg+áz£!¨ÕùšùkýùW;Ý­m¬©Ý¨ù/æWz¨¤¸! šk‚z.o¶ 0{]-¸Ýh'ÓÈ.++šîgšk/gï=+g+++ïïïï@M+MMMïïï//ïùïîî+++ïgîÑîî+M+îMù»ùùMùýýUššUU‚Æ!¨Æ¤Æ‚®»®ze044 … …Ä00y›KK›{z®z;]¶]X©Ýt- ›VV]¶e4õ{£Vë¦V­¦ m¥£{ë-0õ4­±{ -±\'¶¶±£-VúÓeo£ÈÏÏõ4¬mϬՂýHݸ¤ýÏ©° \ò\(i(Ó{Ϥ4ÈÈÈ­Èõ-0­ ¥¸õ¶Vú¶È¸Èëë È¥---VVÞç\ëVVV-È¥]V ëë''ëëë -Vëhç(((0hëçç(i(ò\'©È\'ëë ëë ¶¶ððööððë¦ë¥]\\ 4¤Èõý¤ òëõ‚kuu ë-õzæ/+/È ¶¦¶¶¬H‚æ¬õ[äJ[¸±ç'''zÆz¤°ëV¸çiößÞV¶ú¥ÈÓÞ'VÝ{õ£\òièèEÞEEðT T TTTTTT%iiiiiOiß苟Ÿ‹%%†%%%ˆ††††%%(žiˆˆˆEE–Oi†%%%†‹K£%‹èööèEòòi%ŸTTTTÂTTÂüõo°mß T ‰‰Âç4Vú]Ϩzïš+gï¡Ý Æ.!äýš/ó 0Xo‚!…;‚»ý¨W;­ÏÆ©¸še ¶¥oe00 ©4ë\\VÏšgMgggš/ïÉu+îî++MïgïïMMMMMMgïïïïïšššƒïïîîîMg’îMM+îîîÑš»»ùggš»‚ýUš/»‚zÆ. .Nš¢¢šƒ®óJê;Ä00y]]‘›››‘Ú{l.!P£›‘¥Ĥ!È › VúVh-m°oõ '¶ ë¦È]Võ4­{e°V'£ °e-ëëVëVëÞÓúëë¦Vë\ë4eõõ­0È õÈ{ 0¸Ý‚H.䥦¸¤Wõ ¸-hV'i ¸4È¥¥-¥ÈÈÈ ¶­¶±-­­-¶ëV-¸õ ]-{­­È¥ú\ççV ¥--¶- ¥  ¶ V¥¥Vëë\ç\ç\'\ò\ç((\0õë'±ëÞÓÓVõúÓ((ðößðß±ë(\ÈëißÞ Æë¬š‚ä[W¤kîuk©¶-­z/kÏ.¸©{¥£Ýæ©õ¸°¤‚[ȶ¦hÞ-iððßÈ‚z‚.Æ­-úëßiò±ÈÓVëëõo¥¥õ¦\òðEEçE TT TT TTTT%iii(i%‹‹‹Š‹‹%%•£¸±i%%%ˆ(•iˆ%èè%i i‹‹öE%ðö‹ŸŸT½TTTT TúoÞ ‰Â‰ ‰ ü\{40úë0 »ùšgïký+Ý ‚ƨ»W¬°Jȸ[LL»/ýƤÝ;°WJ¸È[»šùÆ©Ï0¸¥¥õ00ÈçòÞ­ýïMMgïgùï==Ñî+îî+gggïgggggggïggggƒùùùMîÑ+ïM+g/ggMÑïù//@ù®kšš»‚ÕU¢¢¢+ M¢¢N4®®]]›››K›››y{… mä!4£J4¶¶Ú©Ä©¬¤Wm ±VVÓ!-h\\'¦ Þ {­{õ­Vç ¸ÈúÓúV'\Þò(çVÓ\úõ© ¥ÈÈ0©©e¬¬Ý‚.H!äõ¸WÝ­õ0 hë\\ë' õÈ] - ¦¶¥È0 ¦VV¶-úëV-­õ­¥¶-­È¥--ëëë'ëV¥- ¶¶VëV¦¶-úV¶VëV¦\Þ\Þ\Þë\çò(((\\\ -h-¸ ë' ii'ððððEV'iò](öüðƸi\Æ¡ýää[JõõHïõ¥ ¥k¬­ ¬¬Ý¤‚ý϶©W¬¤¸È¶-¶ð-'TÏÆ¤¤°VV-¶¦ëëúßç\ççÞ¥ÏÈ¥©¦\ßöðè(EE%T TTŸTTii(iOOOˆèèEE%Ÿ‹‹‹††Ež¶%%%iOi†%†%†%%%Eè%%ˆ¥-†ˆE‹èèèèð‹öüüö‹ŸŸŸŸ½T½½Â°Ý¬¶T¿ üë4oõ°¨ï+M»¨ýï++/»zzÕÆW¬°¬¤‚ÆÏÝ‘úúhÈo¤¬¬¬Ýýư°¤k»æ‚zoom ë'ë ëëçò籤ïg+gggïšš/kÉ=uÑî+MggšïMMMMMggïMMï/k ùM+ïïg@@gî+Mïïk‚‚ýkUù»MM¢M+M¢¢¢¢»¤ot¨Uo››KŽK›KŽ]ÄJeLÄÄKKÚ¶£­ÈÈÈ¥¥ÄzÈ]--0-zo¦V''¦ \'\'££ ¦ë]]'-Ïõ0±\ÞÓ'((((ÞVë'¶{©e°0­¦¥¸¸õ©o¬..‚.ze 4{ õ{ hV]VV0Vë - ----- °°¦\ëV¶¥-Èõ- -ÈÈ- -¶--¶úV± £¶£-ëë¶-±ëëëÞÞëúVëëë\ç\¶- V\\\\\\h-õ-¦Þ\\ë4õ0ðöðð'Þ\çðððß¶­¥ë¥Ææ;¶)úëëû£¥¦-¶ëëȤ!õõý¤WϤkkz ¶Ýk‚¥V--¶\ç-E¶zõ­õÏWëë-©V'ÞOi(Þ\±õ-¥õ¦'ÞðE(EßEE%T TTTTTTTTTT%Eii(Oi(ç•‹‹‹†‹%%¦0Ži%%Eˆ–O–EEiO(–ˆ†E–ò—O––¥ÝÒiˆE%O(OiEðèèöðEððEiöTTT üõ¸¬4ŸÂ‰ ¿ ‰ ðVt! ïî+ï t MšùtÆWÝýƨùýƤ £¦úyLJ°ÝÏ»» ý»ùý¤ {¶--'('\Þç((iòòçõùšïïš/škïùšguÉ=Ñ¡¡+MgšùMgïïïg@ïMMïùý‚æÕ»ïMgïïïgM@gMgï/škýýškUM+g  +¢¢gM»¤o!¢’®P››KŽŽ››››yP4oLPPmPKÈe[e°W®»Æoe¸Ýo ¬zo{- -ÈÈ-\(\]-\ë¦ë£¬õ¶¥V±''ëÓ(çÞ]¥úÞ¦ÈȬo©È e °¤¤!.‚ ¨Ý{õ-£¸ooõ0 ë]Vë È¥¸õÈ-­Ýõ0V\ë¶- -¥È--¥-¥¥¥¥ ëVç ¦¶- ¶¶±ë\ëúúëëúÞÞëëVVV'''\\\hVòiÓV0{ \iðEEiððßðð\ë¶È-ë-õe¶ÓÞÞÞÞòçÞçû±ûÞëë‚Ýõ­õõ°Ý¬Ý¬Ï-Þ¥¬õ -- ëðö±ëüTi ¸¬°Wz¤-ëëçëVßð(ßß'-V£©¦ë'èTè\EEEˆETTTTöTTTTTT%EiO(O•'ž•E‹%E•›­I‹ˆˆ•–%ˆˆ•IO–•iûžÞIȶh­¤¸(–ßç(EßiððOèiò\ðüTTÂÂTû4–‰¿ ‰‰Â‰ð¦¤.š+gg+/ ¤o M//oeݨ¨¬ šù»!ÏÚû­¬¤¤Æ¸e¤‚ ææ‚æ¨!; hh'(­£(ii((((i뤚ù/šš/ùùgïš¡=uÑ+M/šïMggïùšïMMš»Õ‚‚ ùMîMïïMïškšMMMMššƒk/š@g¢MM  g+ÑÑ M ƒ‚ oUU ¢!]KŽŽ›])])0{ÚLW!eeeê.eÏm¸[WóWÆk+g/.zÏotot! { È© {]'\\\ò\ -'ò\\çÈ]ë]±ÓV¦ë'Þ(i ú õ¸ úçV¥¦ .¤­e4±­oϨ. .!­È¥ o(' V¥¸È-¥È¸¸õõ­­-'ëëëë Vë £--¥¥¥----¥¦ Vëëëú-£ úVëëëV¦ëë\\ëçÞ\\\'''\(\'VVV'i(ii(hEðßß(ß((òÓÞç祬£¸¤‚æ[¥ëçòòòòçë©ä¸¶\¶W¤õVVõ¤¬¸°°°£ëç°°¶¥õ (ö(]çTüòõȦ\ÏÆÆÏ¦¶¶iëÞ–EðEòòh¥¸]ëëE TöEðEEˆè‹ö%EEE%TTTT†–i(Þžžž%†—•†‹‹%‹%%%%%%i\Èh†–ii†iI|ˆE–h••I¦Æ¥']¦{¬Äçˆ\òi%‹ßOEEO(ççèüTÂÂTTçݰ¬\ ‰‰èy¤¤Ï©°zk‚W¤Æ¨ïgïWÆ!äÈÝWÏäÆùý‘R£Ï¨t°L[¤ó¤æ‚WttϤ¤©û'ë'ÈÝm'((((i(ò((Ók/ïïïš/kkk//ù/šš+=gî+ggšïM/šïïšMMMMïš» ‚‚»gM+gg+MùùïMï@+îMï@škM+Ñ¡+   +  ¢¨¤!¢¢¢¢®L ›K›]00›{Ú tJ䤯ÄĤ;-Ú¸¤ »Uk/k oooW!W{0e{m¸­ '\(\úòÞ'ëVëú¦± VÓ(('±]¥°e°ÈV£­õe4!Ï-±õJõ 4e..‚‚!Võeo -m]] V]{¥-¥ ¥ÈõÈ ëÞë±ëëVVV--¥¥--Ȱ È­- ë-È-úë륥 ¶-¶Vë\ë\òç\ç\çò((ò(\\\''\(\ëh\((iißEißEEððð(ðß(©¤È­°¶¶[H[±ÓëúÚPP¸¤ÆW--°­ ëõÈ¥È-¥¥Vë­Ïõõ¬¤ÈððÞ¥çç­©££\°zW¬õõ¶(\ë'iðð–òV£­4£±O TðEEEE%‹%EE%TTTTTTŸ%ˆi\Žh'•E%›oe›ˆ†%%%‹†•¥K(Ž(††O—†%ˆ—ކ£ÏÈ)z.WLò–E(ß‹öß(iðß(i((ðüTTTTÂð¸¬ú ‰‰‰ ß!!! ‚ý‚»¤°W .!+kt/zäÝÝÝeg‚ݰ¬ÏóÝ£¶¨Ý »‚¬È©°‘hë\\mÝÝ­\(çò((­ý//kù//ký.k/škùùkù¡á¡+îîïùšù/ïïïggïg+gšý‚ý@Mï@gšgšššïšùï+gïù ®¨®U¢¢¢g¢+M ¢æot¨U  U®®!4››››y››yy0Ú{L…J4;!!oÚ{ÏÄžÈoÆ.zz..zÝ m°°m©°¦£-õ{ \\(\(òç\(çç ë'\±ëë'Þ£eÝ£õ ¸tWÏm¦-©ot­£¦o!.¨z-ëúú00'-m\ë ­­ëúV¶-È¥ë\(\V--ûëëëë -0È£-¸teÈõ¸- ±-¶ VV --V¶ ëëëÞÞëë\çißß((\\\\\\'h'(ii(EßðßEEEðEððßßðßò£°õ°¸ßðú©óÏ;óÆäÈ-°¤Ïõ­eõ¶V¶ë'ë ¶¶-¥ ëë õ­õõõ¦úëë籸ϸ -ݬ°e­Ïz!oëið\ëißðßOò¦­õ¥ ú TEEˆEEE%%ŸTTT½‹%–O\I•†%†E—Ä4›ˆ%%%%†††—Äž(ŽˆˆEO—E%†ˆ\—(—¸©oe¤.­•EEçòö‹EòOèòòOO(ðüT½½½T­o0½  ‰ ‰E!zz‚/»»!k‚ .¤ù¨ïϩƻý»ÏÝýšùäJÏ!X©zýÆÆ»‚[Ý…©°¥¶¦ë'ú0Ý -±ë\ò(òÞV]©!/g/k///ù»Wýï/»kkùÉá+îîg/ïùïƒý+gšM+MîgšýHÆkg+Mgî}î»/U/ùgù®N‚ ‚®UU®kUUš®zt»¢¡¢U¢.ê® ó]›››Ž››]y‘ eeo[ä­›eä¶——•¬ÏWz ze©­¥-]£{]h]VëVh\(\ç' ¦Þ(((ò-]ÓÓëV{]ë('°z­'ú¸eõ° £­ ¸{° ¸¸-õÏz.¶Ó' ]hh\\h\(iß ¶VëVVV--ëë ¥ ¶V V¶¥­õÈ--¥õõÈõ­---- V±ÈÈ£¶¶¶ëëë\ç\'ÓëV¶£¶Þ((((ò\\\'\\ëò\(ððßißßEðßEððööðððEEiÞë¶ðßëúÝ[°ÆÆJäȭݤe¸° ë']¥-¥ ë'V¦±¦¦È¤õP£ÝÏõë-¥¬\±št]ßöiúçßßðßi磭¬¶±Ó ‰%EEEETTTTTTTTTTŸ‹EO—\\(%—o!tê Ii†%%†%%%%%%†%­£i(%%†iI—ˆ†%†•II£©›ݨÄçžiò(ß‹Eç–ð–\ç–E–üTTTTT½¦Ýõ‹ ‰¿‰‰EÈÆz!¨z¤WW!.ï ¬ogg¤¬¸ÈÏš¨J‚šk¸±¥;;¸;!HÆ‚ÆÝ4-£X¦ú­m'¶õݤ¥±'\ççë]]úÆùkkýýkùkù!Ïz/k kššguÉg+Mƒ»»»»ùïùùMMîî’gï/ù@M’Mîu=ubM»g¢Mkšg‚¨UU¢¨®šM®U ¡¢¡¢®ƒo¬®®t›]›ŽŽ›)‘ÚÄÄX…[oe¶¶ÏÄ›—žÏ¬ÝÆz zm{ Vû'ÞVV''hÓ(((\ë ­­ë(ò((çV-] 'ëVúõ­ÞÞ륭õ¸Èõõ¦±¦°õm{{mçú¥t±ëú-40hh(içVV -- VëV]-0- --00È0È{¸4 ¬¬eõ­È-¥­­¥-ÈõÈ  ¥- úúVë\ë ȶë-ÈÈ£ë\ç(çòò\'hV ]'hëh(òç(ii(òò((ßððßißßðßòÞÞððòçÓPõ¶ÝJݤÆä°¬Woõ¶0õ©¥Vç'Vë-¶¶ --¶±-¶±£©ýæ¦äùHȦÝõ¤ëië¸ ¥ßò¦(ßðð–ßú¥o©£¦½ ‰‹EßEEüTTŸ%i(•(Ž!.o¨zäÚIˆ%%%%†%†%ˆ–¥ —†ˆ†ˆ——††¦o4ÈX¸ÄJÈúžÞ(iˆòOè‹‹%OOˆè(OEðè‹üT½TTTT\°4ß ¿‰ ‰ è­Æ.zÆ‚.¤... Æo¬ý¡»­¬óý»ÕHýïæÏäÏÏäÈÈ;!¤¤o…¥Ú¦ëÈo©õoÝ; Vë'ë\(\ë ±¥£õ¨k kgùkš/»¨ ï»zý//¡=+MîMš/»ù ý»ggM+îîîÑÑ¡¡uÉ/»  zïU¢¡®Æ¢ÆÆš®‚¢U ¨¢¢® ¢®®ÄÄz ]›››Ú JPÄÚ{{y0mo¸¶¸z¨¤¬¸¤Æ¬W!.z¤°0-]VVú''h ]Óë]¦\'ë'ë±¶¶È¥ëçç\òçV ¥ÈúçÞú¦­Wm±''ú0õÏ4¸°-Ó¦©m Ó\\ÝÏõ EiEðEi(\' ¶ -ÈÈ­¥V-È-¥¥õݰeÝeoÝoooõõ ¬ÝõÈ--­{ÈÈ ë릶±ú¶õõ£ë - V\òç\çòçëV --ë\\\\''\\\\\\(((\'o¸­£¶±ò(çiðë¶¶¥P°ÝJ…XÝÆæ‚zzÝe-VÞç]õ' -­-Vë]¸-­¬Ïäõ°ùõ¸ùý©ë©ä¸­ozÏ ð±¬¶ßëúòOßðßß-¬4¥-V T%E%‹üöðE%TTTTŸ%ˆ(•((\Ž !t!!êtoPI†††%%%%%%†?…¥i%%†(O†ˆ—ÚÈ©¬m•IŽ—O••ˆ%ˆEè‹‹‹ˆß%èð‹üö½½ÂÂTT½Eç ö!¨¨.»¤ÏÏÝÝõokzùä­!ù‚ïM¨e¥È¸WÏÆä;­ÚLt°­­û…;e¬¬ý©¶\¦£©¦Võ¬4kï/uuùÑÑÑg»»kk»/ïýzýšg+uÉágM+ïïkNšæý@škšïî+îÑîÑuá}M}U®¢}®zU°®‚!¢®.¡Ç¡¢¢z@UUW0›]‘›ŽŽ›eó;{0]XP‘ÄLoJ£°!W¤!WHWÝÝÏÆ¨m¶V'''Þ'V-- '£0V'ç\\\'ë-V'\\Þë ëë(ç'0t­'çëtõ°È¦õ°¥ÞOÓ0ÈûOç-'ëõÝõÈ'iðüðßßëVëV õ­ °­­eÏt°W¤¤WWW¬4¸°¸¸õt -È¥¶0õõ¥¥¶VÞë¶---£-¶Vëë\\çÞëëë\\'h'\\hë'\\(i((i\\ oeo­úÞòòðߥ­¦©õ°Ïä°¶°æ‚‚ÆzÏõëÞ((ëÈëÞ-W¤Ý©-Èϰ¥-õ¤æHõäæÈäš‚õÈõ­‚ï‚{õݤßò(Oßððði ݰX¶ ü ‰T TEEEEEEE%‹ðE%%EEðŸTT½½%ˆˆ%‹%(•\•K0e!!m?–iE†%%%%††(•(-¥O††%††%†Ž{¶Ž—-•Ž£—iEEˆ%%‹‹üŸŸŸŸ½½TTTTT ¥ohTT ±W¨¨t4e¸o¤.k kgMg»ùäÕäJ±£ýæÝ‚ko0ÚL‚U»Õ !¬;¬Æ‚Rë£!oÝ W-¥£õ'¬!e¤¤°¬=u+¡kÑï»kùù‚Æùý‚ý/ïguù»»Õkæ‚»‚¤¨ýkïïšïù»ý‚+ î}‚  WH».šMzW»[äN¨äU®t uU®Uó.eL›››››ŽŽŽ‘ 4{0ÚyÄX{ Ý ¥…¬;¸©¸4°¸ e©- VV\\'V ±'¶-V\\\ëVVë\' ë\V- (ëç\±õ]úë£Ý© -'¦£(¦Vh(\ ¸{0V\(Eðð\ {£0 --£--¥0­õݰõ°õ°°ÈÏ.z¤Wt¬oee{0]-õÈ-È­¥- ¶VëV----¥¦û -V\((ò(\ëë''ëëëç('\ë'\\\(iòiß(\\\çÓúëÓç(i(ë±ú©ÆæÆ¬¥‚æÆÆÆ°¦úëëÞÞçÈõzÆõÝÏ{­¬¤W¸JÏ££ý…;ùýÝÞúÈ¥õýWÝݰ¸¬ÈißiöððßÝÝõ£±ü T ÂEð‹Ÿ½ü‹%–ˆEE†‹%O•—I\(—›{ot!têo-KE†%%EE(%–ž¶††%††•I††—i›Kh¶%Ÿ†‹‹öüüŸŸ½TT½TTT½ Ÿe¬¶ Þo‚.Ï;ưýýšùMïš¡}z 40뱬‚©/N;¨W䯍ÏÏä;¤¨¤¤Ý£¦Ý¨Æm©0¶t¥'°û-ýM¡ùîk}uuuMÑ‚ý+ýù//¨4Æï¨z¨šš‚ÑÑMšýæN¨¨»¨¤¨ýNý‚¨Ææz¤!®®Mg¡Æ!šzN®¢æ[䨨®tä®êóêUo[L¬e]K›K›KŽK{Ä0yyy]Ú…{‘XoÄ¥£W°ÄPÈ£{L©Ä- 0m©V(((h''VVúV-- V ]{{- ëV0¶ë¦£¶V{¥ ëë'ëë0'ú¦{Ý4- (ßiÓVû\(çÓm{ \i'ë\0!!o44{0oõ0¥{­Ȱõ¥-0-­!!ÝÏݰ õõeo­--õ­¥­­õõ¥-Èõ°e°°-¦-­¶\ò(\\V¦'\ë'\'\\Þ\\(((\\ò((ðiÓ\ëú±Ý¤¤zH¶ë¶õWƤWõúúûÞçò±°Wýõ'ë ȸoݰ°¸õ¥ëû°HÝkšý°È¶±õ/gõ¶£-¥eoëßëëçißððiû°¬¸  TEEE–ETüèE%ˆ%‹†ˆ–\I•(((Ž{ott!!›O†ˆˆO—•K¦K—†††ˆ•¶›†††hÈŽ%††‹‹‹‹‹‹‹‹‹‹Ÿ½Ÿ½½½TTT T¬0öT ço‚ ý ýϤ¬¤Mk¨g °z¬ ±W‚©°¤Æ!¬¬Ý¬WÆÏ;ÈX[z…Józ¬ä¨© ]- ¡ïšù¨îk u}}¡ï+}uÑ}gÑù»ÑM»/ï»e‚/k z‚ùù ¨¤»uuš® ¨/š»šƒ» ¨Æ¤¤tóä¤ÏW®ï®Ï¤Ï¤Æ¤¤¤¬4oo;;LoJL{‘0]›ŽKŽŽ›››Úe…0y0ÄeÄyÄÄy£¬tĦ£¦PÄ‘Ó'ž-t \ç((\ëëÓúV¶£¶0õ{ 0V]¶ë {¥Vë±V ¥È-V'\\]¥£ ú]õ!.Ïõ]\(ç\ õiiiV]õe!Ý4Ýe44õ©0]­Èõ°0õϸ  ¥È{¸¬¬Ý°44ÏÝÝoݰ¸°õ-­e¸0¬õ¶VȬ¬W!eõ¸Ý-ç\\-0V]±\çÞ±±-¦ë'\'ëhë'''\\çÓÓÓ\çç\Þ((iii((']Ýæ‚t¥ëëÓë¬Æ¤¤HWÝõõ£úçÞúz-ëëëÏÆWÝÈ-©ÝõëÞ¸±°šýýÏ-V+ÆVëVë ]ßÞÞ(ið𰬸£ûÞ T TE%%%ˆ‹‹‹E†E‹‹‹%(••—I—iE†•\ mêt!!!o{›I—•U¢tP]i•]ˆ††††i——†%†Ÿ‹‹üŸŸŸŸŸTTÂÂÂÂÂieÝ©ß ¿ ÂÝ ý»ï »ïÏ¥ W.z.¤Ý4ýÆoکƤÏ°ýîî‚óL°æÆ±¥¤[äÈó¤!¬LÞý¡ákÑuáuMÑ}šîîÑuMMÑgî+»‚kù»ùk¤!ïšk‚¨ù»»ÆWï}ïý‚Uù@U»»‚Æk®‚‚¨W¬Ïäzš¢¤;WW¤ÏÏäóÏóJÄXL LÄÄ PÚ)›ŽŽŽŽKKK›yÄÄÄÚ]ÚÚÄ…; {4È¥J±£¶›¦¦Ä©žûë]etmV\(òih'çëë¶- ­È­ ]¸õVë¶ ¶V¥ç¬{È-ëòçëë]-­°¤ýeõ]V'V ë\\ç°ë(ðVV-.¤£ë 0°õ¥ÈõÈ¥ÈÈÈ-¥-­°-È4õ ¸ϬÝÝÝoÏ44eÏ4È¥¥4Ïõ­- ëëõeÏoo¬]V'\\ë-]¶VÞ'V£¸ ëç\\ëV±¦ëúë\\ç\\\'ÓOO(i((((\òiç£eݰ¥ú¥‚ý¤[óää[ݰݩÏz- V e¤z¥'V¶ë\ÞúçûzkýÆÝÈgu¥'Óõ¬o¶ëÞ(Eðß'©¬°È(T T  TEE%%E%½‹è%E†E†•———ŽŽ——†††ˆŽ{!êtê!z.z!Ätg  ›¶Ž•-›—†††‹†–—%‹‹‹üö‹‹‹Ÿ½ŸT½½½T½½TTTÂèe;eO  .‚kšMšýo°äϨÆä­Äee;¬[ý¨Ï¡¨Ý¤uÑ¡uæ4o Äeetm 4eoe¶Ó' Æ»š»»»šïMïùïšýùùšïšNýæN»kýýMÑÑý‚ùæÝäùgƒ.Wý/»k!óîá}ƒÕ»UU»U‚¬4 ù»z¤äo[¬ÏW;¨š¢ä¬Ï!¬¬WW!!ääoJ…ÄÄÄ‘]›KŽŽKŽ››]000X{]0PÄe;4Ä ;;ÈÈÄy'ž?žžžûúûÓhhû±°¸-\\\ë\Ó\ V¶V¥¶ 4ÝÝz ]ëë­õ4ëòõ--õõ (ç(\Þ -¶õeeeõ]h 0V'Þ4 i]4¤z‚Ý--£{¥0õÈ¥õe4õ°¬Ýݸ{È-ȰtWWtWWeo.W¬Ýõõ­õÈÝWϬ­V¶¶ëë Èõ°õ¥È ¶'ë ±VVh-¶£°¬z‚ze¦Ó\òÞ뱦Vë''\çÞÓ\\ò(iii\'h' V'(i(Óë'ë\çë-¶¦¶£¶õ©…ó¬¤æÆ¤Æ¬¬õ­õ¸Èë\ëúë''ë\(­k‚ùgõÏ¥õ릭¬ÆëòÞOßðÞ{õ±(ŸTŸ T Ÿ%Ei%‹%%%½ö%ˆ%†i(ˆ%‹†%†–•Ž(—K•?Ž(EE††I]0…têzêt¨®¢¨æUU®›yyyˆ%†ˆ††††%‹(o;ÈV'hç(òOiièüŸ½T½½TTÂTötW½T T°Æ¨NgùýϸÝÏ/ ‚.WõmW‚!¤@¨ݻǻýá+¶0 Ý©­›'''\(û¨æ‚‚ùùùkšùšùšNšùùýkækÕý樚áÉỨ» WW‚ššùý¨Ææù»HWîuUÆ®®N®»H4Ú¤æ®Æz¤ó¬ÏĬ暮¤Ý¸¸°Ý[°;[Ý;J{])]›KŽŽKŽŽŽ››ÚÚÚÚ0Ú0XP{LLX‘0X¦¥­P¦I\\çòçòOò(ò{-\ VëVh'--ú¦ ë륭õ¸ÈÈ ë 4¥ ¥Ó(ë{] õ¬°­çòi(Þ±Þ õ{' 0È-h\0ë(oWzzzz!!o õ0¥0È{õ¥{¸e°°W.zoeÝoWWÏWÏϬ!õ¥eoee­4eÈ¥¥¸e¸o¬¸-È4ÈV¸o È­¸eee0''-0{ÝW‚ýz. ]ë'VV±Vë\\ÞÞçç ë\\Þ\Vë'ë £-'iòçò(çÞ\Þ\ç\çÞÞòçÞÞ¦¦¶£©°ÆÆ¤¤zt¸±\çú±ëëëë\Þ(Þ!ýk/õõ¤ë¶¦±¥ ÈõõëVEi¥4-Óèö‰ EEˆ–%‹i¦¦iòŽ\Ž•mŽi£h•–0 I•y›{›•I•ž40›Ky!®  ¢Uzêꨮz4 )Ž•••••i•ˆOi(ŽÄW!ÆW䬬¬°­¥Oèü½½Ÿüü½ü4!Æ T TTÂÂ縤z¨‚Æt z¤ï+»‚šg/Æ ¦ÈWt°ùk;š¡ù»/Uo¦-±©Æ¸eÈ 'Ó\ò(òú[ÆÆzæùšùù/šùùššùùšïùýù‚.ýýgá=uÆ‚‚Æ»ù»»N¤!ùkÕ!!®»Æz¤!樂ÆÝ…¤‚ýzÆäÝÏݸÄÝ U‚ÈÈ­XÄ©mÄPÚy]] ››ŽKK›ŽK›ÚX{{000Ú{ÄPÄXXX0‘Ä¥¦È©¥£›I>ççO–OOO\0{h''V'ë'륥ë ë'\ë È-Ȱ¶¶4õ­V\È­Ýݦi(ii\ëëe4¸hh-{m-hiV(\ÈÏWzz‚zWÏÏÝ4eõõ {0õ©Ýo¬ezϤWÏϬ°¸ e!4eõ{È-¥­¥0¶ o°°¸-¥õ -ëëëÈ õ0È4o-] VV0ÏzzWzƸe¥£--¶±¦¦Óë'Ó\\''hëëh¦õ]'i(\''çò\\ç ¦ç\çòOißi((òççÞú¸È£õ0­£ëçò\ëëëëúë\ߥýzÆ °¤-\±Vëõ±¶¦­W0ë°¥OOßß m°°È(ö %i%T'¥]­û¥ I0K¦.¥•¦Ž-(Ž I)›•Petme›]Žže›•—yŽyL…Nêtêtóäêt®ztê[o4…JJ;444eoÝt¤Ï¤zä4È]'i%Eöü‹Ÿ‹ŸèEðüüè ‚.õ蟽‹ü \¸Ï!ý¨ýùgï}uMÆù/š!°ó©LXÈÚe‚ÆùîùkÑ;¤0È -eÄo]''ûÞ(Þ4äWÆzÆk»šš//šùùùýýýýý.H‚šÑý»»‚äz»ù»»ÕÆ.»HWÕo¬U‚H®¨¤¤!¨Æ‚ ¨Æ¤ÝÝÝ­Ä!ÏL¥LLÈÈ‘£ÈÄX¥0y‘K›ŽŽ›››]0ÄXÚ0P0ÚÚXP0ÄP000¶{Ķ]Ä©¥È{›hV›Óçòòò(\ë{4e0h] h''ëV¥¦ëV ëëëVë\-¸V-¸Vë Ýõ©0'Þ' õ©Ýõ-ç\çi(ò¦õ¸õ­ 0'hë\\] z.‚‚‚‚¤ÏWÏto ¥õõet!!¬e¬W4¬¬4ϤoeeoÏϬtoeÈ¥¥ÈÈ¥{0ȰݬooWõ00¥VÈõõõ¸ÝÏÝõÈõ°oݤÆzƤ°£]È­4õ]ú'ëVÓÓëV¦'ëVëë ±±-¦'ëh'\\\\\Ó'ÓÞçhëçòòòòißßòòçÞòò(òÞ\ëë\\çç\ççÞ릣¶ëò(¤ýý¬­e¶\V-£õ­t!­-Èßiçë{¸4õ¦ÞEŸ TiiET–Þĸmooe(4 z¦(¥O¶h Ži]I]4ee›0Ž t —Žê[[¶—LI>›Äz®êzzê!zt!.!!Ïo¥Ki‹‹Ÿßð½%%öèE­ý‚ % ç©Ï.»ù‚»+Mš®! ‚¨tÏ!‚¸¦X£±{ý»»ùš¨!zy'­t4±­± û'hÓRõ[WäW¤‚Õýkù/ùùùùùùšùùýý‚ææýÕ‚ý¨ ýý»/k!¤Hkšùùý¨ý»Ho¨¤ä»¤W¨WÝÝWH¤z¨¨ä¬[°;;ó¬L ¸J©Ï¸y XH®‚t L0y]‘›‘‘ÚÚPÄÄX{0X0X000Ä0yÚ]£y ¦PÄ£­JyÈ©©­£Vë'hV±0õ4õ©£¥{¦¦£{- ¥ÈVV¥¥]o¤--Ý¥--°¬ \ëÈõ¸õ© \ç\Óòç¶£¶V-{ VhëiO.‚ .z‚æÆ¤z!¤ õ{õÏÏt¤¤e¬õõõ4ݬ¬tto¬ÆW¬WÏÝÝÝÈ­­õ õ0 õ¬¤zWWÆõ¥õ¸{­°°¬¬¬¬o¸¥¸¤¤ä¬Ýe¬¤!¨o{-ÈÈ­¥¶úhÓëú ¦-- 0¦ëëhÓ\''\V \(((\hë'Ó'ëë\\çòiòò(iiòë-¶Þ(içÓ\ç'ç\Þ\ÞççÞ\ë±Vú±iõæ//¬Ï{±\ò±¥ë{¥È©±­'iß\-­©©¥Vü TE–iiiE%%%V–ç­¶Ž(ÈÏe°-\­O†•›K• —]o y ›m]› ŽK…0‘•I0›%%††<› ]]Ä{{{‘] ››—Žm¬©h–ŸöŸ‹EŸüð‹½%%%ðßh zeß‹Âõ»WoúÏÑ}š !W!WÝÏϬLÈ›ÒúÆ»ý W©X‘ž0È]]] h\'¦Ý¬È''Ó¸WÏWW¤Æz‚ýùš/ùùùùùùù»»ký.‚‚¨ÆWzÕýýýù»æWÕšk ýæ¤!¤Jäz¤¸JÑ¢!oW¤Ï䍯W[¸©ÄÄ­ÈÄÄ­ÈÄm JÄ‘¦È‚g+ƒ»®!ó;;J4Ä{00{{Ú0ÚÚ0Ú{ÄPÚ0Úy0‘]]K›-Èy¥©£-­Ä©LÚ)ú)-¶ ]-{0-¦¥0 V-¦±±¶¶]¶V õ°¤¤-Ȭe¸È¥õÏ¥ÈúëÓÓ-È 4WÏ¥ò(òò\V¦e40 V\i4o‚..‚ææÆÆWÝ.teõõõ¸oÏÏt¤WtÝÝÝÝÏÏtÝÏe¥{õõ 4¸¸ õ{ ¸­¸oz‚!¤Æz õõ¤eÏÏÝe¬¬Ý¤¨¤¤ÆÝõ¸‚Ïõe¤©¥0È££ ú±¦ ±-¥õ­Èe¸õ¦ú'\''hV]hh(\\h'ÞÓ'ë'\\çç(i(ii(i(ç'Ó((òò\\ç\\ç\Þ\\\ç\Þ\úëë\Vzzýï¦ëëòëϸ'¸õëh©©­ß–ië¥ÈL­-‹ ÂT TTEi–iiiiiE%©¥O%†›¸©¨]£m—Ä0 ]†—]Ž–e•i4mK››e]—Kóä°)I¶¸…—†%†(›i††%††††††%††I]K‹‹‹ŸüŸßŸðüÞzzo–ÂE¶o.ý¸¦¦ gugÝ¥¶X!¤!H¶¶¥¥¥Äæš‚o¸©)ÓÓ ©¦¦£]hú m..Ï]Þ¦ó¤Ï¤¤!¨¨.ý»ùùù/ùùùù»»ký‚¨‚æÆÆÆ¨æ.zÆ !¬ó‚»Õ‚‚!ä¬ J!óÄ¥©Æš»¬©Ä¸¸¬W¬¬Ý¸mÄÄXÄ© õX­P¦¥ý¢MgU H!êWo;ÄÚ0Ú0ÚyyyÚ{P00Ú‘]¶]-‘›±±¶±±¶ú)‘È­-¶£0£±V]¥ ¦ë'h-úëëVëëëë\V­õ--õ¸­ë{V ëë' ­ÆzÈëò((ç((Þ' 4 m õ0]'O¨¤ýææÆWÆæW¸-¥ÝϬ°¸eÈ0°¤¬Ï!!z¤ÏÝo¬e 4¸4ÏÏõe¤Ï- ¶ eee¸¸4°õ]룸0eϰ °­¥eõ­õeWÝÝÏÆ‚.¨¨ÆÝ¸[¬­4eä.Ïõ¥¥---VV]£õ4ÏÝ õ¥VçÓhhÈÝ -ë''''''ëë'¦±Þò\(ò\((iiò(\\\\òç\Þ\çVÞëVëëú!zM¤¥ú'Óo£õÏ]ߥX{ƱiEEi¦£Èõ­¶ð TEiii%E%E—¦ú(‹–‹‹±Iž'–Ž]›O†I›Ž(—K†%KŽ(Ž——]KKĶ—•‘›ˆ%%%(](†%†%%%%%%†(OŸ‹‹üŸŸöðE‹Ÿü‹ðŸ‹öŸüöðiÏÆ¬i‹½Tˆ{ÏÆ¸¥¥e»¡á®©W°[¤k‚ ±£W!¨®k/šÝÓÓÄ¥'ú ϰ¶-Xȶ ¦‚.z4]ë¥W¤¬Ï¤¤æ¨æýkù/ƒ/ù»N»ù»ýÕ..¨ÆÆz‚‚ Æä¤¨N»‚mokù‚‚NW;JĨÏÄÄ£Xz‚ó¥¶£ÈÄÈ0{¥X¶‘£¶£XÈÈ0©o¤¨ý¨¤Æ¤oÝo¬L[äó¬Ä‘]ÚÚ00‘y0X000Úy] y››K±¦K›Rh‘-úú¥­­{õ-]]-4e-­È VhëVëë\ë''ë  --¥È-­V-úVë뱦-¥eW¬o¸È¶]ëÞiiò\V\\'\'(EE¨Hæ‚æÆÈú­¸õVë­¤ÏÏWzÝõ¬t¬Ï!!¤WÝoݩȥÈõ°oϸ4ȶ0°WtÏÏW¬õõ­±V¥-¥õÝ õõ¸­©oÏW¬äƨ¨‚‚äÏäϰ0¥©¸°©È-¥õ­0]{ ÝoÏWϰV­©-¶-'ëVúÈ4Vh'h'ëë'ÓÓëëú- 'ë\Ó''(\'ëççòççÞë\'뱦çë¶õ'Æ‚ ++eõõ¦°‚W­õõòçV£WõÞßE–V¶£{­0ð TT%Ei(iii–†%%EE%E‹%E%ˆ%ˆ(†††††%†%†——%†i•••i†%†%‹‹†•›•%†%%%%%%%%%‹öŸèßð%EèŸ%%öTŸ‹4eETTT TE0ÝWÄ0¬»áš.¤Ý mKKKL‚»‚¸W» ;Ȥ£ÓÓ…Ý©mõ-oõ­4Ï ë0;¬ÝÏÆæ.‚ýýù/šššùùùùký‚¨æ‚‚ æý‚¤¤zýk¨;ÝÆN»ýùÆ z¨°LÈÚÚLó°£££‘‘±ûRûžû±‘­¬¨»» ¤Ï¬ÝÝÝ;;Ýo;ä;PÚ0ÚÚ00PÚÚ{0ÚP{Úy]0yyÚ¶›ž¦£±K¦¶Vû›‘‘‘L;;e{¶-WW0]]e¸{ 0õ-V±V ­¸¥¶¬WÏõõ¥£¥ëÓ±0{õ¥-¶¶{úÓ\(((\\Oi‚Õææ[¥Þòõ°VÈe°°Ý¤!WÏWÏz‚!Wooo4È-£¥¥ !z¤oõõ {È °.4°0±Èõ¶úúÞ£¦õÏWõõ ° °WzƤ¤äƨ‚ææH¤;…¸äõÈ­© ­È£È °ÝWƤtϰ©£¦È­õ©¶hhëëhhhëëhh VÓÞÓ'ë ±ë룥ë\h]]ëÓ\\ç\ëëç\Þ\ç\ëëëë\\ëëV¶-çõ ÆÆ.ÆÆ-¶¥¬ÈÈi±V-ßEßV¦]¥È{ð iiiiii%%%†Eˆ‹E†%‹‹Ÿ†%%E––†%†%%iK •†i(I%†††%%%%%Ž\†%††%†%%†%%%Ÿ‹‹ö‹ö%è‹‹èßEŸŸðð‹üTTTõϸð è¶WäUg!¨¤eÈJÆzϤz¤Ïe‚¸£Ä¬‚¤Ï¢U »¤¥ë]°o­£ÈX©£±©z°Óû©oe[WW¤‚‚ýýýùš//šùùù»ýýý‚‚‚‚ý»ý‚¨Æ!æ»»ÆWW‚/ùùù»!䨨°{¸¸£± ¦ ±¶Ä©È¶±¶-Ä©ÆU¢šÕ¨¤ä[ooϬ¬ó¬Ý;[äê!tÄ000{00XÄÄÚ0P]‘‘‘y00¶›£¶K¶-¦±Ò¦-¦Èõ­4 4°¤È m{ °õ{­]VV­ݬ0¥z‚¤õõõ- -VV('{õ{¥eÝ-V õ¥ ¶úV±Þ-\i''\ýæ¤PçÓ¦¸¸¸¬°eÈõ¸ÝWz¬Ïz‚!¤¤!!te°¸­- ¶È­õ ¸ õ¥-4Ýe¸õõõ¶±±¦ëû±¦¦££È¸°Ýݰ °eÝݬ[¸°Ï¤HæÕæ¤PÚ¥¸¸­õ¸Ý¤W¬ÏW Ètz!!­¦¦-¥0eem0¦¶¶±]V]V''ë'\hë'ë'ÓV'' Vë ëëëë'ëVëçëÞ\\ç\ëV¦ûú-¶úVë¶ëë¤Æï}.¥±(eõë(¶úiÓ¦¶ È0% TTT iiii%E‹†E%%%%Ÿ%E†–•O•i†%%†††i—(i•—iE†%ˆ†††††ŽŽ††%%%%E%%%ö‹‹üü‹‹üüŸüÂT½üõeE ÄoWk¨¨ä©È¦—¦eÝW¤ÝÆ¤ä ©¨»k»WƬ[X±ë)ot­¸©¸0úû4 ¥¥;ä[[䨨‚»ý‚ýk/šššùkùkN»ýý‚ýÕN»ý‚zÆÆ »»š‚‚ÆÝÆššššš®¨®äݤÏÈ›h±È¥L¬ÝL¶ y;ýM¢U/®¤¬Ý¬ÏttääÝ;ÝÝ;[¬Wꨨ.êÄ{ÚÚPXX0{{{Úy0{‘y›]{Ú±›¦±££±¶¦›ûžžû±‘È£úV©eÏÏe{eõ  ¸e]¦0V -V{!Ï­­zW£ ­õ¥È0¥'ë{o-'¥õo¦-È 4©°4{]¦-Ó\'V-ë(i(\hVæH°ë뭩ݬWz‚æ¬WÆÆ¤ÆäϤÆWo!°¸õõ¥¥¶ ­¸{-õ4È]­ÝõÈVëë £õȶ¦È­¥õÝWt¸°ä¤¤ÏäõÈ££¥ÝÆÆHæ¤õ££¶Ú£È°¬W.HƤÆ..ÆW¤¤!¬©0-±¦È°¸­¸©¸e--¥-]]VV V¦ VVûëûúëë ¶ Vë ±Vëç\ÞÞç\ç\£Èȸõ-¶' 븨¤õeùȶ£¬Ýß(-¦' ±-Ȧ±¶00ð Tii–i(iEˆ%%E††‹iiiE%‹††%%†%%†(•—(EE†%%%%%†%%%hŽ%%†E†%††%%††%%%E†ˆˆˆ†öèð‹üüöüüüŸüüü‹üTŸŸ‹ ¬–½ TTh°¸©¥!!ĶhI ä!»zÝ­] ƻƸ©‚®ÆN‚Ý……¬L¶Ýõ£ÏÕ©¦±]oÚ4L°Joä䤿¨.‚ ‚ šùšùýýý»kýýýý‚‚ Õ‚‚樂ý»š»ýÆÏ!ù@/ùš»ýk»¤UH©K——£ÆWÆ;]¦ýš».ƤWW¬o;oóϬÏoݰ¸Ý¬¤¨z4‘Ú{Ä…Ä0ÚÚ000y‘yy{Äž›£›±¦±RžžžKÓÓëú‘úÞ\ú0©ttõ¥4ooeo0{­ë±ÈV W¤eõÏe \\-°¸­õ'¥0'ë õõ-¥{©e¸õ­¦ú('\\iß'V]V\ý¤£È¤W¬Ý¤æÆæ‚‚æÆ¤ää¬;ݬoe°Ý4õõ¥0{¥¥4Weõ¸¤¤°¥¦V¶£]õõÈȰõ°Ï¤¤ää¤ýý¨ÏäÆHݰ[¤‚Æä¤;Lȶ))££©ÆÆ.H¤ÝJ;¤!Æz!¤W°¥0ȦVÈ õ­tÝ ­£-0È00£----¥¥¥££-¦¦ ± V V VVúVVú±±úúVVVëëë\çç\çë ¥¥¶¦ ë\'úÓ(V¨VúoȶÝò°©òE¥Æ¥Oh©È°¦ú±£ET Ti†Eii%Ÿ%i%‹‹%ii††††%††%i•(—•i†%%†%†%%‹%%†%›Ž%††ˆE††ˆ%i–((–ˆEEii%ðˆßßðööö‹ü‹öö‹ðöŸüüð¸Wçö½üŸI£©° ¬zU¬ 4Ï®Æz !Ý¥IŽ)!o ó»UU» ®®ÈLó4¸©¶¶e¤¸0£È¥4£¥04Æ.ƨ¨¨Õ‚‚‚»ùkùký‚ýýýýýÕýÕ‚æ..‚ý»ùùšïkH¨‚N/ššš»Õ¤¬Ä¦±­°»‚ÝÄȰW¨æ¤ÏäÆ.¤¤¤WÏó¤t¬¬Ý[¬¬Ï䤯®»U®!JÚÚÚ0ÄÄÚyyÚÚÚ0Ú0{ÚK±£±±±úž'KúúûúûÓ''Óë-õo¬0{o¸­tÝ ¦õ4-°¥ Ȥ.Wõõ¸ÈV']°õ-{¸VëÈ -ëVõõõ¥4©©£-Ȧ±û(ß(((i(0e0'[[æÆææ‚Æ¤¤Æ‚‚¤äW¤äÏ[°©°¸È££¥ÝÈ0­­4¬zÏ{õ°­¶¶0¬õ ¶ ¥¶È¸°[ää[äH¤äHkššïùæ¨ýù‚‚¤ääæùÕ¤[õPÈ¥¶£õ©äææHƬõ¶¥°¬Wo¬­-]V-©È¥-£ÝÏ©{0ÈÈÈ{{È{ÈÈÈ000¥££¶¦V Vûûëh'ëë'ëëh'ú± ¦ ± VVë\ëëÞëëëëVVëë'Þ\ç°Æ¥£ÆMVúßë'i¥¤¤ÈÓ¥JÏ-ûV¶]E TTT öEi%EiOi†%%‹Ÿ†––EE%%%†††i•——(†%%E†%%%†%%†%%• i††%%†i••Ei••i†i(—•iEˆOiiii%†ißEEè‹èðèèEèö‹EißüèEEõÏ'ðöèüüüEVme¸ ©Æzk ¢/‚¤óWWo0¶ÈÆeóU¢æe󂯍ÄoÈ­õ4¬Æ.Ƭõ0¬ mȱõ;ä¨ý.ƨ¨¨æ‚Õ»ùšƒù»ýýýù»‚Õ»NýæÕýýùùUUU» /U¢ï@ï/‚‚zz‚®»äWÆJÈää¬Wƨ¨Æ¤ÆóϤƨƤtäW¤‚ýýkkU»»®zy‘0Ú0Ú0Úyy0{{P{P0P]¦±¶¶›Kú›VKúVúëëÞ\'-mÏ Veõ-¬0¶0¥±õWtõÏ z¸È-­ -¸õ°È\Ó­¸õݰ¦]-{°­ V¦ -\(ii'0õ(òõ¤ÆÆzHHÆäÏä¨H¤Ï¬ä¤äÝ©õ°4õ£- °Ý4õ-ÈÈ ¸0]¥õ-¶ ¥± ¦È¶±£¸ÝÝä¤Ï¬¤ä[æùýýý¨HÆ‚ïùýÕ»ÕšMMù¤õÚÈõõ¸°ÝW¤¤H‚Æ[õõ°¬¸°õ0¦ë ¥£-V-õõ­­õ­­­õõõ­­­¥£-¶¦¦ úúëëëëëëëëëëú±ú±¦¦¦ ± VëëëëúúV¶­õ¥-Þ]Ó¦‚¤°‚‚]V¬Ý-iõ­ÈÈ ëû¥©]hû±VE TðE(%%ii%‹%†††ˆ††%†(Ž•–i——i%†%%†%†%†%†%%%\›–%††E—(†•žKIIKKOEEiˆ%è–(ˆOèßß%EßEEö‹ð–öèEߤ¤ëòßE🛰Ý0È!W‚Uk¢® ¨!¨zWt; ®ê!ÄXoó®°0£t‚W¬Æ.z¥{0°°È¶mÆý.æ‚Æ¤¤¤¤¤!z‚ýùƒùk»šgïš@ùùùkù»»ù///M@UU»š¢gšššUUUUN¨¬Ä°»äÈ­[ƨ¨‚H¤¤ÆÆÆt¨¤¤¤H‚ƒùšïšUUkš¢U®Ä00Ú0PÄÄ00ÚP0PXX{ÚÚÚ00Ú¦ K]£¦››K±ûú¦y¦ëç'-¸W{ ¦¸ ­o4õë{!WƤzoõ­-­È¥¸¸Èõ°¥ݬeVÈ©t¬õ¦¦ë-VV\i('VV h(±ä¤ä¤¤¤¤äݤƤä[J[ÏÏ[ݰ­-£¥È Wõ 0¸{ëÓ'륣\ë¶-¥- -¦]-õÝ[ä¤[õJäHýùýHäääääHÕæH‚kùý»ùšù°£õ[ää䤯¤H‚‚HH¬¬WÝ­£­e©õ¥ ]0¦]£¥ÈÈ{­]-¦---]] VVë''\Þ\ÞÞ\\\'Þççç'ëV± ¦¶]] úëëëV-¶V¶-±¥­-e­õ\¬ Ï/.¥È.ëõ¤£' ]¦ë¥±ûë'ETTT T4z.ݱ–E–(i%Ÿ%ˆ–i†%%†%•›em ŽŽ(†%†%%%†%E%%%††††›K†%†••iK4z¨!Ýކ(%†–OEEißüE%ð%߈%ö‹EEßEððÈz.k!V–(È m¥ ¬Ï»U¨¤o!Uó!!!o4Ï!tê;¨oLêäeo¢¡U݅Ĥ¢ oϰȭ0{{0¬‚»ý‚ W¬ÏϤƨ »šù»ÕÕùááuu}uÑù»ùùùùš@ššššU//U¢¢ššUk®;WÆÏ©¦ÚÆ WäW¤ÆÆÆÆÆÆ!ƤƤ¤Æ‚kgg¢ï¢@š¢Uê]0yÚP Ä0P000000Ú¶]--]¦›-KKK'K±±RžK±ëëÓÞÞV­Ý­-VëVVV]¶0©È¥e¨e°tt¤ Èõõõ£0 ¥¥-ëëç'õoõ õ--¥ -ë'-V \Eßi(((iiEúW¤¤ÆÆÆ¤WäÆHäÏ󰸰ݬW¬õ--­{Èõ¸Ýto°e4Èçi(ò-­ ¶¥-£-­¥]¶õÝÏϤ[Èõ¬æïMýäJ…L°JL°ÏHäJyPõ[HJõ[¨ÆÆH‚HóÆH‚‚Hä䬩È]-¸õ£±¦¥ÈÈõõõõ­È- ((((iEððöüüöððEðö½ðððßEðüŸöòëú¦±ú±¶¥¥¥£VV-¶-¶ëú±¥¥£-õõ©4±Þ¦ý‚+‚°õòÞȦ ë£È¶úç'±hëh\% Teš-(†Ÿ%i(T½ŸiiiiE†•44›•›!t]†E†%%†%E%††%%†%†%†±Ž†%†ˆ••——].gz¶4Æ»¥OˆE%ièèEEèßE%öŸöððèß0¨z¤çö‹õzhŽ¥;!UU®z!¢ t¨ I44ózz0®U¬XÄÆ}¢©yy£¥L£±y±¶ó‚Ný æ;Ýt¤W¤.ýNýýkùý‚šáÉuMïu=¡k//k/ùš/U»šššU»UšUššUU»‚Ý©£›±‘ÄšÏóÏä¤z¤¤¤¤¤Æ!ƨ‚ùššïïïïgïïgM¢U¢UUU¨LÚ0{{Ä-00-]y¶]]›  hhhV]hž''' õÝÈVë'úúë'ëú-{õ¸z!­°õ­°õ­¥VVV Vë\iÞ¸4{]h -h'V-(i-]iiiEEE%¶ä‚‚Ææ‚z¤¤¤æÆ¤ÏÏ[¸[Ϭ°©©õ õ{{ee°Ï¬°õõh\Þú¥{¥¥]---¥¥È ÝÏÏä¬õõJ[ýæ[¸XúÚX£Ú©X±òßß–ëõõ;Õ»ÆHHHÏݤ¤Æ¤W¬ä°È¥È¦]È­-- V­È{È0 hðöTTTTTTTTTT½üE\iEððß(iç(ðüð\\ëV]¦¦­õ­¥¶£¸È--ë±V±±ë'úV'ë'Ï ¡/¬-ðò-õëßëúÈúÓVÓë RûëÓiTT +.ˆˆT%i(iE%–i–ˆ†††® †•¢4%††E%†%†%%%%†%%††]•†%†ii•I••o mO•›]%––OEˆˆEèˆEßE%%E–ðüüðð‹ð‹¥.ÏWoçò(¸š±½%m!¨ztæU®ê ]Lä!!zotLÄezÄÄ󢡮X¦›Ä ¦ûúû¦¬‚ýýHzWÝo[óää¤H‚zùùùùù»šáÉÑ .ï=á@»ùùš/šù»š/UkUUš¢Uk ¤¸±¦ÚȥȸÄÄ‚M¤ÏäWÆÆ!¤W¤Æ.ý»ù/šï@gg+++M+Mï𻮿zêo{Úy00]]yy-]] ]]]-] › ›V››hhK›] h'ë''른ݥëëVúVVúë\£°o-¦õ!4õõoÏõ--­{] ëV{{¥ h¦] '\]-¦VVë''(iEEððÝæææ‚‚ææÆÆH¤¬[Ý[Ý[¤äÝ©°¬!Weõ{È °W.!­°õ-] ]]­õ ­-¥È­õõÏäääW[ÝϤƤ[P±¶P)û)Xõ©õûëOCðò‘…õ¬¤¤;äõ;Hä¬;;[¬J-± ]£Èmm¥¥0¥¥£¥V(ðüTTTT½TTTTTTüi\(ðŸüüi(ßö((ßößççißë£0È£¦ ȶ¶È¶ë± ëëëú¥'¦‚+»¤¥¶¦-£i\-¥'çë'úûh'ÞET‰ TT-‚ë•ET%i(iŸ‹‹%†%%%• ›%%•¢!I†%%†%%†%%†%†%†††%E]I†%†ˆEˆ†ˆ•—ˆ4 4•iiž\EˆE%%EEEð‹ŸßŸŸ‹ö‹EöŸ-¨\¨ tzù‚E —0!¨!¨Ue0o{0)otoeeÄ 4æ]4z¢kƶV›ûPLÚ±žI¶¤ ‚z¤ݰ[¬¬W!ƨzæ»ïùæýùuÉ}»NýuáîùùšššUùšššššƒƒUšUz…››ž\\\I±;ݨM.W¤¤ÆÆW¤z kšM+gï¢ïïMîÑMMMg¢ïgšU»æzóÄ{0Ú00]]--]y]y]]]]]] --VV]]Vh'hV]-] V ëëëV¥©¸£VVúVVúúVV¶È¸!!¤eõ¸tƤ õÈ-¬o¬eeÏ!Ý­­000È-''h]¦VVV-- hû]{(iðððEzHz悂Ƥ¤Æ¤äÝ;[¬Ý[;¸J¬¤¤eõ­°¬4¥zϸ{-È{­¸o­õ °°eWoÝozƤWäÝ[HýæÝÚúëëúëëë¥J¸õL£ëë)õ°J[[¸XXL£úX¬[;JJJJ¥úëȸ¬WW©{£¦V\ðTTTT½T½TTTT½TTTTüöi(ðüö(iðüßòOößððiççò룣¶±ëëV¶¶ V-¶-¶±¦ë±õ±¶»We°-õ{ £V–ë¸ëVëVûë\ðT TT]ÑÏ{%ih-›‹‹‹ŽU›††iÄ¢.Ž%%%†%%†%%E%E†%%%%%†›Kˆ%†††††ˆiˆÄUÄi%%†EEEE†%%èè苟üüüü½üü‘!e–-¦©g ½ i£¸ttoz¨®¢®4oeem]  oe0m0o4K ®Nó[±›R‘ ›û±ÄææÆótäJÝÝ󤯯ÆzùùÕW¸¬ýáÉu»ýùÉ}»k//šš/ù»šššUšzL£›K¦›IçççÒ£…¬¨ÆÆ¤ätW¤¨ý@g+îïMïg¢gggïšù/¢¢Mƒ»®! PX{000]----]]]] ]]›V-]VhŽ'h›-¥0£ hëû £-¦VVVVúëëúV È t°00 ­©e­¥ ¦õ¥¸¬.z¤õõ4õõ-'\\\\ ©V \-{-VEEðE%ÆÆ‚æz‚WÏWä¬Ý°ÝÝä;°…õÈ©°¸È-õe°Ýõ4¤.tõ¥]È©eõõ°Ý4ÝϬ!zæ¨æ¤äÝäýýHõûûRÞÞò|±…©X©[õPõ°°°°°JõõõLÚû¶…JõJP¥-VV¤.z¤mÈ (EüTTTTTTTTTTTTTTTT½T½üi\ßöüð\iðŸß(ðð(òððßçòöOë¶¥¶ úëú±]£¶¦ ¶££--£¤¤.k‚Ýõ°o¥¶ë'e­¥Óëúúúû'òT TT-ï­£¨]ŸT%( ¨° •†‹†—t ކi•{¢.I%†%%%†%%%%†%††%††%%]i%%%†††ˆ »­†%%‹èˆ%E%‹%EEèööüöŸöüÂϰè–g\ T¿†›0… .![¨¢!e!!®ož ›{--- o ®Nt{¬¦RKŽŽ)ÄÝÆ».Wó°o;ÝϤW¤zæä¬¤k=Ƀ»ùuÉ}kùùùùùù®»ÑÑ »¨óPŽ›]0°­±K›K›ÈtW¨ÕÆÏ¬¤Æù@MM’gïMgš///ƒƒ/ƒù/𢢢ššU.äL0Ú0y]››-]]]-y¶]¶ ]V›››'Ž'ޱ]- h'Ó'ë'ëû'ëëëëëëëë¶Ýe-¦ e¥]ë­õV­Ï!¤¬¤ 0­­ÈÈ-'(i(ih -V\(\iðEEðE%¤HÆWÆæW¬Ï¬°¸°ÝÝÝÏW¬ÝÝ©Èõ­-0õ ÝeÝÝWWϸ­-]£{{õ°°õ°¬ÝeoW¤¤¤ÆW¤äÏääϸ±ëûÓòßò‘…LÈ¥PJ°°ÝJ°Ý¬¬Ýݰ[°õXõÚX…õ£Xõõ£-oz¤Wo©È- ßüüTT½TTTTTTTTTTTT TTTTTüE((EüüöiiöiòOöðòÞOßççßðð\±0¥¦úV ¶£È±¦úëë]{‚¡¡©¶¬/Æ©õ©°­'ëëȰ-¥ëúëÓ(Ÿ TT½ÈiEž»ÆTŸI ® !z0—†‹‹‹‹‹‹‹•oUyˆO—{U!—%†%%††%†E†%%†%E†%†Eˆ›Ž%%%%†††{®{†%‹'{¶ž?žO0£ÓE±­¶(ûERi¦½ÂúeEü¥e ‚‹Â T—È4!¢U{4zoy….4£Ä{]›Ž {]›--t¨ƒ!ÚXä‘›±±KK¥Ï®Ušù»¨¬Ýo[oä¤WW¤W䤨¸…¬æ»ùùuÉ¡ùùïáÉ}N»Uùù/UùUUƒ¢k¤L‘]]›¶ÚÚLKžIŽ£¸°Ý¨šÆ¬¤‚šïššïgMMgMïšùùš/ïgg¢M¢šƒUU®¨! P0]]]]]]¶-]]]0 ]KhhKhŽŽhh''hû'\Óú¦-û''úÓ'ë'''ÓÓúȰ¥ë-{¶õ]±£È °z¤Ȭõ ± ëçß\\\\ë'i(i\\(iiððððöðÏW¬¬ÝÝݰ°°Ï¤Ï¬Ýݸ°°°¥-© È­õ °Wt!Ïϸ¥¶¦£õ ­©©0{o¬e°¬!ÝÝÝÝݬ[È£¥¦))±õ………yyõPȰݬ[[;Ý;ÏÏÏÏ[°Ï¬õ¥££y±û£­ õ¥­ee4­-\ßüTTTTTTTTTTTTTTTTTTTTTTT½üðßöüTüðiiß(iðüðOOßißðððOÞ¦¶¦ú ¶¥]¥¥¦ëÓ'¥Ï¨ÈëÆ‚ÈÈ­¸©¥-ëPÈ]ûúRûëETTTT ­}Uç†IæWT¶kk®. ¨zt ›i‹%%ˆ!0ˆˆ›eU{ˆ%E††%%%†%††%%†%%%ˆ¦I†%%†%%†† U{‹†‹—¶ç•i iˆ-'-‹%­%úû]üÂüV©ßTë‚g° T °!!z›-Uóe››] ›-¥]›Ž- --t®U®Ä)Äêy¦‘¦K£WUU»»ý.¨WÝJJó¤!zHÆ!!¨¤zùù ùáÉ}ùšî=ÉM»kƒUšMš®®‚¬Ä KK›¶0ÚÄPĦ—Ž)£yP…W¤¨šMïƒùšgM¢gïïšïM¢ïïg¢¢gUUU»U®®zœÄ00y0y¶y--¶-0{{]]-› › VK'ŽŽhžh'hhh\ÓV]¥±±hëëÞ''Óú±h'úú] ú¦VVV Ý!Ýõ¬ÝVÓëÞi(\(('\(\\(ii(iii(EðEÝÈÈ­ÈõÝW¤Ï¬¸¥¦°Ý­-¸Wo­ÈÏe¤Ïz¬e0¶m4È0{¥¶¥¸e¸°tÏ4°°Ýݸ¬W¥ë¶õõ¥;¤óõëÞ±X°[Wä¬Ýݰ°;ÏäÏ[°¬Ý¸È¦]¦ 'ë¦-¦-V-­©õ0VçðTTTT TTTT½TTTTTT½TTTTTTöðüTTTüðßiEöüüüöððððüüüððßiÓ±±-¥­¥-¥±'ú]eÈúë±±°kÆ{¥¥õ¸¸°õûú±ûú hET‰ ½eùÚ ¸T‹i kUk®‚!ê[e›—†‹‹††I›Ž{ •†%%††%%†E†%†%†††%†††Ž]•†%%%%%†–® i%‹•†44­¬•i;°±èˆŸ-{yȦûè-Ý;¬4E EÕ  T°­Ä{®.!0]0¶-¶ ]]› ›] ¶{® U‘yzͱ¦›¥ó‚ÆÏWo;t¸©L4o¬¤H¨¨¨¨zýýùkýNM=É}M=ÉÑùùùkšM¢»‚Ý©£±¶ÈX{LJ;[±I•Ž›¶Ä­Ä;ݨ+M¢ gM@šïï@šgM++M¢gM¢ïšU»N®®U®æt y‘‘]yP000Ú0ÄÄ--£]-¶0 KŽ'hV'''û £¥¦ ¦¦¦¦ ¦¦'Þë £¦ÓÓëú±ë-]ÓÓ¥4.¤ezzÈhVÓÞi\h\'hßE(ßEði(\((((°°Ýe4­-0¥­¸Wz¤oݬÏÝ©¸eݸ0¥ -°°4¸e4õϤ!ÏeÈ-¥¥ÈõÈ¥¥4Ý 4°Ý°õÝeoo¥õõëò(ë±ûõJ)Óë±È¸ÝÏäää[[[;°¬Wää;¸Ýݰ-¶ ¶ë ---V¦©©­-\ðüTÂTT½TTTTTTTTTTTTTTTTTTTT½T½TTTTü½TTŸü½Ÿü½Tüüüð'±¦£{õ¸©­¶±-È£¶¶ ]£­]\ ¤.Ý¥-0©õ £ûÓ\ú ])Vh\ ‹ TÂÞ¤»»LÚ›%¶‚®kUU»!t!ó4]—ˆ‹†%†O{ooe•††%%E%†%†%%%%†%%%%±]††%††%O›oz¬Žˆ‹‹£iEÚ›ÓeÓ\LhO-(­ÝO(­\ îg©½½Þë Â%4Ä{0{Ä JÄo.ó]›]] ]] ¶Ú04¨zyÚÄä!eÈ]¦±Ú¸ä¬Ý[Ýää¬;LÈõJ;¬¤¨ ýýýý»ýýùá=áá=ᡃù¢k»N¨Jy¦­Ä©©©…äoäo ›ŽIh±Ä©¸[Æ MÉug îMùUšUkUšïïgM¢¢Mg¢Uk»®æ®®lz!X‘0‘0{-{0]-0{000£ ›]¦ -Vhh'ûë'''ú-±ûV±Vú± VV''V ¦V'\ë''ëëëë\ë­¤z¤ký¥-ú±i\\ëiEö–ðEðE–i(i(Þ\\'ÝÝݬe¸õe °°°¤.¤e©e°¸ õõ­ °¬Ý{¥z°0- ]-­ÈÈ4¬!Æ¤Æ W­©¸¸¬­]ß((çú­PûÞë¦L¸©äWÏäÏ[Ý;[WäW並õ¸­£Vëh]-¦ ¦°4ȸ¸õ£iüTTTTTTÂTTTTTTTTTTTTTTTTTTTTTü½TT½Tü½TT½üü½½½üüiV£¥­Ýo©õ©¨È£¶£{©¸h­‚W£¦¥{È{££]ë]¶¦ úë( ö ÂTŸ?••–†Ÿ½Ÿ–o/Ukzä[otóóJ0?†%††%%†—ŽI(††††E%††%††i†EE%†%%††- †%%††%%†%ˆii•i•%‹‹%KÈıˆhç‹£Ó|õ©]%ë–½Âû­‹õ .gÆõöTŸüTT ½%)•‘¸{…Ä04eJ-{Ú]--]¶- ]0ÚÄ000Ú¥¶‘¦±yÄݬÏäo[©­­õ°ÝÏ!¨ýý‚ý ý»kùšš/@gMïƒ/ùzÏ4X‘±›R)±› ¦yÚXÚÄ…ÚŽŽ—ŽŽKÚÝ®»¢uÉMM¢šUk®»kš@šUU/šUU»®¨ææ¨!êä{0P0000{Ú]{{0]--›V]{{0›hh'Žhž''ëÓû£­£ë'''hëëúëëëëë'\ç\Þ\çò(ÞV°¬!zÈ Óë¥hiß(i\\ßEEðEEöEðEEi(\\(oo°eÏÏe¸­¸õ--¸z!e °e°¸õõ°44°õ¬¤z¬¶úú --È­©¨kù tõ­¶¶ÏϰëiÓ¶©©Èúû¦©[¸ÝÏääääݸ°Ý¬äÝJ­¥°­¦V Èõõ©Ï¤ÏeÝ È(öTTTTTTTT½TTTTTTTTTTTTTTTTT½TTT½TTTTTTT½ü½T½½½½ð릣ȩݸ¸kϸ¸­¥£0©­ë¦¤£-£]¦¶]]¶¶¦ ú\ü T½O–‹ŸŸŸTT‹—W‚®U¢¢U®êääääot![yŽˆ%%(—ii†%ˆˆˆ((ˆ†††††ˆ†%††i†%†††††††%E†K±iE††%%%%%%%%%‹†—IO‹–†%–\(OE‹Eüöß‹‹ú4ÝW4ðÂÂTTTT—Žmem{ÄÄe4{ 0¶­--]] --00{0Ú££)£¶)¦¥…䯯WäóoݰL­õ¸Ý¤¨»ùšùýÕ Nkù/ùk!¬©Ú¥yÚ¶y]¦ ¶¥Ú£Ú¥0{…X{Xeêež?——žy[®ššš Éu¢‚®k®Nkù»@U»kUU/ƒ»UkUU®®æÆzzóóo4P0Ú0Ú0000-ÄÄ]]00hh ]- hh'IŽ'\'¸­úÞëÓ'ëë''ë'''Ó\ç\Óç(iòòç(0õõW W-±Þ (iiiEEEðEEðßðèðððEi(i–iE!tõ­eÝõeoõmeõ-VȰ°¸e°õ¸eeeeõÈõõot!‚zõ V¶¥¥­­©¨kkýkz¤°õ4¸ °k Ý¥¦ú °ÈëûȰ[[J[ä[Ïäݸ©¸°Ý[¬­ ¶õ¬{V¦]-©e¸¸e°W¬Ý4m-ðTTTTTTTTTT½TTTTTTTTTTT½TTTTTT½TTTTTTTT½½T½T½½TTT½½½üö¦¦¥õ©¸WÝ©©©¥0ÈÈõõ]'£ÏÈ£±V¦¦ú¶¥0¥-±'T T% T½%i•E‹TT½KÝ®k®»k»zäóo[óäättJ›••››Ži†%%†iˆ††††ˆˆ††ˆ†††i†††ˆ†††Ei›Ž†%Eˆ%ˆ†%††%††ˆˆ%%%†%%ˆ%%‹üEöŸŸðŸŸüüöü‹±¤õßTTTÂÂŸë– ‰EÄÝeyXLe Ä0-Ķ-¶ 0£¶-]0000yP0Ú¥¥¶ÚÈ{!¨!¤¤¤¤¤ä;©L¸ÝϨý/ïùýN»kùù»¨ó¸XÚ¦yÝe;………ÝÝÝ;©J;;;o4[zƒ¢ó0]ŽI®MÑÑ =á»ÏHššg¢šUU®N®»UU»®® HÆz¤äóóoJ 0P{{00{{00000{{m­0›VVhhK''h'' ¸ÈÞÓVë''''ëë'Þëë'ú¦±ë\'Þç\çëõ .ȶúÓÓ((\ßßi((iEððEEðiEðððEßðEðÆW¸44o¤ÝeÝÝ4õ¥- --0 Ýõõ4¸¸õ¸õ­õ£{e¬¤!¤e£-È{È¥{Ýý‚Ïõ©È¥4Wk‚¤ï/¤ÝÝõ¶úú¶¸[[[J©[[JJݸõÈõ¸Ý°õëçë£ -Èõ¸m©¸©¸°ÝmÈhETTÂTTTTTTTTTTTT½½TTTTTTTTTTTTTTTTTTTTTTTTTTTT½½ü½üððE¦£¥È©Ý/ÆÈõõÈ­È0õ©­ë\õ…-¥£-]]È{ȶ(  TT––††н½ŸŠ½TTžzkUUzêX0etäê!m›Ž•i†(III—Ž—iiŽŽŽ››Ž—†•›Ú—•—•ŽŽŽI(›K(i(•i(E†ii†–ii(ˆ†(%•i%è–öèèðèèðüööððð‹Eö£.è½½ T½'ET ½†¦oÄy 0 4m4 È{ -¶-¦­È¥]¥00{y0¥Ú¥[®ÆÄÄÆ!¤Æ¤zæ¨tÝÝóÆ‚»ƒMïgk‚WÝJ©­£È¥¥ÄÈPÚ¦¦£PX¥ÚÚÈ­¥¦0Äo¨®®zŽIKX¨šUUU»‚šƒ¬ÝÝ U¢MU¢U®®® ®UUk æH¤¤¤ä;;[oJ…ÄJ4 {{{{-000- ­0{0-›hhŽhVhhhûhhë-o©¥ ûV¶ëÞÓV±V ëV]-±ëëëëòçç\ç'V­!W±\ii'''\(iEEðE(iiiEð–iE!oW¤Ïzooe°õ]- È ¥õ0¥È¥È0õ {- ¶È°WWݸ00­­¥£­¬¸¥¶£¥úú£È¬o¸./z¬ úú££Lä[…P©[JÈ£Èõ£±¶­¸õ¶ç\Óë-­©­­{©°° ­]\öTTTTTÂTTTTTTTTTTTTTTTTT½T½½TTT½TTT½T½TT½½T½½T½½T½ü-Ï .ëƸeW¤//õÈ­õõ­­{õݸ- °zõÈõ°©0Xõ­È]Þ‰ T T½Ÿ%OˆŸTTT½iL»kkk¨ä-†ˆ—› ä.®®4›—Oˆ•›ÄI 00ŽÄ{›mÄÄŽym{e-›Ä0oÄÄŽ-h(—••—i(•(i(••i••(iE†(•Ii››(†OO–ßOðEðEßððèöðiö­ko蟽TÂÂÂTëè T%ž°ey{ÄeL¤­ooÈ-¶-££0¦¶¥000ÚPXPÚy{®šU¸y¸Æzƨ.ý Æt¬[¬¨kù/ùýÆäL­ÈÈİ݅­0XÈÈÈÈÈ0y¥¥0¥¥È­[¨šš®.¨ÄKK0e!U¢ƒU¨zÏ!‚¨¤NUkU® »®æ®‚æ®®®‚Æ!¤äϬ……{X­©mm0{{00È0£›0 {{£] Ž'Ž'hKhhKhhhÓ문Ȧ VÓ\\'ú± úV¦ ë'ë'ë'ÓÞç\Þò¬¸{°ë(\\\ÓëVißEðEßOißöEEð.¤t¸õ0õe4¤°-­ õ]0¸õ4¸­õݤ¤¬õ¶V¶È¸ÝõÈ¥­¸°­¶Èõ­£¶­úÞëÞú¶õ¬Wt-úÈõÈõ©;;£Ó±)úëÓ ]h± h'V]¥e°£-{°o¬e4m{VßTT TTTTTTTT½TTTTTTTTTTT½TTTT½½T T½T½TT½TT½TT½TüÂð{‚W°°\(Wõ‚/.¬¥{©©õ°eݸm­¬k!¤¤¸° õ{Vð TT öŸˆ–ˆ%½T½T½½ŸŸŸ—¥®U®®!toކ•Ž] t!®®U®t0—ŽI›4oK›ett —m›ŽJ{ -—¶ 0otäŽKI(II•i†i—ŽŽŽŽ•ii•E††i•±U®¸•ˆO(((iß––ßßßöðèðèûúk°OüüT½üEë TŸ•ó0Äoz We oÄ{-m¸40£-ÄÄ¥4;[ äX­êU®©¦ÈH‚‚‚ýN‚zÏtzN»‚zo; LLeϤäWó䬬ݸ¬©¶yy£yLJXXeÆ»M+MUg¢®[…›]4;æ¢Uæ!tä䂃¨®U»N®æÆêz¤z!Æ!zÆzÏä¬;o LLÄ0¶y0Ú¥È00{{­Ä00£±0 ­£] hhhh''hŽ'Ò'\-Ý©-¦úë''ëëÓÓë''ë'\ë\Þ\(içÞÓ\ò(¸0V-e]'''\(((iEiEißðEèEEðEEðöðèEEÏ!Wõõ {V­W°¸mÈ¥Èõõ¸ÝW¬¬o¸õ4°¬o{ V---­ÈÈ{{­¤° iðððò((£¬¸¦£õõ¬È£õõ°¸õ©L°¸¶ëÞëÓëëú£õVV]hh']­­]¥¥]¦]õ°¸©©¸¸©{-öÂTT TTTTÂTTTT½TTTTTTTT½TTTTTTTT½TT½½½TTüTTüüÂÂü ëö üT½ö­°õ00m©õ­­°¸©õõ¬ šùùùù !°õ{úð T  %ˆi%TTTT½½½k»æ¨tL•v†•Žo!¨ UUzÄŽ•]êo]I0e{•ŽÄžI4Ä XI›{›o¨ ê —-K(I•i–ˆ•—Ž•ˆii—ˆ††EiIe zž‹|iç–ßö–i(––EöðèööVoWý;¬¸ Ÿ\È©(ö ÂTE¶Ýo®UUo‚šÝt…­Æe£m.¥m;o;U®40P0 …¦±-zNýý»ýæÆÆÆ¨‚ÆÈÚÈõ¸e[¤ ¨¤t°…õ¥ÈÈ0­­­­ÄÄLo¨ƒš/k¨ »š»®.‘yÄzUó]P;t[oz‚‚zz¤ê¤¤äWƤ!¤äÆó¬o°4…L4ÄX{¶]£¥{È¥0{m¥]0°­£] K››V›Kh'Ž'h'žë''h-°ÈVúúë''ë''ë'\''Þ\('ë Ýë¸V\'\(\(ßßißiEð–EðßEððEEEð!zÏe°­°Ý°°ÝõÈõ-V'­!!ooÏ44õ¸õõ¥ ¥È¶-¥¥-­õ£ -'ðößiçÞiöðò¥©©©°¶±¶0¥¶È¸õXÚPX)±û)¦¥°o4]ÈV'h ]¦£-ÈÈ-õ°e 'öTTTT TTTTTTTÂTTTTTTTTTTTTTT½T½TTT½½TTT½TTTTT½½½½öÈ( ½Â ‰BÂT½(V£­¸°©{­©e©õõÝý»šš/k/k¨o¦ T½üTT–†ˆ†½½TT½%ŽÏU.zz;ä]†iŽ0o®®®®ze0ڛĕ]ti—Ä -{40Že.]›! (±K•IŽ•††i(Ž—•ˆii•%†Ei•m+tiˆ%(OçßEß–iß–ðèüüë‚ý‚W!h ÈÓüT T Kezê!®[êkWÝ£¤o£¸Æ¥H©.o¨ ¶ y - ] »»kù»ý¨Æ‚[0È­©4°°¬W.»ÆWt¬e°õÚÚXõXP­LäHkNN‚¨®»®»U®®óÄ00‘Ló…XJoo[¨Uzê.¨zÆzÏäÏt¤!ê[o¸¸… ÄÄÄÄ{¶0­0{È00ÈmmÝ40££-- m0-¶ ]0- V¦ Vhh'h¶] £­£ëú±Vúë'ë '''\Þëh\''\V{4o{ oo£ ]]ë(\'iiO((ißi((ii¬oeWz!z¬õõÈ­È0 ¸W¬° eÝõ°­-¶¶õõ- ÈȦ]-ëòðV©È­-ëë¶õ¶¦¬¶iëÈ¥±ë¶4©P££¶¶P¸L©[õVë'Vhhhh'±±£È­© õ°¬°m]iÂTTTTTTTTTTTTTTTTTTÂTTTT½½TTT½T½TTTTTT½TT½½½½üü½½Vß ½ ‰‰‰‰‰üði'-­¸°©ÈÈ{õ ee¸ õWšš/ùšš/ùš¨¤¥úòð‹ööˆi%TTTTTTŸŸŸ%•ä‚!!oK††E—{®®z .zze0Ii•]›†•m›iŽ{ÄI(›-žŽ±hiI¶›Ž——(††i—•iE†O•ˆ†i•†Ž¤¢U]O††ˆ–Oè%‹ð–%ððŸüßk¤t°½h  'm¬!tÄoêoê¢U…4­¸W¸šk‚o¸¢U o4yy{-] ›-]›0Æ»ùššk»ýýk¨; © … WÝÝWzz!z!Ý4mõX¸¬Ý¤‚æýýýÕù¢šUU¢M¢ ¢¢zÄ…L{Äo!!óó[z¢z¨ ®¨¨»¨¨!óóo;;°…ÄÄÄ{{{{Ú{m Äm{0{00­om0¶-{­{00]£--] KhŽ -]ë ¦úû ] V ±±±¦-'\'V ë'ëh'0to]]ee -ûV{Vëò\\\\\(ii(\\\(44°õ¬zo¬¬¸õÝ È0õ]¥õÈ­ °eÏtõÈÈV-È-¶ÈÈ  çiððßßß'­õÈ¥¶¥¥ÞO¦¸Þòû±¦¥¥£õPPÚX¸ää[[­ú''ë'h h'V ©°oÝW¤¬ee40ETTTTT TTTTTTTTTT TTT½½TT½½TT½T½T½½T½T½TTüð‰ ½ ‰BB‰‰Â ö( õ¸°ÈÈÈ­©e©õ­¬ýïï//šù‚ݬÝoo¸‘\%\ˆ†½T½T½½T½Ÿ½½Ÿ‹%›z®êózmi†iˆ†(]tê.®zÄK—•ˆ•I—Ž•ii•—ŽŽžŽi†O•(ˆ†•­ ¦iO(†ˆˆO•–ˆ†ˆ•i†%†O†ž£KO†EèŸEOß%‹öŸüŸ-.¬o¶üçO½ ÂTT TiÄ;Ä0o{{+¡‚zU®kÆz¡š®¨; ®®zU!40-±]0¥0]V0WšM+Mš//äX äÏݤ¤ÝoooÝÏÆ¬©m©PXæHùMMæHÆæ»g¢ƒ¢¢¢UUNNo0…ÄÄÄJ;ó¨ê[t¨‚š¢êê!¤¤zÆÏJ … Ä©©ÄÄ{X{P-¶ -ÄÈÈ000m¥{m­È0-­0000{-- ± VhhK'hûhhë'¦££VVVëëûëë'\\\\- õ{0m4õ{ 'Võ \(iiii–ßEðEEEÈÈõ¸eÈ¥¸õV °¸õ­¥\ð¦È¥È­¸¬z¤õ¥¥- V-õ4¬t0]-¥­ V ë\\-V'¶­i磣±¶£££Jä¬Ï[°õL…¸…LJÈû'ëV V ' V¥WÏt¬Ý©ðTTTTTTTT½T½TTÂTTTTÂTT½TTTT½½TTTTTT½TTTT½ü½T½üTüÝ(  BB ‰‰Âö(\û¦-££¥00­©©­­{¸W»ùšùƒù¨eϤ¨Õ®WÚ>(—%TTTTT½TT½TŸŸ–£Æêotóˆ†K›ˆE•IŽ !!.z{Ž0Ki••••†••O(†ˆˆ–E†ŽP­IˆˆOO–†ˆO—O†ˆ—ŽI•ˆˆžŽž—i—hO\¶O‹ð%‹Ÿüüü½çeEü(ü½ÂT T ½òĸ°[LÄ ÄJUš »k u® Uz ¢¨ ¢Noêe0¶ÈÄ {±]¤ïîMîgï@﮸Äóz¬ÝeÝo4 ©©¸mLõ¥ÈȬ¤‚»Õ‚æ‚ææýý®æ¨ ®¨!!t…yÄLÄÄ0Ä…eózMz;J©44ÄÄ­­È­ÄÈÈ££ -] {{£0¥£{­{ÈmÈ-]-0 0¥£0- VhžŽ'žhK'ž''''û¥ȱëëû'Ó'''Þ'''\\\\\\\\\\hh'V]-V{­]V'\0\iißiEèðèEEEèèEððE%-£°°­¬Ï°- °e¸È¥ë\¶- 0Èõ°Èõ4¸Ýzz!‚zo¸ õõȥȭȶÈ£ëëÞç¥J…J[[;ó;ÏJ…LõXõPúÓ' { ëV¦]-eݬt¬W¬°oe0\üT T ÂT½ÂTTTTTTTTTTTTÂTTTTTTTTT½½½TTTTÂTT½TT½TTüð¬'‰‰ü ‰‰‰B‰ üEi(\i'±¥¥­©õÈÈ­­©[ääê¨NNäó¬ä.®k/»¨ 'Ÿ¿TTTTTT½TŸŸŸ‹ˆ•0zä󨕆†•—†i•(†iKÄ!zz®¢—••i††Eii%†%EEˆ††ˆ†•y?<›¬äÈI›ó®o?ˆ!¨W›Ž.]]thŽ‘Ýùž‹‹‹‹Ÿü½Ÿ½ðõ¬Lè½TOû½T T T ½i4{Ä oó!e!t®»¢M®¢ Uê!®U®æe{{0X{{0 mÈ{ýM+gî+ÄÏÆ¤Ý°4ݬ°ee4©mÈ©¬W¨¨Õƒƒ»NÕùùý»U»æ¤¤êtêät{)‘0]‘-Ä 4J……ݬ¢®ó;e;J…©…©J©­X¥XÈ¥£‘±± ›]]0{0¥-È0000{¥]]]¦Èo{¥--0] ›Kh'hhKÞÓû¥õ­V''Vë''ë'''h''hhë\\\\\\'\\\V'((V]hhV¦]'(Óëii––i–ðEEEððEßßE%£{°¥-¸ 0 V¸-¶VV¶£ÈÈ­ ¸¸¬Ýtz zÏz‚õõ¸°°¸°°¸õ©¸0ë±PÝääää¤;¥¥¸õ°;[…Lõõ°…£±±ëò¶eÝ£±¥Èõo¨¨¬°e°eeÝݰ-ßTT TTTTTTTTTTTT TTTTTTTTT½TTTTTT½½Tü½½T½TT½T½TTTüÂ'Wö‰  ‰B‰ ðEßßßüÂTöO\h¥È­ÈÈÈ­¸J©…J‘èçȤ»»N»»ù‚[žTTTT½TT½T½Ÿ%O!tt! Ž t40Ž(EE†(Ž4o!®¢¢ޕޕi†%†ˆˆ†EEE††%%ˆˆ–­›O£Æ¶•i…¤yä• zÄŽˆˆ¶!KIm.»ëŸŸüü¦Ÿ½Ÿ \ÂTT ½ Âðûh0ÄoooÄ{!ä!æz!‚®!ê!z¨æ®;o…{004{]]000e¤‚š+îîîÑMk;WÆ»¤°¸W[¬Ïätt¨¨zïùæHý++MîÑÑ¡}¢¨ÆÆÆää¨U!Ä{y‘P4ó;; Ä󯍍z;L°Ýo;°4­ÈP£¶ KK›{0{ mÄ000]¶£-04­{00È¥- ] ±›VV'Þ\\\'¦¥¦ëë'ëëV¦Vëëh'hV '''\\\VVh'Vh'\ --ëi(\\(ii((iii–ißEi((iEðúV ÈÈõ!e­4mõ¥-¥-ë -04¬Ý W¸õW°0õÏ.¬¸4õ ¸ÝÝÝee°¸0V¶ÈJ[óä¤äJ¶¦X;;LJ°Lõ°°ÝJ¥¶­­ ]©eÝoWW¥ -£¥õ°¬o4öT TÂTTTTTTTTTTTTÂTTTTTTTTTTTTTTTT½½TTTTTT½TT½½TTT½Â½ ¬öB T BB‰ ÂöE–iE ‰ ß'V¦¦-£0©õÈ¥õL‘ðü–Ó©ä‚»»ùù®Æ¤K†½ŸT¿½½TŸŸŸŸ‹%†IÄäot—›{]› ——•††%††—]4zUU—(]]E††EEE††E†††%E†OÄI–›¤IˆOJÝI¸¬ieU!.)—t£%†KK•W¤ó¨K‹‹üTŸŸŸë¬±ŸüT½VûÂTÂT ½'òüKP­oê!t4®!®o;4W® ®®!![JoJ4{-¶{400£{ MggMÑÑM¢kÏÈÝW¬JJ;°¸oϤƂ ‚‚ýz‚‚æNù@MMbï@ƒÕÆêz!täóä[ y]‘‘¶‘0X JÄ¥0{0©JP¸…Ä¥{­XÈ££È¥- ¦›žžK›{{ÈÈ{{m mm{È{£ -0£0­0£-] V¶-VKžhhhV'''ÞÓ¦­°õ]ëë'ëûVVhëVVVVVV''\'\\h V\(h]V\(iii–iEèEßiE%Vú-{õݤ¤° 40Èe¬õ4¸Ý¤¬Ý°°4¸È¥¥¸¬¬e¸eÏzݸ°°¸°oWÏÏݰ°°­¥¥õ°ÝϤ¤¤¤äõ¥XJõ…°…¸[[[¸È¥õõ- £© Ýo¬Ý-h¦¥ ݬÝÝõTTTTTTTÂT TTTTTTTTTTTTTTTTTT½TTT½TTTT½½TTTTT½T½TTTT½TTüüÂT¸ ‰‰T‰‰‰‰ ½iißö ‰‰‰ ßëV¶È¦ëÓÓëÞèè––\ú¥o »¨¤äoÄh ½T½T½Ÿ‹Ÿ‹ˆ%Kóótêo•(›I†ˆ•E†††%†•]zt0I‘ÄŽˆ††††%%†E%EE%ˆ–¦Ä<›H—%<¸;I©äI¥ä䑎y†%K¨Lž®‚ÈÝKŸŸ‹ŸŸüüŸoëŸT±h ŸÂT(T'0¥°zzó +U¢!yP0…UUUo Leó JmmX0Äm-k¢U++¢+  šùÆyX¤óÏ!¤… ¸¸°°¤¨ý»N‚æÕ‚‚»Õ®®ù»šïMMƒ»¨¤W¤!¤ÆtêäoX‘¶]] ‘ÚX{Ú]¦‘[äÄXÄÄÈÚy-›¦¦¶¶¦±›KKŽž›Ä {0© 0­È000-- ¦-V VúV ]¦hI\''Ó\'VõÝÝ¥ë\ëûûëëëV V V''h\'\V '\(('](i(iç'i–EEðEEEEE%%%ßEðöÈ!°eoÏõ¥­e¤¤!zt¬¬©õe-ú¶õ°°°°õÝõõ¸¸oÝoϰõõ­­¶È¸¬äää䤤¤¤ä;J…Lõ¸°°Ý[ä䤬¸õ£]0eoÏÈ0¦£©oÝÝiTTTTTTTTT ÂTTTTÂTTÂTTTTTTTTTTTTTTTTTÂTTÂTT½½T½T½½T½T½½½üTöV ‰‰Â ‰‰ üEißEü‰‰‰‰‰‰ üèOÓëEöüüüEßEEEèˆz‚oÝÏKˆ½ŸTTTŸŸŸ‹%†•y[o›•›•—›—%%†ˆi††(Ž{o!…P0(†ˆiE%ˆ%††E%†%†ˆI)O–?;?ˆ<È›ÄJOyæ¨óK—…ˆ†I;ÈK;ž¦I%‹‹ŸŸŸŸçŸTðViTT TTûüOÈ¥©m !U ¢4-]0U!ÄÄ e4e{{0Ä00 ‚+¢¡}}ÑÑ®©¦È°óϨ¨ššùƒ/ù‚®š+’g¢šƒNƒU®N®»U»HWê®®zJLX]››‘0ÄÄÄ­X¶¦ee{ °4ÄÈ0)››±› ¥¥‘››‘0Ú00£0{{È{È¥£-£]]-¶]V ]û'hVh\\'K''\Óû-©oõ ëûûû'''V ]Vh\\'\\'((\h'iii(\Ó(ßßð%EEðEðððð%%%%%öt!W¤õ!!¤eeϬ¬¤ÏÏo¬zte©¥0VÆzõ°ÝW¬õÈ--õ¬¬Ý¬Ýõ-¥õõõÏÏWää¤ääää[[õLL…J[äää¤ä[°°©õ{ Ïo¬We¥õÝo°]üTTTTT TTTTTTTTTÂTTTÂTTTÂTTTTTTTÂTTTTTTT½T½½Ÿ½½TüŸüüßið‰‰‰Âüöü½EßðÂüüTŸTÂÂT‰‰ üEiOü½‹öèððöüT½T½T½›°ÏÝÝT½ŸŸŸ½ŸŸˆ%iott;K›e{Äz›††††•m0—††iIÄ;›i%–†EˆEˆ%†ˆ†%ˆIÚ>††COŽˆ†>•†OOˆˆ—OO†ˆˆ‹†–ˆˆ%‹‹Ÿ‹üüŸŸè©–TöÞçü½ TTTT ½'û£mÏt.¢U. {Ú00t…ÄÄÄmÄLÄ-]y0yÄt®¢kš ÑÑMgùÆ ¦¦XÈL…¬!æ‚»»N‚ÆW¨N‚ý‚ý»ý»ùNÕN樤ä¤äH‚æ‚ÕÕÆW¤¤¤¤ä;{¶y]‘‘ ]‘‘¶¶±±Kž›¦¶¶]0¥¥¶¦›››K?ŽKKK]0P0{{{{0{{È0£]]-]-£]]--00-¶ ''ëhhë'hëëë'''ӦȬ¸-hëëëh'h''\\\\\\\\(\(\'\(ii(\òEè%EßEðEEð%%ð%%ðz¤¸ÈÈ õzÏo Ϥ!¤z!ÏWtϬo¬Ý 0]\ WÝõ°.zzÝ-¶ V붸õ¸°õ ȸ4ÝÏä䤤ääó[;õõ©õõ[ä䤤W;°¸ ­¥©eeÝte4õ¸È¸e°VTTTT ÂÂTTTTTTTTTTTTTTTTTTTT TTTT TTTT½TTT½T½Ÿ½½½VÈÂB ½öðEð½üö–ðü ½Ÿüðð‹‹ü ŸèOòßü½ö‹‹üŸü½½½Â ÂTTTTŸž¶oo¥i½TŸT½ŸŸŸŸŸ‹‹‹žää—(•›{0—E†]{{-]Ži%ˆ(›zêeކˆ†ˆˆ%††E†EE†–Ky<†ˆ†††ˆC††C†C††‹%%†‹†‹‹üè£èè¦ö½TT ÂTTÂðÏ(¶-Ä!ä!ê;P00Ú000{-]00P{00y‘]¶ zUUU»®WÝy›ŽžK¶ÈϤ!‚Õz¨ÆÆWÏt!Æz‚¨.æ®®®‚HÆWWää¤Ææ‚æ¤ä¤¤¤!Woe0¶‘ y-›››]]›KŽž›…Ý ›))¶ ›K8›K)¥PX{{{¥00­{¥£-]]-]-]]£-0­0-Ó''ëVVV''hûhëûëV¦È¬£ûûë''''''\\'h\\((i((\\i((ii(OEEE†EEEEEEE%%ððð!o4°°- õõõ­] zzzWt¤Ý ¬¬¸õÈ \---4..¤0 ¦- ë-¸õe¸0-õ°ÝϤW¤äóó[…õXÚÈ©©°ä¤ä¤äW[;õ£]¸ õÈõõ­õ0õ­È4e°eüTTTÂTT½TTTTTTTTTTTTTTTTTTTT TTT TT ÂTTTTTTTT½T½T½üèðß ½üðßißööðßEüÂÂüèß–i–ßüEi((EüŸŸT T ‰ ÂT TTŸ•0eo¬¬È•‹T½TŸŸŸ‹‹täKi‘{›ž›†Kކ• ›†%(›0eääÄŽ–ˆ†††ˆ†ˆˆ%EOP‘–ˆˆˆ††††ˆE†‹‹%‹%‹Ÿ‹‹ŸüŸŸŸŸðð½ŸÞûTTÂTTTÂÂTüŸ°û{È Ý¬J°e {{]0y{0-]-]]z¢¢U®®¨Ïm]KŽ›žž›£J¬U»»æzN»»»®z¨‚Õ‚ »ù@ùU»‚悂ƤH‚æÆææH!!ÆÆÆ‚®‚!¬°yP{PPÄPÚ0£¶ÈPÚ ¶eäȱ¦±¦)±›››]0…J444Äm{{­È{È]]]¦]-¥£ ]-¶-{000£ VhV --]û'V±¥Ï°-'ëëVúû' \'VV''VV\\\('ë'\(\i']'\(iiO(iEEEE%ˆß%%%EEEWW¬Ý°° -õ©eݤ!¤¤z¬eÈV­WÝÈÈ¥ õV­ õ-V -¥V-¥-È­ÈÈõ ÏÏWWääLõP¶)¦¥¸[䤤W¤¤¤¬ÝJ¶ëú¶©¸¥]-0{°{­õ¸m e°eöT TTT½TTTÂTTTTTTTTTTTTTT T ÂTTT T TTTT T T½TTT½TT½½ßi‰ öEi((Oð½öE–ö‹ðßE–iOö‹è(((iö½  TTT TT ½TTE]o°­ETŸŸŸŸ‹‹‹%ŽótzÄŽKŽÄ4•iŽ0ŽiiŽ›•ˆ%(Ž]4t!ÄI††ˆ†ˆEˆ††ˆ—L›–†ˆ%ˆ%†††%†ˆ%Ÿ†%‹%‹‹üŸŸüTÞö¥(TŸT ½TTŸ‹‹e°Ä{4;o4Ä X‘0m{0{Ú-0-0 !te{-››©¸¥¥©óWÆk+U‚¨ƒUU¢U‚ææ‚‚kùùUU®®Æä¤z‚HHæ Hƨ!ÏÏóäW¤Æ.zÆtJ­){X{0{00Ú£0{‘±¶óÄK››]Ú0‘]]0XPPÄ4e {{mm0000{m0] ±]£{]VV£¶£È{{°{-Võmm¥Vh {]h'\ÓÓúȬõúÞÓÓ' --{h]]V õ{{VVV(\V-]]ëV'(-m-\V±\'h(EEEEò\(.Ƭݰõȸ o¤!¬õ o¸­- õ­-VëV¥ ë¥0õW¸õ­-0-]- ë-õõ4°¸°ÝWWWä[L¥¶¥£¦¥õ°Ïä¤ää¤ä䬅X¶ûú£È­°°¸­­õÈ©¸ee°°°¸°°ö TTTTTTTT TTTTTTTÂT TTTTTÂTTTTTTTTÂT½T TT½T TTT½½TT Tü !ß½üißEEðöüðßE½ ‰Â½TŸü‹öüüŸ‹Eiò–‹T   T TTÂTTÂTT¿‹Iݬ¬eÈŸŸŸ‹‹†L!ä¨K oe¶i†%› •Im0(%†E†iŽ0[›<†–††††O–O­Lžˆ†ˆ%†††%††††%%%†%‹‹%‹†E†K(üüèöçÈëüTTÂTTTÂTüöüŸ(Wý¨e° 44X  oœ ÄP{P0{ Ä{{P000yKŽ›]0 [¬ÆÝL…¤æ¨H‚»k ¨®‚H‚‚HÆêW[…PX;äóäääääää¤äêó[[[;Ϭ¬Ý¸©È¶± ]¶] ‘ ›±)¦]KK›±‘yXÄ…4ÄP0{{PXÈyÚ0-]-££--{Ä{ -­¶±]-0­È£õ õ-mo  h ­ ûhÓ\\'¦õ£''Ó±£¥V{4e- {¥4m- £'(\V]V] ]V\]¥-V0{m-'hii((•IIžhh]¥0-¬È--¬¸¦--õÏõõ¸õ-õϬõ­õÈ¥'ëz44¬..e¥¥­¸­-¥È¥õõ oÏݤ¤¤Wϰõ£¶õõ­ÏÏäää䤤¬[°X¦¦¶£õ­¥©õ¸¸©°{õ­¸°õ¸°¸e°ð T ÂTTTTÂTÂTTÂTTT T TTTTTT ÂT½TTT ÂÂTTT½½T½TÂüüTTTð¨ðüðiEEü½üüð––ð‰‰‰‰‰‰ ÂTüð–òOßüT  Â T  TT T‹\ÝtoÏ›‹ŸŸŸ‹‹‹]t!..zoŽŽ—•ˆ†——†•0››Ži†††i††O—ó;›ˆ†ˆ†Ž°°ž(%%†††ˆ%††††%%%%%%%†%ˆIˆ•hO —K K 4hO]öüTö½i¶iTTŸ½ T½T TüüüŸE¥Ý.® 4© Póe! ÄÄÄ4Ä0{ÄÄ {0 eee …4z®zÏóWz®®®®® 樨¨H‚¨¤Ý;¸£ŽŽ±L¬¤Æ¤äϤ¤ääÝÝÝ[¬óäÝ;e;©­Ú¦‘¦ ¶)y¶£¶¶y¶£y‘y¨PÚP{ÄJ4J…{PLÄX0Ú{0¥¥È0¥]0m {-]-0õ V-]]]00]04{eäe ­±£©ÈVëëÞÓë¶õ¸-ëû'h-­-õeo{-0 {e¥£mÈ-¦ \'hV--V 'ë-]{4m©{±\\h›]› ]¥Ä ee4oooݸ{ ¸---¥¥0e¤eõÈ¥õ¥0ÈÈõõV멤‚ýk.Ï¥'¥¶VV ­°°WÏoÝWttݸÈõõÈȶ£¬¬[¬Ïä¤W…L¥‘Ú……õ¶ú¶¥õõ…õ¥°õ o¬e0 °¸T ÂTTTTTTTTTTTT TTTT TTTT TTTÂTTTTTTTüüÂÂÂTTT½T½üüTTüTöt(öEiiü‰‰Âð((Eö ‰‰‰‰‰‰ üEEüTT TT  TÂTT½ÂÂTT Ÿ©Wt¸(ŸŸŸ‹Iozzz i—ž 00•††i4m-O%†ii((ˆ††•›{K•O–LÝ°Ž•O<–ˆ–ˆ††%%%†††%††††%%%—¶†i›%KV ±¦]K'±Ÿ|ðOûŸT ½TTÂTŸöüTüi£©¬zý¤¸Ä …{ e oX ÄÄ…4{me4{P0 Ä… …oz¨¨¨zUšUUU¢Mš H!êzNUæWJXÈÈ)žRÈÏÆ¨¨H‚æ ¤êäóÝWƤóÝ;oÝ;…mÄ©¥±±¦yÄLÄÄ­L0PL©X;4… ÄX0Äê;oJ4…4;ݬ° m ¸ Ä{0m©¸© 0] -{­° ­±¥°ooݶ]¦ë'V±¦£­£ Vû'\¦©­o°e e­]õ{{m­-¦4VÞ± 4­V±]ú\­-¥ 4 õ\çÄ4°me¬!zz!¨‚ ®Uùk¬z¸4È-­­°t¬°Ý¸õ-'-õ°ÈVV -0õÆW°õõ-hë -­4¸È¸4°©Wݰ ¥£õ £ëë-4¬Ïä䤤W°LÚ)£Põ°õ¶±ú)¶PLõXõ4Ýtoõ­e°°Ý(ÂTTT TTTTT ÂTTTTT T T ÂTÂÂüü½T½TTüüöŸ½üüüöEðöö/ üðððü‰‰‰ðOißöTT ‰‰‰ÂTTTTŸðißEðööüT T TTT ÂT T TTT½TŽWo-ŸŸŸŸŸ‹‹%%•ez®t—0o•iEEE—K0-(i••(†i•iˆi){¦——›¤{ŽO•—•(–O–ˆ†%%†%%%%%%%%%ˆ‹i]E%]ŽEK¥•¦e-] ž£ü‹Ez ð(ë ü T TŸöŸ½ŸP©44W..¸¸ e 4…44Ä 4m{{ eÄÄÄ0{Ä4e4 4eez!¤¤‚®UšUU»»®®®!äo[[Ä?K›ŽžI›¸Ýät¤äó!óݰe;J¸Ä­ÄÄÈ¥£])¥¶±¦±¶]¶y££¥¶¥y0LÄ04L L{{ 4e Ä0ÄÈÈ{00ÈÈ0 õ­{¥­0££-¶]]È0£0 ÈȰ¬¸©e£©¸¥\ÞëV¦ VVVVh'h-°t4m ©e©£{© 40õë]4©-'û] ¥£ {{]V\Ýe;ݬ¤¤¨‚‚®»» Æ{Èõ¸-ȬWz¤¬¸-ë¥-¬z.õ-VV¥°Ï..z4-ë ëë-¥-­°õ0V-õ-¸¸eÝe °È¦­­ ú]©otä䤤¤äJ¸¥¶¥­õ[;X±û±ú£Xõõõ°e°õȸ°°°ÝÓT TTT TT TTTTTTTTT TÂÂÂÂTTüTüüÂT½üðEðööðEöEiEðð‹ð‹ðëEièŸ ‰‰‰Âößiiðü½ÂTTT  TŸüði%öðüTTTT T T TÂT TT½¦ÝϸˆŸ‹‹%Eii•Ĥt®UUU to{0(%%E%i 0•ii(•(ii†••–†iž¦IKJÝ —O•(••O–Oi†%†††††%%†††E†%E%‹%—¥ˆ†ŽŽO›h–I0Ž—›'(¦‹üç.M.Oëhü½½½ TTTŸü‹ŸTü(0©J oÆW°¬ÝJÄ X{…Le…{ eeeÄme X00 oäWƨ‚‚ ¨êo;J [J40KK››ŽŽŽ¦© °;Je…ÄLLmÈ¥£££‘ ›RK¦¦ ±¦¦] ‘ ±› ‘¦]]ÈLJz {Ä0{ÄÄÄ{LÄ{XmÄ{000{{£-¶¶-ÈmÄÈ0È0y¶ ¥]¦¶¦]¦±P{õ]¦È È¥L£±£ ¶ÓÓ'' --h -]-moWt0 mV ¦Èõ{­0¦¶{m-¦ ' ­Vú -{­õ{V'\¶4m00ĸ;óϤ!ƨ¨Õ®Þõ0V]¥ ­oWW!!õ-VV­W!z‚!!¤zÈõo4WWeÈ-¥© h © '0°¸e{È­©õ-ȸ õ¸£-¶õÝõõÝÏÏ䤤ä…õX¸JÝ;…LPúú)¥…°J©õ ©õõ©¸4ÝTÂTT TT TTTTÂTTÂTTTTTTTTTüöüEöüT½üEßEEEiEEiEEE(EöðüööTBBB‰üð((ßü ‰‰ ÂTŸTTŸöi–öüöi(ißðö‹ö½TTTT TTÂT TTTTTT½½T¥¬eK‹ŸŸ‹‹(IŽ—tUU¢U!¬t0(—¶Ž†›ŽiŽm›•iiˆˆ–••–†ˆ•Ž…;K•Ž(•••••O(Oˆ†%†%%%†ˆE%%%%†%†ˆ›È–( ¸†iÈ{i‹‹‹ü¤šz¥¦E½TTT ŸTŸö‹ŸTöëXm°©õ­Xeo¨ ¨! 0P4eÄ 4 t!zz!!!.. ztzz®»Uš®® ‚¨!J0…óooä!äϸڭ{-£¥ Äe¸¬Ϭoo;…4¸4J¸4©Èy±K?h›0­0]V ££X¥‘›£ÄÄÚ£0©tÄÚÄeeoooóto ­{­È¥­Ä{0© °mõ [¸õX­ ¦ ¶È0--£ûëV]±±¶±¦©õ£ëÓ']{-¦--0¥¥{©me4m-]£Èm£ëë'ú¶0m¸{¶] ±±'Þ0hÓ-]¦-]ò–'VV±V ]¥Ä¤W¤Æ¨¨®®Hß­e©¥­È{eϤze ¬z‚ ..z¤°oÝõe¤¸¸©¸È¬õ©õ]-õÝe©­È]­°-V-4õÈõ{ ¥0¥meÈ0©°[[[[°…õõJ[[;X¦õõ‘¥õJ;;°õÈ0È­õõ õ°°Ý;¦ü TT TTTTTTTÂTTTTTTTTTTüöüüöETTüEèðEßiEEðßð(¬–ð½ B‰ ½ð–OiðT ‰‰ ½ü½ ÂTöii%½ TŸEçiEööüöüT TTTTTTTTT½½½½°W©EŸŸ‹‹‹iÞV››Ž0z®®®®U»4mÝ›{]•(K0e0i†•ii–•O–ˆ–•—ÚÏ0ˆOI•—(••(O•i†E%ˆ†††ˆ†%†††Eˆˆˆ†%%%–%••(†(—%%%E½Ÿò¦ÓÈOŸŸ½½ü½TŸööTüß õeõÄm¥£¥­Ä¨¨X{m m4z.UUU/U¢     ¢¢   ¡} U»‚¤ó­yÈ![Æ!ä[o[JWWÄ4J…¬ó[Ý;;¸©¸©ÄL…ÄÄ…Ä©£¦VRž?›¦£¶)››££­0] ¦£ÄÄÈ¥X[ÄÚ{Xe…Ä ee e°ooe4 m0-0{-­m ¸eWÝõ{¶¶ú ± ]-ÓûëëëûûV±±Óë]]±'Ó]0-V V]V ]00-Vh -È0]'\\\\ÓV0õ{-VV]\\']\hõV\ÓÓç\Ó\\'›mÏH.‚®®UUUùy¶WõõÈÏWo¬¤z¤!ý‚zÏe0­eeõõe¸õÝϰ]-¸ÏeÈõݰ¸¸° V­¥¶4eõõ­-0©õ0õ 0È©[¸ÈÚ)))X[PP±)¸õõ°°;;°…õõõ­È ¸°°;Ý-üTÂTTTTT½TTTTTTTTTTTTTTÂTTöðöŸüöüE'ßðööðEißEðßiiEiE(eEEü ‰‰ üEi(iöTÂTÂT‰‰ º¿ EOT ÂTðOOðüüüüT ÂTTTTT½Â½½½T½½ÄŸŸ‹‹%(ŽV ›K{.®!z®.0›K ze›Žii0]{ (i—i•ˆ——•–ˆILÆ{(–•–O–––––––ˆˆ†––ˆˆ––ˆI K•OŽ£K%†I¶›Oi%%——%—ŽE—%%Þüü(VüüŸTT½ü‹ö‹üTÂöÞe©­¥¥££¥ÈÄ[zJ0L ê¨ »U¢¢   }}ÇuuuuuuuÇb¢U®¨Wä4JÝ;4°°ݬoÝ;o.»H°J©L LÄÄ©mÄÈ¥£££¶¦¦¶¶£¦¦žŽž±±±›± ±¦±‘¶¶¥Ú-¥È{ÈJ®Ú0X{0{0{{­­m ¸mm©m­0£]¶¦0] -0­0¦VúVV±±ë'ÞÓÓ''Ó±ûÓëëûëë¶{0-'hVë'ë h''ë -¦VëÞ\çòòO((ÞÓhûûë\\'û '' mç\'h'iiI {oÆ‚ ‚®U®N®/z-!¬ÈÈ¥¥0¥°eÝ4o­¸zz°e °oõ­È­-¥© õ {tÝõoÏ40õ©¥©Èë¶°eõe¸õe¸õ°õ0­¸0[¸)±ú±yJ[P±P¦¦X­[¬[¬;°¸©0­õ¸°[Èð TÂTTTTTTTTTTTTTTTÂTÂTTöðT‹ëÏ!zVE](üð\öðßßöðèE‰‰‰ èßißü½½ððü ‰‰‰‰‰ Tö–(ßT üò(Eö üŸTT T ½T ÂTT½ŽoŸŸŸ‹i› ›› »]to›Ž '\(\ mm h((—iˆ•Ž•–Kæ©Ki–––ˆˆˆˆˆˆˆˆˆˆ†K•›…Ž– ÄŽ›]ÈKÈ¥£¥(››h¦›O4mE K¥¦£±öü\úüŸOöü½üT‹ð‹üTTè¸Ý­¶]¶£-¥0000Äeä!¨®U®U𢢠¡}}}}uuuuuuu ®¤[4eÝW¬ó¬ÏϬÏ®kϰ©°Ä­Ä­©…L­­¥¶] Ú¶¦PÚ±V›V¦£¦¶0¥£]¦¦¦¥X¥¥XX©¸LÏUÝÈÈmm00{me{4m mm 4¸ e4 00-È{0›V±úú ¶¦ V¦±]] ''Ó\ÞÞ\ûë'\ÞÞÞÓûú0¸ ÓhVhh'\\((V]\\ûëÞòOiO––ßßO(iii–Eß((iiiO']©¨»®U»»®¸¬zk/V4° È--­-¥ õõÈݤ!!WÝÝ!ÏÝ¥-{¥0¥°È¶õ-È©­©¬¬© ¥È-È-Èõ° õ¸¸õ{õõ{e È[Ï[¸…X¶P°ÝLõõ­­¥õ;äϬ[°;;°©©{©°¸e°ÝõßÂTTTTTTÂT½½½TTTTTTTTTTTTÂüððüÂüÓkoðö(.'tz .ëüðöð(û{iðü ‰‰‰ ½öEèüüðiißü ‰‰‰ üE(òß ½ò(ET½T½üü½T½ ½T½TÂTT½¿ŸO°;OŸ‹Ÿ‹‹%OKV›››4UUtŽ›o¨e Žh›KŽhK'ŽŽKŽŽ›-Ž•••i•—O‘äÄ›K—<ˆˆˆ††††††ˆ†††ˆ–È;›Ú;0ÄeŽ%–¶Ž†hÈ—­I†¥Že¥4(4 ›ÈmO- ­Oü‹‹ü–¦ðüÞ\üŸöT½üß]ee¸W­¶]‘ ››¶¶ÄóÄP;!z¨¨ »UU¢   ¡¡uu}uÇuuuáuuÇuubšÆÝ¸¬°;WWÆää¬Ýó¬­…©°Ý¸­­{m­{mm ±±­0±V¶±±K¦¥È¶-Ä…¶¦)¦¦¶¥£È¸m©JJ¤U[ÈÈ 4{{{m¸m¸ {Ä©mm{ e{000È0 ú ]¦ V -ëë'Óëë''ëVV¦£-'\h''ëii(¥]EßêJëòO––ßßèèèßèèßèE%è%ðððèEEEEEòh°‚®Æ¨z®®±… ý..ë]0- ¸ ¥eϤz!!zÝ4­ÈW!¬o¸È­õ4õõ- ¥- °õ4¸¸°4È0¸¥¥­¶-­õ­oõ°° ÈÈõ4õõ{oݸ;ݰ…¸°;õõ°°J°Ý[[;JJ[[ݰ¸4° °¸°Ý©TT TTTTTTTTT TT½TTTTTTTTTTüöüEzTB‰‰ÂEü( -]mEiöȤ! höT BB‰‰‰ ½Âß(ߟ‰‰‰‰ TößòOEüO(OüO4ÏÈ–½çúëð'(TTTÂT½TŸ 4IŸŠŸ•IŽŽŽ›®®t——{zämŽŽIhhKIi\ e ›•ˆ••IIÄä)Ž—•O•OOˆˆ†ˆOO<–OOIXİ;L¶©—iI†Ž{(•†I¶›±ˆŽ0V© KŽž¶£üŸèXçE'­‹ðö‹Ÿ½TTöÓ{;õÈeȦ¦]¦¦)] 04zz¨.!z¨®U¢ ¡¡}}}}uáuáu¡}uuuÇ¡¡¢®!¬J©©©ÝL……e¸©Ä{0y){­0LÈ000] ¦]¦VV0È]žÒž''ž±±›)‘ ¶› ¦y¦¦¦¶£È©JÆUÄ0ÈX0{Ä0È0È0¥-È00¥¥0¥È{mÈ¥-]£0 hûúû'ûûëëëëûëëëëÓÓûÓëÓÞÓ'ëëúV±úVú(h\(''ßE((4(EiÝ‚;;Ï;XyR?Þç(–ßEˆèèöööEEEi'-®®U»UNU®±©®¨¤  0­­-VõÈ-e!z.‚¤oeõ0eot!Ïz.õ0eW -V ¶-0e0ݰõ­ëú-0Èooõ°°­0õee 0È °Jݬ;°…°¬¬;Ý;°;;Jõõ©°¸¸õ¸°¸©(T TTTTTTTTT TTTTTTTTTTTTTTTTü ü–üB BB ‰ ‰ Âúß±‹4 '\ü‰TT‰‰‰B‰  Ÿèßð‰‰‰ ‰ üèOOEŸ±ûEÄg‚+Ÿ¨ek4Ik± Tˆ¿T½½TˆÄ¸½Ÿ‹‹‹‹‹†(i••ž¨!\•]t¨›K±KK›KhI•Kom-Ž•(iI•IKKKŽ?I———O–<•I\OO•IKy£KÆÆX©Ž{(V›I-›•¦ ](EheIE››\ •±E\­h‹Ÿü‹ð0E(ëèßüüŸß¦°ÝeX0¦¶££‘¦]¶¶]4¸äzêóê.U  uuu}uuááuu}}}Çuuuu}Ñ®¤¬…LÈ­ÄÄ­¥ÈÈÚ£¥0È£y¥0¥££- ›±›Vh›VŽžhÒŽ› ¶¶‘¦ › ]¦¦£y¥£ÄL¸;®N­ÈÈ­{0mm00¥00{0 m-£0{­]±¦±VVVV¦]]¥£Vú±±ûëVVûûëë'ÓVy¦±''h'iE'iE–(iißi(\\\Ý©(°kk. ý+ù¤©£RI•iOˆˆ%EEèöèèE(\']oUtW¤ÆMš¬ä. Wi°W¤¬¬z¸È ezýz¸°-Ȱ¸ °õV0‚k¤õ0õ-V¶õeÏÝõõ­¶ë-- ­õ 44{õ°° °ݰ¸¸…[䬰°[Ý[¬;J°Ï[°°[JLõ­­­¥Èõ¸©°©\TTTTTTTTTTTTT TTTTTTTTT½TT‰‰‰B‰‰‰B‰B‰‰‰ Bö ‹T ‰B‰‰‰B‰ ‰‰ T ‰ ÂüŸÂ‰‰‰‰ TöOO(%èÝÂè.¨K‚W%ÏO;Õ–©Ï>ŸºTˆT ŸTT†KiÝOŸ‹‹%†††—ezžŽ› zm›]››±›ŽŽ0]KŽŽŽ—•—KŽPt…KI›K?IIKŽŽIŽK?••Ž›‘y)I;£P››(††I››KOOh›VIE%–¶%OŽ–‹(%Ÿüú¥ß‹¸õßE‹üŸ½Ÿöò£e¬°± ¦-¶]¦±¦±]¶mzztä¬;zU ¡áÇuÇuááuu}}uuuuÇáááááu} U‚!Wo¸ÈÈ0¥¥£… ©Ä££ ¦£00£­Ä0VK›V¦VIIžK›±¶00¶±±¦¶¶£ÈL©…¸Ä©e!!°¸J°Ä­ ooo4{£0{­ m m£]]¶-¶¥0¶£­©©õ­­­£¦ ¶¶ú'ú±VûëhûV¶]û'Óç\(E%Eðii((((E(ë''t(iiWï¬ oeÓ(((OiE†%%%%E'Vo.¢¢@.Ý…®¨¢š¨0­zòÆz4õz!!z¤õ©!z°0õ¸õÈ---Ïe]{ý/z4õ¬õõõ-¶Èõõõõõ­¥ ú-ȶ­ õ¬oõ-]¶ 4ݬo°©õõݬÝ;¬Ýݰ©°ääݸ¸Ý¬¥-¥£{¸ ©mõ õm  TT T TTTTT TÂTTTTTTÂTTTTTTT ÂòëBBB‰ ‰ ½‰‰ T BB‰ ‰‰B T ‰  ‰ TTTT½Â ‰ ¿‰‰‰‰‰‰Âüðè苦¤ëTÏW¤èP;ˆÈ ˆ‹X©%½T†]\TTTŸ¿†È¶eoII‹%%ˆˆ•–žt.W{IhŽ›t®))¦h'K›±h›››—ŽŽK—IŽ?o;K—?KKޕޛ›KK±›ŽOŽRRIŽI?±›ž(–%†–%ˆ†††%%%Ÿ‹Ÿöüü\­–-o–üTüTTŸöEçeÝ©­¥¶¶]± ¦¶£¦]¶{Ý®¤¬Ý°;!U ¡ÇuuuuÇ}uuuuu}uuuáááu ¢¤…0yy¶-¦£{]¥0¦›K› V ¦ VI\\IŽIŽž±±±›±›¦‘¦V›±¦¦‘£¶£y¶ÚÄ¥¥¥ÈL­00È­ {­0£-£-¦]££¦ VVV± û ] ¶£-]±V ±VÓÞë £¦úúë\i–iððöö–ii\00] VÝ4Vú))Óßßßß%EE%%%%%E'mth'ç]¶E…®®!WWK©»æ!e¤%E¤z -ÏWõõ¬Ï¥È{È--eeõõ¸!W¬¥/Wõ4 õ{0- V­V ëV­°°­Èe¬Ý¥­ °e¸õ¸¸õõ¸©õݰõÈ­©¸õ¸Ý¬Ý°¸[;¥ -¥-Èݸ­0­õ{­õ¦Â T TTTÂTTTT T  TTTT TÂü BB‰  ‰‰   ‰B‰ B‰ ‰Ÿü ‰ ÂÂÂÂT ‰‰‰‰‰‰‰‰‰‰‰ ¿ÂºŸŸÂÂÒäž½ˆ‚M©»ÈŸJ‚XHäˆI¥Õ© †¸»»¶TTTT¥oÏmh†½½‹%ˆO••–›¨›\h—Ž4zme{ž—I¦ ]KŽ••žK››‘?‘JXŽ?K›ŽŽ•—žK?ž›ž—–>ŽK›IIŽIžKI•††%%%%%%‹†%‹Ÿ%‹ü‹‹EúöÞoVöT½½Ÿöè祰©È¶ ¦¦V› ¶£¶¦0Ä¤æÆÆÆÆ»»¢ ¡Çuááu}¡}}}}}}Ç}uááuuáá¡ ¢U¨°ÄÈy£¶£y)¦) ±›±hhK›'\\\O']ÈÈÈ£¶y£yÚ0ÚP¶¦¶¦››KRK¦ óÄy¥¥È000È{ÄÄeÈ0000-¶]0-¦¦¦V±ûVh'V¶]±ú''hëú±¶ V¶X©­£ hÓ\(ii(ðöèèEi(\ {]V'\e+k-è)HÕäP8>–ß–EE%%%// \]\ûÆ‚‚¤¸Ž¬®.N.ù%ÆzWe-e¬Ïõ-¸!o­¥¥¸ÈÏ‚zÏtõ­‚.¬°õõ¸ ë¥õ ë¥-¶±Võ4¸¸¸Ýõ0õ¬t° ©© © e°¸¸­õ¥£¦±¦­¸¸Ýݰtϸ¥ ú¦¥È¥-È{ÈÈ­{È¥ T TÂTTT TTTTT  ÂÂÂT ‹¬òBBBBTT‰‰‰Ÿ‰‰‰ ‰B‰ B‰ ½TTüüTT  ‰‰TT¿‰‰B‰‰B‰‰‰‰‰‰‰‰‰ ßÓüOúÏÏ)Ÿ½O¶XKèŸR±•Ÿ(kg¤–T¿½T-oe†TT‹‹½ˆ–•–ˆ†]mIŽ—Ž›®®!¤ÈŽ——Ž›››K—ˆ•K›››LKŽ›KI•ˆi•IŽŽžI—–—IŽ—›IKžŽ—ž—ˆ–%%E%†ˆ‹%%‹‹è%%%%‹EOOÝ;O½öè–(ò¸°­¥±û±¶‘ ±›¦]meݬWÆ®¢+¢¢¢ ¡¡uuuááu} }uuu}}áÇááuuááuuuÇ}bMU»‚äJ©­¥¶‘Úy¦)›))¦]›±±±ûI'¶¸ó[¬ÆæNN‡NU@¢@U‚ÆóLP)KR£X°©44{0¥{ 0{4o°¸­00¸©00-- ¦¦¦¶¶¦ú'''ëú±¦¶£©©¸©õ¥]V±hhÓÞOßE(%%iEöð(\ë ë W+¡4iÆî’MƒNLçèè<ßE%%\i%E0\ ëü/]JÄÝ‚¨JIݨ‚¨ ¸ièz¤¸¥õ4õ4õõ °z¤e -- ez!!¤e¥¸ÏzWeÈ õõV-°°e4 õõ ë¥õ¥õo­-­ÏÏ4È¥0¥õõõõ{{¥¶ -{°o¬°0¸­ ë'V¥¥¦¦]¥]]£-¶¥TTT T T TTT  'ò  T ÓÆèBBB‰Âü½‰BB ‰B‰ ÂB‰‰ ‰B‰ÂT‰Â‰‰‰ ½ ‰‰B‰B‰‰‰‰‰‰‰‰ ‰ T%((O%½Â TŸ‹Ÿ½‰TÂTT–¢¢°  TŸŸ±¬°tKŸŸ†E††††to›—I•K z®UU.PŽ••IKI—••K›IŽŽJóy›KIŽ——––—Ž››?•O•ŽŽI—I±ŽI•?I–ˆ††††‹††%Ÿ‹ˆ\–O(–èEˆ%ü¶V©]Ÿüö((iOû{õ­] ¦]]ú±¦¦] J°Ý¤® }u ¨[殢¡uuuá}uáuáuu¡uuuuááÇuuÇáuuu}  š®¨ÆWó¬…ÄÄÄÄPy‘››KKKŽŽŽ•ç—Þ'±ÚXLóHæÕ®Uƒ@Mbg@ƒUU»‚Ƭ[P¦¶{¸;©­{°{{¸¸ m©0¥ { ¦ ]0]VVVûhûëú£ Èȸe]V'\Þ\Óëë'Óç(Oi((Oiðði\e/{\( òÆïùšM}}‚)|Ó‘žE š hEE(\ /'TT //¤¶šM‚¨U¢/X %Æ-V-°ÏϸÈõ-õeϬ¤z°È£0õõ¸Wz‚k¥¶¦--{°4È0õV{-¥õõ°õÈ0]]0õ ­È­¥ ¦¦¦¦ -0{©ÏÏo¸úë¶ ûÓÓV£¶V £¥ ëëVV] T TTÂÂTTTTT Ó¤¤± ½ŸJPBBBBB B‰Â‰B‰ÂÂB‰‰Â ‰‰   T ‰ T‰‰‰‰‰‰‰‰‰‰‰ T Ÿö%ßOòi߽ ½TTTTTTް iT½½½½½±¬Ý£<†ˆ†ˆ†•44K••i•›tUU.¶—•i—ž›Ž<ˆ;›ŽÄ;…?ŽŽŽ›KŽ—–ˆ•I›ž?•<•—I•OIž›—O–II•†%†E†%†ˆ‹‹%%‹ö‹%%(i(iè–i–iˆ)¦E toçüE(i–i–¦0­0£££ ûú›±¶{°J¸!M}u   ®eo¤¢ uáuáuÇu}u¡Ç¡}}}}}}}u}}¡}Mƒ¤[;JJ…©L…………L…LLLÄXXy¶¦››RKžž›)£­JÏHæÕUU@M’’M@@š@šƒU‚»®[X‘›¶©e©mÄ©¥£{Ä{¥£0ÈÈVú V±ûhh'ëë'ëûë''û¥£¶RûëëÞ\ç\\ç\iii–OiiiE%EEðði\ gzëi\(0z!ýkM¡¡±i- Vk%†].¥ëz!TT\o ý¤¨ùý‚š+î›õ'¸± õÏ..W¬Ýt!Ý£e --ÈÈõ­¥¸¤kz.Ïõ¶¦ë È¥{È­¥ë¶õõ{-¸È¥¥ ¸È¥­õõ¸ õõ¶ú ¦-¦]0­e¸­¶'\'ëÓ'ú¶- £¥ÈÈ-'¦-ÂT ÂTT T ÂT½‹¸õCy;–çüú!BBBBB¿ºÂ ‰‰‰¿‰BB‰  ‰ÂŸÂ‰¿TTTÂTT ‰ ½Ÿ‹öE–Oi–ˆT TŸT T½Ÿ½TOŠTŸŸTŸK°–‹ˆ%†0ó]••E†•zæê•–›‘›Ž•–<ˆ•??I–O—•I—ˆII›•OO—•›I•Oˆ<ˆ–>–ˆˆ|(OðOè–OˆOOO?ˆ%舖–ˆ%ÈžÚezmç–(OiOðßú£©£ Vú±V¦¦ ¥¸e¬»Ñ ¢kk/gU!-!U¢ áuu=uuuuuuu}}}}}Ñ @gÆJ¥XXÄL J;;;°¬¬[Ý[e°ÄÄÄ­0£¦ ¶0ĸ;äæUƒ@¢MM’MM  ’’M𻂻æL-)h±­¸e°°¸° Ä­È00{0£©e©±VVú 'ëh ëÓÓûûú ¦ú±ú'ÓÞÓÞççò((–ßððèßEèöööü(VmoE( '(e zÏ ÆägMæOß禚}¬.î!çððÄùe% 4ö‹ŸèçÞ­ z¬‚+eW (¦±¥Wzz¤!oÝ{õ- Èõݤ¤z4]¥{õ ©°e4¥-V¶¥­­­¥ V0­¸¬¸¥¶­õVV¥¸e¸ õ©õ©È--]--0¥¥­­£¦±û'ë\ÞçÞ릣-£È­­¥-ë mT TT TTTTTTTTTT¿OÚ‰BBBB>)ðJÚBBBBBB‰B‰¿¿‰‰¿‰B‰‰‰‰Â½Â‰ ‰‰‰‰‰‰ ½T½ŸüŸŸ½ŸŸüüðèEßiO((OßèTT  TüüüT ½%((O½TŸŸ%•›Ý­Ÿ%†††%i<%—t•†††††ˆ›!t±Oˆ†–—??—OŽä ¢ó›y…ÄX›ŽÄJLy—IŽ—))›—›•I‘KPXX>›‘K©­)>±LŽK¬Ž—y›žÚ'ÚI–yIú'È£Ý4%Ÿ‹%XE%y‚¨ÏOO(–ö'¶õ4L£)¦¦V¦¶-Äo¬;¤¢UÆ4t gz ƒ¢ uuáu}¡}}ááááá==áÑ¡uó°¤ä°0¥…e°Ý¬óϬÝ䤤¬;¬¬;mJ°Ä¶ £{­Ä4ÝÏÆ »Ušš¢¢Mî Mš Æ;ÄJ­¦y¶¶ûú-¸Wtoooo4{0¥]£¶­ ©¥£ûV¦±±'ëú£¥È¶úúVûh?ÞÓ?\|òO–ßEööðððððèððððEEò-4Ý(\eõk! Ó¤©¶¶ûJõOú/¡!çWšÏ(ü­g 'õï/kEEü0 !o z+g/+të W!õ¤t°¸ eoݤzWoõÈȬÏݸ{©-¶õ¥¶{È¥ 0¶õ¬ -VV¸Ý-ú ÈÝݸõõ­È00m¸-¥©õ£]0õ¸¸Èú\\(Þò\' -£¥õm­0£- ¦VTÂTT TT T TT½T ü‰‰BBBBBBBBs¿BBBBBBBBBB‰B‰B‰BB‰‰‰‰‰‰‰‰‰‰‰‰BB‰‰‰‰‰ ½Ÿ‹ßßßèßEßß–iOO(i–è‹ü½TT  T½öèèöüüçݬ-%%%IožˆE©ä±%††ˆiO(O•((•Oi†<-!4ž††††%ˆ¶tt–††ˆ—?ŽIO•…®l; J‘KÚ›Ž0•ŽÚŽ‘‘ŽÄKXJÄ4ކ–yJ›O?Ý;¬yŽÚIˆE¥;›£ä›•ĸJX—-­¦Ä-ò4‚¶%-{.»ï»m\ßüŸßV¥¸©È¦ú¦¦ ©¸Ý[¤NMæ© t/¡uuáu¡¢z¨UU }uuuáááááááááÉáá}‚¶©±?£WÄP…¬W[LäÕ»ùù‚¨®‚{K(•\IÓÓÓÞŽ]Æ/𢠠MšÕÆ!…RÒÞûûÞòçžžûûÒû ÈÄm¸e°m¸…È£-0ÈÈ-±¦±¦]VVú±úV¶¦úûúR±)))Rû?&O((–ððèðððèE%%EEEöüi0tk!]ë{{ !+(¥WϦûëçOOò(iyä[Þ¨š¨)i\¬¡'î'(\öE­zzÝ­»o!'(-°t4õ­¬WÝo¤¤oÏW°¥¥¸Ï.‚¤e­°ÈVV]-È-­¶-{õõ­õ4õ{¶ë£V­4°°¸  ȱ±££] {¦¶]¥£¦û(ëÓò\ë릶¦0õm­¥¦ ] TTTT TÂT T TT‰ T½ð¥BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰BBBB‰BB‰B‰‰ Tüß––iiOi––––––è苟TT TŸöðèEöè–¦VÞIÈEŽW iEÏ\Eˆ%i–––(((ˆ(Iˆ•to›ˆ††•ÄW‘<–—ŽŽ—ˆˆ|›ÄÄÄyŽŽy›ŽÚ|•ÚŽÚJÄ–•P…POˆ•JÏ›ˆ–ÈÄÈ•Úi—XXX­)£•±¬¬›–Èmež0Úò ߟ‹‹Ÿž£è¸WýoëiðT½öh¥°°õ¶£­È¥È…°[¤¨»¢Æ4ÄtkuuáU ¡¢¢ UN¢¡Çááá=á===áááááuÚˆOž–ˆ@äI‘Æ»¢M¬£‚gMM¢MU¬\(%%i¶yûŽhÈU} ¢ Ñ¢©Ž–Ž‚Æˆ–ÓûçEˆ–çÞÓÞÓKV± ¶£0{© mÄÈ£¥¥-]¦±ú ¦±úúûûRëúúV]£XXÄ­ÚÚÚ)Þ–ßiOßð%öðèèèEE%EEEüüO !eoõo k (zÑÑN‚¤çèEOçèòëúïM¬‘©‚ÑWçúg+O%EiE'Ý/ý!/hò(Eh'¶È¸õõ­¥ Èõ­etoõ-]Ýe°--¸!.ý‚¬­-±V¶--ë ¶¶õ4 ©õÈõeV±¦£4¬e0{õ­ÈõVVú ££V úú±'\ò(\çOÞëëëëú ¦{©mÈ-'Vë TTTTT T TT ö(ü ‹BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰BBBBBB‰‰‰BBBB‰B‰‰¿Â½‹öðEßßEßßðö‹Ÿ½TT  TEððöüöŸð­èÂ!-—(m.E%E! ii|%%OiަI—Úto‘•††%%%†KX•†ˆ<—?Ž—•O•…{ŽPŽ|——Ž‘–—‘)›0—•P;K–%–£°‘–ˆ?‘IXLŽX›óWû(0­X¤©©i± eò%‹‹Ÿ‹Þ­(4¸ kõ\蟟½Âü0 4õ0¶±-­JÝÏNUšM¨eWg¡¡/ý /¡u==¡¢®®¢¡uááuááá=áá=áááH—OçÞ­š¤ UgšÆyKtî}¨ó !]–((EEK!k®¨M¡M[©»Ñ}ÑÑu}»hˆ–£WÝÓ—çI•>û'••y‘±¦±¦¶00È000]VVúëûhë'±±±±¦¶ÚPL°J4JJ[¤ä;XP;>–Oè%èèßßèˆiiEð%%ði(ðð\-ëðE(\šîgÑMëÓ'h±Þ¸õ¦}+ý¨¬Ýù.{ðüüü{{V-4./\¸TT%-4¸°¬e°¬o°õ]0o¤¤¸ - 0ÈV Ïooõ­¥-- ¶¶ë­°°õõ¸4eÈ--õ õ­¥¥] ¥Vë£0­­£¶Vçiii(((i\\\\h £©©£V\( TTT T TTÂT T Tü{WBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰BB‰BBB‰‰BB‰‰‰‰ ½ŸŸüŸ½Â½Â¿ ¿¿  TTöððð½TTÂüE üT\Ï UEm(Ò(%‹†ˆžÄÄ) ††%‹†%†%iJIˆˆOI?I—†–†Ž4ކKÄ40—•yÄÄ›•›4JÚ•–Ž{i–†–¦ž±—iˆ)IˆOO†ûi›K–›‘?ÚÄ—çÈÏo­çž¥Ó–‹‹‹‹£-Ó ë!k;ÓßÓiTü£©…¸äo©¬¨»‚H¢M  ¤L.uuk¬tguu+®®¢Uê!ääU¡ Ñááááuááuu¢PˆŽ¶Ž—¶U.ž!;¥Óž¤@M}UÕÑgV%%%/}¤LUueM¢ +km•ˆžÒò–%E–iÞ¸yÓOçÒú±]££-¶-] VVë'\\\ÞÞû±± ¦‘‘yÚXõ…;óƤ[JX‘R&–Cßèð‹è‹‹ðE%Eð4òh ß {'V\t ëgïîîÑ»ÈÓ>OèJû–¤gϰï»0V4öŸüEðTð 'Þë‚ %4T%Ï4õeWÝW4­4°¬!Ï0]¥]]-¥È¸ÝÝõ©õ{õ{¥¶ V±ú- õ°e¸ -¶Èõõõ]0È V-ëëë0eÝ4mee -'Þ(ßë''¦- ©¥ \iETT TTT TTÂTÂT ¬üBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰B‰BBB‰‰‰BBB‰B‰‰‰ ‰ ¿¿¿¿Â‰Â‰‰Â‰‰ ‰Â ÂTöö‹½½T ½TŸëTTT.k((¥%‹%¥†%%¶o¤oWLž%††††%%%%%%ˆI…›ˆ–—IKI•ˆˆ†›Ä(ˆˆŽIO–ˆ•›•†iŽIiˆ†ˆˆˆ††ˆˆ†††ˆˆˆˆ††ˆˆˆ††††ˆ–•\—OO•———ç–%†Eˆi–ˆ%\ \žÏg¡šoû(zV¤°©ÝH¤4¨zݤ»š» ¡= ®Ïzáu¨k.¤‚ ¢®!eyäU®M }á=Çuuzh—•±\y¢æ±K¥©Úh\Òš¢ îM}MW(%%%E%y®kžOÚæšš MJ¥‘—•Ï‚›ÞOOûûûú¥WÝÓ––ˆ•'IÓ\ò(ò((òOòÞúy£‘)h ‘¦±¦¥LóÕùæó[dJ…PÞOÞ>èèvŸ‹è((ßð%EE\'\-.ihho4]'±Mšùkù/õß‹EߟòP–Oä@¬y ïÆo4]Eçöüð\\(\'ETieèÝõ¸4°¤õoõõȸ!È­¤¸0¥¸ÏƬ°°È ­0¥¶¥{¥-{¸ ­¥-­{ ¶õõ¥e4±ë{õ±]Ȧë'ȸ©­ezýýÏõ¥0¥È0£-h( 0£¥¥õõ¸¸(ðT T TTT TTTTT‰'W‹BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰BB‰BBB‰BBBB‰B‰‰BBBB‰B‰‰‰‰ ½¿‰‰‰¿‰‰‰‰‰ ‰Â‰Â ÂTTüö苟T TTTTTT'OŸ  »/¸‹½—-ú%ˆ••(KÆ!ê!]O%†%ˆi(•i††%†(ȱ•—ŽŽž•–†††›{•ˆ†Oˆˆi†–ŽŽˆ††E†ˆ†††ˆ%†ˆ†††E††††E†èè†%†%†–O•<ˆˆO•çi†%%%%%‹‹‹‹%'­Þ\Þ°Eü稽ðÏõ0õùo£W°!»¤.+}á}U‚kuáá+.kg»zU¡u}N PÚLm4Äă¡MU uuuu»ÚÚ[æU›óu¢È›ÚLÆ!•¬gM}}oݸ(E%–%%\+LK¬¢N?—Æ+®k¨ÈŽOO›kM…¨¢ùî}MÆÆ+.ûOÓV0om\iE\Óò±ÚëÞ(ò(O(Oë)RÞO?¸¨ƒÑÑ}ÇÇuïÑ}’@NHùÆÕ[Ov‹‹èˆh'iEEEE(m]iE\]V't (ðÞïM»‚ÕÝ­–E>Þ¬¸ðòÆMt¦ï‚¬öÓ°-E\\Eð\E%\±%%%ÝݤÏõ¥¥Ïõõ¸È--­- õÝÝm°.ýýzÝ õ¸õ-ÈÈÈeÏõõeõõ0¥]ëë0-­­ ë¦V-­È±¦¥-£°‚šgý°¸ °¸mõ--¸©­­©m ÈðTTTTTT½TT ÂTT ÂõeBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰BB‰BB‰B‰B‰BB‰‰‰‰‰‰‰‰‰T½Ÿ½¿ ‰‰‰‰‰‰¿Â‰Â ‰ TŸèüTT TTÂTTŸû ½è¦ý/¦ŸŸŸ%O‹—!—ˆOI‘¬Æ‚U® ‚äÚ•%%†i————•(E†%†K±Ž—IŽI—•†††yOˆ†ˆ††–ˆ†•›—–†††††ˆˆ†%†††%†††E†%%††††%†††–—•–ˆ†EˆˆE††‹‹‹‹‹‹h¸KÒÒÒUšÈŸëööe¦ß-!oÈÆý¬‚»[‚ƒ á+®Æz+}» ®Ï{±Èo¨óê ®+MUϸÆMáuáÑ®» ®ÚžÄÑ‚ž!š}¡ÈOW¡}/›Ò¶EE%%E\k­Ò]¤ÆhIý¨)ó¤[NÈOŽ‚šÆUMÑu=u»ý¸)ˆˆžÄk¡.VKEEè%%èRy–çæ}Ï£òO–?ûúûÞ–ßO…M¡}}Ñ}}}gîîÑ@Nä@’Ñ’ÞˆèèßOÓ'(iEðEz]EEû òtoEùÑïÏWäWëëÞ¥z¸Ÿ–Æ+?‚ù»  \È£gð(ßEiVÞð%EVii 4t°¸Ï¤¤.Ýõ­°0-]¥ÈÝ4¥­zý!õ- °¸­­]0eõ­õõõo¸¥ ¦ëë'V-¥õõ--- ±±¶]¦-£©W/M+g/.ݸ©44¸¸ë(¥©©©m © õ-\E T ÂTTTT TTÂTT BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰BBBBBBBBBB‰‰‰‰‰‰‰‰ TŸ½ ‰‰‰‰‰ ‰ ‰ ‰ TüðöüT  ÂÂT½ü‹ühÞö‹%eM»¤iŸŸ‹‹•o |ˆŽ°‚UN¨ó¬[;…X•ˆEii(•––ˆ(•ˆ†E•KIŽŽI•ˆ††•Úˆ†iˆ†ˆˆ††ˆ†ˆˆ†††ˆ†††††††%†%†††EˆE%†E†††ˆOOˆ†%%†‹öö‹èò?Æ(\./­üöç ò­»W0¦°.ÆýÆo®¢.® uuƒ®;{°m.gšg/+/ X£­¬® uM M¢¢óݬJXX® á¡®¬PÚŽŽÄ ¬IXÑ}»ÚçÑMškL¸(E%%%\!¶O—¸¬ÞI®U Ï?O–¶¢}} M+’}ýißèðð\h\\'%E%%%ðV°òO¥ý‚ÆH£ûiò?±òOðè¦ïÑÑ}¡}uÑîMÑù¤ù@ƒMM@HêX?>(ii(EhÓEV {(òV']ý(//¬¬¤¬¨¬©»MÕ¶¨õRýN¤¥44ûo.ûðöðEV V(%%ŸEm Ý!õõ¬¤¤¤õ-­o°­­¥õõõÏkg.¸õ e¸­ õȱVȦ± ]]Vú- VëV ¶¶ ¦V]¶úëV]¦£­ õ ¬kggk¤4m ¸¸©¸h{mm© e°©­V(öTÂT T TÂTTTT½ÂEBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰BB‰‰‰‰B‰ ÂüŸŸÂ ‰‰‰‰‰‰‰‰‰ ‰  Tüè‹ÂÂÂTT½TTTŸðE]¨W¦¦š.Ä)ıK>‹OÝU¨–KäƒU[—O†ˆOO–iO••(ˆ%%%–O•i–ˆ†<›??I•–†††•{K†††ˆ†ˆˆˆ†††ˆ†††ˆ††††††††††††††E††††††††%†ˆO>–†††%%‹‹öiiÈV—IÚ¤ä¸T½û–E- úúߦ;¬…©’®¤»ÕƬ44o¤tt./o¶L¤ áu .Ý ÏÆ¬®š UÏme®b®¦•—Oˆh‚ Ýh ÑW±IçPU»JJ¬¤\èEE%K ­—®¬\ŽWÑ}®ŽOˆO±»Ñ¡ }Ñu}}uu‚)\ißèèð%%ß(ò(iE%è%úÆOúë¸ù°©¶ë¦¦òèö¶ï¡Ñ}¡+M++++MMMƒMM’ M’JÒI((V{.h4!{]oz4ot-0MïMïMýäÈõ°¦Ýî¡ùõ!ùýWkù mozV¥zk.z(iöðEezç \VÈoÆzÏ­¶V¤°­-õõ¸°-­Ý4õoݬz/ WÝÝõ o 0-¥-VV]¶-£¥­¥-¶¶¶ ¶0¦¦] 0©4 ¸©e.k/kÆoõm ©ëú©©© ©e¸õ0'ðTTTT ÂTTT ÂTTÂTTTT(ÈBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰‰B‰‰‰‰‰B‰ Tüö‹ ‰‰‰‰‰‰‰ ‰‰ ‰‰‰ Tü‹½ TTÂÂTTTTŸȨá/¤šÑ…›Jæ }MJ›¢Ñ䎱¥±IOˆ‹Š‹‹†<••—I•–†%ˆi(—•iiˆŽ›KžI•†††ˆŽÄI†††ˆˆˆ†††ˆˆ††††ˆ††ˆˆˆ††††††††%††††E†%††††ˆ•(–†%%‹‹‹–\\Ú¤0±¤t!Ý(ŸŸTü½TÂTü£L°LÈÄ»M»¬ÏÆÆ¤o4W»+‚È ] Æz4¶y zÑU° …ÏUg=áu+k.ÝäLK•I•ˆ—°¤{K)L©žò–—ÄMk W¤J.Kè—(EE% ¡4 k¥ŽÈ‚¡¢ –› ÑÑ ÑÑÑÑM+M––ßßEß%–\(ç(ièö‘ý¥?ç(i±ýäýMƦ¦úOèèEJ+î}g!õ¥£¶ û@ƒ@ïî}’’yO(¬¡+(] çi°{Vëh0 (¦‚ ./ùýPÓ±ä}/¸‚ù»ehÚoÆh'! ù-E]4 öðk{ EŸ%eW¤¬z-ë¶È-¶ ¥{õ oõ¸õõ¸õkýÝ o4¸ -¶0¶¶¶£±'­¸ ÈÈ0¥]ú-õõ¥{È{­¸°¸ õm !oe ©© ¸m­hõ©õõ¸¸õ¦üTTTTTTÂT TTTTTTTT½BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰‰B‰‰‰ TT‹‹ŸÂ ‰‰‰‰‰‰ ‰‰‰ ½Ÿ‹‹TT TTT‹ò+uáezIÏ‚gM Ñ®›ÝM+ÚE‹ˆ‹‹‹††ˆ–––†%%%ˆ••(•OŽŽžŽ•••††–›X•†ˆˆˆˆˆ†ˆˆˆ†††ˆˆ†ˆ†††††ˆ†ˆ†E†E†%†††††††%ˆO>–††††%‹‹‹‹öððçÞ±e4¡+¨©I–EŸèŸöèü‹Vo°ÄÄ©+M îïzäg!¬!ee!0-¥¡¡ !/}uáu¡  !.®o IO•—ˆ—ž•—•(i——ç–©MѨ°ÄV…¤\†'(% Ñ¡¬£¬mK e.  ‚® uu}uuÑ ¡UùW° Ú>OOò('ÓOú­ûëOßièW‘ûOò>ëäu}áÈhÞÞit}¡¡}ϦOiO–]£ò…ùùù’b¡M+‚±ÓO-g¡o ¤öçõÆëçõ‚ú…°òz../ýzý4ë!¡ï!‚Æ0E4°z]!/kheïë‹i­‚ý ò½üßm!hVo-­¬¸VëV-¥-¶ È õ 44eÝe¸o.¤ õ¸e°õȦ]¶ £¦i¦°­­õõ{0È­{£¸õõ õõ¸¸©© mm õ©¬oe¸©õm©°°°h©¸©°°{hðTTTüü Töö0TBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰BB‰‰ Tööö½ ‰‰‰‰‰‰‰‰‰‰ ŸüööüT TTŸüüü!á‚ áî°>\±Iž¦‘›ÄÆUÑš)‹‹‹‹‹‹%–†%%‹%i(—ŽKŽžI•KK•ˆ–›Pˆˆˆ†††ˆ†ˆˆ††††ˆ††††††††iii†E†††††††††E††††–••–†%%†‹‹%è–ç\mž—Æ ¡ »e¨e\Ϧõè¦!ýo°¸©4kýýgzkMù//È4t°- --4k++¨4mez4h—iˆ•ŽžoŽŽ—›¦¥¥°ˆÄgùX•‘Ý(‹†'(% +¤e! {!/u=áÉáuu}=u}Mš |Eßè–\Óçú)祤­)ëûÞOòÓÈÞçç>?»u\(Þû\çˆßÝ}¡îîNòEßßOûy;»šýùîÑîïM@J¦ g¡z V çè>¶Æßû©°ûLzz±. /¦O4/MgkÏúE mo\ÈVž/ð‚/iE ez/ ŸTðVk¨ò¶©õëë-­¶ -õÈÈ4­-¥¥­õ°° ݰõtzõõ-¶£¥¦±¦­0­{imõ{0õõõm õõõõ¸ ¸õõ õ ¸¸©mm °e ©© Ý!¥¥°ÏWÝÝõ'ööðüüößöüüðüüTEö / ðÂBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰B‰ Tü‹ö‹ ‰‰‰‰‰‰ ‰‰‰Â TüöEöü T½ßEðèði–ëý}.±\Wáukm\E%‹%(•ž®.‚±Ii††‹‹‹††–Oˆ†%%%E(ŽKhK?—•ˆK›—00ˆ†ˆˆˆ††iKŽ((i†IŽ––ŽŽ››—(—i††E%%ˆ†ˆ†ˆ•OO%%%%%‹‹èiççÞ묣—i-¢+¢‚¦ ¦ÕK‘k¶¤ÝE©ý¦û¦©¶ mž-eo/zÆ VV¶-4¬ï+¡ááu/z¤!e { •\ˆiŽ›[  ›•ž!‚Æ;[]O¥ó žˆˆ(ÈÏIèOžO†òä}¨zÆg¬+¡=¡¢uuu==áuÇ Mb¤û–Eß–OÞûVûú¥¦°[õ¶çòߦPûû'Óß%ä}úçÞi\(ðEõ}Ñu¬°ÈLõo°ú¦];­Ýïšký4ú  -Ä (©.ò%Þ¥Æ)ߣ°ò‹Eû Ït‚kšhðð{ke(ü(¸.t{ z-'4kVzmðieݤzETT TE ¦õ­V ¸4õȰe¥È­-õõ0e¬õõ°oWW o¸¸¸°­±ëò\ëÈ© ©ç° õõ õõõõõõõõ­{õõ mõõ© õ õõ¸o.W4¸ °! ‚Ï!WW‚¤0ðEiöðiEöðiEEm t0Eðö‹‰BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰‰ TŸ‹‹ööö¿ ‰‰‰‰‰‰‰ TŸiEÞç‹‹½iOŸ(–õ¬Ó(-Þòo}oûòVùuù¨ožE†¥¶+zWo¨­(E†–‹‹‹%ii††%%†—ž›‘¶›žI†•y…J[ˆii††ˆˆˆ†i -••K•ˆ•]{››y0Ž›—†††%†ˆ†ˆOI\•–E†èè%è†%‹%ˆO\Ó(뛈%–t.®it‚ÆÆ\K ¨/ ‹¸gÏÄ?V‘h]{ ©±¬}g0m ­Vú¦]]0e k¡.oeemm Ži•—•ŽKyoP•iN‚;X0±>£ÈÓûúKKJ¬•Eˆ%ˆò®ätm ¡‚o/Ñá áÑ Éáu}áu eÓßèEè––çy¥‘Þ?ëû¥ù¡ïyòXLú¬Ý‘ëúçîÆÞ((ðiEEððhkîùMuî’}ƦÓÚ¥(±šMùý¨æ¬‘/%Eho% eèûÈä¶èÞ‘ð–úyÆš»ùÝÆ.\EüüVz]ð(mÝm{Vt¬  h ö¥£¬­T TTT%]£¦¥ È0¥-­°­È-V­eÈõõ- õ°Ýe­¶V¦¥-ë\((ç룩ëòÈ 4 ­õõõõ{­õõõõõõ©©õõõ ý‚¤4eÝ.ýzo.‚z¬.»¤ EüEi\Eöö(ß(\ßöTTüðè BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰ Âüüööö‹ŸÂ ‰‰‰‰‰‰ ½ü‹öß-(ð¦hTÂðû£V£¬±o!t¸¨úhý¡zòE–äuu/ ( m)K£ y¸šU±+k¬L­¥hˆ%‹‹‹‹‹‹%††iiE•IŽzU®®eŽ•Ä!®zÄ—ˆ†iˆˆ†O(IK(•]I†(Ž0›] 0K›•†EE†ˆˆ††O•——•–iX£çÆ‚äH°Æî°iððßEßèðk¡ÑäÕîî+š Xëçißû»’ïïgî]†m/zo%\¦¥Ú XÈûú£X¥±û¦±ç¦ç\Þ‹Ÿ‹]k%ðöhe0Ý‚¸¤¥eðT‹'¦eòT TT Ÿ%úV e-¶ë¥­¥-¥õ­¶¥È­°õ¶ V¥¥¥õ ÞëVV] V]]0{õ i¸õ­õõõõõm mõõ­{­õõÈ©©oýý.¤t¬Wk W¸zý‚o¤‚ öü\i(\\Eöö('ið'Tüüüöö‰BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰BBB‰B‰‰‰‰ TŸüöð‹ ‰ T½ü%è%è‹Vß½iÞ½Âöi¥eÆÝ4;¨©¤ÞMg‘–ðúWiˆI©ˆ(+– ¢U­¸ÈI%‹‹%%†–(•((•ŽŽK0Uu¡zy‘ezóyŽˆˆ†ˆ†iˆ•›—i›ŽO—)]Ž›Ä] K]Iˆˆ†††%††•—(OOOOO–ˆˆè%è%%–O'hû'±Ý4Oˆ­Æ¤†E zW•zoW¦°óÄÈÓiç ozz°]Ètûý¡š£''ú0V'¶tk+gk!!tm+zk.®!ކ††ˆ–KŽ—•O•­Ó(ˆEOOhW¬ŽO–OOˆ•¤gä…++ •mz]»+MM }} Ñ»]èðEßðßèOÓçëú±ú)¶û¦õ)O‘£Þ‚Õ+¡‘äï£èEðöðE­+Ñ}ï£Æ}î¨[‘(iOòi¶šMgïgïš.oz+eEOÞûÓ>(–––ÞÓ|OòOßèð‹Ÿ½½/š.V%ö\ook Æ4ò¦Vüü‹üðëVüT TT % £¶ õ¶-­Èõ¥- -Èõ¸È¶¥ ¥£ {¬.­VëV -¸¬eõÈõõ¸¶i±4¸ õ©¸õõ õ­{0¥{­õ­ÈÈõõõo.‚ ‚ý!¤/‚Ï4Æý.¤¤4üüß((((Eü((i]-üööüŸ‹ BBBBBBBBBBBBBBBBBBBBBBBBBBB‰BBBBB‰BBB‰B‰‰ Tüðððü TTŸ½üö½TTŸ\‹°È\°!¸°z°ùÓÈ/–m+.Ä%–ˆ±®¢Ä†!’š-(Ž£±†‹‹‹v%%††i—ŽŽKK]®¡}Ut›•—tztWyŽ—OˆO›{K•0-(•{yI•Ii•••—Žˆ††††††ˆ<•—OO>IÒ>O–†Eè%%%Ei((•žIhIoÄ•%%]zÏŽ%†•†–ŸVç±'‹%Þ4oehÈV ¡.ë(ç\V]heggMk+g4(¶/g ]- Ä•†•—ž¶Ä)ž{[ƤÄûò––>¥­hOPÕ‚¥K—oæ±\mz!0itg'žMM  }}+ šJKÚÚÓçòçÞÞëÏýïMÆyÞP‚z'¥o£XÕšÑJòXýû–EEEiEEE+¡ÑÕû­+š±V¸ûOÞç–è{î+MgùÕÏzÏE%ezš+ %ˆò(ò–EEßßè–ß––OßßßßߟßL‚Æ/g ±ðöT'o¬.zze%èüüŸŸööüüŸÂT%%õ{ëë­Ý¸V õ­¸¸¥¶ -¶¶VV ---¥¸õ¶VV£-V­°4õ õ õ£(úe¸4 õ{­õõ­­0È{­{ÈÈ{­Èõõo .¨.k.¤k zÏ‚ zÝݤteëðüß\iiiðüðißðÂÂüðèüŸð‰BBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰BB‰BB‰‰‰‰ ½ö‹½TŸ‹‹ö‹ö‹Ÿ½ÂÂÂÂÂÂöëi¦Eö±¬Lú(hë'ç \-ùù¶ßè(y.¦!Ñ©ˆ%†(+š0E†±š+°|–K¶‹%%%%†i(ŽŽKŽŽ]  ¡¡ ¢›Ž—ŽÄ!z!t![{—ˆ– ›ŽKÄ—ŽLŽi•†††ˆˆˆˆ•††••<†ˆ–OI•O•IÞ—>•O–ßè%è%†%•(— 0­]Ž£4E†ž‚®©i½Ÿ½ŸŸûO–žPÓE–—VÄ0±O\Oh 4¶(EiòmWgƬeÆz°\Eˆ-k'(((Ž?KzU  z[ϬϰyI>•†%†–¶4ÈH¨£¥I—)(%%–Em¢]].š¢M Ñ}+ }uîuuMù‚ÞëLNÑ}}Ñ‚±ú©;ÈÚ¬HÚJ¡H°M}kžß]oòðE(EEEh+¬Ó¨…OÚOEúûE¦ù¢¢/‚‚ùgÆh4- /–O(‘¥Úòû­©J[ää¬äó[J¨/kk höðÈÏo!¨WtÏoÈTTTTTT TTTTTh ß ­È¶ëV0V¶­ ¸ȶV¦-¶V ¥- ¦õ0- V -Èõ44 ¸õõõ0(ë°õõõmõ õ{ õ­{È0È­­È© {­ÆÆÆ.‚¤Ï.‚‚¨ý‚Ï;ÏÆÏ4Viðß\\ðEðüTößiöü'\‹ŸÂŸ BBBBBBBBBBBBBBBBBBBBBB‰B‰BB‰‰‰‰‰‰‰‰‰‰‰‰ ŸööüTŸöööööüŸÂ¿ ‰ ½ðTçúOÈõ¶–E(–è‹ß룣çöðEO((o0ˆ†‹›¡U›††I+Ý•EŽ0–‹%†††Ei\ŽŽhŽŽIŽÄê®®¢U0›e4››!¢®®æÚ—ŽX›‘)—›X›Ú;óÄ)›)•<Ž‘KŽP Ž—{LKˆˆ••I•<(•>—òòOˆè%Eè%%E£WäWož†%K¬‚¨Ï›–E‹½Ÿú>ß祱–\ ££¥Viò\òç(iiÞiò'õk.zõV£¸õ±\Eè]/!Ò\•¶®¢U®z }U[e¦±Þ'OE––O¥óÈK¤k¶¶Èž±E%%—E-0.ššMu¡  ¡ÑbuááÑî}îš/}u}Ñu}äçú‚æó…z.šÄ¦ùÕûi‘­O–iiii((E‚îÝû‚ëÞ¬Èú°¦è»+š¨ »+ Ý%%%!/k]¸Æ®®šùÆÏÕùùùƒïƒùƒƒNHäH//m(öð©ot!ÏhüTÂTTTTTÂTŸV'%¸¸e ¥{¶­¬W¬ÏÈVõÈ¥¶V-¥0]-¥ °--{© õõõ õ¸ õ -] õ õ ¸õõ{õõ­­{{­­È0È{{õȤ..z¤[J¬Ææ‚‚WJ;W‚o0Eöði(ðöðöüüöEßüöoŸT½‰‰‰BBBBBBBBBBBBBBBBBBBBBBBBBBB‰‰‰‰‰BBBBB‰‰ öðð‹TŸ‹‹ŸT T½T¿‰ ‰‰ T½èðiOÞ'–)çßè%‹öß‹ð(O ‘i‹!†%– ¢U•%‹Žk¢ÄEI{O‹%††E\ŽKŽKŽI••–—ŽŽÄ;ŽP®lyyU¡¢U¢t ¨e[;ŽX!X;z;.;ê X;®‘y.U‘KzUÄO•ŽI•ˆE|••••|Oˆ%èE%%EOòÒž¤£ ¸¬Ki–†ž‚Æ O–E†Ÿ½ŸŸŸ‹ûòEOÓ‹(Ž{oo¦O( eûO\(('O4o¡.ÆE W—\ŽŽ; ¢¢¢¢ ¢I¥¸)KKžPäOO–—»eެ»­k¨ó¸'—%\V\k£‚š¢M}}Ñï }}Ñu=uÆïá=uá}ááî…–òûÓ­k}u}’ÕLûX°h禣 hi(.u}±;ýú\]‚/»Ó]ïæ ùïÑš-(./0K…¨»/k𮍻šý»ÕNùNù@ƒóLäÕ»š/ Ïüüöe .Ï.ý0%TüööööüŸTT ‹o4e­õëë¶4 ' V ëë]È­e.Wõ4¸44¸¸ 4 ¸ õ -¥õõ4õ¸mõ õõõõõ­­ÈÈÈÈÈ­{¸ÝÝÝLõJJ;;°…¸…-iüTüüTTTTöÂõe‰BB ‰BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰‰‰‰‰‰‰ ‹‹ŸT ½Ÿ‹ŸÂ‰‰¿T ¿ ‰‰  ½‹è%iò°hRi40]ÞçEÓh{ú‹]¶h]‹>%‹%]ÄWÝO‹%©¢¨Žކ%†‹††††i—ŽŽŽIŽ—i†ŽÚ…4Ä›•4UzXÄU¢@ê® Uƒ¨)[!Ää;›Kye®óy¨®U!?Ä®®PXê®ä›—IOOO••i•••O–èE%èˆE|IÒK¦­Ž—(ˆ†%¦¤»®UÈOiiEŸŸŸŸûçèEO‹E Æ\'Ýk]iVem(\EÝ!ù mðE%E¶ož(\›±››z ¨êz¨ ¢)K!»X?Þ—mg›\•ȃ;—°®¦­Õ» óÒiç\Þi%¶/X¸k¢M}uuÑ MÑ}}áѤ»X¤uuáuáÑ»ùõOçÞçç…}uáuÑNÆêûûÚžOú m.{z¡ïWÆLëçò'±ú±iEÝMùùùMÑ»¶i%E(ò./¶ݤ‚Uï+ggMšùùïïïïšNùƒïƒšïÆ4Óðð /»...//'\Wz.©çEEðüö\E°õ- ¶ë\\ë¥-'ë Vë\ È¥õõ‚z4¸ 4 ¸õ¸õõõ-'õ4 4 õõõõõõ­­{­­{È0­{õõ­õ©õ©õõõõXXõLL©L©{üTTTTTTTTTTTTTT ü °BBB ½BBBBBBBBBBBBBBBBBBBBBBBBBBB‰‰‰‰‰‰B‰‰‰‰ ½‹‹ü ŸöŸÂ ÂTTT ‰‰‰ ‰  èEòϸ°O-½iVŸëðëhûÝ£–±èŸòT½ŸŸ†‹‹›Uk{†ˆ±•%‹‹††—KIŽŽIIO†ˆyJ…0Ž•—oó;otêêUWäUUU4ŽUU¢L•ÄUN;‘•ÄoLêL—…óeät¨{—O–i————••Oˆˆ‹èˆ†–•ÒK'VÆžIOEžä®®°ž–ˆˆ†%ŸŸ½%žòèè–ˆ†\I%\{©4¬±( tò(çEÞ V¸šk¬hEEEEEè!K(Ž--;¢![;  ÄX¢}z£žIXMU;­‘Ñu¬š­Ý»¨H¸ ÓOE%èE-kÈt}}uuu}î}ÑMM¦‚¥°šu}’M}ƒÆóyëú¶ò–ÚuáuuÇuu¡ûÞJÆû(¥°\-\i+Æëû¥–òûÞOë\–Óý/šM+ ¤%%% ¬ z®»UšM»ÏÕïïùƒ@@ƒƒïƒùƒù/e'EðEðû. z .\OÈzkùÝEßè(Þ{mE%°- úëë'\Þ¶ëëV È-VV¥õ¥Ýý z¸õ õõ©©õ õ4 õ ]\ȸ¸¸õõõõõõõ­{È0ÈÈ0È­¥¥0­õ­È­­õõLXXXXLLL ©¦ßT TT T TT TTTT T©4BBBBB‰BBBBBBBBBBBBBBBBBBBBBBBBBBBB‰‰BB‰‰B‰ ŸöŸ¿‰‰TŸ‹ ‰ T‹‹ŸÂ ‰ Ÿði%(!ýOI E£ŸëTû¶-¦ûEVöTçûŸOŸŸŠTŸÂŸOh°š©O‹†K%†††(—›ŽŽKI•ˆ†ˆ›‘Iˆˆ††›êXĨ®ÄX.4®’Ny—œzX;Xä¨eó0•‘!®K›äÄæUJXUJ—<–O—I(—>O%–††–°¨ ¨¤oƤ0•(%‹Ie.» I–ˆ†‹ŸŸ½½èëòè߈V0Äte(%(h¥iëhç–\'õ.kgzëß––ˆ›;-—Ž‘­ÚUU!®®¡bo{Mub©ŽûÄ+M.¤­W}k­e ¬/®gä—Eˆ–EÈ/¦°îÇî+}}Ñuáù‘±Pæ}õÓ¶î}¤;}»úûJÓçõÑ’u==¡¤…ûû°ƒ°O¸u¶ißòO(eg¡ïyÞ£ÓOû©úç­ z»šî V(0ÞV‚Ïæ®U®»UƨUƒùùƒƒùùNƒƒƒƒNš ¨/!E‹ŸO¸;./.EEho¤¨ 4(Ei%E\'ë ëë'h'-hõe4eoÝzý.4õõ¸¸¸õ¸e°4¸ ]ò±°4õ ¸¸õ­{­ÈÈ00¥0È¥00¥¥­­{0ÈõõõõõXõõXX©©õLõûðT TTÂT T ÂTTTTÂT ÂüyõBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰BBBB‰‰‰B T‹‹öŸT‰‰ Ÿ ‰‰‰TŸŸü‹ ÂT½‹ðèˆßßòo©úòúT%¥ŸE'ú¬ž(h \iëiŸOŸ†–I?‘ÆkUUÏ—%h•†%‹%†††•ŽŽŽŽŽ••ˆ%ˆPy•%††OÚ;ŽKê›K…Ä)ê UyI…¨[![Úe®®¨eŽ?eæ;—›—[zyäXO<•O—••<†Eˆˆ†%Eh‚ÏÈLÆ‚®£>–OO†††O––Ò¤°úžVȱ(•E‹†I°!. o?((i†‹ŸŸŸŸŸŸÞ|–Eß).» eŽE%%ˆöü‹ðižÏz 0¦Ó((膗ÄȦÈ{ ›I• ®®¢ Ç ¢á= Ä–ÒÄ’+æ°X[È'Ž0°hŽkk‚JLêÆ£›Æ XÈÕg+îîÑ‘èO¬š/£òÓæ}ùMÑ}…òÞyó;'Ó°šLçRÆÏ¦ûÞûX…u¡o-'it}@Ï¥ÓJ©ç(– '/+g//.%TTh.¢/kUU/ššH‚@¢šùùš@š@šƒù@ïïý»ùïMgMkÏ£Rð0gge%%\./z­°¤ÆeiEE. / ° °4­õWϬ¬¬oWÏtÏWý/ýݰ¸¸ ©© õõõ¸°¸õõ¸ 4õõ©õõ­­{­­{0­õÈ]]È­õ­È­õPXXõL…LLLP]B T TTT TTTTTÂÂT߉BBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰BBBBBBBB‰TTüööö‹T ‰‰ TüŸÂ ‰ ½½ŸŸ ‰ T‹èßè–ˆ–E†ŸŸT ½T TT½ ŸŸTüTi0ȨùM¢¢¢¢¢M¢‚¸Ž–(›oW Äo KŽt®U¨t4e.U !zty•††††<ˆ†ˆˆ†ˆ†ˆ†ˆç ]\š-t+‚JX¬4Þû)Ȭ¶Vkg/k %½‹E‹i4/k/š¢¢U/¢/ššNùƒƒš@MMïMMškïgMgšùš‚¸XÞõš.]%Ei4Ïe\¬ //0ð(egk.tÏt¬ÏWooÏtÏÏÏtWWWWtÏÏÏÏWk/kϰõ¸¸ ¸ õ 444¸444¸4õõ©õ­­­È00È­­ÈõÈ0{ mõõõõõõXXõõõõ©õ­¶B TÂT TTTÂTT  ð©\BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰‰‰B‰‰ TöööŸ½Â‰‰‰ ö ‰‰ÂüüTTTT ‹ðEðEEE% ‰ T½ ÂTŸT TT½Ÿ½‹çúoƃù ‚¨W;L›•O‹Ÿ†›Ý¸£ŽK{0†]ot?K®® .t]•Ž ÄI†††<†%†††††††–ˆ<<•0ê;)ŽŽŽ?Ž••||†ˆIO†‹%–Žkk¦(O†‹ŸŸŸ–—OOO–-{-ŽV i\Vh\—% Ÿ½EEEˆ––(iOi–—V¥È Pó»»—…U!Ä¢}®J®} ¦—… ƒ[;L©J¸m±(0}g;4°…­eMÑ[¦;g»È¬šî}uMšuïN¬ï‚»¸Óïá}°yäùJûçûg}».»©PPïu»ýîÝ(i\içg ùÏ)ÈLWûëûJht!¨o iT½UkkšMMM++  Mš/UùùùùƒšššM@ïùššš/ššš»ƒý¬££{hEöö%%%ðèV.zz h- k.ÆùÏWWÏttW¬ÏWWWtWWWWWÏÏÏϬWzký¬°¸¸¸°¸¸¸¸¸¸¸¸4 ¸¸4¸¸¸ m©õ­È0¥0­­{­õ õõ­© ©©©õõõõLõL©L©LX±BÂTÂTÂT ÂTT TTT½ ÂÂü‰BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB ‰‰‰ ü‹ö‹ö½ ‰‰ TŸŸŸT TTTÂTŸüŸT ÂöèßßèßE%ŸTTTTÂTÂÂTTTT ½üTTTTŸüTˆyh•<ˆ†‹Ÿ‹‹Ÿ— e-††%•ŽŽ—Ž›ŽKŽŽ—•••—]Kˆ†††ˆ†<†ˆ<††O†††O†Ž…¨JŽ••——•—–ˆi†ˆ†ˆ<<–O•—I—•OˆˆO——I•—?Ž›¬È¸…‚X¶zUÏžŽ•ˆˆ%%†Ž‚®Æ¥(ii‹‹Ÿ‹‹ŸŸi\O((|\±¥eoz\''iT½T%\EO•K¦)ŽO•ž›KO•]䨮z’ ¶! M›–•°Mk…¸)¦0h†E-¡+£>û'X/ѨëÓýÑó¶;ïÑÑ¡šý»ƒ‚L¦ù yÞ¨áѦûäƶÞÞÈîƒõ¶°¤¸­;M}ššNÓ(\h(\0z4.¨¨¥ÓÝî+¬iߖȸÓEß/¦¥o {ETTÂT( k U¢+  Mgš¢š»ùššùù/ùNšùùš/ùš/šù‚ùkt±ii\'ðüüü–]z..£44/zekWWtWÏtWWWÏtWWÏÏWWWÏÏWÏϬWzzWݰ°°°¸¸¸õ¸ © ©õõ© ©¸¸ ©õ{{000¥Èõ­õõõ­õ­õõõ õõXõLLJ…©©õÈ'B TÂTTTTTTTTT T½ŸBBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰B Óo( TTüEüö½T ‰ ‹üü‰ T üüTTüŸTÂTüöðèEEEE%‹T TTTTTTT½TT½½ŸTüÞK‹‹K©È•%iˆŽIIžŽ—Ž•|ˆŽPó0L)†††ˆ†††•Žy)IyóÆJ±›¦È0•EE†hU ®W—E††‹‹‹‹ŸŸ••O>\›¸o!.!•ކTT½T½E•›'iE(Žy¦žOOŽÓOO•£4®®}ƒKy® ¢¶—•°M¨Xyyž—ú''•E%-++ ‘•ÒhÞ­@}äç–Æýy¤š¡ï}õLýg/¥‚}MƱ¸áùRR°æÆyÞçÚ¤¶Põ[Ý;°Æ@á¨Óû°omV-V!©±¸+îÆ>‘¥EšÏV›--蟽TTE.k®»»šM’ g/Ušïùùùùï/ùùùùš//ƒšƒš»ù‚»‚ó{¦]m-ßèüü‹öii( z4mÆkmtÏWWWϬ¬ÏÏÏÏϬÏWÏWÏÏWÏWϬ¬¬WzWo°°¸¸°¸¸õ©©©© © ¸¸ © m©õ­È0¥È{­­­¥Èõõ­õõõõ­õõõõõõX­©õ¥‰TTTTTTTÂTTTÂTTT içBBBBBBBBBBBBBBBBBBBBBBBBBBB‰B‰B‹!//¸öüößö𠉉Ÿööü ŸŸü‹TT½T TöEßE%‹Ÿ TTT½T½T½TÂTTT üŸŸ–]£›Ÿ%Io›‹%†%–•—ŽŽŽŽŽŽŽOˆˆ{U¢!ÚXJ›ŽOˆ†•yWoJ›††ˆ<›ê󛕈Oˆˆˆˆ†ˆˆˆˆˆˆ†ˆˆˆ†ˆˆˆ††ˆ††iO—I?—yó)•–ޱ£±?h(ˆˆi]z ®kH{•–ˆ†‹‹‹‹‹‹Ÿ• ——Ó°¨t40 E%TTTT TTi›]Ž'ަX©£IOI••KÄê¢M¡á¡e U}MÝ£ž¸ƒ¸¥­©££4{ VEEV.‚‘ӣƥI…îuWÞÞ䤥Xe¬JÆyJšáïÕ+u}’¤LÑýû륂ÏRçë©@¨õûû±±)±çR¬k£OëI('z] +¤P(õý/oûÓ\?‹%ek4 i%/ ‚U¢š»®U¢š//ï/šï//@/»/»¤Ï¸£­¨/š/+zVÞi((ßðçð¶k¤¶ ±¸eõ°©ÏW¬Ϭ¬¬¬¬ÏÏÏÏÏÏWÏÏϬÏÏÏ¬ÏÆkýW¸°°¸¸¸¸¸©Lõ°¸© ¸ õ­È¥0È­È00ÈÈ­{­©õ©õ­­õ­­õõõ­õ©õ¥‰TTTÂTTTTÂTTTTTT‰\!öBBBBBBBBBBBBBBBBBBB‰B‰B‰‰‰BB‰‰‰ö !ðöðöðöü  Töü ‰T‰öTT½½ÂT ½èßßEET ÂTTTT T½TTT½TT½Â½ü‹ŸEKÄĈ•Ÿ‹‹‹‹%Ÿ›IE†††IŽ\ŽŽ›?››—–Iˆ†P¢ ¨›?0;oJ‘‘J4‘–—yÄ›žK?KKRKž•–†ˆ%OȨUU Æ-Iˆˆˆ‹‹‹ŸŸE¥±Ž\mV\iET¿TTT½T—K4]¦­°°ÏÆÏ£‘£X¦Ž—KK…®®®U¢ } ‚;Ž¥ÝXÚÄJX‘¥4° -%%ç-0'Ò… ¨Xä+çò¬Lú‘ûÞç¥[¶kï°°ý‚šïšýïù{Þ­PçOÞLMóÚyÓçÞòOò£Þ––iOeh \eÆÓÂÚ»@ïù®¬©£i– e£(E‹ t®‚H»U‚¨H‚kšggg/ùùšMï/šùùš»¤!¸úçú¸‚ù0èEi\ii{õ0koh-{-¶m0oÏWϬÏϬ¬¬ÝÝ[ÏϬÏϬϬϬϬ¬¬[[¤ýæä°°J°¸J¸J¸õõ¸¸¸©õ © õmõ­È00ÈÈ00È­­­õõõõõ©õõõõ­¥È­­Èõ©õ¥\‰TTTÂTTTTTTTTTTT '‚ßBBBBBBBBBBBBBBBBBBB‰BBB‰B‰B‰‰B‰‰V.hüðèðü ÂüöüT T ½üŸ TT T ‹öðEßEŸTÂTÂT  ½½TTTTTÂüüüh­ÝÈ%•½‹‹E£°›†%†Ž z.z!ê!ä;Äy–†—…!Ú—––••yL—OO—P0Ž›o.󛕈ˆˆˆˆˆˆˆˆiˆˆˆˆ††ˆˆˆ†ˆˆˆˆˆˆˆˆ–†ˆ•—{ÄŽ—Ž›R›RžKÒOOˆ%†¶‚U®W›†i<ˆ†‹‹‹‹‹‹‹‹†I)Ä‘ÒÞE•%†E%%†T T¿T T]¬k!V›0¸¥¸æM¢UUU‚Æ.¨eÈ±Ž•ŽUU ¡ æŽIžžK›¦££o!{(%%–(òž..Æ!MÑÆ?Ó°±û¶Óò묨»ÏëëýïMšù!‚»W)(ûûè£ùõû±¶)|–ßßOÞ)ûòi–'–\{;EÝï+Ñ¡/Ϧ\ò( k{ehŸŸŸŸoŽ¥¬¬W®®ù®®kùù//gï///ù/šùNNHÞèò{ Ó-© V-©\V - ¦Ï¬ÝÝÝÝó¬Ï¬¬¬[¬¬Ï[¬[¬[ÏϤ¤ä¬;J°J……õLõõõ© ¸©õ© õõ©õ­­­È­­­ÈÈ­È­õõ­õ­­{­­­õõõõÈ­õõõ£\ÂÂTTTTT½TÂÂE!\BBBBBBBBBBBBBBBBBBBBB‰‰‰‰B‰‰‰B‰BTiððEððöü TB TŸ‹Ÿ ŸÂTT½TT Ÿð–èTTÂÂT ÂÂTTTT½½½½½TTT½‹èÓ-¸Ï£%½ŸO‹ˆ h†%††•› £z Ug¢U¢¢®z…I•–ˆ†—ŽŽŽ••••—I•Ž››††ˆ•‘4óê4ŽˆOOˆ–ˆ–ˆˆ–ˆˆˆ––ˆˆ†††ˆ††ˆ†ˆ†††ˆ†<†CÚe›K?›KKKhŽIiˆˆEE(¶k oh†Eˆ%‹‹‹ŸŸŸEI¥°¥I(±h%E†%T¿¿TT¿T%ˆ/¢!—h¤Lȸ »ÏÏäÆM ¢U®[•ˆ•K›Ä¨N!Ž–ˆˆiOO]meE%%ˆçÞRLóg}Æžë­ëhyûò–(P‚MJçÓÝMÑî}MÏÏïM[Ó-è‹ðëäO‹–úûèèè–OˆJ¶–EèEiòEè–ߟžï}š¨gïÆ{OE z0¶†T‹%Ķ%[¤ÆÕz¨®ýý/»»/šù/k©o //k»ù»»/ù»ý£–ßðß'g++g/Vöüö–­VV-] È]ÏÏtW¬¬ooݬÝ;Ý[Ϭ[[[[[[[[[[ϬϬ[¤æ‚Ï…J¸…LLP¥õ­© ¸ õõmõ­{­È­õ­­­È­õõõõõ­­­­­­È­­È{õõõõ£\ TTTTTTTTÂTTT½öeVBBBBBBBBBBBBBBBBBB‰BB‰B‰B‰‰B‰‰B ü((üi ]i ŸÓ-üß­(OŸüVðð(e–ET½T½TTTÂTTTTT½T½ŸŸçV0e¬È(‹T%•¥¸Ž††O޶ t! ¢ ¢UU¢’t›•‘Ä{—ŽŽŽŽ†››ŽŽ—ŽK—<Ž‘Ú—––††Žó®z›•ˆ<ˆˆOˆ–ˆˆiˆ–ˆˆ†ˆ†ˆˆˆ†ˆˆ†ˆˆˆ†–ˆ†•›eJKK±››K?ŽOˆEEIPW®Uz›††iˆ†‹‹‹‹‹‹‹‹ŸŸ½—¬¬­–I0hˆ†T¿ TT h'EEE-/ hWÈ©°®škƒ¨ó!‚‚¤ó[­—–•Ä]?¶0•ˆ†%†è%–Èm]iè%EˆÞ£J¦K¶ÓOëÓúûÓÓ(ÞÆä¦òÓõšM+M»±P»ï;Þ‘?èööÓWûOE±¦ç(苞ģ(‹EiEE%±¢ U¸‚ïš‚°ÞOVzÄE‹\V\hžÝ¨z. ý»‚ ùýt!õVEiV°.»ššùk/ k¬çß–Eðð /š+/.VðöEEEih©ooo!!{tϬÝݬÏÝÝ[[[Ý;ÝÝ[ÝÝ;Ý[ó¬Ý[ݤ‚ùæ[¸¸…LL…£ú­­õ © ©­{­­­õ{­­­­õõõõõõ­­­­­Èõ­¥ëüT½TTTTTTÂTüü EBBBBBBBBBBBBBBBBBBBB‰B‰B‰‰‰‰‰B‰ ‚EE.¬t¤.z /¦V.{{iú¸VMëEˆ%½TTT½TTT TTT½TTTTŸi-ÝW¬;{(‹Ÿ(†•±mtϬ]%Ke.z!¨®UU¢ UU®)•‘›ŽÄÚ‘—JÚ—O•ˆˆ•••I›yI–†•Úz®êÄIˆOˆˆ–ˆˆˆˆˆˆ<ˆˆˆ†ˆˆˆ†ˆˆˆˆ†ˆ†E†iˆC•Ä.ä‘››KŽ•i††iŽ ¤‚¬Æ!¥•ii•ˆ†%‹‹‹‹ŠOK¸Æ!£çh(i•ˆº¿ T—•†E-ý.\Vm]e‚¢g¢M‚!®UîM¤¸XKÚ…;•)y•ˆ††%E%E–Þžëß%–ûLúžkOEE%û±\(\Þi(¬ÆõOèަƒïù)úƃÝçißè‹‹ëNýÆy䯍;蟟£eúèŸV;û–iiÒ++¢‚o{±(Pû¥¸i\± \-4- i%Ežz/»».!¨4'–òi%ßßè(úL/.»ä¬iEz/kgýozÆ. o!4eeÝ0 ÏϬ¬oo¬ÝÝÝ[Ý;ÝÝ;;Ý;;ÝÝÝ[¬[¬Wæùý¤°…LõL¸XPõõõõ© ¸¸ õ­©õõ©õ­­õõ­õõ­­­­õ©õ­õ­£ú£­­¥ EüTTTTTTTTTTTTTT ö‰BBBBBBBBBBBBBBBBBBBBBBB‰‰‰‰‰BÂTöùk0 ¥ 4¸ðz\‹O.-»' kŸVo!gEˆE½ÂTT ÂT ÂÂÂT½TT½TŸ½çÈÝݬ©›Èz…]I•%ˆžo. ®®zotÄ.®eJL—y—]—–<Äy›0y •††–ˆ•O•O•KÄ{›y;!ꑈ†<ˆ†ˆ†ˆˆ††ˆˆˆˆˆˆˆˆˆˆˆˆˆˆ†ˆ†ˆˆˆ†•›[[L4Ä›žI•O††–›WU».‚e—–—II•ˆ†%‹‹‹‹Ÿ½%\RPW¨Æ –†%††¿¿ºT†•K¸ O%ðE¶'o ¦-W+u¡'\I¶¸LÄÄyJ4žŽLoŽ••ˆ<ˆˆˆˆè†ˆ|Þ¥¨kMW•]z0iè‹ð\iEi(Wo-Óòç£NÑîùù°õ¤î/LÞòOòO¥îù!æšN»ùLO‹-¬ä…ž–‹Ÿèݨ-¦¦¦›¥z¡u+M+/o4¤ÚžO—KÄJKÄ‚U¤!ú(0-ˆ%i-zkoeoe©'iòOßüß–ßèè] / Eð–òçk.¬gg///.m o0hV'ÞϬ¬o¬¬¬¬¬¬ÝÝ[ÝÝ;;°;;ÝÝ[ÝÝ[¬¬¬¬W ùæ[©LL©…¸©Lõm õõ ¸¸õõõ­õõm© m©õõõ õ©¸ ­õõõ ©©©©¥-­­È¦\ðÂTÂTT½TTTTTTTTTÂð°ðBBBBBBBBBBBBBBBBBBBBB‰‰‰‰‰B‰ ööikk'z eOk¤ð‚‚ýW'©¬W£ü‘/!úEE½T ÂÂT TTTTTTTTT½TT½T%VÝWh•I(¦ÝÄŽ—•†Žm¬tz!04e4Ä4{–?‘–)IˆŽXy›óJÚ‘–††††ˆ•–OO<—Ú;ó;oX›ŽK›KŽ•ˆ†––††ˆˆˆˆˆˆ†–†ˆˆˆ†<ˆˆ<ˆ•ÄLä®U!J¶KIi†ˆEo®UUU!I%ޏ4•ˆ‹‹‹‹‹T•ûVÝ®)•†½Ÿ†‹††–K…zæN°]W(ie!](ggÑ+•(–•ú›¥È±JLL…›K!¢…›Žii–(ˆˆˆèÞ¬¡}}š-og/¦E%\ ð‹õe.ëÞú[îM/ùù¨šîù-ÓçßOÚMÕÏ‚ù¤ýùWû(X䤅RO%[K¶PÄ£ ‚¡+g/gktX畦¤k©k».k‚¤z]•£ me]-]¦ëV¬ÈçÞOEO–ðEö¨kkðih']!oiEûz//»zz¨ t] ¸ú\]0¶{Ïo¬Ï¬Ý[[[Ý;°;Ý;;Ý;ÝݬÝ[Ý[¬ÏHš‚ÝL©¸…LõLõõõ õõõ 4mõõ­õ© ©©õõõõõõõõ ©õ©¸ ©©õõõõÈ-¦¥È{ÈÈVüTTTTTTTTTTTÂTTT üöðBBBBBBBBBBBBBBBBBBBBBBBBBBBB‰ %öçz.4oWß?tùmçõݽӂ¨\ü]MLŸTT TT TÂT ÂTT½TT½E-ݬ¬Ï¶–›Ýe¬Ý­KO£;ä!!®oŽ.o]!em0Ä›)K†)K•ŽL0Ĩ…››•ˆ†–ˆˆ••OO†ŽÄ!!t;PŽÚ;tJ ;›Kˆ††ˆ†iˆˆ–ˆ†ˆ††ˆˆˆˆ<–Iž4!;tzê;äJIˆˆ†ˆ(›.»®UtKI%†±4I†‹‹‹‹‹ŸŸˆŽKÄH¢J±\E†–<ˆ††››—ŽP[NUšeè%(¥ (\tç%Eh!¶'h–\KKJ…¤ÄÄo¶¶¨ ¨ Ž•ˆiˆˆEiˆ‹èò¤¡b+..0\ˆ%ööiò-0(ü'z.]±i]‚ùïÆH J¤ýÆë|òûëÆýzÕäýùù虜ڬݣޖ–ˆèÚÄû‘­e0°zkz/.tk––|±J/Õy‚¢W.!4e40V'iˆž0 ¸e¥\V϶?y¬XëÚ©yV±Þ(h¥-e00ðEE]./z..!.‚oý !!zk.¬ÏϬoo¸Ý[Ý;;°ÝÝÝÝÝÝÝ;[[[[Ý[¬ÏÆùÕ[©……¸Lõ©©õ©õm ©44 õ{õõõmõõõõõõõõ­õ©©© ¸ ©¸õ©©õõ­­ÈÈÈ­È¥±iü TTT ÂTT½T½ ü½BBBBBBBBBBBBBBBBBBBBBBBBB‰‰ ö(tkz{½O0 ¸è¤ÆÈ–¬o\¶ÞŸŸð¶Æ4'¸ET ÂTTÂÂT ÂÂTTTTÂTT½¶óWh¶•¸KˆO—iOº†Ž tttm-Žom›0!4•›ÄKO†—Ž•—]Ž‘ ›•—•††ˆ<•••ˆ†IÄ!êêÚ—†—KKI—Ž›eÄ—†–ˆ†ˆ†††ˆˆˆˆˆˆˆˆ–ˆ††O•›;Uó›Ú[äo{O<–†—¥óH‚»¨¬¦)I?¶Ž›°•%%%††%‹‹‹‹‹‹½‹¶¤ ¨¶—E(›]—†—Ä‘O—›{ê‚ÈŸE¶-']IÒi±¨z](Eh'ˆO•Ò©¬‚šU¢ƒ¬ä¨t[®¢—(–i–ˆˆ–%i¶ýb’Ñ'Eˆ%Eii\]- Vz Ïú¦¦\J¤»š!P‚æXÕù¤W¨ý‘ÞNï’ýMMîMMÝ'ĬXVI–è©¶Èó¤È m'E›zk©†ˆiymU‚‘W¢/%%%(£%%i'\O\\E%i>ò–õùÝßðßÞ'oý.!kgz'] to{'.±(Èmo..  kk!.t4k/»¬Ï¬ooÝÝÝÝ;;Ý[[[[Ý;ÝÝ[¬¬[¬Ï¨šýÏJ¸¸L…¸©¸õõ©© õ¸4¸¸õõõõõõõ©¸õõõõõõ©õ© ©¸¸¸¸©¸©õõõõÈ¥0È­È0hߟTT ÂTTTTTTT Tü ü°-BBBBBBBBBBBBBBBBBBBBBBBBB‰‰Töðð(Eö ‰  %½T½TTŸè ü–ßð4ò–ET T ÂÂT TTTTT½TT†¥Ý;ÄO%žÄ¬I <†ˆ\OOˆò£HMÑ}MÑgi((–iEE%ð¶e ]¸/ 0''Ó£óÏ š¥‚¤¸H¡¡Ñ¡gšÝçç;/M}}¡}+ï}}ÆVJÆ[äJúçe¥ù/ T4!e'ˆOK¶ÝMšÝz+¢ Ei '(\'Kh'¦ûžoùk‘ß‹–Óç‚/o+š+e–õM/!È»tëh£°zk!zkg+/k 'W/o¬Ïoooݬ¬oÝݰÝÝ;[ÝÝÝ;Ý[¬¬[¬ä¨ýÆ[°õL©©¸¸©©¸© ©444© ©©{õõ© ¸õõõõõõõõ õ4°¸©©©©©õõ­­È¥È{mÈëEü T TTTTT  üe‘BBBBBBBBBBBBBBBBBBBB‰‰‰B‰ TŸööðEö‰‰ ‰‰T%T‰ÂTÂÂT Ÿ‹ßðO(ä–‹½ ÂT TÂTTÂTÂÂTT½TTŸˆÄݬ°O‹òL¸–‹ˆ¶È((•{!o•EiIŽhŽŽŽ(i†%††–†•ˆˆO(••––ˆ•••ˆŽy¨ óeކ–††<–ˆˆˆ††Ž0PŽ<–†<ˆˆC–O<ˆ–ˆ††<–—®…‘J®¤ÚI–ˆ<ˆIæ®UU®°K<–ˆ?ÄKďޕO•i–ˆi–†%ˆˆ––††IÚÆg»J•¥){•• ! ކ%(ŽŽ'\\h—E%††††%†i†iOˆ•I••–••Ž›JWêê.WÚ•†–†††ˆˆˆOOO††O•›eLI•4óϬ…[K>ŽXzƒzzóJÄ›Oˆ–•oƨ êyIOŽ›RÄ£È;Žˆ†%%%%%%†ˆˆE†%%††%%–•ŽP-Ï¢ÕW>|¦XXW¨.äóz W°¨‚šUkWhûtý\- iŸ‹%†ˆ††I¤‚J;[WϬó® uu J!ƒ+}’…—I¶Ä©±ûP±ßEièEüöEèüüE¦o» (iòÓh‘¥ÈûOè笃ù+Ñù‘ÓP¸ ý[š+MÆÈƒ+»š£)ï»®‚Æ[Ä;¢ÝûÝùhiiiI4]†© Žž¬¨šUk/.]IE(•]--0KE(—ÞÞÞÓ¶Xõ°¤šk üûo(ü44k]o'Vmze'h o ©Vh±{Ï[[o[°Ýݬݬݬo°Ý°°ÝÝݬ¬W¤Æ¬°Ï¨ýýýý‚Æo¸°õõ©¸¸õ©©¸¸©…¸©L…¸¸©õõ õ¸¸¸¸¸°¸©LLLõõLõ­õõ…õ­ ©©­–TTTTTTTTTÂT½¥.öBBBBBBBBBBBB‰B‰BBB‰BB‰ üööðööèðü BÂÂöð ŸŸ½ŸŸT ½½½èßèO–E–ˆ‹ŸÂ  ÂTÂTTTTTT½½½½E ¬†½Ÿ±Ò‹—¥£O•(%›otmI%i(\Ž\\ŽŽI—iˆ†%††E††††ˆ†ˆOIŽO—•O—y®®.¨;›i†––OˆOˆˆˆ†ˆ†Oˆ†iI)4…£Ii––OIXäz¨®¤L êt…z[›O†–—¥‚®¤z¤;¶—IKLWݦL;K•Oˆ%‹‹‹ˆ–i††%%(iOÚ e¥]LH¢Æ‘ûŽÚJ¤U¢Uä ®z;e¨Æ]'VEiU!ˆ†ˆ††ŽÆ®Ï¤¬®®æN }}b¡ÇÑ}Ѭúú¸.¨Xû±Æ»OöEiüüüüTöð!m ßh-0¤°­‘(èèO¥ý‚äMÑî°±¦ÆóÓ¥¥ýï‚ùM»¨Þž®UƒM»¨W¸WšÝ­ÈW¢Ei—\V›•E£®)UÝXL» ¨em ttmoo 0e -4o°JJ¬óÝä¤Ï/kiEi'\4ek‚4!o{' .z e-m\OV£ ¦0Ϭ¬[¬[¬¬ÝÝÝÝoÝooÝÝÝeÝÝÝÝoÝÝoÝo¤..WÝ!kkùùkæWÝ䯤¸JÝä¬ÝJ……©©¸…¸¸J¸©õ ¸¸4°¸4°°°¸õõõõXXõ5õLLõõJ¸4 ­üTT½TT½ie‰BBBBBBBBB‰‰B‰B‰‰‰‰‰‰‰½üðöðèð‹½¿‰‰ ü‹Â ½ü‹ŸŸŸTüßß–––%TTÂT ÂT½TTTTTTT½ŸߥÏÝ%]4•-—–Vm••K°Ï[ot…—†%%•\\Ž\I—(%%%%%%†%†%E†%†ii—••••—.®®®oyy›<–<†ˆ–ˆ––OOˆOˆˆOˆˆ—KX›O–ˆˆˆ–OI¥W¤Ä›JÆê;ót‘|ˆ?Ý®»æ¨Æ©I––I)Ý‘‘Äž›|–i–%‹%††%††%›±­]¦£»/Ä‘N®k¨¬ó‚NH­¤eˆTTT½{kTT TT½%%‹•Ž›¶ž•IÚ;e¢  U¬L MÑ ‚J¬kîÏ£ò¦èöü Tü ­\ðöiúetäõ[]OëPWýgMÑÑMùÆLçäÈRPûȤù»H£è•[NUgk¨H¬æMÆJ°Æ®¶]±]m!(%›®®W± Uh%.t .›ezto m!Vo4o!te4°¸õĸ¬¨  - Ýt  .z 4m]4m o!! m0ë\iE–0- ]0ϬäÏä[[[¬ÝݬooϬÝoݬoÝÝooÝooÝtƨ. .‚‚..ä[ÆÕHÝW‚HÆä°J¸¸¸JJ°¸…©¸¸°°°°¸e4¸¸õõXXXLLõõLLL­©©°°°ðTTTTTTTüüTi½‰‰BB‰BBBBBBBBB‰‰‰B‰‰TüðEððö ‰ ½ŸÂ ºü‹½½½T TEE–߈ŸTÂÂT ÂTÂTTT½½½½½TüðȬÝW­i‹]¸Ž½–]¦-KO—†±;Wtt0—†—\Ž—(–†%†††%%†%%††%†iOi•—IÚóêz.ê;›Ž‘›–†OO†OòÚ.[ƻěXL¤UU¡ ¡}®¨Uš¢+g‚¸y0zÄ‘Ue†††)ÚŽ•Ž]Ž..4   / \IE%% zWoV0¬!t©\m Æ Ýo.o !oh]V(iú44-0ihiiOi¬Ï¬Ï[¬¬[ÝÝ[oo¬ÝeeeeÝÝeÝÝe4¸°eeÝoÝÝÝJJ¸¸;;Ý;;°°;¬¬äHÆÏ°JJJ°°¸°e¸¸°¸4e°J…¸¸õõJLLõXõ©©¸°­TTTTTTT½üüü¶töBBB‰B‰‰BB‰B‰‰‰‰‰ Âü‹ö‹ü‹‹‹‹T ‰ ‰ ¿ ¿  T ÂÂÂTÂTTÂTÂTTTT½T½½TÓtÏ(Ÿ–±eIޏ‹—(¥W¤ÏPˆ‹†‹‹†††‹%%%†%%%%†††•Xzz®Uó‘Ž•±X¥›ˆ‘ÄÚ—O<††%††%%‹‹‹\]›•%T½—¥-m4 ¢.Wk. o-¤ %T T TT T TTŸIóÆäLI††iK—T—   ƒU®U¢¢¢šHz {±ÒK¶eoÄĬ…¥Ä?ö?)Oi¦Ä¨šÆò–¬ÆÓõRèÝÚ£»óæýë±ó¨°EO¸;JLúûÓJ¬æ¤Hk»‚UäL¤Nš M   óæN»NJ—†›WkU®!L®Ä†•t••oe t]zV]!z! E%—. 4\meo{E£ !z4¬oÏ me¸ë0ûEiò'\E'%èi%¬[¬¬[[¬[ÝÝ[oo¬oeÝe°eÝoÝooÝõ­ °Ýee°e;°J;[[;°°;[[[Wä[°¸¸…J¸4°°°44 °°°¸…°°°J©…¸õLõ­©¸¸°;JÈTüTü½ –B‰BBBBBB‰‰‰‰B‰‰‰‰‰‰ Ÿ‹ŸŸüüü‹ööðüT ‰‰ ‰  Â TTTT TÂTÂÂÂTTTT½•;[ä°\ŸŸ–£È0±±±%–t©•v†‹‹‹%†%%%††††i]!êz®êÄŽ—ˆK;t;ꛕI<•››I–†ˆˆ–††ˆˆˆˆˆˆ–>ŽKKRKK8KŽ—•–O0ϨU»HHJ)—I?—(—Ž­°>ˆ––OOOO–E%E‹%è†%%\›—†E V -K Ýze!+U¨Ž]ݦ½T ÂT ÂTT ¿¿ ¿½žó¤Ï°Ž†‹†ˆ?—Ž!U ¢UUUU®»Nݸ ÝhI¥0E– KÞÞ?i?õð‹ŸÓ¬»¬èJÆÓ…¦–äP­/Ïõ ßð–ëO‹ŸèèßèEèðû¨ÆÆ¤¤¨¨¨æ;¤š¢   M!Jšk¨æ£E•.®®êyÄ®{†ˆ0¢oKÄ.o !4-0Vo! .h%%% E%kh›04eo (!.0¦tW¶'\EEiß(OEhûE\%ð%¬Ï¬¬[¬¬[[ÝÝÝÝÝoeeeeeoÝݬeooe°©4Ý44°e°;J°;Ý[;;[[;¬Ï¬¬;J¸¸¸°°44¸¸e¸©X……JJ…¸J………L©¸°°¥TTTTT½TÞ E‰BB‰B‰BB‰BB‰‰B‰‰ ‰ ŸŸŸ½ÂÂT‹ððö½ ‰ ‰ ‰ ‰ TT TÂTTTÂT½Â½LÏotûTÈ-–O%•e›%›oWÝ—‹‹vvv†‹†%%%†%%•Pä!!ä{Ž•••Žyy›…XÄŽ•ŽX›•†OO†ˆO<ˆˆˆˆˆ<•I?RK›KKKI|–|Ú!»®®š®KOO±Ä••IRO•±PI•£°Ú>†%ˆ(Ò(%%KI ›V-'ޤ¤¬k4i TT½ T½T TTTET¿T½‹ŽÏ ¨—†••††›®UU ¡¡ .U®JÏ Uzt]-k Eh;¥£!MùÆûè½½Ÿ¤õEß»…õûÓõúXšä©Ú(‘LëÓ±V \ÞÓò|ò)Ϥ‚W¤H¨H‚®uuáuuU¨¢k»‘†P¢‚®U0?yz›–{®Uzz!e]•hŽm/t 0--›e%E- Ei›-.U/K 4!oÏÏ0!‚¨©et 'h±i%òú\EE%EEi%iÏÏÏÏÏ[¬¬[ÝÝÝoÝÝÝÝÝoÝooeÝooee44°4°e°;°Ý[;;°[ÝÝ[¬ÆýNW;J…©°e°4°°°°°¸©¥õ¸JJ¸°JJJ¸©©¸J°;J]TT½TT½TT-üBB‰‰‰‰‰‰BB‰‰B‰‰‰ öö½ ‰‰‰‰‰ üEOiè ‰ ‰  ÂÂÂÂÂT ÂTÂTTT½TTTTE{oÝt¥†(¸m%iÈ–E%ŽÝÏW¤o]s‹‹‹v‹%††%%%††I0!!ê!o›•–•I—ŽŽŽ›‘›Ú;›Ä0•††ˆˆˆ––ˆˆˆˆ–<•I?R››K?—OOKÚ!®®U¢»°ŽO•(—)L;XKOˆKXK£Ä¸ÈÚ¦Ž%ˆž£È­±††%†i•ŽI½V› h››eÄo!oe-i%I]TTT ½T  ˆ¿†›…††žWN®XI††ˆ–v†ˆ]®U¢ ¡¡¡ /UU ko.-UmiX‚[¤/¢¢ÆÚžëçߟ–…úŸ‹û hò–'祑¬ÆOÈHߥMùÝûú\–òÞh¸Wýææ¤ýN®Ý°¤šM  ¢UN¤JƒUW—%ÄU®;….®ey›Ž).UU®U t]%%0.››0]•(.›%E% ›%(e kei-o¬e\Vz.e44{0m0 'iOh-Vi(E%‹E(((hûääÏWäϬ[[[ÝÝÝoÝÝooÝÝÝe°eoÝeoe°e4°°¸ °°;ÝݬÝ;Ý[¬¬Ý¤ýùýÆÏ°°°°°°°°4¸°¸¸¸…J¸…¸¸JJ°J…°°¸;JúTTTTTTTTTB ‰ ‰‰B‰B‰‰ T½ü½ ‰‰‰‰‰‰ ßOOE  T ÂÂT T½TTTT ÂTŸ½T½TTŸ±äÝݬ\?4%%Ÿ%K\ˆ†i©!oW{•‹‹‹vvv‹%%%%††%({ä¨ä4›ˆˆˆ–•—••›‘›ŽÄJÚ›ÚXŽ•<ˆ†•ˆˆˆˆˆˆ–•Iž››››??—O–Ž…. NUN¨)Kޱ——-Jy¥›•ˆ–›O–ަI<?y\û±—ˆ•V —I–%%i›{-ŽE›hh›]-¸e0-o¤-i›4 TÂTTTTTTT%½¿½hƨ‹KÆU»X›ž•†••ˆ{¢¢¢¢¢ ¢¢//®.¨t4m-Vi] ¥ˆÈHÏL󯍅¶[æÆyö½Þ|ü–)ú­ROÓiÞ£\¤ð¶¶+Mƒæ¨J‘X¤‚äý@»šMM¢ä°»¢M ¢¢M»®kšP†—ä®®žŽ!U®! 4t kUUk.o]•%%Vmh%E. EEEE--\ee! hE]4Ýe{(›Wzk4¸ Ý£± {È'(('iç\i\Þ'VVääÏä¤[¬[[ÝÝÝoÝooÝÝÝoÝÝe°°eÝee°°Ý4¸¸©©4¸¸;ݰݬݰ¬¬ÝÝWHký.ÆWݰ°°J°°J°¸°JJ°¸JJ…¸°°;;JüT½½T½üü(‰õõ4{Ó Âü‰ ü½üüÂü½ ‰‰‰‰‰‰‰‰ÂŸè–è TT ½üTT½Ÿ½TŸ½T‹ŸüTŸ¬o¬]E%4%ˆVV›\—•i{ÏÏäϸIO‹‹%%†%%%%%‘¬Æ!t!o iˆˆ†ˆO•IŽŽKI‘;L›‘…Py›—†ˆˆˆˆˆˆˆ•—ž›±±››K?I••žJ.®®®.[Xž—Ž›Xž<ˆ•ÚLXOO—P±O•OOiˆO›££ÒE†E—‘ÈÄ£¦ hK-†E‹h—\›--{£ {E%m  TT T ÂT¿T T‹Kó;ž›æƒUL—†•†T•Ä®® t.{]  Uotk¤-K]†—.¥¢UX¸Nƒ¨¤ïšýXè½T½öEPW¥æ¥–¦±Lýûó¤EPW–±ùƒïMgš‚ÝHý;Æ» ƒî   ¤Mu¡¡¡}Ñ MšƒUKOLæ®e†•t®U®z.zkk/®.!t0(i%h-\Ž›(%E]k-E—(ii{i›{ozEK Äoe- t» mm-V]{]ûhhhû V(%è(\i\ÞûúWääääÏÏ[[ÝÝoÝݬoÝÝeeeeee4eÝeeÝee¸© © ©¸eÝÝÝeÝݬݰ°¬!‚k/k.¬;;°¸;°J°°J°J°JJJJ¸…;[[¸ëüüŸ½Tüü-‹zW{ühoö©ßT ‰‰‰‰‰‰‰‰‰‰‰‰Âöü½ ½ ½Ÿ‹ŸŸTŸ‹èÒ!4oo©(½EÚŽŸŸ›­Žž‹•¬¤ät%–‹‹‹‹‹‹vv†%†%%EEŽÝÆÏW¥•ˆ††ˆ†ˆ••ŽŽ••›››ÚyŽKK)0›†ˆˆˆˆˆ<•—?››››))›KŽ|i?;»ƒ®UUä‘—OI›Ä±OOˆ—y¦—•K?LÄ——•O<ˆ†%•OEˆ(–E––i—h›Ž(†††‹Ÿ‹?iO—¶]m4]Ž-—%¿ TTTTÂT TTT‘ ¨¶¦¨ !Äyž•ˆ†††ˆ—IŽmŽ(mˆŽ¡U{o–iI%—]iÝ}M¥…»®®»U®ÆÄŸŸ‹è‹ß;ƱÆXO­¥©ù±ÓòçE±/MšššMšÝ¬‚䯻‚»Mu¡Uê }      M¢¢»óžä!…•†iJU!››4e!zooo]iEŽVh››iE ]E]›i o %%]eo —i\oeoe0ëÓ¶](O(i%i(i(ÞWäÏÏä¬[[ÝÝÝÝeeeeee°Ýݰ44eoÝe4¸ ¸¸©¸°°Ý;ÝÝÝÝÝoÝoo¬o¬Æ k‚ä¤HW°J°°J°J;°J¸…¸JÝ;¬¬¸'ðüü½TððiEO(içß± šzhE ‰‰‰‰‰‰ ‰‰Â ½TT ½‹TT‹½T½Ÿ‹ö‹‹Ÿ‹‹%èÓ.täÝKŸŸÈh%K—‹i0Ï•–‹‹v%††%%%†%†I4WÈ—%%†ˆˆ†ˆ––•Ž—OOˆŽPKŽK••›)•›?Ž‘¥IIXyŽI––•››–O—I—•>O†ˆˆˆ£È¶ž•ˆE—(†E†EEE†E††%%%EE%†EE–z[£•ŽÄP)IK]› t]•†ˆ†‹ º½½½½T†)U®X†•ooIˆ•Ž{!êK‘z¢óK¶†—P-<†%y¶Ž—<•ŽKKÚy{;¡¡UUUlzæk»!£†ŸEèEßèò hRÚûÓPzæ¤Mšú°ýÞõgšïMùïLððP‚‚Ï‚g®Æ¤¸JMÑ  ¡®z¢¡U)]…{t]††•…e{0-0hŽ4!z ›Žh›\Ž-mmmh ]{ ](%%I!eK†—]0oeoo44{i'©0¶ 0 ûç(iiˆˆE%iEß((¬WWää¬ÏÏ[ÝÝee ¸¸¸ °444°°4¸444ee4¸ © ¸©©© °ee°;°eÝÝÝÝÝÝݬoÝÝÝÏÏW[J°J°J;;;JLõ……Ý;Ýó[Lû(ŸTTüüü‹ü‹ë]¦ ëòöEò–üöõi ‰ ‰ ‰‰‰  T½öüTTü‹‹½‹Ÿ%‹Ÿ‹‹%–ßèiè? ¬¸;ÝÏ\ŸŸ‹‹%‹–†‹‹‹‹††%%%%%%%†%ˆ––ˆˆ††††ˆˆ†ˆˆˆˆ–OOO–†—yPÄ›K›ÄJ›—O•KK›P››)››K>I)¨‡®¨¨ltÚO•—]Ä›IÚyŽPK>O–ˆKÄ?ˆO•O—\i–ˆ†††–\ ¦]›(OII'h•i•\i(iEi—•EŽ—®UW–—­0O%i]0o!K%Ei%ˆi‹ºŸ‹Ÿ‹½†•ÄU¢[?ŽJ¶–•)]ÚÄoŽŽo®äÚ›Ž—]0›È{¶ .o¨®‚!䤃  MN¢U 䨃 yOŸ‹èèòRÓÓòO–VX릻»¦Wš¸¤@ƒƒïï@’XC­ùš¤Æ@Ƭ¸Hš UšUŽN tŽPKˆ†ˆi—0Ä{e  44›Ž !oe40Ž\\-44e%%{m 0›i-o0KŽIŽŽme {0h±\h0-{m--]]V'çiiiO(ç(¬Ïääää[ÏϬ¬oe¸ ¸ ©¸°¸44°©© ¸¸e¸4¸ ©¸¸¸ °°e°ݰÝÝee¬¬ÝÝÝݬ¬ÝÝ;äÆÕWݰ°°JJ°Ý;¬L)y¸°¬;[¬¬¸¶ü½½½½Ÿüüü‹E\VÞüüö–OßðüŸü🠉 ‰ ‰ ‰ ‰‰ ÂTŸü‹ŸT½T½‹ŸTT½‹Ÿ%–öˆ‘¬4KV 4 ‹ŸŸ‹‹%‹‹‹††%%††††††††%†ˆˆè††ˆ†ˆ†ˆˆ–iˆiˆˆˆ–ˆ•›oX›))›ÄJ;yŽK›››))8&>›J®l!l®êy|–IK0Äž•;ÈyžIIO•O>K¶Ži–O—I•<††ˆˆEŽ ) I–ˆ\h'ŽIi\I•••\I(i(I••¨Uó–•e¥†-e!!ŽE(E<ˆ‹‹‹‹†Ä[®U!LLäÄy))¶ÄÄ•<…ä;zó䮨ꚢ¢¢¢¢¢¢¢  M¢U U u¢¢¢¢¢ä;äN®È–ˆŸ½èçÝ;‹ióR‹OÆ‚…æN»M@@@M@@J?>ÄHN…‚šš®Æ‚‚UššUU.›ÄU®)–¶äÄ•††ˆŽ‘Ä m{4t!o›››Ž4!]h]››m!4Eh00 4m-hIemÄ4oem400-- h]¦{{£- ¥- û'((òiOçiiçóäääϬÏϬ[¬Ýݰ°°¸ m ­ ¸e¸õ ¸©m © mõ ¸ ©¸°°°°ÝÝÝݰ©©ÝoÝÝݬoÝe[;WÕùÆJ¸JJJJ;ÝLëRJJ;ÝÝó[J-\öTüüüüüüüi\'ÞOð‹ü‹ðißèö½öõöÂB‰Â‰‰Â ‰‰ TŸüTT½ÂTTŸ‹ÂT½üö%ˆ±t°iT½½ŸO!g.IŸ%E%%i‹‹%†%%%%††%††è†%†††ˆˆˆˆˆˆ†ˆˆˆˆˆ–••›L;{ŽIK);‘›››å)KI—K…¨‡.¨!;••–ŽÚoê;]››y›I•I•——O•ÚÚ•—•ˆ†ˆ††EOOŽKŽOIK—h•iiŽ••i•—IŽi•Ž\i!®4†OÝy††-4.zކ—i‹¿O•†½‹%ˆe;UUœt!¨X‘Ĩ!!!®NyŽÄX®¢®!æz®MM  ¢UUUU¢¢UUš¢áÉ¡¢MM¢šæäUN¬¥†ŸŸŸ–­æ‚­½çÏò–䂯ùNNƒ@@MM@@M@Õ¤©ÆUU‚Æ®U¤»¢ Ñ¡®ê¢äŽŽÄ¨®e‘†ŽPÄ Ä0m004t. e]]ee44ee4o!o0-Ž›0 ]]ŽI 4e o04oe m{¶hKVh¥-h- 'ëëÓ'hV\(\\\ò\O\(¬¬ä¬¬¬¬¬ÝÝÝoÝee°4¸m© {¸¸¸õõ ¸ m©©õõ ©4°e°44Ýݰõ¥mݰ¬¬Ý°°;;ÆÕý¤J…¸J…°°JL;J…¥X°¸[Ý;[¬­èTüüüT½üüüöðEèðŸü‹‹ði(ðö‹ö­ÆÝ( ‰‰‰‰‰ ‰ ¿   T TTTTTTTT TTÂT TŸTðÞWh(!¢ žiŽžI>E—ih›(iE••%‹v†‹%%%%††††††††††ˆˆˆ†ˆˆˆ†ˆ–ˆˆˆ†ˆ<Ž›ÄP›—ŽPóÄ)›››››?I?X!®®..óÚ•ˆ—ŽŽIŽX4PŽ?O•OOKX¦¶‘JÄŽ?\>O<ˆ†ˆ†Eˆ%Oˆ†%%•IhhŽŽ(††I•(†ˆi—•—\•(\—i†;°I%<›•%E• oUkmˆTˆ—–†—Ii‹†ŽX;U®oêz—†›»»šU¢’!J!?Ž¢z;êz.š¢+ ¢ U®UUUU®¨® ÉuM¢¢¢¢¢ææ®WNšU¬–‹ŸžÆW-Ÿ½–çŸÂèÆ/»š®šgMïM@M@Æõ[¨ÆÆtóz¨Æ‚Uš‚»U¢  êezL ®U¨¨®®›yÄ{…]›››e!04mmmm›Ž]]›-›\›Ž››—I›](†h4m{ m4 -hiÓ0-0VÓ\(\'Óò(O\''\'\\\(ó¬Ï䬬¬[[ÝÝÝe4¸ © õõ ¸¸ °°¸ ©õõõõõ °e°°Ýݸ©©¸¸°eݬÝooÝÝݬ¤¤;°¸J°°°°¸;J°°…¬[¬óݸyiüŸüüü½üüüüöö‹üŸŸüßßðð½ü'o.eü ‰T ‰‰‰ ‰‰    Â ÂTÂÂTTÂTTTüŸ½T¶0¦±'ߟ½ŸT Ý­i½ %›hŽ-O-iIŽ%›› ›(—Ž–‹†%%†%†%%ˆˆ†Eˆ†††ˆ†††ˆˆˆˆ†<ˆ†ˆ†ˆˆˆˆŽÚJJ)Ž›)JJ‘›)yy8K)Jê®®¢UêÚ—<ŽyÄÚ›•ŽÚ•—•O–O—È¥JL¦I–i••ŽŽ>EˆEE%ˆˆi%†%†(—ŽKŽŽ—iˆIIO†ˆI—ŽI•†ˆ•Ž——Ä—††%†%h/g/ Ž(†ˆ—••›ÈI%††—yNUä[®U¶Ž®UUU¢¢N¨[Ä4¨¢æt¨U¢U¢¢+¢¢¢¢®zê!êzu=Ñ¢š¢U¢¢z!®¨»UU[•ˆKȤó;)‹Tèè‹߯ƒNU®4©¬zš.šM!Óò©óÏWóWƒ®ÆUš¢šU®UU®.®®[䢢 ®®®4LÄÚÄ…0›ŽŽeee44 0›Ž]› ›\i]Ž Ž— ››0]IK]{4m] { mŽŽ-£em¶ ¦hhi\(iiòò(\\V\¬¬ÏϬÏ[Ï[ÝÝÝÝe°4¸¸ ¸¸¸e©¸4¸4°4¸©©mm©õ©© ©4°eeÝݰ°ÝݬϬ¬o¬¬¬Ý¬ÏÏϬ¬Ý;°;[ä¬Ïݰ[[óóó[¬Ï[Ý üüööööüüü‹öö‹üööðððüüüüöðß(èŸöö‹ß ðVÂÂB ‰ T ÂÂÂTÂTTÂÂTöûÝ ðhõðŸööŸ½½‹‹iȈ–-ˆ'›—›{\ VŽ•››mÈi%%%†%%†%膆†††Eˆ–††E††ˆˆˆ†ˆˆˆˆˆ††––ˆˆˆ–ˆ–†—Ž›‘›K›‘o0›)))Ž›;®®®‡UêJ8|>›yOŽ-›KŽ–†ˆOˆˆ•È‘>•—OOO†–ƨ°O†E†%†%E%†–—ŽŽ—••iˆ——ˆ††ˆ—I•ˆE—•——J0ŽŽI——•i zkUU0]ŽŽ› N® ¢}U›ŽÚ;.®¨[z®®êê U/¢UU¨!U!êU¨z»¢ƒš¢¢¢¢¢ ¢®ê¨!¤  MMš¢ [®Uš»U—ˆKH![;ÝWXE%–ÒÓEÒ‚¢// \%(h\-g!'\ŽyeJX¤ »Æ®¨UƒU®®®®¢’¢!¨’ƒU®ó;JoJ{ÄX]-mo 4e {00›i•››{-Ž›K]›]0-]{ ŽiIe440004e-mm m±£e¥]V 0{±û¦'Oi((iOiii('h(ÏϬ¬ÏÏϬ¬[Ýoee°¸4¸°ee4¸4°4e4¸¸4¸ õmm¸ ©4eÝÝÝ;ÝÝÝÝÝ;Ϥ¤Æz¤¬ݬW!WÝ[¬ä¨Æ¤¤¬[JÝW¨‚‚.[;[¤Æ‚äääóó¤¤ä-öðEEðöüði(iEððiiiiEðü‹‹‹üü–OEð‹‹üöTðü ü T T TTTTTTTTTT TT½\.M¥úÈŸü½üTT½½†£E% †Ž'•{-{ŽˆKiE›Ž{]K›E†((i†%%%†%%%%%%%†ˆˆˆ†ˆOOO>>••O–ˆˆˆ†ˆ†ˆ–†ˆ––ˆˆ<ˆ•–>K›››Ú›Pó¨;›Ž)¬®.l.¨;‘åyKŽŽÄHz¬›K£¥…ž›!J]!®oŽˆ›z›%(t®® †OÄ{•–Ä®¡¢U  =ÑÈ›ŽE•-z®! ®KÄ. }u  UêUUê¨æ.¢¨®UN¨J{;¨UUUU¢®æÄJ.U®U¢Uæ®UUUU¢U®!êêz»}N ®U¢¢UUNe¨š¢šU䎗-ÝÈŽ—ÈóÄŽžP-I›¤»UN¨•†Ÿ¥­I•ÒI\]°ÝÄ;¤äÆ.;®z®UUU¢ ¢.UUU.tó;;ÄÄ…ÄÄmotooe ŽK›{o400{›Ž-0044{›—hŽŽ044 !4 ]]ttÏ-40¦¦]¦-00{-'\\(iii\—\òooo¬ooݬÝ4o°eeeÝÝÝe°e¸¸4¸©44¸¸©¸°4¸¸eeeÝÝݬ¬‚/kýù ƬÝW»k.¬¬¬z/ýz¨ý.z kz‚k/Æz»ýz䯤W¤¤z¤°iEi\ièðiißðE\iEö‹öüü‹öèOòòðüööü'zü ‰Â   ½ ½ TT TT üTTÂi/ OŸmÞ‹½üŸŸ%h ކ†ŽE— žˆ%–%–†iIiOOˆ–i•——•iˆ††%††EiIIIŽ—|(–O•—ˆ•——IŽKŽIO––<ˆˆ–†–†ˆ–ˆˆ–ˆ–•—Ž››)››››yLÄ‘J!êêzêó›ŽK›•<•†ˆOI›yÚy)0Úy›•–OŽI‘yކ†?KžKÚ¶XÏæ‚¤ƒšƒM¢UU¢¢UUUU¨!óœt {04eoot!o.t.4{0 4-{m000Ä4m{0]0Ži—4otem 4t{0 0VhV]{0õ¶ú] úÓç(i—\OioÝo¬o¬¬ÝÝo4¬eeÝeeee°e°°¸ 4¸¸¸ ¸°°¸¸eÝÝÝÝe°eeÏ.ý/ ¤¬Ï!ù/ý¤¬oÆ/zoý !.ký.k¨k.;¤Æ¤ääÆHÏhöðò\–ðüð(ÞEöðöçiðö‹ü‹‹‹‹‹ü(\ðöüüüööö04 BTT ‰T TT  ÂÂT½‹ ½üßû>Ÿüüç èŸTŸŸŸ%‹%%†%†%%–¦(i–iiˆE–(—II•iˆEi–ˆi•IŽŽ—IIOˆ†–O–––IžIKKž•––Oˆ†ˆˆ–ˆ–ˆˆˆˆˆ•>Ž›)››››››Ž›X[têêê¨óÄ•ˆŽyŽO•ˆOˆˆˆ•Ž›ŽIž]{PÈÄÄX›•†Eˆ–?Ò•†—¬.¨¤I.¶—­Wt›®›†††eU0%ˆeêtƆ4†•®»ƒ¢No¢  ƒ›†iž——•{z. ®.ó4;t!®¢ ®ótœä®®y® U®®®J껢šU¢Uzê!êUU  ¢U®®®®UU¢Uê[óæNM¢®®®®U¢Uš¢¢U»¢NÚL Ú…;eLLJ©P](OꢢšNÄP?†>XPyyyRŽIޱK]o®®HU𢢍zUUU¢ ®¨ó;o4JÄÚ…;ee4o!.zt ooto{{ ]]000{m 40 {››0eoz4 {mom{{È¥ ú­¥¦--]VëÓ\\òii('i(EoÝo¬ÏooooÝoÝoeÝÝÝeeeÝe°¸ ¸¸© °eee°eeÝÝo¬¬e°o¨ùù/ý¤o!ýkzo¬z¤Ý¬ý z. ¬Ï¤zo¬Æ»Æt¬ÆÆ¤äÆzzW E‹öðiö(\Eööðöüöi\Þßö‹üö‹üüðððOOEöðüüööü   B½  TT TÂTT½TÂTÂTTTŸ£‹½üŸ½‹ŸŸŸŸŸ‹‹‹%EV(––††EEˆ(——(i••(i–•——(•–ˆO<––ˆOˆOi–O(——II•••OO†•††ˆ†ˆ–<•I?K›‘››)›8›•ŽJ.¨¨®UU¨JÚ)PÚŽ<–ˆO—L¤z¬ÒŽó)ˆ•¤¤Ž†IeK†•4†Ä{—z.0]®U t¡== U¡} Ç¨•›ó¨!ó4êæU®®¨óW!z®®¢ ¢®z.®   ƒUUU®…U𢻮êää!U®®U¢¢UNNUUU¢UêL4êU UU¢¢»»»UU®»»UšU®®[[ótêäêo›0UM ¢zP‘!¨!z æ¨;›ÝUƒ¢M¤)Ĥ‚J)]0ÄϨ®U UUL…¨L;o {ÄL Ä eWê..ó4ee4tt./k®.tttem0-mtzzz4h 0Žh›››4'h-]{{£¶­hç•((i¬ÏÏÏoo¬oÝooÝooÝeeÝeÝe4¸4°°e°eoÝÝÝÝÝÝ;;ÝÝoäÆý»ý ¤Ïz Ƥý.z/‚o¬...zư¸e!.¤¤¤¬oWƨHhE(EE\\\(E(\'(ßö‹ö¥z4iö¸Ïöü e¸Eiõ.(è¸;4ÞtȬV»o iW¸¸0Ó.©Ò‹ŸO¸½Ÿü‹‹‹Ÿ‹‹‹‹‹EE–\ÓÒÞO†EèE߈ˆEˆE†ˆˆˆˆEˆ–iOŽû‘¤¤oyŽ|––O—KÚ¬¨WXŽe›y; X›Ž—Ž››)›‘›››ŽKy;zêê¨êJ›•爈I––O—Eˆˆ•ˆ†•I•••†–IŽˆ†ŽŽ›yU¢U®®UUU !IK®!ê!¨U¢Uêt!ê.®U¢UU ¢®.®zU¡ ¡ ¢¢eêU¢¢® !!!ê ¨®ƒ¢¢®®®®UU¢®!JJz¢®!®®UU®®®»® »¢¢ƒ®U‚!¤Æ !æä]JU»UU‚¨U®Hæ® ».¤¤®N»¢.Ĥ»UƸÄL[®¢M‚ Nz.®XPP‘‘PXÚ)ÚÄzU¢U.t!tt.kk.!ooooooe{ 4oot. ® z-((—(hh ozz4KI¶]{©4--{eÝ{Vúë'\ò(Oi–tÏto¬¬oÝo¬Ýeo°eÝÝeÝe4¸4°eÝoee¬oÝÝeÝoÝÝÏt¨ z¤¬!z¬ÝWƤWW.‚ý‚W°¸eW.‚!Ý õ°ÆWó[;;ݬ¤¬Ei((–EööEi(iE%EO(((è‹‹öèð‹¥ ©Mäòzziöëù\ò.È.(z(±!OðÆ-èú4ƣ谖‹VzE%–Ÿ¦Æh½‹Ÿü¦ ½Ÿü‹‹‹‹Ÿ‹‹‹‹‹%‹%–i>Ž?IOEE߈EEˆEEEˆ<LJ››Ä¤‚[K±KÝ® ÆóÄ]¦?)ä®®Ú››››‘›å››KK›ezêꨨ󛈆ˆ†††ˆO†OˆˆO–OOˆ††ˆ–––i<––†ˆˆOO–ˆˆ%†ˆˆˆˆ†è††ˆ–ˆˆè†††<††ˆ†††††i—›;z®®®!..¢¢[•ž®®.®®®¢¢U; oê.l®¢U®®U ¡  U¢ á¡¢¢ózU¢¢¢¢š®®zê!ꨮ®êWääz®UUU®óoU’ó!®¢ƒšUUUšUNUU¢šUUUUšš»®®zz®®»š¢M¢MU¨¨Æ¨ ®NU‚¨®»®‚¢MM ¢»?ˆi—LæUššUUNo¬tótoeee…JU¢U®4et!zkgk.oe m{ t  em U!o(•IŽhŽ›et -- VVhÈ{m4 VV'\òi(ÏÏϬ¬oÝee¬Ý°ee°°eÝÝe¸°Ýݰ¸ ¸4°eeÝÝ;ÝÝÝoÝÝÝeݬ¬ݬϬÝe¬¬t¬Ý°© °ÏWW°­P…4;[;e;;ݬó¬©òðööö‹ððö%ðö‹‹ö­»ï4i¦ z-‹'ð(¨ú.(Þ¶ð±z–ü¤]£OiÏm%¶¬O%OŸTi¥¶ðüŸŸŸ‹Ÿ‹½‹üèˆiOŽ•iˆ†ˆˆˆˆˆˆˆEˆˆˆˆEEEˆ–iˆ—KKyû?Ò›…yX;‘…;ÚžŽ¥y‘ŽII?‘Py‘P›K››››KŽ›4Wêzê¨óyŽOˆ••†<•ˆ<ˆ?ÓIKŽÓÒÒž››¥Èy›?III—Ž)J‘ŽK››KKŽ0êlt.ê¨JŽ–†––††–Oˆˆ•ˆOˆOO–ˆˆ†ˆOˆiˆ–ˆ•ˆ–ˆˆˆˆˆˆˆˆˆˆˆè†è††ˆˆˆ%††ˆˆ%††%†††††††i•›0ót.¨êt®®UUtžÄ.®!eê®® êW.® .®U¢UUU®¢uá ¢U®®U ¡¢¢U¢¢¢UUUUU¢U®.®.®®UUN¨¨¨.œ!®®zz®æNU®®®»®š  U¢¡¡¢UU¢U®®šMU®šU®»®U  }Ñ®®¢».‚š Ñ+Mkš¢¢ÑᡚóÄKŽo®®»b ¡ƒ®têtêoÅe®.óeem t¢g!z4--4e{0kzm4 !.tot...oo0Ž m44{{¶h]ûh 4oo;0]-hhh'Ói–OÏÏtÝooÝeo°ee4ee°eeÝÝo°4e4 ©¸eݰ°°eݰ°ee°°Ý;Ýoo° ¸ ©©©¸°°°©­È­¸°¸°Ý°õ¥L©JJ…JJ°;[[Lü‹öö‹üö‹‹‹%¥ -릅–VÓi-©-–üŸò© çŸi¶£T£\Ei±È|¶±E†¥¶•‹Ÿ‹ö©°½‹‹‹Ÿ‹‹‹ˆOi–OOiOˆˆ††%%%†ˆEˆˆˆEˆ†ˆˆˆ–†ˆˆ<–†–Ož°‚‚ó±>ÒûÒ?ÒÓÓÞIÞÞÓÒÒÒ??K‘PÈ‘KIIII——Ž›Ä)ޛޗ—yt!êzJ›–†O–†ˆ–ˆˆ†––ˆˆOˆˆˆiˆiˆˆi––ˆiˆ–ˆˆˆˆˆˆˆ†ˆˆèˆˆˆˆˆèEEè%†††%†††††%††%†††ˆI›êtlUUU®o[®¶—IÄóoJWêzz¨®UUU®.UU¢¡¡ ®¨!®¢u¡¢ƒUUUUUU¢®¢UUUN¨z.®®U®®êU ¢®®®z!!¨®UšUUÑ=Mæ¡á¢¢U¢¢ MUUM¢®ƒ¢Ušuá  š‚»®æ‚ á’š ¡ƒ»¢M Ñ=É +šL•¶J-{zÉuU¨®!êzó ê..êt;eeeookk.oo.zztooo 4teeo..4{0tt!..U/ !m]tte4]£ ¶{44 e4m'±V'h''(–ii¬¬¬ooÝe¬°e 4°44eeÝe4¸°°°¸©4eÝe°°°°°°°°°e°©©°°eoÝ44°°¸4õõõõõ©¸4°¸©m­ÈÈõ©oÝm¥­­LLõĸ°Ý;£Eü‹üŸü‹‹‹%öÞEßööüðüTOȦEÂTTTT½ÂŸ½TŸ½T½Ÿ½ŸTTT½Ÿ¦ üüŸŸ‹‹†—iˆE†%†%E††††EˆE†Eˆèˆ†ˆ†ˆEOˆ•›Ž‘¨;‘ÓÒ?ÓIÒIIIÒIIÓ?????žžžR)¥¥‘KIIIŽŽŽL JŽ—–•–•)Jzêt)OOOˆ††–––†O–ˆˆOˆˆ––ˆˆˆ––ˆˆˆˆˆ–ˆˆˆˆˆˆ††ˆ†èˆCèCèE††%†è†%††%†††††††††††iŽ]ÄóP›Ž)zU®¨eÄÄK•††›ÄJJJoóê UU®¨ê..¢¢U ¡¢®êæU¢¡ ¢UUUUU®UUU®U¢®.¨¨ê¨U®Uzoæ¢UU¢¢®êꨂ®šU®¢}U ¡ U®®¨Uƒ} z¨ ¢U𢢠U‚¢ÑU ® ®¢¢UU¢uƒ¢¢¡¡á=++šÝIX»‚ á¢ƒU®zêêW;®®®®®óotoo  m!® zto!.kk®ze0{ etzU//zeo4t. te ¶¦ 0{mm;Ï{ VVûh\\(ßEo¬ϬoooÝoeeee444°°Ýe°°e°¸4°4°¸m¸°4°e°°e°°°4°°°©õ©¸°°ee¸¸ee° ¸¸õõõõL©°°°¸©©­È¥¥£Èõ°;e­¶P­L©ÄÄL¸4°Ý©ëŸööö‹üü‹Ÿ‹‹%ö‹%O\çi–Oßðèöèð‹ëëòð½ ½ ÂTT½TTTŸTTTŸ½‹½(yi½ŸŸŸŸŸç—(ˆèE†%–%%%%†E†%%%†EE††èˆ†ˆˆˆ?­±¦;Xž±KI|—ÓIÓ?ÓÒÓÒ??ÒÒÒÒÒÒ?ž'K)y¦›?ŽI•Iލė••ˆˆ•›Ló0—ˆˆˆˆOOˆˆˆi†ˆOˆˆOˆˆˆiˆi†ˆiˆ–ˆ–ˆˆˆˆˆˆ†ˆˆèˆˆ†èˆèˆC††èè†è††††%%†††††•›y…ó›IŽ›Ú L0›Žžž•i–—›{Jó;[;oótê ®®..!®®U¢¢¢  U!N®®¢¡¡MN®®U¢U®¨®®U®®¨ä¨®ƒUó!U®®U®®zêz.®UUU+=Ñ ¡®êä!z u ®®® MUU ¢  uuU®.ææ»M uááU®UMÑ áლƒæ¤  ¢=}UUUN®®ê.zW..U¢.ottz/k.o..zto.kk z!!oe4mm4ttz k.4 mm{m ozkom{¶]¦V-È4eot¥VVžVhVÞiEEEÝÏϬ¬¬ÝeÝe4°°°°°ee4¸¸© mõ¸°¸© 4°Ýݰ¸¸© mm õm©© ¸; © ­õLL©¸°¸°¸©õÈÈ¥££¥X©e©0ĸ¸…©©¸°JeJ£üö‹öüü‹üŸ‹‹‹‹Ÿ‹‹‹èÞçò––ßðüöðEö߬hŸ½T½TÂTÂTTT½½T½½½TŸ½Ÿi© –üŸŸ‹Ÿ‹Ÿ‹–—(E†%%†%%%%†%%%EˆˆE††ˆ†ˆ†ˆ†ˆO;…žžIIÒ>?žI—??IÞIÞ&ÓIIÓ?žÒÒ?žÒ?K±)±KžŽŽŽKŽ›ê.‘–ˆ†––ˆ•K—O–ˆˆˆOˆˆiˆˆˆOˆˆ––ˆ––ˆˆˆˆiˆˆ–†iˆˆ–ˆˆˆ††ˆ††ˆèC߈†ˆ†EEè†%††††%%†%††††††ˆŽ];ótÄÄ;yŽ•ˆ<Ž) Ú…ttWWooóóz®®® ¨l.UU¢®U ¡¢¨UUU®¢¡u¡ UUUN¨!¨®U.æ¨z!ꨨ!o® Uê®.®.!z®šUU¢¢}É==u/z z.®¢á ¢UÑ ¢¢MšMáÉÉuM®»‚æH/u==ág®»U+}MáᚢgšUšMM=¡¢¨.Uƒ®.¨®êW®@.óoez+/.tz!oooz zto.tooe Uztt4e m eoz®em--¦Vh0°Ýoe-VVÓV]V h(EEoϬoÏÝo°e°e°°ee°ݰ¸° ¸© °¸ ©©¸¸eee°4¸¸¸mõ©õõ ©© ©¸õ­õ­4°4 ©©õ¥È¥£-£0­°¤¸{­Äĸ°4 ¸J¸õ¦ßüü‹ö‹üö‹‹‹‹öü–òò\h(–ö‹üüöð––TT½TT ÂT½½TTŸ½½T½Ÿè¶o£û(ü‹‹Ÿ‹%–çOˆ%%††††E%%†E†EE†EE††††%†ˆIϰÒ\žIÞO\IIÞIÞIÞI&ÞIIIIÓÒÒÒÓIÓÒ?ÓÒ?û›‘±›)?)Ú›4ê;›I••ˆ<•†–††•–ˆ††–ˆ†ˆˆˆi–ˆˆ–ˆˆiˆOˆˆˆ–ˆiˆˆˆˆˆˆˆˆˆ†ˆˆèˆè†èE†ß†èèè†%è†%%†%††%††›Ú…ooœ!z®ê!J)›y]{{X4®U®!!tttótê .¨®¨zzUU®®U¢  U®®UUU ¡ ¢UU®¨êæN®ê!¨¨zo;®¢®!!lz¨ê¨UUšU¢¢¡É} ¡áƒ®UU¢MÉu   ¡Ñ+»U® á} ƒk ®N®‚ƒ}¢š»¢U»®MM}á+¢šUÑááM𮿮®.ê®zêU¢Utoo!.¢ !!..te4m44et!!e 4!kztt4 ez 4 z!4 {0{00mo!z4{0-¦hÓ] °0±Vh' ] V'Ò\òiEEeÝoo¬¬¬ÝÝÝݸ°°°Ýeee°ee°°°e4© ¸4¸© ¸4°¸¸°°°¸©¸¸©õõõ© m©õm¸¸ õ­­È{õ©©©L­0¥È¥¥¥¥¥{°Æ¤Ý­Ä 4°e44©©©¸¸ XüüüüüüŸ‹‹‹‹Ÿö‹öüEEiÓç(OðèèöÞoÓÂT üTT½TTT½TŸ½T½T½ŸŸŸŸTŸŸ(£eeö‹Ÿ‹‹‹Ÿ‹‹%–\Oè%%†%%%%%%E†E††EˆE†††ˆ†ˆ†ˆžWP>I>|I'Iç—IÓII\IIIÞIIÓÒÓÓ?ÒÒ??IÒÒŽK]0Ä{ÚP…t{Ú J ÚŽŽ—<ˆ†–OiˆˆiˆOˆˆˆ––ˆ–ˆˆˆˆˆ––ˆˆˆˆˆˆˆˆ†ˆEˆ††ˆCˆè†C߆膆%è†%%%%†%†%%%†•]Äó;eó®.!Ä› Ä{]]tUU !!!zoo!zzê!l..®¢UUUUU  Ç¡ ¢UUUU¢ uÇ¡¢Uæ!.U¨ê.UêJJæUt;;t!ꨨ®U ¢¢/Ñá M}É UM  b=u M¢ M®¢NM¡ššš+Hƨz¨‚šÆ‚Mu»ÆUMMá=@¢ƒ@M®M=}UUU®®®®®®.êê®UU.toet®+®!tz..4m{mmetez®!to ee!.ottz.e-]› {oo{mÈ]V''m{ VhhVÞ'hh\òi¬ÝoϬooee°¸eee°°°°© © °°4°e°4¸¸¸¸¸¸4¸¸© ¸©©©õ ©õ õõ­õõ©õ­õ­­õ ¸õ0£0¥ÈÈÈÈÈ­4!zWm e mm©©©©©0E‹üü‹‹‹‹ö‹%ö‹‹ö%èèiÞçßð‹ööð(ÝõŸ TTT½Ÿ½Ÿ½T½Ÿ½T½Ÿ¦¶E‹‹‹%–òiˆ%EEE††%EE†††E†ˆ†††E†ˆ†Eˆˆ–Kä£I—IÒ|ÞIÒÓIIÒÒ&ÞÞÞIÓÓIÓ??ÒÒÒŽ?ÒÒ?'RKKXÚP0y{JP;U¢U®!yÄÚŽ––ˆˆˆˆˆˆˆˆˆOˆˆˆˆˆˆ––ˆ<ˆˆ––ˆˆˆiˆˆˆˆˆˆ†ˆˆ†èèˆßè†è††%†è††††††%%%%†%%%%%†I0JoóJ….®lP—Ž]]ŽI›UkU®zz.  t!!!t¨¨®UUU¨¨U¢U¢}u}¢¢¢U®¢¢uu¡UƒU®®ê!®U tUMêê.z¨¨¨¢¢¢¢ áá ¢M  ¡áu + } U¢¢M  ¡¡šWäÆ¨æ‚šš»}@ ¨»+î}uMUššš¢U»+š»®®.U®®®U®®U®.tJ4oe4. U®®zozz.z4 4{m4otzz!e¬Ïot!Æt{ ­£--4¬oe4­¥ÈVV ±-hhhhžhÓëV±\iioݬooÝo¬°°°e°°¸°e4°ee4©©õ ¸4e°444°°°°4°¸¸© © mmõ©õõLõõõÈÈõõõ ¸°° È¥ÈX­0¥¥õƤmmmJe° mõL©Lõ¥Viüü‹ööŸ‹ö‹‹‹‹‹ö‹ü‹ð%öððöçiEðèè­.iTT½½TTTT½½Ÿ½ŸŸŸŸŸ‹ŸüûÝV‹‹Ÿ‹‹‹%ˆ–E†%E††%EE†††%††EEˆˆˆˆ†ˆ<††I)?ÞIÞÞ>ÒÓ>>ÒžIÓÓÒÓÒIIIÞI?žÒÒ????žž??Ž?žK››Kž›K?›PÄÚÚ…{›‘‘Ä›•ˆˆˆˆˆˆ––<ˆ––ˆOˆiˆ–––––ˆˆ–ˆˆˆˆˆˆˆˆˆˆˆˆˆˆC†ˆß††èè†%%%%†††%%%%%%†•-…óêto¨¨ Ž—•ii• eoz//z!.!!!ê!®®® z!¨®.®®¢¡¡’U®®U®¢¢¡¡u} ¢U®!¨®»®UUá®!䨮¨®®.UUU ¢Ñ ¢¢U¢š ¡¡Ñ  MMM  +U  M¢¢ÑÑ šù®»ùNzý/ššš»ý@ïï@ùšùùšššMšUUšƒ‚ U‡®¨®¨z¨.®.®!;ee t!ote 444o!eototom©eoe4­0£0{{00- {©{{{0]húçh\'Þ\çç\(ieeÝÝo¬¬oe°°°Ýee°°e°4¸°°e4©m©©©¸4¸©¸°e°°¸°¸ mm¸¸©©©õõ­õõ­{­­­õõL©¸¸°°©­È{ÈÈ­{P¥¥È¸!e©©mõmmõ­­õ©©õüüüöööüöö‹ö‹öü‹ö‹ö‹ööðööö‹èOçç–èEðð\‚¤ETT½½½½TŸü‹öŸŸ‹ööŸ%°úŸŸŸˆi–Eèˆ%E†i—•†%†††–†––E–•y—>žÒIÓÞIIÓ&IÓÓ?ÓÒÓÒÒÓIIÒÒ??ÒÒÒŽŽŽ?ŽŽŽ??žž?ž?žž?žžŽŽK‘ÚÚ‘KIÚ¨óKi–Oˆ–O††i–ˆˆiˆˆˆˆˆ––––––––<ˆˆˆˆˆˆˆˆ†††ˆß膆膆èè膆†††%%%%%†%%%†%†Ž…[têœ!¨¨Wêê KiˆEEEEEE(Ž].//kzz !t󨮮®ê®®¨®N®®z.®U¡¡¢¨®®UUUU¢¡}¡¢®z zU®¢M}¢‚!!¨!®UU¨æUƒ¢g¢ ê®U¢ ÑÑ¡M¢M  ¢¢U¢¢¢UU+MMššš»®¨ »k ùïïš ýùï/»Uƒ®»»¨æU®¨!z.ê®®.®.ê!oe4oe44oottoeetoot oo 0]V¦0­V{ÈÈÈ]V'VV'\h\''\\\(i(((¸eoooooÝÝo¬ÝÝe°°°¸°¸¸e44°¸4¸©mõ© ¸¸¸°°e°4¸¸4¸©©©¸°©©õõ©õõ­00õ­õõLõõ©¸°¸©­{­ÈÈ­­È{È­L¬We ©{{{{©LLòŸ‹öö‹öö‹ö‹‹ö‹öööðöððßò\ò–ßððð¦zTT½Ÿ½½ŸüüŸŸöEßEöŸŸöö%¦eV‹%%è%ˆiOiˆèEˆ¶®¤KiiˆEiiIŽII\ˆOOI‘X¬ÄûÞÒçI?ÒIÓÒIÓÓ??ÒÒÓÒÓÓÓ?ÓÓÓÒÒ?????žžž??ŽžŽ?žŽž?žžž?ŽK0y]K?X;›<–ˆˆ†ˆ•i–ˆ–ˆˆˆ–––––ˆ–<––ˆ––<–<<ˆ–ˆ†ˆˆˆˆˆˆˆßˆß†Cˆˆßˆ†††E†††%†%%%†ˆ‘[t!êtê¨o ›•iE†EˆEE††E(Žz .!!t4etzzz®®®®zêzl¨U ¡Uz¨¨êt®’¡¡M»®®®U¢UUMU¢U¢¢NN¢¢®!z»U¢U¨z¨UUM +     +¢¢¢»»UUšUUM’šNUšN ‚‚Õýæ¨æ¨ýùš®æÕ®ùUæÆ ®zzÆæ¨®U®.zêzê...®.!ê.ooeeeeottoteeoetoe{e4Ä0V\0õ -ëÓ ­{¥0-úhž\Vž'ú(\\(i(e¸Ý¬Ýo°ÝoÝݰ4©¸°°4m¸ee°¸ ©©¸¸¸ ©…4°°eݰ©°°4°mõ©¸©õõõ…©L©©©ÈPÈ­õ{­õõm¸¸¸©­¥ÈÈ­­­­È0ÈÈõe ©õ­0­{{{­©õõ0iööö‹ööööööööööööööööððèððOçÞ–èèèÓû(½ŸŸŸŸŸüè(\\–ð‹‹ŸöèèßE(£­\%%%è–>(—çò–ˆ–†ˆ\e £–%i(•Xz°-¬‘ަ¸H‚LK)ÓIÓIÓ'Ó?ÒÓÓI?ÓÒÓ?ÒÒÒÒÒÒÒÒÒ?žž?žžž?ž?žž?Ž?ŽŽž?žŽžŽž??K]0y‘KIXI–ˆ––ˆˆˆˆ–ˆ–––ˆˆˆ–ÒIÒÒÒÒIÒÒÒÒ????ÓÒÓ??Ò?Ž'ÒŽŽ?Žž?ŽŽ?Ž???ŽŽ?ž?Žžžh›ÚyP-IIyLŽ—iˆ––iEðE–(ç\OiˆiëÝú\žhçò–E%ˆ–E%ûWÄh•¶L¸!H¥\——\û‘X‘žI>I\IÞÞ\IÒIIÓÓIIÒIÓ?ÓÒÒ??ÒÒ?Ò??Ò??Ž?ŽŽ?žŽ?žŽŽž?žŽ?žžž?K›¶yŽ?ŽI…)ˆ–•–<ˆˆ–ˆ<––ˆˆ<–––––i–ÞIç|>ÞÞÓ&IIIÞÞÓÒÒÓÒ&Ó?ÒÓ?Ó???'ÒÒ??ÒÒÒÒ?Ž?ž?žž?žžžžžžžžž?žžžŽŽž))K››ŽŽ;Ž•ˆ†––––––––––––––––––––––––ˆˆˆßˆˆˆˆˆ†èè߈†èˆßˆ†ˆ†††††%††OyoóooózeJ Ä ;;oêó 0.. 4t0 4m4eee zz®..zäz¨z UU¢¢¢U¨ê.UU!梠 zäz»»¢¢¢ uᢻ¢¢¢U‚U®®® ®®®®æêæšM¢š¢MU®zó¢ÑÑ+U ‚®¨z¨Æ‚‚®æ¨¨Õ»U»‚¨.‚¨Æ¤HÆÆÏ󤯿 ÆÆz¤¤Æ¨z!zê¨êWê.ê;o!!otz.!t!toooe! m44 44e  m mÄȱ£-]0{00 V£- V ]hhÒ\(\((OEiiißße¬Ý°Ýoo44¸¸¸°©m©4e°44¸…©¸44 õ­õL©õõ¸°¸¸°©¸°¸44©©©õõ õõ© ©© ©õL¸©©õõ{È¥¥¥¥££¶¶¦±úVV±±£È¥0{©õ­]iööööüööööööðööö‹ööðð%%èðE%ðEiÞçið–EßEE\‚oiüü‹üŸüöðO(ö%èEˆ–OOòÞÞOE%%ˆy4——ŽK?OL‚ùš‚¶çòI\>I—I—••ç—\IÒÒ>—ÞÒÒ—ÞÞIÒI—&IÓI&IÓIÒÒÓÒÒÒÒÒÒ?Ó?ÒÒÒ?Ó?Òž'žž??ž??žŽžž?Ž?K????ž?KKK)±?ž)P¶•ˆO–––ˆ––––ˆ–––––ÞIÞI&ÞÒÓÞ>ÒIÞ>IÞIIÓIÓÒÒÓÒÓÒÒ?Ò???ÒÒŽ????'žÒÒÒŽŽ?????KžŽŽŽž?Žžž££›K—ÚzWÚIˆ––<–<––––<––ˆˆ–iˆˆˆ––ˆˆ†––ˆˆß†ˆ†ß߈ˆß††èˆ†Cˆè††E††††††O)Jóoo[ó ‘])y…Ä]0!. !Äo!›› ! .¨®UUU®®®®U¢UU¢¢¢UU¨.¢¢¢U®®U¢ u¡M¢U¢ƒ¢¢á }uu}¡Uš¢Uæ®UU®¨¨H‚®šUNzz!®¢¢¢ƒ ¢¢¢ƒ»U»‚N¨¤WÆÆWä¨HÆó‚¨ÆÆÆÆÆ¤¬Ý¬ÆÆ¤ÆÆ¤¤äÏW!!zꨜoê!z!ttt!oz!otte-›o4 0 0Ä V0]¦-0¥-VhhVûhhKh'Ž(\(\\\(iEEiii(ièii44e°;ݰ°4© ©©¸4 © ¸©©¸ m©õLõõõ­õõõ¸44õõ °4¸ 4°°4°¸ õõ©©õ4¸©¸¸ ©©L©¸¸4¸©{ÈÚ£¥£¶¶¶] ±ûhVVV±¶ ©{©õ­ O‹‹öö‹ü‹öö‹ü‹‹‹ööðöðöðð%ð%ð%%è%èèE–çOˆˆˆˆ(4ŸèE–òòiEð%%%EˆE†%%%††%%†IÏ‘¨U¬LK'û\I\—\——ÞIçç>——ç—Þ—ÞÞ>—Þ>IÞ\ÞÞIÞIÞIIÓ&IIÓ—IÞÞÞÞÞÞÓIÞI&ÒIIÓÒÒ?ÒÒÓ?ž??ÒÒ?Žž?????'Ž'žžžž??žž??KR))±›KKy[¤©—––––•ˆˆ†––ˆi–ˆ––––ˆˆˆˆˆˆˆˆˆ†ˆßˆˆ††ˆè†Eèˆèˆè†ˆ†ˆ††ˆ†%††•{e[o;Å4JJÄ0yXót…L4tz.® Æe0mm]I]{eeooo¨.®®®.z.®®U¢¢¢¢¢¢UUU¢U¢»UšUUš u ¡ UUUMá ¢¢ ¡ááM»U¨¨æ»š»z!z‚‚‚U ¤…X¬¢¢¢¢¢¢»N UUNU𻂤ä!©©¬¤;ä®®Ný椂¨¤Ý[äÏWWWW¤Wä䤨Æ[t[tótz.zz.!oootWttt-]Äo4e {m 0]{£V-0{£]¶--VVhÒ'Òh'\(ii(–iiiEEEiOiEEEEè °°¸Ýe4 ©m© ¸e4 õõõ©4°… L©õõ õõ¸4¸©õm©¸¸ õõõ©õõ4õõ¸¸4¸¸¸ m ¸4¸ ­­0¥££-]¶]]±úúú ±úV±±±±¶¥õ õõõõÞöööüüöüü‹öö‹öööðöö‹öð%è%%è%èß(\ò–i(ò|O°o(%i(ÞÓÞòèöö%%%%%†%%†(ÄÝä…?IÞ—•>—>—>———•>—ÞÞ—ç—ÞI—ÞÞIÞIÞ&IÞIIIIIÓIIIÓ>ÞÞIÞIIIII&ÓÓIÓ??ÒÒÒÒÓ?Ò?žÒ?Ó?Ž??ÒÒÒžÒ????'ÓÒ'?Ž?žžžKR›¦›I›ÏÆyOOˆˆˆ†–•–––––ˆiˆˆˆˆ–ˆˆˆˆˆˆ†ˆˆˆˆ†èˆˆ†ˆˆ†ˆèˆèˆˆ†ˆ%†ˆ†††<ŽLJ;;L4 00Úêz¤;ozzz.® .£›-00›—]m4zU .UUUU¢¢+ ¢¢ ¡¡  ¡¡¢UUƒUUN ®»šUUM¢‚ á  U á ¢U¢¢¢ ¢M ¢® U¢¢š®‚‚ƨU»¨!W‚šNN»ƒUN®z‚®®»š¨eJJÄÚ­Le¸¤¨UU®z‚‚!¬ÝÏWWóW¤¤Æ¨¤Æ‚¨oe;oo!z!!z!teoooeÚX0 44 eom04o ­­{-0{0{¶ Vh\\\\Vh\iiiO((i(i–EEEEEii߸ee°ee°¸©õ© °e¸m©õ­õ¸©õõõõm©© õõm © ©¸ ©­õõ©õL­­õõL©© ¸°°e¸ m õ¸e°õ{È¥--¶‘±¦) ±±Vúûû±±VV]--0õõÈÈ­{úßöü‹‹‹‹öö‹öö‹ö‹‹öööðöö‹ööð%%èE%%%%EOÞÞOò—'ûhò-¸iO(ç(i–%ööö‹%%%†%%†ˆ%†K¤ÄKO|•?>I\IÞIÞç•(ç———————>ÞÞ——ÞI>ÞI>IÞIÞÞIIIÞÞ\IÞÞ>IIÓ&ÞÓ&ÞIIÓÒIIÓ?Ó??ÒÒŽŽŽÒŽŽ?žÒ?Ò?Ò??ÒÓÒ????Ò?ŽŽž?Žû Xyy›ŽÚ…y¶£IiO•–†<–––ˆ–ˆˆ–––ˆ–ˆˆˆˆˆ†ˆˆˆ††ßˆèèßèèèè†èˆ††††E†%•›L;o;;4XP›ŽŽ-ez!!!!!W.®zo4t0m4! ¢Uzzzt!®®®¢¢ ¡uáuuáááu}¡  UšU»»šš¢U®U uu}¡ ¢¢¢¢UUU¢U¤‚UMUH‚æNššUU®»N ®‚‚ ®‚¨¤¨¨WÆæÏ­žI¦­­£]£Le[Ï!k z .¤¤W¤¨W. z¤‚tÝttz.tt!te…4;óe 0000{m m4o{- {{-]'''ž'I\(–O\Iòi((iEi%E%%è%EE¸e°e¸4°4©©¸©m ¸° m õ©L©õ{{õõõõ©õ© õ © õ ¸¸ õõ õ©L­­­õ©õ© mõ ¸e°¸ ©©©¸°¸LX¥££££]]]]¦ ¦ VúûV] VV¦]¦¶­õõ¥¥­¶(ðü‹ü‹‹‹‹ö‹öö‹‹ð%%ððè%%ðèE–\Ó(IhV›KÒ•I•(‹†%–èEèö‹öð%%%%%†E%†ŽÚPK—Ò\——>—\—••ò>ç—\—çÞ>ÞI——>IIÞÓ>ÞÞIIÞIIÓ>ÞÞI&IIIÞIÓII&IÞIIIIIÓÒÒÒÒÒŽŽ????ŽŽŽŽŽŽÓÒ?ÒÓÒÒÓÒÒÓÒžžž???K›Ú¦PÄ)?ÒŽXL›I<ˆˆ•–ii–ˆ<–ˆ–ˆˆˆˆˆˆˆˆˆˆˆˆ††ˆ††Cˆˆ††††††††%%††ˆ†%Žym;o;LXKIŽ-met! ® .! ‚‚.z¤o 0›hK›0 oe t4etttz!.®UU¢ ¡ ¡b¡¡ ÑM¢¢¢¢š¢UUƒ¢}¡Ñ¢UU¢¢M¢š®¨®¢¢¢¨[! U/»UšU‚¨z¤¤ÆÆ¤W¤¤ó¬ Ki\4 00{{ ¬t¨.Æo!ÆÏW¤..zz®»¨ÆzÆót!!toooootJÄÄ…Ä;J XÚ4o ]-{mÄ ¸m0 m 00 ± ›h\ŽŽ\—\\\•i–iii(EE%%è%èE%¸4¸°e°¸© m ¸õ©©m¸4¸©m õõõõ­­õ©©©õõ© © ¸4õ¸¸¸¸© ©õõ­{­õõõ©© ©…¸õ ©©4¸¸¸ ©È¥££££¶¶y£-±ú ±ú¦¶¶¦±ú± ]¥{­££{­ÈÓßü‹‹öööööö‹öö‹‹ööööööö%èèðèè%%ð%èèE%çÓ\hVVžIO•¦E‹ö‹‹ð%%%%%†%%%häL[›–O—|>ç\IÞ>—Þ>•————————IÞÞIÞÞ>ÞIÞÞIÞÞIIÞIIÞIÓIIIÞÞÞIIÓIÞIÞÞÞÞÒÒ?Ò?Ò??žžŽŽŽ??????Ž?Ò?Ò????ÒÒ??Ž?ž'ŽžûK‘¥X¥±ŽIû›)¸›–Oˆ–ˆˆii––ˆ–ˆˆ–ˆˆ†ˆˆ†ˆˆˆˆ†ˆˆ†††††††††††††††††††›X…o;;JJJ-0ÈÈz k/‚ m mmem{00›› ]m{ !emett!!.®®z®UƒNz¨Nƒ¢Ñ}uu}¡Ñ¢šU®¨z! áuu U¢M¢¢+ ¢UU¢ ¢®zæšU/@šUšU‚¤¤Æ¤¤ät¤![¶(ˆeÝee°eoot¤t¬¬ÝÏÏWz‚.zz .zz!W!!to!oe e4eeottttW;ÄPJÄXP{{meee-]m©mem¥ mÈ{-]Vh'hž'Ž\(((••i–EE(–iEè%%%EèE© ¸¸¸°¸©©õõ ©©©©¸4 mõ©©õ©©©©¸¸ õ© õ 4°°©…¸¸4¸4©Lõõ­õ©©©©© õ¸4õ©©­õ °°¸ Lõ¥¥£-£]V±]]±úú ±V¦‘]]±ú±úV£È­0È{¥iöü‹‹öööö‹‹üüööööööðð%èððEðèEEEèˆòÓžûû?>OO–ÄȆŸ‹‹‹%è%%%è%†††††–ž[KK?\II•—Þ———\ÞI\—>I>Þ>>ÞÞ—>Þ>IIÓ>IÞÞIIÞÞÓ>ÞIIIÓIÞÞIIIÓÒÓIÞIÞI?Ó??Ó?žžŽžŽŽ?ŽžžžžŽŽŽ?ÒÒÓ?ÓÒÒÓ?žÒžžžŽ?KžŽ±±¶­PKŽŽ›[®¨ ?••ˆ–<–ˆˆˆˆˆ–ˆˆˆˆˆ†–ˆ†††ˆ††ˆˆ†ˆˆˆˆ†ˆ††††%E†ˆ†%ŽÄe;;;Äeóz!Æ!oot. ..ztÏ0'›¶{eÝt!!otto4®o./UU/® ..U®.UUUztótt‚U¢MÑuáuu U®®!êU ¡u¡¡ ¢M¢   ¢¢¢  ¢»¢¢¢ššUU»¨¤Æ¤WWóϬ¬[ÚIˆ†E—¦{ee!WWtot4eW!!¨  .zzzzoo!0] 4otttó ÄÄÄÄ000Ä  {4m {m{-¶› V''Žhh•ii(ˆiiEiè%(ˆE%%%%%E©¸¸¸ © ¸ õm ¸¸© ©õ© ¸° °¸ ©©©¸°°4°¸ ¸¸¸© L­­­­õ© õÈ{© ©õõ ¸¸©©¸°°mõLmõÈ¥£-‘±±V± úû ¦¦]¦V]]¶È¥¥­õ­0±òðöö‹‹öööööööööö%EEèèEèèßèE(\KûÒ•O–––O–†‹%%ð%%è%%%%%èèEE%Eˆ—ä ¬)(I\——>Þ>I——çç>—ÞÞÞÞIIIIÞIÞÞÞ>IÞI>ÓIIIIIÞÓÒÓIÓIIÓ?Ó?ÒÞIIÞÓÓÒ?ÓÒ??ŽŽ?Žž?Žž??ž???Kžž??Ò????Ò??Ò?'žžž?Kžž‘P¦K›››?ޱ;N¨›—<ˆi–ˆˆ–––ˆ–ˆˆˆˆˆ<ˆˆˆˆ†ˆˆ††ˆ††††ˆ†ˆ†ˆˆ††††††Ž°[o[[;¨U/¢gk!oo!oŽŽh-4tÆztto 0]m0m®U¢¢¢++¡  ¢¢¢®® ®æ. U UUU Ñ  M®ê®¢¢M¢¢¡}¡ ¢¢¢ƒ¢ ¢ƒUU»»U»N®»»®‚Æ!¤;;¬¬äóóJ­›–ˆEEi(-¥¶¥ ¤¬etoo!»g/ zz¨W!Ï44 {---{m mtootJLÄÄL…;; 4oo4emÄÄ{Äe4­­£-Vh\\\Ž\(iE((–i((iii†–(Eˆ%%%%%%õ44¸ © m© ©© ©© õõõ©¸ © ¸¸¸… ¸¸¸¸¸¸ m©¸¸¸ ©õõõõõ­¦-õ …mõ©¸¸ ¸¸¸¸m©Lõ­È¥¥--) Vúú ‘VV±± ¦]----¶¶¶¶£È¥¥{È¥]\E‹‹‹ööö‹ööööööðö%EEèè%%%èEßèˆiçúhŽ•iii(Ž¥O%è%%%è%%è†%%%èèè†E%Eˆ††–Xeó‚±?>>>>ÞÞÞÞI>Þç—>ÞÞIIIIÓÓÞÓÞIIIÞÞÞÞÞIIÓ&IÞÞÓIÓÒÓÞÒÓ?ž?ÒÒÒÓÞÒÒÒÒÒ??ŽŽŽ?Ž?žž??hž?KKKh?ÒÒÒ?ÒÓÒÒ?ÒŽ?Ž??ŽŽKI?›››±)KKžIŽJeŽi–•–ˆ•<––ˆ–ˆˆˆˆˆˆ†ˆˆˆˆˆˆ†ˆˆˆˆ†ˆ†ˆ††ˆˆˆ††›óätä!¨®¢¢k®zt4¤!m•EEE\V{4o4 e ]{]h›00 eetz®UU¢¡ ¡ ¡¡¡ ¢U»ƒ¢»Nš¢ ææ ®¨!!¨ ¡  ¢Uš áu ¢® ®UUU¨zæ‚‚æ‚.H¨!ÆÆW¬Ý[ää¬Ý¥y±•Oi%%E\\ Ý4°emetootoW!‚kUz!e0]››››{eo4ee;äê; ÄJJ[o4Ä4emmmm{0 m{00Ä{-]VVh\\•ii(ii•i(–iiE%Oi%ˆ%%%%% ¸4 ©©© õ© °¸©m ¸… ©õõ©¸¸© …¸°¸¸°¸…¸¸ ©…¸m© ¸¸¸©õõ­­­­õõ­PÈõ¸¸…© ¸©¸4¸©õõ­0¥¥£¦ VVV ±±¦]¶££££-¶-£-£000È{È0-ßö‹ööððöèðöö%èð%EEèèèèèE߈E–çÒ\?•–•–¦¤—%E%èðð%%è%%%%†èè†E†Eˆˆ†ˆˆŽó‚L—IIÓIIIIIÞÞ\•>IIÓIÓ\IIIÒÒÒÒIIÓIIIÞÞÓIIÞ\IIÒÒÓÒ?Ó?'žž?ÓÒÒIÒ???ÒÒ?Ž?žžž?Žžž?žžžžž?ž???Ó????Ò??Ž?žŽ?KKžŽ?ž?K¦)›K?ŽII;?Oˆˆ•–––––ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ†ˆ†ˆˆ†%–K4 zæ®U¢UN¢škU.o' 00hE%i'{4m e4m0{-]h›mm m{mo!!.U¢UU®®®U }á}¡ ¡ š®®¨¬e°­È]I—{¢áu} ¢UU¢¢M¢U®®®¢®ê!Ƥ‚®¤Ý¬óäW¬;ÏWóϬäÝÄ¥¥ ii%('Ý4¸ Ý!oݬ¤WÆ !;ozÏ-]{4K•Žm4{4eee;t;…… 4äm m{{00-0m000-È] VŽž''I\\(•—Oiii(((iiEEè%%%© õ© © °¸ ©© 4 ©© õ©¸e;°°¸ ¸ ©©¸¸©© ¸¸¸mLLL­­­­­­­õ©¸¸ õ©¸…¸¸¸©õ­­­0¥-¶±úúûûúVV¦£0-]¶£ÈPÈ­­­ÈÈÈ0£úòðööö‹öööððððððè%ðèèèèð%èEè%%EEEEEßEEiçŽžŽž—•ˆ–¶W\èˆ%è%èðE%E%èè†%膆†ˆˆ†ˆEEE†ˆOWHóÒ>ÞIÞI>ÞÞ>I——ÞÞÞÓIÓI&IÓÓÞIÓÓÓÓIIÞÞÞIIÒÓI&ÒÓÓÒÒÓÒ???ÒÒÓ?ÓIÒ?Ž'ŽŽŽžŽžžžž?žž?žžžžžž?žžÒÒÒ?ŽŽŽŽžŽžž????ž???Ž?KK›)]KŽL?•OOiˆ––––ˆˆˆ–ˆˆˆˆˆˆˆˆˆˆˆˆˆˆ†††ˆˆ†ˆˆ††•J¤U®»®UUUU¢k e{\›--›i%EE%iK0{m › -h\i e oot!¨®®¨!êz¨®®®U  ¡¡ÑzÝȦ±II•ˆˆ›®}     UUU®®NUNæ®zêÆÆÆ®®Æó¬ÄÈÄLJ°°Ý[WW¤[!m]Ž•IK›meoee¬Æt¬tz zo{­ ©WÝm e››--4ee4Joo;4ÄÄL…;[eÄ m{{{ {{Ä{£]¶V 'I—Ž\—(i(iiiO(iiO(iièEEE%%Eè%%% m ¸¸¸©õ ©õõ ©m ©©© õm ¸°e°© © ¸¸¸ ¸…©¸©mmõõ{ÈÈ¥{õ­ ¸©õ ¸¸ © ©õõ­­ÈÚ0¶] úúûëûúúú ¶£0¥¥Ú¥0Èmmm{{{0¥¥-±Óöö‹‹‹ö%ððèð%ðð%èð%%Eèèè%ˆE膈ˆO—±žIÈĦIO-•%††è%Eè‹%%è%èèE%†††Eˆ††ˆEˆˆˆˆˆIXH›IÞÞ>IÞIÞIÞÞ>—IIIÒÒÒIÞII&ÓIIIIIIIIIÒÒIÒIIÒÒÓ???ÒÒ???ÒÒÒ??Žž??ž?ž?žŽ??žž?ž????ž?žžŽž?žŽ?žž?žžŽ?ŽKKž??KK??KRKR›¦Ú0‘›Ž ž•–iˆ–––––ˆ–––ˆˆˆˆˆˆ†ˆˆ†ˆˆˆˆˆˆˆˆˆˆ†•)J¤‚‚N¢®®¨zlzzÏ0- IŽV00]—i\ˆI'›Ž(ŽVEEi-o4e4eoeoz¨!êz®®êzê.®Ušš‚¨ÏL)—†•Ž—0U¡UU uu} »æê®NU æêä!!¤WÆ®¨ÆLžÓ]È©­LL©°¬;¸mJeo©›\(i('--£­°ooo!too¬o¬!z»¤m£e oem{o! e4oo;;;;…PX …4JÄ m0m{00{4© 0-±''\\\\\(ii–i(••(i–iˆE%%%%EE%%%õ mmõ¸44 õ© õ©Lõõ­õ© ¸°¸0£õ4°° ¸4°© ¸¸¸ mmm©©õÈ­õX­õ ©m©¸°4 © ©õ©­È0¥È¥¶‘ú±úûhúúVú±¶£¥¥È­{ÈÈ­m ¸­­ÈÈ£]Vèö‹öööððöðððððððEEEèè%èèèˆEèEˆO—I•žtz¤¬¸¤‚KˆE†%%ˆEè%%%%èè†E%†%EˆEEˆˆEˆˆˆ†ˆˆ–y[È;›I•IIÞIÞÞÞÞIÞIÞÒÓIIÓIIIIIIÒIIIIIIŽŽŽŽŽIÒÒIÒŽŽŽÒ?ÒÒÒÒŽŽŽŽžž???ŽŽŽž?žžžž?KKKKžKžž???žŽŽžž??ž???ŽKžŽŽ?KKžKKž?KK)PÄÄXPóy•O–•––––ˆ<<ˆˆˆˆˆˆˆ†ˆˆˆ†ˆˆˆ––ˆˆ†ˆiI‘L䯯¤Æ®¨zt;óÆÆhh—'{-]\(V-K\E%%†EEi•†%E•-0{ oe  mz¨zꨮ¨!!!æ ‚U®‚¬ó󸣱PeÄ[¢}¢®®¢Ñá=¡U z¨ ®zoÏóW¤W[¦–—ÄÄÈXÄ©ÄL©Je©LJJ¸{\h--©ot¬Ï!ztoWoot! z ° eoo¬Ýe 4ot0] 4eoe;4Ä{ ¸ÄL{4m{00m{0{4¸mÄÄÈ-]žh\\\\I(i(iiiiiiiEEE%%%%%‹%%Ÿõ¸¸©õõõ ¸©õõõõõõ ¸©44¸õ­õ¸°4©m¸4¸mL©©¸°4© L© ©m­õLõõ ¸õõm4¸¸© ¸õ ©õ­X¥££¶]VVûV-Vûûû‘]-¥È­È¥0­õõ­­­¥¶¶±\ðööööðèð%èð%èð%èðEEð%èèEèEEEˆˆˆEiKžI¥®® ¨Ï »[¥Ž%EE%%†%†%%%%†††Eˆ††ˆˆEEˆ†E†–ž4y¥I—ŽIIÓIÒÒIII>IÒIIIÒIII>IIŽI&IIIIIIIIIIIIIIŽŽ?Ž?ŽŽŽŽŽŽ?Ž?žŽ?ŽŽŽ????žžŽž?K?K??K?ž?ŽŽž????ŽžžŽžžžKžž?žžKžŽžžKžžKK¦ÚÄä®{O–†RPÄ‘±I>&&jÔ1||>|>I>&>|O&›ÅP;œÔøÜ11«Ü«11øÔœjø111|11111|^|ÅœåÜÜ&&&&ø?ø?øÜø&øÜ>8&&&&>&>>&>&K&&&I&&8&8Ü8ø8™™ø™™ø™8™å8å88å8åå888Ùø™8™ø™8™Ã™8™™å™888å8å)ÅHÅ?>øÜ1Ü1—||XÕlœÚøÜ&&ÜÜÜ>Ü«>>>||>|O&;L•>Ž?K›8›å)?8888R‘å)j;JÚXÔ?|C^CC^•8'{Fø@¢0I†%i†•—–†•L󎎶­¥-]]- hÒŽK¥°4-i\ŽyWÝ]]]K]¦¦y-›¶›V£0È‚W0Wo-4tzt0-]¥e]V]]'Ž(((\'h› VK› ]--]hK ¦ h±--]£]0-h›] ¦¦{È{0-¥£]¶-]]-] ›]¥] ]0{{0­­-]Ò'±hV -]]]¶¦± h\•((iEEˆ%–EˆEE­õ©m©…Ñ ýtz'À¹Éuï!o¸ ¸¸©©4¸°4 ¸ ©¸444¸ m©©°¸L­õm¸ ©¸¸©©©©­­õmm õõõ{È¥¥££¥¥È¥¥È££ ±ú±±V±hú¦£0-¦ûhûV± ¦±VVVVú ££¥õ­ûëëëçOˆèEEEEˆEEE†E†EEˆEEEE<i–––•IK¦›žŽŽh—ŽIIII—•Ži†Oˆˆ•?IIIIIIIIŽIŽ?II?IŽŽ?—I??—IŽŽIŽKK?ŽžžKžŽžKŽ?IŽ?ž?IŽŽŽÓI??ÒÒÒ??Ò??Ò???Ó?'žžŽ‘Ïä¦OOOO••—>•Oˆ–ˆ††ˆˆˆˆ–†ˆˆˆŽJ±|I|>>>••—II•ŽLóX0K›±›V ›±¶¦¦K›K›4¬eÈÈ0IE‹|ãk—¡2Áp¢—E%i†Eiˆˆiy X—I£Ú±hIŽh—iI-mŽh•ަ ›°-- h-¥È0]h±¶›ž›0Èt‚ze-e-ete°-]]VÒh¥--II'(iii((——-]ŽV-£££{¥-£--]V]]-¶- ± V]¦±V0] ¦¦00 VV¦ V±hV]]--{0¥¥0-¥- ¦›'\Ž' ]¶¶ ]]]¶'ÒI\((E–†%EEEEˆE­­õm© 5ag{g há9Ø9ugƬ°4°°¸ ©¸¸¸…¸¸¸4°°°¸ © ¸ õõ¸¸© ©õmm©­­õ©LLõ­­ÈÈ££££££0¥-¥¥-±ú Vûûú¦¶£¦hëëhûûúúûûûúúhV¦]-ÈÈhûhûû'Þ(–ßE†ˆˆˆˆEEˆEEˆEˆˆ–––i–i—ŽK›——•I›Žžz!…Ž-JŽ• y±¥K;Kóty] Ž•Äz®—ˆ†i†O–<›äKO––––<–––i•—?‘KŽK??IIIIŽžKKŽ?ûŽIIŽIIIŽ?KIK?IKIIŽ?—?ž›??KKIŽ?ŽŽ?—K›žIŽ?žŽ?KKK?žŽžKKû?Ò?ÞÒÞÓ??Ò?ÒÓÓÒÒÒ?Ž??KJzLOO—O•III•O–ˆ–ˆˆˆ––ˆ†ˆˆ†ˆˆOKI(I>—•>—>>—>—\ò••——•Ž› › › ›K›0-›È °Ý©±hŽiE‹<K0\2øp¢0•†•†ˆE††OIIi•¶¶Ž—h±hI-]V–Ž0-­0±K--K 'Ž££--¶'h{m-m¶{Ï ÈezÏϬ0.o±m±±—'­4K± (\—•(i•—I'›hOh-¥0{¶¦¶ ¦¦›¦-]±]]]0È-£0]-Vž›]0È¥]› £-VV± ]¥ {{- V]]]]-----¶£±hV±]]¶] ]]]£'\\h•—\—(iiii–%Eˆ†ˆEEE{©¸…¯ +4õ/µG=Çg.°…°°¸© ¸¸4°°°°°4°¸© ©©mLm ¸¸ LõõLõõ©©mmõ­­Èȶ-y¶]¶]-££¶--] V±±úûhhhûm© õ£VëÓÓ'h'žhë'hûúûžú ± ¦]\I?VúûžçOò(iˆEEEˆˆˆˆˆ––––i–O•IŽKKIOOI??Žê¨J¨ä¨¨®N¶›äÄ®®KJ oKLꛑ¨Ä;.ž•–ˆ–†•—Ú¨y?•OOOˆOŽÈ;4eJJ{)y]KKž?Žh›‘‘)››RŽŽII?K›¦‘››KI???›)›]žK›ŽIK)yÚ‘?I?›K‘)KŽ›¦y)›?ŽÒÓ?ÒÒÓ?Ò???ÓÓÓÒ??ž…ŽO–O•ŽKK•iˆ––ˆ†ˆˆ††–ˆˆ††•­ž>>—çç>—ç>>>ç>———————Ky… {±› ±›K -¥›]ÈÈeo]iˆ%%CÅg'{0\ 9™’¢ކi—(†i†i†ˆˆž­‘›¦--¥0{¥£›hK›h-¥Äm0 V Ž{ÄhK›\› —ÒeÄÄ È 4¸ °o¸©Jo¶Ž'ŽIç\\¶Äe0- '—hV›'IIh±KK›hŽ\›me­0] ¦]0¥]± 000mm¥--£-]V]]£- ± ¦-0±££ -00-- › ¶0{ -¶-] V ]-0¦ û\ž\\(i•((((iˆ%EE(ˆ­­­õ¸©Å„!tõ}o‚n =ugz 4ee4© ©¸4°°¸¸¸… ¸¸© ©©Ä­­©¸¸¸¸©õ­{­­õmõõ­­­00£‘]¦¦ ± ¦¦¦ ¶‘±úúVúh'hhûú±¶¥È££¦ûû'Ó'žÓÒžV V ) iò\ÞIú¦ûÞç\>•\iˆEˆˆ–i–i––ii–––O—??KKI•O•OIKä[›¨z›[Ž›óoê¤?—!䎈!KytP[®iˆ––ˆO•UIˆˆ–––•KXÚKÚ;êÄyy?IŽž‘Ú]±››››žŽIIK‘±K?]-›KKŽŽKK]¶‘ ¶])??KžKy0yKŽ››I‘] ?KÚÚ¶žŽŽÒÒÒÒ?ÓÒÓ?ÓÒÒ???ŽŽžŽIOOI••—ž›RI•O–ˆ––––ˆ†ˆˆˆ<–žL¦——\>——>—>ç—>çç—>———•——]00]±± K¦¦ hK¶-¥Ý›ˆE%%%E%%%%%Ë+\--9åF¢0K•(—•ˆ†ˆ††%žÄ£››]]È¥‘-V£00m{{0›])h-Kh-h\'-¥{L£VÈ0Ä¥¥{0]¥›\\I\•Kž¦ ›h'› V-0{00­0¥È ©È¥¥--]›¦0¥£¦K]¥{©{ 0£- ±] ]--] ]-00¥¥--0- ¶0-] ]]-]›V¦-¶¦¥V±]£00Vh\\'I—((iii(iE%ˆEE0­­õm¸Åó{Wä u館e°e õm ¸e° ¸ õ ¸ mõõõLõ…J° Ä{ÈÈ­­õõõ­­{{¥£-]¦úVúVúVú±ú± ±Vû±h'ëh'hhë'ûúú¦± ±¶±úú±úh''VV›› ¶ˆ%ßihVVhÒIhiii((((•((ii(Oii––—IžžKK>•OOOO?z4ƒ®ž]äêÄO®®[[›—›zJ?…êKP¨XL•ò——Þ——>•——ŽPÝ©[L¥¥ -¥y ¦£È¸ž†EE†%E%vd ]•¡2™9 ! {]y›ŽI•ˆˆ†††ˆˆ•Ž————±£-h(h]¥ Ä{¥£V¦¦±¦0¦›¶ŽŽ›Žžhž¶{]¦0 ±0¶]-ÈÈ-¥È]'\K'—\hhh¦È{È{­m{00--]¦±±]]¦‘£- ]-0­¥­{- ¦VVhhV--¶]¥]---È]› -]V±--› £0-¦¶ - -V'(ii\\iiiOOiiˆi(i0ÈÈ­­©5!{¤ó Éugz¬e¸¸°° L …¸ee¸°°©mJ¸©¸¸¸©¸¸¸ 444¸©­Èmõõ­õP¥¥y¦ûûûúVëûVû ¦VëëëVû)]¦¦¦¦ -]]]Vëž'hûK›¶¶-{Ä­¥¶±%E|çÞÓû±¦VKKVKŽ\••Iž›K››KhžŽI\•(((•—I?žRž—•O••O—®UNoKê¨]•K®!¶ ±‘oUê-£;›—ä!óKKÄó;K•—›ó¨—OO–Þ—•>•——I—I—IIžÚ©m®­-£­È¥È0£{ÄÄEE%%sêV(2ø9¡zoee ÄÄ›KŽKKKO–—i–iOi\h'hhV±-0È00›-]-¥- K]­--›Ò¶0£0hÓV-¶ V±›ž±¥ R•iO—'I\I\O\'hV]{{]]--0È¥0È-]-¥0-¦ ]V'Ò''h'-{{-VKh›hV-]]0----¥0-]¦]]]¶¶ ›h -]V -]0{0- -]Vûh-V'hh''\•((i–(((i–ii(i(ÈȥȭõJzu0uW¬f Éá館¸¸ ¸°4©©õmJeÝ[eÝooÝÝÝÝÝo° ¸¸°°4Jee…mõ­È0]ûúh±hëëëú±úû''ûú¦‘­­ © ¸444 m{-Vž'h''hK]{m¸ ¸|è%%E(ç\ÓV)V±±±±›› -{© mȶ±KhIII›››K?••–O•OOÚ Ú{yŽ?KÄÚ?‘Žh‘‘]?•›Ž—?X¶Ž®¡ ‘ UžI••Oçç—IIIIŽžh‘È©X©°Ï¢®©X0 ¸mm 4emK((((E‹‹‹Ÿœ•h•+289 !4 Ä oóe;;e {ŽŽ?•––i(•((žžh¶h00Ä 0{{£]-¶¸¥¦›-00£ ž ]¥ )\\úúV±úh\\'h\i((h\çÓh± ›V]¥£ ›\'V0{­È-¥­­¥0­ÈVVK'›'\(( -È¥V'V ¶£]---0£]¶]]-¦]]£]]£]]] ]-]›hŽK'\h›h'\\—•i(i((i((ii((\\iÈÈÈÈ­­J²zu{ä Éáïzo° õ¸¸¸© ©4WÆzzÆÆ!ÆzzÆÆÆÆÆÆÆ!ÆzzWWt¤¤¤!ƤtÝeõ¥¶±úhúûëëëëûû릣©e[¬ÆÆ¤!zHÆoe { ± ±±V¦­K¥{VOi߈(ÞÒR]¦-0m eozzÆoe 0] ¶¶±KŽ••OO–iOII¦z®Ä{0{Ú0¦KŽ•––<†•y®L¶ž{äÑáuUÄLÏUožŽŽ•ˆ•KXŽž›KIK)‘ PJ°o¨ »® ‚ ‚‚.!¬4©ÄÄÄÄÄ®NWJ›?›¦P¤®z¢»©¸¤¢á ó¸J¸°ÏMM¤ÏÏÝe4¸¸©¥¦RŽ??ÒÒÓ?ÓÒÓÓ?Ž?Ž›…¨ š¤ °oW!!¤to©‘¦ž›J‚»‚©­Äm©ÄÄ{¶Ò——ç———\IIh›£Ä°oÝ[Ϭš !ÝeeoÝoo°e­-- ›hE‹è%‹Ë+(hh(+2å9¢ee Ä04o;óœ;ÚÚ…I•–(ˆˆ—(\ˆ(›h 0-00¶ ¶]©°]h›] hŽžëÓ\Þiúú'—žh\O'—\Ó\••çÞIÞhû›''K''(Ž]£¦±]V']]]]{£h''VÄÈ]\EEÒ]V—'¶00¥-]--  ‘ ]] -¦-¶] ]-¥-]]] V{]--] h'hhžIhK'Ò\—Oii(((((–i(((iÈ{È­­…²Ý{o¤Ê =ugzݰ ©¸¸©…LLÏÆýùššUšššššïšƒšƒù//šùùùkùùùùùšš/ùý.W4¥¦Vhûhhëë''ÓëëúV¦ÈJËddlÕHêêlÕ´ÕÕ‚ ..!toem-- ±±T‹O›¥ž(ˆO•\h¦¥ÄäH¨æ´´llx´®N® .zWo4mLL­¦¦?—OOOOO<•—›£®ÑUztê!tt4{›—ˆ––•|—P®;XJ¬¨}==M¨.U ó¶)Pyž——?Äy…P]›)){t®NNš¢¢šƒšƒƒƒUU.Æ!!¤¤;©¨®ä©KK¦PL…[¤k¸Jä¤  É=¢ .‚‚H‚¡¡®U@®‚HÆÆÆÆÏ¸¥K????ÒÒÒIÒŽŽŽIŽK‘…lƒƒ‡N‡æN»kkk. .¬o¤¤;¨Ï©°t!Ƥ¤¬©¶KI———>>\ŽRÚ4W‚®..!z®’áM‚.zzÆz¨zz¤W!Æooe{±\E%E‹Ë'h•+FÃpt ]{ e eo äe{­›±K(—Oç–—('K\Ž KIhh± hi—iŽ(•i–(ëúëV±çh]¥] KhÞ\—OòçÞÓûû'Ò''Ò'''hŽh]£-]h±hIÒ'ûhV -V›V¦°W V\V \\ŽVV]--± ]-]¥{£ {{0¥0]]--]›hh V›h''K›'\\h(h\—\((•ii(ii((iOIÞ¥ÈÈ­­5oõ¡o 3 Éág!° ¸°°©JLLJ[œæNƒ@ƒƒÎ@@@@@ƒùùNùƒ‡ù‡ƒ‡N‡NNNNNNƒM+ 0]VëúûëÓÞÓÓ'ëú]P¯ã÷ØÙÊAFF``@Îaé”jËæ  ze m0-±±±Ÿ‹ˆK]i–h¶P;lD_cA`p`~G5ólæ‚‚.z¤¤¬¸£¶KI••I‘X[®®®’}b¡¡¡} b¨W¬°…ÄPXóJ…J;êxñGØGÙÖØ$„xUU®®UUUNÆÏ¸‚¬]£ÈP¶‘¶‘JN‡Ë5ólÕƒ9Ç ppp@pbp@ÇÇ’}b@@ƒUƒUzo­±h??ÒÒÒÓIIŽ??ŽžK¥äÎDâ:÷ââGÖ c*l‚H‚Uš®H°­P­;æUššƒ» Æ¥RI>—I—&?›)£¸¤¢¢Uƒƒ@’áÇ M’M¢¢šU»UkkšU» .¨!e¶i‹ŸŒg•hh(+øp¢tÄ-›]0Ä{Ä 4ooemoto4 óeJXÈPžž›I•—((•((\((ŽEE†(K±Ó(òÞ\V¦ëû±'Ó'ú-00Òú'I''ÓÓÞ?KûÒ?Óç•I ›V ›KV¶000{È]±]] úKVV]]¦]¥Äz.ztm--¶]›I\hhhhh'Ž ]] ]£00-{00 V££--] V›h''ŽhŽ\—\Ih'—hh\(h—\(((ii(–(i(\\È{ÈÈõõ…¬¡m¡e‚3ÊÉugÆ;4 ¸°JJ÷wÙ³pb299999999¹9¹Ç999999229bb29999929bp’»ȦRhÓÓÓÞÞÞÓÓ8Úã$ ¾2AÐÌ$é§Z#̾$5 kk.tĦVVŸ½O££çy;ln ,2~$1ÍZ¼ììíñFx[êæ®kU.t°X±—•OO•ÚZײéàµDDA3Ù5ê0K—Oˆˆ•‘óô˜q :::ÖÖ*ÎU¨t›±±››¦ÚÄ[ƒ93cíA2Dâ$Ö írfA2~”ØQlNUšš».!®¤PX䥛¦‘Pnc××”GGGé„éé„é„éG$c:ØQæ¥?ÒÓ??ÓÒÒÒÒŽŽ?‘Å´éÛf9AGÖ""#Z,·p 7¤  ‚ÕÎDc Á “:ÖØ¨t4£h\—•&ÚœxÐ wÖÖØØÖÖÖØ:c::__:ÖØØØÖ Ö:_cÖØWom]Oè%‹d+''(gFøF¢t {]]0-0e Äee LJÝo[[Ý……LÚ£¶¶h—I——•\››iEŽ¥{­­h–EiOÓž'hhÓ'Ihúhž'hÒh›ÒÓûû?Þžžò?ž'ž›V± ]{{0¥¥£¶] hh¦ ]m¨ !4] ±'\h VVV'h› ]¶]]V±]] ¦› ]]]¶£--¶±› hŽ'''\\\\h(iižh((\'ii—OO•(iiˆEi•ÈÈÈÈ­­5²¡õ¡Õ3é=u¤e© ©JJcÐàÀfÊ33n3A3Ann33ÊÊÊfffÊÊ33333AfÔM+ke0V'çÞÓÓÓ?)$$qf2$|5eg¡¡¡¡Ñ}FA€ì¼aD5ùš W £‘¦)Ÿ½T½†)l¾97h\ŽV0o! /@p`rìZaaóÕUk W¥?>O•yD€§ñìÌÌÀ##¼¼qÛì¼Ä{ Ž•<ˆOÚ‡3F§,,,,,,¾€nD[±žŽ?Ž•iiO—žL[¨2Ac¾ÇD-KŽŽŽŽIIII1ÍìÊ`„ Q®UkUkƒæ;Ý©‘R£dµàfqqÛq¼ÛÛ qÛ##ÀÀÛ#ÀÛÛ#Ûqqí§³J ȦûŽÓÒÒÒI&ÓIII&RXlDZâbÅVIh›{5$qìfp7»‚pàÛ2§þrrr,a5©¥Ò—>>>Ôañf§§§f§§ffffffff§€,ÐÐíZZZ¼þÎÔX-K(–Eˆ†œ+hh•+2™9g!4P{Ä{0{0{ mÄ 4mP©ÄąȶX©LÄem-]]£]› hh›]›—i—±ÈÄÄ-E––(OOòOˆ–ßOÞ'I—Þ—ÞžûÞ>çÒIIII—Ž?Ž]¦ ]-¥Ä-VhžžhhhV ¶È ...Ï{ŽŽ''Ž'›V ] ›¦£- VV-] £¶£¥000-]VVh'hV\ŽhhhI]Ž\(—''iç•–i\(i(iii\çÞÈÈ¥¥{Lâ¬uõ¡e‚3ÊÇáï!e©õ 4LÖc {ku¡¡g/kg+¡¡uu¡¡Ñ¡+gϸé`Î+ù!Ï­úûÓëÓÞÞë“SZZ`‡-Þõ.¡¡+k0\h îbfì¾Î¯‡/z°0£]½T½–ij§Û zg¡k.g¡+oŽ\ ’bàfìׇ7l ®¨­K•O&ô`ÅŽ{! u¡¡bn×厕•–ˆˆ•ÅbêÏ0\h›£Ämme¯j{‘›ŽII•O<ˆ<——‘J³fq‡uš¢á»©0mM !Ž•^6n`c7 kU ä­›ÒÒÓŽû£Ç }ž››› -{ 4Ä{0{{{­00meôå¶K?ÓÒ??ÓIIII\žÄàÙX}¢.k¡=zŽÚ*€ÛSpÔËb-K-]]{j#*)±KÒ\——Ž[`u \\\II\\IIŽhhKh'h'hV-0 eä€ìdy›E%EËg''M2å9¡.0{{Ä Äm ÄÄ {Äm4{£¶¶¥›\ûy££È¸ mÄ­00¶›››Ž(%–޶¥¦ŽO—I(ˆ††‹‹ˆ–O|O–OòOò\ç—ç•OO|(O–•\((\hKŽŽ''I'K h'›VVë'ëhú¶¥¬Ï K h-- --¶ -0¦›--£{mÈ]-4e¸{m©0{m {--]'Ž'ŽV' ]hhV'ŽÓ\iIiiiiiiiEEii(È0¥PX5â¬u{¡o¨3áu°õL¸5D/] g4{0000]]°­ ¥{õm m©mmõ{- /¤$F´ïkÏõ¦ë'Óú÷G æ}Ñ¡t­ûMý ù¡Æ'h ¡ !’23ÛñD@.°¥ÈÈ£½½½ËD¾ø {'e.h{.+ ƒ°h¤›g› zb9AíלW¬Ä±\O>Àø-tm ¡+h——›{ÛQ?—••ˆˆˆ|#«­®]g {mmK—ÀxKŽ—I••i–<––O—ÚlÎéÜ0e0› }Ä›]P{¦]¢z}{¡!<"#é³Ô䍯Ý{¦ž>Þ—&cÄ}W!z¨z / e®¡+¢ggggg ÑU'Zl?û??ÞIÓÓÓI&IÒIŽjn’0›]gmhm¨»4/{È¡-žª€ÌÎÎkogeÏ+/0'c&Ž\—ç>>>?S_¡e!.z..‚..zz +¡ +/kgg¡U¶—<§”åi%EË+''¢Få9 .È] -0m Ä4e 4Äme4ĸ‘)¥?ˆÓúÓ玶]Ä{-£­£¦¦- Ž•-¥]]]]¦±K\<†ˆE‹%ˆEE†ˆˆˆ––†ˆ–O•—(|Ž––O–OO•(•O(((iEiO\Ž''±]--¶]VVV ±00 ']-VV{m{]0-h£­£oÝm-{ ©mmm4m 4e0]]›''Žhh'Ž h•ihh•O\OiOiiEE–ii(iò\£¥¥0È­5}¨nÉušWeõÈõ Üjë uÑî++/±¥ï¶Ý/g//k/kšùgîÑg]+ép´0VhÓÞÓÓÓRjf™ ÈV 0¸î™Í$Qdl´llxÙ<¯š ¡h b2Ð@ù.°0­0£½å7~a-K4Æ’·ÍÀ˜²ãQ|ô ±WV+’23Í;Ä… X)I—1w­ -›h4-]K]¡$•ˆ†ˆˆˆ^5:e  h›¤K±0K4fø•ˆi–ˆˆˆˆ††•ÚÕ9Fe zUhF$«^66 „bÕžk4g›¡4>ÌíÎÔ°e­¦KIÓÒÓÞ&g0¦©eeoz¢4¡u4-¶]] ]e}Ly8ÒÓÒ&ÓIÒÒÓIIIII8×¼& !)9$"×ÙÎÝ-¸•6,Ö]m z+{-û>>••çÒR¯Î+/ --¶¦]¶¶¶]{ok›››VKK »°QíÁI—IEœg'Ž\+™b¢!°0› ] y0Ä mm4mÄÄ o4 ;ÝLž–?)•Ó ¦¥m› ­›¶]£¥  -]¦‘R?&|–•O||O–––ˆ|O–ˆ––OO|ÜܘapŽU›M;ŒÚ£¶û'IIÞIÓÁ^1 QQQ*¡hS9„aÙÙ:$cc$QQ‡ËyÓIIÓIIIÒÓÓIÞIŽ ˜b.V®œ FâÁ|•)d8ÔZÁp]Sh 9ñÎdyI>>Ó›yL8«^« Á11^™¡¦Ñ2Öb$Á«11^1Áa1Õå•\\\Vhßðsd¢''(¢FøF¢e m0]{0Ä{ÄÄÄm ee]—?¦­¥—ˆúͶ¶V ]›£{0]-]-¶-L£V›KhKŽIŽ?ŽII•—>O>>>Þ>ÞÓÓI|–ˆˆ<ˆˆ–R?ˆOOO•—(('ž\'—(V¥]¦¦£¶¦±h\(ò\\¦]0 ¸me' È0hV--{m4¶{m¬ 4ݤ!¬e0-£]VVh›hŽhhVh''''KhŽ(ò\–††––iEii–i\£-0{5„uÈϤÊÉu!eõõ …J;;J…°JâëV ×@ÕÎH[LXÚjPPjXXXXXXj¤ÞAl»0ëÞÓÓ?ch.)$`5)û'((iO((òÓ5l´$Nm’Ù´ °£- ½Í¼øž4«¾Äû—OiO\(((—I8RP;7Íšhh.›¾À?IŽžRK\>|O<|1o.eÙà‡êÅXÄ›••†ˆiˆˆO<ˆC²h+¡F®N e—ˆˆ†ˆˆˆˆˆˆI7þøo¡¡„q”Øø>—X‘…X—OÚjÜ1²p? ¡K 3QåhžŽI&ÓÓÓ?Ò&Ž8R8RRRø1^U]h~â˃lÚåå8™88øR?&IÓÓIÓÓÓÓIIÞII\ø˜~4z!Ô3Ö3ËÚK>°y—|&8Ô ”Ë.oÎñ¡‚3baƒd)Ò>ç>çÒ‘‘)88øÜ&&ÜÜ>>>>«S“!b9郇[y&O>KI^O•O—'•iŽOˆ‹œ+(h'+2™F4m{-›0m ÄÄÄÄmo;m]•—I—O—ˆŽ ûKhhK--››VVVŽ -y›Ž{°¶ŽŽK›ŽŽKå8&|•Ov†•OO•||i|OC膆†ˆKIˆ–iiÒÓÒÓ\('h''Ò\\ È]]£0]¦'ÞÓÓh 4e0V  {]e4Äe!W !o- K'hŽŽ'\—\ii\iˆ–ii((i((–i¥Èõõ5„tu0¤ä Éuzeõõõõ ¸©©m©©õ­…„ueéF´+šÆe­¥-£--££££¶¦P{ÞaÎx/»{ÓçÓ&ÁÛétëoQq˜åûÓÞÞ(((((i\\ÞPxt¡‡àÙ‡g‚4Ú]›ŸC",’zŽÝPé ÷Ú›Þ•(•\•O(—Žhž8)j7«]+·´>(|—?KI>O•i••Ü]›9~2=}X›•(iˆˆ††ˆEˆˆCZŽŽ¢ ê®. ›—––––ˆˆˆˆOÃÛ÷h! FA$8I•<•{4ÄŽž¶›I8øÁ*UmX )IÒÓIIIIIÒIÓIIIŽIIIIwÖMkk¼ÎÕ»z KI—?IIÞIIÞÞIÓIIIIIIIÞ—II—Üa<4››AÖ`Õe¶Ž—I?IÞII|I«cìb›{?¢ž»A$kk!Ä›I>>ç>ç>IRKû?IÞ>ÞIIIÞÞIIIIS™¡+“,x´ž(•K¦ži†(hEVh>dh 2åF!e{ ›Ž›0 4 Ämo;e4 ¥›•—EEŽ›—I—\›£- h'ŽhŽ ]£ K¦oŽ›¶)&›åÚyI<–Šˆvˆ|<<&?&I—•–ˆOR—ˆE|ÞII\\\I——Þ(—i¥¥£¦¥£¦¦V]¦- h''\'¶eoe 4oe{ h›'V'h-h±m £{Ý! m-°Weme0---VhhŽh\Ž\\'——(i((iii–iii–ii(ii((iiO(È­­©¸5„tu!¬ ÉuW°õ©õL© õ© L­Ä!ÏA ƒMzÈ¥¥££-£££]‘P·.­\~ÎxšÏ0û\> 2ï-0w§²“ë'\ò(((i('åxÎ+¡´M PÄ£±<^*a 4K˜yeÏÝÄ£K\—žž\•±±]›ÒÚã ÚÀ1•O•RŽ—••>•OOKg^bá¢e4¨](•iˆˆii†i†ˆÜ6ÝU]·;®!4 •ˆiˆii–OÔ#~.›+zñF䦗i–ˆ<(•Èyy‘P›y…J…*¡Ø`ô&?I—ÓÓIÞ—ÞŽIIŽ—I?ŽI&›G{•FcæUz°K?ÒÒÞÞÒÞž—ŽÒIÒç?IÞ?Ó>ÞÓÞ>?À޳f3@®e¥KŽŽÄJž•Þ\IÞ&Á6l4m0a‡k¤L±ÒÞ••—ÞÒÒ?IIÓÒIIÞÞIIÒIÒ?åcܱ7ré®—i—Ih(Ei—hŽ(E%•K±Iê}V ¡9Ã9+ Ý0›ŽKŽ›{… Ä{{otŽKÄX)›ˆ†ž¶?Ž\I›¥{¥K''Ž ]]]›-]K›››Ž••&•OKÚ)Xäó;W®NùƒÕ¨¬Ï­—ˆ–•\—\OEˆiiEi­0- úÓh'ûVúhÓhhëë-¸e 0­em-›V\–(—hhhÄ©00o!4{0 -¶{‘ ]›hŽ\I\\IIŽŽ(iii(\\ò(i(i–Ei–iOiò(òòeÝoo[Ýôé!u-¨f =u/eõ­­©©¸©©mõ­5a!0h9aùMze­¥¥££¥£-¶£PQ.{\³Îl0'Î8zVhGÐZ7ÚhÞÓòò(òç\'&?ê‡+´àªƒÈ©0¶O>”§Ž ]ÅâjyÒ£Ä mÄ žOI ¦K h±Ž•Ü^÷˜$ >•O•RŽ•••••O|ã\UéU¢®ä®{\••iˆiˆ–ˆIŽ??ŽIIIÒIIIIŽ—•I?ŽKQK] NUz©‘KIIÞIžIŽžI?IIŽIIIIÒ•IŽ)«Ih"ÖlU®¬È›ŽŽ‘yKII—>—I>>1Û?±Kh Ìl¤©VI—>•ÞÒ?ÒIIÞIÞÞÞIÞIIIž›Ú˜Ü0]|Û`l®W0Ž(ˆii'†Ei—•–Eˆ–(O´\\}9ØÇkt  ¶ ]-- {{{0mm KiޛޗK–†ŽÚhIh±›¦È­0 ŽŽ›K\—IŽ?±ž0JL¶]yyÄóWæ¤Õ@¢ƒMbM’’b’ bMgÑM šÆ…±•–ii(iE%EIhû¦VV ¥Vž'h ëú]V±ë\'ú¶-¦±-{¸È±VV\(ˆiOKž ­0¸Ý4m©¶¶XÄ]I¦›K›hŽžI•Ž\\\'\h\iOç\O\(iˆii–iiˆi–içO(© ©©¸¸;âeká]u ²µ=uš¤°õÈ­õ ¸©õõõ­õ5D!'F³N+/Æ{¥£¶£¥¥-¶£ÚÔQz0޳δ/o0Ó\>d"\gVb2¾jXúëÞÓÓ((Þ\ÞÓ&xg+xàÙ‡+ È­¦R>«OOOOO|7—4® ®Uzoz0Ž—ii†i†i–ˆŽ6M¢oÖQ[®z ›—iˆˆiiiiår+»{¾ x¸±—iOO–O––i›©;±¶°±O–––•‘X&•IžžI—IŽI\IŽIŽŽŽžKŽŽŽIRK®é®»¨ y›?›ŽIIŽŽI—Ž>Iž\>Žû>>IÞ—Ò—ø ¢+þÁŒ®k.Ý0›Ž›KII—IIÞ——>>Á×|eUÏÌÎx»!ÄI—>—>Þ?û?ÞÞIÞIÞIIIII?›¦y×ø øþaê tŽ•(–O—Kˆ••(iE%%|‡¡hŽ2Ø9/zo Ä{0›0X{ÄP0yÚÄÄ‘yy›I‘‚®J•I—I\h hhŽç\•òÞRòOÞ(––OO\ç\Oòi'-££È{J”õïu u­ÐÉug.o¸LLõmm©©õ­­{­õ5D!'F³N+/ÆeõÈ¥£]]£¥¥Ú¥¥¥ÚQÞ³Îlš»ÈV'ÞÔÔ ]}rF¯J]'\Óççòòç\Þ'?ggµÙ‡î®Ý0¥ûI|;ÌK-ÖÛFœ©K(E(—\iE\›È…Ý[Ý4JÈ£I•———•—••>••IKI•O••O|7—m®D ®®®t ]\Ž••––iˆiˆˆ&" UÖ[®z4 —iˆiiˆ•ÛFh¢µ:Æ­K————•—•••—I¦XKž¦I————•?0m¦›?IŽKŽŽžŽ?ŽIŽhž•Ž?Ž?Žyah].3ñ»U¨ ¦IIŽIŽŽ>ž&Žž—IŽ?&?ŽIIŽŽI?—ø«kíÀ7¤®k¤¸Ú‘¸°¦?—>III—II•ÁÍ‚»Ìxk¤L±>——Òž›K?ÞIIÞIÞIÞIIIK¦¶)r“oÀ¤ o-Ž(i–((Iˆ(OiOOE%ˆÜx¡ ¸¸ :}+»em© 44ÄÚXÄÄX{P{LÄX ;oÄeI› ž—•&ŽŽ›‘)›žŽžŽ•||—‘JêäN   ¡    +    b Ñ Ñ’M’’’   b’Mp’ Ñƒ;|–—ûžžÓK°ÓžhhÓˆÞ''ÓÞëëëûh\Kú±žžViˆ('i–Þ\±{{È{Ú¥‘‘¥¶£¶¶))±‘yKä@@š®X——Žh'h'\\(O•ÞçÞû•òÞççòOOOò\ÓÞÞòç\ië¦ ]££yj$£g¡V+-í2¹áýWee°°¸©õȥȭm5DÆ£'FA»Mïz°­¥¶¶¶¶¥00£-Ôt-Fx´/ý¬­ ëÞ˜ ýÆ^ZóVÓÞÞ(\Óë8QAG‡ »ÝÈ]I|ܪh×aä¸ ŽIŽh›KI›žK­z¬oHÆ )hKKKKKKh?ŽŽRK•••••Oô•. .Uze!›i—iiˆˆˆi–Ž6 goÖ®z ›—•iˆi–^¡ Ì´»!Ä›?\>>•IžK?IIIÞÞIIÓIIIž‘¶›øª÷!!÷éœ.]IiiEE%Ei•iˆE†(&¢¶o]9+kä È{{{ÄÄÄÄLÄ)›Xy ;Ä…‘K››Ž•O•IŽŽKKŽIž‘›&Lól¢MM Çá ÑÑ        +    Ñ Ñ MM’ ’ ÑÑ ’M+b  @®X——RûžÓyJÞ—I'úehh((žë'ÞÓ\ÞÓ?húV?V ±hÓhhžúÓOOiiIž-È0X{ȶڭ£±û‘¶‘úûÚ»gUU¢ K\\\Ž'I\OO•çÞÓÞIò•çòÞçççÞÞÞëžûÓ'ž?hh]¦¶£££XÖ +V+VZ2=uzÝ4¸¸°°¸¸44 m5!]h2Aùgưȣ£y££-¥¥££Ô FaHk o0V8"´h©‘ZnH0ë\ò\Ó\\((h±-44¥jDQgQAGƒÑkt ¦>>ÚÛeewгÕz0£¥­©m{{È00ÄÄm ot¸ 44L{y±K›Kž>•O••|—{DÖ¨ze›•ii•(iˆ––ˆ—6/¡t;®ze]—iEˆˆOhMbF“Uzo {m¸ ÄÄÄ©©­­P©Ý¸©Ä{­¸¸©m°WóݥĮkšUW‘Ž›—ž›£…h Æ3·®z…])žIžK››——››?—žŽKKI—ŽK›ŽKå"¡¡¥wìñ_Ïzk» t»®Ä-¶)›››››K›R^¡¤#DlkÆÄ›Ó•>—RVRžII\—ÞIIIIIŽ£±ŽÜ7Qkk73”ê -Ž•O(Ž•(ii†EEOI8Q0t0gà*Ç/0ަ¥0¶¶yÄÄ{PP ó®z.»Nzæz¤[JȦ—I•–—?0Læ ¨N¢MM ¢’ Ç= Ñ  ¢M Ñ    M¢M  bÑ ’’+’Mbb  M Ñ ’’¢U°ž—ÞÞ—£©•Oç\Þ'°ûúûû±-ëžhëÓÞëhú±±)V)ÞçÓÞÓVVÓÒÓû¦¶¥£ÄL¥]yÈÚyXÈ‘y))y¥¥‘¶±¸¢/iŽŽ\'—\O•ç\ÓÞÞç•IçÞÓ?ÞR›±VëÞK'ú±¶££¶¶±¥ +Ñû9á/W°­È©©°°44°Ý4ÅDt-h9DNM/!°È¥£-¶££¥£££]Ôx 2aœ.!4úÓP,!¡k$c@.o0ò\Þ\\\\òçÓh]ezzo;DQššQµ„p}g.¬-|˜¦-tÛpUkzÏttWϬÏWt¬o¤W¤äÏÆU/k ®z!Ï{±KR?—••O(6 u ÍGo®k Ži•i–•³¡Ž³`a¢U‚t¤¨!¤WW¤¤®š»z¤!¨ ‚H!!z®»UÄU uÑ‚—ÚÄ)J…Ú󇛛¨An¢}UJ…žoó¨KP¤¤¬‘ÚÆê¤…›L¨z…)ÈÁ2.uÀq95W‚®k® Mϸ{È0¥¥ÈÈÚ« ¢íÕš!›Iç•>ޱ‘›?\—>ÞI—ÞÞ—Þ¶¦>Dggà˜.o-Iii–(•(iE†i(O•ŽÔ*z!{ƒµ„áu¢Ï­¶mJ¸°¬êU®U»¢¢¢ u¡ ++M+ +MM¢U®¤4KI0WU¢M¢M’MMp¢¢ M b=} Ñ       MMMMM b ’bÑ ’ ’ bb ’b’’   ÑšÏ±IIÒ±LOòç\ë ëë ¶¶¶úžë?ëÓÞ?)Rû¦hëÞòòÞ?ûR±¶¶-­È­¥ÈXy)¦¶)¦¶¶)y¦¦y¶¦-¶{g(\\(•((((>ò>çÓÓÞçÓç—ÞÓÓžÞëû‘úûúhV-££--±¥ VgÑûq9ÇÑkÏõ¥£0¥0­{{m4oôD¤]9DNk4­0£-]££¥£¶-]Ô4Vh9Q;õ-û?`-Võ~Õ.ë\\\ÞÞçò(çë±­¬zý»Õl37kgµªp+/Æ0II6p(Oà^‡®®lœœääꜤ¤¤êWäêêêœêê¤êäêÕpF΃ƒUz¸¦KKKI•OOO<´›o`˜ Uz44ކEi•——II••ÜÀoU6S;¢U4Žˆ†—ô·eޤA¾ƒpÎÎx´‡‡UUƒUUUNNNN¢M ƒ‡xÎFbpƒ®ƒ¢¡MÝ…UÑá¡®)ž;tJ P¨UÎ ¦¨AÊÑ= !¤¦L¨¬ÆyÄ[[¨©Xzo!t¶¨X)KH3 V ƒ1Z9×*NNƒ  ‚ƤäÏϬÏóLÖ¡ožfÖ¢¤©±I——Žh¦¦RÓ—>ÞÞ——Þç—I))—(|l‡ ´Ál o-Ii†E%†ii†–—±-¦RKÔ²t4..¸æ3âÇu¢ÆJĤ‚®U¢¡ áu=á=u¡á  Ñ + ¡      ¢U¨»¢ + ¢   ¢@’ pMbb=á    +++Ñ+ +M¢M bÑ  M’’ ’     ’+gM M’’M¢¤±•—y—Oò\ÓÚ…?¦û)RR?ž?ÓÓÒÒû‘ÚûÞûûÞ>O–(ÞûÞÞ?ûûúû))¶¦‘yy¶£y¦¦¦¶Ú£¶yÚy‘y\0z'\•((••(i((•O(O(Þ—çOò–çÞçÓúûû?úžž  ])¦]¶y]P V+Múq2á}k¬©­y££¥££Ú¥ÈÈ­{5a]9ƒMšÆe{£££Ú¥££-¶¶¶åeVh9QXõ­V'±Zuçû?Á‚e-ë\\\\Ó>&&?X;äHlÕƒw<{¡‡ F¢’š.È>r 4d2qAF```ÎÎÎÎÎÎÎÎÎ``Îp`pÎ@`Î`Î`b92A´š ¶ž??I••••|dŽ›4F”.Uz]•††ˆEii•i•«Z4¡+Ícê U!Ii†ˆˆ—¶žO—Odp ¡@FÁlze-I(E†%ih•†ih -Ú£¶åSÝÝ»®äÊ Éá¡}uÑ}uÑÑuÇ=á=}=á=¡}u¡ ¡ +  +++MM M     M ’M¢¢¢M MM¢M=áM Ñb M¢ Ñ+MMM’’+ ÑÑ’     ’’ b’+b b ’M+MM¢Æ](ˆ›Ä—O&û?ÓûûÓÓ&ûÒÒžKR›IŽ\Þ|Ó?Ó&ÓÓ??ûû?RRû&?))‘y‘‘)£))y‘¶È£££¶ ] \/g// \\—((•ii•(O>–O––––ˆ–i(ò\Þ?Rû¦ú±  ± ¦¶£]PZ]g+++±áÑko©õ¥£-¶£¶-¶-y¶-¶jD V9AƒîgzeP¶]00£¶]¶--åxo0 2²Xy£¶ hRQb°.lÙ´ ëò\\çÞ&Ø×ZZ´‡ÎpF$Ø294b2²9æW]—1¢+FA2·€,€€€€€§§§§§§§§¾fff§f¾§fâffffr"F®‚4‘››KŽ••O•|lK{bS‚U®]›‘O%E†††ˆ•ܘ¢ c‡¢t0Iˆˆˆˆ^ÙóeeDþA2à`2F22àµñéf§€¾ff3µ9992à~µAníDƒkϰJ@/®;ŽŽ¨…Næ³] µ uuMϤ‘©Æ¥©X)¸®¤­?­H¨æJ°æ[£…¤ê¾»¢.—Zì¼nF·$ Ö:::ÖÖÖØ$²à9V 2؃¨…]R‘£y‘K\ç——Þ—ÞÞ——ÒúÞ–(\&m/ó ÉÉÉáÇÇ¡ }==á} á=} u¡  ¡          +   M     MMp¢M pM¢MáÇ’  ++M+    M+  bÑbM  ’    ’  b b ’M  MM¢®‘O±¥[HÚR|Þ|)?çÓÓÓÒ‘&?&R>>>>RR?ÓÓÓÓåyRR?Ó?>ûÓû)›R›‘±¦‘›¦)‘‘)›VV(mmo]i(\(i(((((iO–†•Ó)¥©Ý¤¨‚‚ ‚ÏXçh¦‘±VVhú ±±¦¦)Úc£¡¡£í=}ý¬©õXy]-]]¦]]-]¦VåQo '9N+ï¨Ý {¥0¥¶¶]¶£££ÔD.»¡ÍqÚ¦¶ '&lu+9³3æ.eë\\Þ\ç\8×f`6$”””” SÖ$5¸Þ}`93qa[°Žvœk®Ñ    + ++gg¢gk2ª´z¸]KžKŽŽII——d]h9.Uo0›4.ˆ††%%%%ˆO1$0kÑ / —EˆˆIZ.k]z0oz .!to°m]Ž\••IK¸Æ. *2Ø Ï4ÄÚy‘±ž>ž©ÆÏ¤L¥ÆƒF ±zµ ¡¡+ä!ä‘WäH°‘Ȃլ›Ú¨HH¸‘…ÆäÚ‘…æ¤ê“ÐÇ V\P·éÛÀZ€ââéff,íñ”&h'AÙUU‚ÚR±›'I>—çç——ç—\—û±ˆi(Oˆdbg¢’1Õ.o-—ˆi•-›iE—Ž\——Žå×m+ .fÉÉÉÉÉÇb}Çá}Ç}¡}á}¡b}b¡ ¡ ¡      +  MM +  M ¢¢šp¢ Mp¢  M   +  Ñ  ++b ÑÑ’ b  b  M’+    Ñ++  »[J¤»UJûûR•Äû|>&•|Ú)I&II|?Ä&&Ú8>|||&XJ>Þ>8>)P>>>>>&ûRRž›KúKûKVKÒ±Òä4i–––•(•(\((ii((ˆ–ˆûÏ‚U/šù/šMšš¢š®õÞë)±¦›V±± ¦¶¶Ú${¡VýÈràá¡ý¬­{-¦¶ )¦¦¦‘ ¦±ÔoVh2DÕ/zoe ­¥y£-]¶£££PÚQÎÑûV Vh'>g4F³ý -'\\ÜÛÜ]\õeeee-]W ¤'!u3$5m†‹Ë+t(Ž(]mmmmm{{{-]]V› hD¹ªp»ÝÚK±›KžžKR8‡K-9æU®t›0¨tŽi†††%%E>$0¢ wœ¢/o›•iˆˆE—"om{]Ž › ›Khhhhh ]È00-VKh›¦]±h¢ØN¨[X)žIÒ??I?¶PyÄyJ®F ›!AÊš+¢!¬©›KyP…±IÞÚX¶Þ?yÚ‘ž—?‘¶RIIP‘R&^6G   È—{.¢p‡QQ7L0 hehhgâ»/‚4]ÓIIÞÞ—çÞÞ——ç•———>ž›EEˆiˆCbkk’Õ Ï—†–i%†i]›i†%ˆO›ÆMb„ekuuk¾ÉÉÉáÇ==Çb}}¡¡¡¡¡¡ ¡¡¡¡¡    ¢ Ñ  Ñ  +  +¢M M M ¢p¢pMM’M }}Ñ  ++   Ñ ÑÑÑbbÑ b +b ’’’+’    M¢MMMM+Ñ++¢’@U@ƒN@Õ¤œ¤Æ[ææääêó;[®ê¤æóJ………Ú[äP…L‘ûP[‘Úyy)))))±)KŽÒž?ûK?I—<—®ê—<†–ˆ((\iEEEˆE)kMgU/šUùUUš¢šššùÚë‘Kh ¦±±Vú±‘×õ  ‚¸¾µáÑk­¥¥¦¦¦± )¦¦±±V±å±ëbD¨/WJ©°õÈ-¶¶‘‘]¶¥‘LãÁ8úûë'Þdš!VFxêù.eh\\ççÞÞ&d -ëeo4h{¥{hk.#´ÚÈO%v¯¢•h-Ä] ¨ ®®®.‚æ‚ ®kkUU//¢+MM¢š0t Îâ‡k®!J‘žIII—>´h]9·®/®tmK®-•ˆE†%†^Z ¡u ´g.m›i†ˆˆ—6Žo.O©+  ¡¡¡¡}  ¢š»»»š++¡}u¡È¤Lx9Ù´4¶K??žKÒ••—K?KŽKÚJ³V!A„N¢+»tÄ-›I——I—\Ž>I>ÒÞII>&IÒI|\O—ŽI>Ö ^Õä0K!+-KI\Žog› ¨ éƒ!…)ŽÞ\—\>>—\————>—çK±ßßEˆèCôbk ~Uk£\Eˆi–ˆi• -•%%i ;¢ÉÉÉé4uu/4,ÉÇáááÇÇ==}   ¡ Ñ¡b  ¡ ¡¡¡      +  +   + M¢ ¢ + M¢’ p+pMÇáÑ       Ñ ÑÑ bîbÑÑb bbb b + ’ bb  M¢¢MM+Ñ + MM@’’ }}b ’Mb¡b  b’’MM¢MM@@MMM@@@ïMš@ƒšƒƒMƒƒ@ƒƒƒUU»U»‚‚ƨHHÆÆÝ;äš‚L…XX…Ú±(iiiˆO¤M/ï/š//šï//šššš¢?)'ÞúV -ú±VV±±‘׸z-¤;f áÑk­£-¶‘¦± ¶)±úúÃaeV'bHk ¬õ{©ÄÈ-¶±VVV¶¥£‘±R‘R8Ržë'ÞøQ.m`aêk.e-hÞ\\\\\1Gò£t!..!! 'ÞÓeÑúVâÃy£–E6lo+ a1„xadQQô7Q´´´‡Εh\FW©±?KLÄXÚyŽÜlh b·ÕU! yKLUŽŽ(•ˆ%E1q4  Í:U!m›•†ˆˆE†IÌO eÁYbÁÎ`p΃ÎpÎ΃Îη‡ÎÎÎ@pppF8\hÎ`aH­)ûÒžûRûÒIŽ?›››‘)ÚÎh›n~@ÑM®Ï…Ú›KžIÞ>>ÞÓÓ———>ÞÒÞ>>•—I—•I•çÒÔÃhz J]]{­¥Kh¥.bQ^„De¬»ñƒ/!©VÓÞ———>ç—I>Þ——\>—V¶EE%%†Cô’ .pAwƒ/Æ\†ˆ–iOE—Ži%—©®š¡Éɹeuá4€¹É==ÇÉ=áá=É=bu¡ ¡¡á=á¡ uáu   + ++++  +¢¢ M +  M M  š¢}}M¡Ñ}Ñ+ ÑÑ ÑbÑbbbî’îÑÑÑ  bM bb+’ ++  +¡¢M’M’’b¡Ñ¡b’’ÑbM’b’¢MM ¢MMšMM@ïMMM’@@’@ï@¢@M¢¢MM¢¢¢M +g¢¢¢g¢@@š@š¢šUƒU®!-(iEEEEE%ÈškUkš/ššš/Uššš/Æû›Þ?'ú±VúRû‘S z-¡ÏÊÊÇýÝ­-‘¦ ¦¦‘±±VVVúë8 hFHù  £Èõ-Vúúû VVûûh'ÓÞ&ã.\³´êk.h\\ÞÞÓyËl´lddxd´‡´×ã ²÷Ú¶¦Cô‡m ÷#Û[lœ…)&|<<>II>•&jQÎF‡Q_8Ü|Ü ÖZÖ—{.ñUš¤LÒI——\——I—Þ——>Þ—Þ—)¦ßßðð†¯b¨¨@A š/o¦†E–iˆ†††††< +Ñ}áÉÉekááe²2ÉÉÉ=áá=ÉÉÉÉá¡uÉá ¡ÉÉ==uááÉá  M      +  + M + MM¢  +M  ¡Ñ ÑÑÑ  Ñ¡Ñ+ Ñîî+ÑÑÑbÑÑî ÑÑ ÑÑ’   ÑÑÑÑ bÑb+¢M ’Ñ}Ñ gM+ b îî¢MMMM@/@¢¢@¢ï¢ïMM¢g@gM¢UU¢g¢¢MM¢+¢¢¢¢¢g¢MMM@@¢@¢@ššUU/e(Ei(E¤š@¢@šïššššššš/ùù¨ÓÓú±ûV hûûhhV)× z-¡oÆ3áÑȶ±± ±¦¦±±úúúRû8dm9H».eVûV¶£±úû''úRhûRûûûëëÓ\Þ?7!-ç`aê.e-'\\\ò>&&&&&Ü>>>&???&?yÚjX¶¦¦%<–ÚM( ¤ñx:°!!o0ži%‹Ÿ‹‹Ÿ¯9hŽ` dÄ›(††•&‡K9Qæ/ U! -K]ŽŽ•ii••iÜ"UÍâä®t{Ž•iEEEE–1$o.}þ&oz¨tm±Ž•O–ˆ––ˆi—¦—I>>d`ž©2ØHÚŽ'Ž?I————IIŽhŽ—Ž‘‡hޤQ§2 ’NUk ¤°0±žÒÓIIIIIIIIŽŽÒI\|•>—Þ>—Þ>\I—>?±‘XË´22Î7â×ø&Ãå8Px0¨AÊUUÄVÒI—ç—>\ÞI—ÞçÞç—) ßðC7pz¨@AÖ@® —–†ˆˆˆ††—?LUÑ ÑÑ¡9/uág€¹ÉÉÉu ÑáÉÉÉÉ===Éá }É=Éá uáÉ=  M +    Ñ+ M +  ¢¢M ¢  Mu=Ñ bÑ bÑ¡bîb+î’ÑÑÑÑÑÑÑîMîîMM           Ñ¡+¢M +  ¡Ñ M b ¢MMM¢U¨šš¢MM M¢MMgM+¢g¢k𢢢¢¢g¢¢¢¢¢¢¢¢¢¢¢¢@@@š¢@¢ƒšU/ E((EO¨š//šššš/šš¢š/ùù//ÕVÓV¶]ûVûú‘×z0¡°¨A*ÇÝ0] V±¦ ¦ VVhëhë?0h±9Qlk.e¶û'ëV¥¶úû?ëë'?ëhhûûhh'\\Üô \Faêk -ë\\çÞÞ\\\\çhhhh ÈÈ¥¶¦±ˆˆ>´h/ÐãyozŽ(E‹‹‹‹‹‹‹yíQ¡!÷ÐÎL]—ˆ‹%†Cd h0ÇA3Ñu oX¶o!K••—••—I".UÍéê oŽiˆˆˆˆÜ”hm³3×jÏ.zo{›\(iˆˆ†EˆˆE%—¶—II:bkуAÊË­±?>>I•I•>I———\\——\››o“Ê ¢Æ‚N !­¦KŽII>IIII?K››ŽI—>••——I—>>IIIŽ—I&U;jÄX)žžKR¶I-¤AâšoÈRÒÞç—ç\>>ç>çI•>—Þ¶±–EðC7b.!@3Ö¢k¦—–ˆ††–?ÄzU¡}ÑÑ Ñ’eu=e²2=Éu  áÉÉÉ=Ç=ÉÉ=Ñ}É=}=u¡ÉÉáu   + M       ++  +¢+ ¢  +  }É Ñ bÑ Ñb ’îbî++’îÑÑîîîî+îMMMM’MMîMMM   Ñ     ¢  + bÑÑ  bbÑ  gM+ M/®»UUU¢g¢M¢¢MgMM¢M@Uš¢¢š¢¢¢¢¢¢¢¢¢¢¢@ïšš@¢M¢@ššU/giEEi(E(‚šUù////ƒ///»®»ùUùP?±  úVúRûå$zmkµãÇÑ¥¦± ¦¦ ±±±û'?hÓÞlh]b*Hk.e¦''Óh)¶Vëë''''Ó'ëëëë?ÓÞççÜô'9Qä .-'(òò\ÓëÞ\ò\ÞÞççÓëžžú¶PÈ¥]¦±E%C[<'+÷FÐ5XÏÆ!e0K%%‹‹†<œì'V:Z*PhO†Cl›'b2pbu ¢X••KP4ÅÁ¢/¢ÍDêz4]Iiˆˆˆˆ—׌o®ƒADJ Ƭ Ž•iiˆˆˆ•±žŽ8”é]K­F˜NĦŽI\I•O>••I——ŽŽI••ŽQt]0+A9ZH[¨ Ƭm£›ŽIÒI?'›¶0Ú±?Þ—ç>——————IŽK›››±KU;‘‘KŽŽžŽåÎI~âƒ.ÚûÓ———\>>———\•|çç—Þ¦–Eè‹C7b!Æ¢3c} Ï]I•<†<ŽÚóƒMu  + ¡¡ Féeá=/°r2==} ÑáÉÉáÉá=ÉÉáuÉá}=Ç}ÉáááÑ    ¢M + + +¢ M M¢ M+ + ¢MÉb  Ñ¡Ñbîîîîî++îîÑÑÑîîî+îMM+gM+MM+ÑÑb   +  ¢Mb Ñ ¡¡  ÑÑÑ¢MMM+¢¢M¢š¢¢¢¢¢¢¢¢š¢¢¢𢢢¢¢¢¢¢¢¢¢¢ï¢@@@M¢¢šššš/¢iˆˆiiiE•®šùš/ƒU////ššš//k»/©ÞV±-Èëžëhëë‘$õzÈî­/_Çý¥¦ ± ¦± úûëÓÓÜ´]h-bzk.e]'ÞÞÓV¦û'žÓÓ?ÓÓÓ''ÞççòÜ hhbQä 0h\(i(((ç'\Þ((OçÞ\\\''ë''ú¦-È‘¦Vˆ‹‹)$+Ž``"Ät! ŽiEEE%%%E†\1x“zVÚìXK(†%Cl ŽmbA ~N»»»¨tJ{Ä-››±‘÷^}z 6Îl›•ˆEE†ˆ–w`/`~,Ÿ.z ›Ž•((i(i•±-?5˜Ã¢âéÅ£KI•——I••—IŽ••—K›ž]„+.0+¢}~2×ôÅ‚.ä40]›KR›)P¸oÝ4£KI——I———•>—IK£­Ä­¥£­4­‘KhŽŽŽKXF ¨à$U¤m žIÞ\\——II\ççç••••¦?ßEèèC@ÆÎñc á®¥I––ŽÄN¢ ¡¡uÉ¡   ¡¡¡b„4áágm×¹=áu¡Ñ¡uá}áá=á=Éá=á¡Ç}¡¡áu}¡Ñ  + M M+¢ ¢ + ¢+ M   M M }Éá}b¡bÑÑbîbÑ’îîîî+îîîîîîîîîMMMM’îî  bÑ  ÑÑ  M+M    }¡}Ñ  îgMg¢¢¢ššššššš¢gg¢g¢¢¢g¢¢¢š¢¢¢ ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢g¢¢¢UU®I†ˆˆˆ–ˆ†(®UùU/š/šššùUššUù/ù¸òûhûúûVëh'y{z0+Èï:ÇÑ¥¦± ±±VVúúhÓëÓ>lVh0Fâ¨.e¦Óç\Óúûûû'ÞÞ\\ÓÓ\(ò>l{ë-9*ó. t{iii(\(iO(\\\\Þ'hë'ëû›¦¥¶¦ O†%<÷Úh®—Fñ#5ÄzÆt4{]KŽI—(•••Ž]÷íb c³å —ˆ‹‹††œm  N2¾¾ñó!!!t ¶žIŽKK”ÍkäÛFê ]Ž••ˆEˆ†I¯? ó~2[¸..¤©0]›hŽIŽž‘Ä8p$z¨Ùœ£úÒII>>•>I———••ž—I‘ÄÄJ0—phšà├;¨®‚ÝLP£¶‘PJ[¤.ÆÝ¥úI\—\——>>I—Ž‘LÝt¬Ý¤Æ©È-¦¦±¦)ÚQ9¤+’2wle£ûIç————>IIç>•>—•>>>±\–èèèCÎWƒ„c@á+0—>­¨ ¡¡b}¡Éu¡ ¡ ¡ b* g==+¹ÉábbÑ+ Ñ  Ñ}áá}}áÉáu ¡¡¡   +    +M++ +M M  +  ¢MM g  MMMu==b’b¡}îîîî’ÑÑîîîîîîî+M+M+MMMMMM+MM +      M+bÑ  +ÑÑ¡}}Ñ+ÑbÑ  ¢M¢MM¢ššš¢¢¢ššg¢¢+¢¢¢¢¢š¢¢¢ƒ¢¢¢¢UUU¢¢¢¢¢¢M¢M¢M+¢¢¢¢¢¢UUU0i††††%ˆ‚/U/š@ššU/šššù…–ÓÞžVh'\Þ'hûR‘˜{!¡{-M2:9¥¦ úúûûVVûë'ÓÓ>êh09²H»z4-ò(çÞhëëÞ\\çççÞ\ç(Oii|d-heFô¤ õiß–iç((i(\\çç\'ûûëëh±¶¶¦±úˆ‹‹8q¢+µ§Z5X[!z!Ï {--]¶P[‡€ ¥o›’~˜¶•E‹‹‹‹‹%Ož¶{4tÕ·}-h#øim4.³Aàqê;Æ‚®¨¤ój²Îâ_œÕ!4yKÞ>•>—Þ>>>&8)Ĭ¨ kš.Ho° m©©Ä„QkoѪ;X›ÒÞ—ç——>••IIÞ—••K>–ßßèEC@nÖNuÑ­¤  }}}¡}ÑáÉÇ¡Ñѡђ*{+==¡0c¹ÉÑ¡Ñb ÑÑ  ¡Ç=Ç}uÉ=uÇ¡¡b    Ñ       M  MM¢M¢MMM ¢¢šMMM¢M bu=b’bÑ’’bbîî+îîîî¡ÑîÑÑîMîMM+++M+îM+  ÑÑMÑÑ+MÑ      }u}+++ ÑÑMgM¢¢¢¢¢š MM¢+¢gM¢¢¢¢¢¢¢M¢NNƒUUN¢U¢¢M¢M¢¢¢¢¢¢//¢g//•†ˆˆˆ††O¤š¢Uïšššš/kïù/Æ»eòÓÓVV ÞÞ'ëžë)cÈz¡{g¶Ñ9Ô9ý¸-Vúûûûúûë'Óh2S¨z°£'(çûúh\>\ò(iii–<œ]`~$[ ze]\iEiO(ò(iß–(\\ëûûûëhú¦£¶¦±ú–‹|«££8€qœØ…Ï!z!tóêÕpbñ]zkeFr“—ˆ‹‹‹‹‹^1CÕ+4h—oArÐ5Ú!!!ttQSFo®¢ 2cÄŽ•†iiiEˆEEE%†I+K @³2˜ãËJ;!..Ƥtt¬;JÔ1Y zA‘›?ÒI—•>•(žyÄ L0ž›;‡F.u\Yc9( ¬Î„2ª[ËÆ ælQA9f@¤ÈVÓ——>>—I11Qax´QœNƒUƒ H¤dd³"09פȱÒI———\>I\—>••|•ò•ûò–èðè<ªÎNâ˜NuÇšUb}Ñ}¡}}}¡ uÉá¡’    ª{=Éu-Z¹ÉÇu}  ¡   Ñ ÑÑuáu¡}ÉÉ=¡¡¡b   +MšM MMM M+MMMMM¢M¢¢¢M+M+MššMu=îÑÑÑbÑÑîîî+î+îÑÑîîÑîîMîMî’’ïïMMMb Ñ  b Ñ+@ M+M + M’Ñ}}b’ ÑMMMMMM+M¢¢M𢢢¢¢¢M¢¢M¢M¢p¢U®zzzê! U¢M++¢//g/k 4eÝo¬ÏUš¢š¢U/šïš/ïg@N‚¨ÕÄ–ÓKû±]ÞÓëÓž)c¡mš î2“9} 4¦Vûûûëëûû'Ó\|lû F”ƨe]Ó(OOOòÓûëëÞççòòçççòOßßßó“{g7à1˨0'iððEi((ii((((Þ'Óhû±-ÈÈ VIO•––ÃÐ7Ž0+•„§Ì²Z_ôêHH¨æ‡³DñµF KSZ:—†‹‹‹‹‹†ø$"ãìmb]{-ø§ìd:j;œê¨æ‡bñ  £gD×;IiˆˆE†E†††å´øzV-N`ÛQx*;¬Ïó;P1w˜#Íi(gA`ã¥È0È¥££yyŽ—•)¥K—|6À”×c$Ö.•¡fÊ5$!\¡0p¾éÎ êHƒF93)‚$ÅX±?I>•>•>ÛÛ,§¼A9ÎdêÆêêêÅ÷w àMmk]âÙj?I>•>••>O•ŽVK(>>•ò'–ßEè<‡݇â$»=u}}ѡѡ¡}Ñ }=uÑ+ +b]É=u-q¹É=+M ƒÑššM¡ ¡ ¡=áu}áÉÉáÇ¡¡¡ Ñ š¢MMMMMM+M+M’M M¢MM Mb MMM¢’’’b==}MMMMMMMM’îî+îÑîîî’+î++MÑÑ ’ Ñ    ÕäÕ+M M’+¡u}¡ îg¢M +M¢šMM¢¢¢¢¢¢¢¢¢¢U®®ztäóózU¢¢M¢¢¢¢g¢¢¢//gggg+kšš/¢š/ššš/Õýùùòû¦±ú ÞÓÓÓ)˜ ù Ñ9Ã9 °£Vëëëë'ë'ÓÓÞ>´'¸Fפýz4 Þi––\'\\çò(>ò(ißi––Ë 0R³1J¤!4¦\EEEiòEßiiOç\ÞÓ?ëR¶{¸4{¶VI••••– ¼lŽ!/IjÐÌ€”cZÖÖq¼1X/gN “•%‹‹‹‹†,¼¼Û.›0Z„0{+iñ²×$cqâbo ±bâ÷KŽ•iˆ†ˆiˆE†Eˆ††<)´Ük(te’³23ZZQÎ`Î@F92bêiŽIh`x –†ˆ<––•?…›•)¦•>q&e›@p29àrÍ$DÎÎ``pFA?VhÆ1ZÅRŽI•>••>••\OK¬®;I>••çû>––Eèè<$‡oo‡¾$¢á=áuu}Ñ}}}ÑÑÑ}Ñ  u}UM b_]uÉá Û¹Éá!U¡Æ‚MUU¢¡¡ ¡  }=á}uÉÉá}}Ñ++M¢MMM+  M ++¢¢MM+¢M+¢MMM@¢@M}ÇÇ’š@ƒƒ»‚H¤Æ¨ÆHæH樂Ƥ‚ýkýæý»ùUšššM¢ïMÕ¤®¢¢M¢M¢’ ÑÑ}ÑÑîî+ MMMg¢¢M¢MMš¢šš¢¢¢M¢¢¢®®¨zz .¨®N!ä®»šM¢M¢¢gg+g¢gggg///kk z4;»@U//@//ïU/š»®ýùùçKK±VVÓÓÓÞ +e¡9w9‚°¶úûë'ÓÓÓÓççO'Vm`×H z \Oßßi(òëëÓ\ç(((i–i–Oå*î{AÐ;[ t{(Eððè–(Eii(çç\OÞëú)£­°Ï°Vކi••i%‹Zª +kÔª”ÌìíÐâabUšFQÚO‹‹‹‹‹‹CÛÖhŽh]h«ÐŽot0åa„ÐìYì§b&+¡tøíSI•i–ˆˆ–ˆ–i•(•iOO—Ô´Ö•+'.’ÎF2~„f§€Ð ÜeÑ›(•Yí<ˆE††††ˆ†ˆI£‘I¦ŠºÜ/4(+4®à‡JXÖDQ‚]+…^61$`dû±<éªû&\>>ç>\>>&¡V4]=9F9Aff¾,ÐÛÜ@m ± Îñ&I—••••>•>—>>•)» ‚›O——ÞO–%èè<$oÕ¾ÙuÉÉu}}¡}}}¡ ¡¡ U¢} ¢ +b:Vu=uV¹ÇÉ¡;äƒzUÑMM Ñ b Ñ Ñ¡==uÑu=É=Ç¡uu}}}  +MMM M¢MMMM¢¢¢¢¢M¢¢šUMî’M@Ñuá’ùùùÆÏ¸õ¸;WƤ¤W¤Æ¬¬‚ý¨N‚ƤHýý/šùùš/ùk®ýùššƒ/gMM¢¢Mïýä󬬤/U ¸tÏÏ»š»k»UUUUUUUUU®UUU®®z[J¨»¢+¢ggg¢¢gg//kk eem-'(EWMšššššššù»¢ùù»šùXÓVú VVÞ\Þ$ +.h}9Ã2+.4-ëëÓÓÓÓÞÞçòOd'ÄFׯ z \iEEi–(òçÞ\\iEi«7kâcJz¨e\iEèEi(ißEEiOOÓPœlÅä¨.ȱŽ%ˆ†‹‹† ×6¢hŽ]•h ›h—e {+šbFxPO%‹‹‹‹6¯š ' 4'-4ZrÔbŽ›g I04m]•tg¡Up§å––iOOi–ii–––ˆ–ii>‘ôR/\0{ Žz iOK|YYv††%†%†%††ˆŽÚKŽådÇgŽ]¢{»4h FZÄ)û1qÎ)+}h z z¢ht hpF€«Iç—>—>•>>Ác>b)K!0zM¡¡gÝtÆ›KKw3²«—••••••••I—hÆšÆ?I(•|Ó(ièˆ|Ùo´fÙÉÉuu}¡Ñ Ñ  Ñ ÑUM}¡u¡Mp_ u=uÛ¹É=¢4t¨M}¡    Ñ +  u=áÑ áÉÉáá}}}ÑÑÑ+’MgM¢MMgg¢ššššUš¢k Õƒ@ïšïÑááM@š¨ÆÆ¨»šùšùùùïMïšùùšMMù»/ï+MïMïîïïMgMMïïMMšš/°ûû'•Äk/U4——(Žt‚¨.¨zzzz®N¨¨.zzêóoJ04 U¢¢¢¢Ukk.oe ›Ž\EEE%%E%%%E‹©šššššïššMk®ù ç)0V ÞÞççÓÓ˜4o+.h}9Ã9+‚°-'ÓÞÞ\\\çòißœhmFפ ! ±çEE–((((((((Þ(OEE÷> |é"Ëó ! iEEEEEEEi(ò(û72f˜Qùktõ h‹‹‹‹†«Ãí6®44®Ž- zmŽ4+¨¦ø˜QËåOE‹‹‹‹C#œ­I••kŽŽ …v íÁ¡Ž ŽeU+®  !ÄœFQÅøC††–O(Oˆˆi(i%%††%–(IåœQ?Žiz¡ oe.¡ii{+}`íŠ6E%%††%††%†ˆK)ŽØ+ŽmmŽ0{th¼$y›I>O^ÛÎK tžž·Û«>>ò•>>>••&Úóaw)Ä he++‚t+/¶K¢@×Û1—•>>>•>>••••••—(>± KOO>•¦žOOEEˆ<Ùo‡âGÉÉÉáuu}b}}ÑÑÑÑM¢ ÑÇ=} Ø›ááKÛ¹Ç}Uz¤z }ÑÑ         }áá}ÑuÉÉáu¡Ñ M+îîMîg@¢@ƒk»N.®»HHW°õ[ý»ýùùNš+NH‚ùï»ùùù»»šùýææý‚ýùùùgîškîï/g+g+Mggï£'Ó\eUU4( {e!.¤!oꨨtäó{0 00o k.!!e›(†%%%%EE†%EEhg//š//UU/ššù»ù‚hÞúú¦V Þ—çÓIR4ogoz'¡9“9‚4¦ëÞ\ÞÞÞççòOi–'h{p”¤ ¤mú(EEEEEˆEE–(iò\\\(EÖ1!¨cþ²ÔÆ tõVçiEß–EEEððEEßEiçÔbwà~Ù@ùt ›‹‹‹ˆOˆ<ø×Û«ægŽžžŽ elx¾#ב–ˆˆˆ‹‹‹‹8˜”7‡ÀÀÜvC‘,^‘U o]K.l$Zœ ^%O((iO†††–iˆˆ>åË`Q&-Ï¢¡g‚Ä8Árx6%†††%%%%†%†††%†¦Ž­166Í 1ÖxxJ]›\••|wq^>-£ž)´ÛÖÜ>ç>>•••••••ò>Ž›5l`D”|™e®MÑ   Æ0?«×r«>•••—•••—•—>>•••—••—–>Ž•›—()'O|ˆO>|Ù‡o‡âªÉ=á¡áÇu}}¡ÑÑ   +   Ñ}bÖ]áuK#¹á=uÑMMb¡}¡Ñ    Ñ  Ñ }á=Ñu=Éáu}Ñ¡MîM+gïï@š¢UU»NN¨N®äÝ…­…°[W¨ïîNý»šïššïš»ùù»šý‚æÆÆÆÆýN»gkkšg/ùg//k/g. ©e±(m !z{( om› eottttäzzäêóäotÆ!.oe0]iEi%%%%%E%E%%†%††%EEEE†(/ggg///šš»»»ù‚ûÓ›'ûÓžiiÞÞIÓR×e/t¤9Ã9+. ¦ëÓçç\ÞÞ\(òOiOrÌJÆ ](ißEöðEEEEEß–&óF¨w³’/Ä V‹(ˆ‹͘€Ð6Í cG7œÐ"ø•%EE‹%†–•O•O•CC‹v1ÔQÙ Í6^Ö7ô#8|C†iOˆ††††%%%%%%–––?5‡ƒ´´rÛÅø†%††%%%%膆E†††%ˆ†Ž¦ŽKy•†††%††CŽCI•i‘›••>—>8¯³aôr61Þ•—•ç—ò•òòòòò•O>|•&Ã8¯³xlÎxx*^¯Ô>>•>>>•——>•—•••>>O>—•I—±y›X£PÄ)ÓÞ(——>@t‡éªÉÉÉáÇÇá=u¡}Ñ ¡ ÑÑ +MMb:=á ¹=u¡ ¡Ñ¡}}    bb Ñ  Ñ}áÉá}uáÉ=áuÑ¡ÑMMï@šš/U»®Õ®¨UU¤ÆH¨W;t¤Æý»ï/MM//ïMý‚ý»ýý‚ÆÆÆ¤¤Æ‚kùkšýz///ý k///k//k e Vemeh†'Ih{e4oo!z. ®. ®»®/ iE†%%E%%E%EE%E%%%%EEE†EE%%%EEE%E%.///¢šššUùù»!Þçûëò\iÞ\Þûro k¤W'}2w2+.©¦ë'ç\\ò((|êh{F”Æ z4 \(iiiiii–èEE%E%ööð%EEii( ^0/î«r[.. -VÓiEEßßEßiò)ãù/|"FF/ ›‹‹‹‹†–(ˆ‹66‹ssvC6C<|6v<%Eˆ†‹‹‹‹‹v6CCCvC^O^^|†C%‹%%Eˆ%%%%ˆˆii––<Ü&>>>>>>1C^I>C%%†††E%E††††%†EE†††ˆK£I)]•†ˆˆ††E†%%O¶K>ç>••1>>|øKÜ>>>>>>•••(|••••••>—I•ޏP•><|>øøå‘Úå&|øûÜ>•>•——II>——•—•>———•••O>i±±?¸äÝúOòòO>ãÎté$áÉÉÇuuu=u¡}}¡}ÑÑ}¡}¡M Çã­ÉÉu-Z¹=á}}¡ÑÑÑ¡ Ñ    + +M  +u=á¡¡áÉá¡¡îM+Mï/šïšššƒU®»¢»ùšƒùÕùƒk»»»/}šƒšïšN¨ýùý¨¨ÆÏϤz »šNzýýWt»ký Æ! ý‚z....!o -¦]¦(E›0{%h¦››0oz!z.®kUU¢¢UUUŽiii(EEiiE%E%%%†E†E%EEEE†%EE†EˆE©/šUg/ïšùktÞÞûÓÓhççÞçÞÞ?rtmk!\}9™9î.© 'Ó\òçÞÞçÞÞëû?lhh`×.k.0Vhž''òEEðððð%‹‹‹öðEii<Û¨'mÌ™Ýz ¤{-VO(òòçÞVø³Ô>"2F/] ‹Ÿ‹%O%Š‹‹%ˆ%‹‹‹‹‹%%%%%%%%%Eˆ––––†Eˆˆ††––Oiiˆ†%%%††%%%%%†††††%%%ˆ>y??0ކˆEE%ˆ††(£Ž—>>çç—>——Þ>>ò>——•ò••>••|—••ç••žäe?(>\•>Þû)yK\—ç>ç>—•>—••——•••••••—•—••I—–¥‚ÄžÞ)Ä…?|çOß>Ùoo‡â$ƒÉÉ=}==áÑ}}}}}Ñ¡¡}}ÑÑ}Ç*m¡=Éc¹ÉáuÑÑ Ñ¡}Ñ    MMMMM¢  Ñ}=áb¡á==}ÑÑÑÑ’M@ïïššššUšš¢+šš/ùùùùkƒk»ýýÑáîšššùšš»ùï»äƤ[[¤Ææ¨ÆWJo e! zW!W¬°m0]-]–o—t!Ï! zt/U¢¢g¢//¢/UkU.•((i†EEE%%EEEEEEE%%E%%%EEEEiE\.¢g»ùšš/»Uä?ÓúûÓžÞçÞ\ÞIûS!.¨o\}9Ô9+.©±'ççÞÞçç\ëV0mPN' `$»k! ­{0¶hß%ð%%%ð%ööðöÛÍt oû¼ÌÃó¤. zt¥¦VVú¦‘ó˜Fh¡gÜÌFÎkW]›‹‹‹%%‹‹‹%E†‹‹‹%‹‹‹‹‹‹‹†††‹‹%††%%%%‹†–O–ˆˆE†IÒ>OE%Eˆˆ%%%%††%†Eˆˆ†††††IyŽ —†E††%iE†0I|———••|•>—II—•••ç—IIII>>•••I>>(•I•ަ¤X—•\>O•ž›±Óç>ç••••••(O>—••>••••O••OO•••O‘;L?•IJ>>òO1Ùo[âcÕÉ=Ç=uu}}}¡¡}}}Ñ¡¡b„ g=É©r¹Éá}Ñ Ñ}¡}¡¡     M +M +  ÑÑ}áá}ÑbuÉáî¡Ñî+/¢M   +ƒgï@šùä‚»šš/š»‚MáÑšùƒïùšMý¬WϬ¬¬ÆÆäóÈ--õÏ!© ee4o¸ m¥-¦-¸oÝV. ..k4\I%Ž/g¢¢¢¢U¢U®®!(iEEE%%E%%%%%†%EE%%%E%%%%EEEiE/k/ !ùùïšùùÏ?Ó›ûh\hÞ\\ÞÞÓ8Ùz-ze\¡9Ã9+zm ÓÞ\\ÞÞçÞ{t;³]e³c@Mgkzttt4'%ðð%ö‹üööðöCqh+gçÛÌacŒ¤¨ .!toe mm©…LLªp¼)et&Ì`‡‚{]V‹‹%%‹E%‹‹‹‹v†v%%%ˆ–iˆèè%%†ˆ–iOO–žûúKžÞOˆEEiˆˆ––E%III?—IŽI>IŽRÈ®©?•>O(çò?RI>ç•••|•••>>••|•OO•–O•OOO••O••ޱ¦)—ò¦õÞÞÓ||>Ù‡otƒ„cƒ=Muuáá}}¡}¡}}}}}}}9Êkááš°,2á==uÑ}}}  MÑÑ MM’ +     Ñá=g+îuááÑÑî+îMïMƒƒ¢   M@U»ý𻯂»šƒ»ƒ»»áušššùššNý»¤¬¬°…¤äõ£ûÞh¶ ¦±VV0õ­00{©¸Ï!¤ /+z!o]h—iE%%% ¢¢U¢¢UUUk U!\Ei((•i–(E%%%%EEEE†EE†%†EiEEE%(  ..¬šUUUN/ùÄÞK±±žhhhç\Ó™7]t/ \2™9+zõ±Þ\çëR88åjËóÖÄ~˜@Æ´´l´lHæ¨{hi%ðöö%ðö‹öööööè1#æ]tîçÀYf d¤Ææ.zzÆêœœQéñ×Hg-û¬ÜÌÎe0¦›%‹ŠŠ%E%–iˆ†‹‹‹‹‹‹‹‹‹‹‹‹‹v‹‹‹%–O–E†ˆˆˆˆ†††E–i(•—O––çžúV›RIOE%EOO–iOˆO(—•O–O–(‘››K•†i—•—]ÝK•Ž›)±?IIK±›V?ÞŽž›žŽIŽ?KKŽK—•‘›¸š…Iòòòò•ûVKÞò>>|••>>•••OO•OO••OO•OO••OO•>OI–ç±çR?\ÜÙÎÎñ:áÉákUÑ¡u}}}Ñ}Ñ}}}}Ñ¡}}2 ¤.¡‚ó=ÉÉÉÉÉu } M¢¢ ggMg@¢+’ +î uuîNùš}á++ïM+ï»Uš®»U®»ù»ššƒÕk»‚¤Æ‚¨}ášýïMï/‚ÆÆÆÏÝ…¥PX¨;ÓOò £m] ¥°W¤k/kk¨e0 '(E%%%%E†%E%%%Eo/Uš¢š¢¢¢šk®®®k—(•((••iiiEE%†%%%%%E†iE†EE†%Eiˆ%%%4Uk..4Ï////ùk»¶ÞV‘¶h±›òç\ÞÓ8QMho++2øF¨ ¦çÞÞÞ)ôªÀSdSÖF \x§íÎDQ*âcm]E‹‹ö%öððöö#»].k]1À#A*Á”dHæ‚NÎFFA~bkï<ÌxJ¸] VŸE%ŠŠ%†%‹Ÿ‹ˆiO%‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹èˆiiˆ%‹èiOOi(–O••(•O—•(–•ž›VKIi%<(•O•—Oˆ†O•(O••i–OO•(hÏ0Ž0ÄŽ•ˆO•—•(±£Ž?h›±›K?IK›K›RÒ?K±K&I>IK±›ž››?I›K›Ž©H©•i>••|çûRûç>>>••••>>••OO•OOO•–O•OO–•OO•OO–<•|iòVûÚÈÚÚ7@ƨbµÉÉ=Ñ Ñ Ñ¡}Ñ}}¡¡¡}}}¡¡Fµ g+ÆÆ É=uuáÉÉá}ÑÑ’’MššM@¢ƒ»¢Mî’MM}¡MÕkMÑáÑššùùƒýÆ‚NÕN»æ®»»UƒïgMù¨»ƒ‚¤WW¤óï+ù‚ýù‚ÆÆ¤¤¤óݰõ­õõ¬eRÞë¶{­Èm©©Ýotz .».!Ý £hißEðöèEE%%%E%%%®/¢¢šš¢šUšN‚ »oiOi((iiiEEE%%%%%%E%E%%%Eiiii%†Ÿ\/» k.kšÆ»š»»NûÓ±±± ç\çÞÒ& -Óïà:bz ¦'ÓÞ&;2$³$6Í1Faé¡t(xÖ66ÍÍ6"#§ôÔOööö‹öðððEèEðv ÛQû¥tòÁ#Ì€~³*$c˜írSئ¡4/}ï>#Ú]VV›ŸŸ%‹E†‹‹%EˆˆˆŸ‹‹Š‹‹‹‹‹‹‹‹‹‹‹‹‹†ßˆˆˆè‹%Eˆˆˆ(iiˆ††ˆ††††ˆ(ŽhKž\O%(\I—(E(–Ei•iOi•I¸eKŽLIˆii—iOŽ]¥¦Ih¦ûŽŽK))‘ûÞÒ›yûŽ—I›)‘-‘KII¦?žXRI—|>(O•ÞIÞ•>•••>•|•|••••|•••OO••OOOOOO•OO••OOOç )©¬Ýó[A} ¹¹ÔÉÉ=uÑÑMMýš+ÑÑ¡Ñ}}¡ÑÑFge»ÝNµ Éá¡}¡ÑÑáÉu++¢U»šUUšƒ»ùƒMîM’MMáîïùùÑuM»ššùùk»»Uškƒ»‚ä ƒ‚¨t¨¨Æ¨¨Æ¨»¨È¶¬¤¬ÏÆ‚ýýH䬬݅°LJXyõ ¤z /k‚!W È-'ßèüü½‹öðiEðEE%%EEEEE%%%%UššššššU®..km†i(iiE%EE%%%†%%%%%EEE†O(E%% k///ÝÝ»»æ/°Þ›±¦¥£¶ Þç\ÞÞ&ê\0u]A÷F+.¸]'Þççëôgݸ\h ¡k{((((•('¦ÔY>–%öüüüöööð%%EEEðö‹‹ÁÐ1ùt{k¸ûø16Í c×*‡ ë/¤}e ÷/ §²¦Vûh%ŸŸ‹‹½ŠŠ‹%%%††EEˆ%‹ŸŸ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ˆ†ˆ†%††E†%%–††††%%%%%%†O—IŽŽI—†%ˆŽ\O††ˆ•iEO••ˆ•((——K°-• –•—ii••¦­K›±KŽ—I›‘)‘Ž—Ò‘KI>IK¶›)??I?IP.L?•••O|(ò—ò••|•••••OO•O•••–i•OO–•O••O•OO•OOOIK›?IIŽK)P…Úy¬Ïä¤yP)Ii•((ò(O(>ç>••••OOOOOOOO|O•–•|–•••–O•OOi–––|1ÛÀrD´9¹¹ Ô0ɹ÷¹= ¦\ˆˆEI­ÆïïîÑ¡¡Ñƒ¹á-oo9¹ãÉu}ÑÑÑîÑáÉ}MïM@ššƒšƒùýùïMïMMïšùuWõƨ¥­©e¥\)ûõš»ÝÓ±ýý£½£»¨ý‚ý.-ç£ýšùšš//»‚Ƥ¬ ¦¦VòiEEð‹‹Ÿüü‹öüü‹ööü‹ööüöE–ðð%ðèEˆEE%EEEEEt/U/UškU .i–iEEEE†%E%%%%E%iEiii(ˆE'.z¥®N©Ï¦–Þ•hh''Þ\ÞÓIÓ&/V¡h¥Ïép¨¸ (òÞc1£Ñš/ï¡ÆõïMƒùšš/k Æ«#ZˆT‹üüèðEEðððEðEðE1)÷Z|ù¤û»]hhVe+V aâ*ôÍÍù¡a²Lë''Vi•†‹Š‹%Ÿ%%%E%‹ŸŸŸŸŸŠ‹‹‹‹‹‹‹‹‹‹‹‹‹†ˆE膈––iˆ%†‹%†%†i>••Oˆ†%–O•(>Oˆ†–•I(•(›-ަĕEi—i—••—-)¦)‘KŽ>IK‘)›?—I?››KIIŽKKÕeX¨ƒ¢MUÄŽŽI>•|OO|O>Ó?\—OO(OOOOO•OOO––•i•ii––•ii•••OO•>˜ZÐAÌZ,€ZfZcÔ V¹¹7bš \%%öüüŸŸEû{¬ýM¡Ñù¹É e¦=¹¹Éá¡¡¡¡=Éá@MgïššMgg+++gg.Þeš-({VüEV±ði{-kk!m»(EiûW¨¤!kç¦ýï»ý‚¤ÏÝ-ë\iðüŸ½½üüüü‹ööüüŸüööüöðööèEEððEè%E%%%%E%h/škU// Uk‚.oEiE%%EE%%E%%%%%%%EE%%E††((•EiEEEio.kú\hh¶]h' '\ÞÒ??Q.-h+hÄ[§Ê@. VÓçò\òÁ˜ÛÀÀÛqZZZqqqZYœœ“&‹TT½üööö‹öèðEEè%ðèððEEEiiÜÚËQw< m!.¤eà ô˜ úç|ŒªËPë''\'±•Ÿ‹ˆO%ŠººT½½½½‹%%‹†%‹Ÿ‹‹‹‹‹‹‹‹‹‹‹‹%†è%††––†%%‹‹‹‹‹%ˆˆ%ˆi—(%ˆ†•<†%K] Ž Kˆ†O–•ˆii]?Ž?KŽI•—Ž?K??I•——ŽŽŽ—•—I)›£Ž—KŽI›K?KIO•((OOòOçÞIç•OO•OO•OOOOOOO••iii•–•iii•iiiiOܘ·Úg+¡g'g{0-Çʇohiöü‹‹üöööE\¬¤Æ9ÉmúÉ÷Éáu¡Ñ¡¡É=Ñï/šïMMMMîg+îM( k'h©¦üö(ë (V4i.g/»!tk-ü(Èm]k°iß ¸VV(EEEö½ü½½½ŸŸüüüüöü‹üŸŸŸüŸööüü‹‹öööðèEEèEððEE%%%%%ŸE!U/k®tÏ/ t.VEˆEEEE%%EE%%%†E%%E†%iiii(E%%%e¸ÈhiO'V¦±V - ÞÞ\ÞÞ&ªt{K ¸¾Êbî. ±ÞÞççççòÜÜ>Ü|^<<(II—•OI Ú•—OÞÓ—òOòO|•OOOOOOOO–i–iiiii•••OOiOOO<{- ¡ -ú0±­ø"9¤0\E‹ööüŸööö%Ol-h=¹5¹Éá¡¡}¡}ÉÉîùJ)£Æ+Mïšz ++kši°k°ßi¥­EüEð' -mišgh !E öV\ eŸüßüü½TTTÂüüüüüü‹üü‹üöü‹üüüüü‹üö‹üüüüüüðEEßEEEßðð%%%%%%%h/k{ /ttW%E%EEˆE%EE%%%EEE%%E%EEii–i•(ˆEEEE†%%EEi\úV ]-Þ\ÞÞÞ&SÄ/4ÝfÊb ¸ Ó\ççòòçòO–EE%ð‹üüüTTTTTŸööE%E%Eè%ð%ððèEiiiòii1«&ø™ø>Þ8y¶ëÓÓçç\\'±¶?EŸŸŸ‹E(E‹½½%†%‹%ŸŸŸŸ‹‹‹ŸŸŸ‹‹‹‹‹‹‹‹‹‹‹‹‹èEEE%%%†%%%‹‹‹‹‹‹‹‹‹‹††%%‹‹‹%• ••¶•†%†—¶KOi•–<••–OO•OO•O(>–OO±ä¨ x*ÙÖcÖÖÖÙ$ÍÙÙÙ¶E%%%Ÿ‹ü‹öüüöü‹d+(9«F¶(ð‹E£o}îûü½½Â–äùïW–!¤]¥o(­ý/£öEE£ ¥t ]++/©0¥i!V{müüöEçõûßðöüŸüüüüüŸŸüŸüüŸŸ‹Ÿüüüü‹ü‹öüöüöüööðEßEèðððèEEE%E%%E%%E%%Vo!®{- —E%†EE%%EEE%%%%%%%%E%%%%E%†EEi(i(iE(iE–(ç\hVV V-0£0Þ\çÓÞÓ?S{+h0Wª@‚4]ë'ççòçç(iEEEE%öðüŸüüüüTüö‹ö‹‹ðð%E%ðEðöðEE–iO(((((((Oòç\\'''Þ\Þç\û]¶E‹Ÿ‹‹%iˆ½Ÿ‹†%Ÿ‹Ÿ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹†††%†%†‹‹‹‹‹‹‹‹‹I±iK †%%i•)… •••OOOOO–O•>•—O–—Læ;ŽOÜ?|<èCCCCCû?ÄÄ'(%%Eèüüüö‹‹‹‹ŸË+((+2øFt£ðööi[‚ûü½½½OÆšïEüðÏt']õÏ-W{è(]©¥ý¤ m¨kýýÝet.0ßðüT½üVÓOðöðöü½ŸüüüŸüŸüüüüüüüöööüüö‹öüöððèððöðE%%%%E%%E%'ee{V%%%%E%ˆ%%%%E%%è†%%EE%%%E%%%–(((i%EiEi(((\ú-± ]]--\ÞÞÓøGt-h¡ ®µ$bÑ 4¦'ÞÞÞ\çò(––ßðððððöüüüüüüŸöð%ððð%EEðEEE–iiO(OiOO((((çç\ç\\\\ç\ç\릥0¦ò‹†%‹½½ŸŸ%E†‹‹‹‹‹ŸŸ‹‹Ÿ‹‹‹‹‹‹‹‹‹%ˆ%%%†%†‹‹‹‹‹‹‹‹‹‹‹‹ˆ-hI0†%O±yR—O•(–••OOOOOOˆˆ–±;KOˆOO–O–––OO––––OOOOOOOO|(òçhúKÞò•OO(•(OO(iOiOO(OOOOO((OOiOOO•ç'(ðöðEO\ ÈVEü‹ü‹üüüüüüŸŸËhh(9ÃFt-(üðð‹OW–‹‹‹ú‚ùHh\h ! /‚‚¤ £V¥0!Æ­¥\õ+/°ÈV­!\iö TüüðEŸEÓßööü½üüüüüüüüüüüüüüŸŸü‹‹Ÿüü‹öö‹öðEEEèðð%%%EEEˆE†%%%%‹%%E%%EEE%E%%%%%%†%E%O(ii((EiiEi(O('húhëhhV\ççI&7 VV±'MÃb 4¦hÓÓÞç\(Oi––EEEððð‹ŸŸŸ‹‹ööðèEßèEðEiiiiOii((iiO(òÞÞ\òO\Þë]0õȞ蟋‹‹‹%‹½½ŸŸŸŸŸ††%‹‹Ÿ‹‹Ÿ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ˆ%%%%‹%‹‹‹‹‹‹‹‹‹› •¥•%– KOˆi<–O–OO<••–O›y›–IX—ˆˆ••OO–O–O-}0\}9Ô9Ñ 4¶ëÓÞ\|(–èEßßßèðööööööðööŸTüöööö%ððEEEEèEiiii–i(Oi(\\((ò\\\ È© £i‹‹††%TTŸŸŸŸ%‹‹‹ŸŸŸ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹%ˆE%†‹‹‹‹‹‹†‹‹‹‹‹‹‹‹‹‹—±( I%‹O¸—†ˆO—•–OO–OO•–OPHÝP)—–OO–ˆ–O––OOOOO––––i–OOO(OOO|›±Ó>(((OO(OOOOOiiii((i((OOOOiiiiiOO'ðððèEßÞÓò%‹üüüüŸŸüüüŸŸœ(V(2wbÏ]öŸüEh»}uMÆš¤­­JûiEö\]z¬'\¥­'Ei{ ¥‚ ÝEE\ëiðET½ÂTü½üŸEðö‹Ÿöüüü½ü½ŸüüüüüŸŸüüüüüüüööüüüüüöEiòðüüŸö‹‹%%%%EEEè%%%è%%%%%%è%%EˆEˆ((iii(ßiˆi(\hV¦ V ¶ -Þ\ÞÓÓÞ\+49÷Ç °¶h'ÓÓ'ò(Oßßßßßðð‹‹öüöööüüTü‹‹ððEEßEEEßEi(Oiii–i(ò(ò((\\\\òòòçò((Þú£­©{ÞEèè‹‹‹‹†ŸŸŸ‹‹Ÿ%%ŸŸ‹Ÿ‹ŸŸ‹‹‹‹‹†%%%‹‹‹%‹Ÿ‹‹‹‹‹‹‹‹‹‹‹‹‹K\KI‹%––(O•ˆ–•–•O–O•i›¤!¦Ææ—––•–O–––OO–OOOi––O––OOOOOOOOIV ÓòiOO|(OiOiOOiiiiiii(iiiiii–iOi–'çEðööðEßiçið‹‹ŸŸüŸŸŸüüŸüüüüŸŸüŸê(V 2ÁFÏ-ö‹öŸ(ú©ÆïýõòüEiEöööe °W©V'iððöEW©iü ÂÂÂð(ððüüüüüTT½üü½ü(E½öüüü½üüŸŸüŸüŸüüüüŸüüŸüüüŸ‹ü‹öðiöŸö‹ü‹‹%ö‹%%%%E%%%%è%%%%%ð%‹%è%%iii((ßEEO((V¦¶--- ] £Þ\Ó>´ VgàªÇÑ 4-ûë'Ó'ëëÓ\(EEðððöððööEöüööüööüüüöüüüöööEßEEßii|((iiiiOò(çÞ\\\(iò(òò¦¸­ëOEˆiEE‹%E%E%(†E–EEˆ†‹E†i%ˆE%Ÿ%†E%%Ÿ†%%‹%††%%%%%%‹‹‹‹‹‹‹‹‹‹%%%‹%•›Ž›%%±Ž((iii(((Oii–•­K—\>(OiO(iOi–i–i(iOOòO|(––—((Þû'iOò(O>iOò–i|–|–(––|–((––OOi–çÓ\–ðð(iEðö‹üüüüü‹ü‹üüüüüüüüüüŸd( +2wFt-(ü‹ßçûÚçüüüüüüööEi'iEEðüüTü ]üößE½üüöE(ßö½½üTTTüTüöööüüöüü½½üüüüüŸüüüüüü‹Ÿüü‹ü‹ðßßüüöööö%%%%‹‹%%%%èE%%%%%%%%%%%%†Ei(ii(i%Eˆi((\'' ]¶]¶-0Þ\çÞÓ>´ k­.nÊÇ¡ý±ûhûúRëëÓçç(–iiiEEEðððEðEèööðððööððüüüüððEððEEi(O(((((iiççòO\ÞÞÞÞ'ç\Þ\\ÞÞÓû±0!¨ °'%iĦi ­(–EEIϰ©hE%•0EE†ˆ ]%%%%Žm 4›E%%‹%e¬4¦%ˆ%¸{KE%( •O]Ž%%%%%EE†EE%EE%%%%†%%E†%%%%%%%%%%†E%%%%%E†E%E%%%%%%%%%%%%%( ŽE(›\••••••••((•hh——•••••(••ç\(ò•i\(ç\O|ÞÒÞ••>çò•(••——•(ò•O—((|çOòò(—ÞžúièEèß––iEèEöööððð‹öðööööööË ]+“bt](ðüüüüüü‹ü‹ðÞ(½ TT TT ½üüüüöü½üüTT½ü­­ð½½ððüüTö(Eü T½Tüü½½Eßüüüüü½½½ü½ŸüŸüŸüüüŸŸüŸü‹‹üöüŸüüüüü‹ðß(èöðö%%è%%%%ööö‹ö%%%%è%%E%%è%è%%%%EE%%%%E%%i(–ii((iˆEEEiEiiçh'V]-V-ÈÈÞç\\Ó>š0 +e¬ =¡kͶ¶---] Vhh'''Ó\\\\(çò(((((ò(((\'h'ë'''''hhVûhhûúú V± V ±VúúVVúVV¶È°HWW/.0'ç礬ÏkÏh\\] m Ž•\{¤ii(–—­••(i• ¬›KI((((•••((•¥eh›. i•oK\•(iŽm!e . ••(((—\—\•••••—••\•\•••••••••••••••••••••••••••(•••(•ަK›]Ž 0KžhhhžžžhžhŽ›o¸Kh?žž''hžžhžhhžžžžžhKž›hKKûžžžžKVK±KžhhhhKKúûhhž'hhŽhhKKhŽ''KžÒ¦ û\\\\\\Ó\ç(ò(((((((ò((O(–œ( îF“b-üü‹‹‹üüü‹  TTüüüöT½½ü ¦Èö ÂüEßü½T½½üiü½TTT½½T½Tüò(Âüüü½½üüŸŸüŸüüŸüüüüüüüüŸüŸ‹‹‹öðEòèüö‹öèEèöööðööö‹ð%%%%%%%%%EE%%%%è%%%%EEEEE–iiEˆˆi(\hh±h]£-0©õÞ\\ÞÓÓÜôz40¡We¾~áug¨¬°44e°4¸ mõ­{0000000£---£-¥¥-¶£----]--------0000{­{õõmm©4© ©m ©mmmõõõ© ©õ4e»ššÑ@ä¸]tkU¤0Ú¥­¨°] ]] ]]{/-]-]-.­¶]]0-¶]¶¶]]--]¶]]-{{{¦--Ïzem]-¶]Æom]]¶¶]]--£--££--££¶------£-------------------£-----¶----------£-e°¬40ÄÝ­{{{{{{0È0ȸm0{{­{{È{­{­­­{­­­­{0È­0­{{­ÄÈÈÈ­È{{ÈÈ{È{­P¥0È¥ÈÈ0È{{0{­¸õ£---¥0----¶]]-]]]]]]-]]]]]--]])´]]\+F:b-òü‹öüüü‹öEÂÂT TT ÂT½½üüü½½½TTT½Â ÈðTÂTüßEüTTÂÂTEßöTT T½T½ Ÿ(E ½T½½½½üT½ŸŸüŸŸŸüüŸüŸüüüüüüü((–ö‹üö%%%ðöööüüöööö%%%%%%%%ð%E%èE%E%ðèE%–ii\O(((EEEßiiO('Vú£0- mçççëÓ8㡦}.{,~Éu}MùÕ ‚‚ý .zÆzz!¤!WWtÏÏtttttttttttttttttÏttttW¤¤!¤¤¤zÆ!!!Æ!ÆÆzÆÆ...¨¨¨¨¨¨.zz.zzz¨zÆÆzzz¨ ýîáuu}M¨W¤ï U»ÏÏ Ïog oooot¢ t¬óÏ®+!¬tt¬ϬoϬÆg!tt.š»ttzUzšzϬÏWttÏtÏÏÏÏϬóÏtÏttttÏttttttÏÏtÏÏttWtWÏÏÏtÏÏÏtÏ. ./¨t!¤¤!!!ÆÆÆ!!.»Æ!!!!!!¤¤¤!!!¤¤!!¤¤H®g+ggg®Æ!ù}}k¤W¤¤.+îg !z!Æ./š»!NUùz¤Æ!zUMkƤ!¨ù®ÆWWWWWWtÏÏtttttttϬÏtttttÎ] \+Öbt£èüü‹üü‹öößðT ÂTTT½TTTTTT½T \ÈöÂTTÂTiü TT½Eiö Â ½TTü(ü½ÂT½ü½½üü‹üüŸŸöŸüüüüüüüŸööððöèßð%ð‹‹‹‹üüüöö%%%%%%%%%%E%E%%Eii((iiiiEEiiiii(ÞhhV0© ¸mç\ëÓøS ¡.¥ràÇ9F@@@@ÎÎÎ@F`F`pp`p`pÎÎÎÎN´ÕÕÕ‡‡Î΃š@@ïggïï@@@@@šïgïš@·NÕNýÕÕNƒ‡N‡‡ƒÎƒƒƒù‡ùƒNNNùƒ‡ƒÎÎp`p`@@@`pFF`2929¹2FF@N´UbbƒææÕÕlÕp‡®´´Õ‡‡FF‡´‡‡Npp´ÕÕÕNF@@·ÕÕ‡Õ‡‡‡‡æ‡‡@b·N‡‡‡9@‡‡‡‡‡‡‡pb9‡‡‡‡‡‡‡‡‡ÎÎÎÎÎÎÎÎÎÎÎÎÎÎ΃ÎÎÎÎÎÎÎÎÎÎÎ@ƒ@@ƒƒšš¢@ƒƒUƒ@Î@@ƒMb’b¢@M ¢¢¢@š@p@M¢gšbÉb¢@@@@@@¢@@M¢@@@M’@@pMM’á¹bbÇÇ@@`9bƒ‡NNNùF¹9`@@Î@@ǹb@’=ÇpÎ@@@F¹ÇFb2Î@ÎpǹF@pFFÎÎÎÎη·‡‡‡Î·‡‡‡Î‡‡@Îóp+V-\+:bt-èüüü‹üöð\iTTÂTTT T½T½½TÂÂTTTT (¥ðT TT ÂEüTTÂT öEü½ TTTT½ðOŸŸ½Â½½ü½ŸŸŸŸüŸüü‹ŸüüŸŸöüüüüŸüü‹üðiið‹%ðüööŸüöüö‹ö%%%‹%‹‹%%%E%EEEiO(iiOiiiOOiOçúV-0mmm Þ\\Þ8²¡ ¨Èí9“299222àààµn Ên3AA~``9b³AÊâGª$Ø“__:c__::__:$GÊ~à2299922FF`à`à2229b992229à~~3 ÊéÊâÊÊ µAà222¹F29¹9F`2F````F22222``³``````2922`F``³```³³2~~~³µ~~~~AA~ààAAAaADAAA333AA333AAnnn333n3333Ê nÊÊÊ 3 Ê n 3n3333nn Êâé„ÙÙªªªÙªª$ªªª$ªªª$Ùªªªª$ªªª$ªªª*Gªª*ÙÙªª*ÙÙªªªª$ªªªªÙªªªªG**ªGGG 3¹29999F23 Êééâ âÊâÊÊ ÊÊ Ê Ê 3 3333n33A3A3AAADAA³AAAAD~~A~~éA2À('0g_b¶(üŸŸŸüüüüüüEöŸTT TÂTTTT T TTTT½Â Âð½ TÂTðßüT ÂÂößð½Â ½½öETT½½½ŸŸŸŸüüüüüüüüüüŸüüüŸü‹ü½üÂüðiöè%è%%ö‹%‹üööüüö‹öö%%%%%%%%è%%EEEii((–ßEii(iiiEi((±-¥0È­ ç\\çç\ܲt¡]¡!©ZÊ9A3AAà2229999999999992à~n§rZq#ÌYì#qíþ,§fffééf§§,þqÌÌÛí,fñA~µà222ààAA333AAAµà22999222222222999¹¹¹222àµ3nâf§€€,rrÐrÐÐþþÐÐÐÐþÐÐÐþþþÐÐÐþÐÐÐÐþÐÐÐÐþþÐÐþþÐÐÐþþÐÐþííZííííZZZZ¼q¼¼¼qq¼#¼ÛÛ###ÛÛ##ìÀ#ìì#À#ììì#"ìÌì"ììÌì"#ììì##ììì"ìÌYYÌ6ÌÌìÀ#ììì#####ÛÛÛ#ÛÛÛ##ÛÛÛ##ÛÛÛÛ#ÛÛÛq##À#ìì#À#ìììÛÀ#ì#À##ì#À##ÛÛÀ#ììì""#r¾fâéf€r˜Ûìì6ÌYÌ"1ÌYì1"ÌYÌ""""Ì"ì"ìì""ììÀÛÛìì#####ÛÛq¼¼qq¼¼¼q¼¼q¼"9„Ðeegb/-üüŸüŸüßßü TT T TTTTÂT T TT ðß T½TTT½½ðßö½TT EðT TÂT½üŸŸŸüŸŸ½ŸŸ½ŸüüŸüüüüüŸüü‹üöö‹üöEèü‹Ÿ½üTŸŸüöööi(èü%%%ö‹üö‹öö%%‹‹%%%E%%%è%Eð%E–ii–i(–iißEi(hû -£¥{{ ç\çòòøªÏÝ¡]m.e!z!t4 0- VhV V] .+¡+k.!o4{0] h'hhV g¡gk!tm{{00£--{m44ettttooe4{] '\\\hVV]õ °¨.k/¢gggg+g+g++g+g+g+g+  ++++ggg+g++¢+g++++gg+++++¡ÑÑ +++++++++++++¢gg+gg++g++ggg+++g++ggggU .!z!ttttttttttttttt!.tt¤!!ttttt!!! !!!. /g+áu+k‚. =u+gkkkîgïg¡g////g¡ïM+gggg ¡uu¡¡¡¡¡¡¡Ñ¡¡!mg:’/t{V\ü‹ŸüüŸŸüŸüü\ü T ÂT T T T ÂÂTT ö£(ÂTTTT TT½ðiöÂTÂÂTEßü½½ TÂüòßüüüŸüŸüüŸŸüüü‹ü‹öö‹Ÿ‹üüööüööŸüüü½üüŸŸ\iE%%öö‹‹öööð%%%‹‹%%%E%%E%E%%EE%èEEii–(EiOEEEi\''']-£0000òÞ\Þçøe  {t!.k/++¡¡¡¡¡¡¡¡¡¡¡gkzomV''V--0{mm{0](\h4!./g+¡¡+gg//kk/g+¡¡¡¡++¡u}}+g/».4m{{{00000000000£-£-------0000¥¥000¥0000--------] ]]] V V hhhhžhh'''''Ž'\\\\\—\—I\———\\—\——\—\\\•(((••\—\\\\\\——\Ž\''\\\\\žh\\\Þ\\\\I\h\\\\\\\]0 tttm{ú\h\h\h\\\\IhV''hhhhûhhhhhhhhhVVVV\t]e!gcƒ \Eü‹üüüŸŸüŸÞÂTÂTÂTÂTÂÂT½ÂÂTTT ü-\TTÂTT½½ ½ðßöT TðßT½T üiðüüüüüüüŸüüüüöüüü‹üüüüŸŸŸ‹ü‹‹ööö‹üü½ŸüŸüði‹ööööüööð%%%%%%E%èèEßEE%EEèEˆEii(\ò\'' ]]] ]¶¶(òçççÞ&Q.+Vh!¡¡¡¡+gk.z!ttttzz.g++/.oem{-Vh''ëh'hh-me!/++// .z!!!!z.k//gggg/k ztoe4 õ{{0õ et ¡uuáá¡+gggggg/////¢gg/////////////kkkk  .... .zzzzzzz!!ttttttttttttttttttte m00¥--------£-{00--0-0--000mm0{{{ /+Ñuu¡/!Ý444oe44Ïoeeeet!otttt!.¨‚..// z... .  .. kkz{t'gàÖä°–‹ü‹ü‹üüüŸüüüü(\½T T ÂTTTÂÂTÂT ÂÂü¦h½TÂT½Â½Âüiü ‰  Tðßð½½üüü‹üŸüŸŸŸŸŸüŸüüŸüüüŸ‹üüŸüüüüö‹‹ööüŸüüüü%i\\E%öö‹öüööööööööö‹%‹‹%%è%EEEE%EEEEEˆi((iii\(iÞûú±± - ]\\\çÞ&Q {+h0hhhVV -0{ eee mmmm{0] h'V]{meotz /ggggg/k.te{]h'hV]0{mm m{00------0m et!!!zzzz.!Ï4©{] ±VV VKhhhhhhhhKhVVV› ]]]]]]]-------000{{{0{{{{{{{Èm mm 4t!¨....   /kk kkkkg     .‚//‚ .zWoe -hhëVVV04Ýtz!zooooo!¤eeoo44 44m mmmm©ee©{{£00--£]]]--]0eotmtgà Ú 'Oßö‹ü‹üüüüüüüü\‹üTÂTTT½ ÂTTTT ÂÂÂÂëëTÂTÂTTÂÂðßö½ÂT T½ððüü½ö(öŸ‹ü‹ü‹üüŸüüŸŸüüŸŸüŸŸü‹üŸüüüüüü‹ö‹öö‹ü‹üŸüüŸŸŸüüüEiòißööööü‹ööö‹ö‹%ð%%%%ö%EE%E%EèEE%EEi(i((OÞh VV]]-ççÞçÞ>Q/ ¡Vhhhhh -0{ m44eee 4 mmmm0-Vhë'V]0{ eot!z. ..m0V''']0{mm 4 mm0{000{{{m 4eÝÏtt!!teõ{] VV ] VhhKhhhhhhKhhhhKKhKKKKVVVVVV› ]]]]]]]]--£---000È{{{{{{{0{{{{{{{mmmmmmm{0{{{{0m4o!!z.z..... kkkk»   kký     .. ‚ ‚ z!tÝ {]h''h'hV4oo¬Ïtooeee°4 4mmm mmmm{­{0{{00000{{--]]-]]-]]]]{È(+p6&(ðöüüü‹ö‹üŸŸüüüüüüööüŸÂTÂTTTTTÂT T ( ÂÂTÂTÂTTðßð T Eiö½EëEüööö‹üüüüüüüüüüüüüŸüööüü‹üŸŸüöüüüüŸ‹èißðööüöö‹‹‹‹öü‹öðð%‹‹ö%%E%ß%ßEE%iii\\('hž'hV û çòÞÞÜ./-¡¡¡¡ggk .z!!!!!.zzzzz. kg+¡gg// .!toe44m44e.k+gš» z!ztttt!zz.z. ..zztooeeee e! /+¡uuuuugggg¢ïgggg¢g¢g¢ggggg///////k///kk   ‚‚...‚zzzzzzzzzzzzzzzzzz!!!!!!!!!zzzzzzzz!!te m0{0{{0{00{­È{0000000{0000000¥00¥000¥00{{{{{{{{{­{ eo /+¡¡gk.oeeeeeoo¬o¬oÏttt!!!!!.... kk/kkkkkkkkk .!òÌr<ö‹üŸŸŸŸüŸüüŸŸ‹ò–öüüTTÂT  TTÂÂT –– ÂTÂT ÂÂT  ößü ÂEòEèúiüŸü‹öüüŸŸŸ½ŸüüüüüüüŸüŸüö‹ü‹‹üüüüüöŸüüüŸüöðööðEðööööööüŸö‹ö‹‹ööö‹‹ö‹E%ð%E%è%ö%%EE\\(—\h]VÓ ççÞ\>Dóƒgt!z k/+¡¡¡¡¡Ñ¡¡+gg ¤¬e 0¶ Vh'çÞ\\ÓhV£ o »šg+++¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}}¡}}}¡}¡¡gšýƤÏoe4°¸m{0{0{{{{0{­{{000¥0000¥0¥0¥¥0¥00-¶¶-£-¶¶- ]] ] V±›±VV VVV hKûK''hhhŽ''hhžhŽž'''hŽ'''hhžŽhhhhŽ''I\••(i(Oi(••(((((\Ó——>h'(\ò(ç—\\ç>\\\(ç(ç((ç' ©o!z!Ïe-Óçççò(ò\\\çç\çççç\Þ\\\''hžhÓ''hhhhVVVV] ]]-¶‘¦¦]] ]±'(îWÈ„Zvü‹ööüüüüüüüüöüöèEòèE‹ÂTTÂTTTT T ð– T½Â½ ÂÂTT T E‹Â TðòëE‹‹üüüüöü½½TŸüüŸüüüŸŸü‹üüŸüü‹‹üüöüŸüüüüüü‹üüööööðEèöüüüüööüüö‹üŸü‹öö‹öüüüüö‹öööðüöððEE%%ð%%ß%%i(ii(''hhëçòçÞ&…QQôããG²SSr,×ט˜˜˜˜˜˜×Ðr”GãôôôŒódêËóldËœdêdËŒ7ã$×ÐИíZí˜ZZZZZ˜ZZZ˜˜ZÖZZ  q  qqqqqqq ˜S²„·a³³``Î`ίŜ¯ÅŒÅÅŒŒËôÅŒŒÅÅŒŒËÅÅôœŒÅÅËœËÅÅËœËÅÅŒœËÅÅËœËÅ;ËœËËÅËœËËÅËdËËÅœËË;œdœËÅœdœÅ;œdœ;;œóÅ;œdœÅ;œdœ;ËœdË;ËœdœœËœœË;œdŒ[ÅœdËÅů¯ôô7ã÷Q7Qôãã77~Qã7ã777ãããã÷ãôãô7Q7ô7Q7ôôQêËËd7ôQdËËddŒôôŒdŒŒddËœddËœd´ËËdldœËdldœdêêœdldœœldx´ldd꜌ËêôìZZÛvüü‹‹‹öüüüüü‹–Þ%ühiöŸ½½½T ÂÂT ößüü  ÂT  ‹iö ÂÂE\üöüüŸüŸŸüüü½½ŸŸŸüüŸüüŸüüŸüüü‹‹üŸüŸŸŸŸüüüüüüððöö‹üüüü‹ööööü‹üüü‹‹üŸüö‹ö‹öðöðððèèðE%%%%è%ðèEiiò('húú\\ç\ÞÞÞ\ÞÜø?8RRRRR)))KRú)‘¦)‘yy)RRRRûë&??øÜÜ«11>11|^<<<<<<<1|^^|1>||>>çÞÞÞÓ'??ëûûûûûRRûR¦y‘¶))))úRR)‘¦±))±±)¶ÚPÚÚP5¯¯¯ÅÅÅŒËÅÅÔÜvvsYvsss6vsss66sss6svYv66vv666v6666v6666vv6666666v6666vvsv6vvv6vvssvssvsvsssvsvsvŠssssssssŠsssssssŠsŠŠŠsŠŠŠŠsvvvvvCvvssŠŠŠŠŠºŠºº¿¿¿¿¿ºs‹ºº½ŠŸŠŠ½Š†ßCèó&ˆCˆèèCCèCèCCCC†CCèCCCCèC†††ˆ–ßè†èèC†C<^1«>>>111^<Ü&ø?&øÜ|\ÓÓë\Oè‹ööŸüöüü‹üŸŸŸŸßðüü‹üŸüŸüüöi‹ÂöŸüüüüüTT½  ‰ ‰‰ ‰‰ ðçðèEŸ‰ðEö½½Ÿüü½Tü‹üüüüŸŸŸ‹üüüüüüüüüT½TTTŸð\öüŸüüüüüüüüü‹‹üüüü‹üüüüü‹öðöööðöööðð%èè%EEEEß%\%è–]-]0-¶ç\ÓÞÞÓÓÓÞÞÞÓžhúúúhžû± ú'ÓÓ'?ÓÞçÞ\\>ò(((iOiii–i(iiiiiiO((òç\\ÞÓÞÞ\hhhh''ëhûûú± ¦¦¶-¥¥ÚÈÈ­© JJJJJ;;[;[Ý;…‘O TÂÂT TTÂÂÂTT  TÂTTTTÂÂÂTTTTTÂTÂT½TT½½½T½TT½TTTTT½TT½T½ÂTTÂTTTTTTTTTTTTTTTTTTÂÂTT T T TTTTÂT TTTT ÂÂT‹½T   TT T TŸ½½TT½ŸèÒ±E–%%¥¶†EˆßEEèèßßEèEßEßßßEèEEˆˆßˆˆ–(Ó>–†èèèßßèèßßßßèßèèßßèèèèèèèßEèèßßEßèèèè%è%%%èèEèè%èèE%èèèßOO–èEßii–E%èß–ßEß–––òòò–Oçiö‹‹üŸüü‹öüüüü'EŸŸ‹üüüü‹Ÿü‹öTTTüT½TTTTT ‰ ÂÂTßð–ößEü½TÂüüü½½üüüüüŸüüüüüüü½Ÿ½ü½TTTTT½ðçOðüüüŸüüüüüŸŸü‹üü‹ü‹‹öüöüüüŸüüüüööööðööö%%èð%ß–(%–iëV ]]]\ÞÞ\\ò\ÞÓÓ'?ÓÓÓ''KúúûhVžëëëÓÓ'ÞçççÞ\çòò(ò(iEiOOiiii–i((\\\\ÞÞÓëÓ\ÞÞÞÓÓ'ûûhëëûûûúúúV¶¶¶-¥¥ÈÈÈ©JJJ;Ý[;[[Ý[[¸­ûÞ TT TTTÂÂTTÂTÂÂTÂTTTTTTTTTT½½T½TTTTTTTTTÂT½TTTTTT½T½T½TTTTTTTÂTÂÂÂÂÂÂTTTTTÂTTTÂÂT ÂÂÂÂÂÂTÂÂTÂT ÂTTTT½Ÿ‹T  Â TT T½Ÿ‹½½½½Ÿ‹‹èò-Oiè¶XLm¬úEE߈ˆEEˆˆèEèèèEèèˆEèEèEèßEE†ßè–|žò–߈èßèèèèEßßßßèEèèèEèèèEèðèèßßèèè%%èð%ðððèè%E%è%%%%%E%%%Eˆ–––ßèèß–èèEßEèèßEEEiiO–(òÞüŸ‹‹ö‹Ÿöçßöüö‹üüü‹Ÿö½TTŸŸ TT½TT ‰ TEüüèO蟟üT½TŸŸüü½½üüŸŸ½TTTTüüüüüüŸŸüŸ½ŸTTT½TT½½TT‹O(ðüüŸŸŸüüüüüüüöööüüŸŸŸüüüüöüö‹ðöööð‹ð%%%%%E%%EEi–\húú\Þ\ÞçÞÓ'ÓÓ?ÞÓhhûúVVVVúûhûž'ëëhhÓÞ\\ç\Þ\\\\\\(iiiii–i(ò\çç\\\ç\ÓÞÓÞç\\çÓ'hRhhûûûúú±¶£¥Ú££¶¥Èõ©¸J;;;[;[¬J¸¸JȦÂÂÂÂÂÂÂTT ÂÂÂÂTTÂÂTTTTTTÂÂÂÂT½½TTTTTTTT½T½½TÂTTT½T½½½TTTTTTTTT½TTTTTTTTTTTTÂTTTTT TÂÂTTTTTT TT T ÂÂT TŸŸü½Ÿ½TTTTTTT ÂTT‹ðE%hW);0?ý‚¤°?EE%èE%èEE%EèEEè%èEèèE%è興èèß%–òÓò–èˆèßèèèßEßEEEEEèEßßèEEEèèEèEEEEèèèèè%èèè%%E%è%%è%èè%è%èèßEEEè%%%è%èEèè%èèèß%EEßiiO%üŸüöü'ßü‹ŸŸ‹ŸŸüi\òEiŸT½T½T½½TT  ‰ ðö TTTü½½T½½½ü½ü‹öüŸŸ½½½½üüŸüŸüŸ½TT½TTÂTTÂTTTTŸ(E‹Ÿ½üŸööööüö‹üüüüü‹ü‹‹Ÿü‹öüöðE%%%%%%%%%%(\'''hVòÞÓÞ\ÓÞÞëÓÓÓÓhÞÓžžû ±±±±±úúúû''ëëÓÓÞççÓÓ\(–i(Oi–i((\\\\\\ÞÞ\çç\ÓëÓhûûûVVú¦£È¥££££È©©©;;;;L¥¶£XL°i–––––ˆˆ–––––ßßßEEEEEEEèèèèèèEè%%%%%è%%è%%%‹ŸŸŸŸŸŸŸ½TTT½TTT     ÂÂÂTT‹T T½½½½Ÿèè%û©ëhÞEç\(è%èèèEèè%èèèè%èèEèEè%%%è%%%%%%èˆOÞOßèèèèè%ßEèèèèèèè%%èèèè%%èEèèèè%%%%%%è%%%%%è%%%%è%%%%%%%èE%%%%%%%%èè%è%%%%è%%è%üüüüüŸŸißöüüüüŸŸüüüüüüŸüE(ççü–ð½öÂTT ÂTT ‰ Âðö½½½½üŸöüŸüŸüüüüüüüüTTT½½TTTTÂTTTTTTTTö%üŸT½½üüüüüŸŸü‹öü‹‹üüü‹‹öö‹üüüö‹ö%%%%%%E%%%%Eè%Eßi(Óë'Ó\lgeneral-1.3.1/src/gfx/flags/0000775000175000017500000000000012643745101012762 500000000000000lgeneral-1.3.1/src/gfx/flags/Makefile.in0000664000175000017500000003603612643745056014770 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/gfx/flags DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(flagsdir)" DATA = $(flags_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ flagsdir = $(inst_dir)/gfx/flags flags_DATA = all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/gfx/flags/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/gfx/flags/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-flagsDATA: $(flags_DATA) @$(NORMAL_INSTALL) @list='$(flags_DATA)'; test -n "$(flagsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(flagsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(flagsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(flagsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(flagsdir)" || exit $$?; \ done uninstall-flagsDATA: @$(NORMAL_UNINSTALL) @list='$(flags_DATA)'; test -n "$(flagsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(flagsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(flagsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-flagsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-flagsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-flagsDATA install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-flagsDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/gfx/flags/Makefile.am0000664000175000017500000000005512140770453014736 00000000000000flagsdir = $(inst_dir)/gfx/flags flags_DATA =lgeneral-1.3.1/src/terrain/0000775000175000017500000000000012643745102012547 500000000000000lgeneral-1.3.1/src/terrain/Makefile.in0000664000175000017500000003166712643745056014561 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/terrain DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/terrain/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/terrain/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/terrain # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/terrain/Makefile.am0000664000175000017500000000010412140770453014515 00000000000000install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/terrain lgeneral-1.3.1/src/file.c0000644000175000017500000002130512575247507012117 00000000000000 /*************************************************************************** file.c - description ------------------- begin : Thu Jan 18 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include #include #include #include "misc.h" #include "list.h" #include "file.h" #include "localize.h" //#define FILE_DEBUG /* ==================================================================== Read all lines from file. ==================================================================== */ List *file_read_lines( FILE *file ) { List *list; char buffer[4096]; if ( !file ) return 0; list = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); /* read lines */ while( !feof( file ) ) { if ( !fgets( buffer, sizeof buffer - 1, file ) ) break; if ( buffer[0] == 10 ) continue; /* empty line */ buffer[strlen( buffer ) - 1] = 0; /* cancel newline */ list_add( list, strdup( buffer ) ); } return list; } /* ==================================================================== Parse the predefined order of files from the given .order file. Returns a list of files, or 0 if error. ==================================================================== */ static List *file_get_order_list( const char *orderfile ) { List *l = 0; FILE *f = fopen( orderfile, "rb" ); if (!f) { fprintf( stderr, tr("%s cannot be opened\n"), orderfile ); return 0; } l = file_read_lines( f ); fclose( f ); return l; } /* ==================================================================== Extracts the list of files that match the order list, and returns the matches in the correct order. Returns an empty list otherwise. ==================================================================== */ static List *file_extract_order_list( List *files, List *orderlist ) { List *extracted = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); char *ordered, *name; if ( !orderlist ) return extracted; list_reset( orderlist ); while ( ( ordered = list_next( orderlist ) ) ) { list_reset( files ); while ( ( name = list_next( files ) ) ) { if ( strcmp( name, ordered ) == 0 ) { list_transfer( files, extracted, name ); break; } } } return extracted; } /* ==================================================================== Comparator for sorting. Compares alphabetically with an entry prefixed by an asterisk considered to be smaller. ==================================================================== */ static int file_compare( const void *ptr1, const void *ptr2 ) { const char * const s1 = *(const char **)ptr1; const char * const s2 = *(const char **)ptr2; if ( *s1 == '*' && *s2 != '*' ) return -1; else if ( *s1 != '*' && *s2 == '*' ) return +1; else return strcmp( s1, s2 ); } /* ==================================================================== Return a list (autodeleted strings) with all accessible files and directories in path with the extension ext (if != 0). Don't show hidden files or Makefile stuff. The directoriers are marked with an asteriks. ==================================================================== */ List* dir_get_entries( const char *path, const char *root, const char *ext ) { Text *text = 0; int i; DIR *dir; DIR *test_dir; struct dirent *dirent = 0; List *list; List *order = 0; List *extracted; struct stat fstat; char file_name[4096]; FILE *file; /* open this directory */ if ( ( dir = opendir( path ) ) == 0 ) { fprintf( stderr, tr("get_file_list: can't open parent directory '%s'\n"), path ); return 0; } text = calloc( 1, sizeof( Text ) ); /* use dynamic list to gather all valid entries */ list = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); /* read each entry and check if its a valid entry, then add it to the dynamic list */ while ( ( dirent = readdir( dir ) ) != 0 ) { /* compose filename */ snprintf( file_name, sizeof file_name, "%s/%s", path, dirent->d_name ); /* regard special hidden file .order */ if ( STRCMP( dirent->d_name, ".order" ) ) { order = file_get_order_list( file_name ); continue; } /* hiden stuff is not displayed */ if ( dirent->d_name[0] == '.' && dirent->d_name[1] != '.' ) continue; if ( STRCMP( dirent->d_name, "Makefile" ) ) continue; if ( STRCMP( dirent->d_name, "Makefile.in" ) ) continue; if ( STRCMP( dirent->d_name, "Makefile.am" ) ) continue; /* check if it's the root directory */ if ( root ) if ( dirent->d_name[0] == '.' ) { if ( STRCMP( path, root ) ) continue; } /* get stats */ if ( stat( file_name, &fstat ) == -1 ) continue; /* check directory */ if ( S_ISDIR( fstat.st_mode ) ) { if ( ( test_dir = opendir( file_name ) ) == 0 ) continue; closedir( test_dir ); sprintf( file_name, "*%s", dirent->d_name ); list_add( list, strdup( file_name ) ); } else /* check regular file */ if ( S_ISREG( fstat.st_mode ) ) { /* test it */ if ( ( file = fopen( file_name, "rb" ) ) == 0 ) continue; fclose( file ); /* check if this file has the proper extension */ if ( ext ) if ( !STRCMP( dirent->d_name + ( strlen( dirent->d_name ) - strlen( ext ) ), ext ) ) continue; list_add( list, strdup( dirent->d_name ) ); } } /* close dir */ closedir( dir ); /* extract ordered entries * Directories are never ordered as they have an asterisk prefixed * (this is intentional!) */ extracted = file_extract_order_list( list, order ); /* convert to static list */ text->count = list->count; text->lines = malloc( list->count * sizeof( char* )); list_reset( list ); for ( i = 0; i < text->count; i++ ) text->lines[i] = strdup( list_next( list ) ); list_delete( list ); /* sort this list: directories at top and everything in alphabetical order */ qsort( text->lines, text->count, sizeof text->lines[0], file_compare ); /* return as dynamic list */ list = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); /* transfer directories */ for ( i = 0; i < text->count && text->lines[i][0] == '*'; i++ ) list_add( list, strdup( text->lines[i] ) ); /* insert list of extracted ordered files between directories and files */ { char *str; list_reset( extracted ); while ( ( str = list_next( extracted ) ) ) list_transfer( extracted, list, str ); } /* transfer files */ for ( ; i < text->count; i++ ) list_add( list, strdup( text->lines[i] ) ); delete_text( text ); if ( order ) list_delete( order ); list_delete( extracted ); return list; } #ifdef TESTFILE int map_w, map_h; /* shut up linker in misc.c */ typedef struct _Font Font; int char_width(Font *fnt, char c) { (void)fnt; (void)c; return 0;} typedef struct _PData PData; int parser_get_string(PData *pd, char *name, char **result) { (void)pd; (void)name; (void)result; return 0;} int main( int argc, char **argv ) { List *l; char *name; const char *path, *ext, *root; if ( argc != 2 && argc != 3 && argc != 4 ) { fprintf( stderr, "Syntax: testfile path [ext [root]]\n" ); return 1; } path = argv[1]; ext = argc >= 3 ? argv[2] : 0; root = argc >= 4 ? argv[3] : path; l = dir_get_entries( path, root, ext ); if ( !l ) { fprintf( stderr, "Error reading directory %s\n", path ); return 1; } list_reset(l); while ( ( name = list_next(l) ) ) printf( "%s\n", name ); return 0; } #endif lgeneral-1.3.1/src/date.h0000664000175000017500000000273412140770455012120 00000000000000/*************************************************************************** date.h - description ------------------- begin : Sat Jan 20 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __DATE_H #define __DATE_H /* date types */ enum { DIGIT_DATE = 0, FULL_NAME_DATE = 1, SHORT_NAME_DATE = 2 }; /* date struct */ typedef struct { int day; int month; int year; } Date; /* converts a string to date */ void str_to_date( Date *date, char *str ); /* converts a date to a string */ void date_to_str( char *str, Date date, int type ); /* add number of days to date and adjust it */ void date_add_days( Date *date, int days ); #endif lgeneral-1.3.1/src/Makefile.in0000664000175000017500000010743112643745056013106 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = lgeneral$(EXEEXT) check_PROGRAMS = testfile$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man6dir)" PROGRAMS = $(bin_PROGRAMS) am_lgeneral_OBJECTS = main.$(OBJEXT) config.$(OBJEXT) date.$(OBJEXT) \ file.$(OBJEXT) map.$(OBJEXT) nation.$(OBJEXT) player.$(OBJEXT) \ scenario.$(OBJEXT) lg-sdl.$(OBJEXT) misc.$(OBJEXT) \ unit.$(OBJEXT) audio.$(OBJEXT) parser.$(OBJEXT) list.$(OBJEXT) \ unit_lib.$(OBJEXT) terrain.$(OBJEXT) image.$(OBJEXT) \ slot.$(OBJEXT) gui.$(OBJEXT) purchase_dlg.$(OBJEXT) \ event.$(OBJEXT) windows.$(OBJEXT) action.$(OBJEXT) \ campaign.$(OBJEXT) strat_map.$(OBJEXT) ai.$(OBJEXT) \ engine.$(OBJEXT) ai_group.$(OBJEXT) ai_tools.$(OBJEXT) lgeneral_OBJECTS = $(am_lgeneral_OBJECTS) am__DEPENDENCIES_1 = lgeneral_DEPENDENCIES = $(top_builddir)/util/libutil.a \ $(am__DEPENDENCIES_1) lgeneral_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(lgeneral_LDFLAGS) \ $(LDFLAGS) -o $@ am_testfile_OBJECTS = testfile-file.$(OBJEXT) testfile-list.$(OBJEXT) \ testfile-misc.$(OBJEXT) testfile_OBJECTS = $(am_testfile_OBJECTS) testfile_DEPENDENCIES = $(top_builddir)/util/libutil.a testfile_LINK = $(CCLD) $(testfile_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(lgeneral_SOURCES) $(testfile_SOURCES) DIST_SOURCES = $(lgeneral_SOURCES) $(testfile_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man6dir = $(mandir)/man6 NROFF = nroff MANS = $(man_MANS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ @sound_flag@ @dl_flag@ @inst_flag@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = -I$(top_srcdir)/util $(INTLINCLUDES) lgeneral_SOURCES = main.c \ config.c date.c \ file.c map.c nation.c \ player.c scenario.c lg-sdl.c misc.c unit.c \ audio.c parser.c list.c unit_lib.c \ terrain.c image.c slot.c gui.c purchase_dlg.c \ event.c windows.c action.c campaign.c \ strat_map.c ai.c engine.c ai_group.c ai_tools.c \ lgeneral.6 AM_CFLAGS = @SDL_CFLAGS@ lgeneral_LDFLAGS = @export_flag@ lgeneral_LDADD = @mixer_flag@ @dl_lib_flag@ $(top_builddir)/util/libutil.a $(INTLLIBS) @SDL_LIBS@ man_MANS = lgeneral.6 EXTRA_DIST = lgeneral.h \ config.h date.h engine.h \ file.h map.h nation.h player.h \ player.h scenario.h lg-sdl.h misc.h unit.h unit.h \ audio.h parser.h list.h unit_lib.h \ terrain.h image.h slot.h gui.h purchase_dlg.h \ event.h windows.h action.h campaign.h \ strat_map.h ai.h ai_group.h ai_tools.h SUBDIRS = gfx themes campaigns maps nations sounds music units \ scenarios ai_modules terrain testfile_CFLAGS = -DTESTFILE @SDL_CFLAGS@ testfile_SOURCES = file.c list.c misc.c testfile_LDADD = $(top_builddir)/util/libutil.a all: all-recursive .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) clean-checkPROGRAMS: -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS) lgeneral$(EXEEXT): $(lgeneral_OBJECTS) $(lgeneral_DEPENDENCIES) $(EXTRA_lgeneral_DEPENDENCIES) @rm -f lgeneral$(EXEEXT) $(AM_V_CCLD)$(lgeneral_LINK) $(lgeneral_OBJECTS) $(lgeneral_LDADD) $(LIBS) testfile$(EXEEXT): $(testfile_OBJECTS) $(testfile_DEPENDENCIES) $(EXTRA_testfile_DEPENDENCIES) @rm -f testfile$(EXEEXT) $(AM_V_CCLD)$(testfile_LINK) $(testfile_OBJECTS) $(testfile_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/action.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ai.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ai_group.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ai_tools.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audio.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/campaign.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/date.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/event.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/image.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lg-sdl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/map.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nation.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parser.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/player.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/purchase_dlg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scenario.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slot.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strat_map.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/terrain.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testfile-file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testfile-list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testfile-misc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit_lib.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/windows.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` testfile-file.o: file.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testfile_CFLAGS) $(CFLAGS) -MT testfile-file.o -MD -MP -MF $(DEPDIR)/testfile-file.Tpo -c -o testfile-file.o `test -f 'file.c' || echo '$(srcdir)/'`file.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/testfile-file.Tpo $(DEPDIR)/testfile-file.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file.c' object='testfile-file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testfile_CFLAGS) $(CFLAGS) -c -o testfile-file.o `test -f 'file.c' || echo '$(srcdir)/'`file.c testfile-file.obj: file.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testfile_CFLAGS) $(CFLAGS) -MT testfile-file.obj -MD -MP -MF $(DEPDIR)/testfile-file.Tpo -c -o testfile-file.obj `if test -f 'file.c'; then $(CYGPATH_W) 'file.c'; else $(CYGPATH_W) '$(srcdir)/file.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/testfile-file.Tpo $(DEPDIR)/testfile-file.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file.c' object='testfile-file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testfile_CFLAGS) $(CFLAGS) -c -o testfile-file.obj `if test -f 'file.c'; then $(CYGPATH_W) 'file.c'; else $(CYGPATH_W) '$(srcdir)/file.c'; fi` testfile-list.o: list.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testfile_CFLAGS) $(CFLAGS) -MT testfile-list.o -MD -MP -MF $(DEPDIR)/testfile-list.Tpo -c -o testfile-list.o `test -f 'list.c' || echo '$(srcdir)/'`list.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/testfile-list.Tpo $(DEPDIR)/testfile-list.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='list.c' object='testfile-list.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testfile_CFLAGS) $(CFLAGS) -c -o testfile-list.o `test -f 'list.c' || echo '$(srcdir)/'`list.c testfile-list.obj: list.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testfile_CFLAGS) $(CFLAGS) -MT testfile-list.obj -MD -MP -MF $(DEPDIR)/testfile-list.Tpo -c -o testfile-list.obj `if test -f 'list.c'; then $(CYGPATH_W) 'list.c'; else $(CYGPATH_W) '$(srcdir)/list.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/testfile-list.Tpo $(DEPDIR)/testfile-list.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='list.c' object='testfile-list.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testfile_CFLAGS) $(CFLAGS) -c -o testfile-list.obj `if test -f 'list.c'; then $(CYGPATH_W) 'list.c'; else $(CYGPATH_W) '$(srcdir)/list.c'; fi` testfile-misc.o: misc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testfile_CFLAGS) $(CFLAGS) -MT testfile-misc.o -MD -MP -MF $(DEPDIR)/testfile-misc.Tpo -c -o testfile-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/testfile-misc.Tpo $(DEPDIR)/testfile-misc.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc.c' object='testfile-misc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testfile_CFLAGS) $(CFLAGS) -c -o testfile-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c testfile-misc.obj: misc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testfile_CFLAGS) $(CFLAGS) -MT testfile-misc.obj -MD -MP -MF $(DEPDIR)/testfile-misc.Tpo -c -o testfile-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/testfile-misc.Tpo $(DEPDIR)/testfile-misc.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc.c' object='testfile-misc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testfile_CFLAGS) $(CFLAGS) -c -o testfile-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi` install-man6: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man6dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man6dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man6dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.6[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^6][0-9a-z]*$$,6,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man6dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man6dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man6dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man6dir)" || exit $$?; }; \ done; } uninstall-man6: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man6dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.6[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^6][0-9a-z]*$$,6,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man6dir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) check: check-recursive all-am: Makefile $(PROGRAMS) $(MANS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man6dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-man install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-man6 install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-local uninstall-man uninstall-man: uninstall-man6 .MAKE: $(am__recursive_targets) check-am install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-binPROGRAMS clean-checkPROGRAMS \ clean-generic cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-man6 install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-local uninstall-man uninstall-man6 install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir) uninstall-local: rm -rf $(DESTDIR)$(inst_dir) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/scenario.h0000664000175000017500000002043512523605105012776 00000000000000/*************************************************************************** scenario.h - description ------------------- begin : Fri Jan 19 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __SCENARIO_H #define __SCENARIO_H struct _Unit; #define DEBUG_CAMPAIGN 1 /* ==================================================================== Engine setup. 'name' is the name of the scenario or savegame file. 'type' specifies what to do with the remaining data in this struct: INIT_CAMP: load whole campaign and use default values of the scenarios INIT_SCEN: use setup info to overwrite scenario's defaults DEFAULT: use default values and set 'setup' LOAD: load game and set 'setup' CAMP_BRIEFING: show campaign briefing dialog RUN_TITLE: show title screen and run the menu 'ctrl' is the player control (PLAYER_CTRL_HUMAN, PLAYER_CTRL_CPU) ==================================================================== */ enum { SETUP_UNKNOWN = 0, SETUP_INIT_CAMP, SETUP_INIT_SCEN, SETUP_LOAD_GAME, SETUP_DEFAULT_SCEN, SETUP_CAMP_BRIEFING, SETUP_RUN_TITLE }; typedef struct { char fname[256]; /* resource file for loading type */ int type; int slot_id; /* in case of LOAD_GAME this is the slot id */ /* campaign specific information, must be set for SETUP_CAMP_INIT */ const char *scen_state; /* scenario state to begin campaign with */ /* scenario specific information which is loaded by scen_load_info() */ int player_count; int *ctrl; char **modules; char **names; } Setup; /* ==================================================================== Scenario Info ==================================================================== */ typedef struct { char *fname; /* scenario knows it's own file_name in the scenario path */ char *name; /* scenario's name */ char *desc; /* description */ char *authors; /* a string with all author names */ Date start_date;/* starting date of scenario */ int turn_limit; /* scenario is finished after this number of turns at the latest */ int days_per_turn; int turns_per_day; /* the date string of a turn is computed from these to values and the inital date */ int player_count; /* number of players */ } Scen_Info; /* ==================================================================== Victory conditions ==================================================================== */ enum { VCOND_CHECK_EVERY_TURN = 0, VCOND_CHECK_LAST_TURN }; enum { VSUBCOND_CTRL_ALL_HEXES = 0, VSUBCOND_CTRL_HEX, VSUBCOND_TURNS_LEFT, VSUBCOND_CTRL_HEX_NUM, VSUBCOND_UNITS_KILLED, VSUBCOND_UNITS_SAVED }; typedef struct { int type; /* type as above */ Player *player; /* player this condition is checked for */ int x,y; /* special */ int count; char tag[32]; /* tag of unit group */ } VSubCond; typedef struct { VSubCond *subconds_or; /* sub conditions linked with logical or */ VSubCond *subconds_and; /* sub conditions linked with logical and */ int sub_or_count; int sub_and_count; char result[64]; char message[128]; } VCond; /* ==================================================================== Load a scenario. ==================================================================== */ int scen_load( const char *fname ); /* ==================================================================== Load a scenario description (newly allocated string) and setup the setup :) except the type which is set when the engine performs the load action. ==================================================================== */ char* scen_load_info( const char *fname ); /* ==================================================================== Fill the scenario part in 'setup' with the loaded player information. ==================================================================== */ void scen_set_setup(); /* ==================================================================== Clear the scenario stuff pointers in 'setup' (loaded by scen_load_info()) ==================================================================== */ void scen_clear_setup(); /* ==================================================================== Delete scenario ==================================================================== */ void scen_delete(); /* ==================================================================== Check if unit is destroyed, set the current attack and movement. If SCEN_PREP_UNIT_FIRST is passed the entrenchment is not modified. ==================================================================== */ enum { SCEN_PREP_UNIT_FIRST = 0, SCEN_PREP_UNIT_NORMAL }; void scen_prep_unit( Unit *unit, int type ); /* ==================================================================== Check if the victory conditions are fullfilled and if so return True. 'result' is used then to determine the next scenario in the campaign. If 'after_last_turn' is set this is the check called by end_turn(). If no condition is fullfilled the else condition is used (very first one). ==================================================================== */ int scen_check_result( int after_last_turn ); /* ==================================================================== Return True if scenario is done. ==================================================================== */ int scen_done(); /* ==================================================================== Return result string. ==================================================================== */ char *scen_get_result(); /* ==================================================================== Return result message ==================================================================== */ char *scen_get_result_message(); /* ==================================================================== Clear result and message ==================================================================== */ void scen_clear_result(); /* ==================================================================== Check the supply level of a unit. (hex tiles with SUPPLY_GROUND have 100% supply. ==================================================================== */ void scen_adjust_unit_supply_level( Unit *unit ); /* ==================================================================== Get current weather/forecast ==================================================================== */ int scen_get_weather( void ); int scen_get_forecast( void ); /* ==================================================================== Get date string of current date. ==================================================================== */ void scen_get_date( char *date_str ); /* ==================================================================== Get/Add casualties for unit class and player. ==================================================================== */ int scen_get_casualties( int player, int class ); int scen_inc_casualties( int player, int class ); /* ==================================================================== Add casualties for unit. Regard unit and transport classes. ==================================================================== */ int scen_inc_casualties_for_unit( struct _Unit *unit ); /* ==================================================================== Save/Load core units to be transferred between scenarios. ==================================================================== */ int scen_save_core_units( ); int scen_load_core_units( ); #endif lgeneral-1.3.1/src/purchase_dlg.h0000664000175000017500000000427212555427665013656 00000000000000/*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __PURCHASEDLG_H #define __PURCHASEDLG_H /** Dialogue to purchase units or refund purchased reinforcements. */ typedef struct { Group *main_group; /* main frame with purchase/exit buttons */ Frame *ulimit_frame; /* info frame with unit limit */ LBox *nation_lbox; /* current player's nations */ LBox *uclass_lbox; /* unit classes */ LBox *unit_lbox; /* purchasable units in selected class */ LBox *trsp_lbox; /* purchasable transporters for selected unit */ LBox *reinf_lbox; /* purchased but not yet deployable units */ Nation *cur_nation; /* pointer in global nations */ Unit_Class *cur_uclass; /* pointer in global unit_classes */ Unit_Class *trsp_uclass; /* pointer in global unit classes */ int cur_aux_limit; /* number of units that can be purchased */ int cur_core_limit; /* number of units that can be purchased */ } PurchaseDlg; /** Purchase dialogue interface, see C-file for detailed comments. */ PurchaseDlg *purchase_dlg_create( const char *theme_path ); void purchase_dlg_delete( PurchaseDlg **pdlg ); int purchase_dlg_get_width(PurchaseDlg *pdlg); int purchase_dlg_get_height(PurchaseDlg *pdlg); void purchase_dlg_move( PurchaseDlg *pdlg, int px, int py); void purchase_dlg_hide( PurchaseDlg *pdlg, int value); void purchase_dlg_draw( PurchaseDlg *pdlg); void purchase_dlg_draw_bkgnd( PurchaseDlg *pdlg); void purchase_dlg_get_bkgnd( PurchaseDlg *pdlg); int purchase_dlg_handle_motion( PurchaseDlg *pdlg, int cx, int cy); int purchase_dlg_handle_button( PurchaseDlg *pdlg, int bid, int cx, int cy, Button **pbtn ); void purchase_dlg_reset( PurchaseDlg *pdlg ); #endif lgeneral-1.3.1/src/terrain.h0000664000175000017500000001141012140770455012636 00000000000000/*************************************************************************** terrain.h - description ------------------- begin : Wed Mar 17 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __TERRAIN_H #define __TERRAIN_H /* ==================================================================== Weather flags. ==================================================================== */ enum { NO_AIR_ATTACK = ( 1L << 1 ), /* flying units can't and can't be attacked */ DOUBLE_FUEL_COST = ( 1L << 2 ), /* guess what! */ CUT_STRENGTH = ( 1L << 3) /* cut strength in half due to bad weather */ }; /* ==================================================================== Weather type. ==================================================================== */ typedef struct { char *id; char *name; int flags; } Weather_Type; /* ==================================================================== Fog alpha ==================================================================== */ enum { FOG_ALPHA = 64, DANGER_ALPHA = 128 }; /* ==================================================================== Terrain flags ==================================================================== */ enum { INF_CLOSE_DEF = ( 1L << 1 ), /* if there's a fight inf against non-inf on this terrain the non-inf unit must use it's close defense value */ NO_SPOTTING = ( 1L << 2 ), /* you can't see on this tile except being on it or close to it */ RIVER = ( 1L << 3 ), /* engineers can build a bridge over this tile */ SUPPLY_AIR = ( 1L << 4 ), /* flying units may supply */ SUPPLY_GROUND = ( 1L << 5 ), /* ground units may supply */ SUPPLY_SHIPS = ( 1L << 6 ), /* swimming units may supply */ BAD_SIGHT = ( 1L << 7 ), /* ranged attack is harder */ SWAMP = ( 1L << 8 ) /* attack penalty */ }; /* ==================================================================== Terrain type. In this case the id is a single character used to determine the terrain type in a map. mov, spt and flags may be different for each weather type ==================================================================== */ typedef struct { char id; char *name; SDL_Surface **images; SDL_Surface **images_fogged; int *mov; int *spt; int min_entr; int max_entr; int max_ini; int *flags; } Terrain_Type; /* ==================================================================== Terrain icons ==================================================================== */ typedef struct { SDL_Surface *fog; /* mask used to create fog */ SDL_Surface *danger; /* mask used to create danger zone */ SDL_Surface *grid; /* contains the grid */ SDL_Surface *select; /* selecting frame picture */ Anim *cross; /* crosshair animation */ Anim *expl1, *expl2; /* explosion animation (attacker, defender)*/ #ifdef WITH_SOUND Wav *wav_expl; /* explosion */ Wav *wav_select; /* tile selection */ #endif } Terrain_Icons; /* ==================================================================== Load terrain types, weather information and hex tile icons. ==================================================================== */ int terrain_load( char *fname ); /* ==================================================================== Delete terrain types & co ==================================================================== */ void terrain_delete( void ); /* ==================================================================== Get the movement cost for a terrain type by passing movement type id and weather id in addition. Return -1 if all movement points are consumed Return 0 if movement is impossible Return cost else. ==================================================================== */ int terrain_get_mov( Terrain_Type *type, int mov_type, int weather ); #endif lgeneral-1.3.1/src/event.c0000664000175000017500000001504112140770455012312 00000000000000/*************************************************************************** event.c - description ------------------- begin : Wed Mar 20 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "lgeneral.h" #include "event.h" int buttonup = 0, buttondown = 0; int motion = 0; int motion_x = 50, motion_y = 50; int keystate[SDLK_LAST]; int buttonstate[10]; int sdl_quit = 0; /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Event filter that blocks all events. Used to clear the SDL event queue. ==================================================================== */ int all_filter( const SDL_Event *event ) { return 0; } /* ==================================================================== Returns whether any mouse button is pressed ==================================================================== */ static int event_is_button_pressed() { return (SDL_GetMouseState(0,0)!=0); } static int event_is_key_pressed() { int i; Uint8 *keystate=SDL_GetKeyState(0); for (i=0;itype ) { case SDL_MOUSEMOTION: motion_x = event->motion.x; motion_y = event->motion.y; buttonstate[event->motion.state] = 1; motion = 1; return 0; case SDL_MOUSEBUTTONUP: buttonstate[event->button.button] = 0; buttonup = event->button.button; return 0; case SDL_MOUSEBUTTONDOWN: buttonstate[event->button.button] = 1; buttondown = event->button.button; return 0; case SDL_KEYUP: keystate[event->key.keysym.sym] = 0; return 0; case SDL_KEYDOWN: keystate[event->key.keysym.sym] = 1; return 1; case SDL_QUIT: sdl_quit = 1; return 0; } return 1; } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== Enable/Disable event filtering of mouse and keyboard. ==================================================================== */ void event_enable_filter( void ) { SDL_SetEventFilter( event_filter ); event_clear(); } void event_disable_filter( void ) { SDL_SetEventFilter( 0 ); } void event_clear( void ) { memset( keystate, 0, sizeof( int ) * SDLK_LAST ); memset( buttonstate, 0, sizeof( int ) * 10 ); buttonup = buttondown = motion = 0; } /* ==================================================================== Check if an motion event occured since last call. ==================================================================== */ int event_get_motion( int *x, int *y ) { if ( motion ) { *x = motion_x; *y = motion_y; motion = 0; return 1; } return 0; } /* ==================================================================== Check if a button was pressed and return its value. ==================================================================== */ int event_get_buttondown( int *button, int *x, int *y ) { if ( buttondown ) { *button = buttondown; *x = motion_x; *y = motion_y; buttondown = 0; return 1; } return 0; } int event_get_buttonup( int *button, int *x, int *y ) { if ( buttonup ) { *button = buttonup; *x = motion_x; *y = motion_y; buttonup = 0; return 1; } return 0; } /* ==================================================================== Get current cursor position. ==================================================================== */ void event_get_cursor_pos( int *x, int *y ) { *x = motion_x; *y = motion_y; } /* ==================================================================== Check if 'button' button is currently set. ==================================================================== */ int event_check_button( int button ) { return buttonstate[button]; } /* ==================================================================== Check if 'key' is currently set. ==================================================================== */ int event_check_key( int key ) { return keystate[key]; } /* ==================================================================== Check if SDL_QUIT was received. ==================================================================== */ int event_check_quit() { return sdl_quit; } /* ==================================================================== Clear the SDL event key (keydown events) ==================================================================== */ void event_clear_sdl_queue() { SDL_Event event; SDL_SetEventFilter( all_filter ); while ( SDL_PollEvent( &event ) ); SDL_SetEventFilter( event_filter ); } /* ==================================================================== Wait until neither a key nor a button is pressed. ==================================================================== */ void event_wait_until_no_input() { SDL_PumpEvents(); while (event_is_button_pressed()||event_is_key_pressed()) { SDL_Delay(20); SDL_PumpEvents(); } event_clear(); } lgeneral-1.3.1/src/nations/0000775000175000017500000000000012643745101012555 500000000000000lgeneral-1.3.1/src/nations/Makefile.in0000664000175000017500000003166712643745056014570 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/nations DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/nations/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/nations/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/nations # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/nations/Makefile.am0000664000175000017500000000010412140770455014526 00000000000000install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/nations lgeneral-1.3.1/src/Makefile.am0000664000175000017500000000236612575246413013073 00000000000000DEFS = @DEFS@ @sound_flag@ @dl_flag@ @inst_flag@ bin_PROGRAMS = lgeneral INCLUDES = -I$(top_srcdir)/util $(INTLINCLUDES) lgeneral_SOURCES = main.c \ config.c date.c \ file.c map.c nation.c \ player.c scenario.c lg-sdl.c misc.c unit.c \ audio.c parser.c list.c unit_lib.c \ terrain.c image.c slot.c gui.c purchase_dlg.c \ event.c windows.c action.c campaign.c \ strat_map.c ai.c engine.c ai_group.c ai_tools.c \ lgeneral.6 AM_CFLAGS = @SDL_CFLAGS@ lgeneral_LDFLAGS = @export_flag@ lgeneral_LDADD = @mixer_flag@ @dl_lib_flag@ $(top_builddir)/util/libutil.a $(INTLLIBS) @SDL_LIBS@ man_MANS = lgeneral.6 EXTRA_DIST = lgeneral.h \ config.h date.h engine.h \ file.h map.h nation.h player.h \ player.h scenario.h lg-sdl.h misc.h unit.h unit.h \ audio.h parser.h list.h unit_lib.h \ terrain.h image.h slot.h gui.h purchase_dlg.h \ event.h windows.h action.h campaign.h \ strat_map.h ai.h ai_group.h ai_tools.h SUBDIRS = gfx themes campaigns maps nations sounds music units \ scenarios ai_modules terrain check_PROGRAMS = testfile testfile_CFLAGS = -DTESTFILE @SDL_CFLAGS@ testfile_SOURCES = file.c list.c misc.c testfile_LDADD = $(top_builddir)/util/libutil.a install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir) uninstall-local: rm -rf $(DESTDIR)$(inst_dir) lgeneral-1.3.1/src/windows.c0000664000175000017500000012525612140770455012675 00000000000000/*************************************************************************** windows.c - description ------------------- begin : Tue Mar 21 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "lgeneral.h" #include "file.h" #include "event.h" #include "unit.h" #include "windows.h" #include "localize.h" #include "purchase_dlg.h" #include "gui.h" /* ==================================================================== Externals ==================================================================== */ extern Sdl sdl; extern int hex_w; extern int old_mx, old_my; extern Config config; extern GUI *gui; /* ==================================================================== Create a framed label. A label is hidden and empty per default. The current draw position is x,y in 'surf'. ==================================================================== */ Label *label_create( SDL_Surface *frame, int alpha, Font *def_font, SDL_Surface *surf, int x, int y ) { Label *label = calloc( 1, sizeof( Label ) ); if ( ( label->frame = frame_create( frame, alpha, surf, x, y ) ) == 0 ) { free( label ); return 0; } label->def_font = def_font; return label; } void label_delete( Label **label ) { if ( *label ) { frame_delete( &(*label)->frame ); free( *label ); *label = 0; } } /* ==================================================================== Write text as label contents and set hide = 0. If 'font' is NULL label's default font pointer is used. ==================================================================== */ void label_write( Label *label, Font *_font, const char *text ) { Font *font = _font; if ( font == 0 ) font = label->def_font; font->align = ALIGN_X_CENTER | ALIGN_Y_CENTER; SDL_FillRect( label->frame->contents, 0, 0x0 ); write_text( font, label->frame->contents, label->frame->contents->w >> 1, label->frame->contents->h >> 1, text, 255 ); frame_apply( label->frame ); frame_hide( label->frame, 0 ); } /* ==================================================================== Create button group. At maximum 'limit' buttons may be added. A buttons tooltip is displayed in 'label'. An actual button id is computed as base_id + id. ==================================================================== */ Group *group_create( SDL_Surface *frame, int alpha, SDL_Surface *img, int w, int h, int limit, int base_id, Label *label, SDL_Surface *surf, int x, int y ) { Group *group = calloc( 1, sizeof( Group ) ); if ( ( group->frame = frame_create( frame, alpha, surf, x, y ) ) == 0 ) goto failure; if ( img == 0 ) { fprintf( stderr, "group_create: passed button surface is NULL: %s\n", SDL_GetError() ); goto failure; } SDL_SetColorKey( img, SDL_SRCCOLORKEY, 0x0 ); group->img = img; group->w = w; group->h = h; group->base_id = base_id; group->button_limit = limit; if ( ( group->buttons = calloc( group->button_limit, sizeof( Button ) ) ) == 0 ) { fprintf( stderr, tr("Out of memory\n") ); goto failure; } group->label = label; return group; failure: group_delete( &group ); return 0; } void group_delete( Group **group ) { if ( *group ) { frame_delete( &(*group)->frame ); if ( (*group)->img ) SDL_FreeSurface( (*group)->img ); if ( (*group)->buttons ) free( (*group)->buttons ); free( *group ); *group = 0; } } /* ==================================================================== Add a button at x,y in group. If lock is true this button is a switch. 'id' * group::h is the y_offset of the button. ==================================================================== */ int group_add_button( Group *group, int id, int x, int y, int lock, const char *tooltip ) { return group_add_button_complex( group, id, id - group->base_id, x, y, lock, tooltip ); } /* ==================================================================== Add a button at x,y in group. If lock is true this button is a switch. 'icon_id' is used for the button icon instead of 'id' (allows multiple buttons of the same icon) ==================================================================== */ int group_add_button_complex( Group *group, int id, int icon_id, int x, int y, int lock, const char *tooltip ) { if ( group->button_count == group->button_limit ) { fprintf( stderr, tr("This group has reached it's maximum number of buttons.\n") ); return 0; } group->buttons[group->button_count].surf_rect.x = x + group->frame->img->bkgnd->surf_rect.x; group->buttons[group->button_count].surf_rect.y = y + group->frame->img->bkgnd->surf_rect.y; group->buttons[group->button_count].surf_rect.w = group->w; group->buttons[group->button_count].surf_rect.h = group->h; group->buttons[group->button_count].button_rect.x = 0; group->buttons[group->button_count].button_rect.y = icon_id * group->h; group->buttons[group->button_count].button_rect.w = group->w; group->buttons[group->button_count].button_rect.h = group->h; group->buttons[group->button_count].id = id; group->buttons[group->button_count].active = 1; strcpy_lt( group->buttons[group->button_count].tooltip, tooltip, 31 ); group->buttons[group->button_count].lock = lock; group->button_count++; return 1; } /* ==================================================================== Get button by global id. ==================================================================== */ Button* group_get_button( Group *group, int id ) { int i; for ( i = 0; i < group->button_count; i++ ) if ( group->buttons[i].id == id ) return &group->buttons[i]; return 0; } /* ==================================================================== Set active state of a button by global id. ==================================================================== */ void group_set_active( Group *group, int id, int active ) { int i; for ( i = 0; i < group->button_count; i++ ) if ( id == group->buttons[i].id ) { group->buttons[i].active = active; if ( active ) { group->buttons[i].button_rect.x = 0; group->buttons[i].down = 0; } else group->buttons[i].button_rect.x = 3 * group->w; break; } } /* ==================================================================== Lock button. ==================================================================== */ void group_lock_button( Group *group, int id, int down ) { Button *button = group_get_button( group, id ); if ( button && button->lock ) { button->down = down; if ( down ) button->button_rect.x = 2 * group->w; else button->button_rect.x = 0; } } /* ==================================================================== Check motion event and modify buttons and label. Return True if in this frame. ==================================================================== */ int group_handle_motion( Group *group, int x, int y ) { int i; if ( !group->frame->img->bkgnd->hide ) if ( x >= group->frame->img->bkgnd->surf_rect.x && y >= group->frame->img->bkgnd->surf_rect.y ) if ( x < group->frame->img->bkgnd->surf_rect.x + group->frame->img->bkgnd->surf_rect.w ) if ( y < group->frame->img->bkgnd->surf_rect.y + group->frame->img->bkgnd->surf_rect.h ) { label_hide( group->label, 1 ); for ( i = 0; i < group->button_count; i++ ) if ( group->buttons[i].active ) { if ( button_focus( &group->buttons[i], x, y ) ) { label_write( group->label, 0, group->buttons[i].tooltip ); if ( !group->buttons[i].down ) group->buttons[i].button_rect.x = group->w; } else if ( !group->buttons[i].down || !group->buttons[i].lock ) group->buttons[i].button_rect.x = 0; } return 1; } for ( i = 0; i < group->button_count; i++ ) if ( group->buttons[i].active && ( !group->buttons[i].down || !group->buttons[i].lock ) ) group->buttons[i].button_rect.x = 0; return 0; } /* ==================================================================== Check click event. Return True if button was clicked and return the button id. ==================================================================== */ int group_handle_button( Group *group, int button_id, int x, int y, Button **button ) { int i; if ( button_id == BUTTON_LEFT ) if ( !group->frame->img->bkgnd->hide ) if ( x >= group->frame->img->bkgnd->surf_rect.x && y >= group->frame->img->bkgnd->surf_rect.y ) if ( x < group->frame->img->bkgnd->surf_rect.x + group->frame->img->bkgnd->surf_rect.w ) if ( y < group->frame->img->bkgnd->surf_rect.y + group->frame->img->bkgnd->surf_rect.h ) { for ( i = 0; i < group->button_count; i++ ) if ( group->buttons[i].active ) if ( button_focus( &group->buttons[i], x, y ) ) { *button = &group->buttons[i]; (*button)->down = !(*button)->down; if ( (*button)->down ) (*button)->button_rect.x = 2 * group->w; else (*button)->button_rect.x = 0; return 1; } } return 0; } /* ==================================================================== Draw group. ==================================================================== */ void group_draw( Group *group ) { int i; frame_draw( group->frame ); if ( !group->frame->img->bkgnd->hide ) for ( i = 0; i < group->button_count; i++ ) SDL_BlitSurface( group->img, &group->buttons[i].button_rect, group->frame->img->bkgnd->surf, &group->buttons[i].surf_rect ); } /* ==================================================================== Modify settings. ==================================================================== */ void group_move( Group *group, int x, int y ) { int i; int rel_x = x - group->frame->img->bkgnd->surf_rect.x; int rel_y = y - group->frame->img->bkgnd->surf_rect.y; frame_move( group->frame, x, y ); for ( i = 0; i < group->button_count; i++ ) { group->buttons[i].surf_rect.x += rel_x; group->buttons[i].surf_rect.y += rel_y; } } /* ==================================================================== Return True if x,y is on group button. ==================================================================== */ int button_focus( Button *button, int x, int y ) { if ( x >= button->surf_rect.x && y >= button->surf_rect.y ) if ( x < button->surf_rect.x + button->surf_rect.w && y < button->surf_rect.y + button->surf_rect.h ) return 1; return 0; } /* ==================================================================== Created edit. ==================================================================== */ Edit *edit_create( SDL_Surface *frame, int alpha, Font *font, int limit, SDL_Surface *surf, int x, int y ) { Edit *edit = calloc( 1, sizeof( Edit ) ); if ( ( edit->label = label_create( frame, alpha, font, surf, x, y ) ) == 0 ) goto failure; if ( ( edit->text = calloc( limit + 1, sizeof( char ) ) ) == 0 ) goto failure; edit->limit = limit; edit->cursor_pos = 0; edit->cursor_x = frame->w / 2; edit->delay = 0; edit->last_sym = -1; return edit; failure: if ( edit->text ) free( edit->text ); free( edit ); return 0; } void edit_delete( Edit **edit ) { if ( *edit ) { label_delete( &(*edit)->label ); if ( (*edit)->text ) free( (*edit)->text ); free( *edit ); *edit = 0; } } /* ==================================================================== Draw Edit ==================================================================== */ void edit_draw( Edit *edit ) { SDL_Rect rect; label_draw( edit->label ); if ( !edit->label->frame->img->bkgnd->hide && edit->blink ) { /* cursor */ rect.w = 1; rect.h = edit->label->def_font->height; rect.x = edit->label->frame->img->bkgnd->surf_rect.x + edit->cursor_x; rect.y = edit->label->frame->img->bkgnd->surf_rect.y + ( (edit->label->frame->img->img->h - edit->label->def_font->height ) >> 1 ); SDL_FillRect( sdl.screen, &rect, 0xffff ); } } /* ==================================================================== Set buffer and adjust cursor x. ==================================================================== */ void edit_show( Edit *edit, const char *newtext ) { int i, w = 0; if ( newtext ) strcpy_lt( edit->text, newtext, edit->limit ); /* clear last key */ edit->last_sym = -1; /* clear sdl event queue */ event_clear_sdl_queue(); /* adjust cursor_x */ for ( i = 0; i < edit->cursor_pos; i++ ) w += char_width( edit->label->def_font, edit->text[i] ); edit->cursor_x = ( ( edit->label->frame->img->img->w - text_width( edit->label->def_font, edit->text ) ) >> 1 ) + w; /* show cursor */ edit->blink = 1; edit->blink_time = 0; /* apply */ label_write( edit->label, 0, edit->text ); } /* ==================================================================== Modify text buffer according to unicode and keysym. ==================================================================== */ void edit_handle_key( Edit *edit, int keysym, int modifier, int unicode ) { int i, changed = 0; switch ( keysym ) { case SDLK_RIGHT: if ( edit->cursor_pos < strlen( edit->text ) ){ changed = 1; edit->cursor_pos++; } break; case SDLK_LEFT: if ( edit->cursor_pos > 0 ) { changed = 1; edit->cursor_pos--; } break; case SDLK_HOME: changed = 1; edit->cursor_pos = 0; break; case SDLK_END: changed = 1; edit->cursor_pos = strlen( edit->text ); break; case SDLK_BACKSPACE: if ( edit->cursor_pos > 0 ) { --edit->cursor_pos; for ( i = edit->cursor_pos; i < strlen( edit->text ) - 1; i++ ) edit->text[i] = edit->text[i + 1]; edit->text[i] = 0; changed = 1; } break; case SDLK_DELETE: if ( edit->cursor_pos < strlen( edit->text ) ) { for ( i = edit->cursor_pos; i < strlen( edit->text ) - 1; i++ ) edit->text[i] = edit->text[i + 1]; edit->text[i] = 0; changed = 1; } break; default: /* control commands */ if ( ( modifier & KMOD_LCTRL ) || ( modifier & KMOD_RCTRL ) ) { switch ( keysym ) { case SDLK_u: /* CTRL+U: delete line */ edit->text[0] = '\0'; edit->cursor_pos = 0; changed = 1; break; } break; } if ( unicode >= 32 && edit->cursor_pos < edit->limit && strlen( edit->text ) < edit->limit ) { for ( i = edit->limit - 1; i > edit->cursor_pos; i-- ) edit->text[i] = edit->text[i - 1]; edit->text[edit->cursor_pos++] = unicode; changed = 1; } break; } if ( changed ) { edit->delay = keysym != edit->last_sym ? 750 : 100; edit_show( edit, 0 ); edit->last_sym = keysym; edit->last_mod = modifier; edit->last_uni = unicode; } else edit->last_sym = -1; } /* ==================================================================== Update blinking cursor and add keys if keydown. Return True if key was written. ==================================================================== */ int edit_update( Edit *edit, int ms ) { edit->blink_time += ms; if ( edit->blink_time > 500 ) { edit->blink_time = 0; edit->blink = !edit->blink; } if ( edit->last_sym != -1 ) { if ( !event_check_key( edit->last_sym ) ) edit->last_sym = -1; else { edit->delay -= ms; if ( edit->delay <= 0 ) { edit->delay = 0; edit_handle_key( edit, edit->last_sym, edit->last_mod, edit->last_uni ); return 1; } } } return 0; } /* ==================================================================== Create a listbox with a number of cells. The item list is NULL by default. ==================================================================== */ LBox *lbox_create( SDL_Surface *frame, int alpha, int border, SDL_Surface *buttons, int button_w, int button_h, Label *label, int cell_count, int step, int cell_w, int cell_h, int cell_gap, int cell_color, void (*cb)(void*, SDL_Surface*), SDL_Surface *surf, int x, int y ) { int bx, by; LBox *lbox = calloc( 1, sizeof( LBox ) ); /* group */ if ( ( lbox->group = group_create( frame , alpha, buttons, button_w, button_h, 2, ID_INTERN_UP, label, surf, x, y ) ) == 0 ) goto failure; /* cells */ lbox->step = step; lbox->cell_count = cell_count; lbox->cell_w = cell_w; lbox->cell_h = cell_h; lbox->cell_gap = cell_gap; lbox->cell_color = cell_color; lbox->cell_x = lbox->cell_y = border; lbox->cell_buffer = create_surf( cell_w, cell_h, SDL_SWSURFACE ); lbox->render_cb = cb; /* up/down */ bx = ( frame->w / 2 - button_w ) / 2; by = frame->h - border - button_h; group_add_button( lbox->group, ID_INTERN_UP, bx, by, 0, tr("Up") ); group_add_button( lbox->group, ID_INTERN_DOWN, frame->w - bx - button_w, by, 0, tr("Down") ); return lbox; failure: free( lbox ); return 0; } void lbox_delete( LBox **lbox ) { if ( *lbox ) { group_delete( &(*lbox)->group ); free_surf( &(*lbox)->cell_buffer ); if ( (*lbox)->items ) list_delete( (*lbox)->items ); free( *lbox ); *lbox = 0; } } /* ==================================================================== Rebuild the listbox graphic (lbox->group->frame). ==================================================================== */ void lbox_apply( LBox *lbox ) { int i; void *item; int sx = lbox->cell_x, sy = lbox->cell_y; SDL_Surface *contents = lbox->group->frame->contents; SDL_FillRect( contents, 0, 0x0 ); /* items */ SDL_FillRect( contents, 0, 0x0 ); if ( lbox->items ) { for ( i = 0; i < lbox->cell_count; i++ ) { item = list_get( lbox->items, i + lbox->cell_offset ); if ( item ) { if ( item == lbox->cur_item ) { DEST( contents, sx, sy, lbox->cell_w, lbox->cell_h ); fill_surf( lbox->cell_color ); } (lbox->render_cb)( item, lbox->cell_buffer ); DEST( contents, sx, sy, lbox->cell_w, lbox->cell_h ); SOURCE( lbox->cell_buffer, 0, 0 ); blit_surf(); sy += lbox->cell_h + lbox->cell_gap; } } } frame_apply( lbox->group->frame ); } /* ==================================================================== Delete the old item list (if any) and use the new one (will be deleted by this listbox) ==================================================================== */ void lbox_set_items( LBox *lbox, List *items ) { if ( lbox->items ) list_delete( lbox->items ); lbox->items = items; lbox->cur_item = 0; lbox->cell_offset = 0; lbox_apply( lbox ); } /** Select first entry in list and return pointer or NULL if empty. */ void *lbox_select_first_item( LBox *lbox ) { if (lbox->items == NULL) return NULL; lbox->cur_item = list_first(lbox->items); lbox->cell_offset = 0; lbox_apply(lbox); return lbox->cur_item; } /* ==================================================================== handle_motion sets button if up/down has focus and returns the item if any was selected. ==================================================================== */ int lbox_handle_motion( LBox *lbox, int cx, int cy, void **item ) { int i; if ( !lbox->group->frame->img->bkgnd->hide ) { if ( !group_handle_motion( lbox->group, cx, cy ) ) { /* check if above cell */ if (lbox->items == NULL) return 0; for ( i = 0; i < lbox->cell_count; i++ ) if ( FOCUS( cx, cy, lbox->group->frame->img->bkgnd->surf_rect.x + lbox->cell_x, lbox->group->frame->img->bkgnd->surf_rect.y + lbox->cell_y + i * ( lbox->cell_h + lbox->cell_gap ), lbox->cell_w, lbox->cell_y ) ) { *item = list_get( lbox->items, lbox->cell_offset + i ); return 1; } } else return 1; } return 0; } /* ==================================================================== handle_click internally handles up/down click and returns the item if one was selected. Note: If item is clicked, @button is not changed, but @item is set. Thus if true is returned, @item has to be checked (@item == NULL, button was clicked and @button is set; @item not NULL, item was clicked and @button may be undefined). ==================================================================== */ int lbox_handle_button( LBox *lbox, int button_id, int cx, int cy, Button **button, void **item ) { int i; *item = 0; /* check focus, if not in listbox nothing to do */ if ( !FOCUS( cx, cy, lbox->group->frame->img->bkgnd->surf_rect.x, lbox->group->frame->img->bkgnd->surf_rect.y, group_get_width(lbox->group), group_get_height(lbox->group)) ) return 0; /* see if up/down button was hit */ group_handle_button( lbox->group, button_id, cx, cy, button ); /* handle button/wheel or selection if not hidden */ if ( !lbox->group->frame->img->bkgnd->hide ) { if ( ( *button && (*button)->id == ID_INTERN_UP ) || button_id == WHEEL_UP ) { /* scroll up */ lbox->cell_offset -= lbox->step; if ( lbox->cell_offset < 0 ) lbox->cell_offset = 0; lbox_apply( lbox ); return 1; } else if ( ( *button && (*button)->id == ID_INTERN_DOWN ) || button_id == WHEEL_DOWN ) { /* scroll down */ if ( lbox->items == NULL || lbox->cell_count >= lbox->items->count ) lbox->cell_offset = 0; else { lbox->cell_offset += lbox->step; if ( lbox->cell_offset + lbox->cell_count >= lbox->items->count ) lbox->cell_offset = lbox->items->count - lbox->cell_count; } lbox_apply( lbox ); return 1; } else if ( lbox->items ) for ( i = 0; i < lbox->cell_count; i++ ) /* check if above cell */ if ( FOCUS( cx, cy, lbox->group->frame->img->bkgnd->surf_rect.x + lbox->cell_x, lbox->group->frame->img->bkgnd->surf_rect.y + lbox->cell_y + i * ( lbox->cell_h + lbox->cell_gap ), lbox->cell_w, lbox->cell_h ) ) { lbox->cur_item = list_get( lbox->items, lbox->cell_offset + i ); lbox_apply( lbox ); *item = lbox->cur_item; return 1; } } return 0; } /** Render listbox item @item (which is a simple string) to listbox cell * surface @buffer. */ void lbox_render_text( void *item, SDL_Surface *buffer ) { const char *str = (const char*)item; SDL_FillRect( buffer, 0, 0x0 ); gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_CENTER; write_text( gui->font_std, buffer, 4, buffer->h >> 1, str, 255 ); } /* ==================================================================== Create a file dialogue. The listbox is empty as default. The first two buttons in conf_buttons are added as ok and cancel. For all other buttons found in conf_buttons there is spaces reserved and this buttons may be added by fdlg_add_button(). ==================================================================== */ FDlg *fdlg_create( SDL_Surface *lbox_frame, int alpha, int border, SDL_Surface *lbox_buttons, int lbox_button_w, int lbox_button_h, int cell_h, SDL_Surface *conf_frame, SDL_Surface *conf_buttons, int conf_button_w, int conf_button_h, int id_ok, Label *label, void (*lbox_cb)( void*, SDL_Surface* ), void (*file_cb)( const char*, SDL_Surface* ), SDL_Surface *surf, int x, int y ) { int info_w, info_h, button_count; int cell_count, cell_w; FDlg *dlg = calloc( 1, sizeof( FDlg ) ); /* listbox */ cell_w = lbox_frame->w - 2 * border; cell_count = ( lbox_frame->h - 2 * border - lbox_button_h ) / ( cell_h + 1 ); if ( ( dlg->lbox = lbox_create( lbox_frame, alpha, border, lbox_buttons, lbox_button_w, lbox_button_h, label, cell_count, 4, cell_w, cell_h, 1, 0x0000ff, lbox_cb, surf, x, y ) ) == 0 ) goto failure; /* frame */ button_count = conf_buttons->h / conf_button_h; if ( ( dlg->group = group_create( conf_frame, alpha, conf_buttons, conf_button_w, conf_button_h, button_count, id_ok, label, surf, x + lbox_frame->w, y ) ) == 0 ) goto failure; /* buttons */ dlg->button_y = conf_frame->h - border - conf_button_h; dlg->button_x = conf_frame->w; dlg->button_dist = 10 + conf_button_w; group_add_button( dlg->group, id_ok, dlg->button_x - dlg->button_dist * 2, dlg->button_y, 0, tr("Ok") ); group_add_button( dlg->group, id_ok + 1, dlg->button_x - dlg->button_dist, dlg->button_y, 0, tr("Cancel") ); /* file callback */ dlg->file_cb = file_cb; /* info region */ info_w = conf_frame->w - 2 * border; info_h = conf_frame->h - 3 * border - conf_button_h; dlg->info_x = border; dlg->info_y = border; dlg->info_buffer = create_surf( info_w, info_h, SDL_SWSURFACE ); /* path */ strcpy( dlg->root, "/" ); dlg->subdir[0] = 0; return dlg; failure: fdlg_delete( &dlg ); return 0; } void fdlg_delete( FDlg **fdlg ) { if ( *fdlg ) { group_delete( &(*fdlg)->group ); lbox_delete( &(*fdlg)->lbox ); free_surf( &(*fdlg)->info_buffer ); free( *fdlg ); *fdlg = 0; } } /* ==================================================================== Draw file dialogue ==================================================================== */ void fdlg_hide( FDlg *fdlg, int hide ) { buffer_hide( fdlg->lbox->group->frame->img->bkgnd, hide ); buffer_hide( fdlg->group->frame->img->bkgnd, hide ); } void fdlg_get_bkgnd( FDlg *fdlg ) { buffer_get( fdlg->lbox->group->frame->img->bkgnd ); buffer_get( fdlg->group->frame->img->bkgnd ); } void fdlg_draw_bkgnd( FDlg *fdlg ) { buffer_draw( fdlg->lbox->group->frame->img->bkgnd ); buffer_draw( fdlg->group->frame->img->bkgnd ); } void fdlg_draw( FDlg *fdlg ) { group_draw( fdlg->lbox->group ); group_draw( fdlg->group ); } /* ==================================================================== Modify file dialogue settings ==================================================================== */ void fdlg_set_surface( FDlg *fdlg, SDL_Surface *surf ) { group_set_surface( fdlg->lbox->group, surf ); group_set_surface( fdlg->group, surf ); } void fdlg_move( FDlg *fdlg, int x, int y ) { group_move( fdlg->lbox->group, x, y ); group_move( fdlg->group, x + fdlg->lbox->group->frame->img->img->w - 1, y ); } /* ==================================================================== Add button. Graphic is taken from conf_buttons. ==================================================================== */ void fdlg_add_button( FDlg *fdlg, int id, int lock, const char *tooltip ) { int x = fdlg->button_x - ( id - fdlg->group->base_id + 1 ) * fdlg->button_dist; group_add_button( fdlg->group, id, x, fdlg->button_y, lock, tooltip ); } /* ==================================================================== Show file dialogue at directory root. ==================================================================== */ void fdlg_open( FDlg *fdlg, const char *root ) { strcpy( fdlg->root, root ); fdlg->subdir[0] = 0; lbox_set_items( fdlg->lbox, dir_get_entries( root, root, 0 ) ); SDL_FillRect( fdlg->group->frame->contents, 0, 0x0 ); frame_apply( fdlg->group->frame ); fdlg_hide( fdlg, 0 ); } /* ==================================================================== handle_motion updates the focus of the buttons ==================================================================== */ int fdlg_handle_motion( FDlg *fdlg, int cx, int cy ) { void *item; if ( !fdlg->group->frame->img->bkgnd->hide ) { if ( !lbox_handle_motion( fdlg->lbox, cx, cy, &item ) ) if ( !group_handle_motion( fdlg->group, cx, cy ) ) return 0; return 1; } return 0; } /* ==================================================================== handle_click ==================================================================== */ int fdlg_handle_button( FDlg *fdlg, int button_id, int cx, int cy, Button **button ) { char path[512]; void *item = 0; char *fname; if ( !fdlg->group->frame->img->bkgnd->hide ) { if ( group_handle_button( fdlg->group, button_id, cx, cy, button ) ) return 1; if ( lbox_handle_button( fdlg->lbox, button_id, cx, cy, button, &item ) ) { if ( item ) { SDL_FillRect( fdlg->group->frame->contents, 0, 0x0 ); fname = (char*)item; if ( fname[0] == '*' ) { /* switch directory */ if ( fname[1] == '.' ) { /* one up */ if ( strrchr( fdlg->subdir, '/' ) ) (strrchr( fdlg->subdir, '/' ))[0] = 0; else fdlg->subdir[0] = 0; } else { if ( fdlg->subdir[0] != 0 ) strcat( fdlg->subdir, "/" ); strcat( fdlg->subdir, fname + 1 ); } if ( fdlg->subdir[0] == 0 ) strcpy( path, fdlg->root ); else sprintf( path, "%s/%s", fdlg->root, fdlg->subdir ); lbox_set_items( fdlg->lbox, dir_get_entries( path, fdlg->root, 0 ) ); (fdlg->file_cb)( 0, fdlg->info_buffer ); } else { /* file info */ if ( fdlg->subdir[0] == 0 ) strcpy( path, fname ); else sprintf( path, "%s/%s", fdlg->subdir, fname ); (fdlg->file_cb)( path, fdlg->info_buffer ); } DEST( fdlg->group->frame->contents, fdlg->info_x, fdlg->info_y, fdlg->info_buffer->w, fdlg->info_buffer->h ); SOURCE( fdlg->info_buffer, 0, 0 ); blit_surf(); frame_apply( fdlg->group->frame ); } } return 0; } return 0; } /* ==================================================================== Create setup dialogue. ==================================================================== */ SDlg *sdlg_create( SDL_Surface *list_frame, SDL_Surface *list_buttons, int list_button_w, int list_button_h, int cell_h, SDL_Surface *ctrl_frame, SDL_Surface *ctrl_buttons, int ctrl_button_w, int ctrl_button_h, int id_ctrl, SDL_Surface *mod_frame, SDL_Surface *mod_buttons, int mod_button_w, int mod_button_h, int id_mod, SDL_Surface *conf_frame, SDL_Surface *conf_buttons, int conf_button_w, int conf_button_h, int id_conf, Label *label, void (*list_render_cb)(void*,SDL_Surface*), void (*list_select_cb)(void*), SDL_Surface *surf, int x, int y ) { int border = 10, alpha = 160, px, py; int cell_w = list_frame->w - 2 * border; int cell_count = ( list_frame->h - 2 * border ) / ( cell_h + 1 ); SDlg *sdlg = calloc( 1, sizeof( SDlg ) ); /* listbox for players */ if ( ( sdlg->list = lbox_create( list_frame, alpha, border, list_buttons, list_button_w, list_button_h, label, cell_count, 2, cell_w, cell_h, 1, 0x0000ff, list_render_cb, surf, x, y ) ) == 0 ) goto failure; /* group with human/cpu control button */ if ( ( sdlg->ctrl = group_create( ctrl_frame, alpha, ctrl_buttons, ctrl_button_w, ctrl_button_h, 1, id_ctrl, label, surf, x + list_frame->w - 1, y ) ) == 0 ) goto failure; group_add_button( sdlg->ctrl, id_ctrl, ctrl_frame->w - border - ctrl_button_w, ( ctrl_frame->h - ctrl_button_h ) / 2, 0, tr("Switch Control") ); /* group with ai module select button */ if ( ( sdlg->module = group_create( mod_frame, alpha, mod_buttons, mod_button_w, mod_button_h, 1, id_mod, label, surf, x + list_frame->w - 1, y + ctrl_frame->h ) ) == 0 ) goto failure; group_add_button( sdlg->module, id_mod, ctrl_frame->w - border - ctrl_button_w, ( mod_frame->h - mod_button_h ) / 2, 0, tr("Select AI Module") ); #ifndef USE_DL group_set_active( sdlg->module, id_mod, 0 ); #endif /* group with settings and confirm buttons; id_conf is id of first button * in image conf_buttons */ if ( ( sdlg->confirm = group_create( conf_frame, alpha, conf_buttons, conf_button_w, conf_button_h, 6, id_conf, label, surf, x + list_frame->w - 1, y + ctrl_frame->h + mod_frame->h ) ) == 0 ) goto failure; px = conf_frame->w - (border + conf_button_w); py = (conf_frame->h - conf_button_h) / 2; group_add_button( sdlg->confirm, ID_SETUP_OK, px, py, 0, tr("Ok") ); px = border; group_add_button( sdlg->confirm, ID_SETUP_FOG, px, py, 1, tr("Fog Of War") ); px += border + conf_button_w; group_add_button( sdlg->confirm, ID_SETUP_SUPPLY, px, py, 1, tr("Unit Supply") ); px += border + conf_button_w; group_add_button( sdlg->confirm, ID_SETUP_WEATHER, px, py, 1, tr("Weather Influence") ); px += border + conf_button_w; group_add_button( sdlg->confirm, ID_SETUP_DEPLOYTURN, px, py, 1, tr("Deploy Turn") ); px += border + conf_button_w; group_add_button( sdlg->confirm, ID_SETUP_PURCHASE, px, py, 1, tr("Purchase Option") ); group_lock_button( sdlg->confirm, ID_SETUP_FOG, config.fog_of_war ); group_lock_button( sdlg->confirm, ID_SETUP_SUPPLY, config.supply ); group_lock_button( sdlg->confirm, ID_SETUP_WEATHER, config.weather ); group_lock_button( sdlg->confirm, ID_SETUP_DEPLOYTURN, config.deploy_turn ); group_lock_button( sdlg->confirm, ID_SETUP_PURCHASE, config.purchase ); sdlg->select_cb = list_select_cb; return sdlg; failure: sdlg_delete( &sdlg ); return 0; } void sdlg_delete( SDlg **sdlg ) { if ( *sdlg ) { lbox_delete( &(*sdlg)->list ); group_delete( &(*sdlg)->ctrl ); group_delete( &(*sdlg)->module ); group_delete( &(*sdlg)->confirm ); free( *sdlg ); *sdlg = 0; } } /* ==================================================================== Draw setup dialogue. ==================================================================== */ void sdlg_hide( SDlg *sdlg, int hide ) { lbox_hide( sdlg->list, hide ); group_hide( sdlg->ctrl, hide ); group_hide( sdlg->module, hide ); group_hide( sdlg->confirm, hide ); } void sdlg_get_bkgnd( SDlg *sdlg ) { lbox_get_bkgnd( sdlg->list ); group_get_bkgnd( sdlg->ctrl ); group_get_bkgnd( sdlg->module ); group_get_bkgnd( sdlg->confirm ); } void sdlg_draw_bkgnd( SDlg *sdlg ) { lbox_draw_bkgnd( sdlg->list ); group_draw_bkgnd( sdlg->ctrl ); group_draw_bkgnd( sdlg->module ); group_draw_bkgnd( sdlg->confirm ); } void sdlg_draw( SDlg *sdlg ) { lbox_draw( sdlg->list ); group_draw( sdlg->ctrl ); group_draw( sdlg->module ); group_draw( sdlg->confirm ); } /* ==================================================================== Scenario setup dialogue ==================================================================== */ void sdlg_set_surface( SDlg *sdlg, SDL_Surface *surf ) { lbox_set_surface( sdlg->list, surf ); group_set_surface( sdlg->ctrl, surf ); group_set_surface( sdlg->module, surf ); group_set_surface( sdlg->confirm, surf ); } void sdlg_move( SDlg *sdlg, int x, int y ) { lbox_move( sdlg->list, x, y ); group_move( sdlg->ctrl, x + sdlg->list->group->frame->img->img->w - 1, y ); group_move( sdlg->module, x + sdlg->list->group->frame->img->img->w - 1, sdlg->ctrl->frame->img->img->h + y ); group_move( sdlg->confirm, x + sdlg->list->group->frame->img->img->w - 1, sdlg->ctrl->frame->img->img->h + sdlg->module->frame->img->img->h + y ); } /* ==================================================================== handle_motion updates the focus of the buttons ==================================================================== */ int sdlg_handle_motion( SDlg *sdlg, int cx, int cy ) { void *item; if ( !sdlg->list->group->frame->img->bkgnd->hide ) { if ( !group_handle_motion( sdlg->ctrl, cx, cy ) ) if ( !group_handle_motion( sdlg->module, cx, cy ) ) if ( !group_handle_motion( sdlg->confirm, cx, cy ) ) if ( !lbox_handle_motion( sdlg->list, cx, cy, &item ) ) return 0; return 1; } return 0; } /* ==================================================================== handle_button ==================================================================== */ int sdlg_handle_button( SDlg *sdlg, int button_id, int cx, int cy, Button **button ) { void *item = 0; if ( !sdlg->list->group->frame->img->bkgnd->hide ) { if ( group_handle_button( sdlg->ctrl, button_id, cx, cy, button ) ) return 1; if ( group_handle_button( sdlg->module, button_id, cx, cy, button ) ) return 1; if ( group_handle_button( sdlg->confirm, button_id, cx, cy, button ) ) return 1; if ( lbox_handle_button( sdlg->list, button_id, cx, cy, button, &item ) ) { if ( item ) { (sdlg->select_cb)(item); } } } return 0; } /** Select dialog: * A listbox for selection with OK/Cancel buttons */ SelectDlg *select_dlg_create( SDL_Surface *lbox_frame, SDL_Surface *lbox_buttons, int lbox_button_w, int lbox_button_h, int lbox_cell_count, int lbox_cell_w, int lbox_cell_h, void (*lbox_render_cb)(void*, SDL_Surface*), SDL_Surface *conf_frame, SDL_Surface *conf_buttons, int conf_button_w, int conf_button_h, int id_ok, SDL_Surface *surf, int x, int y ) { SelectDlg *sdlg = NULL; int sx, sy; sdlg = calloc(1, sizeof(SelectDlg)); if (sdlg == NULL) goto failure; sdlg->button_group = group_create(conf_frame, 160, conf_buttons, conf_button_w, conf_button_h, 2, id_ok, gui->label, sdl.screen, 0, 0); if (sdlg->button_group == NULL) goto failure; sx = group_get_width( sdlg->button_group ) - 60; sy = 5; group_add_button( sdlg->button_group, id_ok, sx, sy, 0, tr("Apply") ); group_add_button( sdlg->button_group, id_ok+1, sx + 30, sy, 0, tr("Cancel") ); sdlg->select_lbox = lbox_create( lbox_frame, 160, 6, lbox_buttons, lbox_button_w, lbox_button_h, gui->label, lbox_cell_count, lbox_cell_count/2, lbox_cell_w, lbox_cell_h, 1, 0x0000ff, lbox_render_cb, sdl.screen, 0, 0); if (sdlg->select_lbox == NULL) goto failure; return sdlg; failure: fprintf(stderr, tr("Failed to create select dialogue\n")); select_dlg_delete(&sdlg); return NULL; } void select_dlg_delete( SelectDlg **sdlg ) { if (*sdlg) { SelectDlg *ptr = *sdlg; group_delete(&ptr->button_group); lbox_delete(&ptr->select_lbox); free(ptr); } *sdlg = NULL; } int select_dlg_get_width(SelectDlg *sdlg) { return lbox_get_width(sdlg->select_lbox); } int select_dlg_get_height(SelectDlg *sdlg) { return lbox_get_height(sdlg->select_lbox) + group_get_height(sdlg->button_group); } void select_dlg_move( SelectDlg *sdlg, int px, int py) { lbox_move(sdlg->select_lbox, px, py); group_move(sdlg->button_group, px, py + lbox_get_height(sdlg->select_lbox)); } void select_dlg_hide( SelectDlg *sdlg, int value) { group_hide(sdlg->button_group, value); lbox_hide(sdlg->select_lbox, value); } void select_dlg_draw( SelectDlg *sdlg) { group_draw(sdlg->button_group); lbox_draw(sdlg->select_lbox); } void select_dlg_draw_bkgnd( SelectDlg *sdlg) { group_draw_bkgnd(sdlg->button_group); lbox_draw_bkgnd(sdlg->select_lbox); } void select_dlg_get_bkgnd( SelectDlg *sdlg) { group_get_bkgnd(sdlg->button_group); lbox_get_bkgnd(sdlg->select_lbox); } int select_dlg_handle_motion( SelectDlg *sdlg, int cx, int cy) { int ret = 1; void *item = NULL; if (!group_handle_motion(sdlg->button_group,cx,cy)) if (!lbox_handle_motion(sdlg->select_lbox,cx,cy,&item)) ret = 0; return ret; } int select_dlg_handle_button( SelectDlg *sdlg, int bid, int cx, int cy, Button **pbtn ) { void *item = NULL; if (group_handle_button(sdlg->button_group,bid,cx,cy,pbtn)) return 1; if (lbox_handle_button(sdlg->select_lbox,bid,cx,cy,pbtn,&item)) return 0; /* internal up/down buttons */ return 0; } lgeneral-1.3.1/src/file.h0000664000175000017500000000326312140770455012120 00000000000000/*************************************************************************** file.h - description ------------------- begin : Thu Jan 18 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __FILE_H #define __FILE_H #include /* ==================================================================== Read all lines from file. ==================================================================== */ List* file_read_lines( FILE *file ); /* ==================================================================== Return a list (autodeleted strings) with all accessible files and directories in path with the extension ext (if != 0). Don't show hidden files or Makefile stuff. The directoriers are marked with an asteriks. ==================================================================== */ List* dir_get_entries( const char *path, const char *root, const char *ext ); #endif lgeneral-1.3.1/src/lg-sdl.c0000664000175000017500000006154112575246413012365 00000000000000/*************************************************************************** lg-sdl - description ------------------- begin : Thu Apr 20 2000 copyright : (C) 2000 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "lg-sdl.h" #include "misc.h" #include #include #include #include "localize.h" extern int term_game; Sdl sdl; SDL_Cursor *empty_cursor = 0, *std_cursor = 0; /* timer */ int cur_time, last_time; /* sdl surface */ /* return full path of bitmap */ inline void get_full_bmp_path( char *full_path, const char *file_name ) { sprintf(full_path, "%s/gfx/%s", get_gamedir(), file_name ); } /* load a surface from file putting it in soft or hardware mem */ SDL_Surface* load_surf(const char *fname, int f) { SDL_Surface *buf; SDL_Surface *new_sur; char path[ 512 ]; SDL_PixelFormat *spf; get_full_bmp_path( path, fname ); buf = SDL_LoadBMP( path ); if ( buf == 0 ) { fprintf( stderr, "%s: %s\n", fname, SDL_GetError() ); if ( f & SDL_NONFATAL ) return 0; else exit( 1 ); } /* if ( !(f & SDL_HWSURFACE) ) { SDL_SetColorKey( buf, SDL_SRCCOLORKEY, 0x0 ); return buf; } new_sur = create_surf(buf->w, buf->h, f); SDL_BlitSurface(buf, 0, new_sur, 0); SDL_FreeSurface(buf);*/ spf = SDL_GetVideoSurface()->format; new_sur = SDL_ConvertSurface( buf, spf, f ); SDL_FreeSurface( buf ); SDL_SetColorKey( new_sur, SDL_SRCCOLORKEY, 0x0 ); SDL_SetAlpha( new_sur, 0, 0 ); /* no alpha */ return new_sur; } /* create an surface MUST NOT BE USED IF NO SDLSCREEN IS SET */ SDL_Surface* create_surf(int w, int h, int f) { SDL_Surface *sur; SDL_PixelFormat *spf = SDL_GetVideoSurface()->format; if ((sur = SDL_CreateRGBSurface(f, w, h, spf->BitsPerPixel, spf->Rmask, spf->Gmask, spf->Bmask, spf->Amask)) == 0) { fprintf(stderr, "ERR: ssur_create: not enough memory to create surface...\n"); exit(1); } /* if (f & SDL_HWSURFACE && !(sur->flags & SDL_HWSURFACE)) fprintf(stderr, "unable to create surface (%ix%ix%i) in hardware memory...\n", w, h, spf->BitsPerPixel);*/ SDL_SetColorKey(sur, SDL_SRCCOLORKEY, 0x0); SDL_SetAlpha(sur, 0, 0); /* no alpha */ return sur; } void free_surf( SDL_Surface **surf ) { if ( *surf ) { SDL_FreeSurface( *surf ); *surf = 0; } } /* return display format */ int disp_format(SDL_Surface *sur) { if ((sur = SDL_DisplayFormat(sur)) == 0) { fprintf(stderr, "ERR: ssur_displayformat: convertion failed\n"); return 1; } return 0; } /* lock surface */ inline void lock_surf(SDL_Surface *sur) { if (SDL_MUSTLOCK(sur)) SDL_LockSurface(sur); } /* unlock surface */ inline void unlock_surf(SDL_Surface *sur) { if (SDL_MUSTLOCK(sur)) SDL_UnlockSurface(sur); } /* blit surface with destination DEST and source SOURCE using it's actual alpha and color key settings */ void blit_surf(void) { SDL_BlitSurface(sdl.s.s, &sdl.s.r, sdl.d.s, &sdl.d.r); } /* do an alpha blit */ void alpha_blit_surf(int alpha) { SDL_SetAlpha(sdl.s.s, SDL_SRCALPHA, alpha); SDL_BlitSurface(sdl.s.s, &sdl.s.r, sdl.d.s, &sdl.d.r); SDL_SetAlpha(sdl.s.s, 0, 0); } /* fill surface with color c */ void fill_surf(int c) { SDL_FillRect(sdl.d.s, &sdl.d.r, SDL_MapRGB(sdl.d.s->format, c >> 16, (c >> 8) & 0xFF, c & 0xFF)); } /* set clipping rect */ void set_surf_clip( SDL_Surface *surf, int x, int y, int w, int h ) { SDL_Rect rect = { x, y, w, h }; if ( w == h || h == 0 ) SDL_SetClipRect( surf, 0 ); else SDL_SetClipRect( surf, &rect ); } /* set pixel */ Uint32 set_pixel( SDL_Surface *surf, int x, int y, int pixel ) { int pos = 0; pos = y * surf->pitch + x * surf->format->BytesPerPixel; memcpy( surf->pixels + pos, &pixel, surf->format->BytesPerPixel ); return pixel; } /* get pixel */ Uint32 get_pixel( SDL_Surface *surf, int x, int y ) { int pos = 0; Uint32 pixel = 0; pos = y * surf->pitch + x * surf->format->BytesPerPixel; memcpy( &pixel, surf->pixels + pos, surf->format->BytesPerPixel ); return pixel; } /* sdl font */ /* return full font path */ void get_full_font_path( char *path, const char *file_name ) { strcpy( path, file_name ); /* sprintf(path, "./gfx/fonts/%s", file_name ); */ } /* * Loads glyphs into a font from file 'fname'. * * Font format description: * * Each font file is a pixmap comprised of a single row of subsequent glyphs * defining the appearence of the associated character code. * * The height of the font is implicitly defined by the height of the pixmap. * * Each glyph is defined by a pixmap as depicted in the following * example (where each letter represents the respective rgb-value): * * (1) -----> ........ * ........ * ..####.. * .#....#. * .#....#. * .#....#. * .#....#. * .#....#. * .#.#..#. * .#..#.#. * ..####.. * ......#. * (2, 3) --> S....... * * (1): The top left pixel defines the transparency pixel. All pixels of * the same color as (1) are treated as transparent when the glyph is * rendered. * Note that (1) will only be checked for the *first* glyph in * the file and be applied to all other glyphs. * * (2): The bottom left pixel defines the starting column of a particular * glyph within the font pixmap. By scanning these pixels, the font loader * is able to determine the width of the glyph. * The color is either #FF00FF for a valid glyph, or #FF0000 for an invalid * glyph (in this case it will not be rendered, * regardless of what it contains otherwise). * * (3): For the very first glyph, (2) has a special meaning. It provides * some basic information about the font to be loaded. * The r-value specifies the starting code of the first glyph. * The g- and b-values are reserved and must be (0) * * The glyph-to-character-code-mapping is done by starting with the code * specified by (3). Then the bottom line is scanned: For every occurrence of * (2) the code will be incremented, and appropriate offset and width values * be calculated. The total count of characters will be determined by the * count of glyphs contained within the file. * * For display, (2) and (3) will be assumed to have color (1). */ void font_load_glyphs(Font *font, const char *fname) { #if SDL_BYTEORDER == SDL_BIG_ENDIAN # define R_INDEX 1 # define G_INDEX 2 # define B_INDEX 3 #else # define R_INDEX 2 # define G_INDEX 1 # define B_INDEX 0 #endif #define AT_RGB(pixel, idx) (((Uint8 *)&(pixel))+(idx)) char path[512]; int i; Uint32 transparency_key; Uint8 start_code, reserved1, reserved2; SDL_Surface *new_glyphs; get_full_font_path( path, fname ); if ((new_glyphs = load_surf(path, SDL_SWSURFACE)) == 0) { fprintf(stderr, tr("Cannot load new glyphs surface: %s\n"), SDL_GetError()); exit(1); } /* use (1) as transparency key */ transparency_key = get_pixel( new_glyphs, 0, 0 ); /* evaluate (3) */ SDL_GetRGB(get_pixel( new_glyphs, 0, new_glyphs->h - 1 ), new_glyphs->format, &start_code, &reserved1, &reserved2); // bail out early and consistently for invalid input to minimise the amount // of font files out of spec if (reserved1 || reserved2) { fprintf(stderr, tr("Invalid font file: %d, %d\n"), reserved1, reserved2); exit(1); } /* update font data */ /* FIXME: don't blindly override, merge smartly */ font->height = new_glyphs->h; /* cut prevalent glyph row at where to insert the new glyph row, * and insert it, thus overriding only the glyph range that is defined * by new_glyphs. */ { /* total width of previous conserved glyphs */ int pre_width = font->char_offset[start_code]; /* total width of following conserved glyphs */ int post_width = (font->pic ? font->pic->w : 0) - pre_width; unsigned code = start_code; int fixup; /* amount of pixels following offsets have to be fixed up */ SDL_Surface *dest; /* override widths and offsets of new glyphs */ /* concurrently calculate width of following conserved glyphs */ for (i = 0; i < new_glyphs->w; i++) { Uint32 pixel = 0; int valid_glyph; SDL_GetRGB(get_pixel(new_glyphs, i, new_glyphs->h - 1), new_glyphs->format, AT_RGB(pixel, R_INDEX), AT_RGB(pixel, G_INDEX), AT_RGB(pixel, B_INDEX)); pixel &= 0xf8f8f8; /* cope with RGB565 and other perversions */ if (i != 0 && pixel != 0xf800f8 && pixel != 0xf80000) continue; if (code > 256) { fprintf(stderr, tr("font '%s' contains too many glyphs\n"), path); break; } valid_glyph = i == 0 || pixel != 0xf80000; set_pixel(new_glyphs, i, new_glyphs->h - 1, transparency_key); font->char_offset[code] = pre_width + i; font->keys[code] = valid_glyph; code++; } fixup = pre_width + i - font->char_offset[code]; post_width -= font->char_offset[code] - font->char_offset[start_code]; /* now the gory part: * 1. create a new surface large enough to hold conserved and new glyphs. * 2. blit the conserved previous part. * 3. blit the conserved following part. * 4. blit the new glyphs. */ dest = create_surf(pre_width + new_glyphs->w + post_width, font->pic ? font->pic->h : new_glyphs->h, SDL_HWSURFACE); if (!dest) { fprintf(stderr, tr("could not create font surface: %s\n"), SDL_GetError()); exit(1); } if (pre_width > 0) { assert(font->pic); DEST(dest, 0, 0, pre_width, font->height); SOURCE(font->pic, 0, 0); blit_surf(); } if (post_width > 0) { assert(font->pic); DEST(dest, font->char_offset[code] + fixup, 0, post_width, font->height); SOURCE(font->pic, font->char_offset[code], 0); blit_surf(); } DEST(dest, font->char_offset[start_code], 0, new_glyphs->w, font->height); FULL_SOURCE(new_glyphs); blit_surf(); /* replace old row with newly composed row */ SDL_FreeSurface(font->pic); font->pic = dest; /* fix up offsets of successors */ for (i = code; i < 256; i++) font->char_offset[code] += fixup; font->width += fixup; } SDL_SetColorKey( font->pic, SDL_SRCCOLORKEY, transparency_key ); SDL_FreeSurface(new_glyphs); #undef R_INDEX #undef G_INDEX #undef B_INDEX #undef AT_RGB } /** * create a new font from font file 'fname' */ Font* load_font(const char *fname) { Font *fnt = calloc(1, sizeof(Font)); if (fnt == 0) { fprintf(stderr, tr("ERR: %s: not enough memory\n"), __FUNCTION__); exit(1); } fnt->align = ALIGN_X_LEFT | ALIGN_Y_TOP; fnt->color = 0x00FFFFFF; font_load_glyphs(fnt, fname); return fnt; } /* free memory */ void free_font(Font **fnt) { if ( *fnt ) { if ((*fnt)->pic) SDL_FreeSurface((*fnt)->pic); free(*fnt); *fnt = 0; } } /* write something with transparency */ int write_text(Font *fnt, SDL_Surface *dest, int x, int y, const char *str, int alpha) { int len = strlen(str); int pix_len = text_width(fnt, str); int px = x, py = y; int i; SDL_Surface *spf = SDL_GetVideoSurface(); const int * const ofs = fnt->char_offset; /* alignment */ if (fnt->align & ALIGN_X_CENTER) px -= pix_len >> 1; else if (fnt->align & ALIGN_X_RIGHT) px -= pix_len; if (fnt->align & ALIGN_Y_CENTER) py -= (fnt->height >> 1 ) + 1; else if (fnt->align & ALIGN_Y_BOTTOM) py -= fnt->height; fnt->last_x = MAXIMUM(px, 0); fnt->last_y = MAXIMUM(py, 0); fnt->last_width = MINIMUM(pix_len, spf->w - fnt->last_x); fnt->last_height = MINIMUM(fnt->height, spf->h - fnt->last_y); if (alpha != 0) SDL_SetAlpha(fnt->pic, SDL_SRCALPHA, alpha); else SDL_SetAlpha(fnt->pic, 0, 0); for (i = 0; i < len; i++) { unsigned c = (unsigned char)str[i]; if (!fnt->keys[c]) c = '\177'; { const int w = ofs[c+1] - ofs[c]; DEST(dest, px, py, w, fnt->height); SOURCE(fnt->pic, ofs[c], 0); blit_surf(); px += w; } } return 0; } /* ==================================================================== Write string to x, y and modify y so that it draws to the next line. ==================================================================== */ void write_line( SDL_Surface *surf, Font *font, const char *str, int x, int *y ) { write_text( font, surf, x, *y, str, 255 ); *y += font->height; } /* lock font surface */ inline void lock_font(Font *fnt) { if (SDL_MUSTLOCK(fnt->pic)) SDL_LockSurface(fnt->pic); } /* unlock font surface */ inline void unlock_font(Font *fnt) { if (SDL_MUSTLOCK(fnt->pic)) SDL_UnlockSurface(fnt->pic); } /* return last update region */ SDL_Rect last_write_rect(Font *fnt) { SDL_Rect rect={fnt->last_x, fnt->last_y, fnt->last_width, fnt->last_height}; return rect; } inline int char_width(Font *fnt, char c) { unsigned i = (unsigned char)c; return fnt->char_offset[i + 1] - fnt->char_offset[i]; } /* return the text width in pixels */ int text_width(Font *fnt, const char *str) { unsigned int i; int pix_len = 0; for (i = strlen(str); i > 0; ) pix_len += char_width(fnt, str[--i]); return pix_len; } /* sdl */ /* initialize sdl */ void init_sdl( int f ) { /* check flags: if SOUND is not enabled flag SDL_INIT_AUDIO musn't be set */ #ifndef WITH_SOUND if ( f & SDL_INIT_AUDIO ) f = f & ~SDL_INIT_AUDIO; #endif sdl.screen = 0; if (SDL_Init(f) < 0) { fprintf(stderr, "ERR: sdl_init: %s", SDL_GetError()); exit(1); } SDL_EnableUNICODE(1); atexit(quit_sdl); /* create empty cursor */ empty_cursor = create_cursor( 16, 16, 8, 8, " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " ); std_cursor = SDL_GetCursor(); } /* free screen */ void quit_sdl() { if (sdl.screen) SDL_FreeSurface(sdl.screen); if ( empty_cursor ) SDL_FreeCursor( empty_cursor ); if (sdl.vmodes) free(sdl.vmodes); SDL_Quit(); printf("SDL finalized\n"); } /** Get list of all video modes. Allocate @vmi and return number of * entries. */ int get_video_modes( VideoModeInfo **vmi ) { SDL_Rect **modes = SDL_ListModes(NULL, SDL_FULLSCREEN); int i, nmodes = 0; int bpp = SDL_GetVideoInfo()->vfmt->BitsPerPixel; *vmi = NULL; if (modes == NULL || modes == (SDL_Rect **)-1) { VideoModeInfo stdvmi[2] = { { 640, 480, 32, 0 }, { 640, 480, 32, 1 } }; fprintf(stderr,"No video modes available or specified.\n"); /* offer at least 640x480 */ nmodes = 2; *vmi = calloc(nmodes,sizeof(VideoModeInfo)); (*vmi)[0] = stdvmi[0]; (*vmi)[1] = stdvmi[1]; return nmodes; } /* count number of modes */ for (nmodes = 0; modes[nmodes]; nmodes++); nmodes *= 2; /* each as window and fullscreen */ *vmi = calloc(nmodes,sizeof(VideoModeInfo)); for (i = 0; i < nmodes/2; i++) { VideoModeInfo *info = &((*vmi)[i*2]); info->width = modes[i]->w; info->height = modes[i]->h; info->depth = bpp; info->fullscreen = 0; (*vmi)[i*2+1] = *info; (*vmi)[i*2+1].fullscreen = 1; } return nmodes; } /* ==================================================================== Switch to passed video mode. ==================================================================== */ int set_video_mode( int width, int height, int fullscreen ) { #ifdef SDL_DEBUG SDL_PixelFormat *fmt; #endif int depth = 32; int flags = SDL_SWSURFACE; /* if screen does exist check if this is mayby exactly the same resolution */ if ( sdl.screen ) { if ( sdl.screen->w == width && sdl.screen->h == height ) if ( ( sdl.screen->flags & SDL_FULLSCREEN ) == fullscreen ) return 1; } /* free old screen */ if (sdl.screen) SDL_FreeSurface( sdl.screen ); sdl.screen = 0; /* set video mode */ if ( fullscreen ) flags |= SDL_FULLSCREEN; if ( ( depth = SDL_VideoModeOK( width, height, depth, flags ) ) == 0 ) { fprintf( stderr, tr("Requested mode %ix%i, Fullscreen: %i unavailable\n"), width, height, fullscreen ); sdl.screen = SDL_SetVideoMode( 640, 480, 16, SDL_SWSURFACE ); } else if ( ( sdl.screen = SDL_SetVideoMode( width, height, depth, flags ) ) == 0 ) { fprintf(stderr, "%s", SDL_GetError()); return 1; } #ifdef SDL_DEBUG if (f & SDL_HWSURFACE && !(sdl.screen->flags & SDL_HWSURFACE)) fprintf(stderr, "unable to create screen in hardware memory...\n"); if (f & SDL_DOUBLEBUF && !(sdl.screen->flags & SDL_DOUBLEBUF)) fprintf(stderr, "unable to create double buffered screen...\n"); if (f & SDL_FULLSCREEN && !(sdl.screen->flags & SDL_FULLSCREEN)) fprintf(stderr, "unable to switch to fullscreen...\n"); fmt = sdl.screen->format; printf("video mode format:\n"); printf("Masks: R=%i, G=%i, B=%i\n", fmt->Rmask, fmt->Gmask, fmt->Bmask); printf("LShft: R=%i, G=%i, B=%i\n", fmt->Rshift, fmt->Gshift, fmt->Bshift); printf("RShft: R=%i, G=%i, B=%i\n", fmt->Rloss, fmt->Gloss, fmt->Bloss); printf("BBP: %i\n", fmt->BitsPerPixel); printf("-----\n"); #endif return 0; } /* show hardware capabilities */ void hardware_cap() { const SDL_VideoInfo *vi = SDL_GetVideoInfo(); char *ny[2] = {"No", "Yes"}; printf("video hardware capabilities:\n"); printf("Hardware Surfaces: %s\n", ny[vi->hw_available]); printf("HW_Blit (CC, A): %s (%s, %s)\n", ny[vi->blit_hw], ny[vi->blit_hw_CC], ny[vi->blit_hw_A]); printf("SW_Blit (CC, A): %s (%s, %s)\n", ny[vi->blit_sw], ny[vi->blit_sw_CC], ny[vi->blit_sw_A]); printf("HW_Fill: %s\n", ny[vi->blit_fill]); printf("Video Memory: %i\n", vi->video_mem); printf("------\n"); } /* update rectangle (0,0,0,0)->fullscreen */ void refresh_screen(int x, int y, int w, int h) { SDL_UpdateRect(sdl.screen, x, y, w, h); sdl.rect_count = 0; } /* draw all update regions */ void refresh_rects() { if (sdl.rect_count == RECT_LIMIT) SDL_UpdateRect(sdl.screen, 0, 0, sdl.screen->w, sdl.screen->h); else if ( sdl.rect_count > 0 ) SDL_UpdateRects(sdl.screen, sdl.rect_count, sdl.rect); sdl.rect_count = 0; } /* add update region/rect */ void add_refresh_region( int x, int y, int w, int h ) { if (sdl.rect_count == RECT_LIMIT) return; if (x < 0) { w += x; x = 0; } if (y < 0) { h += y; y = 0; } if (x + w > sdl.screen->w) w = sdl.screen->w - x; if (y + h > sdl.screen->h) h = sdl.screen->h - y; if (w <= 0 || h <= 0) return; sdl.rect[sdl.rect_count].x = x; sdl.rect[sdl.rect_count].y = y; sdl.rect[sdl.rect_count].w = w; sdl.rect[sdl.rect_count].h = h; sdl.rect_count++; } void add_refresh_rect( SDL_Rect *rect ) { if ( rect ) add_refresh_region( rect->x, rect->y, rect->w, rect->h ); } /* fade screen to black */ void dim_screen(int steps, int delay, int trp) { #ifndef NODIM SDL_Surface *buffer; int per_step = trp / steps; int i; if (term_game) return; buffer = create_surf(sdl.screen->w, sdl.screen->h, SDL_SWSURFACE); SDL_SetColorKey(buffer, 0, 0); FULL_DEST(buffer); FULL_SOURCE(sdl.screen); blit_surf(); for (i = 0; i <= trp; i += per_step) { FULL_DEST(sdl.screen); fill_surf(0x0); FULL_SOURCE(buffer); alpha_blit_surf(i); refresh_screen( 0, 0, 0, 0); SDL_Delay(delay); } if (trp == 255) { FULL_DEST(sdl.screen); fill_surf(0x0); refresh_screen( 0, 0, 0, 0); } SDL_FreeSurface(buffer); #else refresh_screen( 0, 0, 0, 0); #endif } /* undim screen */ void undim_screen(int steps, int delay, int trp) { #ifndef NODIM SDL_Surface *buffer; int per_step = trp / steps; int i; if (term_game) return; buffer = create_surf(sdl.screen->w, sdl.screen->h, SDL_SWSURFACE); SDL_SetColorKey(buffer, 0, 0); FULL_DEST(buffer); FULL_SOURCE(sdl.screen); blit_surf(); for (i = trp; i >= 0; i -= per_step) { FULL_DEST(sdl.screen); fill_surf(0x0); FULL_SOURCE(buffer); alpha_blit_surf(i); refresh_screen( 0, 0, 0, 0); SDL_Delay(delay); } FULL_DEST(sdl.screen); FULL_SOURCE(buffer); blit_surf(); refresh_screen( 0, 0, 0, 0); SDL_FreeSurface(buffer); #else refresh_screen( 0, 0, 0, 0); #endif } /* wait for a key */ int wait_for_key() { /* wait for key */ SDL_Event event; while (1) { SDL_WaitEvent(&event); if (event.type == SDL_QUIT) { term_game = 1; return 0; } if (event.type == SDL_KEYUP) return event.key.keysym.sym; } } /* wait for a key or mouse click */ void wait_for_click() { /* wait for key or button */ SDL_Event event; while (1) { SDL_WaitEvent(&event); if (event.type == SDL_QUIT) { term_game = 1; return; } if (event.type == SDL_KEYUP || event.type == SDL_MOUSEBUTTONUP) return; } } /* lock surface */ inline void lock_screen() { if (SDL_MUSTLOCK(sdl.screen)) SDL_LockSurface(sdl.screen); } /* unlock surface */ inline void unlock_screen() { if (SDL_MUSTLOCK(sdl.screen)) SDL_UnlockSurface(sdl.screen); } /* flip hardware screens (double buffer) */ inline void flip_screen() { SDL_Flip(sdl.screen); } /* cursor */ /* creates cursor */ SDL_Cursor* create_cursor( int width, int height, int hot_x, int hot_y, const char *source ) { unsigned char *mask = 0, *data = 0; SDL_Cursor *cursor = 0; int i, j, k; char data_byte, mask_byte; int pot; /* meaning of char from source: b : black, w: white, ' ':transparent */ /* create mask&data */ mask = malloc( width * height * sizeof ( char ) / 8 ); data = malloc( width * height * sizeof ( char ) / 8 ); k = 0; for (j = 0; j < width * height; j += 8, k++) { pot = 1; data_byte = mask_byte = 0; /* create byte */ for (i = 7; i >= 0; i--) { switch ( source[j + i] ) { case 'b': data_byte += pot; case 'w': mask_byte += pot; break; } pot *= 2; } /* add to mask */ data[k] = data_byte; mask[k] = mask_byte; } /* create and return cursor */ cursor = SDL_CreateCursor( data, mask, width, height, hot_x, hot_y ); free( mask ); free( data ); return cursor; } /* get milliseconds since last call */ int get_time() { int ms; cur_time = SDL_GetTicks(); ms = cur_time - last_time; last_time = cur_time; if (ms == 0) { ms = 1; SDL_Delay(1); } return ms; } /* reset timer */ void reset_timer() { last_time = SDL_GetTicks(); } lgeneral-1.3.1/src/ai_modules/0000775000175000017500000000000012643745102013224 500000000000000lgeneral-1.3.1/src/ai_modules/Makefile.in0000664000175000017500000003170312643745056015225 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/ai_modules DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/ai_modules/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/ai_modules/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/ai_modules # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/ai_modules/Makefile.am0000664000175000017500000000010712140770452015174 00000000000000install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/ai_modules lgeneral-1.3.1/src/themes/0000775000175000017500000000000012643745101012367 500000000000000lgeneral-1.3.1/src/themes/default/0000775000175000017500000000000012643745101014013 500000000000000lgeneral-1.3.1/src/themes/default/fr_vert.bmp0000664000175000017500000000507612140770455016114 00000000000000BM> 6(Ö œ œ ÅŠF1-Ô±¡:)&ѰŸ7'$Ï—Š6&#Ï—Š5%"Ï›Œ- Ѭž5&#Ï–‹6&#Ï—‹=+'Àˆ{6&#ÅŠ~?,(¿…y?,(Î’…6&#Ï›Ž5%!Ï›Ž5%!Ì‚5%!Ï—Š:(%Ï›Ž@,(С’8&#Ѧ—5%!Ѷ¦5%!Ѷ¦5%!ѯŸ:($Ñ´¦E0,Ñ´¦>,(Ñ´¤?,)ѧ˜C0+КK50Ï–Š?,(¼†y:(%Ó“†5&"Û›Œ5&"江0" 浡0" 汞0" ÞœŒ0" ÞœŒ0" å§—0" 媜6&$媜9(%Ù˜‹2#!Ó“†5%!ä¡’0!媛6%!媜6&#嫜=+'Ù˜‹6&#Þ›Ž?,(×—Š?,(妗6&#污5%!污5%!䢓5%!å«›:(%污@,(ç·¦8&#缫5%!çͼ5%!çͼ5%!çñ:($çÊ»E0,çÊ»>,(çÊ·?,)缪C0+殡K50娙?,(Š}:(%Õ•‰5&"ÝœŽ5&"æµ¢0" æ·£0" 浡0" ⟎0" ⟎0" 婘0" 殟6&$殟9(%Û™‹2#!Õ•‰5%!䢓0!媛6%!çǶ:)&çÆµ7'$å«›6&#å«›5%"æ± - çÅ´5&#笞6&#ç­ž=+'ÜšŒ6&#á?,(Ù™‹?,(ç§™6&#ç²£5%!ç²£5%!礕5%!ç­:(%ç²£@,(ç¹§8&#ç¾­5%!çо5%!çо5%!çÆ³:($ç̼E0,ç̼>,(ç̹?,)羬C0+ç°£K50窛?,(Å‹:(%×–‹5&"àž5&"ç·¤0" ç¹¥0" ç·£0" ä¡0" ä¡0" 竚0" ç°¡6&$ç°¡9(%Þ›2#!×–‹5%!礕0!ç¬6%!çʸ:)&çÉ·7'$ç­6&#ç­5%"粡- çÅ´5&#笞6&#ç­ž=+'ÜšŒ6&#á?,(Ù™‹?,(ç§™6&#ç²£5%!ç²£5%!礕5%!ç­:(%ç²£@,(ç¹§8&#ç¾­5%!çо5%!çо5%!çÆ³:($ç̼E0,ç̼>,(ç̹?,)羬C0+ç°£K50窛?,(Å‹:(%×–‹5&"àž5&"ç·¤0" ç¹¥0" ç·£0" ä¡0" ä¡0" 竚0" ç°¡6&$ç°¡9(%Þ›2#!×–‹5%!礕0!ç¬6%!ç°¡?,(çʸ:)&çÉ·7'$欜6&#Ú£•6%"Ù§—.!Ù¹©6'$Ù¡•7'$Ù¢•>,(΃7'$Ó”‡@-)Ë‚@-)Ù7'$Ù§™6&"Ù§™6&"Ùš‹6&"Ù¢”;)&Ù§™A-)Ù­9'$Ù²¢6&"Ùò6&"Ùò6&"Ùº¨;)%Ù¿°F1-Ù¿°?-)Ù¿­@-*Ù²¡D1,Ù¥™L61Ù ‘@-)¹‚w;)&ÉŒ‚6'#Ò•‡6'#Ù«š1#!Ù­›2$"Ù«™2$"Ö—‡2$"Ö—‡2$"Ù¡2$"Ù¥—8(&Ù¥—;*'Б„4%"ÉŒ‚6'#Ùš‹1# Ù¡”8'#Ë‚C/+Ë„B.*¢rj7'#lgeneral-1.3.1/src/themes/default/strength_buttons.bmp0000664000175000017500000013566612140770455020072 00000000000000BM¶»6(PÈ€»  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQ QQQQQQQQQ QQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQ QQQQQQQQQ QQQQQQ QQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQ QQQQQQQQQ QQQQQQ QQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQ QQQQQQQQQ QQQQQQ QQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQ QQQQQQQQQ QQQQQQ QQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQ QQQQQQQQQ QQQQQQ QQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQ QQQQQQQQQQQQ QQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQ QQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQ QQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ HHHHHH QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ HHHHHH QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ HHHHHH QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ HHHHHH QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQ QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQ HHHHHH QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQ HHHHHH QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQ QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ HHH QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQ QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQ QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQ QQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQ QQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQ QQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQ QQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨&&&ÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿÿÿÿ¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ÿÿÿQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlgeneral-1.3.1/src/themes/default/wallpaper.bmp0000664000175000017500000002243212140770455016427 00000000000000BM%(``$œ œ 99...'''+++333(((%%% $$$"""!!! &&&///***555 ###444 111,,,000:::777--- 666;;; BBB999===>>>@@@EEE??? '!      %    '+  /'# !(/!#( /% &# ,/   % ###  (& #  #         #  6# # #*! %,    #  .  %   '  (  +#    %  ##    +  ''&  -&  #  ++  #! %# +#   *) ' !#     # . +'0 ( #    6    +!  +& & '#   / 5#+#     *'   #   % + (  ( ##(+'+# , )##    # +! #   + # '' # ''#    . #   #   ,#  $  #    +     1+    +# %#  ##  #!##   /      # # # # #! #  + #  '%  ''+     * '/ !    ('       # #   ' ''  ' &3&   #(&' #./## +  +   ' &' #  1   #' ) ( ! %   +'  # $  -# # ,,%/#  + # &'+($  !  /'#&     & . 4+# !# /# #    &  * 3'.0    #  '  '   #1 (#!   #   +#'' #  #'++ *+  # 2 #' .  + &'-1 "    +&$0  ($## .*' +  /!#$$.& #   *(  -+   ! !#+(*  !!-  ' 80  # !  & & 1 &3 #  &'  %   +&- # !   *( +% ,*+-   "" ! 1 && ) # 7 #  #''   % !    '%/  7 *    '( #!   !%$ , +#&'! ! #         $   #  %     #  !!"  #    #'     ' #  #      #   ( 1   $$   $#  *  #  %     ,+ # #    # ##)# #      %     '!  !(/!#( /% '+  /'#  (& #  &# ,/   % ###  6# # (/#         #  .  % /#*! %,   +#     '  (+  ''&   %  ##      #! # -&  #  + *) ' !#   %# +#  +'0 ( #    # .  +& & '#   /  6    +!  *'   #     5#+#    (+'+# , % + (  ( # +! #   + ! )##     ''#  # ''  ,#    . #        $  #    ++# %#  %#1+    !##  # ##  ## # * /      #   '%  (# #! #  + #!  ( ''+     * '/# #   '  ('     &   #(&'  ''  ' &3 +  +   '  #./## ( ! %  ' &' #  1   #'# # ,,%/#  +'  # $ +($  !  /'#$  + # &' 4+# !# /#&     &3'.0    #    #    &  #!   #   '  '   #1 (+  # 2 #' # +#'' #  #'++-1 "     .  + +  /! #+&$0  ($## .   ! !###$$.& #   *(  -  # ! +(*  !!-  ' 80#  &'  # & & 1 &3!   *( +% ,*+-   %   +&- # & ) #   "" ! 1 &'   % !     7 #  #'( #!   !%$#'%/  7 *   #&'! ! #  , $   #  %       !!"  #     #        #'     ' #  # lgeneral-1.3.1/src/themes/default/ctrl_buttons.bmp0000664000175000017500000001546612140770455017173 00000000000000BM66(`œ œ (((!!!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ (((¥¥¥jjjSSSEEECCC;;;;;;666777AAACCC???::::::000000ÿÿÿ¥¥¥jjjSSSEEECCC;;;;;;666777AAACCC???::::::000000ÿÿÿÿÿÿ¥¥¥jjjSSSEEECCC;;;;;;666777AAACCC???::::::000000ÿÿÿLLL000&&& (((´´´µµµ¤¤¤tttmmmxxx}}}ŒŒŒŒŒŒ•••ŠŠŠ```222ÿÿÿ´´´µµµ¤¤¤tttmmmxxx}}}ŒŒŒŒŒŒ•••ŠŠŠ```222ÿÿÿÿÿÿ´´´µµµ¤¤¤tttmmmxxx}}}ŒŒŒŒŒŒ•••ŠŠŠ```222ÿÿÿRRRSSSKKKAAA;;;555222777999;;;@@@@@@DDD???;;;;;;,,, (((ûûûÞÞÞÖÖÖðððÿÿÿþþþýýýöööýýýúúúööööööööööööööö××פ¤¤HHH555ÿÿÿûûûÞÞÞÖÖÖðððÿÿÿþþþýýýöööýýýúúúööööööööööööööö××פ¤¤HHH555ÿÿÿÿÿÿûûûÞÞÞÖÖÖðððÿÿÿþþþýýýöööýýýúúúööööööööööööööö××פ¤¤HHH555ÿÿÿssseeebbbmmmuuuttttttqqqtttrrrqqqqqqqqqqqqqqqbbbKKKAAA!!! (((ììì¹¹¹ººº×××ÿÿÿÈÈÈ[[[000ÿÿÿììì¹¹¹ººº×××ÿÿÿÈÈÈ[[[000ÿÿÿÿÿÿììì¹¹¹ººº×××ÿÿÿÈÈÈ[[[000ÿÿÿlllTTTUUUbbb uuu\\\*** (((ÙÙÙ¤¤¤‰‰‰!!!,,,+++&&&ÿÿÿeee555ÿÿÿÙÙÙ¤¤¤‰‰‰!!!,,,+++&&&ÿÿÿeee555ÿÿÿÿÿÿÙÙÙ¤¤¤‰‰‰!!!,,,+++&&&ÿÿÿeee555ÿÿÿcccKKK???  uuu... +++ãã㇇‡@@@ ---777kkk£££ggg555ÿÿÿsss777ÿÿÿãã㇇‡@@@ ---777kkk£££ggg555ÿÿÿsss777ÿÿÿÿÿÿãã㇇‡@@@ ---777kkk£££ggg555ÿÿÿsss777ÿÿÿhhh>>> 111KKK/// uuu444 ///úúú{{{777 ±ëø±ëøÓõû+++;;;~~~ÿÿÿÿÿÿÿÿÿ---ÿÿÿŽŽŽ999ÿÿÿúúú{{{777 ±ëø±ëøÓõû+++;;;~~~ÿÿÿÿÿÿÿÿÿ---ÿÿÿŽŽŽ999ÿÿÿÿÿÿúúú{{{777 ±ëø±ëøÓõû+++;;;~~~ÿÿÿÿÿÿÿÿÿ---ÿÿÿŽŽŽ999ÿÿÿrrr888jjjjjj ooo:::uuuuuuuuu uuuAAA ///ÿÿÿ{{{::: Õ÷ü½ïù###'''ÿÿÿ”””ÿÿÿÿÿÿ¢¢¢DDDÿÿÿÿÿÿ{{{::: Õ÷ü½ïù###'''ÿÿÿ”””ÿÿÿÿÿÿ¢¢¢DDDÿÿÿÿÿÿÿÿÿ{{{::: Õ÷ü½ïù###'''ÿÿÿ”””ÿÿÿÿÿÿ¢¢¢DDDÿÿÿuuu888ppp lll uuuDDD@@@uuu uuuJJJ ///ÿÿÿwww::: ýÿÿ...)))¾ðú±ëøÿÿÿ///444ýþÿÿÿÿ§§§HHHÿÿÿÿÿÿwww::: ýÿÿ...)))¾ðú±ëøÿÿÿ///444ýþÿÿÿÿ§§§HHHÿÿÿÿÿÿÿÿÿwww::: ýÿÿ...)))¾ðú±ëøÿÿÿ///444ýþÿÿÿÿ§§§HHHÿÿÿuuu777ttt mmmjjj uuuttt uuuLLL!!! ///þþþ::: ÿÿÿRRRSSS???èûý±ëøéûý######çûýÿÿÿ¶¶¶GGGÿÿÿþþþ::: ÿÿÿRRRSSS???èûý±ëøéûý######çûýÿÿÿ¶¶¶GGGÿÿÿÿÿÿþþþ::: ÿÿÿRRRSSS???èûý±ëøéûý######çûýÿÿÿ¶¶¶GGGÿÿÿttt;;;uuu&&&&&&rrr jjj rrrrrr uuuSSS ///øøø~~~??? ÿÿÿUUUyyyaaaÿÿÿ Îõûºîùºîùÿÿÿ´´´DDDÿÿÿøøø~~~??? ÿÿÿUUUyyyaaaÿÿÿ Îõûºîùºîùÿÿÿ´´´DDDÿÿÿÿÿÿøøø~~~??? ÿÿÿUUUyyyaaaÿÿÿ Îõûºîùºîùÿÿÿ´´´DDDÿÿÿqqq:::uuu'''777,,,uuuooo lll lll uuuRRR ///øøøsss@@@ ÿÿÿÿÿÿÅÅÅÿÿÿÿÿÿ333 Áñú±ëøòòò”””DDDÿÿÿøøøsss@@@ ÿÿÿÿÿÿÅÅÅÿÿÿÿÿÿ333 Áñú±ëøòòò”””DDDÿÿÿÿÿÿøøøsss@@@ ÿÿÿÿÿÿÅÅÅÿÿÿÿÿÿ333 Áñú±ëøòòò”””DDDÿÿÿqqq444 uuuuuuZZZuuuuuummm jjj oooDDD ///ýýýBBB $$$\\\‹‹‹mmmTTT777)))¿¿¿šššJJJÿÿÿýýýBBB $$$\\\‹‹‹mmmTTT777)))¿¿¿šššJJJÿÿÿÿÿÿýýýBBB $$$\\\‹‹‹mmmTTT777)))¿¿¿šššJJJÿÿÿttt:::***@@@222''' XXXGGG""" ///ÿÿÿ‘‘‘NNN ///999555$$$¶¶¶™™™ZZZÿÿÿÿÿÿ‘‘‘NNN ///999555$$$¶¶¶™™™ZZZÿÿÿÿÿÿÿÿÿ‘‘‘NNN ///999555$$$¶¶¶™™™ZZZÿÿÿuuuBBB###   SSSFFF))) ///ÿÿÿ®®®jjj<<<   ÅÅÅ®®®………###ÿÿÿÿÿÿ®®®jjj<<<   ÅÅÅ®®®………ÿÿÿÿÿÿÿÿÿ®®®jjj<<<   ÅÅÅ®®®………ÿÿÿuuuPPP000;;;ZZZPPP===///ÿÿÿÿÿÿsssXXXPPP>>>333000000000000333:::::::::UUU¢¢¢ÉÉÉÉÉÉÉÉÉ(((ÿÿÿÿÿÿÿÿÿsssXXXPPP>>>333000000000000333:::::::::UUU¢¢¢ÉÉÉÉÉÉÉÉÉÿÿÿÿÿÿÿÿÿÿÿÿsssXXXPPP>>>333000000000000333:::::::::UUU¢¢¢ÉÉÉÉÉÉÉÉÉÿÿÿuuuuuu444((($$$'''JJJ\\\\\\\\\///ÿÿÿööö–––qqqggg]]]]]]]]]]]][[[mmm|||{{{vvv“““ÄÄÄæææççç(((ÿÿÿÿÿÿööö–––qqqggg]]]]]]]]]]]][[[mmm|||{{{vvv“““ÄÄÄæææçççÿÿÿÿÿÿÿÿÿööö–––qqqggg]]]]]]]]]]]][[[mmm|||{{{vvv“““ÄÄÄæææçççÿÿÿuuuqqqDDD333///++++++++++++***222999888666DDDYYYiiiiii///ÿÿÿÿÿÿÿÿÿÿÿÿÒÒÒ½½½ÊÊÊÍÍÍÑÑÑÓÓÓçççÿÿÿÿÿÿæææýýýýýý(((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒÒÒ½½½ÊÊÊÍÍÍÑÑÑÓÓÓçççÿÿÿÿÿÿæææýýýýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒÒÒ½½½ÊÊÊÍÍÍÑÑÑÓÓÓçççÿÿÿÿÿÿæææýýýýýýÿÿÿuuuuuuuuuuuu```VVV\\\^^^``````iiiuuuuuuiiitttttt////////////////////////111777777777777///((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlgeneral-1.3.1/src/themes/default/COPYING0000664000175000017500000000026512140770455014773 00000000000000License: Creative Commons cc-by-sa 3.0 unported Files: src/themes/default/bkgnd.bmp http://upload.wikimedia.org/wikipedia/commons/6/66/Second_world_war_europe_1941-1942_map_en.svg lgeneral-1.3.1/src/themes/default/font_std.bmp0000664000175000017500000006571612140770455016274 00000000000000BMÎkÎ( hœ œ ææ***...&&&Æb¾^jjjfff²ú¶þ²þ¦îj–zîvÊfŠŠŠ®®®ŽŽŽNNN–چ Vz :V.F^þjþþþÖÖÖ®®öââþþözêv~~~ÚÚÚJJJþþúúúâú¦¦îöööº^úŽö‚²Z†¦®‚ÎÚ~ŠŽBbfŽÎ NnþÆÆú¢¢úæö~~ú¶¶þ®Vþ¶ÖjÖöÊêš¶br Rz""þÒnþ¢þªîz¶ZÚþ²Ö BN Z‚fþž~>ªÊj~®¾ÂJŠªJvŠv~‚NRRú~¢¢öŠŠúººî‚BÊÚÞšª®†’–V^^FNNòòöîîîFFæêšNŽFf2R*žºZnŽššr~‚>FF"""ÒÒö¶¶ö–JJ&.¾ÞFJNv>b2†ž Rb Vf:>Bÿÿÿþ®ÞþžÆî‚¢æzšþ’ºò‚¢Âf‚þ’¶þªÖþšÂþ޲Ör’ÒnŠÊj†¾b~²^vz>NÖrŽ’Nb~BV^2>’JbR.6N*6†FVÿÿÿããã ìììÕÕÕâââüüüÝÝÝ×××ýýýàààñññôôôåååùùùæææáááäääòòòÞÞÞÛÛÛÜÜÜêêêøøøëëëßßß÷÷÷ïïïõõõÙÙÙéééûûûØØØðððèèèííí666:^^R~~†ÆÆjÖÖrrrvvvJvv‚úö¾þþ†þþvîêFfbFFFnnnbbbVššzöò†æâÚþþªþþvâÞR¦¦:::222f²®VVV‚îîŽúúZZZRRRjÎÊZ²®Nššƒƒƒƒƒƒ„„„„„„„„„„ƒ„„„„„„„„ƒ„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒžžžž  ƒƒƒžžž ƒƒƒƒƒƒž ƒ¢ ƒƒƒƒƒƒƒƒ¢¢¢¢ ƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„„„„„„„„„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ¢ ƒƒƒžžƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒžžƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ¢¢¢¢ ƒƒ¢¢¢¢ }~noPPW€\‚u          ž  ž                                     ¦  ž                                                                ž                                ¢¢¢¢¢¢¢                     žž       ž ž                ž ¾                  »¢                           » žžžžžž               ž                                                                                                                                                                                           ž                    »¢  »¢ vwi2xmnyz{EFQs||ž   ž  ž ž  žžž ž¢¢ žž  žžžž ¢¢  °žžžžžžžžžžžžžž ž ž±¢¢ ²žžž  ž žžžž  žž¶ ¢¢©žž  ž¢ žžžžžž ¢ ¢¢±ž  žžžž žžžµ  ¢¢¢¢¢¢ž žžžž ž ž žžžžž¦¢¢ ± žžžžžžžž ž ž ¹ ¢¢¢¢  ¢ žžžž  ž žžžžž ž žžžž ¢ ž ž ž ž ½ ¢¢¢¢¢¢®¬žžž žžžž žžž ž ž ž¸¦  ¢¢¢¢ žžž ž ®¢¢¢ ¢ žžžžž ž žžžžžžž ž *¢¢¢¢¢¢  ž ž ¢ žžžž  ž       ª ¢ ·°žž žžž žžžžž ž ¢ ¢ ž   ¢ ¢¢¢¢¢¢®¬žž žžž žžžžÂÂ'ÂÜ'ÂÜÜÜÜž¢ žžžžžž½ žžžžž žžžžžžžžžžžžžžž¢    žžžŸžžžŸžŸžž¢¢¢¢ž ¢ ž ¢ ž ¢ ž ¢ ž ¢ ž ¢ ž °¢¢ žžžž ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢žžžžžžžžžžžžžžžžžžžžžžžµ  ž ¹ ¢¢¢¢  ¢¢¢¢  ¢¢¢¢  ¢¢¢¢  ¢¢¢¢  ž¢¢¢¢  žžžž žžžž žžžž žžžž ½ ž ž ž¸¦  žžž ž žžž ž žžž ž žžž ž žžž ž žžž ž ž žžž¢¢¢¢ ®¢¢¢ ®¢¢¢ ®¢¢¢ ®¢¢¢ žžžžžžžžžžžžžžžžžžžžžžž  ž ¢ žžžž  žžžž  žžžž  žžžž  žžžž  žžžž  žžžžžžžžžžžžžžžž   ¢ ž    ¢ )Jhijki@lmnoOpqQerstu››˜ ¢ ¢ žžžž  ž žžžž © ¢    žžžžž ¢¢  ž ž žž    ž  ž¢ ¢ž ž žž  ¢žžžž      ¢  ž   ž ¢ ¢ž  ž žž¬  ¢ ¬ ž žž ž ž ž §¢  žž ž ž ž ž ¸¢ ¢ žžž ž žžž ž ž ž ¢ ¢ ž žžž ž žž ² ¢ žž žžž žž¢ ¢ ¢¶žž ž ¢¢ ž   ž ž ž ž ž ž¢ ¢  ž ž ¢ ¢ž ž žžž  žžž ž ¢ ¢ žž žž ž ž ž ž ž¢¢ ± žžžžÁ  ¢ ž ž   Âáâ'Ââ‚ÂãäÜÂâ‚ÂãäÜäåãäÜäåãäÜäåãäÜä垢¢¢¢¢žžžž¢žžž¢ž žžž žžžž¢žžžÁ žžŸŸžŸŸŸŸž¢   ¢ž ¢ ž ¢ ž ¢ ž ¢ ž ¢ ž ¢ ž °  ž ž¢ ¢ ¢ ¢ ž ž ž ž ž¬  ž ž ¸¢ ¸¢ ¸¢ ¸¢ ¸¢ žž¸¢ ž ž ž ž ž ž ž ž ž ž žž¢ žžž žžž žžž žžž žžž žžž žžž¢ ¢ž ¢ž ¢ž ¢ž ¢ž ž ž ž ¶žž ž ¢ ¢ž ¢ž ¢ž ¢ž ¢ž ž¢žž ž ž ž ž ž ž ž ž žžžÁ žž žžžÁ )(]^_!!`a!!NBbUOVFQcde5fg„„„„„„˜œš“ž ¢  ¢  žž ž žžžž¤¢ ž žž ž ¯¢  ž  ž žžžžžž¢ ¢ž ž žž ¢ žžžžžµ®¢ ž ž ž ž ž    ¢ ¢žž ž¬ ¢ ® ž  ž ž ž ž ¢ ¢ žž ž  ž ž ž ž¢ ¢ ¼žž ž žž ž ž ¬ ¢ ¢ ž ž ž ž žž ¬ ¢ žž žž ž¯ ¢ ž ž      ¢ žžž  ž ž ž ž ž  ž¢ ¢ * ž ž ¢ ¢ž žžž žžž ¢  ¢¥ž ž ž žž ž ¥ ¢ žž ž žž À ¢ ž žžžÂÞ$ÈÕÙ$ÈßÙàÕ6ßÙàÍ6ßÙàÍ6ßÙàÍ6ž¢ ¢¢žžžžžžžžžžžž ž¢žžžžžžžžžžžžžŸžžž žž žžžžžžžžžžŸŸžŸŸŸŸž´ ¢ž    ¢ ž    ¢ ž    ¢ ž    ¢ ž    ¢ ž    ¢ ž  °   ž ¢ ¢ ¢ ¢ ž ž ž ž ž¬ ž žž ž¢ ž¢ ž¢ ž¢ ž¢ žžž¢¢ ž i ž i ž i ž i ž žžžžž¯ žž žž žž žž žž žž žž¢ ž      ž      ž      ž      ž ž ž ž ž ž ¢ ¢ž ¢ž ¢ž ¢ž ¢ž ¢žž ž ž ž ž ž ž ž ž ž žž žžžž žž S9)=!!!,=!!!!/1T@UCVWQXXYZ[\„„„„„„„‹“š››œœ˜•—––ž ¥¢¢¢¢¢žžž žž  ž ¢  žž    ž        ž ž¢ . žž   žžž   ¢ ¢¢žž žž   ¢   ž¢ ž ž žžž žžž±¢¢ ¢žž žž ¢    ¢    ž žžžž    ž ž ¢ ¢ žž ž ž ž ž žž ž% ¢     ¢ž ž ž      žž ž i ¢¢ ž ž ž žžž ¬ ¢ žž žžžžž žž ¢  ¢ž žžž¬®¢ ¢    žž ž  ž ž ž žžž ³ ¢ ¼ ž ž  ¢ ¢ž žž žž £  ¢¢ ž ž ž ž ž ž ±¢ žž ž ž ¬  ¢ž ž    ÚÂÛÈÂÚÂÛÙÂÚÂÛÙÙ ÜÅ×ÕÝ ÜÅÍÕÝ ÜÅ×ÕÝž¢ ¢žžžž žžžžžžžžžžžžŸžžžžžžžžž ž žžžžžžžŸžŸŸŸž ž žžž±¢¢ žžž±¢¢ žžž±¢¢ žžž±¢¢ žžž±¢¢ žžž±¢¢ ž°   ž ¢    ¢    ¢    ¢    ž ž ž ž žž ž žž ž% ž% ž% ž% ž% žž¢% ž « ž « ž « ž « ž žžž¯ žžžžž žžžžž žžžžž žžžžž žžžžž žžžžž žžžžž¢  žžž¬®¢ žžž¬®¢ žžž¬®¢ žžž¬®¢ ž ž ž ž ¢ž ž  ¢ ¢ž ¢ž ¢ž ¢ž ¢ž ¢žž ž ž ž ž ž ž ž ž ž ž žžž ž (H)(IJ<=!!!!!!!!!!KLMNOPFQR„„„„„„„––—•˜™”“’‘ž ¢¢  žžžž žž ž ¢ žžžžžžžžžžžžžžžžž ž¢ ® ž žžžžž žž  ¢¢ ¢¢¯ž žžžž  žžž ¢ ¢  ž  ž       ¢ž ž žž ž¢ ¢¢¥ž  ž žž ®¢¢¢¢¢®¬ž žžžžžž ž ¢ ¢³ ž ž ž ž ž žž ž* ¢¢¢¢¢  ¢ž žžžžž  žžžžž ž « ¢  ž žž ž ž ¬ ¢ žž    žžžž   ¢¢%¶ ž¾¢¢¢¢¦žž žž  žž ž ž ž i ¢  % žžž  ¢¢žžžžžžž ž  ¢¢   ¢ž    ž ž ž ž ž ¢ %ž ž ž    ¬  ¢¢ ½ žžžžÐÑÒ&ÐÑÒ&ÐÑÒ&ÓÔÕÙÒ&ÓÔÕÕØØÙÄÓÔÕÖרÙÄž¢ ¢žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžŸžžžžžžžŸžž ž žžžžžžžŸŸžžŸŸŸ žž¢ ž¢ ž¢ ž¢ ž¢ ž¢ žžž°¢¢ ž ®¢¢¢®¢¢¢®¢¢¢®¢¢¢ž ž ž ž žž ž žž ž* ž* ž* ž* ž* žžžž* ž ¨ ž ¨ ž ¨ ž ¨ žž žž ž¯   ž   ž   ž   ž   ž   ž  žž   ¢ž¾ž¾ž¾ž¾ž ž ž ž ¢¢¢% žž  ¢¢ž¢ž¢ž¢ž¢žžžžžž¢žžž ž ž ž ž ž ž ž ž ž žž ž ž 99(:;<=>?!!!!!!!!@A1BCDEFG„Ž‘’“”•ˆŠž   §¢¢¢¢¨ž  ž žž ž ¢žž ž ž ž¢  ¢  ž ž žž ž ž­¢¢ ž žž ž±¢ ¢¢±žžžž žžžžžž¢ ž ž žžž ž¢ ¢ž  ž žž ¬ ¢ ž ž ž ž ¢ ¢ ¸ ž ž žžž ž žž žž ¢ ¢¬ žž ž ž ž ¨ ¢ » ž ž žž žž ¬ ¢ žž   žžžžž žžž³¢¢¢¢¢¢ žžžž¢ žžžžž žžžžžžžž ž½ ¢¢¢ižž±¢¢±žžžžžžžžžžžžž¿²¢¢¢¢¾´¤žžžžžžž¢¢žžžžžžžž¬¢» ž     ÃÈÉÃÈÉÃÈÉÊÝÉÊãÉÝÏÊËÌÍÎÏž ¢ ¢žžžžžž¢žžž¢žžžžžžž¢žžžžžžžžžŸžžžžŸžžžžžžŸŸžžžŸžŸžžŸ  žž¢ ž¢ ž¢ ž¢ ž¢ ž¢ ž°  ž ¬ ¬ ¬ ¬ ž ž ž ž žžžžž žžž žž žž žž žž žž žžžžž ž ¥ ž ¥ ž ¥ ž ¥ žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžž³¢¢¢žžžžžžžžžžžžžžžžžžžžžžžž  ž±¢¢±žžž±žžž±žžž±žžž±žžž±žžžžžžžžžžžžžžžžžžž())*+,-.!!!!!!!!/012345678‰Šˆ‹Œ†‡ž ž ž ¥ ¢ ¦ž   ž  ž žžž ž ¢ žžžž ž¢¢¢ ž ž ž žž ž ¢ ž žž ž¢ ¢žž ¢ ´ ž ž ž¢¢žž  žžž ¢ ž  ž ž ž ¢ ¢ ž ž žžžž žžž žž °¢ ¢® žž ž  ž ž ¥ ¢¥ ž ž žž žž ¬ ¢ ž ž ³ž ¢ ¢  ž   ž ž ¢ ¢ ¢ ž ž ž žžÂfÂÂfÂÂfÂfÂÂÉÂÆÇž³¢¢¢¢žžžžž  žž  žžžžžžžžžžžŸžžžŸžžžžžžŸžŸŸŸŸ žž¢ž¢ž¢ž¢ž¢ž¢ž° ž  ž ž ž ž ž ž ž ž žžž ž žž žž žž žž žž žžž ž ¥ ž ¥ ž ¥ ž ¥ ž ž žžžž ž ž    ¢ žž  !!!!"#$%&'„„„„„„„†‡ˆž ž ž ¡¢£¤žžžžž ž ž ¢ž ž¦¢¢ ž   ž    ž žž ž      ¢       ž žžž¢ž ¤¢   ¢¬   žž¢¢žž   žžžž      ¢      ž   žž ž  ž    ¢   ¢ ž ž ž ž ž ž žžž¢¢¢¤žž   ž  ž    ž ¥ ¢ ž ž ž ž ž ž ž     µ ¢       ž ž¯ ž ¢ ¢  %ž žžž ž ¢¢   ¢   žžžž     ÂÃÂÂÃÂÂÃÂÂÃÂÂÃÂÄÅ¢žžž žž   žžžžžžžžžžžžžžžžŸŸžžžžŸžŸŸžŸžŸŸŸ ž°ž°ž°ž°ž°ž°ž°ž   žžžž¬®¢ žžž¬®¢ žžž¬®¢ žžž¬®¢ žžžžž žžžžž žžžžž žžžžž žžžž žžžžžžžžžžžžžžžžžžžžžžžž³ž³ž³ž³žž ž ž žžžžžžžžžžžžžžžžžž¢ žžžžžžžžžžžžžžžžž  „„„„„„„…†žžžŸžžžž¢žžž¢žžžžžžžžžžžžžžž§ª¢¢¢¦«¬žžžžžžžžžž³žž¢¢¢¢¬žžžž°¢¢¢·žžžžžžžžžžž¬®¢¢¢¢¢¢¢žžžžžžžžžžž¤³¢¢¢¢žžžžžžžžžžžž§º¨¢¢¢¢Ÿ¬žžžžžžžžžžžžžžž³¢žžžžžžžžžžžžž¢¢¢¢¢žžžž®žž¢¢¢¢žžžž¢¢¢¢¢·¸žžžžžžÂžžžžž žžžžžžžžžžžžžžžžžžžžžžžžžžŸŸŸžžžžžžŸŸžžžžžžžžžžžž°¢¢žžžžžžž®žžžžžžžž±žžžžžžžžžžžžžžžžžžž žžžžžžžžžžžžžžžžžžžžžžž¢¢žžžžžžžžžžžžžžžžžžž „„„„„„„žžžžžžžžžžžžžžžžžžžžžž®žžžžžžžžžžžžžžžžžžžžžžžžž„„„   lgeneral-1.3.1/src/themes/default/Makefile.in0000664000175000017500000003710412643745057016017 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/themes/default DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs COPYING ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(themedir)" DATA = $(theme_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ themedir = $(inst_dir)/themes/default theme_DATA = \ click.wav edit.wav \ bkgnd.bmp brief_frame.bmp confirm_buttons.bmp ctrl_buttons.bmp cursors.bmp \ deploy_buttons.bmp folder.bmp font_brief.bmp font_error.bmp font_status.bmp \ font_std.bmp font_turn_info.bmp fr_hori.bmp fr_llc.bmp fr_luc.bmp fr_rlc.bmp \ fr_ruc.bmp fr_vert.bmp menu0_buttons.bmp menu1_buttons.bmp \ menu2_buttons.bmp menu3_buttons.bmp module_buttons.bmp \ scen_dlg_buttons.bmp scroll_buttons.bmp unit_buttons.bmp wallpaper.bmp \ setup_confirm_buttons.bmp strength_buttons.bmp EXTRA_DIST = $(theme_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/themes/default/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/themes/default/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-themeDATA: $(theme_DATA) @$(NORMAL_INSTALL) @list='$(theme_DATA)'; test -n "$(themedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(themedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(themedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(themedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(themedir)" || exit $$?; \ done uninstall-themeDATA: @$(NORMAL_UNINSTALL) @list='$(theme_DATA)'; test -n "$(themedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(themedir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(themedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-themeDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-themeDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-themeDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-themeDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/themes/default/fr_rlc.bmp0000664000175000017500000000036612140770455015711 00000000000000BMö6(À  @-)@-)@-)@-)@-)@-)@-)@-)6&"6&"5&"9)%<+&2$"@-)Ù§™Ù§™Ùʎ̓١2$"@-)Ù¥—8(&@-)Ù¥—;*'@-)Б„4%"@-)ÉŒ‚6'#@-)Ùš‹1# @-)lgeneral-1.3.1/src/themes/default/unit_buttons.bmp0000664000175000017500000013646612140770455017212 00000000000000BM6½6(`¨½ë ë ((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(@@ACCCNPPcZc$0)(((ÿÿÿ@@ACCCNPPcZcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@@ACCCNPPcZcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ%%%'''...666(,11%*'258KO;LO&;GEOWISWnjv^K`!,((ÿÿÿ,11%*'258KO;LO&;GEOWISWnjv^K`ÿÿÿÿÿÿÿÿÿÿÿÿ,11%*'258KO;LO&;GEOWISWnjv^K`ÿÿÿÿÿÿÿÿÿ++++++###...000???000()((kpo™™™§§§ƒ‰lnn[ec9<<>HJ0FF6:@0:AOZcagjL>L(ÿÿÿÿÿÿÿÿÿÿÿÿkpo™™™§§§ƒ‰lnn[ec9<<>HJ0FF6:@0:AOZcagjL>Lÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿkpo™™™§§§ƒ‰lnn[ec9<<>HJ0FF6:@0:AOZcagjL>Lÿÿÿ@@@YYY```PPP???999###)))(((""""""444<<<((((®°°«®®²µµ»½½PPPiii°°°¤¤¤¨¨¨¯¯¯²²²¸¸¸˜œ™€‚‚_aaQX\6CJELS(ÿÿÿ®°°«®®²µµ»½½PPPiii°°°¤¤¤¨¨¨¯¯¯²²²¸¸¸˜œ™€‚‚_aaQX\6CJELSÿÿÿÿÿÿ®°°«®®²µµ»½½PPPiii°°°¤¤¤¨¨¨¯¯¯²²²¸¸¸˜œ™€‚‚_aaQX\6CJELSÿÿÿfffdddiiinnn...===fff^^^aaaeeegggjjjYYYKKK888333(((---((šœœ³µµ°²²¢¤¤‘‘PQQKLLABB]^__b`uuu‚‚‚ˆˆˆ©©©µµµ–‘˜(ÿÿÿÿÿÿšœœ³µµ°²²¢¤¤‘‘PQQKLLABB]^__b`uuu‚‚‚ˆˆˆ©©©µµµ–‘˜ÿÿÿÿÿÿÿÿÿšœœ³µµ°²²¢¤¤‘‘PQQKLLABB]^__b`uuu‚‚‚ˆˆˆ©©©µµµ–‘˜ÿÿÿZZZiiiggg^^^SSS///,,,&&&666888CCCKKKNNNbbbiiiUUU()(®°°ÃÇÇ((((((HHImmm‘”•qvv_^_(ÿÿÿÿÿÿÿÿÿ®°°ÃÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿHHImmm‘”•qvv_^_ÿÿÿÿÿÿÿÿÿÿÿÿ®°°ÃÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿHHImmm‘”•qvv_^_ÿÿÿfffsss)))???UUUCCC666))(­t7§n5£l4†W,(EFGMMMÊÊÉ­®©|(ÿÿÿÿÿÿÿÿÿ­t7§n5£l4†W,ÿÿÿEFGMMMÊÊÉ­®©|ÿÿÿÿÿÿÿÿÿÿÿÿ­t7§n5£l4†W,ÿÿÿEFGMMMÊÊÉ­®©|ÿÿÿ<<<999888...(((---tttcccIII(ªq6˜b1Œ[.xP* *…}¤ŸŸ–‚”((ÿÿÿªq6˜b1Œ[.xP*ÿÿÿ…}¤ŸŸ–‚”ÿÿÿÿÿÿÿÿÿªq6˜b1Œ[.xP*ÿÿÿ…}¤ŸŸ–‚”ÿÿÿÿÿÿ;;;333000***III]]]PPP(­t7›e1‘_0˜d5((((ÿÿÿ­t7›e1‘_0˜d5ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­t7›e1‘_0˜d5ÿÿÿÿÿÿÿÿÿÿÿÿ<<<444222555 (ªq6˜b1\.†Z0 *ÿÿÿÿÿÿªq6˜b1\.†Z0ÿÿÿÿÿÿÿÿÿªq6˜b1\.†Z0ÿÿÿ ;;;333111///(((¨p6—a0ƒV,‡\6)((ÿÿÿÿÿÿÿÿÿ¨p6—a0ƒV,‡\6ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¨p6—a0ƒV,‡\6ÿÿÿÿÿÿÿÿÿ:::333---111 (§n5§n5§n5•`/yR*Ÿk?Œ[+ªo6'   ÿÿÿÿÿÿ§n5§n5§n5•`/yR*Ÿk?Œ[+ªo6ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ§n5§n5§n5•`/yR*Ÿk?Œ[+ªo6ÿÿÿÿÿÿÿÿÿÿÿÿ 999999999333+++:::///:::    CFG```( l3›e1Œ[.Œ\/…[5 i2(!(14==?C/'- ÿÿÿÿÿÿÿÿÿÿÿÿCFG```ÿÿÿ l3›e1Œ[.Œ\/…[5 i2ÿÿÿ!(14==?C/'-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCFG```ÿÿÿ l3›e1Œ[.Œ\/…[5 i2ÿÿÿ!(14==?C/'-ÿÿÿ (((888888444000111111777%%% lnnjmnnqrsvw222AAAnnn(†W,†Y-qN.šd1(OPQ;<=359"'.+-3 ÿÿÿlnnjmnnqrsvw222AAAnnnÿÿÿ†W,†Y-qN.šd1ÿÿÿOPQ;<=359"'.+-3ÿÿÿÿÿÿlnnjmnnqrsvw222AAAnnnÿÿÿ†W,†Y-qN.šd1ÿÿÿOPQ;<=359"'.+-3ÿÿÿ ??????AAADDD&&&???...///)))444...###  `bboqqnppeggWZ[222(^-^-(IIIQQQUUUjjjqqq`Z` ÿÿÿÿÿÿ`bboqqnppeggWZ[222ÿÿÿ^-^-ÿÿÿIIIQQQUUUjjjqqq`Z`ÿÿÿÿÿÿÿÿÿ`bboqqnppeggWZ[222ÿÿÿ^-^-ÿÿÿIIIQQQUUUjjjqqq`Z`ÿÿÿ 888AAAAAA<<<444111111***///111>>>AAA555   lnnw}adeYZ[((>B@;==---DDDZ\^FIJ;;; ÿÿÿÿÿÿÿÿÿlnnw}adeYZ[ÿÿÿÿÿÿ>B@;==---DDDZ\^FIJ;;;ÿÿÿÿÿÿÿÿÿÿÿÿlnnw}adeYZ[ÿÿÿÿÿÿ>B@;==---DDDZ\^FIJ;;;ÿÿÿ ???III:::444&&&###(((555***"""  FGHhhhuuueeeKKKFFF*+,000~}knhQMP ÿÿÿÿÿÿFGHhhhuuueeeKKKFFF*+,000~}knhQMPÿÿÿÿÿÿÿÿÿFGHhhhuuueeeKKKFFF*+,000~}knhQMPÿÿÿ )))<<>>--- ^^^\\\kkkuuunopSMOhdb_OY  ÿÿÿ^^^\\\kkkuuunopSMOhdb_OYÿÿÿÿÿÿÿÿÿ^^^\\\kkkuuunopSMOhdb_OYÿÿÿÿÿÿ 666555>>>CCC@@@---:::111        ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ((((((((((((((((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ((((((((((((((((((((((((((((((¡w((((((ÿÿÿÿÿÿ¡wÿÿÿÿÿÿÿÿÿÿÿÿ¡wÿÿÿÿÿÿ((((((000&&&&&&&&&&&&&&&&&&$$$(((((((((ž¥ºÓáÞêãͶŸU(((ÿÿÿž¥ºÓáÞêãͶŸUÿÿÿÿÿÿž¥ºÓáÞêãͶŸUÿÿÿ(((///111888???CCCCCCFFFDDD===777000((((((¥­ÁØ((((((((((((÷òÒ—_(((ÿÿÿ¥­ÁØÿÿÿÿÿÿÿÿÿÿÿÿ÷òÒ—_ÿÿÿÿÿÿ¥­ÁØÿÿÿÿÿÿÿÿÿÿÿÿ÷òÒ—_ÿÿÿ(((///111444:::AAA((((((((((((JJJIII???---((((((±¨®°“(((((((((ñä¡}(((ÿÿÿ±¨®°“ÿÿÿÿÿÿÿÿÿñä¡}ÿÿÿÿÿÿ±¨®°“ÿÿÿÿÿÿÿÿÿñä¡}ÿÿÿ(((555222444555,,,(((((((((HHHDDD000%%%((((((²¬»¾”—((((((îà~(((ÿÿÿ²¬»¾”—ÿÿÿÿÿÿîà~ÿÿÿÿÿÿ²¬»¾”—ÿÿÿÿÿÿîà~ÿÿÿ(((555444888999,,,---((((((GGGCCC&&&((((((Ò«zÆÓƯ((((((ëÆN(((ÿÿÿÒ«zÆÓƯÿÿÿÿÿÿëÆNÿÿÿÿÿÿÒ«zÆÓƯÿÿÿÿÿÿëÆNÿÿÿ(((???333%%%;;;???;;;444***((((((FFF;;;((((((ߘc(((ì×ÖÁf((((((÷â‚(((ÿÿÿߘcÿÿÿì×ÖÁfÿÿÿÿÿÿ÷â‚ÿÿÿÿÿÿߘcÿÿÿì×ÖÁfÿÿÿÿÿÿ÷â‚ÿÿÿ(((CCC...(((GGG@@@@@@:::((((((JJJDDD'''((((((ߥ((((((÷ïÓ°h((((((éo(((ÿÿÿߥÿÿÿÿÿÿ÷ïÓ°hÿÿÿÿÿÿéoÿÿÿÿÿÿߥÿÿÿÿÿÿ÷ïÓ°hÿÿÿÿÿÿéoÿÿÿ(((CCC111((((((JJJHHH???555((((((FFF!!!((((((ã((((((ùíÒ´i((((((êƒ(((ÿÿÿãÿÿÿÿÿÿùíÒ´iÿÿÿÿÿÿêƒÿÿÿÿÿÿãÿÿÿÿÿÿùíÒ´iÿÿÿÿÿÿêƒÿÿÿ(((DDD///((((((KKKGGG???666((((((FFF'''((((((â„((((((÷ëÕ¯y((((((ì—(((ÿÿÿâ„ÿÿÿÿÿÿ÷ëÕ¯yÿÿÿÿÿÿì—ÿÿÿÿÿÿâ„ÿÿÿÿÿÿ÷ëÕ¯yÿÿÿÿÿÿì—ÿÿÿ(((DDD(((((((((JJJFFF@@@444$$$((((((GGG---((((((Ü~((((((ññÖ¬{((((((×…(((ÿÿÿÜ~ÿÿÿÿÿÿññÖ¬{ÿÿÿÿÿÿ×…ÿÿÿÿÿÿÜ~ÿÿÿÿÿÿññÖ¬{ÿÿÿÿÿÿ×…ÿÿÿ(((BBB&&&((((((HHHHHH@@@444%%%((((((@@@(((((((((Ò›ˆ((((((öòË“v(((¬¬r(((ÿÿÿÒ›ˆÿÿÿÿÿÿöòË“vÿÿÿ¬¬rÿÿÿÿÿÿÒ›ˆÿÿÿÿÿÿöòË“vÿÿÿ¬¬rÿÿÿ(((???...)))((((((JJJIII===,,,###(((444444"""((((((î¨}((((((íßÅ¡Ÿ§š‘(((ÿÿÿî¨}ÿÿÿÿÿÿíßÅ¡Ÿ§š‘ÿÿÿÿÿÿî¨}ÿÿÿÿÿÿíßÅ¡Ÿ§š‘ÿÿÿ(((GGG222%%%((((((GGGCCC;;;000000222...+++((((((à©‚((((((ïÙ°®¢(((ÿÿÿà©‚ÿÿÿÿÿÿïÙ°®¢ÿÿÿÿÿÿà©‚ÿÿÿÿÿÿïÙ°®¢ÿÿÿ(((CCC333'''((((((HHHAAA555444111+++((((((ñÛ¤~(((((((((赪Ÿ®(((ÿÿÿñÛ¤~ÿÿÿÿÿÿÿÿÿ赪Ÿ®ÿÿÿÿÿÿñÛ¤~ÿÿÿÿÿÿÿÿÿ赪Ÿ®ÿÿÿ(((HHHBBB111&&&(((((((((FFF666333000444((((((ïÝÏš|((((((((((((œ¸¯­ª(((ÿÿÿïÝÏš|ÿÿÿÿÿÿÿÿÿÿÿÿœ¸¯­ªÿÿÿÿÿÿïÝÏš|ÿÿÿÿÿÿÿÿÿÿÿÿœ¸¯­ªÿÿÿ(((HHHBBB>>>...%%%((((((((((((///777444444333((((((ëòÜÊ´“Š}‚£ÃÁ(((ÿÿÿëòÜÊ´“Š}‚£ÃÁÿÿÿÿÿÿëòÜÊ´“Š}‚£ÃÁÿÿÿ(((FFFIIIGGGAAA;;;,,,)))%%%'''111::::::(((((((((##ö""ô ñ''ê((ç((é''çÚ((((((ÿÿÿÿÿÿ##ö""ô ñ''ê((ç((é''çÚÿÿÿÿÿÿÿÿÿÿÿÿ##ö""ô ñ''ê((ç((é''çÚÿÿÿÿÿÿ((((((bbbaaa___aaaaaabbbaaaUUU((((((((((((((((((((((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ((((((((((((((((((((((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿ((((((hhhkkk(((ÿÿÿÿÿÿhhhkkkÿÿÿÿÿÿÿÿÿhhhkkkÿÿÿ111222((((((uuuŽŽŽzzz{{{(((((((((ÿÿÿÿÿÿuuuŽŽŽzzz{{{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuuuŽŽŽzzz{{{ÿÿÿÿÿÿÿÿÿ777CCCCCC::::::(((mmmjjj™™™­­­–––¥¥¥xxx((((((gggfff((((((ÿÿÿmmmjjj™™™­­­–––¥¥¥xxxÿÿÿÿÿÿgggfffÿÿÿÿÿÿÿÿÿmmmjjj™™™­­­–––¥¥¥xxxÿÿÿÿÿÿgggfffÿÿÿÿÿÿ333222HHHRRRGGGNNN888111000(((ÐÐЬ¬¬–––¯¯¯žžž–––¯¯¯mmm((((((°°°˜˜˜™™™ŠŠŠ\\\((((((ÿÿÿÐÐЬ¬¬–––¯¯¯žžž–––¯¯¯mmmÿÿÿÿÿÿ°°°˜˜˜™™™ŠŠŠ\\\ÿÿÿÿÿÿÿÿÿÐÐЬ¬¬–––¯¯¯žžž–––¯¯¯mmmÿÿÿÿÿÿ°°°˜˜˜™™™ŠŠŠ\\\ÿÿÿÿÿÿbbbQQQGGGRRRJJJGGGRRR===333SSSGGGHHHAAA+++(((ÜÜÜÆÆÆ¤¤¤¯¯¯––––––¯¯¯‡‡‡kkk((((((ÕÕÕ–––©©©¯¯¯’’’www]]](((ÿÿÿÜÜÜÆÆÆ¤¤¤¯¯¯––––––¯¯¯‡‡‡kkkÿÿÿÿÿÿÕÕÕ–––©©©¯¯¯’’’www]]]ÿÿÿÿÿÿÜÜÜÆÆÆ¤¤¤¯¯¯––––––¯¯¯‡‡‡kkkÿÿÿÿÿÿÕÕÕ–––©©©¯¯¯’’’www]]]ÿÿÿhhh]]]NNNRRRGGGGGGRRR@@@222dddGGGPPPRRREEE888,,,(((ÌÌ̯¯¯–––£££¯¯¯”””yyy(((ÐÐй¹¹¨¨¨–––¯¯¯­­­–––………hhh(((ÿÿÿÌÌ̯¯¯–––£££¯¯¯”””yyyÿÿÿÐÐй¹¹¨¨¨–––¯¯¯­­­–––………hhhÿÿÿÿÿÿÌÌ̯¯¯–––£££¯¯¯”””yyyÿÿÿÐÐй¹¹¨¨¨–––¯¯¯­­­–––………hhhÿÿÿ```[[[RRRGGGMMMRRRFFF===999bbbWWWOOOGGGRRRRRRGGG>>>111(((ÊÊÊÜÜܯ¯¯–––­­­®®®–––›››€€€(((¾¾¾ªªª®®®–––£££¯¯¯›››’’’ppp(((ÿÿÿÊÊÊÜÜܯ¯¯–––­­­®®®–––›››€€€ÿÿÿ¾¾¾ªªª®®®–––£££¯¯¯›››’’’pppÿÿÿÿÿÿÊÊÊÜÜܯ¯¯–––­­­®®®–––›››€€€ÿÿÿ¾¾¾ªªª®®®–––£££¯¯¯›››’’’pppÿÿÿ___hhhRRRGGGRRRRRRGGGIII<<<YYYPPPRRRGGGMMMRRRIIIEEE555(((êêê»»»–––¯¯¯£££–––­­­···ØØØ®®®›››¯¯¯¢¢¢–––®®®®®®qqq(((ÿÿÿêêê»»»–––¯¯¯£££–––­­­···ØØØ®®®›››¯¯¯¢¢¢–––®®®®®®qqqÿÿÿÿÿÿêêê»»»–––¯¯¯£££–––­­­···ØØØ®®®›››¯¯¯¢¢¢–––®®®®®®qqqÿÿÿnnnXXXGGGRRRMMMGGGRRRVVVfffRRRIIIRRRLLLGGGRRRRRR666(((éééààà   ¯¯¯```jjj}}}ggg¯¯¯›››ªªª¯¯¯˜˜˜˜˜˜¯¯¯sss(((ÿÿÿéééààà   ¯¯¯```jjj}}}ggg¯¯¯›››ªªª¯¯¯˜˜˜˜˜˜¯¯¯sssÿÿÿÿÿÿéééààà   ¯¯¯```jjj}}}ggg¯¯¯›››ªªª¯¯¯˜˜˜˜˜˜¯¯¯sssÿÿÿnnnjjjKKKRRR---===222;;;111RRRIIIPPPRRRGGGGGGRRR666(((ÎÎν½½­­­```°°°†††¬¬¬sssƒƒƒmmm–––¯¯¯¬¬¬–––{{{(((ÿÿÿÎÎν½½­­­```°°°†††¬¬¬sssƒƒƒmmm–––¯¯¯¬¬¬–––{{{ÿÿÿÿÿÿÎÎν½½­­­```°°°†††¬¬¬sssƒƒƒmmm–––¯¯¯¬¬¬–––{{{ÿÿÿaaaYYYRRR---SSS???QQQ666>>>333GGGRRRQQQGGG:::(((ÃÃÃÌÌÌßßßËËËÅÅÅ(((ØØØ²²²ªªªuuuccc¥¥¥¯¯¯ššš\\\(((ÿÿÿÃÃÃÌÌÌßßßËËËÅÅÅÿÿÿØØØ²²²ªªªuuuccc¥¥¥¯¯¯ššš\\\ÿÿÿÿÿÿÃÃÃÌÌÌßßßËËËÅÅÅÿÿÿØØØ²²²ªªªuuuccc¥¥¥¯¯¯ššš\\\ÿÿÿ\\\```iii___]]]fffTTTPPP777///NNNRRRIII+++(((ÅÅÅÜÜÜ(((((((((ÎÎÎâââÅÅÅppp–––­­­~~~(((ÿÿÿÅÅÅÜÜÜÿÿÿÿÿÿÿÿÿÎÎÎâââÅÅÅppp–––­­­~~~ÿÿÿÿÿÿÅÅÅÜÜÜÿÿÿÿÿÿÿÿÿÎÎÎâââÅÅÅppp–––­­­~~~ÿÿÿ]]]hhhaaajjj]]]555GGGRRR;;;(((ÈÈÈŠŠŠ(((((((((ÞÞÞÄÄĪªª–––xxx(((ÿÿÿÈÈÈŠŠŠÿÿÿÿÿÿÿÿÿÞÞÞÄÄĪªª–––xxxÿÿÿÿÿÿÈÈÈŠŠŠÿÿÿÿÿÿÿÿÿÞÞÞÄÄĪªª–––xxxÿÿÿ^^^AAAhhh]]]PPPGGG888(((€€€bbb(((((((((ÌÌÌÉÉÉ(((ÿÿÿ€€€bbbÿÿÿÿÿÿÿÿÿÌÌÌÉÉÉÿÿÿÿÿÿ€€€bbbÿÿÿÿÿÿÿÿÿÌÌÌÉÉÉÿÿÿ<<<...```___(((©©©sss((((((»»»†††(((ÿÿÿ©©©sssÿÿÿÿÿÿ»»»†††ÿÿÿÿÿÿ©©©sssÿÿÿÿÿÿ»»»†††ÿÿÿPPP666XXX???(((xxx\\\((((((pppVVV(((ÿÿÿxxx\\\ÿÿÿÿÿÿpppVVVÿÿÿÿÿÿxxx\\\ÿÿÿÿÿÿpppVVVÿÿÿ888+++555((((((ÈÈȇ‡‡((((((­­­www(((ÿÿÿÈÈȇ‡‡ÿÿÿÿÿÿ­­­wwwÿÿÿÿÿÿÈÈȇ‡‡ÿÿÿÿÿÿ­­­wwwÿÿÿ^^^@@@RRR888(((lll((((((ccc(((ÿÿÿlllÿÿÿÿÿÿcccÿÿÿÿÿÿlllÿÿÿÿÿÿcccÿÿÿCCC333===///(((ŸŸŸrrr((((((¬¬¬ttt(((ÿÿÿŸŸŸrrrÿÿÿÿÿÿ¬¬¬tttÿÿÿÿÿÿŸŸŸrrrÿÿÿÿÿÿ¬¬¬tttÿÿÿKKK666QQQ777(((kkkUUU((((((sssYYY(((ÿÿÿkkkUUUÿÿÿÿÿÿsssYYYÿÿÿÿÿÿkkkUUUÿÿÿÿÿÿsssYYYÿÿÿ222(((666***((((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ--ÿÿÿÿÿÿÿÿÿÿÿÿ -Ç~-ÿÿÿÇ~ÿÿÿÿÿÿÇ~ÿÿÿ ===%%% -É·‘-ÿÿÿÉ·‘ÿÿÿÿÿÿÉ·‘ÿÿÿ AAA666+++ -͹¦c-------ÿÿÿ͹¦cÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ͹¦cÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ GGG777111 -©©±±O=OO5-'1-ÿÿÿ©©±±O=OO5-'1ÿÿÿÿÿÿ©©±±O=OO5-'1ÿÿÿ 222222555555  -· ̬™„czz‘zS95+-ÿÿÿ· ̬™„czz‘zS95+ÿÿÿÿÿÿ· ̬™„czz‘zS95+ÿÿÿ 666FFF333---'''$$$$$$+++$$$ -ĬŸ§¹¤‘‰¤{b†V=)-ÿÿÿĬŸ§¹¤‘‰¤{b†V=)ÿÿÿÿÿÿĬŸ§¹¤‘‰¤{b†V=)ÿÿÿ :::333///222777111+++)))111$$$&&&((( - ˡƬ¤”žŸ—Œ„„”wW=-ÿÿÿ ˡƬ¤”žŸ—Œ„„”wW=ÿÿÿÿÿÿ ˡƬ¤”žŸ—Œ„„”wW=ÿÿÿ CCC000;;;333111,,,//////---******'''''',,,### - Ë×ÇƱÆÉ Êǹ®™™Ž„jRB-ÿÿÿ Ë×ÇƱÆÉ Êǹ®™™Ž„jRBÿÿÿÿÿÿ Ë×ÇƱÆÉ Êǹ®™™Ž„jRBÿÿÿ CCCTTT===<<<555;;;AAABBB===777444------***''' - Ù$$Û))ÚÑÇ ÊÏÇÇÉ Ì¾©”‰nW-ÿÿÿ Ù$$Û))ÚÑÇ ÊÏÇÇÉ Ì¾©”‰nWÿÿÿÿÿÿ Ù$$Û))ÚÑÇ ÊÏÇÇÉ Ì¾©”‰nWÿÿÿ WWWZZZ^^^KKK???BBBIII??????AAADDD999222,,,)))!!! - Ù!!Ú==ÖÉ ËÑØÖØ66×""ÛÔ¼—wg-ÿÿÿ Ù!!Ú==ÖÉ ËÑØÖØ66×""ÛÔ¼—wgÿÿÿÿÿÿ Ù!!Ú==ÖÉ ËÑØÖØ66×""ÛÔ¼—wgÿÿÿ WWWXXXjjjAAACCCKKKUUUSSSVVVfffYYYOOO888---### -!!ÚÓØ11ØØ Ù""Û))ÚCCÒ**Þ11ààÃŽn-ÿÿÿ!!ÚÓØ11ØØ Ù""Û))ÚCCÒ**Þ11ààÃŽnÿÿÿÿÿÿ!!ÚÓØ11ØØ Ù""Û))ÚCCÒ**Þ11ààÃŽnÿÿÿ XXXMMMVVVcccUUUWWWYYY^^^mmm```eeeTTT:::***!!! -//ØOOÚÖ66×--/»Ï¸ÏÒ†_-ÿÿÿ//ØOOÚÖ66×ÿÿÿÿÿÿÿÿÿ»Ï¸ÏÒ†_ÿÿÿÿÿÿ//ØOOÚÖ66×ÿÿÿÿÿÿÿÿÿ»Ï¸ÏÒ†_ÿÿÿ aaaxxxSSSfff 888>>>777IIIIII((( -QQÚØØ--·»ÃµÅ¥k-ÿÿÿQQÚØØÿÿÿÿÿÿ·»ÃµÅ¥kÿÿÿÿÿÿQQÚØØÿÿÿÿÿÿ·»ÃµÅ¥kÿÿÿ zzzVVVUUU 666888:::666===111 -66×++Ú--!!ÚÉØÈÕ´Œw-ÿÿÿ66×++Úÿÿÿÿÿÿ!!ÚÉØÈÕ´Œwÿÿÿÿÿÿ66×++Úÿÿÿÿÿÿ!!ÚÉØÈÕ´Œwÿÿÿ fff___ XXXAAA@@@<<HJ0FF6:@0:AOZcagjL>L(ÿÿÿÿÿÿÿÿÿÿÿÿkpo™™™§§§ƒ‰lnn[ec9<<>HJ0FF6:@0:AOZcagjL>Lÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿkpo™™™§§§ƒ‰lnn[ec9<<>HJ0FF6:@0:AOZcagjL>Lÿÿÿ<<>>"""===&&&)))nnn^^^DDD(&‘&%Š% _ G(…}¤ŸŸ–‚”((ÿÿÿ&‘&%Š% _ Gÿÿÿ…}¤ŸŸ–‚”ÿÿÿÿÿÿÿÿÿ&‘&%Š% _ Gÿÿÿ…}¤ŸŸ–‚”ÿÿÿÿÿÿ777444%%%EEEWWWKKK(+«+*¥*&˜&&& _ G(((ÿÿÿ+«+*¥*&˜&&& _ Gÿÿÿÿÿÿÿÿÿÿÿÿ+«+*¥*&˜&&& _ Gÿÿÿÿÿÿÿÿÿ@@@>>>999666%%%(,²,,²,,²,( ($ƒ$!b! W O'ÿÿÿ,²,,²,,²,( ($ƒ$!b! W Oÿÿÿÿÿÿ,²,,²,,²,( ($ƒ$!b! W OÿÿÿCCCCCCCCC<<<222'''### (((-³-)¡)&&!h!)((ÿÿÿÿÿÿÿÿÿ-³-)¡)&&!h!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-³-)¡)&&!h!ÿÿÿÿÿÿÿÿÿDDD===666))) (-µ-)£)'™'#|# *GBJ;/9   ÿÿÿÿÿÿ-µ-)£)'™'#|#ÿÿÿGBJ;/9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-µ-)£)'™'#|#ÿÿÿGBJ;/9ÿÿÿÿÿÿÿÿÿ  DDD>>>999000%%%    CFG```hhh(/·/*¥*(($†$("#(!(14==?C/'- ÿÿÿÿÿÿÿÿÿÿÿÿCFG```hhhÿÿÿ/·/*¥*(($†$ÿÿÿ"#(!(14==?C/'-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCFG```hhhÿÿÿ/·/*¥*(($†$ÿÿÿ"#(!(14==?C/'-ÿÿÿ &&&444999EEE>>>;;;333### lnnjmnnqrsvw222AAAnnn(-µ-)£)&˜&## *OPQ;<=359"'.+-3 ÿÿÿlnnjmnnqrsvw222AAAnnnÿÿÿ-µ-)£)&˜&##ÿÿÿOPQ;<=359"'.+-3ÿÿÿÿÿÿlnnjmnnqrsvw222AAAnnnÿÿÿ-µ-)£)&˜&##ÿÿÿOPQ;<=359"'.+-3ÿÿÿ <<<;;;>>>@@@###<<<DDD>>>999000+++!!!  `bboqqnppeggWZ[(/·/,²,+®+&‘&(QQQUUUjjjqqq`Z` ÿÿÿÿÿÿ`bboqqnppeggWZ[ÿÿÿ/·/,²,+®+&‘&ÿÿÿQQQUUUjjjqqq`Z`ÿÿÿÿÿÿÿÿÿ`bboqqnppeggWZ[ÿÿÿ/·/,²,+®+&‘&ÿÿÿQQQUUUjjjqqq`Z`ÿÿÿ 555>>>===888111EEECCCAAA777,,,...999>>>222   lnnw}((((((---DDDZ\^FIJ;;; ÿÿÿÿÿÿÿÿÿlnnw}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ---DDDZ\^FIJ;;;ÿÿÿÿÿÿÿÿÿÿÿÿlnnw}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ---DDDZ\^FIJ;;;ÿÿÿ <<>>...(³¦”{&(»“(ÿÿÿ³¦”{ÿÿÿÿÿÿ»“ÿÿÿÿÿÿ³¦”{ÿÿÿÿÿÿ»“ÿÿÿHHHCCC<<<111KKK;;;(иÊЊl((Íi(ÿÿÿиÊЊlÿÿÿÿÿÿÍiÿÿÿÿÿÿиÊЊlÿÿÿÿÿÿÍiÿÿÿTTTJJJRRRTTT888+++RRR***''Ô~&(%#´i((ÿÿÿÿÿÿÔ~ÿÿÿÿÿÿÿÿÿÿÿÿ´iÿÿÿÿÿÿÿÿÿÿÿÿÔ~ÿÿÿÿÿÿÿÿÿÿÿÿ´iÿÿÿÿÿÿVVV333III***(Í~((؈Ás(ÿÿÿÍ~ÿÿÿÿÿÿ؈ÁsÿÿÿÿÿÿÍ~ÿÿÿÿÿÿ؈ÁsÿÿÿRRR333WWW777NNN:::...444(¹”((͸²¦$ÿÿÿ¹”ÿÿÿÿÿÿ͸²¦ÿÿÿÿÿÿ¹”ÿÿÿÿÿÿ͸²¦ÿÿÿKKK<<<RRRJJJHHHCCC(â²((ÍÓ%ÿÿÿâ²ÿÿÿÿÿÿÍÓÿÿÿÿÿÿâ²ÿÿÿÿÿÿÍÓÿÿÿ[[[HHHRRRUUU(((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(€²ÒÓ¤ºƒ}˜2E^(((((ÿÿÿ€²ÒÓ¤ºƒ}˜2E^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€²ÒÓ¤ºƒ}˜2E^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿWWWSSS???$$$(šÙ̱Çfaq#?I,9$?H((!&2,H[]¦Ã(ÿÿÿšÙ̱Çfaq#?I,9$?Hÿÿÿÿÿÿÿÿÿÿÿÿ,H[]¦ÃÿÿÿÿÿÿšÙ̱Çfaq#?I,9$?Hÿÿÿÿÿÿÿÿÿÿÿÿ,H[]¦ÃÿÿÿSSSYYY111 $$$PPP((e—½X¥Ä1]o;A"3A 7C(((7*2B\os—º(ÿÿÿÿÿÿe—½X¥Ä1]o;A"3A 7Cÿÿÿÿÿÿÿÿÿ*2B\os—ºÿÿÿÿÿÿÿÿÿe—½X¥Ä1]o;A"3A 7Cÿÿÿÿÿÿÿÿÿ*2B\os—ºÿÿÿKKKOOO,,,---LLL(q…ÇXŸ¿XÆßRÄÒ5esO‚'BP#=I¤ÓÝóóû(ÿÿÿq…ÇXŸ¿XÆßRÄÒ5esO‚'BP#=I¤ÓÝóóûÿÿÿÿÿÿq…ÇXŸ¿XÆßRÄÒ5esO‚'BP#=I¤ÓÝóóûÿÿÿHHHLLL\\\YYY000??? ddduuu(GRxM‹¦M}b³Ïb½×—Úñîûýßìó((ÿÿÿGRxM‹¦M}b³Ïb½×—Úñîûýßìó(ÿÿÿÿÿÿGRxM‹¦M}b³Ïb½×—Úñîûýßìó(ÿÿÿ,,,CCC???UUUYYYhhhxxxqqq(,3J+2JO›¯]ÙíaÑéR|›€‘±‰ÚñW½Õ1K^A=d(ÿÿÿ,3J+2JO›¯]ÙíaÑéR|›€‘±‰ÚñW½Õ1K^A=dÿÿÿÿÿÿ,3J+2JO›¯]ÙíaÑéR|›€‘±‰ÚñW½Õ1K^A=dÿÿÿIIIdddaaa>>>IIIgggXXX%%%###())B":IHˆœbÉè(((d†ºWœ¼^¯ËD•(BN.@N(ÿÿÿ))B":IHˆœbÉèÿÿÿÿÿÿÿÿÿd†ºWœ¼^¯ËD•(BN.@Nÿÿÿÿÿÿ))B":IHˆœbÉèÿÿÿÿÿÿÿÿÿd†ºWœ¼^¯ËD•(BN.@Nÿÿÿ@@@___EEELLLSSS>>>(((/3P)DRT¬ÃÄø(((~yÕe©ÍR©¾F`nSHu(ÿÿÿÿÿÿÿÿÿ/3P)DRT¬ÃÄøÿÿÿÿÿÿÿÿÿ~yÕe©ÍR©¾F`nSHuÿÿÿÿÿÿÿÿÿÿÿÿ/3P)DRT¬ÃÄøÿÿÿÿÿÿÿÿÿ~yÕe©ÍR©¾F`nSHuÿÿÿ!!!QQQbbbGGGSSSOOO///)))(^³ÐU—¶7[p1Ufa¡ÍHˆœ((((ƒ½¤À(ÿÿÿ^³ÐU—¶7[p1Ufa¡ÍHˆœÿÿÿÿÿÿÿÿÿÿÿÿƒ½¤Àÿÿÿÿÿÿ^³ÐU—¶7[p1Ufa¡ÍHˆœÿÿÿÿÿÿÿÿÿÿÿÿƒ½¤ÀÿÿÿUUUIII,,,)))PPP@@@JJJQQQ(ÜëAd~M†¤]Ûò–Ÿô((((ÿÿÿÜëAd~M†¤]Ûò–ŸôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜëAd~M†¤]Ûò–ŸôÿÿÿÿÿÿÿÿÿÿÿÿXXX222AAAfffXXX(R^LÆ×¦çþcÓì(ÿÿÿR^LÆ×¦çþcÓìÿÿÿÿÿÿR^LÆ×¦çþcÓìÿÿÿ%%%[[[nnnbbb(,`}påñ((ÿÿÿ,`}påñÿÿÿÿÿÿÿÿÿ,`}påñÿÿÿÿÿÿ///iii(((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ((((((((((((((((((((((((((((((((((((((((((((((((þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ(((’¦ºz®ºŽŽºf®º†žºv–ºjžºr¢ºz¢ºzšºn–ºnžºr‚ºZ j‚(((þþþ’¦ºz®ºŽŽº^®ºŠžºvšºnžºr¢ºz¦ºzšºn–ºnžºr‚ºZ j‚þþþþþþ’¦ºz®ºŽŽº^®ºŠžºvšºnžºr¢ºz¦ºzšºn–ºnžºr‚ºZ j‚þþþ662ZZZ^^^RRRbbbZZZVVVZZZZZZ^^ZZZZZZZZZZRRR""22.(((2¶®º†Žºf~¢–‚zŠŽ~‚–6ºN–(((þþþ2¶®º†Žºf‚¦–‚zŠŽ~‚–6ºN–þþþþþþ2¶®º†Žºf‚¦–‚zŠŽ~‚–6ºN–þþþBBBbbbVVV.2.666666222...662226.....2666FFB666(((²ªº‚ªº‚vn :º"ž‚’’‚ž:¶"n :¶(((þþþ²ªº‚ªº‚vj :¶ž‚’’‚ž:¶"n :"¶þþþþþþ²ªº‚ªº‚vj :¶ž‚’’‚ž:¶"n :"¶þþþ:::^^^^^^...&&&FFF666222666226.2.6:6FFB&&&:::(((ª®º†žºrŠŠ j2¶–ŠŠ–2¶j~Nž(((þþþªªº†žºrŠŠn 2¶–ŠŠ–2¶j~Nžþþþþþþªªº†žºrŠŠn 2¶–ŠŠ–2¶j~Nžþþþ:>:bbbZZZ222222"""BBB666222222666BBB"""...6:6(((¶¦º~–ºf†ŽŠ jRº.~z:¶&fŠŠRž(((þþþ¶¦º~–ºf†ŽŠ jJº*~z:¶&fŠŠRžþþþþþþ¶¦º~–ºf†ŽŠ jJº*~z:¶&fŠŠRžþþþ>>:^^ZZZV222262222""JJF......JJF""222222:::(((²ªº‚–ºf†ŠŠ’ jZº6bº> f–ŠŽNž(((þþþ²ªº‚–ºf†ŠŠ’ jbº>bº> f–ŠŽNžþþþþþþ²ªº‚–ºf†ŠŠ’ jbº>bº> f–ŠŽNžþþþ>>>bb^VVV22.222222666NNNNNN""666226666666(((²®º†¢ºvŠ‚~’Bº&jj Fº*’zŠRª(((þþþ²®º†¢ºvŠ‚~’Bº&jj Fº*’zŠRªþþþþþþ²®º†¢ºvŠ‚~’Bº&jj Fº*’zŠRªþþþ>>:bb^ZZZ262222...662FFF&&&"""FFF666..2222::6((("¶®º†šºn††–.¶n ‚‚j 2¶–†Rž(((þþþ¶®º†šºn††–.¶n ‚‚j 2¶–†Ržþþþþþþ¶®º†šºn††–.¶n ‚‚j 2¶–†Ržþþþ:>:bbbZZZ22222.666BBB"""22.222""">>>666222:::(((²¦º‚–ºjŽš2¶ j‚––‚ f:¶"ŠNŽ(((þþþ²ªº‚–ºjŽš2¶ j‚––‚ f:¶"ŠNŽþþþþþþ²ªº‚–ºjŽš2¶ j‚––‚ f:¶"ŠNŽþþþ>>:bb^VVV666666BBB&&".2.662226...&&&BBB222262(((&¶¦º~–ºjš"¶n ŠŠ†††Š f2¶fš(((þþþ&¶¦º~–ºjš"¶n ŠŠ†††Š f2¶fšþþþþþþ&¶¦º~–ºjš"¶n ŠŠ†††Š f2¶fšþþþBB>^^^ZZV666>>>&&"222222222222222222"&"BBB666(((2¶®º†¢ºv:¶"n –Š‚‚ŽŽ†ŠfB¶(((þþþ2¶®º†¢ºv:¶&n –Š‚‚ŽŽ†ŠfB¶þþþþþþ2¶®º†¢ºv:¶&n –Š‚‚ŽŽ†ŠfB¶þþþBB>^^^Z^ZBFB&&&662222.2.222666666226226"":>:(((2¶–ºjšºnšºr–ºj–ºfšºr¦º‚¢ºzŽºf–ºn¦ºzžºr¦ºzNR(((þþþ2¶–ºjšºnšºn–ºj–ºfšºr¦º‚¢ºzŽºf–ºn¦º~šºn¦ºzNRþþþþþþ2¶–ºjšºnšºn–ºj–ºfšºr¦º‚¢ºzŽºf–ºn¦º~šºn¦ºzNRþþþFFBZZVZZZZZZVVVZZZZZZ^^^^^^VVVZZZ^^^ZZZ^^^(((®Rº.Fº*††2¶†®~ºR¢ºv¦º‚¢ºzŽº^ŽºfRŠ(((þþþ®Rº.Fº*††2¶†®‚ºV¦ºz¦º‚¦º~Žº^–ºjRŠþþþþþþ®Rº.Fº*††2¶†®‚ºV¦ºz¦º‚¦º~Žº^–ºjRŠþþþ:>:JJJFFF222222BFB22.:>:VVV^^^bbb^^^VVVVVV222((("¶:ºšzBº&šºnšºrr(((((((((((((((((("¶†(((þþþ"¶:ºšzBº&šºnžºrrþþþþþþþþþþþþþþþþþþ"¶†þþþþþþ"¶:ºšzBº&šºnžºrrþþþþþþþþþþþþþþþþþþ"¶†þþþ>>:BF>6:6...FFFZZVZ^Z***>>>22.(((.¶6ºŽ²ªº‚*¶~ºRj(((((((((((((((Bº&n (((þþþ.¶:ºŽ²ªº‚.¶~ºRjþþþþþþþþþþþþþþþBº&n þþþþþþ.¶:ºŽ²ªº‚.¶~ºRjþþþþþþþþþþþþþþþBº&n þþþBB>FFB226>>>bb^BB>RRR"""FFF&&"(((’–žrºF‚ºZ(((zfºF¦ºz–ºjšºrªº†¢ºv:¶"(((þþþ’–žrºF‚ºZþþþzfºF¦º~–ºjšºr®º†¢ºz:¶"þþþþþþ’–žrºF‚ºZþþþzfºF¦º~–ºjšºr®º†¢ºz:¶"þþþ2626666:6NNNRRR...NNN^^^VVVZZZ^^^ZZZBBB(((2¶²Vº2Šº^r(((((((((((((((((((((((((((þþþ2¶²Vº2Šº^rþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ2¶²Vº2Šº^rþþþþþþþþþþþþþþþþþþþþþþþþþþþBFB>B>JJFVVR**&(((v6º¢ºzrºF~(((þþþv6º¢ºzrºF~þþþþþþv6º¢ºzrºF~þþþ**&BF>^^ZNRN...(((†ŠºZ¢ºz¶((((((þþþ†ŠºZ¢ºz¶þþþþþþþþþ†ŠºZ¢ºz¶þþþþþþ222VVR^^Z>>:(((–ºnZº6((((((þþþšºnZº6þþþþþþþþþšºnZº6þþþþþþZZVJJJ((((((þþþþþþþþþþþþlgeneral-1.3.1/src/themes/default/Makefile.am0000664000175000017500000000107712140770455015776 00000000000000themedir = $(inst_dir)/themes/default theme_DATA = \ click.wav edit.wav \ bkgnd.bmp brief_frame.bmp confirm_buttons.bmp ctrl_buttons.bmp cursors.bmp \ deploy_buttons.bmp folder.bmp font_brief.bmp font_error.bmp font_status.bmp \ font_std.bmp font_turn_info.bmp fr_hori.bmp fr_llc.bmp fr_luc.bmp fr_rlc.bmp \ fr_ruc.bmp fr_vert.bmp menu0_buttons.bmp menu1_buttons.bmp \ menu2_buttons.bmp menu3_buttons.bmp module_buttons.bmp \ scen_dlg_buttons.bmp scroll_buttons.bmp unit_buttons.bmp wallpaper.bmp \ setup_confirm_buttons.bmp strength_buttons.bmp EXTRA_DIST = $(theme_DATA) lgeneral-1.3.1/src/themes/default/click.wav0000664000175000017500000000770212140770455015547 00000000000000RIFFºWAVEfmt "VD¬LIST:INFOINAMselectIARTMarkus KoschanyICRD2012dataTíÿC 5ÿèÿà4ÿØþ‹ðþ’þ8[ýþ¼Eý'ýÎØÿÿ þ|ÿâáÕú©þòýÿSþ9êþ>þý¸þâåüíùã¾ú‚ô™P ið‡ó#‚¤ë ú»§ø_î& ÿëõ /Hè ü,Zï ði•ü»ôrþç ¥ 3ïkõz> ûÍô’ :úéúpðã$’íô„Ìò Ê kñföÉÅ Zç"ýÞ…ìÏÙ–èËùñûö›ú©ðÿðåYèAЇ÷lä0 ¡Žéª%™ûiéö÷øhù‚ š÷û¥ ÿ`ü¸?úRÒ Ñîv ù ës÷ëËè'/ùïàæðï÷pNDò8þ ˜üSõ •åYõüè,½ótôL ‘ð#~þ”ôØ4ùÿ— ô÷Âó÷¶úÁû¯ÿ?÷ý«óüû@Çùïv \ÁÜ÷k â§ýÃýèI÷¾æö¯ö×¥ùàùÝù¦õ‘ûÃ÷gõ)´÷úö(âøyû#øùNûÍø[ü¯ý"ñ ÷7 …ðÖît«û=î\üIóð%ÅïJýÏø§ø(û¢ômú=ö&ú0÷-þ©ýyõhúytùcø†þ©÷¹ñh †Xèþ˜ôhøëîì÷†ø¨ÿEÿçôùb 2ü íðü‡õû-òDýÒvùö󱦦îò Ôÿ1ålü™þLþ,ü=ûtÿÙüaüÎüÂü\úLûÏýàÿýŠöUùÿéýUüýýÃú^ý¼ýtûRüÏý•ûõû´ýÞüü%ýýþ.ü%û ÿTÿ–øúýzýøæÏü2ìý1žþ5þÒüþ™ÿóÿþÿÿÿþÿýÿÿÿþÿþÿþÿüÿüÿÿÿþÿüÿýÿþÿþÿþÿýÿýÿþÿüÿýÿÿÿÿÿüÿþÿþÿþÿþÿþÿþÿÿÿýÿýÿøÿúÿýÿþÿÿÿÿÿýÿûÿÿÿÿÿþÿýÿþÿýÿùÿúÿúÿûÿÿÿÿÿÿÿýÿüÿýÿýÿüÿýÿþÿþÿýÿþÿýÿüÿýÿþÿÿÿþÿþÿûÿüÿÿÿÿÿþÿüÿþÿüÿÿÿþÿýÿÿÿüÿùÿüÿüÿþÿÿÿþÿüÿúÿÿÿýÿýÿûÿûÿýÿþÿýÿÿÿþÿùÿûÿÿÿþÿýÿüÿúÿýÿýÿýÿÿÿÿÿþÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿüÿüÿýÿýÿÿÿýÿýÿÿÿþÿþÿÿÿýÿþÿþÿÿÿýÿÿÿÿÿþÿþÿýÿüÿüÿþÿÿÿÿÿýÿüÿÿÿýÿÿÿþÿùÿüÿþÿýÿþÿþÿýÿþÿÿÿüÿüÿÿÿÿÿÿÿÿÿÿÿÿÿýÿýÿþÿþÿÿÿþÿÿÿýÿýÿþÿýÿÿÿÿÿÿÿÿÿþÿùÿùÿþÿþÿúÿøÿ ÷ÿúÿþÿÿÿýÿÿÿýÿþÿÿÿÿÿþÿýÿÿÿÿÿþÿýÿýÿýÿùÿøÿúÿúÿüÿþÿÿÿþÿýÿÿÿýÿþÿýÿÿÿÿÿÿÿÿÿÿÿûÿýÿüÿúÿýÿÿÿÿÿüÿýÿüÿýÿûÿÿÿÿÿÿÿÿÿüÿþÿýÿþÿÿÿÿÿþÿþÿÿÿÿÿüÿüÿüÿüÿÿÿÿÿýÿÿÿþÿþÿüÿüÿýÿÿÿÿÿþÿþÿÿÿüÿûÿûÿûÿüÿýÿüÿÿÿÿÿÿÿýÿþÿÿÿþÿûÿýÿÿÿÿÿþÿÿÿþÿýÿÿÿÿÿþÿýÿüÿÿÿþÿÿÿÿÿüÿüÿþÿþÿûÿúÿÿÿÿÿþÿüÿþÿÿÿÿÿþÿûÿýÿûÿüÿÿÿüÿúÿüÿÿÿþÿüÿþÿÿÿþÿúÿ÷ÿ øÿÿÿþÿúÿýÿÿÿùÿ÷ÿúÿüÿÿÿÿÿþÿýÿÿÿÿÿüÿýÿþÿþÿüÿýÿûÿúÿþÿÿÿþÿþÿýÿýÿûÿþÿÿÿÿÿþÿþÿÿÿüÿûÿÿÿÿÿüÿþÿþÿÿÿþÿüÿýÿüÿýÿÿÿÿÿÿÿýÿÿÿÿÿÿÿüÿþÿýÿÿÿýÿþÿþÿýÿþÿýÿüÿÿÿÿÿýÿÿÿÿÿÿÿþÿýÿþÿüÿûÿÿÿýÿüÿþÿûÿûÿÿÿýÿþÿÿÿÿÿþÿúÿûÿþÿÿÿÿÿþÿþÿüÿüÿüÿüÿþÿþÿûÿùÿÿÿÿÿÿÿýÿýÿüÿüÿûÿýÿýÿþÿýÿþÿüÿúÿüÿüÿûÿþÿüÿþÿýÿþÿýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿûÿûÿÿÿÿÿüÿûÿüÿüÿûÿùÿ÷ÿ úÿÿÿÿÿÿÿþÿþÿýÿúÿýÿÿÿýÿþÿÿÿÿÿþÿüÿýÿþÿþÿýÿþÿþÿýÿþÿÿÿþÿÿÿÿÿýÿ÷ÿ öÿþÿúÿüÿÿÿþÿþÿþÿûÿúÿüÿýÿþÿûÿüÿþÿÿÿþÿýÿÿÿÿÿýÿûÿÿÿþÿýÿÿÿþÿüÿúÿùÿýÿÿÿþÿüÿûÿþÿüÿýÿþÿûÿùÿúÿÿÿÿÿþÿûÿûÿÿÿþÿûÿúÿþÿþÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿûÿûÿýÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿýÿýÿþÿÿÿÿÿÿÿýÿûÿýÿÿÿüÿýÿüÿüÿþÿÿÿÿÿüÿþÿûÿÿÿÿÿýÿýÿÿÿÿÿÿÿþÿüÿýÿÿÿþÿþÿþÿüÿüÿüÿüÿþÿÿÿÿÿÿÿûÿÿÿÿÿÿÿþÿûÿÿÿþÿüÿþÿÿÿýÿùÿúÿûÿÿÿþÿýÿýÿüÿÿÿÿÿÿÿýÿÿÿÿÿûÿùÿÿÿþÿÿÿþÿþÿýÿýÿÿÿÿÿþÿúÿýÿÿÿþÿÿÿüÿýÿþÿýÿþÿÿÿýÿüÿüÿÿÿþÿúÿûÿûÿùÿýÿþÿüÿþÿýÿþÿÿÿþÿýÿþÿÿÿýÿýÿýÿýÿþÿþÿýÿÿÿÿÿýÿúÿúÿýÿþÿÿÿlgeneral-1.3.1/src/themes/default/fr_llc.bmp0000664000175000017500000000036612140770455015703 00000000000000BMö6(À  @-)<+'@-)@-)@-)@-)@-)@-)@-)^B<:*&@-)@-)7'$>,(7'$@-)¬p\E@˂Ӕ‡ÎƒÙ¢•Ù¡•@-)Ú¦˜K31@-)Ù¥—;*'@-)Б„4%"@-)ÉŒ‚6'#@-)Ùš‹1# lgeneral-1.3.1/src/themes/default/menu2_buttons.bmp0000664000175000017500000024206612140770455017253 00000000000000BM6D6(` Dà à &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'&&&ÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿ///$$$&&&N734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$&&&ÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿ'''```RRRQQQRRRaaaaaa```SSSKKKAAA>>>>>>\\\^^^UUUaaa&&&`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#&&&ÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿ///###%%%((("""""""""'''///,,,((()))))))))'''######aaa&&&yUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!&&&ÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿ<<<###***&&&""" $$$'''&&&***///---&&&###"""''',,,```&&&£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!&&&ÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿPPP###%%%$$$%%%!!!!!!!!!$$$---///,,,)))"""%%%)))RRR&&&¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-&&&ÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿPPP((()))((((((%%%!!!""""""$$$))),,,///***$$$###(((,,,QQQ&&&¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+&&&ÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿPPP---((((((!!! (((%%%%%%!!!"""%%%)))///***(((((()))000RRR&&&°zpW>9V2*W1)I+#P/&T0(b9.W1)I+#P/&T0(b9.e:0j>3m?5j>3m?5b9/pA6ÅŠ~&&&&ÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.W1)I+#P/&T0(b9.e:0j>3m?5j>3m?5b9/pA6ÅŠ~&ÿÿÿÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.W1)I+#P/&T0(b9.e:0j>3m?5j>3m?5b9/pA6ÅŠ~&ÿÿÿVVV,,,######!!!"""(((###!!!"""(((,,,---))),,,---(((...aaa&&&±|qP94]6,O/'M,$R0'R0'Y2+O/'M,$R0'R0'Y2+a9/e:0b:0e:0b:0Y4+`7.ÅŠ~*&&&ÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+O/'M,$R0'R0'Y2+a9/e:0b:0e:0b:0Y4+`7.ÅŠ~*ÿÿÿÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+O/'M,$R0'R0'Y2+a9/e:0b:0e:0b:0Y4+`7.ÅŠ~*ÿÿÿWWW(((&&&!!!""""""$$$!!!""""""$$$))))))((())))))%%%'''aaa&&&±{pL61b9/U1(E(!L,%U1)d:0U1(E(!L,%U1)d:0R0'V1)k>3Z4+_6,X2*[5,³}r7'#&&&ÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0U1(E(!L,%U1)d:0R0'V1)k>3Z4+_6,X2*[5,³}r7'#ÿÿÿÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0U1(E(!L,%U1)d:0R0'V1)k>3Z4+_6,X2*[5,³}r7'#ÿÿÿWWW%%%(((######)))######)))"""###,,,%%%&&&###%%%XXX&&&ŸndE1-b9/T1(N-&L,%Y3+oA5T1(N-&L,%Y3+oA5S0(T1(^6-^7-Y3*a8.h=2¤siE0,&&&ÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5T1(N-&L,%Y3+oA5S0(T1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5T1(N-&L,%Y3+oA5S0(T1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿNNN###(((### $$$...### $$$..."""###&&&'''$$$(((+++QQQ"""&&&–i_E1-X3*S0(]5,]6-Y3*j>3S0(]5,]6-Y3*j>3`8.W3*O.&N-&R0'Y5+tC7¤siM50&&&ÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3S0(]5,]6-Y3*j>3`8.W3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3S0(]5,]6-Y3*j>3`8.W3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿJJJ###$$$"""%%%&&&$$$,,,"""%%%&&&$$$,,,((($$$!!! """%%%///QQQ%%%&&&–i_O94]7-_7.b9/b9/j>3c9/_7.b9/b9/j>3c9/f;0X2*E)!D(!N-&[5+qA5¤siC/+&&&ÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/_7.b9/b9/j>3c9/f;0X2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/_7.b9/b9/j>3c9/f;0X2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿJJJ(((''''''((((((,,,((('''((((((,,,(((***### %%%...QQQ!!!&&&ndP94c:/a8.Y5+`8.uD8l>4a8.Y5+`8.uD8l>4_7-S0'J+$D(!M,%c9/sB7¤siK4/&&&ÿÿÿndP94c:/a8.Y5+`8.uD8l>4a8.Y5+`8.uD8l>4_7-S0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿÿÿÿndP94c:/a8.Y5+`8.uD8l>4a8.Y5+`8.uD8l>4_7-S0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿNNN((()))(((%%%(((000,,,(((%%%(((000,,,'''"""(((///QQQ%%%&&&°{p`D?Z5+b9/a8.c:0pA5g<1b9/a8.c:0pA5g<1X4+S0(Q/&J+$P.&[5,\5,¦tjU;6&&&ÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1b9/a8.c:0pA5g<1X4+S0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1b9/a8.c:0pA5g<1X4+S0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿWWW000%%%(((((()))...***(((((()))...***%%%"""!!!!!!%%%%%%RRR***&&&´{shJCR0'\5,c9/tC7c9/^7-\5,c9/tC7c9/^7-R0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83&&&ÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-\5,c9/tC7c9/^7-R0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-\5,c9/tC7c9/^7-R0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿWWW444"""%%%(((///((('''%%%(((///((('''"""%%%%%%###aaa(((&&&¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50&&&ÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿQQQ(((%%%"""(((...(((%%%"""(((...(((%%%"""%%%'''"""aaa%%%&&&¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50&&&ÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿRRR(((###!!!############!!!%%%(((######)))%%%(((###ZZZ%%%&&&¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50&&&ÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿRRR###%%%&&&'''!!!!!!"""$$$)))///)))(((((($$$((('''QQQ%%%&&&«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:&&&ÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿTTTNNN###$$$''''''"""%%%(((,,,000---)))&&&&&&))))))***(((111777---&&&À…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83&&&ÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿ^^^WWW***000333,,,(((((((((((((((###---///,,,%%%######222(((&&&¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJ&&&ÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿUUUfffwwwuuullleeecccpppccc^^^^^^RRRNNNTTTNNNBBB777888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'&&&ÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿ///$$$&&&N734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$&&&ÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿ'''```RRRQQQRRRaaaaaa```SSSKKKAAA>>>>>>\\\^^^UUUaaa&&&`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#&&&ÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿ///###%%%((("""""""""'''///,,,((()))))))))'''######aaa&&&yUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!&&&ÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿ<<<###***&&&""" $$$'''&&&***///---&&&###"""''',,,```&&&£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!&&&ÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿPPP###%%%$$$%%%!!!!!!!!!$$$---///,,,)))"""%%%)))RRR&&&¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-&&&ÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿPPP((()))((((((%%%!!!""""""$$$))),,,///***$$$###(((,,,QQQ&&&¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+&&&ÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿPPP---((((((!!! (((%%%%%%!!!"""%%%)))///***(((((()))000RRR&&&°zpW>9V2*W1)I+#P/&T0(ÓÈű œI+#P/&T0(b9.—ysòîíoB8j>3m?5b9/pA6ÅŠ~&&&&ÿÿÿ°zpW>9V2*W1)I+#P/&T0(ÓÈű œI+#P/&T0(b9.—ysòîíoB8j>3m?5b9/pA6ÅŠ~&ÿÿÿÿÿÿ°zpW>9V2*W1)I+#P/&T0(ÓÈű œI+#P/&T0(b9.—ysòîíoB8j>3m?5b9/pA6ÅŠ~&ÿÿÿVVV,,,######!!!"""‘‘‘ttt!!!"""(((YYY¬¬¬+++,,,---(((...aaa&&&±|qP94]6,O/'M,$R0'R0'“zuïììP/'R0'R0'Y2+ÒÆÃº§¢b:0e:0b:0Y4+`7.ÅŠ~*&&&ÿÿÿ±|qP94]6,O/'M,$R0'R0'“zuïììP/'R0'R0'Y2+ÒÆÃº§¢b:0e:0b:0Y4+`7.ÅŠ~*ÿÿÿÿÿÿ±|qP94]6,O/'M,$R0'R0'“zuïììP/'R0'R0'Y2+ÒÆÃº§¢b:0e:0b:0Y4+`7.ÅŠ~*ÿÿÿWWW(((&&&!!!""""""XXX«««!!!""""""$$$yyy((())))))%%%'''aaa&&&±{pL61b9/U1(E(!L,%U1)iA7öôóø÷ö÷ööøööø÷öþþþuWPk>3Z4+_6,X2*[5,³}r7'#&&&ÿÿÿ±{pL61b9/U1(E(!L,%U1)iA7öôóø÷ö÷ööøööø÷öþþþuWPk>3Z4+_6,X2*[5,³}r7'#ÿÿÿÿÿÿ±{pL61b9/U1(E(!L,%U1)iA7öôóø÷ö÷ööøööø÷öþþþuWPk>3Z4+_6,X2*[5,³}r7'#ÿÿÿWWW%%%(((######...±±±³³³²²²³³³³³³¸¸¸???,,,%%%&&&###%%%XXX&&&ŸndE1-b9/T1(N-&L,%Y3+oA5¼®«Åº¸L,%Y3+±—‘ßÙ×T1(^6-^7-Y3*a8.h=2¤siE0,&&&ÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5¼®«Åº¸L,%Y3+±—‘ßÙ×T1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5¼®«Åº¸L,%Y3+±—‘ßÙ×T1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿNNN###(((### $$$...~~~‡‡‡$$$mmm###&&&'''$$$(((+++QQQ"""&&&–i_E1-X3*S0(]5,]6-Y3*j>3{a[ùøøe?7Y3*áØÕ¦‹W3*O.&N-&R0'Y5+tC7¤siM50&&&ÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3{a[ùøøe?7Y3*áØÕ¦‹W3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3{a[ùøøe?7Y3*áØÕ¦‹W3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿJJJ###$$$"""%%%&&&$$$,,,FFF´´´---$$$œœœhhh$$$!!! """%%%///QQQ%%%&&&–i_O94]7-_7.b9/b9/j>3c9/_7.éäâ™~x~XOýüütMCX2*E)!D(!N-&[5+qA5¤siC/+&&&ÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/_7.éäâ™~x~XOýüütMCX2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/_7.éäâ™~x~XOýüütMCX2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿJJJ(((''''''((((((,,,((('''¥¥¥[[[???···777### %%%...QQQ!!!&&&ndP94c:/a8.Y5+`8.uD8l>4a8.«™”ÎÁ¾¶–ÔÆÃ_7-S0'J+$D(!M,%c9/sB7¤siK4/&&&ÿÿÿndP94c:/a8.Y5+`8.uD8l>4a8.«™”ÎÁ¾¶–ÔÆÃ_7-S0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿÿÿÿndP94c:/a8.Y5+`8.uD8l>4a8.«™”ÎÁ¾¶–ÔÆÃ_7-S0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿNNN((()))(((%%%(((000,,,(((nnnŒŒŒqqq'''"""(((///QQQ%%%&&&°{p`D?Z5+b9/a8.c:0pA5g<1b9/uQHúùùéâàš}vX4+S0(Q/&J+$P.&[5,\5,¦tjU;6&&&ÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1b9/uQHúùùéâàš}vX4+S0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1b9/uQHúùùéâàš}vX4+S0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿWWW000%%%(((((()))...***(((:::´´´¤¤¤ZZZ%%%"""!!!!!!%%%%%%RRR***&&&´{shJCR0'\5,c9/tC7c9/^7-\5,c9/ÝÑÎõóòb<3R0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83&&&ÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-\5,c9/ÝÑÎõóòb<3R0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-\5,c9/ÝÑÎõóòb<3R0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿWWW444"""%%%(((///((('''%%%(((———°°°+++"""%%%%%%###aaa(((&&&¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50&&&ÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿQQQ(((%%%"""(((...(((%%%"""(((...(((%%%"""%%%'''"""aaa%%%&&&¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50&&&ÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿRRR(((###!!!############!!!%%%(((######)))%%%(((###ZZZ%%%&&&¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50&&&ÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿRRR###%%%&&&'''!!!!!!"""$$$)))///)))(((((($$$((('''QQQ%%%&&&«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:&&&ÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿTTTNNN###$$$''''''"""%%%(((,,,000---)))&&&&&&))))))***(((111777---&&&À…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83&&&ÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿ^^^WWW***000333,,,(((((((((((((((###---///,,,%%%######222(((&&&¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJ&&&ÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿUUUfffwwwuuullleeecccpppccc^^^^^^RRRNNNTTTNNNBBB777888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'&&&ÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿ///$$$&&&N734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$&&&ÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿ'''```RRRQQQRRRaaaaaa```SSSKKKAAA>>>>>>\\\^^^UUUaaa&&&`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#&&&ÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿ///###%%%((("""""""""'''///,,,((()))))))))'''######aaa&&&yUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!&&&ÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿ<<<###***&&&""" $$$'''&&&***///---&&&###"""''',,,```&&&£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!&&&ÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿPPP###%%%$$$%%%!!!!!!!!!$$$---///,,,)))"""%%%)))RRR&&&¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-&&&ÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿPPP((()))((((((%%%!!!""""""$$$))),,,///***$$$###(((,,,QQQ&&&¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0WL˜|u„d\_8.c:0uD8¦tj+&&&ÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0WL˜|u„d\_8.c:0uD8¦tj+ÿÿÿÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0WL˜|u„d\_8.c:0uD8¦tj+ÿÿÿPPP---((((((!!! (((%%%%%%!!!"""%%%)))===VVVFFF((()))000RRR&&&°zpW>9V2*W1)¸¶ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿS0(R0'P/&’xrÿÿÿÿÿÿÿÿÿο¼b9/pA6ÅŠ~&&&&ÿÿÿ°zpW>9V2*W1)¸¶ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿS0(R0'P/&’xrÿÿÿÿÿÿÿÿÿο¼b9/pA6ÅŠ~&ÿÿÿÿÿÿ°zpW>9V2*W1)¸¶ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿS0(R0'P/&’xrÿÿÿÿÿÿÿÿÿο¼b9/pA6ÅŠ~&ÿÿÿVVV,,,######€€€±±±±±±±±±±±±±±±""""""!!!TTT±±±±±±±±±………(((...aaa&&&±|qP94]6,O/'tZTŒuo²¢žÿÿÿžxš~v^7-Q0'Q0'ëççɼ¹a9/©‘Œÿÿÿ}aZ`7.ÅŠ~*&&&ÿÿÿ±|qP94]6,O/'tZTŒuo²¢žÿÿÿžxš~v^7-Q0'Q0'ëççɼ¹a9/©‘Œÿÿÿ}aZ`7.ÅŠ~*ÿÿÿÿÿÿ±|qP94]6,O/'tZTŒuo²¢žÿÿÿžxš~v^7-Q0'Q0'ëççɼ¹a9/©‘Œÿÿÿ}aZ`7.ÅŠ~*ÿÿÿWWW(((&&&!!!???QQQppp±±±YYYWWW'''!!!!!!   ‚‚‚(((eee±±±CCC'''aaa&&&±{pL61b9/U1(E(!L,%Žvpÿÿÿe:0qB6c:/\6-y]WÿÿÿiH@k>3Z4+íèç´£ [5,³}r7'#&&&ÿÿÿ±{pL61b9/U1(E(!L,%Žvpÿÿÿe:0qB6c:/\6-y]WÿÿÿiH@k>3Z4+íèç´£ [5,³}r7'#ÿÿÿÿÿÿ±{pL61b9/U1(E(!L,%Žvpÿÿÿe:0qB6c:/\6-y]WÿÿÿiH@k>3Z4+íèç´£ [5,³}r7'#ÿÿÿWWW%%%(((###RRR±±±)))///)))&&&AAA±±±333,,,%%%¡¡¡qqq%%%XXX&&&ŸndE1-b9/T1(N-&L,%wrÿÿÿd:0f;1j=2c:0”zsÿÿÿT1(^6-^7-È»¸Ê½¹h=2¤siE0,&&&ÿÿÿŸndE1-b9/T1(N-&L,%wrÿÿÿd:0f;1j=2c:0”zsÿÿÿT1(^6-^7-È»¸Ê½¹h=2¤siE0,ÿÿÿÿÿÿŸndE1-b9/T1(N-&L,%wrÿÿÿd:0f;1j=2c:0”zsÿÿÿT1(^6-^7-È»¸Ê½¹h=2¤siE0,ÿÿÿNNN###(((### SSS±±±)))***+++)))UUU±±±###&&&'''‚‚‚ƒƒƒ+++QQQ"""&&&–i_E1-X3*S0(]5,]6-wqÿÿÿtC7k>3f;0l?4–{tÿÿÿW3*O.&N-&ź·È¼¸tC7¤siM50&&&ÿÿÿ–i_E1-X3*S0(]5,]6-wqÿÿÿtC7k>3f;0l?4–{tÿÿÿW3*O.&N-&ź·È¼¸tC7¤siM50ÿÿÿÿÿÿ–i_E1-X3*S0(]5,]6-wqÿÿÿtC7k>3f;0l?4–{tÿÿÿW3*O.&N-&ź·È¼¸tC7¤siM50ÿÿÿJJJ###$$$"""%%%&&&SSS±±±///,,,***,,,UUU±±±$$$!!! ‚‚‚///QQQ%%%&&&–i_O94]7-_7.b9/b9/œ~wÿÿÿc:0b8.b9/e:0œ~vÿÿÿX2*E)!D(!Ĺ·È¼¸qA5¤siC/+&&&ÿÿÿ–i_O94]7-_7.b9/b9/œ~wÿÿÿc:0b8.b9/e:0œ~vÿÿÿX2*E)!D(!Ĺ·È¼¸qA5¤siC/+ÿÿÿÿÿÿ–i_O94]7-_7.b9/b9/œ~wÿÿÿc:0b8.b9/e:0œ~vÿÿÿX2*E)!D(!Ĺ·È¼¸qA5¤siC/+ÿÿÿJJJ(((''''''((((((XXX±±±)))(((((()))WWW±±±###€€€‚‚‚...QQQ!!!&&&ndP94c:/a8.}aZƒd\£‚zÿÿÿT1)X3*b9/a8/wQHÿÿÿy]VJ+$D(!ëçæ¨‘‹sB7¤siK4/&&&ÿÿÿndP94c:/a8.}aZƒd\£‚zÿÿÿT1)X3*b9/a8/wQHÿÿÿy]VJ+$D(!ëçæ¨‘‹sB7¤siK4/ÿÿÿÿÿÿndP94c:/a8.}aZƒd\£‚zÿÿÿT1)X3*b9/a8/wQHÿÿÿy]VJ+$D(!ëçæ¨‘‹sB7¤siK4/ÿÿÿNNN((()))(((CCCFFF[[[±±±###$$$((((((999±±±AAA   eee///QQQ%%%&&&°{p`D?Z5+b9/ʽ¹ÿÿÿÿÿÿÿÿÿ]6-R0'R0(W3*Y3*ÚÒÐëçç‹tn×ÐÎÿÿÿmKC\5,¦tjU;6&&&ÿÿÿ°{p`D?Z5+b9/ʽ¹ÿÿÿÿÿÿÿÿÿ]6-R0'R0(W3*Y3*ÚÒÐëçç‹tn×ÐÎÿÿÿmKC\5,¦tjU;6ÿÿÿÿÿÿ°{p`D?Z5+b9/ʽ¹ÿÿÿÿÿÿÿÿÿ]6-R0'R0(W3*Y3*ÚÒÐëçç‹tn×ÐÎÿÿÿmKC\5,¦tjU;6ÿÿÿWWW000%%%(((ƒƒƒ±±±±±±±±±&&&""""""$$$$$$’’’   QQQ±±±555%%%RRR***&&&´{shJCR0'\5,c9/¢‚z¹¦¢ÛÒÐ`8.P/&E)!X3+T1(eG@ÚÒÐÿÿÿìèç†qkD'!A& ÅŠ~Q83&&&ÿÿÿ´{shJCR0'\5,c9/¢‚z¹¦¢ÛÒÐ`8.P/&E)!X3+T1(eG@ÚÒÐÿÿÿìèç†qkD'!A& ÅŠ~Q83ÿÿÿÿÿÿ´{shJCR0'\5,c9/¢‚z¹¦¢ÛÒÐ`8.P/&E)!X3+T1(eG@ÚÒÐÿÿÿìèç†qkD'!A& ÅŠ~Q83ÿÿÿWWW444"""%%%((([[[sss’’’(((!!!$$$###222’’’±±±¡¡¡NNNaaa(((&&&¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50&&&ÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿQQQ(((%%%"""(((...(((%%%%%%"""""""""!!!"""%%%'''"""aaa%%%&&&¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50&&&ÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿRRR(((###!!!############!!!%%%(((######)))%%%(((###ZZZ%%%&&&¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50&&&ÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿRRR###%%%&&&'''!!!!!!"""$$$)))///)))(((((($$$((('''QQQ%%%&&&«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:&&&ÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿTTTNNN###$$$''''''"""%%%(((,,,000---)))&&&&&&))))))***(((111777---&&&À…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83&&&ÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿ^^^WWW***000333,,,(((((((((((((((###---///,,,%%%######222(((&&&¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJ&&&ÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿUUUfffwwwuuullleeecccpppccc^^^^^^RRRNNNTTTNNNBBB777888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'&&&ÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿ///$$$&&&N734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$&&&ÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿ'''```RRRQQQRRRaaaaaa```SSSKKKAAA>>>>>>\\\^^^UUUaaa&&&`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#&&&ÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿ///###%%%((("""""""""'''///,,,((()))))))))'''######aaa&&&yUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!&&&ÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿ<<<###***&&&""" $$$'''&&&***///---&&&###"""''',,,```&&&£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!&&&ÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿPPP###%%%$$$%%%!!!!!!!!!$$$---///,,,)))"""%%%)))RRR&&&¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-&&&ÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿPPP((()))((((((%%%!!!""""""$$$))),,,///***$$$###(((,,,QQQ&&&¢phZ@:_8.b9/R/&N-%_8.[5,Z5+…qlŠtnR0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+&&&ÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+…qlŠtnR0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+…qlŠtnR0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿPPP---((((((!!! (((%%%%%%NNNQQQ"""%%%)))///***(((((()))000RRR&&&°zpW>9V2*W1)I+#P/&T0(b9.§‹ÿÿÿÿÿÿÿÿÿŠtn\5,d:0e:0j>3m?5b9/pA6ÅŠ~&&&&ÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.§‹ÿÿÿÿÿÿÿÿÿŠtn\5,d:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.§‹ÿÿÿÿÿÿÿÿÿŠtn\5,d:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿVVV,,,######!!!"""(((eee±±±±±±±±±QQQ%%%)))))),,,---(((...aaa&&&±|qP94]6,O/'M,$R0'R0'Y2+n?4š~v^7-±¢žÿÿÿŒup^6-a9/e:0b:0Y4+`7.ÅŠ~*&&&ÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+n?4š~v^7-±¢žÿÿÿŒup^6-a9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+n?4š~v^7-±¢žÿÿÿŒup^6-a9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿWWW(((&&&!!!""""""$$$,,,WWW'''ppp±±±RRR&&&((())))))%%%'''aaa&&&±{pL61b9/U1(E(!L,%U1)d:0e:0qB6c:/\6-ƺ·ÿÿÿiH@k>3Z4+_6,X2*[5,³}r7'#&&&ÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0e:0qB6c:/\6-ƺ·ÿÿÿiH@k>3Z4+_6,X2*[5,³}r7'#ÿÿÿÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0e:0qB6c:/\6-ƺ·ÿÿÿiH@k>3Z4+_6,X2*[5,³}r7'#ÿÿÿWWW%%%(((######))))))///)))&&&±±±333,,,%%%&&&###%%%XXX&&&ŸndE1-b9/T1(N-&L,%Y3+oA5d:0wQH¼¨£Ë½º”zsÿÿÿvp^6-^7-Y3*a8.h=2¤siE0,&&&ÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5d:0wQH¼¨£Ë½º”zsÿÿÿvp^6-^7-Y3*a8.h=2¤siE0,ÿÿÿÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5d:0wQH¼¨£Ë½º”zsÿÿÿvp^6-^7-Y3*a8.h=2¤siE0,ÿÿÿNNN###(((### $$$...)))999uuuƒƒƒUUU±±±RRR&&&'''$$$(((+++QQQ"""&&&–i_E1-X3*S0(]5,]6-Y3*j>3tC7îéèîéçο»ÿÿÿÿÿÿÇ»¸O.&N-&R0'Y5+tC7¤siM50&&&ÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3tC7îéèîéçο»ÿÿÿÿÿÿÇ»¸O.&N-&R0'Y5+tC7¤siM50ÿÿÿÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3tC7îéèîéçο»ÿÿÿÿÿÿÇ»¸O.&N-&R0'Y5+tC7¤siM50ÿÿÿJJJ###$$$"""%%%&&&$$$,,,///¢¢¢¡¡¡………±±±±±±‚‚‚!!! """%%%///QQQ%%%&&&–i_O94]7-_7.b9/b9/j>3c9/—|uÿÿÿsOFe:0œ~vÿÿÿ¢ˆE)!D(!N-&[5+qA5¤siC/+&&&ÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/—|uÿÿÿsOFe:0œ~vÿÿÿ¢ˆE)!D(!N-&[5+qA5¤siC/+ÿÿÿÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/—|uÿÿÿsOFe:0œ~vÿÿÿ¢ˆE)!D(!N-&[5+qA5¤siC/+ÿÿÿJJJ(((''''''((((((,,,(((VVV±±±888)))WWW±±±bbb %%%...QQQ!!!&&&ndP94c:/a8.Y5+`8.uD8l>4vpÿÿÿb9/a8/ˆf^ÿÿÿŒuoJ+$D(!M,%c9/sB7¤siK4/&&&ÿÿÿndP94c:/a8.Y5+`8.uD8l>4vpÿÿÿb9/a8/ˆf^ÿÿÿŒuoJ+$D(!M,%c9/sB7¤siK4/ÿÿÿÿÿÿndP94c:/a8.Y5+`8.uD8l>4vpÿÿÿb9/a8/ˆf^ÿÿÿŒuoJ+$D(!M,%c9/sB7¤siK4/ÿÿÿNNN((()))(((%%%(((000,,,RRR±±±((((((GGG±±±QQQ(((///QQQ%%%&&&°{p`D?Z5+b9/a8.c:0pA5g<1]6-ÿÿÿź·wqìèçìèçS0(Q/&J+$P.&[5,\5,¦tjU;6&&&ÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1]6-ÿÿÿź·wqìèçìèçS0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1]6-ÿÿÿź·wqìèçìèçS0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿWWW000%%%(((((()))...***&&&±±±SSS¡¡¡¡¡¡"""!!!!!!%%%%%%RRR***&&&´{shJCR0'\5,c9/tC7c9/^7-`8.ŠtnêçæÿÿÿÙÑÏeG@Z4+X4+V2)I*!D'!A& ÅŠ~Q83&&&ÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-`8.ŠtnêçæÿÿÿÙÑÏeG@Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-`8.ŠtnêçæÿÿÿÙÑÏeG@Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿWWW444"""%%%(((///((('''(((QQQ   ±±±‘‘‘222%%%%%%###aaa(((&&&¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50&&&ÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿQQQ(((%%%"""(((...(((%%%%%%"""""""""!!!"""%%%'''"""aaa%%%&&&¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50&&&ÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿRRR(((###!!!############!!!%%%(((######)))%%%(((###ZZZ%%%&&&¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50&&&ÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿRRR###%%%&&&'''!!!!!!"""$$$)))///)))(((((($$$((('''QQQ%%%&&&«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:&&&ÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿTTTNNN###$$$''''''"""%%%(((,,,000---)))&&&&&&))))))***(((111777---&&&À…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83&&&ÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿ^^^WWW***000333,,,(((((((((((((((###---///,,,%%%######222(((&&&¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJ&&&ÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿUUUfffwwwuuullleeecccpppccc^^^^^^RRRNNNTTTNNNBBB777888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'&&&ÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿ///$$$&&&N734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$&&&ÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿ'''```RRRQQQRRRaaaaaa```SSSKKKAAA>>>>>>\\\^^^UUUaaa&&&`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#&&&ÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿ///###%%%((("""""""""'''///,,,((()))))))))'''######aaa&&&yUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!&&&ÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿ<<<###***&&&""" $$$'''&&&***///---&&&###"""''',,,```&&&£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!&&&ÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿPPP###%%%$$$%%%!!!!!!!!!$$$---///,,,)))"""%%%)))RRR&&&¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-&&&ÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿPPP((()))((((((%%%!!!""""""$$$))),,,///***$$$###(((,,,QQQ&&&¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"ŠtnŒuokJBc:0rB6e;0b8._8.c:0uD8¦tj+&&&ÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"ŠtnŒuokJBc:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"ŠtnŒuokJBc:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿPPP---((((((!!! (((%%%%%%QQQQQQ444)))///***(((((()))000RRR&&&°zpW>9V2*W1)I+#P/&T0(b9.rNEíèçÿÿÿÿÿÿÿÿÿ¤Šd:0e:0j>3m?5b9/pA6ÅŠ~&&&&ÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.rNEíèçÿÿÿÿÿÿÿÿÿ¤Šd:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.rNEíèçÿÿÿÿÿÿÿÿÿ¤Šd:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿVVV,,,######!!!"""(((777¡¡¡±±±±±±±±±ccc)))))),,,---(((...aaa&&&±|qP94]6,O/'M,$R0'R0'Y2+¾©¤îéèpMDQ0'±¢žÿÿÿb[a9/e:0b:0Y4+`7.ÅŠ~*&&&ÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+¾©¤îéèpMDQ0'±¢žÿÿÿb[a9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+¾©¤îéèpMDQ0'±¢žÿÿÿb[a9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿWWW(((&&&!!!""""""$$$uuu¢¢¢666!!!ppp±±±EEE((())))))%%%'''aaa&&&±{pL61b9/U1(E(!L,%U1)d:0̽ºÐÀ¼c:/\6-S0(ÿÿÿŽvpk>3Z4+_6,X2*[5,³}r7'#&&&ÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0̽ºÐÀ¼c:/\6-S0(ÿÿÿŽvpk>3Z4+_6,X2*[5,³}r7'#ÿÿÿÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0̽ºÐÀ¼c:/\6-S0(ÿÿÿŽvpk>3Z4+_6,X2*[5,³}r7'#ÿÿÿWWW%%%(((######)))ƒƒƒ………)))&&&"""±±±RRR,,,%%%&&&###%%%XXX&&&ŸndE1-b9/T1(N-&L,%Y3+oA5˜|uÿÿÿ¬“—|uÛÒÐëççT1(^6-^7-Y3*a8.h=2¤siE0,&&&ÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5˜|uÿÿÿ¬“—|uÛÒÐëççT1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5˜|uÿÿÿ¬“—|uÛÒÐëççT1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿNNN###(((### $$$...VVV±±±fffVVV’’’   ###&&&'''$$$(((+++QQQ"""&&&–i_E1-X3*S0(]5,]6-Y3*j>3tC7ÞÔÑÿÿÿÿÿÿÿÿÿƒd\W3*O.&N-&R0'Y5+tC7¤siM50&&&ÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3tC7ÞÔÑÿÿÿÿÿÿÿÿÿƒd\W3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3tC7ÞÔÑÿÿÿÿÿÿÿÿÿƒd\W3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿJJJ###$$$"""%%%&&&$$$,,,///“““±±±±±±±±±FFF$$$!!! """%%%///QQQ%%%&&&–i_O94]7-_7.b9/b9/j>3c9/¨‘ŒíèçsOFe:0;»ÝÓÑX2*E)!D(!N-&[5+qA5¤siC/+&&&ÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/¨‘ŒíèçsOFe:0;»ÝÓÑX2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/¨‘ŒíèçsOFe:0;»ÝÓÑX2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿJJJ(((''''''((((((,,,(((eee¡¡¡888)))„„„’’’### %%%...QQQ!!!&&&ndP94c:/a8.Y5+`8.uD8l>4ƺ¸Ç»¸b9/a8/™|vÿÿÿS0'J+$D(!M,%c9/sB7¤siK4/&&&ÿÿÿndP94c:/a8.Y5+`8.uD8l>4ƺ¸Ç»¸b9/a8/™|vÿÿÿS0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿÿÿÿndP94c:/a8.Y5+`8.uD8l>4ƺ¸Ç»¸b9/a8/™|vÿÿÿS0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿNNN((()))(((%%%(((000,,,‚‚‚((((((WWW±±±"""(((///QQQ%%%&&&°{p`D?Z5+b9/a8.c:0pA5g<1¥ŠÿÿÿŸŒ‡wqìèçÚÒÐS0(Q/&J+$P.&[5,\5,¦tjU;6&&&ÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1¥ŠÿÿÿŸŒ‡wqìèçÚÒÐS0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1¥ŠÿÿÿŸŒ‡wqìèçÚÒÐS0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿWWW000%%%(((((()))...***ccc±±±aaaSSS¡¡¡’’’"""!!!!!!%%%%%%RRR***&&&´{shJCR0'\5,c9/tC7c9/^7-`8.ž‹†êçæÿÿÿ³£ŸeG@Z4+X4+V2)I*!D'!A& ÅŠ~Q83&&&ÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-`8.ž‹†êçæÿÿÿ³£ŸeG@Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-`8.ž‹†êçæÿÿÿ³£ŸeG@Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿWWW444"""%%%(((///((('''(((```   ±±±qqq222%%%%%%###aaa(((&&&¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50&&&ÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿQQQ(((%%%"""(((...(((%%%%%%"""""""""!!!"""%%%'''"""aaa%%%&&&¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50&&&ÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿRRR(((###!!!############!!!%%%(((######)))%%%(((###ZZZ%%%&&&¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50&&&ÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿRRR###%%%&&&'''!!!!!!"""$$$)))///)))(((((($$$((('''QQQ%%%&&&«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:&&&ÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿTTTNNN###$$$''''''"""%%%(((,,,000---)))&&&&&&))))))***(((111777---&&&À…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83&&&ÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿ^^^WWW***000333,,,(((((((((((((((###---///,,,%%%######222(((&&&¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJ&&&ÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿUUUfffwwwuuullleeecccpppccc^^^^^^RRRNNNTTTNNNBBB777888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'&&&ÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿ///$$$&&&N734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$&&&ÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿ'''```RRRQQQRRRaaaaaa```SSSKKKAAA>>>>>>\\\^^^UUUaaa&&&`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#&&&ÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿ///###%%%((("""""""""'''///,,,((()))))))))'''######aaa&&&yUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!&&&ÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿ<<<###***&&&""" $$$'''&&&***///---&&&###"""''',,,```&&&£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!&&&ÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿPPP###%%%$$$%%%!!!!!!!!!$$$---///,,,)))"""%%%)))RRR&&&¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-&&&ÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿPPP((()))((((((%%%!!!""""""$$$))),,,///***$$$###(((,,,QQQ&&&¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+&&&ÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿPPP---((((((!!! (((%%%%%%!!!"""%%%)))///***(((((()))000RRR&&&°zpW>9V2*W1)I+#P/&T0(b9.a8.]6,²¢ŸØÑÏP/&\5,d:0e:0j>3m?5b9/pA6ÅŠ~&&&&ÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.a8.]6,²¢ŸØÑÏP/&\5,d:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.a8.]6,²¢ŸØÑÏP/&\5,d:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿVVV,,,######!!!"""((((((&&&ppp‘‘‘!!!%%%)))))),,,---(((...aaa&&&±|qP94]6,O/'M,$R0'R0'Y2+n?4h=2”zsÿÿÿdG?S0(^6-a9/e:0b:0Y4+`7.ÅŠ~*&&&ÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+n?4h=2”zsÿÿÿdG?S0(^6-a9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+n?4h=2”zsÿÿÿdG?S0(^6-a9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿWWW(((&&&!!!""""""$$$,,,+++UUU±±±111"""&&&((())))))%%%'''aaa&&&±{pL61b9/U1(E(!L,%U1)d:0e:0qB6c:/ÿÿÿŸŒ‡R0'V1)k>3Z4+_6,X2*[5,³}r7'#&&&ÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0e:0qB6c:/ÿÿÿŸŒ‡R0'V1)k>3Z4+_6,X2*[5,³}r7'#ÿÿÿÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0e:0qB6c:/ÿÿÿŸŒ‡R0'V1)k>3Z4+_6,X2*[5,³}r7'#ÿÿÿWWW%%%(((######))))))///)))±±±aaa"""###,,,%%%&&&###%%%XXX&&&ŸndE1-b9/T1(N-&L,%Y3+oA5d:0f;1j=2˽ºÛÒÐS0(T1(^6-^7-Y3*a8.h=2¤siE0,&&&ÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5d:0f;1j=2˽ºÛÒÐS0(T1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5d:0f;1j=2˽ºÛÒÐS0(T1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿNNN###(((### $$$...)))***+++ƒƒƒ’’’"""###&&&'''$$$(((+++QQQ"""&&&–i_E1-X3*S0(]5,]6-Y3*j>3tC7k>3f;0xÿÿÿqNEW3*O.&N-&R0'Y5+tC7¤siM50&&&ÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3tC7k>3f;0xÿÿÿqNEW3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3tC7k>3f;0xÿÿÿqNEW3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿJJJ###$$$"""%%%&&&$$$,,,///,,,***YYY±±±777$$$!!! """%%%///QQQ%%%&&&–i_O94]7-_7.b9/b9/j>3c9/c:0b8.b9/e:0ÿÿÿª’ŒX2*E)!D(!N-&[5+qA5¤siC/+&&&ÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/c:0b8.b9/e:0ÿÿÿª’ŒX2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/c:0b8.b9/e:0ÿÿÿª’ŒX2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿJJJ(((''''''((((((,,,((()))(((((()))±±±eee### %%%...QQQ!!!&&&ndP94c:/a8.Y5+`8.uD8l>4z^XjIAb9/a8/̾ºÛÒÐS0'J+$D(!M,%c9/sB7¤siK4/&&&ÿÿÿndP94c:/a8.Y5+`8.uD8l>4z^XjIAb9/a8/̾ºÛÒÐS0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿÿÿÿndP94c:/a8.Y5+`8.uD8l>4z^XjIAb9/a8/̾ºÛÒÐS0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿNNN((()))(((%%%(((000,,,BBB333((((((„„„’’’"""(((///QQQ%%%&&&°{p`D?Z5+b9/a8.c:0pA5g<1ÿÿÿØÑÏź·Ç»¸ÚÑÏÿÿÿS0(Q/&J+$P.&[5,\5,¦tjU;6&&&ÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1ÿÿÿØÑÏź·Ç»¸ÚÑÏÿÿÿS0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1ÿÿÿØÑÏź·Ç»¸ÚÑÏÿÿÿS0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿWWW000%%%(((((()))...***±±±‘‘‘‚‚‚‘‘‘±±±"""!!!!!!%%%%%%RRR***&&&´{shJCR0'\5,c9/tC7c9/^7-ʽ¹Åº·Á¸µÇ»¸Æº·Åº·Z4+X4+V2)I*!D'!A& ÅŠ~Q83&&&ÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-ʽ¹Åº·Á¸µÇ»¸Æº·Åº·Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-ʽ¹Åº·Á¸µÇ»¸Æº·Åº·Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿWWW444"""%%%(((///((('''ƒƒƒ€€€‚‚‚%%%%%%###aaa(((&&&¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50&&&ÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿQQQ(((%%%"""(((...(((%%%%%%"""""""""!!!"""%%%'''"""aaa%%%&&&¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50&&&ÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿRRR(((###!!!############!!!%%%(((######)))%%%(((###ZZZ%%%&&&¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50&&&ÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿRRR###%%%&&&'''!!!!!!"""$$$)))///)))(((((($$$((('''QQQ%%%&&&«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:&&&ÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿTTTNNN###$$$''''''"""%%%(((,,,000---)))&&&&&&))))))***(((111777---&&&À…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83&&&ÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿ^^^WWW***000333,,,(((((((((((((((###---///,,,%%%######222(((&&&¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJ&&&ÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿUUUfffwwwuuullleeecccpppccc^^^^^^RRRNNNTTTNNNBBB777888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'&&&ÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿ///$$$&&&N734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$&&&ÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿ'''```RRRQQQRRRaaaaaa```SSSKKKAAA>>>>>>\\\^^^UUUaaa&&&`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#&&&ÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿ///###%%%((("""""""""'''///,,,((()))))))))'''######aaa&&&yUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!&&&ÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿ<<<###***&&&""" $$$'''&&&***///---&&&###"""''',,,```&&&£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!&&&ÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿPPP###%%%$$$%%%!!!!!!!!!$$$---///,,,)))"""%%%)))RRR&&&¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-&&&ÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿPPP((()))((((((%%%!!!""""""$$$))),,,///***$$$###(((,,,QQQ&&&¢phZ@:_8.b9/R/&N-%_8.[5,Z5+\A:Štnx]VY4+c:0rB6e;0b8._8.c:0uD8¦tj+&&&ÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+\A:Štnx]VY4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+\A:Štnx]VY4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿPPP---((((((!!! (((%%%%%%---QQQAAA%%%)))///***(((((()))000RRR&&&°zpW>9V2*W1)I+#P/&T0(b9.–ztÿÿÿÿÿÿÿÿÿź·\5,d:0e:0j>3m?5b9/pA6ÅŠ~&&&&ÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.–ztÿÿÿÿÿÿÿÿÿź·\5,d:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.–ztÿÿÿÿÿÿÿÿÿź·\5,d:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿVVV,,,######!!!"""(((UUU±±±±±±±±±%%%)))))),,,---(((...aaa&&&±|qP94]6,O/'M,$R0'R0'kIBÿÿÿ;»^7-‹uoÿÿÿfG@^6-a9/e:0b:0Y4+`7.ÅŠ~*&&&ÿÿÿ±|qP94]6,O/'M,$R0'R0'kIBÿÿÿ;»^7-‹uoÿÿÿfG@^6-a9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿÿÿÿ±|qP94]6,O/'M,$R0'R0'kIBÿÿÿ;»^7-‹uoÿÿÿfG@^6-a9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿWWW(((&&&!!!""""""333±±±„„„'''QQQ±±±222&&&((())))))%%%'''aaa&&&±{pL61b9/U1(E(!L,%U1)˜|uÿÿÿWLc:/\6-ÿÿÿŒuoV1)k>3Z4+_6,X2*[5,³}r7'#&&&ÿÿÿ±{pL61b9/U1(E(!L,%U1)˜|uÿÿÿWLc:/\6-ÿÿÿŒuoV1)k>3Z4+_6,X2*[5,³}r7'#ÿÿÿÿÿÿ±{pL61b9/U1(E(!L,%U1)˜|uÿÿÿWLc:/\6-ÿÿÿŒuoV1)k>3Z4+_6,X2*[5,³}r7'#ÿÿÿWWW%%%(((######VVV±±±===)))&&&±±±QQQ###,,,%%%&&&###%%%XXX&&&ŸndE1-b9/T1(N-&L,%Y3+¿ª¥ÿÿÿ̾ºj=2—|uÿÿÿy]WT1(^6-^7-Y3*a8.h=2¤siE0,&&&ÿÿÿŸndE1-b9/T1(N-&L,%Y3+¿ª¥ÿÿÿ̾ºj=2—|uÿÿÿy]WT1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿÿÿÿŸndE1-b9/T1(N-&L,%Y3+¿ª¥ÿÿÿ̾ºj=2—|uÿÿÿy]WT1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿNNN###(((### $$$vvv±±±„„„+++VVV±±±AAA###&&&'''$$$(((+++QQQ"""&&&–i_E1-X3*S0(]5,]6-Y3*¼©¤ÿÿÿîéèÿÿÿÿÿÿ˽º`8.W3*O.&N-&R0'Y5+tC7¤siM50&&&ÿÿÿ–i_E1-X3*S0(]5,]6-Y3*¼©¤ÿÿÿîéèÿÿÿÿÿÿ˽º`8.W3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿÿÿÿ–i_E1-X3*S0(]5,]6-Y3*¼©¤ÿÿÿîéèÿÿÿÿÿÿ˽º`8.W3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿJJJ###$$$"""%%%&&&$$$uuu±±±¢¢¢±±±±±±ƒƒƒ((($$$!!! """%%%///QQQ%%%&&&–i_O94]7-_7.b9/b9/j>3—{tÿÿÿ„d\–{t‡e]j=2f;0X2*E)!D(!N-&[5+qA5¤siC/+&&&ÿÿÿ–i_O94]7-_7.b9/b9/j>3—{tÿÿÿ„d\–{t‡e]j=2f;0X2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿÿÿÿ–i_O94]7-_7.b9/b9/j>3—{tÿÿÿ„d\–{t‡e]j=2f;0X2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿJJJ(((''''''((((((,,,UUU±±±FFFUUUGGG+++***### %%%...QQQ!!!&&&ndP94c:/a8.Y5+`8.uD8l>4ìèçìèçb9/a8/f;1_7-S0'J+$D(!M,%c9/sB7¤siK4/&&&ÿÿÿndP94c:/a8.Y5+`8.uD8l>4ìèçìèçb9/a8/f;1_7-S0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿÿÿÿndP94c:/a8.Y5+`8.uD8l>4ìèçìèçb9/a8/f;1_7-S0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿNNN((()))(((%%%(((000,,,¡¡¡¡¡¡((((((***'''"""(((///QQQ%%%&&&°{p`D?Z5+b9/a8.c:0pA5g<1b[ëçæëççwqÈ»¸jJBS0(Q/&J+$P.&[5,\5,¦tjU;6&&&ÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1b[ëçæëççwqÈ»¸jJBS0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1b[ëçæëççwqÈ»¸jJBS0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿWWW000%%%(((((()))...***EEE      SSS‚‚‚444"""!!!!!!%%%%%%RRR***&&&´{shJCR0'\5,c9/tC7c9/^7-`8.cF>Á¸µÿÿÿÿÿÿŒupZ4+X4+V2)I*!D'!A& ÅŠ~Q83&&&ÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-`8.cF>Á¸µÿÿÿÿÿÿŒupZ4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-`8.cF>Á¸µÿÿÿÿÿÿŒupZ4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿWWW444"""%%%(((///((('''(((111€€€±±±±±±RRR%%%%%%###aaa(((&&&¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50&&&ÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿQQQ(((%%%"""(((...(((%%%%%%"""""""""!!!"""%%%'''"""aaa%%%&&&¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50&&&ÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿRRR(((###!!!############!!!%%%(((######)))%%%(((###ZZZ%%%&&&¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50&&&ÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿRRR###%%%&&&'''!!!!!!"""$$$)))///)))(((((($$$((('''QQQ%%%&&&«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:&&&ÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿTTTNNN###$$$''''''"""%%%(((,,,000---)))&&&&&&))))))***(((111777---&&&À…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83&&&ÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿ^^^WWW***000333,,,(((((((((((((((###---///,,,%%%######222(((&&&¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJ&&&ÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿUUUfffwwwuuullleeecccpppccc^^^^^^RRRNNNTTTNNNBBB777888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'&&&ÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿ///$$$&&&N734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$&&&ÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿ'''```RRRQQQRRRaaaaaa```SSSKKKAAA>>>>>>\\\^^^UUUaaa&&&`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#&&&ÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿ///###%%%((("""""""""'''///,,,((()))))))))'''######aaa&&&yUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!&&&ÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿ<<<###***&&&""" $$$'''&&&***///---&&&###"""''',,,```&&&£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!&&&ÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿPPP###%%%$$$%%%!!!!!!!!!$$$---///,,,)))"""%%%)))RRR&&&¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-&&&ÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿPPP((()))((((((%%%!!!""""""$$$))),,,///***$$$###(((,,,QQQ&&&¢phZ@:_8.b9/R/&N-%_8.[5,Z5+pYSŠtnŒuokJBc:0rB6e;0b8._8.c:0uD8¦tj+&&&ÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+pYSŠtnŒuokJBc:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+pYSŠtnŒuokJBc:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿPPP---((((((!!! (((%%%%%%>>>QQQQQQ444)))///***(((((()))000RRR&&&°zpW>9V2*W1)I+#P/&T0(b9.ÜÓÐÿÿÿÿÿÿÿÿÿÿÿÿ’xrd:0e:0j>3m?5b9/pA6ÅŠ~&&&&ÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.ÜÓÐÿÿÿÿÿÿÿÿÿÿÿÿ’xrd:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.ÜÓÐÿÿÿÿÿÿÿÿÿÿÿÿ’xrd:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿVVV,,,######!!!"""(((’’’±±±±±±±±±±±±TTT)))))),,,---(((...aaa&&&±|qP94]6,O/'M,$R0'R0'Y2+ßÔÒ«“^7-Q0'ź·ÿÿÿpLDa9/e:0b:0Y4+`7.ÅŠ~*&&&ÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+ßÔÒ«“^7-Q0'ź·ÿÿÿpLDa9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+ßÔÒ«“^7-Q0'ź·ÿÿÿpLDa9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿWWW(((&&&!!!""""""$$$“““fff'''!!!±±±555((())))))%%%'''aaa&&&±{pL61b9/U1(E(!L,%U1)d:0e:0qB6c:/\6-S0(ÿÿÿŽvpk>3Z4+_6,X2*[5,³}r7'#&&&ÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0e:0qB6c:/\6-S0(ÿÿÿŽvpk>3Z4+_6,X2*[5,³}r7'#ÿÿÿÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0e:0qB6c:/\6-S0(ÿÿÿŽvpk>3Z4+_6,X2*[5,³}r7'#ÿÿÿWWW%%%(((######))))))///)))&&&"""±±±RRR,,,%%%&&&###%%%XXX&&&ŸndE1-b9/T1(N-&L,%Y3+oA5d:0f;1j=2c:0pMDÿÿÿvp^6-^7-Y3*a8.h=2¤siE0,&&&ÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5d:0f;1j=2c:0pMDÿÿÿvp^6-^7-Y3*a8.h=2¤siE0,ÿÿÿÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5d:0f;1j=2c:0pMDÿÿÿvp^6-^7-Y3*a8.h=2¤siE0,ÿÿÿNNN###(((### $$$...)))***+++)))666±±±RRR&&&'''$$$(((+++QQQ"""&&&–i_E1-X3*S0(]5,]6-Y3*j>3“lcÿÿÿ»§¢xÜÓÑíèçW3*O.&N-&R0'Y5+tC7¤siM50&&&ÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3“lcÿÿÿ»§¢xÜÓÑíèçW3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3“lcÿÿÿ»§¢xÜÓÑíèçW3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿJJJ###$$$"""%%%&&&$$$,,,LLL±±±tttYYY’’’¡¡¡$$$!!! """%%%///QQQ%%%&&&–i_O94]7-_7.b9/b9/j>3c9/—|uÿÿÿíèçÿÿÿÞÔÑwQGX2*E)!D(!N-&[5+qA5¤siC/+&&&ÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/—|uÿÿÿíèçÿÿÿÞÔÑwQGX2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/—|uÿÿÿíèçÿÿÿÞÔÑwQGX2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿJJJ(((''''''((((((,,,(((VVV±±±¡¡¡±±±“““999### %%%...QQQ!!!&&&ndP94c:/a8.Y5+`8.uD8l>4vpÿÿÿb9/a8/f;1_7-S0'J+$D(!M,%c9/sB7¤siK4/&&&ÿÿÿndP94c:/a8.Y5+`8.uD8l>4vpÿÿÿb9/a8/f;1_7-S0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿÿÿÿndP94c:/a8.Y5+`8.uD8l>4vpÿÿÿb9/a8/f;1_7-S0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿNNN((()))(((%%%(((000,,,RRR±±±((((((***'''"""(((///QQQ%%%&&&°{p`D?Z5+b9/a8.c:0pA5g<1“ysÿÿÿź·Ç»¸È»¸xrS0(Q/&J+$P.&[5,\5,¦tjU;6&&&ÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1“ysÿÿÿź·Ç»¸È»¸xrS0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1“ysÿÿÿź·Ç»¸È»¸xrS0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿWWW000%%%(((((()))...***UUU±±±‚‚‚‚‚‚SSS"""!!!!!!%%%%%%RRR***&&&´{shJCR0'\5,c9/tC7c9/^7-ƒd\ź·Á¸µÇ»¸Æº·ŸŒ‡Z4+X4+V2)I*!D'!A& ÅŠ~Q83&&&ÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-ƒd\ź·Á¸µÇ»¸Æº·ŸŒ‡Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-ƒd\ź·Á¸µÇ»¸Æº·ŸŒ‡Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿWWW444"""%%%(((///((('''FFF€€€‚‚‚aaa%%%%%%###aaa(((&&&¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50&&&ÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿQQQ(((%%%"""(((...(((%%%%%%"""""""""!!!"""%%%'''"""aaa%%%&&&¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50&&&ÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿRRR(((###!!!############!!!%%%(((######)))%%%(((###ZZZ%%%&&&¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50&&&ÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿRRR###%%%&&&'''!!!!!!"""$$$)))///)))(((((($$$((('''QQQ%%%&&&«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:&&&ÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿTTTNNN###$$$''''''"""%%%(((,,,000---)))&&&&&&))))))***(((111777---&&&À…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83&&&ÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿ^^^WWW***000333,,,(((((((((((((((###---///,,,%%%######222(((&&&¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJ&&&ÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿUUUfffwwwuuullleeecccpppccc^^^^^^RRRNNNTTTNNNBBB777888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'&&&ÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿ///$$$&&&N734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$&&&ÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿ'''```RRRQQQRRRaaaaaa```SSSKKKAAA>>>>>>\\\^^^UUUaaa&&&`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#&&&ÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿ///###%%%((("""""""""'''///,,,((()))))))))'''######aaa&&&yUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!&&&ÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿ<<<###***&&&""" $$$'''&&&***///---&&&###"""''',,,```&&&£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!&&&ÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿPPP###%%%$$$%%%!!!!!!!!!$$$---///,,,)))"""%%%)))RRR&&&¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-&&&ÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿPPP((()))((((((%%%!!!""""""$$$))),,,///***$$$###(((,,,QQQ&&&¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+&&&ÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿPPP---((((((!!! (((%%%%%%!!!"""%%%)))///***(((((()))000RRR&&&°zpW>9V2*W1)I+#P/&T0(b9.a8.·¥¡ÿÿÿÿÿÿëçæ\5,d:0e:0j>3m?5b9/pA6ÅŠ~&&&&ÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.a8.·¥¡ÿÿÿÿÿÿëçæ\5,d:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.a8.·¥¡ÿÿÿÿÿÿëçæ\5,d:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿVVV,,,######!!!"""((((((sss±±±±±±   %%%)))))),,,---(((...aaa&&&±|qP94]6,O/'M,$R0'R0'Y2+n?4yRI”zsÿÿÿ±¢žS0(^6-a9/e:0b:0Y4+`7.ÅŠ~*&&&ÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+n?4yRI”zsÿÿÿ±¢žS0(^6-a9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+n?4yRI”zsÿÿÿ±¢žS0(^6-a9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿWWW(((&&&!!!""""""$$$,,,:::UUU±±±ppp"""&&&((())))))%%%'''aaa&&&±{pL61b9/U1(E(!L,%U1)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿR0'V1)k>3Z4+_6,X2*[5,³}r7'#&&&ÿÿÿ±{pL61b9/U1(E(!L,%U1)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿR0'V1)k>3Z4+_6,X2*[5,³}r7'#ÿÿÿÿÿÿ±{pL61b9/U1(E(!L,%U1)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿR0'V1)k>3Z4+_6,X2*[5,³}r7'#ÿÿÿWWW%%%(((######±±±±±±±±±±±±±±±±±±"""###,,,%%%&&&###%%%XXX&&&ŸndE1-b9/T1(N-&L,%Y3+ßÕÒÿÿÿ™|vœ~vÿÿÿ·¦¡S0(T1(^6-^7-Y3*a8.h=2¤siE0,&&&ÿÿÿŸndE1-b9/T1(N-&L,%Y3+ßÕÒÿÿÿ™|vœ~vÿÿÿ·¦¡S0(T1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿÿÿÿŸndE1-b9/T1(N-&L,%Y3+ßÕÒÿÿÿ™|vœ~vÿÿÿ·¦¡S0(T1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿNNN###(((### $$$”””±±±WWWWWW±±±sss"""###&&&'''$$$(((+++QQQ"""&&&–i_E1-X3*S0(]5,]6-Y3*zSIÿÿÿ½©¤f;0ÿÿÿ–{t`8.W3*O.&N-&R0'Y5+tC7¤siM50&&&ÿÿÿ–i_E1-X3*S0(]5,]6-Y3*zSIÿÿÿ½©¤f;0ÿÿÿ–{t`8.W3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿÿÿÿ–i_E1-X3*S0(]5,]6-Y3*zSIÿÿÿ½©¤f;0ÿÿÿ–{t`8.W3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿJJJ###$$$"""%%%&&&$$$:::±±±uuu***±±±UUU((($$$!!! """%%%///QQQ%%%&&&–i_O94]7-_7.b9/b9/j>3c9/¹§¢ÿÿÿsOFÿÿÿœ~vf;0X2*E)!D(!N-&[5+qA5¤siC/+&&&ÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/¹§¢ÿÿÿsOFÿÿÿœ~vf;0X2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/¹§¢ÿÿÿsOFÿÿÿœ~vf;0X2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿJJJ(((''''''((((((,,,(((ttt±±±888±±±WWW***### %%%...QQQ!!!&&&ndP94c:/a8.Y5+`8.uD8l>4T1)ìèçÜÓÑÿÿÿ™|v_7-S0'J+$D(!M,%c9/sB7¤siK4/&&&ÿÿÿndP94c:/a8.Y5+`8.uD8l>4T1)ìèçÜÓÑÿÿÿ™|v_7-S0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿÿÿÿndP94c:/a8.Y5+`8.uD8l>4T1)ìèçÜÓÑÿÿÿ™|v_7-S0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿNNN((()))(((%%%(((000,,,###¡¡¡’’’±±±WWW'''"""(((///QQQ%%%&&&°{p`D?Z5+b9/a8.c:0pA5g<1]6-ŒuoÿÿÿÿÿÿwqX4+S0(Q/&J+$P.&[5,\5,¦tjU;6&&&ÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1]6-ŒuoÿÿÿÿÿÿwqX4+S0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1]6-ŒuoÿÿÿÿÿÿwqX4+S0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿWWW000%%%(((((()))...***&&&QQQ±±±±±±SSS%%%"""!!!!!!%%%%%%RRR***&&&´{shJCR0'\5,c9/tC7c9/^7-`8.P/&¬ŸœÇ»¸z^WR0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83&&&ÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-`8.P/&¬ŸœÇ»¸z^WR0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-`8.P/&¬ŸœÇ»¸z^WR0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿWWW444"""%%%(((///((('''(((!!!nnn‚‚‚AAA"""%%%%%%###aaa(((&&&¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50&&&ÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿQQQ(((%%%"""(((...(((%%%%%%"""""""""!!!"""%%%'''"""aaa%%%&&&¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50&&&ÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿRRR(((###!!!############!!!%%%(((######)))%%%(((###ZZZ%%%&&&¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50&&&ÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿRRR###%%%&&&'''!!!!!!"""$$$)))///)))(((((($$$((('''QQQ%%%&&&«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:&&&ÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿTTTNNN###$$$''''''"""%%%(((,,,000---)))&&&&&&))))))***(((111777---&&&À…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83&&&ÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿ^^^WWW***000333,,,(((((((((((((((###---///,,,%%%######222(((&&&¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJ&&&ÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿUUUfffwwwuuullleeecccpppccc^^^^^^RRRNNNTTTNNNBBB777888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'&&&ÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿ///$$$&&&N734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$&&&ÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿ'''```RRRQQQRRRaaaaaa```SSSKKKAAA>>>>>>\\\^^^UUUaaa&&&`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#&&&ÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿ///###%%%((("""""""""'''///,,,((()))))))))'''######aaa&&&yUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!&&&ÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿ<<<###***&&&""" $$$'''&&&***///---&&&###"""''',,,```&&&£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!&&&ÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿPPP###%%%$$$%%%!!!!!!!!!$$$---///,,,)))"""%%%)))RRR&&&¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-&&&ÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿPPP((()))((((((%%%!!!""""""$$$))),,,///***$$$###(((,,,QQQ&&&¢phZ@:_8.b9/R/&N-%_8.[5,Z5+…qlŠtnŒuokJBc:0rB6e;0b8._8.c:0uD8¦tj+&&&ÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+…qlŠtnŒuokJBc:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+…qlŠtnŒuokJBc:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿPPP---((((((!!! (((%%%%%%NNNQQQQQQ444)))///***(((((()))000RRR&&&°zpW>9V2*W1)I+#P/&T0(b9.íèçÿÿÿÿÿÿÿÿÿÿÿÿ’xrd:0e:0j>3m?5b9/pA6ÅŠ~&&&&ÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.íèçÿÿÿÿÿÿÿÿÿÿÿÿ’xrd:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.íèçÿÿÿÿÿÿÿÿÿÿÿÿ’xrd:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿVVV,,,######!!!"""(((¡¡¡±±±±±±±±±±±±TTT)))))),,,---(((...aaa&&&±|qP94]6,O/'M,$R0'R0'Y2+¾©¤‰h_^7-dG?ź·ÿÿÿpLDa9/e:0b:0Y4+`7.ÅŠ~*&&&ÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+¾©¤‰h_^7-dG?ź·ÿÿÿpLDa9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+¾©¤‰h_^7-dG?ź·ÿÿÿpLDa9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿWWW(((&&&!!!""""""$$$uuuHHH'''111±±±555((())))))%%%'''aaa&&&±{pL61b9/U1(E(!L,%U1)d:0e:0qB6c:/\6-S0(ÿÿÿŽvpk>3Z4+_6,X2*[5,³}r7'#&&&ÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0e:0qB6c:/\6-S0(ÿÿÿŽvpk>3Z4+_6,X2*[5,³}r7'#ÿÿÿÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0e:0qB6c:/\6-S0(ÿÿÿŽvpk>3Z4+_6,X2*[5,³}r7'#ÿÿÿWWW%%%(((######))))))///)))&&&"""±±±RRR,,,%%%&&&###%%%XXX&&&ŸndE1-b9/T1(N-&L,%Y3+oA5d:0f;1j=2c:0ɼ¹ÿÿÿgH@^6-^7-Y3*a8.h=2¤siE0,&&&ÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5d:0f;1j=2c:0ɼ¹ÿÿÿgH@^6-^7-Y3*a8.h=2¤siE0,ÿÿÿÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5d:0f;1j=2c:0ɼ¹ÿÿÿgH@^6-^7-Y3*a8.h=2¤siE0,ÿÿÿNNN###(((### $$$...)))***+++)))‚‚‚±±±333&&&'''$$$(((+++QQQ"""&&&–i_E1-X3*S0(]5,]6-Y3*j>3tC7k>3îéçÿÿÿÿÿÿƒd\W3*O.&N-&R0'Y5+tC7¤siM50&&&ÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3tC7k>3îéçÿÿÿÿÿÿƒd\W3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3tC7k>3îéçÿÿÿÿÿÿƒd\W3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿJJJ###$$$"""%%%&&&$$$,,,///,,,¡¡¡±±±±±±FFF$$$!!! """%%%///QQQ%%%&&&–i_O94]7-_7.b9/b9/j>3c9/c:0b8.„d]˜|uîéè̾ºX2*E)!D(!N-&[5+qA5¤siC/+&&&ÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/c:0b8.„d]˜|uîéè̾ºX2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/c:0b8.„d]˜|uîéè̾ºX2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿJJJ(((''''''((((((,,,((()))(((FFFVVV¢¢¢„„„### %%%...QQQ!!!&&&ndP94c:/a8.Y5+`8.uD8l>4gH@jIAb9/a8/™|vÿÿÿS0'J+$D(!M,%c9/sB7¤siK4/&&&ÿÿÿndP94c:/a8.Y5+`8.uD8l>4gH@jIAb9/a8/™|vÿÿÿS0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿÿÿÿndP94c:/a8.Y5+`8.uD8l>4gH@jIAb9/a8/™|vÿÿÿS0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿNNN((()))(((%%%(((000,,,333333((((((WWW±±±"""(((///QQQ%%%&&&°{p`D?Z5+b9/a8.c:0pA5g<1ɼ¹ëçæŸŒ‡wqìèçÚÒÐS0(Q/&J+$P.&[5,\5,¦tjU;6&&&ÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1ɼ¹ëçæŸŒ‡wqìèçÚÒÐS0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1ɼ¹ëçæŸŒ‡wqìèçÚÒÐS0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿWWW000%%%(((((()))...***‚‚‚   aaaSSS¡¡¡’’’"""!!!!!!%%%%%%RRR***&&&´{shJCR0'\5,c9/tC7c9/^7-qNE±¢žÿÿÿÿÿÿÙÑÏeG@Z4+X4+V2)I*!D'!A& ÅŠ~Q83&&&ÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-qNE±¢žÿÿÿÿÿÿÙÑÏeG@Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-qNE±¢žÿÿÿÿÿÿÙÑÏeG@Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿWWW444"""%%%(((///((('''777ppp±±±±±±‘‘‘222%%%%%%###aaa(((&&&¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50&&&ÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿQQQ(((%%%"""(((...(((%%%%%%"""""""""!!!"""%%%'''"""aaa%%%&&&¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50&&&ÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿRRR(((###!!!############!!!%%%(((######)))%%%(((###ZZZ%%%&&&¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50&&&ÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿRRR###%%%&&&'''!!!!!!"""$$$)))///)))(((((($$$((('''QQQ%%%&&&«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:&&&ÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿTTTNNN###$$$''''''"""%%%(((,,,000---)))&&&&&&))))))***(((111777---&&&À…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83&&&ÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿ^^^WWW***000333,,,(((((((((((((((###---///,,,%%%######222(((&&&¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJ&&&ÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿUUUfffwwwuuullleeecccpppccc^^^^^^RRRNNNTTTNNNBBB777888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'&&&ÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿ///$$$&&&N734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$&&&ÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿ'''```RRRQQQRRRaaaaaa```SSSKKKAAA>>>>>>\\\^^^UUUaaa&&&`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#&&&ÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿ///###%%%((("""""""""'''///,,,((()))))))))'''######aaa&&&yUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!&&&ÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿ<<<###***&&&""" $$$'''&&&***///---&&&###"""''',,,```&&&£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!&&&ÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿPPP###%%%$$$%%%!!!!!!!!!$$$---///,,,)))"""%%%)))RRR&&&¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-&&&ÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿPPP((()))((((((%%%!!!""""""$$$))),,,///***$$$###(((,,,QQQ&&&¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+&&&ÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿPPP---((((((!!! (((%%%%%%!!!"""%%%)))///***(((((()))000RRR&&&°zpW>9V2*W1)I+#P/&T0(–{tÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿd:0e:0j>3m?5b9/pA6ÅŠ~&&&&ÿÿÿ°zpW>9V2*W1)I+#P/&T0(–{tÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿd:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿÿÿÿ°zpW>9V2*W1)I+#P/&T0(–{tÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿd:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿVVV,,,######!!!"""UUU±±±±±±±±±±±±±±±±±±)))))),,,---(((...aaa&&&±|qP94]6,O/'M,$R0'R0'}_Zïéèÿÿÿ¥Š‹uožŒ‡ÿÿÿ^6-a9/e:0b:0Y4+`7.ÅŠ~*&&&ÿÿÿ±|qP94]6,O/'M,$R0'R0'}_Zïéèÿÿÿ¥Š‹uožŒ‡ÿÿÿ^6-a9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿÿÿÿ±|qP94]6,O/'M,$R0'R0'}_Zïéèÿÿÿ¥Š‹uožŒ‡ÿÿÿ^6-a9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿWWW(((&&&!!!""""""CCC¢¢¢±±±dddQQQaaa±±±&&&((())))))%%%'''aaa&&&±{pL61b9/U1(E(!L,%U1)d:0vPGïêèíéç’ysS0(R0'V1)k>3Z4+_6,X2*[5,³}r7'#&&&ÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0vPGïêèíéç’ysS0(R0'V1)k>3Z4+_6,X2*[5,³}r7'#ÿÿÿÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0vPGïêèíéç’ysS0(R0'V1)k>3Z4+_6,X2*[5,³}r7'#ÿÿÿWWW%%%(((######)))888¢¢¢¡¡¡TTT""""""###,,,%%%&&&###%%%XXX&&&ŸndE1-b9/T1(N-&L,%Y3+oA5d:0wQH;»ÿÿÿ”zsS0(T1(^6-^7-Y3*a8.h=2¤siE0,&&&ÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5d:0wQH;»ÿÿÿ”zsS0(T1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5d:0wQH;»ÿÿÿ”zsS0(T1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿNNN###(((### $$$...)))999„„„±±±UUU"""###&&&'''$$$(((+++QQQ"""&&&–i_E1-X3*S0(]5,]6-Y3*j>3tC7k>3f;0ο»ÿÿÿ•ztW3*O.&N-&R0'Y5+tC7¤siM50&&&ÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3tC7k>3f;0ο»ÿÿÿ•ztW3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3tC7k>3f;0ο»ÿÿÿ•ztW3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿJJJ###$$$"""%%%&&&$$$,,,///,,,***………±±±UUU$$$!!! """%%%///QQQ%%%&&&–i_O94]7-_7.b9/b9/j>3c9/c:0b8.b9/e:0;»îéçX2*E)!D(!N-&[5+qA5¤siC/+&&&ÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/c:0b8.b9/e:0;»îéçX2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/c:0b8.b9/e:0;»îéçX2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿJJJ(((''''''((((((,,,((()))(((((()))„„„¡¡¡### %%%...QQQ!!!&&&ndP94c:/a8.Y5+`8.uD8l>4ìè碈b9/a8/ª’ŒÿÿÿS0'J+$D(!M,%c9/sB7¤siK4/&&&ÿÿÿndP94c:/a8.Y5+`8.uD8l>4ìè碈b9/a8/ª’ŒÿÿÿS0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿÿÿÿndP94c:/a8.Y5+`8.uD8l>4ìè碈b9/a8/ª’ŒÿÿÿS0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿNNN((()))(((%%%(((000,,,¡¡¡bbb((((((eee±±±"""(((///QQQ%%%&&&°{p`D?Z5+b9/a8.c:0pA5g<1·¥¡ÿÿÿŸŒ‡¡ˆìèç´¤ S0(Q/&J+$P.&[5,\5,¦tjU;6&&&ÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1·¥¡ÿÿÿŸŒ‡¡ˆìèç´¤ S0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1·¥¡ÿÿÿŸŒ‡¡ˆìèç´¤ S0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿWWW000%%%(((((()))...***sss±±±aaabbb¡¡¡rrr"""!!!!!!%%%%%%RRR***&&&´{shJCR0'\5,c9/tC7c9/^7-qNE±¢žÿÿÿÿÿÿ³£ŸR0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83&&&ÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-qNE±¢žÿÿÿÿÿÿ³£ŸR0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-qNE±¢žÿÿÿÿÿÿ³£ŸR0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿWWW444"""%%%(((///((('''777ppp±±±±±±qqq"""%%%%%%###aaa(((&&&¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50&&&ÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿQQQ(((%%%"""(((...(((%%%%%%"""""""""!!!"""%%%'''"""aaa%%%&&&¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50&&&ÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿRRR(((###!!!############!!!%%%(((######)))%%%(((###ZZZ%%%&&&¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50&&&ÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿRRR###%%%&&&'''!!!!!!"""$$$)))///)))(((((($$$((('''QQQ%%%&&&«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:&&&ÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿTTTNNN###$$$''''''"""%%%(((,,,000---)))&&&&&&))))))***(((111777---&&&À…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83&&&ÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿ^^^WWW***000333,,,(((((((((((((((###---///,,,%%%######222(((&&&¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJ&&&ÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿUUUfffwwwuuullleeecccpppccc^^^^^^RRRNNNTTTNNNBBB777888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'&&&ÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿÿÿÿ`C>K3/@-)7'#6'#8'#<+'7'$4%!2# 6&#<+&<+&3$!:)%=+&<+'ÿÿÿ///$$$&&&N734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$&&&ÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿÿÿÿN734%"ˆ|¦tj¤si¥tjÅŠ~ÅŠ~ˆ|¨vl—ja‚\S~XP}XOº‚w¿…z«xmÅŠ~<*&8'$ÿÿÿ'''```RRRQQQRRRaaaaaa```SSSKKKAAA>>>>>>\\\^^^UUUaaa&&&`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#&&&ÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿÿÿÿ`D=I3.L51a8.R0'D(!K,$R0'S0'^7.qB6k>3b9/d:0c:0c:0a7.U1)U1)ÅŠ~0"8&#ÿÿÿ///###%%%((("""""""""'''///,,,((()))))))))'''######aaa&&&yUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!&&&ÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿÿÿÿyUME1-i<1^6-R0(L,$G)"N-%I+#X3+^7-_6-g<1tC7n?5^6-V2)S0(_7.l?4ˆ|/!ÿÿÿ<<<###***&&&""" $$$'''&&&***///---&&&###"""''',,,```&&&£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!&&&ÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿÿÿÿ£qhG2.Y4+X3+]5,P/&J,#I)#Q0'Q0'J+#X3*p@5tC7k>3e:/S0'N,%X4+b:0¥tj-!ÿÿÿPPP###%%%$$$%%%!!!!!!!!!$$$---///,,,)))"""%%%)))RRR&&&¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-&&&ÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿÿÿÿ¢qgP94c:0b9/`8.\5,Q/'R0(S0(J,$G*"X3+c:0k>3tC7f;1X3+V2)`8/k>3¤si-ÿÿÿPPP((()))((((((%%%!!!""""""$$$))),,,///***$$$###(((,,,QQQ&&&¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+&&&ÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿÿÿÿ¢phZ@:_8.b9/R/&N-%_8.[5,Z5+H*"P/&R0'Y4+c:0rB6e;0b8._8.c:0uD8¦tj+ÿÿÿPPP---((((((!!! (((%%%%%%!!!"""%%%)))///***(((((()))000RRR&&&°zpW>9V2*W1)I+#P/&T0(b9.ʽ¹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿd:0e:0j>3m?5b9/pA6ÅŠ~&&&&ÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.ʽ¹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿd:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿÿÿÿ°zpW>9V2*W1)I+#P/&T0(b9.ʽ¹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿd:0e:0j>3m?5b9/pA6ÅŠ~&ÿÿÿVVV,,,######!!!"""(((ƒƒƒ±±±±±±±±±±±±±±±)))))),,,---(((...aaa&&&±|qP94]6,O/'M,$R0'R0'Y2+Žiaš~v·¦¡ÿÿÿ‹uoŒup^6-a9/e:0b:0Y4+`7.ÅŠ~*&&&ÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+Žiaš~v·¦¡ÿÿÿ‹uoŒup^6-a9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿÿÿÿ±|qP94]6,O/'M,$R0'R0'Y2+Žiaš~v·¦¡ÿÿÿ‹uoŒup^6-a9/e:0b:0Y4+`7.ÅŠ~*ÿÿÿWWW(((&&&!!!""""""$$$JJJWWWsss±±±QQQRRR&&&((())))))%%%'''aaa&&&±{pL61b9/U1(E(!L,%U1)d:0e:0qB6—|tÿÿÿS0(R0'V1)k>3Z4+_6,X2*[5,³}r7'#&&&ÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0e:0qB6—|tÿÿÿS0(R0'V1)k>3Z4+_6,X2*[5,³}r7'#ÿÿÿÿÿÿ±{pL61b9/U1(E(!L,%U1)d:0e:0qB6—|tÿÿÿS0(R0'V1)k>3Z4+_6,X2*[5,³}r7'#ÿÿÿWWW%%%(((######))))))///VVV±±±""""""###,,,%%%&&&###%%%XXX&&&ŸndE1-b9/T1(N-&L,%Y3+oA5d:0f;1œ~vÿÿÿ^7-S0(T1(^6-^7-Y3*a8.h=2¤siE0,&&&ÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5d:0f;1œ~vÿÿÿ^7-S0(T1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿÿÿÿŸndE1-b9/T1(N-&L,%Y3+oA5d:0f;1œ~vÿÿÿ^7-S0(T1(^6-^7-Y3*a8.h=2¤siE0,ÿÿÿNNN###(((### $$$...)))***WWW±±±'''"""###&&&'''$$$(((+++QQQ"""&&&–i_E1-X3*S0(]5,]6-Y3*j>3tC7k>3™|uÿÿÿb9/`8.W3*O.&N-&R0'Y5+tC7¤siM50&&&ÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3tC7k>3™|uÿÿÿb9/`8.W3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿÿÿÿ–i_E1-X3*S0(]5,]6-Y3*j>3tC7k>3™|uÿÿÿb9/`8.W3*O.&N-&R0'Y5+tC7¤siM50ÿÿÿJJJ###$$$"""%%%&&&$$$,,,///,,,WWW±±±(((((($$$!!! """%%%///QQQ%%%&&&–i_O94]7-_7.b9/b9/j>3c9/c:0b8.–{tÿÿÿj=2f;0X2*E)!D(!N-&[5+qA5¤siC/+&&&ÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/c:0b8.–{tÿÿÿj=2f;0X2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿÿÿÿ–i_O94]7-_7.b9/b9/j>3c9/c:0b8.–{tÿÿÿj=2f;0X2*E)!D(!N-&[5+qA5¤siC/+ÿÿÿJJJ(((''''''((((((,,,((()))(((UUU±±±+++***### %%%...QQQ!!!&&&ndP94c:/a8.Y5+`8.uD8l>4z^X}`Y–{tÿÿÿf;1_7-S0'J+$D(!M,%c9/sB7¤siK4/&&&ÿÿÿndP94c:/a8.Y5+`8.uD8l>4z^X}`Y–{tÿÿÿf;1_7-S0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿÿÿÿndP94c:/a8.Y5+`8.uD8l>4z^X}`Y–{tÿÿÿf;1_7-S0'J+$D(!M,%c9/sB7¤siK4/ÿÿÿNNN((()))(((%%%(((000,,,BBBCCCUUU±±±***'''"""(((///QQQ%%%&&&°{p`D?Z5+b9/a8.c:0pA5g<1ɼ¹ÿÿÿÿÿÿÿÿÿY3*X4+S0(Q/&J+$P.&[5,\5,¦tjU;6&&&ÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1ɼ¹ÿÿÿÿÿÿÿÿÿY3*X4+S0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿÿÿÿ°{p`D?Z5+b9/a8.c:0pA5g<1ɼ¹ÿÿÿÿÿÿÿÿÿY3*X4+S0(Q/&J+$P.&[5,\5,¦tjU;6ÿÿÿWWW000%%%(((((()))...***‚‚‚±±±±±±±±±$$$%%%"""!!!!!!%%%%%%RRR***&&&´{shJCR0'\5,c9/tC7c9/^7-`8.Štn¬ŸœÚÑÐT1(R0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83&&&ÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-`8.Štn¬ŸœÚÑÐT1(R0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿÿÿÿ´{shJCR0'\5,c9/tC7c9/^7-`8.Štn¬ŸœÚÑÐT1(R0(Z4+X4+V2)I*!D'!A& ÅŠ~Q83ÿÿÿWWW444"""%%%(((///((('''(((QQQnnn‘‘‘###"""%%%%%%###aaa(((&&&¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50&&&ÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿÿÿÿ¥siP94]5,S0(a8/oA5b9/Y4+[5,S0'S0'R0'P.&S0'\4,\7-R0(J+$=$:!ÅŠ~L50ÿÿÿQQQ(((%%%"""(((...(((%%%%%%"""""""""!!!"""%%%'''"""aaa%%%&&&¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50&&&ÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿÿÿÿ¦tjO83T1(Q0'S1(W2)T1(T1(O.&Z4+a8.T1(U1)d:0[5+a8.V1)N,%:!:"µtK50ÿÿÿRRR(((###!!!############!!!%%%(((######)))%%%(((###ZZZ%%%&&&¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50&&&ÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿÿÿÿ¦tjE1-Y4+]6,^7-P/'O.&S0(X3*c:0rB6d:0b9/a8/X3*b9/_7-M,$D) K,$¥siK50ÿÿÿRRR###%%%&&&'''!!!!!!"""$$$)))///)))(((((($$$((('''QQQ%%%&&&«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:&&&ÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿÿÿÿ«wmndE1-X3*^7-^7-S0'[5,c9/i>2tD7m@4d:0]6-]6,d:0d:0f;0a8-dF@oNF[@:ÿÿÿTTTNNN###$$$''''''"""%%%(((,,,000---)))&&&&&&))))))***(((111777---&&&À…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83&&&ÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿÿÿÿÀ…y¯{oU=7aD?eHBW>9P94O94P94P94O83G3.[@;]B=X>9L61E1-E1-fGAP83ÿÿÿ^^^WWW***000333,,,(((((((((((((((###---///,,,%%%######222(((&&&¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJ&&&ÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿÿÿÿ¬xnÍ…ñ¨™í¦˜Ù˜‹ËŽ‚ÊŒäž‘ÉŒ€¾…z¾…z¦tkžofªwmžof„^UnNGrPJÿÿÿUUUfffwwwuuullleeecccpppccc^^^^^^RRRNNNTTTNNNBBB777888&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlgeneral-1.3.1/src/themes/default/fr_luc.bmp0000664000175000017500000000036612140770455015714 00000000000000BMö6(À  @-)Ö—‡2$"@-)Ö—‡2$"@-)Ù¡2$"@-)Ù¥—8(&@-)Ù¥—;*'@-)Ù§™6&"7'$@-)@-)7'$>,(@-)Ù§™Ù§™Ù˂Ӕ‡ÎƒÙ¢•@-)@-)@-)@-)@-)@-)@-)@-)lgeneral-1.3.1/src/themes/default/edit.wav0000664000175000017500000000434212140770455015404 00000000000000RIFFÙWAVEfmt "V"Vdataµ€}}€~{~€€~}~}~€~}€~~€|}€€~~~|~€€}}}}€~€€€}€€€~~~}~~~€~~|~€€}}€€€€}}€€}}~}€~~{~€€~~€~€}~€~€}}€‚€€€€~|€~}€‚~€{€€€€~~€€~~~€~}~}~€}€€|~€~}~~~~€~|~~€€}~~}}~~~~€€|z€~}~€||€}}}€€€}}~~€{~€~€}}€€€~€€€€€€~€~€€€|€€€€€}€‚€~}€~€€€}}~~€€€}}~~€€€~|}€€€€}{|~€€||€€}€‚~{}€€€~~€}€~€€~€~~€~€~~€€}{€}{€€~}€€~|€~~€€||}€~}€€}}€€€~~}€€~~€€}}€€~|~€~~~€}€€~~}€~€€~~~~~~€€€€€}{|€‚€~~~~€€€|~‚~|~€}€~}~€€€€€€€€€€€~€}€~€€}~€€}~€€~€€€€~~€€€€}~€€€€~€€|}€€|z€€~}€~|~€€‚‚}|y{€€{{|{|€|z}€€‚z‚z{€€~ƒ|z~€}{~€€€|z~€}~}|€€}{|~€€€}|~€€€€~}€€~~€€~~€}|€€}|€~€}€‚€~||€‚€€€}|€€~~}€€z{€€€€z~€€~€}€€€€€|~‚€}}€}~€~z~€€}||€}€ƒ€yy€|y€€€||zz€‚€€~z|€€€~}€€~~}€€{ƒ}}€}€€}€€€‚€|}}~€€‚~{€‚|}……ƒzw{ƒ††€|~zw„~‚€x~…‚}z~‚„~~|y|€„‡~|y}€~€~}{|†‰ƒ€~}|{}ƒ‰„}}z~€€€‚„€~~}€€~€……€€}{}€„„‚‚€|z|‚€‚†‚z{ƒ€{€‚ƒ€€„{}€}……{z{ƒƒ}€†…|v€…||ƒ„€~€€|{‚~€€€„€z~~}}€€€€~x|€~|z€‚€€||{€€~|€€€zy}€€|x~€y}‚€€}x|€€€€€~~~{z~€‚ƒ€}|y{||ƒ‚~|{€‚||{}€€~~€|xz„„{~|wx€‡€|~€{wz|€…†‚|w{{x|ƒ‚{{€zy~„z{€|yy€ƒ€||}z|~€€€~||}€€|~€€€€}yy|„€yxzz„…€}€}yxz‚„‚zwz|„ƒ~zwv~†……|uszƒƒ€†‡~wwy~‚‚€~~xx„ƒƒ|~yw…}ƒ‚~€€„‚yx}‚„…~ut|†ˆƒ‚†€vu~‡|‚€~€€yu~ˆ‡~{€€{uu€‚‚{zx|~zz‚…€wvsp{†„ˆŠ€xqpsy…‰ˆƒ|qlx„†‰ƒzwv{ƒ€‚yy€„‰‚||}€}€€€€……xrzƒ‡„‚‚€zy}„€‚}y|}|ƒ‰†ƒ€ysvy|†Ž‹ƒ{oioy‰ŽˆŠ‰zlnv€ƒ€†„|{|{{|~|{€…‰†y||yy…‰‡|w…wvŠ„€}†ƒ{tx„…~}ƒˆ‚xuw~€}€††ƒ{{|}€€€€|}ƒ„|x|ƒ‡‚…‡€xwtsv„”“†}€zfez™”Š€voow…Š…ƒ…€|xwyzz€ˆ‚ƒ‡€}}yv}‚€~‚†yt€‰}~~€„…„€yuv|‚„…ŒŠ}wsqx€‡ˆ€ztpmzŠŽˆ€|tip†|zyroz†‹ƒ}xwvsw{|€…ˆ†|vvtuz€‚„‰‰…xlhoz‰’‰ƒ{kciu„‡‰Žˆ~ot‰y‚‡†qqzzv{Œ•‡zszzv„nhx„‰‰ƒ~~ymipy„’†wv{{€‡†zznduŠ™›‡fQa€—¬¬Šhccc”ˆ€mmž“ze_Zs³ßÀs:&,Z¤Þæ¨>.ƒÍìÙˆ()…ÏØ±|M1Az´ØÄz2I–ÐØ²o5)Hy¢ÆÀŽhNAZŒ¶Ã¦qOK]x’¡ŸŠqfjy‚˜œldkxŽ˜†wqt€ˆƒ}{}€€€ƒ}yxz|~€ƒƒ€~€|xx‚‰ymit…‹“‡vgbt‰”“‡{len€‘•†zrrtu|‡ŽŠ€{qjv‚ŠŒ‰†~vsu|…‡†€toqx‰„}ups€‡†‰‚ummvŽ•|mlv„’‰vfdl‚šž’}e[h–£—|hbhyŽ››‰l]dxŸœ…fYcw—Šyihu„’”„oefu‰–“†yno|Œ“†s^_t‹–Ž‚vnr‰ƒ|mjv„Œˆuop{ˆ““Špko{Œ˜Œwihs“ˆ{rqt€’—‹zkccv“ “€rgjx‰˜˜ˆtghw‡“’‡tabrˆ™ž“}i_fy‘ž•odgv‹lgeneral-1.3.1/src/themes/default/font_status.bmp0000664000175000017500000023406612140770455017021 00000000000000BM686( 8œ œ ÿÿÿÿÿÿÿÿ************ÿÿ******************ÿÿ******ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÖÖÖÖÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕ ÿÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕ &&&***&&&&&&&&&***&&&***&&&v>b2f2R*&&&&&&²Ö²Ö†žj~ Rb Vf&&&&&&NRR:>B""" ÿÿÿ ÿÿÿ ××× ÿÿÿ ÿÿÿ ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ØØØ ÙÙÙÕÕÕ ÙÙÙ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÖÖÖ ÿÿÿ ÙÙÙÕÕÕ ÙÙÙÕÕÕ z***þþþþþþÒÒö¶¶öîîîþþþ&&&***²Z–JŽFf2J&.&&&***¾Þš¶br BN&&&&&&r~‚fffFJNFJN&&&******ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÕÕÕÕÕÕ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÕÕÕÕÕÕ òòòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÞÞÞÕÕÕÕÕÕ ÛÛÛÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿëëë ÕÕÕÕÕÕñññÿÿÿÿÿÿ ÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÕÕÕ ÕÕÕÕÕÕÞÞÞÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿøøø ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ×××ÕÕÕÕÕÕ ÞÞÞ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ïïï ÕÕÕÕÕÕÕÕÕÕÕÕ ÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ûûû ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕáááùùùÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ÷÷÷××× ÕÕÕÕÕÕÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿ ÿÿÿ áááÕÕÕÕÕÕÕÕÕ ÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ úúúÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ ÿÿÿ ÿÿÿ ÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ôôô ÕÕÕ ßßßòòòÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕ ÿÿÿ ÕÕÕ ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕáááùùùÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ222...222.........222.........222.........222.........ÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûû ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿãããÿÿÿÿÿÿÿÿÿãã㊊ŠÿÿÿãããÿÿÿÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ òòòÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿ ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøøø ÿÿÿ ïïï ÕÕÕÕÕÕÕÕÕÕÕÕ ÕÕÕÕÕÕÕÕÕÕÕÕ ÕÕÕÕÕÕÕÕÕÕÕÕ ÕÕÕÕÕÕÕÕÕÕÕÕ ÕÕÕÕÕÕÕÕÕÕÕÕ ÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ûûû ÿÿÿ ÿÿÿ ÿÿÿ÷÷÷××× ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕ áááÕÕÕÕÕÕÕÕÕ áááÕÕÕÕÕÕÕÕÕ áááÕÕÕÕÕÕÕÕÕ áááÕÕÕÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ zþn***òòöîîîFFæêîîîþþþ***&&&®V¾^šNŽFf2R****&&&ÚþžºZn BN******†’–Žššr~‚>FF"""R.6R.6***~BV*** ÕÕÕ ÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ñññ ÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÕÕÕÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿÕÕÕ ÕÕÕÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÖÖÖ ÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿ ÕÕÕ ÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕÿÿÿ ÿÿÿ ÿÿÿÿÿÿùùù ÕÕÕ ùùù ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ýýýÕÕÕ ÖÖÖ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÷÷÷ÕÕÕ ÕÕÕ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÛÛÛ ÕÕÕ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÕÕÕ ÕÕÕ ÕÕÕëëëÿÿÿÿÿÿ ÿÿÿ ÕÕÕÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÕÕÕ ÕÕÕ þþþ ÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÕÕÕÕÕÕ ÞÞÞ ÿÿÿÿÿÿÿÿÿÿÿÿííí ÖÖÖ ÕÕÕ ÿÿÿ ÿÿÿ ZZZRRRRRR:>B...jÎÊZ²®222RRR:>B...jÎÊZ²®222...Z²®Nšš......jÎÊZ²®222...Z²®Nšš......jÎÊZ²®222...Z²®Nšš......jÎÊZ²®222...Z²®Nšš...ÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿííí ÿÿÿÿÿÿŠŠŠããããã㊊ŠÿÿÿŠŠŠããããããŠŠŠŠŠŠããããã㊊ŠÿÿÿÕÕÕ ÕÕÕÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ òòò ÿÿÿ ÿÿÿÕÕÕ ÕÕÕ ÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿùùù ÿÿÿ ÿÿÿ ÷÷÷ÕÕÕ ÷÷÷ÕÕÕ ÷÷÷ÕÕÕ ÷÷÷ÕÕÕ ÷÷÷ÕÕÕ ÿÿÿÿÿÿ÷÷÷ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÕÕÕ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ëëëÿÿÿÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÿÿÿÕÕÕÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿííí ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿííí zþþú~&&&®®ö¢¢öþþŠŠúººî&&&þþ***Êf¶ZÖjÆb‚B~>&&&***ÚþªÊbr BN&&&***ÊÚÞšª®†’–~ŠŽV^^FNN***ÿÿÿÿÿÿ†FV~BVN*6************’Jb¾b~***ÿÿÿ ÕÕÕ ÕÕÕ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿüüüÕÕÕ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ äääÕÕÕ þþþ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕ ÕÕÕÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøøøáááÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕÿÿÿÿÿÿ ÿÿÿùùù ÕÕÕ ááá ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÕÕÕ ÕÕÕ éééÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ùùù ÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ùùù ÕÕÕ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿäää ÕÕÕ ÖÖÖÿÿÿ ÿÿÿ ÕÕÕ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÕÕÕ ÕÕÕ úúú ÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÕÕÕ ÕÕÕÝÝÝÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÝÝÝ ÕÕÕ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿ èèè ÕÕÕ ÿÿÿ ÿÿÿÿÿÿÿÿÿjjjVVV~~~rrr......†æâR¦¦~~~rrr......‚îîR¦¦Žúú†æâBbf...‚îîR¦¦Žúú†þþBbf...‚îîR¦¦Žúú†þþBbf...‚îîR¦¦Žúú†þþBbfÿÿÿÕÕÕ ÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãããÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãã㊊ŠãããÿÿÿãããŠŠŠŠŠŠããããã㊊Šãããÿÿÿêêê ÕÕÕÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ òòò ÿÿÿ ÕÕÕ ÕÕÕ ÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿùùù ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿÕÕÕÕÕÕ ÿÿÿ îîî ÿÿÿ îîî ÿÿÿ îîî ÿÿÿ îîî ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿäää ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÖÖÖÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ fþþþz&&&öþþþúö***þþþþ&&&º^ö‚þžÆb®V~>&&&***ÖöªÊj~ BN******®¾Â®¾ÂJŠªJvŠv~‚NRR***ÿÿÿÿÿÿÿÂf‚¾b~’JbR.6R.6N*6N*6***~BVz>N’NbÖrŽÖr’ÖrŽ***ÿÿÿ ÝÝÝÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÕÕÕ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÕÕÕ ööö ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÕÕÕ ÕÕÕÕÕÕÿÿÿÿÿÿ ÿÿÿÿÿÿ ÕÕÕ ÿÿÿÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÞÞÞÕÕÕÕÕÕ ÕÕÕÿÿÿÿÿÿ ÿÿÿÿÿÿ ÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÚÚÚ ÕÕÕ ÕÕÕÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ îîî ÕÕÕÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ùùù ÕÕÕ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ ÕÕÕ ÕÕÕÿÿÿ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÕÕÕ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÜÜÜ ÕÕÕ ééé ÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ âââ ÕÕÕÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÞÞÞÕÕÕ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ùùù ÕÕÕÿÿÿ ÿÿÿ :::rrrjjjNNN:::R¦¦jjjNNN:::R¦¦R¦¦NNN 222R~~ªþþ†æâf²®... 222R~~†þþ†æâf²®... 222R~~ªþþ†æâf²®...ÿÿÿÕÕÕ ÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãã㊊ŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿŠŠŠÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠãã㊊ŠÿÿÿŠŠŠããã®®®ãããŠŠŠŠŠŠãã㊊Šÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÞÞÞÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÞÞÞÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÞÞÞÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÞÞÞÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÞÞÞÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÞÞÞÕÕÕÕÕÕ ÿÿÿòòò ÿÿÿ ÕÕÕ ÕÕÕ ÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÚÚÚ ÿÿÿÚÚÚ ÿÿÿÚÚÚ ÿÿÿÚÚÚ ÿÿÿÚÚÚ ÿÿÿÿÿÿŠŠŠÕÕÕÚÚÚ ÿÿÿ ååå ÿÿÿ ååå ÿÿÿ ååå ÿÿÿ ååå ÿÿÿ ÿÿÿÿÿÿÿÿÿäää ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ þþ""þþþÒn***æöþþþþ&&&þþþþþþ&&&þ¢þªîz¶Z&&&&&&Úþ²Öbr BN&&&&&&******†Â Z‚&&&&&&&&&ÿÿÿÿÿÿÿþ޲ÖrŽÖr’ÖrŽ’Nbz>N~BV^2>***²^v¾b~Êj†ÒnŠÖr’þ޲***ÿÿÿ ÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÕÕÕ ááá ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ ÕÕÕÕÕÕ ÕÕÕÕÕÕäääÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿ ÕÕÕÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÕÕÕ ÕÕÕÕÕÕÝÝÝÿÿÿ ÿÿÿ ÿÿÿÿÿÿ áááÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕáááùùùÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕÜÜÜ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿúúú ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ ÕÕÕÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ååå ÕÕÕ ÖÖÖ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ùùù ÕÕÕ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÖÖÖ ÕÕÕÕÕÕÚÚÚëëë ÿÿÿØØØÕÕÕÕÕÕÕÕÕÕÕÕ×××ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ îîî ÕÕÕ ÚÚÚ ÿÿÿÿÿÿÿÿÿ ÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÕÕÕÕÕÕ ÕÕÕÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕ ÚÚÚÿÿÿ ÿÿÿ ÿÿÿ ùùù ÕÕÕÕÕÕ ûûû ÿÿÿÿÿÿÿÿÿÿÿÿFFFnnnfffŠŠŠŠŠŠbbbJJJ...FFFnnnfffŠŠŠŠŠŠbbbJJJ...FFFnnnfffŠŠŠŠŠŠbbbJJJ...Vššzöò†æâR¦¦ŠŠŠbbbJJJ...Vššzöò†æâ†æâvâÞvâÞR¦¦:^^Vššzöò†æâÚþþªþþvâÞR¦¦:^^ÿÿÿÕÕÕ ÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãããÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãããÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠããããã㊊ŠÿÿÿÿÿÿŠŠŠãã㊊Šãã㊊Šããã ÿÿÿÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿòòòÕÕÕÕÕÕ ÿÿÿ áááÕÕÕÕÕÕÕÕÕáááÕÕÕÕÕÕÕÕÕáááÕÕÕÕÕÕÕÕÕáááÕÕÕÕÕÕÕÕÕÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿúúú ÿÿÿúúú ÿÿÿúúú ÿÿÿúúú ÿÿÿúúú ÿÿÿÿÿÿÿÿÿÿÿÿúúú ÿÿÿ ààà ÿÿÿ ààà ÿÿÿ ààà ÿÿÿ ààà ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿäääŽŽŽ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÖÖÖ ÕÕÕÿÿÿØØØÿÿÿØØØÿÿÿØØØÿÿÿØØØÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕÕÕÕÕÕÕÚÚÚ®®® ÿÿÿÿÿÿ ÕÕÕÕÕÕÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ jþþþz&&&ÆÆú¢¢úæö~~ú¶¶þ***þþþþþþþþ&&&®Vþ¶ö‚Öj******ÖöÊêš¶br&&&&&&†Â Rz***ÿþšÂþ޲Ör’ÒnŠÊj†¾b~²^vz>N************æzšò‚¢***ÿÿÿ ýýýÖÖÖÕÕÕÕÕÕÕÕÕÕÕÕàààÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÕÕÕÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿæææÕÕÕÕÕÕ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÞÞÞÕÕÕ ÕÕÕÕÕÕÞÞÞÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÕÕÕ ÕÕÕÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ùùù ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕ ÷÷÷ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÖÖÖÕÕÕ ÕÕÕùùù ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ààà ÕÕÕ ÙÙÙ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ùùù ÕÕÕ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÜÜÜÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÖÖÖ ÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿûûû ÕÕÕÕÕÕÕÕÕîîîÿÿÿÿÿÿÞÞÞÕÕÕÕÕÕÞÞÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðððÛÛÛÕÕÕÕÕÕÕÕÕÕÕÕØØØêêêüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÕÕÕÙÙÙ ÿÿÿ 666rrrŠŠŠvvvfff...666rrrŠŠŠvvvfff...666rrrŠŠŠvvvfff...Jvvf²®ŠŠŠvvvfff...JvvjÎÊvvvŠŠŠf²®FfbJvv‚úö¾þþ†þþvîêFfbÿÿÿÖÖÖ ÕÕÕ ÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãã㊊ŠÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿŠŠŠãããÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿããããããÿÿÿÿÿÿÿÿÿãã㊊ŠÿÿÿãããŠŠŠŠŠŠÿÿÿÿÿÿŠŠŠãããŠŠŠ ÿÿÿÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿòòò ÿÿÿ ùùù ùùù ùùù ùùù ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÝÝÝ ÿÿÿ ÝÝÝ ÿÿÿ ÝÝÝ ÿÿÿ ÝÝÝ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽŽŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÜÜÕÕÕÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÖÖ ÿÿÿÞÞÞÕÕÕÕÕÕÞÞÞÿÿÿÿÿÿÿÿÿÞÞÞÿÿÿÿÿÿÿÿÿÞÞÞÿÿÿÿÿÿÿÿÿÞÞÞÿÿÿÿÿÿÿÿÿÞÞÞÿÿÿÿÿÿÿÿÿÞÞÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzþþþj***þþþúúúâú¦¦îööö&&&þþþþþþþþ***º^úŽö‚²Z&&&&&&†¦®‚ÎÚ~ŠŽBbf&&&***ŽÎ Nn&&&þ’ºò‚¢æzšÂf‚þ’¶þªÖþžÆ***î‚¢***ÿÿÿ ÿÿÿ ÿÿÿ ÝÝÝ ÕÕÕ ×××ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÕÕÕÕÕÕÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÕÕÕ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÕÕÕ ÕÕÕÿÿÿÿÿÿ ÖÖÖÕÕÕ êêê ÿÿÿ ÿÿÿ ÿÿÿÕÕÕÕÕÕÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ òòòÕÕÕ ÕÕÕááá ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÝÝÝ ÕÕÕÝÝÝ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ùùù ÕÕÕ þþþÿÿÿ ÿÿÿ ÜÜÜÿÿÿ ÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿjjjV^^jjjV^^jjjV^^...jjjV^^ŠŠŠvvv...†ÆÆjÖÖ...ÿÿÿÜÜÜÕÕÕÕÕÕÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãã㊊Šÿÿÿÿÿÿÿÿÿãã㊊ŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠãã㊊ŠÿÿÿŠŠŠãã㊊Šããããã㊊ŠãããŠŠŠ ÿÿÿÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿòòò ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÝÝÝ ÿÿÿ ÝÝÝ ÿÿÿ ÝÝÝ ÿÿÿ ÝÝÝ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕÖÖÖ ÿÿÿÿÿÿ ^þj***þþþÖÖÖ®®öââþþþþþþþ***þþþþ&&&özêv***&&&~~~ÚÚÚ®®®JJJ*********&&&†Â Vz&&&***ÿÿÿÿÿÿÿþžÆî‚¢æzš******ÿÿÿ ÿÿÿ ÿÿÿ ìììÕÕÕâââüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕÿÿÿ ÿÿÿ×××ÕÕÕÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÕÕÕ ÿÿÿ ÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿ üüüÕÕÕ ÕÕÕùùù ÿÿÿÿÿÿÕÕÕÕÕÕÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÕÕÕ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÕÕÕÕÕÕÕÕÕüüüÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÝÝÝ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ øøø ÕÕÕ ÖÖÖ ÿÿÿ ÿÿÿäää ÿÿÿ ÕÕÕ ÕÕÕ ÚÚÚÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÕÕÕÕÕÕ ÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿ ...666...666...666...666...666...:^^R~~...ÕÕÕÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿããããããÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠãããÿÿÿããããããÿÿÿŠŠŠãããÿÿÿŠŠŠããããããŠŠŠŠŠŠããã ÿÿÿòòòÿÿÿòòòÿÿÿòòòÿÿÿòòòÿÿÿòòòÿÿÿòòòÿÿÿòòòÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÜÜÿÿÿÜÜÜÿÿÿÜÜÜÿÿÿÜÜÜÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ z&&&&&&&&&&&&&&&&&&&&&&&&***îvÊf&&&***ŠŠŠ®®®ŽŽŽNNN&&&&&&¦î–چ Vz :V.F&&&ÿÿÿÿÿÿÿþ®ÞþžÆÿÿÿÿÿÿÿÿÿãããÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýôôôÕÕÕÕÕÕÕÕÕ×××åååùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÜÜÿÿÿÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕùùùÿÿÿÿÿÿÿÿÿÿÿÿòòòÕÕÕÕÕÕÕÕÕßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùùùáááÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÜÜÜÕÕÕÕÕÕÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýõõõàààÕÕÕÕÕÕÕÕÕÕÕÕãããùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÜÜÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿáááÿÿÿÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕßßß÷÷÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ***...ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿŠŠŠŠŠŠÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠãã㊊Šããããã㊊ŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿããããããÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòòòÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáááÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÞÞÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&Æb¾^&&&&&&jjjfff&&&&&&²ú¶þ²þ²þ¦îj–&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáááÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ******************............******ÿÿÿ lgeneral-1.3.1/src/themes/default/menu0_buttons.bmp0000664000175000017500000024221212472337652017250 00000000000000BMŠDŠ|`Ø Du u ÿÿÿÿBGRsÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ@@AÿCCCÿNPPÿcZcÿ$0ÿ)ÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@@AÿCCCÿNPPÿcZcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@@AÿCCCÿNPPÿcZcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ'''ÿ)))ÿ111ÿ999ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ,11ÿ%*ÿ'25ÿ8KOÿ.56ÿ&.3ÿEOWÿISWÿnjvÿ^K`ÿ!,ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,11ÿ%*ÿ'25ÿ8KOÿ.56ÿ&.3ÿEOWÿISWÿnjvÿ^K`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,11ÿ%*ÿ'25ÿ8KOÿ.56ÿ&.3ÿEOWÿISWÿnjvÿ^K`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ---ÿ ÿÿ111ÿ222ÿBBBÿ111ÿÿÿÿÿÿÿÿÿÿ(ÿ)ÿ(ÿ(ÿkpoÿ™™™ÿ§§§ÿƒ‰ÿABBÿ$-'ÿÿ/34ÿ0FFÿ6:@ÿ0:AÿOZcÿagjÿL>Lÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿkpoÿ™™™ÿ§§§ÿƒ‰ÿABBÿ$-'ÿÿ/34ÿ0FFÿ6:@ÿ0:AÿOZcÿagjÿL>Lÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿkpoÿ™™™ÿ§§§ÿƒ‰ÿABBÿ$-'ÿÿ/34ÿ0FFÿ6:@ÿ0:AÿOZcÿagjÿL>LÿÿÿÿÿÿÿÿÿÿÿÿÿÿCCCÿ]]]ÿfffÿTTTÿ(((ÿÿÿÿ)))ÿ$$$ÿ$$$ÿ777ÿ???ÿ(((ÿÿÿÿÿÿ(ÿ®°°ÿ«®®ÿ²µµÿ»½½ÿPPPÿ@@@ÿ\\\ÿWWWÿd®tÿ^¦mÿFKFÿ___ÿ˜œ™ÿ€‚‚ÿ_aaÿQX\ÿ6CJÿELSÿ(ÿÿÿÿÿÿÿÿÿ®°°ÿ«®®ÿ²µµÿ»½½ÿPPPÿ@@@ÿ\\\ÿWWWÿd®tÿ^¦mÿFKFÿ___ÿ˜œ™ÿ€‚‚ÿ_aaÿQX\ÿ6CJÿELSÿÿÿÿÿÿÿÿÿÿÿÿÿ®°°ÿ«®®ÿ²µµÿ»½½ÿPPPÿ@@@ÿ\\\ÿWWWÿd®tÿ^¦mÿFKFÿ___ÿ˜œ™ÿ€‚‚ÿ_aaÿQX\ÿ6CJÿELSÿÿÿÿÿÿÿÿÿÿkkkÿjjjÿnnnÿsssÿ111ÿ'''ÿ888ÿ555ÿ___ÿ[[[ÿ---ÿ:::ÿ^^^ÿOOOÿ;;;ÿ555ÿ)))ÿ///ÿÿÿÿÿÿÿ(ÿ(ÿšœœÿ³µµÿ\]]ÿ@F@ÿ7>9ÿ% ÿG•Xÿ7Hÿ$*%ÿ%,&ÿEEEÿ‚‚‚ÿˆˆˆÿ©©©ÿµµµÿ–‘˜ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿšœœÿ³µµÿ\]]ÿ@F@ÿ7>9ÿ% ÿG•Xÿ7Hÿ$*%ÿ%,&ÿEEEÿ‚‚‚ÿˆˆˆÿ©©©ÿµµµÿ–‘˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿšœœÿ³µµÿ\]]ÿ@F@ÿ7>9ÿ% ÿG•Xÿ7Hÿ$*%ÿ%,&ÿEEEÿ‚‚‚ÿˆˆˆÿ©©©ÿµµµÿ–‘˜ÿÿÿÿÿÿÿÿÿÿÿÿ___ÿnnnÿ999ÿ)))ÿ$$$ÿÿOOOÿDDDÿÿÿ***ÿOOOÿSSSÿgggÿnnnÿYYYÿÿÿÿÿÿÿÿÿ(ÿ)ÿ"&ÿd®uÿÍ‘ÿp½‚ÿiµzÿO aÿe±uÿJ•Zÿ%,&ÿ333ÿmmmÿ‘”•ÿqvvÿ_^_ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿ)ÿ"&ÿd®uÿÍ‘ÿp½‚ÿiµzÿO aÿe±uÿJ•Zÿ%,&ÿ333ÿmmmÿ‘”•ÿqvvÿ_^_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)ÿ"&ÿd®uÿÍ‘ÿp½‚ÿiµzÿO aÿe±uÿJ•Zÿ%,&ÿ333ÿmmmÿ‘”•ÿqvvÿ_^_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿrrrÿhhhÿcccÿVVVÿaaaÿPPPÿÿÿBBBÿZZZÿHHHÿ999ÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ;ŠRÿ:ŠRÿK•\ÿs¾‚ÿe­tÿr¾‚ÿb®rÿU¢eÿ!ÿ555ÿÊÊÉÿ­®©ÿ|ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ;ŠRÿ:ŠRÿK•\ÿs¾‚ÿe­tÿr¾‚ÿb®rÿU¢eÿ!ÿ555ÿÊÊÉÿ­®©ÿ|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ;ŠRÿ:ŠRÿK•\ÿs¾‚ÿe­tÿr¾‚ÿb®rÿU¢eÿ!ÿ555ÿÊÊÉÿ­®©ÿ|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿBBBÿIIIÿIIIÿPPPÿiiiÿ___ÿiiiÿ___ÿWWWÿÿ ÿ{{{ÿiiiÿLLLÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ/{?ÿÿ#'ÿn¹~ÿZ£iÿCICÿ}ÈŒÿxĈÿD‰Sÿ@D>ÿRJQÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ/{?ÿÿÿÿÿÿÿÿÿn¹~ÿZ£iÿCICÿ}ÈŒÿxĈÿD‰Sÿ@D>ÿRJQÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ/{?ÿÿÿÿÿÿÿÿÿn¹~ÿZ£iÿCICÿ}ÈŒÿxĈÿD‰Sÿ@D>ÿRJQÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBBBÿ@@@ÿÿÿfffÿXXXÿ+++ÿoooÿlllÿJJJÿ(((ÿ...ÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿÿÿÿ7‡Oÿ't?ÿÿÿ:ŠRÿ$q;ÿÿ"&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿÿÿÿÿÿÿÿÿÿ7‡Oÿ't?ÿÿÿÿÿÿÿÿÿ:ŠRÿ$q;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿÿÿÿÿÿÿÿÿÿ7‡Oÿ't?ÿÿÿÿÿÿÿÿÿ:ŠRÿ$q;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBBBÿÿÿÿGGGÿ<<<ÿ ÿ ÿIIIÿ:::ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ0{?ÿÿ+x<ÿ3~Bÿb)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ0{?ÿÿÿÿÿ+x<ÿ3~Bÿb)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ0{?ÿÿÿÿÿ+x<ÿ3~Bÿb)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBBBÿ@@@ÿÿ>>>ÿBBBÿ111ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPÿ!j1ÿ3~Bÿ3~Bÿ3~Bÿ3~Bÿ+x<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPÿ!j1ÿ3~Bÿ3~Bÿ3~Bÿ3~Bÿ+x<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPÿ!j1ÿ3~Bÿ3~Bÿ3~Bÿ3~Bÿ+x<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ'''ÿ666ÿBBBÿBBBÿBBBÿBBBÿ>>>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+x<ÿ3~Bÿ3~Bÿ1|Aÿ(u9ÿ3~Bÿ'q6ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+x<ÿ3~Bÿ3~Bÿ1|Aÿ(u9ÿ3~Bÿ'q6ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+x<ÿ3~Bÿ3~Bÿ1|Aÿ(u9ÿ3~Bÿ'q6ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ>>>ÿBBBÿBBBÿ@@@ÿ<<<ÿBBBÿ:::ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(u9ÿ3~Bÿ3~Bÿ'q6ÿ't8ÿ i0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(u9ÿ3~Bÿ3~Bÿ'q6ÿ't8ÿ i0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(u9ÿ3~Bÿ3~Bÿ'q6ÿ't8ÿ i0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<<<ÿBBBÿBBBÿ:::ÿ<<<ÿ555ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ3~BÿVÿÿ't8ÿ i0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ3~BÿVÿÿÿÿÿ't8ÿ i0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ3~BÿVÿÿÿÿÿ't8ÿ i0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBBBÿBBBÿ***ÿÿ<<<ÿ555ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ3~Bÿÿÿ-y=ÿ$m5ÿÿ+x;ÿ3~Bÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ3~Bÿÿÿÿÿÿÿÿÿ-y=ÿ$m5ÿÿÿÿÿ+x;ÿ3~Bÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ3~Bÿÿÿÿÿÿÿÿÿ-y=ÿ$m5ÿÿÿÿÿ+x;ÿ3~BÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBBBÿBBBÿÿÿ???ÿ888ÿÿ===ÿBBBÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ3~Bÿh/ÿÿ3~Bÿ(u9ÿ i0ÿ3~Bÿ3~Bÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ3~Bÿh/ÿÿÿÿÿ3~Bÿ(u9ÿ i0ÿ3~Bÿ3~Bÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ3~Bÿh/ÿÿÿÿÿ3~Bÿ(u9ÿ i0ÿ3~Bÿ3~BÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBBBÿBBBÿ555ÿÿBBBÿ<<<ÿ555ÿBBBÿBBBÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ3~Bÿ3~Bÿ3~Bÿ(u9ÿ3~Bÿ3~Bÿ3~Bÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ3~Bÿ3~Bÿ3~Bÿ(u9ÿ3~Bÿ3~Bÿ3~Bÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3~Bÿ3~Bÿ3~Bÿ3~Bÿ(u9ÿ3~Bÿ3~Bÿ3~BÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBBBÿBBBÿBBBÿBBBÿ<<<ÿBBBÿBBBÿBBBÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿa(ÿ3~Bÿ1|Aÿ1|Aÿ^'ÿe,ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿa(ÿ3~Bÿ1|Aÿ1|Aÿ^'ÿe,ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿa(ÿ3~Bÿ1|Aÿ1|Aÿ^'ÿe,ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ111ÿBBBÿ@@@ÿ@@@ÿ///ÿ333ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2}Aÿ%o7ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2}Aÿ%o7ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2}Aÿ%o7ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿAAAÿ999ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ>†Oÿ+x;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ>†Oÿ+x;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ>†Oÿ+x;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿGGGÿ===ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ447ÿ{|~ÿ{{zÿ{{}ÿ{{zÿ{{}ÿ{{zÿz{}ÿ}€ÿŒ‡Šÿ‘”•ÿ•••ÿ•••ÿ•••ÿ•••ÿ%%%ÿÿÿÿÿÿÿÿÿÿÿÿÿ{|~ÿ{{zÿ{{}ÿ{{zÿ{{}ÿ{{zÿz{}ÿ}€ÿŒ‡Šÿ‘”•ÿ•••ÿ•••ÿ•••ÿ•••ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ{|~ÿ{{zÿ{{}ÿ{{zÿ{{}ÿ{{zÿz{}ÿ}€ÿŒ‡Šÿ‘”•ÿ•••ÿ•••ÿ•••ÿ•••ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ666ÿ555ÿ555ÿ555ÿ555ÿ555ÿ555ÿ777ÿ<<<ÿBBBÿCCCÿCCCÿCCCÿCCCÿ ÿÿÿÿÿÿÿÿÿ@=@ÿ‹‡ˆÿwxxÿTQVÿYYZÿLLIÿMMNÿWTXÿVYUÿŒŠÿ“ÿ¢¨¢ÿìììÿïïïÿïïïÿ<<<ÿÿÿÿÿÿÿÿÿÿÿÿÿ‹‡ˆÿwxxÿTQVÿYYZÿLLIÿMMNÿWTXÿVYUÿŒŠÿ“ÿ¢¨¢ÿìììÿïïïÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹‡ˆÿwxxÿTQVÿYYZÿLLIÿMMNÿWTXÿVYUÿŒŠÿ“ÿ¢¨¢ÿìììÿïïïÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;;;ÿ333ÿ ÿ$$$ÿÿÿ"""ÿ###ÿ???ÿAAAÿLLLÿuuuÿvvvÿvvvÿÿÿÿÿÿÿÿÿ;;;ÿDHDÿ‡‹…ÿXWYÿ#%#ÿ!$"ÿ ÿ'&%ÿ''$ÿ633ÿ‚ƒÿ¯µ±ÿ†‡†ÿ†††ÿïïïÿïïïÿ<<<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡‹…ÿXWYÿ#%#ÿ!$"ÿ ÿ'&%ÿ''$ÿ633ÿ‚ƒÿ¯µ±ÿ†‡†ÿ†††ÿïïïÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡‹…ÿXWYÿ#%#ÿ!$"ÿ ÿ'&%ÿ''$ÿ633ÿ‚ƒÿ¯µ±ÿ†‡†ÿ†††ÿïïïÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<<<ÿ###ÿ ÿ ÿ ÿ ÿ ÿÿ999ÿSSSÿ;;;ÿ;;;ÿvvvÿvvvÿÿÿÿÿÿÿÿ;;;ÿO21ÿmPKÿxa]ÿqb_ÿkcfÿigiÿiihÿiiiÿÿ0+*ÿYYXÿÿÿËËÐÿÁÁÁÿïïïÿ<<<ÿÿÿÿÿÿÿÿÿÿÿO21ÿmPKÿxa]ÿqb_ÿkcfÿigiÿiihÿiiiÿÿ0+*ÿYYXÿÿÿËËÐÿÁÁÁÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿO21ÿmPKÿxa]ÿqb_ÿkcfÿigiÿiihÿiiiÿÿ0+*ÿYYXÿÿÿËËÐÿÁÁÁÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ(((ÿ(((ÿ)))ÿ+++ÿ+++ÿ,,,ÿÿÿ###ÿ@@@ÿ888ÿbbbÿ[[[ÿvvvÿÿÿÿÿÿÿÿÿ;;;ÿmKLÿ壟ÿï¹·ÿïÍÉÿïߨÿïíèÿïïïÿÿFFDÿ¡¡ ÿåêåÿïïïÿïïïÿïïïÿïïïÿ<<<ÿÿÿÿÿÿÿÿÿÿÿÿmKLÿ壟ÿï¹·ÿïÍÉÿïߨÿïíèÿïïïÿÿFFDÿ¡¡ ÿåêåÿïïïÿïïïÿïïïÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿmKLÿ壟ÿï¹·ÿïÍÉÿïߨÿïíèÿïïïÿÿFFDÿ¡¡ ÿåêåÿïïïÿïïïÿïïïÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿNNNÿZZZÿdddÿlllÿtttÿvvvÿÿÿIIIÿrrrÿvvvÿvvvÿvvvÿvvvÿÿÿÿÿÿÿÿÿÿ8:8ÿV8<ÿï¡¢ÿï°³ÿï¿ÄÿïÖ×ÿïäèÿÿ>@?ÿ–š˜ÿÌÌÍÿר×ÿÖ×Öÿãããÿïïïÿ<<<ÿÿÿÿÿÿÿÿÿÿÿÿÿV8<ÿï¡¢ÿï°³ÿï¿ÄÿïÖ×ÿïäèÿÿ>@?ÿ–š˜ÿÌÌÍÿר×ÿÖ×ÖÿãããÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿV8<ÿï¡¢ÿï°³ÿï¿ÄÿïÖ×ÿïäèÿÿ>@?ÿ–š˜ÿÌÌÍÿר×ÿÖ×ÖÿãããÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNNNÿVVVÿ^^^ÿiiiÿqqqÿÿÿEEEÿbbbÿhhhÿhhhÿoooÿvvvÿÿÿÿÿÿÿÿÿ;;;ÿY$#ÿÇbcÿÿïšœÿ餠ÿï½»ÿïÏÍÿÿ#-!ÿ{€{ÿ¢§£ÿ®±®ÿ­°­ÿÎÎÎÿïïïÿ<<<ÿÿÿÿÿÿÿÿÿÿÿÿY$#ÿÇbcÿÿïšœÿ餠ÿï½»ÿïÏÍÿÿ#-!ÿ{€{ÿ¢§£ÿ®±®ÿ­°­ÿÎÎÎÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿY$#ÿÇbcÿÿïšœÿ餠ÿï½»ÿïÏÍÿÿ#-!ÿ{€{ÿ¢§£ÿ®±®ÿ­°­ÿÎÎÎÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿ...ÿCCCÿKKKÿNNNÿ[[[ÿeeeÿÿÿ666ÿLLLÿQQQÿQQQÿcccÿvvvÿÿÿÿÿÿÿÿ;;;ÿjÿèEIÿï\]ÿænoÿ`6;ÿT47ÿÃŒˆÿïµ·ÿDHEÿknkÿ™ŸŸÿ°²µÿ´¶´ÿ´¶´ÿÒÒÒÿïïïÿ<<<ÿÿÿÿÿÿÿÿÿÿÿjÿèEIÿï\]ÿænoÿ`6;ÿT47ÿÃŒˆÿïµ·ÿDHEÿknkÿ™ŸŸÿ°²µÿ´¶´ÿ´¶´ÿÒÒÒÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿjÿèEIÿï\]ÿænoÿ`6;ÿT47ÿÃŒˆÿïµ·ÿDHEÿknkÿ™ŸŸÿ°²µÿ´¶´ÿ´¶´ÿÒÒÒÿïïïÿÿÿÿÿÿÿÿÿÿÿÿ ÿ###ÿ---ÿ555ÿÿÿ@@@ÿXXXÿÿ---ÿHHHÿSSSÿUUUÿUUUÿeeeÿvvvÿÿÿÿÿÿÿÿ;;;ÿÑÿï/-ÿÜ9=ÿ<(+ÿÿ#ÿ@A9ÿºƒÿ7G6ÿg|`ÿ³¼°ÿÍÏÐÿÍÏÍÿÍÏÍÿÞÞÞÿïïïÿ<<<ÿÿÿÿÿÿÿÿÿÿÿÑÿï/-ÿÜ9=ÿ<(+ÿÿ#ÿ@A9ÿºƒÿ7G6ÿg|`ÿ³¼°ÿÍÏÐÿÍÏÍÿÍÏÍÿÞÞÞÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑÿï/-ÿÜ9=ÿ<(+ÿÿ#ÿ@A9ÿºƒÿ7G6ÿg|`ÿ³¼°ÿÍÏÐÿÍÏÍÿÍÏÍÿÞÞÞÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ<<<ÿÿ000ÿVVVÿdddÿcccÿcccÿlllÿvvvÿÿÿÿÿÿÿÿÿ;;;ÿ¯ ÿë ÿ„ÿ5-1ÿECGÿab^ÿ|}|ÿ{|{ÿ•™•ÿ£¥¨ÿ¦¦¦ÿ°¶°ÿìììÿïïïÿïïïÿ<<<ÿÿÿÿÿÿÿÿÿÿÿÿ¯ ÿë ÿ„ÿ5-1ÿECGÿab^ÿ|}|ÿ{|{ÿ•™•ÿ£¥¨ÿ¦¦¦ÿ°¶°ÿìììÿïïïÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯ ÿë ÿ„ÿ5-1ÿECGÿab^ÿ|}|ÿ{|{ÿ•™•ÿ£¥¨ÿ¦¦¦ÿ°¶°ÿìììÿïïïÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿ'''ÿ666ÿ555ÿDDDÿLLLÿLLLÿSSSÿuuuÿvvvÿvvvÿÿÿÿÿÿÿÿÿÿ;;;ÿ© ÿîÿ”ÿ`[_ÿsvuÿ¥¦¥ÿ   ÿnnnÿ¥¥¥ÿ–––ÿ{{{ÿ€€€ÿçççÿïïïÿ<<<ÿÿÿÿÿÿÿÿÿÿÿÿÿ© ÿîÿ”ÿ`[_ÿsvuÿ¥¦¥ÿ   ÿnnnÿ¥¥¥ÿ–––ÿ{{{ÿ€€€ÿçççÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ© ÿîÿ”ÿ`[_ÿsvuÿ¥¦¥ÿ   ÿnnnÿ¥¥¥ÿ–––ÿ{{{ÿ€€€ÿçççÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ ÿ%%%ÿ222ÿLLLÿIIIÿ...ÿLLLÿCCCÿ555ÿ888ÿrrrÿvvvÿÿÿÿÿÿÿÿÿ;;;ÿbÿ­ ÿˆ/0ÿwzÿ©¬©ÿ•••ÿ¾¾¾ÿ•••ÿ•••ÿ¬¬¬ÿ¨¨¨ÿ•••ÿÒÒÕÿÊÊÊÿïïïÿ<<<ÿÿÿÿÿÿÿÿÿÿÿÿbÿ­ ÿˆ/0ÿwzÿ©¬©ÿ•••ÿ¾¾¾ÿ•••ÿ•••ÿ¬¬¬ÿ¨¨¨ÿ•••ÿÒÒÕÿÊÊÊÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿbÿ­ ÿˆ/0ÿwzÿ©¬©ÿ•••ÿ¾¾¾ÿ•••ÿ•••ÿ¬¬¬ÿ¨¨¨ÿ•••ÿÒÒÕÿÊÊÊÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ555ÿNNNÿCCCÿZZZÿCCCÿCCCÿPPPÿMMMÿCCCÿeeeÿaaaÿvvvÿÿÿÿÿÿÿÿÿ;;;ÿZ:=ÿº¼ºÿçççÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿ<<<ÿÿÿÿÿÿÿÿÿÿÿÿZ:=ÿº¼ºÿçççÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿZ:=ÿº¼ºÿçççÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿXXXÿrrrÿvvvÿvvvÿvvvÿvvvÿvvvÿvvvÿvvvÿvvvÿvvvÿvvvÿvvvÿvvvÿÿÿÿÿÿÿÿÿ;;;ÿdddÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿµ£œÿµ£œÿµ£œÿµ£œÿµ£œÿµ£›ÿµ£›ÿÜ×Òÿ<<<ÿÿÿÿÿÿÿÿÿÿÿÿdddÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿµ£œÿµ£œÿµ£œÿµ£œÿµ£œÿµ£›ÿµ£›ÿÜ×Òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdddÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿµ£œÿµ£œÿµ£œÿµ£œÿµ£œÿµ£›ÿµ£›ÿÜ×Òÿÿÿÿÿÿÿÿÿÿÿÿÿ)))ÿvvvÿvvvÿvvvÿvvvÿvvvÿvvvÿJJJÿJJJÿJJJÿJJJÿJJJÿJJJÿJJJÿhhhÿÿÿÿÿÿÿÿÿ;;;ÿdddÿïïïÿãããÿ•—•ÿ±¯­ÿ‹‹‹ÿ‹‹‹ÿ¹¹¹ÿ‹‹‹ÿ¡¤¡ÿ‹‹‹ÿ¡¤¡ÿÿïïïÿïïïÿ<<<ÿÿÿÿÿÿÿÿÿÿÿÿdddÿïïïÿãããÿ•—•ÿ±¯­ÿ‹‹‹ÿ‹‹‹ÿ¹¹¹ÿ‹‹‹ÿ¡¤¡ÿ‹‹‹ÿ¡¤¡ÿÿïïïÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdddÿïïïÿãããÿ•—•ÿ±¯­ÿ‹‹‹ÿ‹‹‹ÿ¹¹¹ÿ‹‹‹ÿ¡¤¡ÿ‹‹‹ÿ¡¤¡ÿÿïïïÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿ)))ÿvvvÿoooÿCCCÿQQQÿ===ÿ===ÿWWWÿ===ÿJJJÿ===ÿJJJÿ@@@ÿvvvÿvvvÿÿÿÿÿÿÿÿÿ;;;ÿdddÿïïïÿîîîÿæææÿééèÿåååÿåååÿêêêÿåååÿçèçÿåååÿçèçÿäääÿìììÿìììÿ;;;ÿÿÿÿÿÿÿÿÿÿÿÿdddÿïïïÿîîîÿæææÿééèÿåååÿåååÿêêêÿåååÿçèçÿåååÿçèçÿäääÿìììÿìììÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdddÿïïïÿîîîÿæææÿééèÿåååÿåååÿêêêÿåååÿçèçÿåååÿçèçÿäääÿìììÿìììÿÿÿÿÿÿÿÿÿÿÿÿÿ)))ÿvvvÿvvvÿqqqÿrrrÿpppÿpppÿsssÿpppÿrrrÿpppÿrrrÿpppÿuuuÿuuuÿÿÿÿÿÿÿÿÿ;;;ÿdddÿïïïÿïïïÿïïïÿ̪†ÿÇ£|ÿ·—tÿ©Žtÿ¨“|ÿž…kÿ„jÿåáÞÿghgÿ`a`ÿY[Yÿ;;;ÿÿÿÿÿÿÿÿÿÿÿÿdddÿïïïÿïïïÿïïïÿ̪†ÿÇ£|ÿ·—tÿ©Žtÿ¨“|ÿž…kÿ„jÿåáÞÿghgÿ`a`ÿY[Yÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdddÿïïïÿïïïÿïïïÿ̪†ÿÇ£|ÿ·—tÿ©Žtÿ¨“|ÿž…kÿ„jÿåáÞÿghgÿ`a`ÿY[Yÿÿÿÿÿÿÿÿÿÿÿÿÿ)))ÿvvvÿvvvÿvvvÿJJJÿFFFÿ@@@ÿ<<<ÿ???ÿ777ÿ777ÿnnnÿ+++ÿ'''ÿ$$$ÿÿÿÿÿÿÿÿÿ;;;ÿdddÿïïïÿïïïÿïïïÿ½Ž\ÿàÒÃÿÓ¹ÿÓ¹ÿÝÏÃÿµšÿuZÿÜÖÑÿÿéééÿcccÿ;;;ÿÿÿÿÿÿÿÿÿÿÿÿdddÿïïïÿïïïÿïïïÿ½Ž\ÿàÒÃÿÓ¹ÿÓ¹ÿÝÏÃÿµšÿuZÿÜÖÑÿÿéééÿcccÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdddÿïïïÿïïïÿïïïÿ½Ž\ÿàÒÃÿÓ¹ÿÓ¹ÿÝÏÃÿµšÿuZÿÜÖÑÿÿéééÿcccÿÿÿÿÿÿÿÿÿÿÿÿÿ)))ÿvvvÿvvvÿvvvÿ:::ÿdddÿSSSÿSSSÿbbbÿCCCÿ///ÿgggÿ888ÿsssÿ)))ÿÿÿÿÿÿÿÿÿ;;;ÿdddÿïïïÿïïïÿïïïÿÄ›pÿ½Ž\ÿ·‚Kÿ·‚Kÿ½Ž\ÿ²|Fÿ›qFÿâÞÚÿÿbbbÿ;;;ÿÿÿÿÿÿÿÿÿÿÿÿÿdddÿïïïÿïïïÿïïïÿÄ›pÿ½Ž\ÿ·‚Kÿ·‚Kÿ½Ž\ÿ²|Fÿ›qFÿâÞÚÿÿbbbÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdddÿïïïÿïïïÿïïïÿÄ›pÿ½Ž\ÿ·‚Kÿ·‚Kÿ½Ž\ÿ²|Fÿ›qFÿâÞÚÿÿbbbÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)))ÿvvvÿvvvÿvvvÿAAAÿ:::ÿ333ÿ333ÿ:::ÿ000ÿ+++ÿlllÿ777ÿ(((ÿÿÿÿÿÿÿÿÿÿÿ>>>ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ;;;ÿ;;;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿ•••ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCCCÿCCCÿCCCÿCCCÿCCCÿCCCÿCCCÿCCCÿCCCÿCCCÿCCCÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿ;;;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿlÿ­ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlÿ­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlÿ­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿFFFÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ|ÿÿ²ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|ÿÿ²ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|ÿÿ²ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ222ÿ???ÿHHHÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿVÿÿŸÿ¼ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿVÿÿŸÿ¼ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿVÿÿŸÿ¼ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"""ÿ999ÿ@@@ÿKKKÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ+ÿ#ÿ'ÿ.ÿDÿEÿ6ÿDÿ—ÿ—ÿ‘ÿ‘ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+ÿ#ÿ'ÿ.ÿDÿEÿ6ÿDÿ—ÿ—ÿ‘ÿ‘ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+ÿ#ÿ'ÿ.ÿDÿEÿ6ÿDÿ—ÿ—ÿ‘ÿ‘ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ===ÿ===ÿ:::ÿ:::ÿÿÿÿÿÿÿÿÿÿÿ(ÿ&ÿ.ÿ2ÿHÿhÿ}ÿiÿiÿUÿqÿƒÿ’ÿºÿÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿ&ÿ.ÿ2ÿHÿhÿ}ÿiÿiÿUÿqÿƒÿ’ÿºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&ÿ.ÿ2ÿHÿhÿ}ÿiÿiÿUÿqÿƒÿ’ÿºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ***ÿ222ÿ***ÿ***ÿ"""ÿ---ÿ555ÿ;;;ÿKKKÿ???ÿÿÿÿÿÿÿÿÿ(ÿ%ÿ6ÿIÿrÿnÿTÿjÿ‹ÿuÿ|ÿ‹ÿžÿÿˆÿ’ÿ§ÿ(ÿÿÿÿÿÿÿÿÿÿÿ%ÿ6ÿIÿrÿnÿTÿjÿ‹ÿuÿ|ÿ‹ÿžÿÿˆÿ’ÿ§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ%ÿ6ÿIÿrÿnÿTÿjÿ‹ÿuÿ|ÿ‹ÿžÿÿˆÿ’ÿ§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ...ÿ,,,ÿ"""ÿ+++ÿ888ÿ///ÿ222ÿ888ÿ@@@ÿ:::ÿ777ÿ;;;ÿCCCÿÿÿÿÿÿÿÿ(ÿ6ÿKÿfÿÿqÿqÿxÿ{ÿ‚ÿˆÿ†ÿ~ÿŒÿ“ÿ©ÿŠÿ·ÿ(ÿÿÿÿÿÿÿÿÿÿ6ÿKÿfÿÿqÿqÿxÿ{ÿ‚ÿˆÿ†ÿ~ÿŒÿ“ÿ©ÿŠÿ·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ6ÿKÿfÿÿqÿqÿxÿ{ÿ‚ÿˆÿ†ÿ~ÿŒÿ“ÿ©ÿŠÿ·ÿÿÿÿÿÿÿÿÿÿÿÿÿ)))ÿ333ÿ---ÿ---ÿ000ÿ111ÿ444ÿ777ÿ666ÿ333ÿ888ÿ;;;ÿDDDÿ888ÿIIIÿÿÿÿÿÿ(ÿ8ÿFÿZÿqÿzÿ„ÿƒÿ•ÿžÿ¬ÿ´ÿ³ÿ©ÿ˜ÿªÿ¬ÿÏÿ¶ÿ(ÿÿÿÿÿÿÿÿÿ8ÿFÿZÿqÿzÿ„ÿƒÿ•ÿžÿ¬ÿ´ÿ³ÿ©ÿ˜ÿªÿ¬ÿÏÿ¶ÿÿÿÿÿÿÿÿÿÿÿÿÿ8ÿFÿZÿqÿzÿ„ÿƒÿ•ÿžÿ¬ÿ´ÿ³ÿ©ÿ˜ÿªÿ¬ÿÏÿ¶ÿÿÿÿÿÿÿÿÿÿÿÿ$$$ÿ---ÿ111ÿ555ÿ555ÿ<<<ÿ@@@ÿEEEÿIIIÿHHHÿDDDÿ===ÿEEEÿEEEÿTTTÿIIIÿÿÿÿÿÿ(ÿKÿ^ÿuÿÿ‘ÿ¢ÿ¸ÿ³ÿ¯ÿ¯ÿ¿ÿ´ÿ°ÿÂÿÞÿÙÿÕÿ(ÿÿÿÿÿÿÿÿÿÿKÿ^ÿuÿÿ‘ÿ¢ÿ¸ÿ³ÿ¯ÿ¯ÿ¿ÿ´ÿ°ÿÂÿÞÿÙÿÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿKÿ^ÿuÿÿ‘ÿ¢ÿ¸ÿ³ÿ¯ÿ¯ÿ¿ÿ´ÿ°ÿÂÿÞÿÙÿÕÿÿÿÿÿÿÿÿÿÿÿÿ&&&ÿ///ÿ333ÿ:::ÿAAAÿJJJÿHHHÿGGGÿGGGÿMMMÿIIIÿGGGÿNNNÿYYYÿXXXÿVVVÿÿÿÿÿÿÿ(ÿYÿfÿ‚ÿ ÿÉÿØÿåÿÓÿÎÿÒÿÂÿ¶ÿ³ÿêÿÖÿÕÿ(ÿÿÿÿÿÿÿÿÿÿÿYÿfÿ‚ÿ ÿÉÿØÿåÿÓÿÎÿÒÿÂÿ¶ÿ³ÿêÿÖÿÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿYÿfÿ‚ÿ ÿÉÿØÿåÿÓÿÎÿÒÿÂÿ¶ÿ³ÿêÿÖÿÕÿÿÿÿÿÿÿÿÿÿÿÿ$$$ÿ)))ÿ444ÿAAAÿQQQÿWWWÿ]]]ÿUUUÿSSSÿTTTÿNNNÿIIIÿHHHÿ___ÿVVVÿVVVÿÿÿÿÿÿÿÿ(ÿlÿzÿžÿÉÿáÿÞÿïÿÞÿØÿÕÿÒÿâÿÓÿÅÿ×ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿlÿzÿžÿÉÿáÿÞÿïÿÞÿØÿÕÿÒÿâÿÓÿÅÿ×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlÿzÿžÿÉÿáÿÞÿïÿÞÿØÿÕÿÒÿâÿÓÿÅÿ×ÿÿÿÿÿÿÿÿÿÿÿÿÿ+++ÿ111ÿ@@@ÿQQQÿ[[[ÿYYYÿaaaÿYYYÿWWWÿVVVÿTTTÿ[[[ÿUUUÿPPPÿVVVÿÿÿÿÿÿÿÿÿ(ÿXÿtÿ½ÿÁÿŒÿˆÿ†ÿ(ÿ(ÿ(ÿæÿÎÿþÿàÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿXÿtÿ½ÿÁÿŒÿˆÿ†ÿÿÿÿÿÿÿÿÿÿÿÿÿæÿÎÿþÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿXÿtÿ½ÿÁÿŒÿˆÿ†ÿÿÿÿÿÿÿÿÿÿÿÿÿæÿÎÿþÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿ###ÿ///ÿLLLÿNNNÿ888ÿ777ÿ666ÿÿÿÿ]]]ÿSSSÿfffÿ[[[ÿÿÿÿÿÿÿÿÿÿ(ÿyÿ›ÿ®ÿ{ÿÿˆÿœÿ(ÿÿ(ÿÒÿÓÿÿÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿyÿ›ÿ®ÿ{ÿÿˆÿœÿÿÿÿÿÿÿÿÿÿÒÿÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿyÿ›ÿ®ÿ{ÿÿˆÿœÿÿÿÿÿÿÿÿÿÿÒÿÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ111ÿ>>>ÿFFFÿ111ÿ:::ÿ777ÿ???ÿÿÿÿTTTÿUUUÿgggÿÿÿÿÿÿÿÿÿÿÿ(ÿ=ÿUÿxÿrÿwÿ–ÿ²ÿÖÿ(ÿ(ÿßÿåÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ=ÿUÿxÿrÿwÿ–ÿ²ÿÖÿÿÿÿÿÿÿÿÿßÿåÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ=ÿUÿxÿrÿwÿ–ÿ²ÿÖÿÿÿÿÿÿÿÿÿßÿåÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"""ÿ000ÿ...ÿ000ÿ<<<ÿHHHÿVVVÿÿÿZZZÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ;ÿJÿhÿ]ÿ†ÿ”ÿÇÿØÿ(ÿÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;ÿJÿhÿ]ÿ†ÿ”ÿÇÿØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;ÿJÿhÿ]ÿ†ÿ”ÿÇÿØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ***ÿ%%%ÿ666ÿ<<<ÿPPPÿWWWÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿEÿYÿƒÿ”ÿ§ÿÄÿÏÿ×ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿEÿYÿƒÿ”ÿ§ÿÄÿÏÿ×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿEÿYÿƒÿ”ÿ§ÿÄÿÏÿ×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$$$ÿ555ÿ<<<ÿCCCÿOOOÿTTTÿVVVÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿMÿRÿyÿ„ÿÆÿµÿµÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿMÿRÿyÿ„ÿÆÿµÿµÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿMÿRÿyÿ„ÿÆÿµÿµÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!!!ÿ111ÿ555ÿPPPÿIIIÿIIIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿbÿ`ÿ™ÿ¸ÿÍÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿbÿ`ÿ™ÿ¸ÿÍÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿbÿ`ÿ™ÿ¸ÿÍÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ'''ÿ&&&ÿ>>>ÿJJJÿRRRÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿzÿsÿ×ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzÿsÿ×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzÿsÿ×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ111ÿ...ÿVVVÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿªÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿEEEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&ÿ&&&ÿ***ÿ&&&ÿ&&&ÿ&&&ÿ***ÿ***ÿ&&&ÿ&&&ÿ&&&ÿ***ÿ&&&ÿ&&&ÿ***ÿ***ÿ&&&ÿ&&&ÿ***ÿ&&&ÿ&&&ÿ&&&ÿÿÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿÿÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿÿÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ***ÿ***ÿ***ÿ&&&ÿ&&&ÿ***ÿ&&&ÿ***ÿ***ÿ&&&ÿ***ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿÿÿ***ÿªªªÿ¦¦¦ÿ¢¢¢ÿºººÿÆÆÆÿ¦¦¦ÿ®®®ÿÆÆÆÿÂÂÂÿ¦¦¦ÿ’’’ÿŽŽŽÿªªªÿ¦¦¦ÿÆÆÆÿ¦¦¦ÿ’’’ÿ¦¦¦ÿ®®®ÿÆÆÆÿ***ÿÿÿþþþÿªªªÿ¢¢¢ÿ¢¢¢ÿ¶¶¶ÿÆÆÆÿ¦¦¦ÿ®®®ÿÆÆÆÿÂÂÂÿ¦¦¦ÿ’’’ÿŽŽŽÿ¦¦¦ÿ¢¢¢ÿÆÆÆÿªªªÿŽŽŽÿ¢¢¢ÿ²²²ÿÆÆÆÿþþþÿÿÿþþþÿªªªÿ¢¢¢ÿ¢¢¢ÿ¶¶¶ÿÆÆÆÿ¦¦¦ÿ®®®ÿÆÆÆÿÂÂÂÿ¦¦¦ÿ’’’ÿŽŽŽÿ¦¦¦ÿ¢¢¢ÿÆÆÆÿªªªÿŽŽŽÿ¢¢¢ÿ²²²ÿÆÆÆÿþþþÿÿÿ***ÿªªªÿ¦¦¦ÿ¦¦¦ÿ¶¶¶ÿÆÆÆÿ¢¢¢ÿªªªÿÆÆÆÿÂÂÂÿ¦¦¦ÿ’’’ÿŽŽŽÿ¦¦¦ÿ¢¢¢ÿÆÆÆÿ¦¦¦ÿ’’’ÿ¦¦¦ÿ²²²ÿÆÆÆÿ***ÿÿÿ&&&ÿ¦¦¦ÿRvÿB’fÿ~Fÿb6ÿ Z2ÿ F&ÿ ^6ÿ‚Fÿ‚FÿªÿŠ.ÿz^ÿ R*ÿf:ÿ N*ÿ N*ÿ R*ÿ :"ÿÆÆÆÿ&&&ÿÿÿþþþÿ¦¦¦ÿRvÿB’fÿ‚Jÿb6ÿZ.ÿ F&ÿb6ÿ‚Fÿ‚FÿªÿŠ.ÿz^ÿ R*ÿj:ÿ N*ÿ R*ÿ R.ÿ :"ÿÆÆÆÿþþþÿÿÿþþþÿ¦¦¦ÿRvÿB’fÿ‚Jÿb6ÿZ.ÿ F&ÿb6ÿ‚Fÿ‚FÿªÿŠ.ÿz^ÿ R*ÿj:ÿ N*ÿ R*ÿ R.ÿ :"ÿÆÆÆÿþþþÿÿÿ&&&ÿ¦¦¦ÿ^^^ÿnnnÿfffÿJJJÿFFFÿ666ÿJJJÿfffÿfffÿ&&&ÿ222ÿfffÿBBBÿRRRÿ:::ÿ>>>ÿ>>>ÿ***ÿÆÆÆÿ&&&ÿÿÿ***ÿÆÆÆÿ^fÿbjÿ~Fÿ ^6ÿb6ÿ R*ÿ V.ÿ‚Fÿz^ÿš&ÿjF*ÿnRÿ >"ÿ ^6ÿ B"ÿ F&ÿf6ÿj:ÿ¦¦¦ÿ***ÿÿÿþþþÿÆÆÆÿ^fÿbfÿ~Fÿ Z2ÿb6ÿ R.ÿ V2ÿ~Fÿz^ÿš&ÿjF*ÿnRÿ B"ÿb6ÿ >"ÿ B&ÿf6ÿn:ÿ¦¦¦ÿþþþÿÿÿþþþÿÆÆÆÿ^fÿbfÿ~Fÿ Z2ÿb6ÿ R.ÿ V2ÿ~Fÿz^ÿš&ÿjF*ÿnRÿ B"ÿb6ÿ >"ÿ B&ÿf6ÿn:ÿ¦¦¦ÿþþþÿÿÿ***ÿÆÆÆÿbbbÿbbbÿ^^^ÿFFFÿJJJÿ>>>ÿFFFÿbbbÿfffÿ...ÿBBBÿ^^^ÿ222ÿFFFÿ...ÿ666ÿJJJÿRRRÿ¦¦¦ÿ***ÿÿÿ&&&ÿÆÆÆÿ†JÿZnÿjZÿzBÿn:ÿr>ÿ‚FÿŠJÿz^ÿz:"ÿz^ÿb6ÿ N*ÿ F&ÿZ.ÿ >"ÿ N*ÿ^2ÿŠŠŠÿ&&&ÿÿÿþþþÿÆÆÆÿ†JÿZnÿjZÿzBÿn>ÿn:ÿ‚FÿŠJÿz^ÿz6"ÿz^ÿf6ÿ N*ÿ F&ÿ Z2ÿ >"ÿ N.ÿ^2ÿŠŠŠÿþþþÿÿÿþþþÿÆÆÆÿ†JÿZnÿjZÿzBÿn>ÿn:ÿ‚FÿŠJÿz^ÿz6"ÿz^ÿf6ÿ N*ÿ F&ÿ Z2ÿ >"ÿ N.ÿ^2ÿŠŠŠÿþþþÿÿÿ&&&ÿÆÆÆÿbbbÿbbbÿfffÿZZZÿVVVÿVVVÿbbbÿjjjÿfffÿ666ÿfffÿJJJÿ:::ÿ666ÿFFFÿ...ÿ>>>ÿFFFÿŠŠŠÿ&&&ÿÿÿ***ÿÆÆÆÿ‚Jÿ~NÿZnÿ‚Jÿ†Jÿ†Jÿ‚Jÿ‚JÿjF*ÿªÿrZÿ^2ÿb6ÿ B"ÿf6ÿ F&ÿ V2ÿR.ÿ~~~ÿ***ÿÿÿþþþÿÆÆÆÿ†Jÿ~NÿZnÿ‚JÿŠJÿ†Jÿ‚Jÿ‚FÿbJ*ÿªÿrZÿ^2ÿb6ÿ B&ÿf:ÿ F&ÿZ.ÿ N*ÿzzzÿþþþÿÿÿþþþÿÆÆÆÿ†Jÿ~NÿZnÿ‚JÿŠJÿ†Jÿ‚Jÿ‚FÿbJ*ÿªÿrZÿ^2ÿb6ÿ B&ÿf:ÿ F&ÿZ.ÿ N*ÿzzzÿþþþÿÿÿ***ÿÆÆÆÿfffÿfffÿ^^^ÿfffÿjjjÿfffÿbbbÿbbbÿBBBÿ&&&ÿ^^^ÿFFFÿJJJÿ222ÿNNNÿ666ÿBBBÿ>>>ÿ~~~ÿ***ÿÿÿ&&&ÿ¦¦¦ÿŠJÿŠJÿ^nÿRvÿZ–†ÿ>j^ÿrZÿ–&ÿ‚6ÿ^N.ÿ~Fÿ^2ÿ N*ÿ V2ÿ F&ÿ F*ÿ J&ÿr>ÿŠŠŠÿ&&&ÿÿÿþþþÿ¦¦¦ÿ†JÿŠJÿ^nÿRvÿV’†ÿ>j^ÿvZÿ–&ÿŠ2ÿ^N.ÿ‚Fÿ^2ÿ J*ÿ V2ÿ F&ÿ J&ÿ F&ÿr>ÿŽŽŽÿþþþÿÿÿþþþÿ¦¦¦ÿ†JÿŠJÿ^nÿRvÿV’†ÿ>j^ÿvZÿ–&ÿŠ2ÿ^N.ÿ‚Fÿ^2ÿ J*ÿ V2ÿ F&ÿ J&ÿ F&ÿr>ÿŽŽŽÿþþþÿÿÿ&&&ÿ¦¦¦ÿfffÿjjjÿbbbÿbbbÿvvvÿ^^^ÿbbbÿ...ÿ666ÿFFFÿbbbÿFFFÿ:::ÿFFFÿ666ÿ666ÿ:::ÿVVVÿŠŠŠÿ&&&ÿÿÿ***ÿ¦¦¦ÿŠJÿ‚Jÿ~Fÿ^žŽÿ^šŽÿ^žŽÿnB*ÿªÿz^ÿ‚Jÿj:ÿZ.ÿRBÿ N.ÿ J*ÿN*ÿ N*ÿ N*ÿ¢¢¢ÿ***ÿÿÿþþþÿ¦¦¦ÿŠJÿ‚Jÿ~Fÿ^žŽÿ^š’ÿ^žŽÿnB*ÿªÿz^ÿ†Jÿj:ÿ Z2ÿRBÿ N.ÿ J*ÿ J&ÿ N*ÿ N*ÿ¢¢¢ÿþþþÿÿÿþþþÿ¦¦¦ÿŠJÿ‚Jÿ~Fÿ^žŽÿ^š’ÿ^žŽÿnB*ÿªÿz^ÿ†Jÿj:ÿ Z2ÿRBÿ N.ÿ J*ÿ J&ÿ N*ÿ N*ÿ¢¢¢ÿþþþÿÿÿ&&&ÿ¦¦¦ÿjjjÿfffÿbbbÿvvvÿvvvÿzzzÿBBBÿ&&&ÿfffÿfffÿRRRÿFFFÿFFFÿ>>>ÿ666ÿ:::ÿ:::ÿ:::ÿ¢¢¢ÿ***ÿÿÿ&&&ÿÆÆÆÿ†Jÿr>ÿn:ÿŠJÿZ–†ÿz:.ÿ‚F:ÿz>&ÿZ–†ÿ‚Fÿ F&ÿn:ÿ~Fÿn:ÿ Z2ÿn>ÿ J&ÿZ2ÿ¢¢¢ÿ&&&ÿÿÿþþþÿÆÆÆÿ†Jÿr>ÿr>ÿŠJÿZ–†ÿz:.ÿ‚F:ÿz>&ÿZšŠÿ‚Fÿ F&ÿj:ÿ~Fÿn:ÿ V2ÿr>ÿ F&ÿ Z2ÿ¦¦¦ÿþþþÿÿÿþþþÿÆÆÆÿ†Jÿr>ÿr>ÿŠJÿZ–†ÿz:.ÿ‚F:ÿz>&ÿZšŠÿ‚Fÿ F&ÿj:ÿ~Fÿn:ÿ V2ÿr>ÿ F&ÿ Z2ÿ¦¦¦ÿþþþÿÿÿ***ÿÆÆÆÿfffÿVVVÿRRRÿjjjÿvvvÿ>>>ÿBBBÿ:::ÿrrrÿbbbÿ222ÿRRRÿfffÿZZZÿBBBÿVVVÿ:::ÿFFFÿ¢¢¢ÿ&&&ÿÿÿ***ÿÆÆÆÿr>ÿ J&ÿj:ÿz^ÿz:"ÿz6"ÿ^žŽÿ^š’ÿ^¢’ÿŠJÿŠJÿŠJÿz^ÿz^ÿnVÿb6ÿr>ÿ‚Jÿžžžÿ***ÿÿÿþþþÿÆÆÆÿr>ÿ J*ÿj:ÿz^ÿz:"ÿz6"ÿJ¢Šÿ^š’ÿ^žŽÿ†Jÿ†JÿŠJÿ~Zÿz^ÿnRÿb6ÿr>ÿ†JÿžžžÿþþþÿÿÿþþþÿÆÆÆÿr>ÿ J*ÿj:ÿz^ÿz:"ÿz6"ÿJ¢Šÿ^š’ÿ^žŽÿ†Jÿ†JÿŠJÿ~Zÿz^ÿnRÿb6ÿr>ÿ†Jÿžžžÿþþþÿÿÿ***ÿÆÆÆÿVVVÿ:::ÿRRRÿfffÿ:::ÿ666ÿvvvÿfffÿzzzÿjjjÿjjjÿjjjÿfffÿfffÿZZZÿNNNÿVVVÿbbbÿžžžÿ***ÿÿÿ&&&ÿ¦¦¦ÿ Z2ÿ^2ÿ~Bÿz^ÿz:"ÿªÿ~ZÿV’†ÿZvÿZnÿ~Fÿ†JÿŠJÿŠJÿ†Jÿ†Jÿn:ÿv>ÿŠŠŠÿ&&&ÿÿÿþþþÿ¦¦¦ÿZ2ÿ^2ÿ~Bÿz^ÿz:"ÿªÿz^ÿZ’‚ÿZvÿZnÿ~Fÿ†JÿŠJÿŠJÿŠJÿ†Jÿn>ÿvBÿŽŽŽÿþþþÿÿÿþþþÿ¦¦¦ÿZ2ÿ^2ÿ~Bÿz^ÿz:"ÿªÿz^ÿZ’‚ÿZvÿZnÿ~Fÿ†JÿŠJÿŠJÿŠJÿ†Jÿn>ÿvBÿŽŽŽÿþþþÿÿÿ&&&ÿ¦¦¦ÿFFFÿFFFÿ^^^ÿfffÿ:::ÿ***ÿfffÿ~~~ÿnnnÿfffÿfffÿfffÿbbbÿ^^^ÿ^^^ÿZZZÿfffÿjjjÿŠŠŠÿ&&&ÿÿÿ&&&ÿªªªÿf:ÿ Z2ÿvBÿz^ÿªÿz^ÿ‚Fÿ†Jÿ†Jÿ^fÿffÿ†Jÿ†Jÿ‚FÿzBÿ~Bÿr>ÿ R.ÿ¢¢¢ÿ***ÿÿÿþþþÿªªªÿf:ÿ Z2ÿvBÿz^ÿªÿz^ÿ‚FÿŠJÿ†Jÿ^fÿffÿ†Jÿ†Jÿ‚FÿzBÿ~Fÿr>ÿ R*ÿžžžÿþþþÿÿÿþþþÿªªªÿf:ÿ Z2ÿvBÿz^ÿªÿz^ÿ‚FÿŠJÿ†Jÿ^fÿffÿ†Jÿ†Jÿ‚FÿzBÿ~Fÿr>ÿ R*ÿžžžÿþþþÿÿÿ&&&ÿ®®®ÿNNNÿFFFÿZZZÿfffÿ***ÿfffÿbbbÿjjjÿfffÿbbbÿ^^^ÿ^^^ÿ^^^ÿbbbÿbbbÿbbbÿbbbÿbbbÿ¢¢¢ÿ***ÿÿÿ***ÿ®®®ÿ Z2ÿj:ÿv>ÿz:"ÿŠ.ÿz^ÿŠJÿŠJÿ‚Fÿ‚Fÿ^jÿbbÿbjÿzBÿZšŠÿV’†ÿŠJÿ‚Fÿ¢¢¢ÿ&&&ÿÿÿþþþÿ®®®ÿ Z2ÿj:ÿv>ÿz:"ÿ’*ÿz^ÿŠJÿ†Jÿ†Jÿ‚Fÿ^jÿbbÿbjÿzBÿZšŠÿV’†ÿŠJÿ‚Jÿ¦¦¦ÿþþþÿÿÿþþþÿ®®®ÿ Z2ÿj:ÿv>ÿz:"ÿ’*ÿz^ÿŠJÿ†Jÿ†Jÿ‚Fÿ^jÿbbÿbjÿzBÿZšŠÿV’†ÿŠJÿ‚Jÿ¦¦¦ÿþþþÿÿÿ***ÿªªªÿFFFÿRRRÿZZZÿ:::ÿ...ÿfffÿjjjÿfffÿ^^^ÿ^^^ÿbbbÿVVVÿVVVÿ^^^ÿ^^^ÿ^^^ÿbbbÿ^^^ÿ¢¢¢ÿ&&&ÿÿÿ&&&ÿ¢¢¢ÿj:ÿr>ÿvZÿªÿbJ*ÿ‚Fÿ†Jÿ†Jÿj:ÿ~Bÿ‚FÿzBÿRvÿ^¢’ÿf®žÿzBÿ‚FÿŠJÿªªªÿ***ÿÿÿþþþÿ¢¢¢ÿf6ÿr>ÿvZÿªÿbJ*ÿ‚FÿŠJÿ†Jÿj:ÿzBÿ‚Fÿ~BÿRvÿ^¢’ÿf®žÿzBÿ‚JÿŠJÿªªªÿþþþÿÿÿþþþÿ¢¢¢ÿf6ÿr>ÿvZÿªÿbJ*ÿ‚FÿŠJÿ†Jÿj:ÿzBÿ‚Fÿ~BÿRvÿ^¢’ÿf®žÿzBÿ‚JÿŠJÿªªªÿþþþÿÿÿ&&&ÿžžžÿRRRÿVVVÿbbbÿ***ÿBBBÿfffÿfffÿbbbÿ^^^ÿ^^^ÿVVVÿNNNÿRRRÿRRRÿRRRÿRRRÿVVVÿ^^^ÿªªªÿ***ÿÿÿ***ÿ¦¦¦ÿ^2ÿr>ÿŠJÿŠ2ÿz^ÿ~FÿŠJÿ~BÿZ2ÿf6ÿ†Jÿ‚FÿZšŠÿZ’†ÿ^šŽÿZ’‚ÿŽNÿ†JÿÆÆÆÿ&&&ÿÿÿþþþÿ¦¦¦ÿ^2ÿr>ÿŠJÿŠ2ÿz^ÿ‚Fÿ†Jÿ~FÿZ.ÿf6ÿ†Jÿ~FÿZšŠÿZ’‚ÿ^šŽÿV’†ÿŠJÿŠJÿÆÆÆÿþþþÿÿÿþþþÿ¦¦¦ÿ^2ÿr>ÿŠJÿŠ2ÿz^ÿ‚Fÿ†Jÿ~FÿZ.ÿf6ÿ†Jÿ~FÿZšŠÿZ’‚ÿ^šŽÿV’†ÿŠJÿŠJÿÆÆÆÿþþþÿÿÿ***ÿªªªÿFFFÿZZZÿjjjÿ222ÿfffÿbbbÿjjjÿbbbÿ^^^ÿVVVÿRRRÿRRRÿNNNÿNNNÿNNNÿNNNÿRRRÿNNNÿÆÆÆÿ&&&ÿÿÿ&&&ÿ¦¦¦ÿvBÿ~Fÿz^ÿŠ2ÿz^ÿ†Jÿ‚Fÿb6ÿ N.ÿ B"ÿ†Jÿ‚Jÿ†Jÿ^¢–ÿj²žÿ>j^ÿŠJÿ‚Fÿ²²²ÿ***ÿÿÿþþþÿ¦¦¦ÿvBÿ~Fÿz^ÿŠ2ÿz^ÿ†Jÿ~Fÿb6ÿ R*ÿ B"ÿ†Jÿ‚Fÿ†Jÿ^¢–ÿj²žÿ>j^ÿŠJÿ‚Jÿ²²²ÿþþþÿÿÿþþþÿ¦¦¦ÿvBÿ~Fÿz^ÿŠ2ÿz^ÿ†Jÿ~Fÿb6ÿ R*ÿ B"ÿ†Jÿ‚Fÿ†Jÿ^¢–ÿj²žÿ>j^ÿŠJÿ‚Jÿ²²²ÿþþþÿÿÿ&&&ÿ¦¦¦ÿZZZÿbbbÿfffÿ666ÿfffÿfffÿjjjÿbbbÿ^^^ÿRRRÿRRRÿNNNÿBBBÿFFFÿBBBÿBBBÿFFFÿNNNÿ²²²ÿ***ÿÿÿ***ÿÂÂÂÿŠJÿ†Jÿš&ÿªÿFZ2ÿ~Fÿr>ÿN*ÿZ.ÿ Z2ÿj:ÿzBÿŠJÿzBÿRŠzÿVrÿZnÿ~Nÿ¦¦¦ÿ&&&ÿÿÿþþþÿÆÆÆÿŠJÿ†Jÿš&ÿªÿFZ2ÿ~Fÿr>ÿN*ÿV.ÿ Z2ÿj:ÿzBÿŠJÿzBÿRŠzÿRvÿZnÿ‚Nÿ¦¦¦ÿþþþÿÿÿþþþÿÆÆÆÿŠJÿ†Jÿš&ÿªÿFZ2ÿ~Fÿr>ÿN*ÿV.ÿ Z2ÿj:ÿzBÿŠJÿzBÿRŠzÿRvÿZnÿ‚Nÿ¦¦¦ÿþþþÿÿÿ***ÿÂÂÂÿjjjÿfffÿ***ÿ&&&ÿNNNÿbbbÿbbbÿbbbÿ^^^ÿZZZÿNNNÿRRRÿFFFÿFFFÿBBBÿFFFÿBBBÿFFFÿ¦¦¦ÿ&&&ÿÿÿ&&&ÿÆÆÆÿŠJÿ†Jÿz:"ÿªÿz^ÿ†Jÿ V.ÿ R.ÿ V2ÿ N*ÿ >"ÿj:ÿ‚Fÿ‚Fÿ†Jÿ‚JÿbbÿVrÿ¢¢¢ÿ***ÿÿÿþþþÿÆÆÆÿ†Jÿ†Jÿz>"ÿªÿz^ÿŠJÿ V.ÿR.ÿ V.ÿ N*ÿ >"ÿj:ÿ‚Jÿ†Jÿ†Jÿ‚JÿbbÿVrÿ¢¢¢ÿþþþÿÿÿþþþÿÆÆÆÿ†Jÿ†Jÿz>"ÿªÿz^ÿŠJÿ V.ÿR.ÿ V.ÿ N*ÿ >"ÿj:ÿ‚Jÿ†Jÿ†Jÿ‚JÿbbÿVrÿ¢¢¢ÿþþþÿÿÿ&&&ÿÆÆÆÿjjjÿfffÿ:::ÿ***ÿfffÿfffÿfffÿbbbÿbbbÿbbbÿRRRÿRRRÿBBBÿBBBÿ:::ÿ:::ÿ>>>ÿBBBÿ¢¢¢ÿ***ÿÿÿ***ÿ¦¦¦ÿŠJÿz^ÿ‚6ÿ6n>ÿ‚FÿZ2ÿb6ÿR.ÿN*ÿN*ÿZ2ÿ R.ÿ ^6ÿ V2ÿvBÿzBÿ~FÿRvÿªªªÿ&&&ÿÿÿþþþÿ¦¦¦ÿŠJÿz^ÿ~6"ÿ6n>ÿ~Bÿ V2ÿb6ÿ R.ÿN*ÿN*ÿZ2ÿR.ÿ^2ÿ V.ÿvBÿzBÿ~FÿVrÿªªªÿþþþÿÿÿþþþÿ¦¦¦ÿŠJÿz^ÿ~6"ÿ6n>ÿ~Bÿ V2ÿb6ÿ R.ÿN*ÿN*ÿZ2ÿR.ÿ^2ÿ V.ÿvBÿzBÿ~FÿVrÿªªªÿþþþÿÿÿ***ÿ¦¦¦ÿjjjÿfffÿ666ÿVVVÿbbbÿFFFÿRRRÿbbbÿ^^^ÿ^^^ÿRRRÿRRRÿBBBÿBBBÿ666ÿ666ÿ>>>ÿBBBÿªªªÿ&&&ÿÿÿ&&&ÿ¦¦¦ÿŠJÿz^ÿš&ÿz^ÿŠJÿb6ÿ F&ÿZ.ÿf6ÿ V.ÿ V.ÿr>ÿZ2ÿ^2ÿŠJÿŠJÿŠJÿŠJÿ®®®ÿ***ÿÿÿþþþÿ¦¦¦ÿŠJÿz^ÿš&ÿz^ÿŠJÿb6ÿ J*ÿZ.ÿf6ÿ V.ÿ V.ÿr>ÿ Z2ÿ^2ÿ†JÿŠJÿŠJÿŠJÿªªªÿþþþÿÿÿþþþÿ¦¦¦ÿŠJÿz^ÿš&ÿz^ÿŠJÿb6ÿ J*ÿZ.ÿf6ÿ V.ÿ V.ÿr>ÿ Z2ÿ^2ÿ†JÿŠJÿŠJÿŠJÿªªªÿþþþÿÿÿ&&&ÿ¦¦¦ÿjjjÿfffÿ...ÿfffÿjjjÿJJJÿ666ÿfffÿbbbÿbbbÿ^^^ÿRRRÿRRRÿBBBÿBBBÿ>>>ÿBBBÿFFFÿ®®®ÿ***ÿÿÿ***ÿÆÆÆÿºººÿ¦¦¦ÿ¦¦¦ÿ²²²ÿ¾¾¾ÿ¦¦¦ÿžžžÿšššÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ¶¶¶ÿºººÿªªªÿ¦¦¦ÿ¦¦¦ÿÆÆÆÿ¶¶¶ÿ¦¦¦ÿ&&&ÿÿÿþþþÿÆÆÆÿºººÿ¦¦¦ÿ¦¦¦ÿ®®®ÿ¾¾¾ÿ¦¦¦ÿšššÿšššÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ¶¶¶ÿºººÿªªªÿ¦¦¦ÿ¦¦¦ÿÆÆÆÿ¶¶¶ÿ¦¦¦ÿþþþÿÿÿþþþÿÆÆÆÿºººÿ¦¦¦ÿ¦¦¦ÿ®®®ÿ¾¾¾ÿ¦¦¦ÿšššÿšššÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ¶¶¶ÿºººÿªªªÿ¦¦¦ÿ¦¦¦ÿÆÆÆÿ¶¶¶ÿ¦¦¦ÿþþþÿÿÿ***ÿÆÆÆÿºººÿ¦¦¦ÿ¦¦¦ÿ²²²ÿ¾¾¾ÿ¦¦¦ÿžžžÿšššÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ¶¶¶ÿºººÿªªªÿ¦¦¦ÿ¦¦¦ÿÆÆÆÿ¶¶¶ÿ¦¦¦ÿ&&&ÿÿÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿÿÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿÿÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿÿÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ@@AÿCCCÿNPPÿcZcÿ$0ÿ)ÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@@AÿCCCÿNPPÿcZcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@@AÿCCCÿNPPÿcZcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$$$ÿ&&&ÿ---ÿ555ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ,11ÿ%*ÿ'25ÿ8KOÿ;LOÿ&;GÿEOWÿISWÿnjvÿ^K`ÿ!,ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,11ÿ%*ÿ'25ÿ8KOÿ;LOÿ&;GÿEOWÿISWÿnjvÿ^K`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,11ÿ%*ÿ'25ÿ8KOÿ;LOÿ&;GÿEOWÿISWÿnjvÿ^K`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ***ÿ+++ÿ"""ÿ---ÿ///ÿ???ÿ///ÿÿÿÿÿÿÿÿÿÿ(ÿ)ÿ(ÿ(ÿkpoÿ™™™ÿ§§§ÿƒ‰ÿlnnÿ[ecÿ9<<ÿ>HJÿ0FFÿ6:@ÿ0:AÿOZcÿagjÿL>Lÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿkpoÿ™™™ÿ§§§ÿƒ‰ÿlnnÿ[ecÿ9<<ÿ>HJÿ0FFÿ6:@ÿ0:AÿOZcÿagjÿL>Lÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿkpoÿ™™™ÿ§§§ÿƒ‰ÿlnnÿ[ecÿ9<<ÿ>HJÿ0FFÿ6:@ÿ0:AÿOZcÿagjÿL>Lÿÿÿÿÿÿÿÿÿÿÿÿÿÿ???ÿWWWÿ___ÿNNNÿ>>>ÿ888ÿ"""ÿ(((ÿ&&&ÿ"""ÿ"""ÿ444ÿ;;;ÿ&&&ÿÿÿÿÿÿ(ÿ®°°ÿ«®®ÿ²µµÿ»½½ÿPPPÿiiiÿ°°°ÿ¤¤¤ÿ¨¨¨ÿ¯¯¯ÿ²²²ÿ¸¸¸ÿ˜œ™ÿ€‚‚ÿ_aaÿQX\ÿ6CJÿELSÿ(ÿÿÿÿÿÿÿÿÿ®°°ÿ«®®ÿ²µµÿ»½½ÿPPPÿiiiÿ°°°ÿ¤¤¤ÿ¨¨¨ÿ¯¯¯ÿ²²²ÿ¸¸¸ÿ˜œ™ÿ€‚‚ÿ_aaÿQX\ÿ6CJÿELSÿÿÿÿÿÿÿÿÿÿÿÿÿ®°°ÿ«®®ÿ²µµÿ»½½ÿPPPÿiiiÿ°°°ÿ¤¤¤ÿ¨¨¨ÿ¯¯¯ÿ²²²ÿ¸¸¸ÿ˜œ™ÿ€‚‚ÿ_aaÿQX\ÿ6CJÿELSÿÿÿÿÿÿÿÿÿÿdddÿbbbÿfffÿkkkÿ---ÿ<<<ÿdddÿ]]]ÿ```ÿdddÿeeeÿiiiÿXXXÿIIIÿ777ÿ222ÿ&&&ÿ,,,ÿÿÿÿÿÿÿ(ÿ(ÿšœœÿ³µµÿ°²²ÿ¢¤¤ÿ‘‘ÿPQQÿKLLÿABBÿ]^_ÿ_b`ÿuuuÿ‚‚‚ÿˆˆˆÿ©©©ÿµµµÿ–‘˜ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿšœœÿ³µµÿ°²²ÿ¢¤¤ÿ‘‘ÿPQQÿKLLÿABBÿ]^_ÿ_b`ÿuuuÿ‚‚‚ÿˆˆˆÿ©©©ÿµµµÿ–‘˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿšœœÿ³µµÿ°²²ÿ¢¤¤ÿ‘‘ÿPQQÿKLLÿABBÿ]^_ÿ_b`ÿuuuÿ‚‚‚ÿˆˆˆÿ©©©ÿµµµÿ–‘˜ÿÿÿÿÿÿÿÿÿÿÿÿXXXÿfffÿeeeÿ]]]ÿRRRÿ---ÿ+++ÿ%%%ÿ555ÿ777ÿCCCÿJJJÿMMMÿ```ÿgggÿTTTÿÿÿÿÿÿÿÿÿ(ÿ)ÿ(ÿ®°°ÿÃÇÇÿ¡¡ÿ‘‘ÿ]hbÿ€‚‚ÿdieÿ^bbÿHHIÿmmmÿ‘”•ÿqvvÿ_^_ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®°°ÿÃÇÇÿ¡¡ÿ‘‘ÿ]hbÿ€‚‚ÿdieÿ^bbÿHHIÿmmmÿ‘”•ÿqvvÿ_^_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®°°ÿÃÇÇÿ¡¡ÿ‘‘ÿ]hbÿ€‚‚ÿdieÿ^bbÿHHIÿmmmÿ‘”•ÿqvvÿ_^_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdddÿqqqÿ[[[ÿRRRÿ999ÿIIIÿ;;;ÿ777ÿ)))ÿ>>>ÿTTTÿCCCÿ555ÿÿÿÿÿÿÿÿÿÿÿÿ)ÿ)ÿprsÿ§§§ÿ¼¼¼ÿ¢¢¢ÿyyyÿpppÿEFGÿMMMÿÊÊÉÿ­®©ÿ|ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿprsÿ§§§ÿ¼¼¼ÿ¢¢¢ÿyyyÿpppÿEFGÿMMMÿÊÊÉÿ­®©ÿ|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿprsÿ§§§ÿ¼¼¼ÿ¢¢¢ÿyyyÿpppÿEFGÿMMMÿÊÊÉÿ­®©ÿ|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿAAAÿ___ÿkkkÿ\\\ÿEEEÿ@@@ÿ(((ÿ,,,ÿrrrÿbbbÿHHHÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)ÿ—–—ÿ“““ÿ«««ÿ¼¼¼ÿ°±±ÿ…}ÿ¤ŸŸÿ–‚”ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ—–—ÿ“““ÿ«««ÿ¼¼¼ÿ°±±ÿ…}ÿ¤ŸŸÿ–‚”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ—–—ÿ“““ÿ«««ÿ¼¼¼ÿ°±±ÿ…}ÿ¤ŸŸÿ–‚”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿUUUÿTTTÿaaaÿkkkÿdddÿHHHÿZZZÿNNNÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ`ÿKÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`ÿKÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ`ÿKÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ¸ÿ¬ÿmÿIÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¸ÿ¬ÿmÿIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¸ÿ¬ÿmÿIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ777ÿ333ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿâÿÙÿÁÿ´ÿoÿKÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâÿÙÿÁÿ´ÿoÿKÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâÿÙÿÁÿ´ÿoÿKÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCCCÿAAAÿ999ÿ666ÿ!!!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿðÿðÿðÿÎÿ£ÿvÿcÿVÿ'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿðÿÎÿ£ÿvÿcÿVÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿðÿÎÿ£ÿvÿcÿVÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿHHHÿHHHÿHHHÿ===ÿ000ÿ###ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿ(ÿóÿÒÿµÿzÿ)ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóÿÒÿµÿzÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóÿÒÿµÿzÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿHHHÿ???ÿ666ÿ$$$ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿøÿÖÿÄÿ›ÿ *ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÖÿÄÿ›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÖÿÄÿ›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿJJJÿ@@@ÿ:::ÿ...ÿ!!!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿþÿÙÿÌÿ¨ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÙÿÌÿ¨ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÙÿÌÿ¨ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLLLÿAAAÿ===ÿ222ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿøÿÔÿÁÿÿ *ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÔÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøÿÔÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿJJJÿ???ÿ999ÿ///ÿ!!!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿþÿðÿëÿ·ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿðÿëÿ·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿðÿëÿ·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLLLÿHHHÿFFFÿ666ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&ÿ&&&ÿ***ÿ&&&ÿ&&&ÿ&&&ÿ***ÿ***ÿ&&&ÿ&&&ÿ&&&ÿ***ÿ&&&ÿ&&&ÿ***ÿ***ÿ&&&ÿ&&&ÿ***ÿ&&&ÿ&&&ÿ&&&ÿÿÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿÿÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿÿÿ&&&ÿ&&&ÿ***ÿ&&&ÿ&&&ÿ&&&ÿ***ÿ***ÿ&&&ÿ&&&ÿ&&&ÿ***ÿ&&&ÿ&&&ÿ***ÿ***ÿ&&&ÿ&&&ÿ***ÿ&&&ÿ&&&ÿ&&&ÿÿÿ***ÿªªªÿ¦¦¦ÿ¢¢¢ÿºººÿÆÆÆÿ¦¦¦ÿ®®®ÿÆÆÆÿÂÂÂÿ¦¦¦ÿ’’’ÿŽŽŽÿªªªÿ¦¦¦ÿÆÆÆÿ¦¦¦ÿ’’’ÿ¦¦¦ÿ®®®ÿÆÆÆÿ***ÿÿÿþþþÿªªªÿ¦¦¦ÿ¢¢¢ÿºººÿÆÆÆÿ¦¦¦ÿ®®®ÿÆÆÆÿÂÂÂÿ¦¦¦ÿ’’’ÿŽŽŽÿªªªÿ¦¦¦ÿÆÆÆÿ¦¦¦ÿ’’’ÿ¦¦¦ÿ®®®ÿÆÆÆÿþþþÿÿÿþþþÿªªªÿ¦¦¦ÿ¢¢¢ÿºººÿÆÆÆÿ¦¦¦ÿ®®®ÿÆÆÆÿÂÂÂÿ¦¦¦ÿ’’’ÿŽŽŽÿªªªÿ¦¦¦ÿÆÆÆÿ¦¦¦ÿ’’’ÿ¦¦¦ÿ®®®ÿÆÆÆÿþþþÿÿÿ***ÿªªªÿ¦¦¦ÿ¢¢¢ÿºººÿÆÆÆÿ¦¦¦ÿ®®®ÿÆÆÆÿÂÂÂÿ¦¦¦ÿ’’’ÿŽŽŽÿªªªÿ¦¦¦ÿÆÆÆÿ¦¦¦ÿ’’’ÿ¦¦¦ÿ®®®ÿÆÆÆÿ***ÿÿÿ&&&ÿ¦¦¦ÿ2Yÿ1[ÿ7iÿ;qÿ8kÿ6kÿ7qÿ8uÿ:qÿ6gÿ4cÿ2\ÿ-Uÿ-Uÿ,Sÿ+Pÿ,Qÿ,TÿÆÆÆÿ&&&ÿÿÿþþþÿ¦¦¦ÿ2Yÿ1[ÿ7iÿ;qÿ8kÿ6kÿ7qÿ8uÿ:qÿ6gÿ4cÿ2\ÿ-Uÿ-Uÿ,Sÿ+Pÿ,Qÿ,TÿÆÆÆÿþþþÿÿÿþþþÿ¦¦¦ÿ2Yÿ1[ÿ7iÿ;qÿ8kÿ6kÿ7qÿ8uÿ:qÿ6gÿ4cÿ2\ÿ-Uÿ-Uÿ,Sÿ+Pÿ,Qÿ,TÿÆÆÆÿþþþÿÿÿ&&&ÿ¦¦¦ÿ999ÿ888ÿ@@@ÿDDDÿAAAÿ???ÿAAAÿCCCÿDDDÿ???ÿ<<<ÿ999ÿ444ÿ444ÿ333ÿ222ÿ333ÿ333ÿÆÆÆÿ&&&ÿÿÿ***ÿÆÆÆÿ3gÿ3dÿ4eÿ4fÿ8jÿ>>ÿ<<<ÿ ÿ+++ÿ888ÿNNNÿWWWÿ///ÿ333ÿ>>>ÿ000ÿÿ ÿ999ÿ888ÿŠŠŠÿ&&&ÿÿÿ***ÿÆÆÆÿ>„ÿ=€ÿ ÿ ÿ ÿW^aÿ{||ÿhqpÿV_`ÿESSÿ.7<ÿ5FHÿGIQÿ??LÿBMVÿDALÿÿ8ÿ~~~ÿ***ÿÿÿþþþÿÆÆÆÿ>„ÿ=€ÿ ÿ ÿ ÿW^aÿ{||ÿhqpÿV_`ÿESSÿ.7<ÿ5FHÿGIQÿ??LÿBMVÿDALÿÿ8ÿ~~~ÿþþþÿÿÿþþþÿÆÆÆÿ>„ÿ=€ÿ ÿ ÿ ÿW^aÿ{||ÿhqpÿV_`ÿESSÿ.7<ÿ5FHÿGIQÿ??LÿBMVÿDALÿÿ8ÿ~~~ÿþþþÿÿÿ***ÿÆÆÆÿJJJÿIIIÿ ÿ ÿÿ^^^ÿ|||ÿpppÿ___ÿRRRÿ777ÿEEEÿKKKÿBBBÿNNNÿDDDÿÿEEEÿ~~~ÿ***ÿÿÿ&&&ÿ¦¦¦ÿ>~ÿ )2ÿ³µ´ÿ¥©ªÿ±´µÿLLLÿ†††ÿ­­­ÿ§§§ÿ®®®ÿ¯¯°ÿž£ ÿ}ÿVZ[ÿCMSÿ@HOÿ",ÿ)SÿŠŠŠÿ&&&ÿÿÿþþþÿ¦¦¦ÿ>~ÿ )2ÿ³µ´ÿ¥©ªÿ±´µÿLLLÿ†††ÿ­­­ÿ§§§ÿ®®®ÿ¯¯°ÿž£ ÿ}ÿVZ[ÿCMSÿ@HOÿ",ÿ)SÿŠŠŠÿþþþÿÿÿþþþÿ¦¦¦ÿ>~ÿ )2ÿ³µ´ÿ¥©ªÿ±´µÿLLLÿ†††ÿ­­­ÿ§§§ÿ®®®ÿ¯¯°ÿž£ ÿ}ÿVZ[ÿCMSÿ@HOÿ",ÿ)SÿŠŠŠÿþþþÿÿÿ&&&ÿ¦¦¦ÿIIIÿ***ÿµµµÿ©©©ÿ´´´ÿLLLÿ†††ÿ­­­ÿ§§§ÿ®®®ÿ¯¯¯ÿ¢¢¢ÿÿZZZÿNNNÿIIIÿ###ÿ111ÿŠŠŠÿ&&&ÿÿÿ***ÿ¦¦¦ÿ4[ÿÿÿ_dhÿ¤§¨ÿ¨««ÿ¢¥¥ÿhjjÿMNNÿ?AAÿ]_^ÿijiÿ|||ÿ‹‹‹ÿ²²²ÿª¥©ÿ'1ÿ6nÿ¢¢¢ÿ***ÿÿÿþþþÿ¦¦¦ÿ4[ÿÿÿ_dhÿ¤§¨ÿ¨««ÿ¢¥¥ÿhjjÿMNNÿ?AAÿ]_^ÿijiÿ|||ÿ‹‹‹ÿ²²²ÿª¥©ÿ'1ÿ6nÿ¢¢¢ÿþþþÿÿÿþþþÿ¦¦¦ÿ4[ÿÿÿ_dhÿ¤§¨ÿ¨««ÿ¢¥¥ÿhjjÿMNNÿ?AAÿ]_^ÿijiÿ|||ÿ‹‹‹ÿ²²²ÿª¥©ÿ'1ÿ6nÿ¢¢¢ÿþþþÿÿÿ***ÿ¦¦¦ÿ;;;ÿÿÿdddÿ§§§ÿ«««ÿ¥¥¥ÿjjjÿNNNÿAAAÿ___ÿjjjÿ|||ÿ‹‹‹ÿ²²²ÿ¦¦¦ÿ)))ÿ@@@ÿ¢¢¢ÿ***ÿÿÿ&&&ÿÆÆÆÿ‰ÿ;Šÿ<Šÿ<Šÿ@ÿ@‘ÿÿ!'ÿÿ°®®ÿµ´³ÿ®®­ÿztvÿ”ÿ”Œ–ÿBIQÿ ÿ2]ÿžžžÿ***ÿÿÿþþþÿÆÆÆÿ>‰ÿ;Šÿ<Šÿ<Šÿ@ÿ@‘ÿÿ!'ÿÿ°®®ÿµ´³ÿ®®­ÿztvÿ”ÿ”Œ–ÿBIQÿ ÿ2]ÿžžžÿþþþÿÿÿþþþÿÆÆÆÿ>‰ÿ;Šÿ<Šÿ<Šÿ@ÿ@‘ÿÿ!'ÿÿ°®®ÿµ´³ÿ®®­ÿztvÿ”ÿ”Œ–ÿBIQÿ ÿ2]ÿžžžÿþþþÿÿÿ***ÿÆÆÆÿKKKÿIIIÿJJJÿJJJÿNNNÿNNNÿÿ"""ÿÿ®®®ÿ´´´ÿ®®®ÿuuuÿÿÿJJJÿÿ:::ÿžžžÿ***ÿÿÿ&&&ÿ¦¦¦ÿ@ÿ=Šÿ>‰ÿ;‰ÿ:€ÿ9€ÿ:€ÿ9yÿ%-ÿ(1ÿ"+4ÿ",5ÿ'0ÿ!)3ÿ!ÿÿ6vÿ3vÿŠŠŠÿ&&&ÿÿÿþþþÿ¦¦¦ÿ@ÿ=Šÿ>‰ÿ;‰ÿ:€ÿ9€ÿ:€ÿ9yÿ%-ÿ(1ÿ"+4ÿ",5ÿ'0ÿ!)3ÿ!ÿÿ6vÿ3vÿŠŠŠÿþþþÿÿÿþþþÿ¦¦¦ÿ@ÿ=Šÿ>‰ÿ;‰ÿ:€ÿ9€ÿ:€ÿ9yÿ%-ÿ(1ÿ"+4ÿ",5ÿ'0ÿ!)3ÿ!ÿÿ6vÿ3vÿŠŠŠÿþþþÿÿÿ&&&ÿ¦¦¦ÿNNNÿKKKÿKKKÿIIIÿFFFÿFFFÿFFFÿDDDÿ&&&ÿ)))ÿ,,,ÿ---ÿ(((ÿ+++ÿÿÿBBBÿ???ÿŠŠŠÿ&&&ÿÿÿ&&&ÿªªªÿ9zÿ6uÿ7yÿ7wÿ5mÿ3lÿ ÿ",ÿ"+ÿ *ÿÿÿÿÿ7oÿ7oÿ5lÿ6qÿ¢¢¢ÿ***ÿÿÿþþþÿªªªÿ9zÿ6uÿ7yÿ7wÿ5mÿ3lÿ ÿ",ÿ"+ÿ *ÿÿÿÿÿ7oÿ7oÿ5lÿ6qÿ¢¢¢ÿþþþÿÿÿþþþÿªªªÿ9zÿ6uÿ7yÿ7wÿ5mÿ3lÿ ÿ",ÿ"+ÿ *ÿÿÿÿÿ7oÿ7oÿ5lÿ6qÿ¢¢¢ÿþþþÿÿÿ&&&ÿªªªÿEEEÿAAAÿCCCÿBBBÿ???ÿ===ÿÿ###ÿ###ÿ"""ÿÿÿÿÿAAAÿAAAÿ???ÿ@@@ÿ¢¢¢ÿ***ÿÿÿ***ÿ®®®ÿ2bÿ1bÿ1aÿ1^ÿ/bÿ ÿ"*0ÿ689ÿFNOÿUU]ÿ-:ÿ(2;ÿ6>>ÿ000ÿÿ ÿ===ÿ@@@ÿ¢¢¢ÿ&&&ÿÿÿ&&&ÿ¢¢¢ÿ>{ÿ:{ÿ ÿ ÿ ÿW^aÿ{||ÿhqpÿV_`ÿESSÿ.7<ÿ5FHÿGIQÿ??LÿBMVÿDALÿÿ6iÿªªªÿ***ÿÿÿþþþÿ¢¢¢ÿ>{ÿ:{ÿ ÿ ÿ ÿW^aÿ{||ÿhqpÿV_`ÿESSÿ.7<ÿ5FHÿGIQÿ??LÿBMVÿDALÿÿ6iÿªªªÿþþþÿÿÿþþþÿ¢¢¢ÿ>{ÿ:{ÿ ÿ ÿ ÿW^aÿ{||ÿhqpÿV_`ÿESSÿ.7<ÿ5FHÿGIQÿ??LÿBMVÿDALÿÿ6iÿªªªÿþþþÿÿÿ&&&ÿ¢¢¢ÿHHHÿEEEÿ ÿ ÿÿ^^^ÿ|||ÿpppÿ___ÿRRRÿ777ÿEEEÿKKKÿBBBÿNNNÿDDDÿÿ???ÿªªªÿ***ÿÿÿ***ÿ¦¦¦ÿ3gÿ )2ÿ³µ´ÿ¥©ªÿ±´µÿLLLÿ†††ÿ­­­ÿ§§§ÿ®®®ÿ¯¯°ÿž£ ÿ}ÿVZ[ÿCMSÿ@HOÿ",ÿC‹ÿÆÆÆÿ&&&ÿÿÿþþþÿ¦¦¦ÿ3gÿ )2ÿ³µ´ÿ¥©ªÿ±´µÿLLLÿ†††ÿ­­­ÿ§§§ÿ®®®ÿ¯¯°ÿž£ ÿ}ÿVZ[ÿCMSÿ@HOÿ",ÿC‹ÿÆÆÆÿþþþÿÿÿþþþÿ¦¦¦ÿ3gÿ )2ÿ³µ´ÿ¥©ªÿ±´µÿLLLÿ†††ÿ­­­ÿ§§§ÿ®®®ÿ¯¯°ÿž£ ÿ}ÿVZ[ÿCMSÿ@HOÿ",ÿC‹ÿÆÆÆÿþþþÿÿÿ***ÿ¦¦¦ÿ<<<ÿ***ÿµµµÿ©©©ÿ´´´ÿLLLÿ†††ÿ­­­ÿ§§§ÿ®®®ÿ¯¯¯ÿ¢¢¢ÿÿZZZÿNNNÿIIIÿ###ÿOOOÿÆÆÆÿ&&&ÿÿÿ&&&ÿ¦¦¦ÿ8iÿÿÿ_dhÿ¤§¨ÿ¨««ÿ¢¥¥ÿhjjÿMNNÿ?AAÿ]_^ÿijiÿ|||ÿ‹‹‹ÿ²²²ÿª¥©ÿ'1ÿ7qÿ²²²ÿ***ÿÿÿþþþÿ¦¦¦ÿ8iÿÿÿ_dhÿ¤§¨ÿ¨««ÿ¢¥¥ÿhjjÿMNNÿ?AAÿ]_^ÿijiÿ|||ÿ‹‹‹ÿ²²²ÿª¥©ÿ'1ÿ7qÿ²²²ÿþþþÿÿÿþþþÿ¦¦¦ÿ8iÿÿÿ_dhÿ¤§¨ÿ¨««ÿ¢¥¥ÿhjjÿMNNÿ?AAÿ]_^ÿijiÿ|||ÿ‹‹‹ÿ²²²ÿª¥©ÿ'1ÿ7qÿ²²²ÿþþþÿÿÿ&&&ÿ¦¦¦ÿAAAÿÿÿdddÿ§§§ÿ«««ÿ¥¥¥ÿjjjÿNNNÿAAAÿ___ÿjjjÿ|||ÿ‹‹‹ÿ²²²ÿ¦¦¦ÿ)))ÿAAAÿ²²²ÿ***ÿÿÿ***ÿÂÂÂÿ4aÿ6gÿ:uÿ ÿ ÿ ÿ‰“ÿ“˜™ÿžŸŸÿ‚‰…ÿ‚„ƒÿdgfÿABCÿdddÿ¢¥¤ÿzyxÿ%/ÿ5hÿ¦¦¦ÿ&&&ÿÿÿþþþÿÂÂÂÿ4aÿ6gÿ:uÿ ÿ ÿ ÿ‰“ÿ“˜™ÿžŸŸÿ‚‰…ÿ‚„ƒÿdgfÿABCÿdddÿ¢¥¤ÿzyxÿ%/ÿ5hÿ¦¦¦ÿþþþÿÿÿþþþÿÂÂÂÿ4aÿ6gÿ:uÿ ÿ ÿ ÿ‰“ÿ“˜™ÿžŸŸÿ‚‰…ÿ‚„ƒÿdgfÿABCÿdddÿ¢¥¤ÿzyxÿ%/ÿ5hÿ¦¦¦ÿþþþÿÿÿ***ÿÂÂÂÿ<<<ÿ???ÿDDDÿÿ ÿÿÿ˜˜˜ÿŸŸŸÿˆˆˆÿ„„„ÿgggÿBBBÿdddÿ¥¥¥ÿyyyÿ&&&ÿ>>>ÿ¦¦¦ÿ&&&ÿÿÿ&&&ÿÆÆÆÿ:sÿ5oÿ7uÿ6xÿ4mÿ4kÿÿ!'ÿÿ°®®ÿµ´³ÿ®®­ÿztvÿ”ÿ”Œ–ÿBIQÿ ÿ.Wÿ¢¢¢ÿ***ÿÿÿþþþÿÆÆÆÿ:sÿ5oÿ7uÿ6xÿ4mÿ4kÿÿ!'ÿÿ°®®ÿµ´³ÿ®®­ÿztvÿ”ÿ”Œ–ÿBIQÿ ÿ.Wÿ¢¢¢ÿþþþÿÿÿþþþÿÆÆÆÿ:sÿ5oÿ7uÿ6xÿ4mÿ4kÿÿ!'ÿÿ°®®ÿµ´³ÿ®®­ÿztvÿ”ÿ”Œ–ÿBIQÿ ÿ.Wÿ¢¢¢ÿþþþÿÿÿ&&&ÿÆÆÆÿDDDÿ???ÿBBBÿBBBÿ>>>ÿ>>>ÿÿ"""ÿÿ®®®ÿ´´´ÿ®®®ÿuuuÿÿÿJJJÿÿ666ÿ¢¢¢ÿ***ÿÿÿ***ÿ¦¦¦ÿ6fÿ4cÿ3cÿ3cÿ4nÿ5qÿ 6nÿ!6lÿ%-ÿ(1ÿ"+4ÿ",5ÿ'0ÿ!)3ÿ!ÿÿ-aÿ,aÿªªªÿ&&&ÿÿÿþþþÿ¦¦¦ÿ6fÿ4cÿ3cÿ3cÿ4nÿ5qÿ 6nÿ!6lÿ%-ÿ(1ÿ"+4ÿ",5ÿ'0ÿ!)3ÿ!ÿÿ-aÿ,aÿªªªÿþþþÿÿÿþþþÿ¦¦¦ÿ6fÿ4cÿ3cÿ3cÿ4nÿ5qÿ 6nÿ!6lÿ%-ÿ(1ÿ"+4ÿ",5ÿ'0ÿ!)3ÿ!ÿÿ-aÿ,aÿªªªÿþþþÿÿÿ***ÿ¦¦¦ÿ???ÿ<<<ÿ<<<ÿ<<<ÿ???ÿ@@@ÿ@@@ÿ@@@ÿ&&&ÿ)))ÿ,,,ÿ---ÿ(((ÿ+++ÿÿÿ777ÿ666ÿªªªÿ&&&ÿÿÿ&&&ÿ¦¦¦ÿ;ÿ:wÿ7tÿ6mÿ3cÿ3iÿ1jÿ4fÿ5eÿ0_ÿ1bÿ4bÿ0`ÿ1dÿ2eÿ7jÿ2aÿ0_ÿ®®®ÿ***ÿÿÿþþþÿ¦¦¦ÿ;ÿ:wÿ7tÿ6mÿ3cÿ3iÿ1jÿ4fÿ5eÿ0_ÿ1bÿ4bÿ0`ÿ1dÿ2eÿ7jÿ2aÿ0_ÿ®®®ÿþþþÿÿÿþþþÿ¦¦¦ÿ;ÿ:wÿ7tÿ6mÿ3cÿ3iÿ1jÿ4fÿ5eÿ0_ÿ1bÿ4bÿ0`ÿ1dÿ2eÿ7jÿ2aÿ0_ÿ®®®ÿþþþÿÿÿ&&&ÿ¦¦¦ÿGGGÿEEEÿBBBÿ@@@ÿ;;;ÿ===ÿ;;;ÿ===ÿ===ÿ888ÿ:::ÿ<<<ÿ999ÿ:::ÿ;;;ÿ@@@ÿ:::ÿ999ÿ®®®ÿ***ÿÿÿ***ÿÆÆÆÿºººÿ¦¦¦ÿ¦¦¦ÿ²²²ÿ¾¾¾ÿ¦¦¦ÿžžžÿšššÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ¶¶¶ÿºººÿªªªÿ¦¦¦ÿ¦¦¦ÿÆÆÆÿ¶¶¶ÿ¦¦¦ÿ&&&ÿÿÿþþþÿÆÆÆÿºººÿ¦¦¦ÿ¦¦¦ÿ²²²ÿ¾¾¾ÿ¦¦¦ÿžžžÿšššÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ¶¶¶ÿºººÿªªªÿ¦¦¦ÿ¦¦¦ÿÆÆÆÿ¶¶¶ÿ¦¦¦ÿþþþÿÿÿþþþÿÆÆÆÿºººÿ¦¦¦ÿ¦¦¦ÿ²²²ÿ¾¾¾ÿ¦¦¦ÿžžžÿšššÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ¶¶¶ÿºººÿªªªÿ¦¦¦ÿ¦¦¦ÿÆÆÆÿ¶¶¶ÿ¦¦¦ÿþþþÿÿÿ***ÿÆÆÆÿºººÿ¦¦¦ÿ¦¦¦ÿ²²²ÿ¾¾¾ÿ¦¦¦ÿžžžÿšššÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ¶¶¶ÿºººÿªªªÿ¦¦¦ÿ¦¦¦ÿÆÆÆÿ¶¶¶ÿ¦¦¦ÿ&&&ÿÿÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿÿÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿÿÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿþþþÿÿÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿ&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿöÿÿöÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿöÿÿöÿÿöÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ@@AÿCCCÿNPPÿcZcÿ$0ÿ)ÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@@AÿCCCÿNPPÿcZcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿ@@AÿCCCÿNPPÿcZcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿöÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ,11ÿ%*ÿ'25ÿ8KOÿ;LOÿ&;GÿEOWÿISWÿnjvÿ^K`ÿ!,ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,11ÿ%*ÿ'25ÿ8KOÿ;LOÿ&;GÿEOWÿISWÿUS\ÿ^K`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿöÿÿöÿÿöÿÿÿÿÿ,11ÿ%*ÿ'25ÿ8KOÿ;LOÿ&;GÿEOWÿISWÿUS\ÿ^K`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ)ÿ(ÿ(ÿkpoÿ™™™ÿ§§§ÿƒ‰ÿlnnÿ[ecÿ9<<ÿ>HJÿ0FFÿ6:@ÿ0:AÿOZcÿagjÿL>Lÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿkpoÿ™™™ÿ§§§ÿƒ‰ÿlnnÿ[ecÿ9<<ÿ>HJÿ0FFÿ6:@ÿ0:AÿOZcÿagjÿL>Lÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿkpoÿ™™™ÿ§§§ÿƒ‰ÿlnnÿ[ecÿ9<<ÿ>HJÿ0FFÿ6:@ÿ0:AÿOZcÿagjÿL>Lÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ®°°ÿ«®®ÿ²µµÿ»½½ÿPPPÿiiiÿ°°°ÿ¤¤¤ÿ¨¨¨ÿ¯¯¯ÿ²²²ÿ¸¸¸ÿ˜œ™ÿ€‚‚ÿ_aaÿQX\ÿ6CJÿELSÿ(ÿÿÿÿÿÿÿÿÿ®°°ÿ«®®ÿ²µµÿ»½½ÿPPPÿiiiÿ°°°ÿ¤¤¤ÿ¨¨¨ÿ¯¯¯ÿ²²²ÿ¸¸¸ÿ˜œ™ÿ€‚‚ÿ_aaÿQX\ÿ6CJÿELSÿÿÿÿÿÿÿÿÿöÿÿÿÿÿ®°°ÿ«®®ÿ²µµÿ»½½ÿPPPÿiiiÿ°°°ÿ¤¤¤ÿ¨¨¨ÿ¯¯¯ÿ²²²ÿ¸¸¸ÿ˜œ™ÿ€‚‚ÿ_aaÿQX\ÿ6CJÿELSÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿšœœÿ³µµÿ°²²ÿ¢¤¤ÿ‘‘ÿPQQÿKLLÿABBÿ]^_ÿ_b`ÿuuuÿ‚‚‚ÿˆˆˆÿ©©©ÿµµµÿ–‘˜ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿšœœÿ³µµÿ°²²ÿ¢¤¤ÿ‘‘ÿPQQÿKLLÿABBÿ]^_ÿ_b`ÿuuuÿ‚‚‚ÿjjjÿ©©©ÿµµµÿ–‘˜ÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿšœœÿ³µµÿ°²²ÿ¢¤¤ÿ‘‘ÿPQQÿKLLÿABBÿ]^_ÿ_b`ÿuuuÿ‚‚‚ÿjjjÿ©©©ÿµµµÿ–‘˜ÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ)ÿ(ÿ®°°ÿÃÇÇÿ¡¡ÿ‘‘ÿ]hbÿ€‚‚ÿdieÿ^bbÿHHIÿmmmÿ‘”•ÿqvvÿ_^_ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®°°ÿÃÇÇÿ¡¡ÿ‘‘ÿ]hbÿ€‚‚ÿdieÿ^bbÿHHIÿmmmÿ‘”•ÿqvvÿ_^_ÿÿÿÿÿÿÿÿÿÿÿöÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿ®°°ÿÃÇÇÿ¡¡ÿ‘‘ÿ]hbÿ€‚‚ÿdieÿ^bbÿHHIÿmmmÿ‘”•ÿqvvÿ_^_ÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)ÿ)ÿprsÿ§§§ÿ¼¼¼ÿ¢¢¢ÿyyyÿpppÿEFGÿMMMÿÊÊÉÿ­®©ÿ|ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿprsÿ§§§ÿ¼¼¼ÿ¢¢¢ÿyyyÿpppÿEFGÿMMMÿÊÊÉÿ­®©ÿ|ÿÿÿÿÿÿÿÿÿÿÿÿöÿÿöÿÿöÿÿöÿÿÿÿÿÿÿÿÿprsÿ§§§ÿ¼¼¼ÿ¢¢¢ÿyyyÿpppÿEFGÿMMMÿÊÊÉÿ­®©ÿ|ÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿ(ÿ(ÿÿÿ)ÿ—–—ÿ“““ÿ«««ÿ¼¼¼ÿ°±±ÿ…}ÿ¤ŸŸÿ–‚”ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ—–—ÿ“““ÿ«««ÿ¼¼¼ÿ°±±ÿ…}ÿ€||ÿ–‚”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿöÿÿÿÿÿ—–—ÿ“““ÿ«««ÿ¼¼¼ÿ°±±ÿ…}ÿ€||ÿ–‚”ÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ€²ÒÿÓ¤ºÿƒ}˜ÿ2E^ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿ€²ÒÿÓ¤ºÿƒ}˜ÿ2E^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿ€²ÒÿÓ¤ºÿƒ}˜ÿ2E^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿšÙÿ̱Çÿfaqÿ#?Iÿ,9ÿ$?Hÿ(ÿ(ÿÿÿ(ÿ!ÿ&2ÿ,H[ÿ]¦Ãÿ(ÿÿÿÿÿÿÿÿÿÿÿÿšÙÿ̱Çÿfaqÿ#?Iÿ,9ÿ$?HÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆÆÆÿ'ÿ,H[ÿ]¦ÃÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿšÙÿ̱Çÿfaqÿ#?Iÿ,9ÿ$?HÿÿÿÿÿÿÿÿÿÿöÿÿöÿÿÿÿÿÆÆÆÿ'ÿ,H[ÿ]¦Ãÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿe—½ÿX¥Äÿ1]oÿ;Aÿ"3Aÿ 7Cÿ(ÿ(ÿ(7ÿ*2ÿB\oÿs—ºÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿe—½ÿX¥Äÿ1]oÿ;Aÿ"3Aÿ 7Cÿÿÿÿÿÿÿÿÿ+ÿ*2ÿB\oÿs—ºÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿe—½ÿX¥Äÿ1]oÿ;Aÿ"3Aÿ 7Cÿÿÿÿÿÿÿÿÿ+ÿ*2ÿB\oÿs—ºÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿq…ÇÿXŸ¿ÿXÆßÿRÄÒÿ5esÿO‚ÿ'BPÿ#=Iÿ¤ÓÝÿóóûÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÆÆÆÿq…ÇÿXŸ¿ÿXÆßÿRÄÒÿ5esÿO‚ÿ3>ÿ#=Iÿ¤ÓÝÿóóûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿöÿÆÆÆÿq…ÇÿXŸ¿ÿXÆßÿRÄÒÿ5esÿO‚ÿ3>ÿ#=Iÿ¤ÓÝÿóóûÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿGRxÿM‹¦ÿM}ÿb³Ïÿb½×ÿ—Úñÿîûýÿßìóÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿGRxÿM‹¦ÿM}ÿb³ÏÿL“§ÿ—Úñÿîûýÿßìóÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿGRxÿM‹¦ÿM}ÿb³ÏÿL“§ÿ—Úñÿîûýÿßìóÿ(ÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ,3Jÿ+2JÿO›¯ÿ]ÙíÿaÑéÿR|›ÿ€‘±ÿ‰ÚñÿW½Õÿ1K^ÿA=dÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"(:ÿ!':ÿO›¯ÿ]ÙíÿK£µÿR|›ÿ€‘±ÿ‰ÚñÿW½Õÿ1K^ÿA=dÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿ"(:ÿ!':ÿO›¯ÿ]ÙíÿK£µÿR|›ÿ€‘±ÿ‰ÚñÿW½Õÿ1K^ÿA=dÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ))Bÿ":IÿHˆœÿbÉèÿ(ÿ(ÿ(ÿd†ºÿWœ¼ÿ^¯ËÿD•ÿ(BNÿ.@Nÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ))Bÿ":IÿHˆœÿLœ´ÿÆÆÆÿÿÿÿÿÿÿÿÿd†ºÿWœ¼ÿ^¯ËÿD•ÿ(BNÿ.@Nÿÿÿÿÿÿÿÿÿÿÿÿöÿÿöÿÿöÿÿÿÿÿ))Bÿ":IÿHˆœÿLœ´ÿÆÆÆÿÿÿÿÿÿÿÿÿd†ºÿWœ¼ÿ^¯ËÿD•ÿ(BNÿ.@Nÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿ(ÿ/3Pÿ)DRÿT¬ÃÿÄøÿ(ÿÿÿÿ(ÿ(ÿ~yÕÿe©ÍÿR©¾ÿF`nÿSHuÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ/3Pÿ)DRÿT¬ÃÿÄøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~yÕÿe©ÍÿR©¾ÿF`nÿSHuÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿ/3Pÿ)DRÿT¬ÃÿÄøÿÿÿÿÿÿöÿÿöÿÿöÿÿÿÿÿÿÿÿÿ~yÕÿe©ÍÿR©¾ÿF`nÿSHuÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ^³ÐÿU—¶ÿ7[pÿ1Ufÿa¡ÍÿHˆœÿ(ÿÿÿÿÿÿÿ(ÿ(ÿ(ÿƒ½ÿ¤Àÿ(ÿÿÿÿÿÿÿÿÿ^³ÐÿU—¶ÿ7[pÿ1Ufÿa¡ÍÿHˆœÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒ½ÿ¤Àÿÿÿÿÿÿÿÿÿöÿÿÿÿÿ^³ÐÿU—¶ÿ7[pÿ1Ufÿa¡ÍÿHˆœÿÿÿÿÿÿöÿÿÿÿÿöÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿƒ½ÿ¤Àÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿÜëÿAd~ÿM†¤ÿ]Ûòÿ–Ÿôÿ(ÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÜëÿAd~ÿM†¤ÿ]Ûòÿ–ŸôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÜëÿAd~ÿM†¤ÿ]Ûòÿ–Ÿôÿÿÿÿÿÿöÿÿÿÿÿÿÿÿöÿÿöÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿR^ÿLÆ×ÿ¦çþÿcÓìÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿR^ÿLÆ×ÿ¦çþÿcÓìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿR^ÿLÆ×ÿ¦çþÿcÓìÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿöÿÿöÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ,`}ÿpåñÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,`}ÿpåñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿ,`}ÿpåñÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿöÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿÿÿÿ(ÿ?qÿ4`ÿBsµÿDx¿ÿEyÀÿDx¿ÿK|Æÿ8e£ÿ4`ÿEyÀÿK€ÿAvÿBwÿBwÿ$Fÿ(ÿÿÿÿÿÿÿÿÿÿÿÿ?qÿ4`ÿBsµÿDx¿ÿEyÀÿDx¿ÿK|Æÿ8e£ÿ4`ÿEyÀÿK€ÿAvÿBwÿBwÿ$Fÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?qÿ4`ÿBsµÿDx¿ÿEyÀÿDx¿ÿK|Æÿ8e£ÿ4`ÿEyÀÿK€ÿAvÿBwÿBwÿ$Fÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ,,,ÿ444ÿ666ÿ666ÿ666ÿ888ÿ...ÿ,,,ÿ666ÿ"""ÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ(ÿ'Kÿ,X•ÿ9f¤ÿh™ÛÿY‹ÐÿM~ÈÿPƒÉÿ?lªÿ.Z—ÿ/[˜ÿ!Oˆÿ6bŸÿAvÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ'Kÿ,X•ÿ9f¤ÿh™ÛÿY‹ÐÿM~ÈÿPƒÉÿ?lªÿ.Z—ÿ/[˜ÿ!Oˆÿ6bŸÿAvÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ'Kÿ,X•ÿ9f¤ÿh™ÛÿY‹ÐÿM~ÈÿPƒÉÿ?lªÿ.Z—ÿ/[˜ÿ!Oˆÿ6bŸÿAvÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ(((ÿ...ÿCCCÿ>>>ÿ999ÿ:::ÿ111ÿ)))ÿ)))ÿ$$$ÿ,,,ÿÿ ÿÿÿÿÿÿÿÿÿÿÿ(ÿ"BÿNÉÿŒ·íÿmžàÿhšÝÿ`’×ÿYŒÒÿ+W”ÿ@rÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"BÿNÉÿŒ·íÿmžàÿhšÝÿ`’×ÿYŒÒÿ+W”ÿ@rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"BÿNÉÿŒ·íÿmžàÿhšÝÿ`’×ÿYŒÒÿ+W”ÿ@rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ999ÿNNNÿEEEÿCCCÿ@@@ÿ>>>ÿ(((ÿÿ ÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿL}ÇÿœÇóÿ‡´ìÿ®èÿw¥äÿ®èÿ>>ÿ&&&ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿNÉÿŒ·íÿÈôÿ’¾ïÿ¸îÿv¤ãÿlßÿ8e£ÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNÉÿŒ·íÿÈôÿ’¾ïÿ¸îÿv¤ãÿlßÿ8e£ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNÉÿŒ·íÿÈôÿ’¾ïÿ¸îÿv¤ãÿlßÿ8e£ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ999ÿNNNÿSSSÿPPPÿNNNÿFFFÿDDDÿ...ÿ ÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿb”×ÿ®Ô÷ÿ™Ãòÿ‰µìÿ•Áòÿ‡´ìÿƒ±êÿAn¬ÿ3_œÿ.Z—ÿ,X•ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿb”×ÿ®Ô÷ÿ™Ãòÿ‰µìÿ•Áòÿ‡´ìÿƒ±êÿAn¬ÿ3_œÿ.Z—ÿ,X•ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿb”×ÿ®Ô÷ÿ™Ãòÿ‰µìÿ•Áòÿ‡´ìÿƒ±êÿAn¬ÿ3_œÿ.Z—ÿ,X•ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿAAAÿXXXÿRRRÿMMMÿQQQÿLLLÿLLLÿ111ÿ+++ÿ)))ÿ(((ÿ ÿÿÿÿÿÿÿÿÿÿÿÿ(ÿkœÞÿ¤Ìõÿ¸Ûùÿ¡Êôÿ—Âòÿ¡Êôÿ®Ô÷ÿ€¯éÿQ„Êÿ&Uÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿkœÞÿ¤Ìõÿ¸Ûùÿ¡Êôÿ—Âòÿ¡Êôÿ®Ô÷ÿ€¯éÿQ„Êÿ&UÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿkœÞÿ¤Ìõÿ¸Ûùÿ¡Êôÿ—Âòÿ¡Êôÿ®Ô÷ÿ€¯éÿQ„Êÿ&Uÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿDDDÿUUUÿZZZÿTTTÿQQQÿTTTÿXXXÿKKKÿ;;;ÿ'''ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿBu»ÿ”ÀñÿŸÉôÿ”Àñÿlßÿ}­èÿÈôÿ’¾ïÿƒ±êÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBu»ÿ”ÀñÿŸÉôÿ”Àñÿlßÿ}­èÿÈôÿ’¾ïÿƒ±êÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBu»ÿ”ÀñÿŸÉôÿ”Àñÿlßÿ}­èÿÈôÿ’¾ïÿƒ±êÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ555ÿQQQÿSSSÿQQQÿDDDÿJJJÿSSSÿPPPÿLLLÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(W‘ÿI‚ÿEzÿ'Vÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(W‘ÿI‚ÿEzÿ'Vÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(W‘ÿI‚ÿEzÿ'Vÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ(((ÿ"""ÿÿ'''ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ$R‹ÿIzÄÿ2^›ÿ-Y–ÿJÿEzÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$R‹ÿIzÄÿ2^›ÿ-Y–ÿJÿEzÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$R‹ÿIzÄÿ2^›ÿ-Y–ÿJÿEzÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ&&&ÿ777ÿ+++ÿ)))ÿ"""ÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿS†Ìÿ•Áòÿƒ±êÿb”×ÿ_‘Öÿ.Z—ÿF{ÿ%TŽÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿS†Ìÿ•Áòÿƒ±êÿb”×ÿ_‘Öÿ.Z—ÿF{ÿ%TŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿS†Ìÿ•Áòÿƒ±êÿb”×ÿ_‘Öÿ.Z—ÿF{ÿ%TŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ;;;ÿQQQÿLLLÿAAAÿ@@@ÿ)))ÿ ÿ&&&ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿL}ÇÿÄãûÿ”ÀñÿhšÝÿ„²ëÿ®èÿJƒÿ$R‹ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿL}ÇÿÄãûÿ”ÀñÿhšÝÿ„²ëÿ®èÿJƒÿ$R‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿL}ÇÿÄãûÿ”ÀñÿhšÝÿ„²ëÿ®èÿJƒÿ$R‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ999ÿ\\\ÿQQQÿCCCÿLLLÿKKKÿ"""ÿ&&&ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿPƒÉÿœÇóÿ”Àñÿ½ïÿ«Òöÿq¡âÿ>k©ÿ/[˜ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPƒÉÿœÇóÿ”Àñÿ½ïÿ«Òöÿq¡âÿ>k©ÿ/[˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPƒÉÿœÇóÿ”Àñÿ½ïÿ«Òöÿq¡âÿ>k©ÿ/[˜ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ:::ÿSSSÿQQQÿPPPÿVVVÿFFFÿ000ÿ)))ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿj›Ýÿ¸Ûùÿ’¾ïÿ”ÀñÿºÜùÿ€¯éÿ[ÒÿAo®ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿj›Ýÿ¸Ûùÿ’¾ïÿ”ÀñÿºÜùÿ€¯éÿ[ÒÿAo®ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿj›Ýÿ¸Ûùÿ’¾ïÿ”ÀñÿºÜùÿ€¯éÿ[ÒÿAo®ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿCCCÿZZZÿPPPÿQQQÿZZZÿKKKÿ>>>ÿ111ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿK|ÆÿºÜùÿœÇóÿ¤Ìõÿ¶ÚùÿBr³ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿK|ÆÿºÜùÿœÇóÿ¤Ìõÿ¶ÚùÿBr³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿK|ÆÿºÜùÿœÇóÿ¤Ìõÿ¶ÚùÿBr³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ888ÿZZZÿSSSÿUUUÿYYYÿ444ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿÆäûÿÑëüÿ«Òöÿ¸Ûùÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆäûÿÑëüÿ«Òöÿ¸ÛùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆäûÿÑëüÿ«Òöÿ¸Ûùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ]]]ÿ___ÿVVVÿZZZÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(ÿ(ÿ(ÿ(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿÿÿ ÿ78ÿBDÿ23ÿ77ÿNPÿSUÿ ÿÿÿÿ ÿSUÿ9;ÿ01ÿ8:ÿOQÿ78ÿ ÿÿÿÿÿÿÿÿÿÿ78ÿBDÿ23ÿ77ÿNPÿSUÿÿÿÿÿÿÿÿÿÿÿÿSUÿ9;ÿ01ÿ8:ÿOQÿ78ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ78ÿBDÿ23ÿ77ÿNPÿSUÿÿÿÿÿÿÿÿÿÿÿÿSUÿ9;ÿ01ÿ8:ÿOQÿ78ÿÿÿÿÿÿÿÿÿÿ ÿ%%%ÿ,,,ÿ!!!ÿ$$$ÿ444ÿ777ÿ ÿÿÿÿ ÿ777ÿ&&&ÿ ÿ%%%ÿ444ÿ%%%ÿ ÿÿÿÿÿÿ ÿÎÓÿ­°ÿšÿ¼Áÿ×ÜÿÇÌÿ`bÿ ÿÿ ÿŒÿÀÄÿÐÕÿÉÌÿ”˜ÿ¯³ÿâçÿ01ÿ ÿÿÿÿÿÿÿÿÿÎÓÿ­°ÿšÿ¼Áÿ×ÜÿÇÌÿ`bÿÿÿÿÿÿÿÿÿÿŒÿÀÄÿÐÕÿÉÌÿ”˜ÿ¯³ÿâçÿ01ÿÿÿÿÿÿÿÿÿÿÿÿÿÎÓÿ­°ÿšÿ¼Áÿ×ÜÿÇÌÿ`bÿÿÿÿÿÿÿÿÿÿŒÿÀÄÿÐÕÿÉÌÿ”˜ÿ¯³ÿâçÿ01ÿÿÿÿÿÿÿÿÿ ÿŠŠŠÿsssÿgggÿ~~~ÿÿ………ÿ@@@ÿ ÿÿ ÿ^^^ÿÿ‹‹‹ÿ†††ÿcccÿuuuÿ———ÿ ÿ ÿÿÿÿÿ ÿŸ£ÿ‘•ÿÂÇÿÕÚÿÈÍÿ•™ÿhjÿ ÿÿ ÿ”—ÿ•™ÿ¾ÂÿÑÖÿÎÒÿµºÿ¡¦ÿ%%ÿ ÿÿÿÿÿÿÿÿÿŸ£ÿ‘•ÿÂÇÿÕÚÿÈÍÿ•™ÿhjÿÿÿÿÿÿÿÿÿÿ”—ÿ•™ÿ¾ÂÿÑÖÿÎÒÿµºÿ¡¦ÿ%%ÿÿÿÿÿÿÿÿÿÿÿÿÿŸ£ÿ‘•ÿÂÇÿÕÚÿÈÍÿ•™ÿhjÿÿÿÿÿÿÿÿÿÿ”—ÿ•™ÿ¾ÂÿÑÖÿÎÒÿµºÿ¡¦ÿ%%ÿÿÿÿÿÿÿÿÿ ÿjjjÿaaaÿ‚‚‚ÿÿ†††ÿdddÿFFFÿ ÿÿ ÿcccÿdddÿÿŒŒŒÿŠŠŠÿyyyÿlllÿÿ ÿÿÿÿÿ ÿ&'ÿ¤¨ÿ×ÜÿÏÔÿ.0ÿ12ÿ ÿ ÿ ÿ ÿÿ35ÿ57ÿÃÇÿõúÿ¢¦ÿ"#ÿ ÿÿÿÿÿÿÿÿÿÿ&'ÿ¤¨ÿ×ÜÿÏÔÿ.0ÿ12ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ35ÿ57ÿÃÇÿõúÿ¢¦ÿ"#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&'ÿ¤¨ÿ×ÜÿÏÔÿ.0ÿ12ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ35ÿ57ÿÃÇÿõúÿ¢¦ÿ"#ÿÿÿÿÿÿÿÿÿÿ ÿÿnnnÿÿ‹‹‹ÿÿ ÿ ÿ ÿ ÿ ÿ ÿ"""ÿ###ÿ‚‚‚ÿ¤¤¤ÿmmmÿÿ ÿÿÿÿÿÿÿ ÿ§ªÿúÿÿ³·ÿ ÿ ÿ ÿNPÿSUÿKMÿ ÿ ÿ ÿ³·ÿêïÿƒ†ÿ ÿÿÿÿÿÿÿÿÿÿÿÿ§ªÿúÿÿ³·ÿÿÿÿÿÿÿÿÿÿÿÿÿNPÿSUÿKMÿÿÿÿÿÿÿÿÿÿÿÿÿ³·ÿêïÿƒ†ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ§ªÿúÿÿ³·ÿÿÿÿÿÿÿÿÿÿÿÿÿNPÿSUÿKMÿÿÿÿÿÿÿÿÿÿÿÿÿ³·ÿêïÿƒ†ÿÿÿÿÿÿÿÿÿÿÿÿ ÿpppÿ¨¨¨ÿxxxÿ ÿ ÿ ÿ444ÿ777ÿ222ÿ ÿ ÿ ÿxxxÿÿXXXÿ ÿÿÿÿÿÿÿÿ ÿ§ªÿÛßÿ­²ÿ ÿ ÿ'(ÿµ¹ÿíòÿÐÕÿ)*ÿ ÿ ÿ¬°ÿŸ¢ÿjlÿ ÿÿÿÿÿÿÿÿÿÿÿÿ§ªÿÛßÿ­²ÿÿÿÿÿÿÿÿÿ'(ÿµ¹ÿíòÿÐÕÿ)*ÿÿÿÿÿÿÿÿÿ¬°ÿŸ¢ÿjlÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ§ªÿÛßÿ­²ÿÿÿÿÿÿÿÿÿ'(ÿµ¹ÿíòÿÐÕÿ)*ÿÿÿÿÿÿÿÿÿ¬°ÿŸ¢ÿjlÿÿÿÿÿÿÿÿÿÿÿÿ ÿpppÿ“““ÿtttÿ ÿ ÿÿyyyÿŸŸŸÿ‹‹‹ÿÿ ÿ ÿsssÿjjjÿFFFÿ ÿÿÿÿÿÿÿÿ ÿ¡¤ÿ¯³ÿ´¸ÿ ÿ ÿ—šÿ®³ÿ–šÿ±´ÿŠÿ ÿ ÿ²¶ÿ|ÿkmÿ ÿÿÿÿÿÿÿÿÿÿÿÿ¡¤ÿ¯³ÿ´¸ÿÿÿÿÿÿÿÿÿ—šÿ®³ÿ–šÿ±´ÿŠÿÿÿÿÿÿÿÿÿ²¶ÿ|ÿkmÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¡¤ÿ¯³ÿ´¸ÿÿÿÿÿÿÿÿÿ—šÿ®³ÿ–šÿ±´ÿŠÿÿÿÿÿÿÿÿÿ²¶ÿ|ÿkmÿÿÿÿÿÿÿÿÿÿÿÿ ÿlllÿuuuÿyyyÿ ÿ ÿeeeÿuuuÿdddÿvvvÿ\\\ÿ ÿ ÿwwwÿSSSÿGGGÿ ÿÿÿÿÿÿÿÿ ÿwzÿ®³ÿøýÿ ÿÿúÿÿÍÑÿƒ†ÿŽ’ÿÛßÿÿ ÿ®³ÿ§«ÿsuÿ ÿÿÿÿÿÿÿÿÿÿÿÿwzÿ®³ÿøýÿÿÿÿÿÿúÿÿÍÑÿƒ†ÿŽ’ÿÛßÿÿÿÿÿÿ®³ÿ§«ÿsuÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿwzÿ®³ÿøýÿÿÿÿÿÿúÿÿÍÑÿƒ†ÿŽ’ÿÛßÿÿÿÿÿÿ®³ÿ§«ÿsuÿÿÿÿÿÿÿÿÿÿÿÿ ÿOOOÿuuuÿ¦¦¦ÿ ÿÿ¨¨¨ÿ‰‰‰ÿXXXÿ___ÿ“““ÿÿ ÿuuuÿpppÿLLLÿ ÿÿÿÿÿÿÿÿ ÿWYÿÚßÿúÿÿ ÿŠÿõúÿÑÕÿ’ÿ˜›ÿ¾Âÿ€ƒÿ ÿ¹½ÿõúÿ“ÿ ÿÿÿÿÿÿÿÿÿÿÿÿWYÿÚßÿúÿÿÿÿÿÿŠÿõúÿÑÕÿ’ÿ˜›ÿ¾Âÿ€ƒÿÿÿÿÿ¹½ÿõúÿ“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿWYÿÚßÿúÿÿÿÿÿÿŠÿõúÿÑÕÿ’ÿ˜›ÿ¾Âÿ€ƒÿÿÿÿÿ¹½ÿõúÿ“ÿÿÿÿÿÿÿÿÿÿÿÿ ÿ:::ÿ’’’ÿ¨¨¨ÿ ÿ\\\ÿ¤¤¤ÿŒŒŒÿ```ÿfffÿÿUUUÿ ÿ|||ÿ¤¤¤ÿaaaÿ ÿÿÿÿÿÿÿÿ ÿ_`ÿ¶ºÿùþÿÿúÿÿÓØÿ³¸ÿ./ÿÒÖÿ­°ÿ’–ÿ ÿêïÿúÿÿ§ªÿ ÿÿÿÿÿÿÿÿÿÿÿÿ_`ÿ¶ºÿùþÿÿúÿÿÓØÿ³¸ÿ./ÿÒÖÿ­°ÿ’–ÿÿÿÿÿêïÿúÿÿ§ªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ_`ÿ¶ºÿùþÿÿúÿÿÓØÿ³¸ÿ./ÿÒÖÿ­°ÿ’–ÿÿÿÿÿêïÿúÿÿ§ªÿÿÿÿÿÿÿÿÿÿÿÿ ÿ???ÿzzzÿ§§§ÿÿ¨¨¨ÿŽŽŽÿxxxÿÿÿsssÿbbbÿ ÿÿ¨¨¨ÿpppÿ ÿÿÿÿÿÿÿÿ ÿ’ÿ®²ÿ±µÿƒ†ÿÙÞÿµ¹ÿnqÿ ÿ½Áÿ™œÿz|ÿXYÿúÿÿúÿÿ‹Žÿ ÿÿÿÿÿÿÿÿÿÿÿÿ’ÿ®²ÿ±µÿƒ†ÿÙÞÿµ¹ÿnqÿÿÿÿÿ½Áÿ™œÿz|ÿXYÿúÿÿúÿÿ‹Žÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’ÿ®²ÿ±µÿƒ†ÿÙÞÿµ¹ÿnqÿÿÿÿÿ½Áÿ™œÿz|ÿXYÿúÿÿúÿÿ‹Žÿÿÿÿÿÿÿÿÿÿÿÿ ÿ```ÿuuuÿvvvÿXXXÿ‘‘‘ÿyyyÿIIIÿ ÿÿgggÿRRRÿ:::ÿ¨¨¨ÿ¨¨¨ÿ]]]ÿ ÿÿÿÿÿÿÿÿ ÿ§ªÿåêÿ±µÿ‡Šÿ®²ÿ¼Áÿÿ ÿ/0ÿ®²ÿ¢¥ÿ ÿÜáÿâçÿtvÿ ÿÿÿÿÿÿÿÿÿÿÿÿ§ªÿåêÿ±µÿ‡Šÿ®²ÿ¼Áÿÿÿÿÿÿ/0ÿ®²ÿ¢¥ÿ ÿÜáÿâçÿtvÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ§ªÿåêÿ±µÿ‡Šÿ®²ÿ¼Áÿÿÿÿÿÿ/0ÿ®²ÿ¢¥ÿ ÿÜáÿâçÿtvÿÿÿÿÿÿÿÿÿÿÿÿ ÿpppÿšššÿvvvÿ[[[ÿuuuÿ~~~ÿÿ ÿÿuuuÿmmmÿiiiÿ”””ÿ———ÿMMMÿ ÿÿÿÿÿÿÿÿ ÿ§ªÿúÿÿâçÿ“–ÿƒ†ÿ‘”ÿ ÿÿ ÿ‘“ÿéîÿ·¼ÿª®ÿž¡ÿwyÿ ÿÿÿÿÿÿÿÿÿÿÿÿ§ªÿúÿÿâçÿ“–ÿƒ†ÿ‘”ÿÿÿÿÿÿÿÿÿÿ‘“ÿéîÿ·¼ÿª®ÿž¡ÿwyÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ§ªÿúÿÿâçÿ“–ÿƒ†ÿ‘”ÿÿÿÿÿÿÿÿÿÿ‘“ÿéîÿ·¼ÿª®ÿž¡ÿwyÿÿÿÿÿÿÿÿÿÿÿÿ ÿpppÿ¨¨¨ÿ———ÿbbbÿXXXÿaaaÿ ÿÿ ÿaaaÿœœœÿ{{{ÿrrrÿjjjÿOOOÿ ÿÿÿÿÿÿÿÿ ÿ¢¥ÿò÷ÿÐÔÿ®²ÿœŸÿ%&ÿ ÿÿ ÿlmÿúÿÿáæÿ„†ÿ…ˆÿŽ‘ÿ ÿÿÿÿÿÿÿÿÿÿÿÿ¢¥ÿò÷ÿÐÔÿ®²ÿœŸÿ%&ÿÿÿÿÿÿÿÿÿÿlmÿúÿÿáæÿ„†ÿ…ˆÿŽ‘ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¥ÿò÷ÿÐÔÿ®²ÿœŸÿ%&ÿÿÿÿÿÿÿÿÿÿlmÿúÿÿáæÿ„†ÿ…ˆÿŽ‘ÿÿÿÿÿÿÿÿÿÿÿÿ ÿmmmÿ¢¢¢ÿ‹‹‹ÿuuuÿhhhÿÿ ÿÿ ÿHHHÿ¨¨¨ÿ———ÿXXXÿYYYÿ___ÿ ÿÿÿÿÿÿÿ ÿacÿ£¦ÿÀÅÿ²¶ÿÐÕÿ¸¼ÿ ÿÿÿÿ ÿÖÚÿ°µÿ—šÿ­±ÿ £ÿ„ÿ ÿÿÿÿÿÿÿÿÿÿacÿ£¦ÿÀÅÿ²¶ÿÐÕÿ¸¼ÿÿÿÿÿÿÿÿÿÿÿÿÖÚÿ°µÿ—šÿ­±ÿ £ÿ„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿacÿ£¦ÿÀÅÿ²¶ÿÐÕÿ¸¼ÿÿÿÿÿÿÿÿÿÿÿÿÖÚÿ°µÿ—šÿ­±ÿ £ÿ„ÿÿÿÿÿÿÿÿÿÿ ÿ@@@ÿmmmÿÿwwwÿ‹‹‹ÿ{{{ÿ ÿÿÿÿ ÿÿvvvÿeeeÿtttÿkkkÿVVVÿ ÿÿÿÿÿÿ ÿÛàÿ› ÿ†Šÿ±µÿêïÿ78ÿ ÿÿÿÿ ÿOOÿ°´ÿîóÿâçÿ±µÿ½Áÿ ÿÿÿÿÿÿÿÿÿÿÛàÿ› ÿ†Šÿ±µÿêïÿ78ÿÿÿÿÿÿÿÿÿÿÿÿOOÿ°´ÿîóÿâçÿ±µÿ½ÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛàÿ› ÿ†Šÿ±µÿêïÿ78ÿÿÿÿÿÿÿÿÿÿÿÿOOÿ°´ÿîóÿâçÿ±µÿ½Áÿÿÿÿÿÿÿÿÿÿ ÿ“““ÿhhhÿZZZÿvvvÿÿ%%%ÿ ÿÿÿÿ ÿ444ÿvvvÿ   ÿ———ÿvvvÿÿ ÿÿÿÿÿÿ ÿÅÈÿª®ÿŠŽÿ–›ÿÂÆÿ ÿÿÿÿÿÿ ÿâçÿúÿÿúÿÿÙÝÿwyÿ ÿÿÿÿÿÿÿÿÿÿÅÈÿª®ÿŠŽÿ–›ÿÂÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿâçÿúÿÿúÿÿÙÝÿwyÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅÈÿª®ÿŠŽÿ–›ÿÂÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿâçÿúÿÿúÿÿÙÝÿwyÿÿÿÿÿÿÿÿÿÿ ÿ„„„ÿrrrÿ]]]ÿeeeÿ‚‚‚ÿ ÿÿÿÿÿÿ ÿ———ÿ¨¨¨ÿ¨¨¨ÿ‘‘‘ÿOOOÿ ÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlgeneral-1.3.1/src/themes/default/bkgnd.bmp0000664000175000017500000113206612140770455015533 00000000000000BM6´6(€à° ..,=<<U;•Z>˜\?—\@™^AœaE¤dD¨gEªiG”]JŒ`M–cKždI¡fI¤iM­kI²nJ¶rM»tM“_S”cU–jU¤lR©nQ§pV­rU°tW¾wPÀwP¾yRÃzR--_’a\–lZ¢s^«tZ²vY®x^µz\¹}_Á}[Á€_..`‘bb–rb£u`¯z`²}c»`À`´f¾cÁ„fySlendith—wi—zm¬‚o¶‚iº…lÆh¼ˆoʼnjÊŒn„]uŽgsŽhw—~s—€v¬…t¿‡s¬ˆu¾ŠrÁŽvÌpΑrГti{—x˜ƒ{£‡{µ„»†}¦Š}«‰z¿|Ä‹yÅ“{É—j‚t‡£y…¬~‚………®€³‚€™Š„¢Œƒ£†¿–…Ì›ƒÐŸ‡‡h‹l’n‹•pŠ›s‰›ŽŠœ’¡‘‰¶•ˆ·œ¿›‹Àš‰Ô¤Œr\—x_•{a”ƒe‘Šo“‰p–•••š–”™˜—²™‘¿ž‘¿¡•Ì¥‘Ô¦“Ùª’ZNŸ^QcSœiVšmY™‚mž‰rwœ””œ™™™´œœ¿¤›Á©ŸCA¥JD£SJ¡}o¡ˆt¤¤¤£Ã®£GD¨HE©KJ­PN¯QP¯‡v®ˆu©­««±¯®Ã±©ML²PN´TS²XWµ[Y·‡w°†yµ¶´´¹¸·Èº´à³UT¼]\º`^¼cb¾…{½ÎÁºÐ¼XWÀ[[ÀfeÁkjÄ„|ÄÓÇÀÒÉÃ^^É`_ËbbÎooÈpoÉttÌxxσ~Ê‚€ÏÌÊÈÔÎËÖÐÎØÓÏ||Ò××ÔÓÙÖÔÛÙ×ÝÛÚáßÝäáßæäâéæåìéçîìêðïíóðïôñðÿÿÿ“““-!############################################################################################“################################################################################################################################ƒ#################################“ÓÕÕ×רÜÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÚÚÚØØØØØØ××ÕÕÕÕÕÕÔÔÔÔÓÓÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓÓ““"-!!########################################################################################“###################################################################################################################################################################“ÕÕ×ÚÜÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÜÚÚÚØØØØØØØ××Õ×ÕÕÕÔÔÓÓÓ““Ó“ÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÕÔÔÓÓÓ’“"--!!#################################################################################“#################################################################################################################################“#################################““ÕÕ×ÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜØØØØØØØØØÕ×ÕÕÔÓÓÓÒ““ÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÕÕÕÕÔÔÔÓÓ““““"--!!!!###################################################################################################################################################################################“############################-ƒÓÕ××ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÜÚÚÚØØØØØÕÕÕÓÓÓÒ“ÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝØØÕÕ×ÕÔÔÔÔÔÓÓÓÓÓ’’“--!!#################################################################################################################################################################################“###################-“Õ××ÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚØÜÚØØÕÕÓÓÓ““ÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÙÚØØØ×ÕÕÕÕÕÔÔÔÔÔÓÓÑÓÓ“’“-!!!#####################################################################################################################################################################################“ÓÔ××ÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØØÒ“ÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜØØØØØØØ××Õ×ÕÕÕÕÕÔÔÔÔÓÓÓ“’ƒ-##!######################################-##################################################################################################################################################################“ÔÕ××ÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÓÒÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ’ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÙÜÛÜØÚÚØØØØ××××××ÕÕÕÔÔÔÔÑÓÓÒ’-#######################################--##############################################################################################################################################ƒ!########################!“ÔÕרÜÜÛÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛØÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓØÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÚÜÜÜÜÙØÚØØØØÚÚØØØ××××ÕÕÕÔÔÓÓÓÒƒ#########################################!!!-“Ý-!!##############“ƒ################################################################################################################################!ƒƒ####################ƒ“ÔÕרÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÚØ×ÕÓÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÚÜÜÛÚÚÛÚÚØÚÚÚØØ××××ÕÕÕÔÓÓÓƒ######################################!!““““ÝÝÝÝ“"--!#########“###################################################################################################################################ƒ#################################“ÓÕ×רÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØ×ÕÕÓÓÃÃÃÃÃÃÃÃÃÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÛÛÛÛÚÛÚÛÚÚØØØØ××××ÕÕÓÓÓ“#########################!---!!!!!#!!“ÝÝÝÝÝÝÝÝÝÝÝÝÝ-!######!“###############################################################################################################################ƒ################################ÓÔÔÕÕØÜÜÜÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜØ×ÕÕÓÓÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚÚÚÚÚ×Ú××ÖÕÔÓÓ“!####################!--““ÝÝÝÝÝ““"ƒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““"!###-ƒ---"-!##########################################################################################-#################ƒÓÕÕ×ÜÛÜÛÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙØÕÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÜÙÙÙÙÖÓÔÓƒ‚##################““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ’"-“ÓÑÓÓÓÓÓ““-!-!##################################################################################################!œ×ÓÕÕÕØÜÛÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚÜÚÙÙÚÜÚÚÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØÕÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÙÙÖÖÖÔÔÒƒ################-“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÓÓÓÔÔÔÔÔÔÔÓÓÓ“““!########################################################################################################################################-“Ó×ÕØÚÜÚÜÛÜÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØÜÚÙ““ÜÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÜÙÙ×ÖÖÓÓ“-###############-ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÔÔÔÔÕÕÕÕÕÔÔÔÔÓÓÑ“!########################################################################################################“####################tƒÒÕÕÚÜÜÜÜÜÛÛÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØÛٓÓÚÜØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØØØØÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ×ÖÓÓ“ÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÙ×ÖÔÓÓ““##########!--"“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““““ÝÝÝ“ÓÔÔÔÔÕÕ××××××ÕÕÕÕÔÔÓÓ“!#######################################################################################################################“##########################iÒÒÓÕÚÜÜÜÜÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚÚÜÙÙÚÚØÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚÚÚÚØØØ×ØØØØ×××××××ÕÕÕÕÕ××Õ××רÙÙÙÚÚÚÚÚÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ××ÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÙ×ÖÔÔÓ“!#######!““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““Ý“’ÑÑÓÓÓ“““ÔÕÕÕ××ØØØØØØØØ××××ÕÔÔ’“-!-####################################################################################################################“##########################tÒÒÓÕØÜÜÜÜÛÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚ““ÚÚÚÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØØØÕÕÕÕ×ÕÕÕÕÕÕÕÕÕÕÕÔÔÔÔÔÕÕ××××ØØØØÚÙÚÚÜÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ××ÖÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÙ××ÔÓÓƒ!#####!“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“rÑÓÑÓ“““ÓÓ“ÓÓÓÔÔÔÔÔÕ“ÕÕ××ØØØØÚÚÚØÚÚÚØØ×××ÔÔÔ’ƒ----"!##!!---########################################################################################################“##########################ƒÒÒÓÕÕÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚÚÚÜÚØÜÚÚÜÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÜÚØØØ×ÕÕÕÔÔÔÔÕÓÕÕÕÕÓÓ“ƒ“ÔÔÓÔÔÔÔÕ×ÕÕ×ØØØÙÙÚÙÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ××ÖÓÓÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜÚ××ÔÔÓƒ###-“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÓÓÓÓÓÔÔÔÔÔÔÔÕÔÕÕÕÕÕ×Õ×רØÚØØÚÚÜÜÜÚÚÚÚÚØØØ××ÕÕÔÔÔ““ÓÑ“--"’ÓÑ“!#######################################################################################################“ƒ-#!#######################“ÒÓÓÕÕÚÜÜÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÜÛÚÚÚÚÚÚÜÚÚÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÚØ××Õ“ƒÕÕÔÔÔÓÕÒÒÒÒÒÒÕ####ƒƒƒÒÒÔÔÔÔÕ××רØÙÙÚÙÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ××ÖÓÓÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÚÚÚ×ÕÔÓÓ-!-“ÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÓÔÔÕÕÕÕÕÕÕ×ÕÕÕÕ××××ØØØØØÚÚÚÚÚÜÜÜÜÜÜÚÚÛÚÚØØØ×ÕÕÕÔÔÔÔÔÔ“““ÓÓÑÓƒ!#######################################################################################################“###########################ƒÒÓÓÕרÜÜÜÛÛÛÜÜÜÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÜÜÚÚÚÚÚÚÜÚÚÜÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ××Õ#######ƒƒ‚“““##########ƒƒƒÔÔÔÕÕÕ×ØØØÙÙÚÙÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚ××ÓÓÓÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÜÜÚÜÚÜÛØ×ÕÔÓ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÔÔÕÕÕ×רÕ×ØØØØØØØØØØÚØØÚÚÚÚÚÜÜÜÜÜÜÜÜÜÛÛÚÚÚÚÚØØ×Õ×ÕÕÔÕÔÔÔÔÔÔÓÓÓƒ!!###################################################################################################““#############################ƒƒÓÔ×ÕØÜÜÙÜÛÛÜÛÛÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÜÚÜÚÚÚÚÚÚÚÚÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÙØ×׃#########!!################ƒƒƒÕÕÕ×××ÙÙÙÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ××ÖÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚÚÚÜÜÜÚÜÜÚÚÛØ×ÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÔÕÕÕØØØØÙÙØØÚØØÚÚØÚÚÚÚÚÚÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚØÚØØØ××××××ÕÕÕÕÔÔÓÓ“-!!#################################################################################################“################################ƒÔÕÕØØÚÜÜÚÛÛÛÛÛÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜØÜÚØØÚÚØÚÚÚØÙÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÙ××Õ“!!#####-"“"!-###############!!ƒƒƒƒ×רÙÙÚÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ×ÖÖÓ“ÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÛÚÚÚÚÚÜÜÚÚÜÛÛÚÚÚÚÕÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÕÕØØØÚÚÚÚÜÚÚÚØÚÚÚÚÚÜÜÜÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚÚØØÚÚØØØØØØ×××ÕÕÔÔÔÓ“!!-!###############################################################################################ƒƒ########################!!#####ÔÕÕÕØÙÙÛÚÛÛÛÛÛÛÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜØØØØØ×ØØØØØÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÙØ×ד““--!-!"“ÓÓ““!-!!!!########“Ó“!###ƒ××ÙÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØ×××Ó“ÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÓ““ÃÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÛÚÛÚÜÜÜÚÛÛÛÛÚÚÛ×ÔÓ“ÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÓÕØØÙÚÚÚÚÚÜÜÜÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚÚÚÜÚÚØØÚÚØØØ××ÕÔÔÔÓÓ“ƒ!-!####################################################-!""" !!##################################ƒ#####################!-“““!###ƒÕÕÕ×ÙÙÜØÛÛÛÛÚÚÛÛÛÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÚØØÕØ××ÕÕ×××ØÚØÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÜÜÜÙÙØ×××Õ“ÔÔÔ“-ÔÓÔÔÓÔÓ“““““““““ƒ‚--“ÓÔ“!-!“רÙÙÙÙÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚ×××Ó“ÃÃÃÃÃÃÓÃÃÃÓ“ÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÚÚÚÜÛÛÛÛÚÚÚÚÚÚÚד“ÝÝÝÝÝÝÝÝ“ÓÓÔ×ÔØØÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÜÜÜØØØÚÚÚØØ×ÕÕÕÔÔÔÓÓÑ’--#----!---!!--!!---#-!###########################-“ÑÓÓÓÓ““-"-!!!####################-- !!!!#ƒƒ“!##################“ÒÑÑÑ“!-##ƒÖÕרÙÚÜÛÛÛÛ““ÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÚØØ×ÕÕÕÔÔÔÕÔÔÕÕÖ×רÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜÜÜÜÜÚÙÙØØ×ÕÕ×ÕÕÕÕÕÕÕÕÔÔÕÕÔÔÔÔÔÔÔÔÔÔÔÔÔÔÕÕ×Õ“×רÙÙÙÚÚÚÙÜÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÜØ××ÓÓÓÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÚÚÜÛÛÛÛÛÚÚÚÚÚÚÜÜÚØ““ÝÝ“ÝÝÝ“ÓÓÔÖ×ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÙÚÚÚØØØ×××ÕÕÕÔÔÔÓÓÓÓ’“Ñ’Ó“ÓÓÓÑ’“““ÓÓÓÑ“-##!!!!!-!!#############!!-“ÓÓÓÓÓÓÓÓ“““’"-!####!!-"""--####!-ƒÓÓ““"- “““---!###############!ƒÓÑÓÓÓ“-##ƒ××ÙÙÜÚÛÛÛÛÛÛÛÛÛÛÛÜÜÜÜÜÜÜÜÜÜÚØÜÚÜØØØØ××ÕÕÔÔÔ““#““##ÕÖ××ÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÜÚÚÚÚÚÚÚÙÚÙØØØ×××ÕÕÕÕÕ×ÕÕ×ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ×××××ØØØÙÙÙÚÙÜÚÚÚÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜØ××ÓÓÓÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚÜÜÛÛÛÛÚÚÚÛÛÜÜÚÜÚ“ÝÝÝÝ“ÝÝ“ÓÔ×××ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÛÚÚÚØØØØØ××ÕÕÕÕÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÔÓÑÑÓÑ“-!ƒ’““““““-!!!!-!!--!---ƒ’ÓÔÔÔÔÔÔÔÔÔÔÓÓÓÑÓ“!##!“’’ÑÓÓÓ“-#!-“““ÓÓÓÓÓÓÓÓÓÓÓÒ““!##############“ÒÓÓÓÓÓÕÕ“ƒƒ×ØÙÙÜÙÛÛÛÛÛÛÛÛÛÛÛÜÜÜÜÜÜÙÚÚÜÜÚØØØØØØ×ÕÕÔÔÔ“########ÕÕ××רÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÛÜÜÜÚÚÚÚÚÚÚÚÚÚÚÙØÚØØØØØØØØØØØØØØØØØØ××××××××××××××××ÙØØØÙÙÙÙÙÚÙÜÙÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÙØÕÓÓÓ““““ÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÚÚÛÛÚÚÚÚÜÜÛÛÛÜÜÜÚÜÚ“ÝÝÝÝÝÝ“ÓÔ××רÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÜÜÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚÛØÚØØ××××ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÔÔÔÔÔÔ’ÓÓÓÓÓÓÑÓ““““’““’““ÓÓÓÔÔÔÔÕÕ×Õ×××ÕÕÔÔÔÔÔÓÓ"--“ÓÓÓÓÓÓÓ“--“’ÓÔÔÔÔÔÔÔÔÔÔÓÓÓÓÓÓ“!#############ÓÓÓÔÔÕÕÕÕ“ƒ××ÙÙÙÜÙÜÜÜÛÛÛÛÛÛÛÜÜÜÜÜÜÚÚÚÚÜØØØØØÕÕÕÔÔÔÓÒÔ“########“ÕÕ××ÚÙÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÜÜÜÚÚÚÚÚÚÚØÚÚÚÚÚÚÚÚÚØÚØØÛØÙÙÙÚÜÚØÜØØØÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙØÚÙÙÙ“ÙÙÙÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÚÙØÕÓÓÓ“ÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÛÚÚÛÚÚÚÚÚÚÚÜÛÜÚÜÜÚÚÚØÕÓÓ““““ÓÕ×××ÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÜÜÚÚÜÚÚÚÚÚÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÛÚÚÚÚÚÚ×××××××××××××××××××××××ÕÕÕÕÕÕÕÔÔÔÔÔÔÔÔÔÓÔÓÔÔÔÔÔÔÔÔÕÕ×××ØØØØØØ×ÕÕÕÕÔÔÔ“““ÔÔÔÔÔÔÔÔÔÔÔÔÔÔÕÕÕÕÕÕ×Õ×ÕÕÕÕÓÓÓÓ““!######ƒ““!!ÓÔÕÕÕ×××××רÙÙÙÚÜÜÜÜÜÛÛÛÛÛÛÜÜÜÜÜÚÚÚÚÚÚØØ×ÕÕÕÕÔÔÔÒÒÒÒ“#########“ÕÕÕרÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÜÜÙÜÚÚÚÚØÚÚÚØÚÚÚÚÚÚÚÛÚÛÛÛÚÚÚÚÛÜÛÜÜÛØÜÜÜØÚÙÜÜÜÙÙÙÜÙÙÚÚÜÚÙÜÛÜØØÜØÙÙÙ“ÙÙÙÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÙØÕÕÓÓ“ÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÚÚÚÚÚÚÚÚÚÚÚÜÜÜÚÜÚÚÚ×ÓÓÒÑÓÓÓÓÓÔÕÔ××ÚÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÚÚÚÚÚØÚÚÚÚÚÚØÚÚØÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÚÚÚÚÚÙÙ×רØ×ØØØÛØØØ××ØØØ×ר×××××Õ×ÕÕ×ÕÕÕÕÔÕÕÕÔÕÕÕÕÕÕ×××ØØØÚÚØÜØØØØØØÕÕ×ÕÕÕÕÕÕÕÕÕÕ×ÕÔÕÔÕÕ×××××ØØØØØ×××ÕÕÕÕÓÓÓ“““-!!-ÒÓ“-“ÕÕÕÕØ×ØØØÙÙÙÙÙÚÜÜÙÜÜÜÜÛÛÛÛÚÜÜÚÚÚÚÚÚÚØ×Ø×ÕÕÔÔÓÔ“ÔÔÔ““###########“ÕÖרÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÛÜÜÜÜÜÚÚÚÙÙÚØØØØØØƒƒÚÚÚÚÚÜÛÛÛÛÛÛÛÛÛÜÜÜÜÜÛÛÛÜÜÜÙÜÜÜÜÜÙÜÙÙÜÜÜÜÜÜÜÛÛÛÚÚÜÙÙÙÙ““ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙØÕÕÕÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ““““ÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚÛÛÛÛÛÚÚÚÜÜÜÚÚÚØ×ÓÓÓÓÓ“““ÓÓÓÕÕ×××ÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚØÚØØØØØØ××××רØ×ØØÚØÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÛÚÚÜÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚØØØÚØØØØØØØ×××××××××××××××××ØØØØØÚÚØÜÜÚÚØØØØØØØØ××××××××ØØØØ×××ØØØØØØØÚÚØÚÚÙÙØ××ÕÕÕÕÕÓÓÓ“--ƒÓÓÔÕÕÕרØÙÙÙÙÙÙÙÙÚÚÜÜÜÜÜÜÜÜÛÛÛÜÚÚÚÚÙØØØØ×ÕÕÕÔÔÓ““##################“ÕÖרÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚÙÚÙÙÙØØØØØØÕ×××××"“רÚÚÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÙÜÜÜÛÛÛÜÚÚÙÙÙƒƒÙÚÜÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØÕÓÓ“ÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝ“““““ÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÛÛÚÚÚÚÚÚÚÚÚÚÚÚ×ÓÓÓÓÓ¯ÝÝÝÓÑÓÓÕÕ×××××××ÚÚÚÚÚØØØÚØØØØØ×Ø×××××ÕÕÕÕÕÕÕÕ×××רØÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÛÛÛÛÛÚÚÚÛÛÛÛÚÚÚÚÚÚÚÚÚÚÚØØØØØÚÚØØØØØØØØØØØØÚÚÚØÚÚÚÛÜÙÜÜÛÛÛÚÜÚØØØØØØØØØØØÚØØØØØØÚØØÚØÚÚÚÚÚÜØÚÚÙÙÙØØ×ÕÕÕÕÕÔÔÔÔÔÕÕըרØÙÙÙÚÚÚÚÚÜÜÚÜÜÚÜÜÜÜÜÜÛÛÜÚÚÚÚÚØ×××ÕÕÔÔÔÔÒƒ###################“ÓÓ×רÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚÙØØÙØØØØØ×ÕדÕÕ××ד××ØØØÜÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÜÜÜÜÜÜÜÜÛÛÚØÙÙÙ“ØÚÜÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÕÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÛÛÚÚÚÚÚÚÚÚÚÚÚÚÓÓÓÔÓ¥ÝÝÝÝÝÝÓÓÓÓÔÕÕÕ×Ô××××××××××××××ÕÕÕÕÕÕÓÕÔÔÔÕÕÕÕÕÕÕÕÕ×רØÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÛÛÚÚÚÚÛÚÚÚÚÚÚÚØÚØÚÚÚØØØÜÚÚÚÛÛÛÛÜÜÜÜÜÜÜÜÛÛÙÙÜÜÜÚÚÚØÜÜÚÚÜÚÚÚÚÚÚÚÚÚÛÚÛÛÜÜÚÚÜÜÚÚÙÙÙØ××ÕÕÕÕÕÕÕÕ×ÕØØÙÙÚÙÚÜÜÜÜÜÜÜÜÚÜÜÜÜÜÜÜÛÚÚÚÚÚØ××××ÕÕÕÔÓÒƒƒ##################!ƒÓÕÖרÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØØØØØ×ÕÕ××Õ“!ÕÔÕÕÕÕÕ××רØÚÚÜÛÜÜÜÜÜÜÜÙÜÜÜÜÜÜÛÜÜÙÜÜÜÜÜÜÜÜÙÜÜÜÜÜÜÜÜÜÜÛÛÙÙÙÛÛÛÜÚÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÛÚÚÚÚÚÚÚÚÚØÚÕÓÓÓœ“ÝÝÝÝÝÝÝ““ÓÓÓÓÓÓÔÕÕÕ×Õ×××ÕÕ×ÕÕÕÕÔÔÕÓÓÓÓÓÓ““ÓÓÒÓ“““ÕÕÕ×××ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜÜÜÜÜÚÚÛÛÛÚÚÚÚÛÛÛÛÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÙÜÜÜÜÛÛÛÛÛÜÛÚÚÚÛÛÛÛÛÛÜÜÜÜÜÜÜÜÜÚÜÜÚÙÙÙÙØØØØ×ØØØØØÙÙÙÚÙÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØÚØ××ÕÕÓÓÕÒÒÒƒ############ƒ“ÒÓÕÖ×ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØÚØØØ××ÕÕÕÔÕÔÔÔ!ÕÔÔÓÓÕÕ““×ØÚØÚÜÛÜÜÛÛÛÜÜÙÜÜÜÜÙÜÜÜÜÜÜÜÜÜÜÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ×ÓÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÛÚÚÚÚÚÚÚÚÚØØÓÓÔÓÝÝÝÝÝÝÝÝÝÝ““ÑÑÓÓÓÓÓÓÓÓÔÔÔÔÔÔÔÕÓÓÓÓÓÓÓÓÒÓ“ÝÝÝ“ÒÒ““ÝÝ““ÓÕÕ××ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚÚÚÚÙÙÙÙÙØØØÜÙÚÚÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØØ××ÕÓÕÓÒÒƒƒ###############“ÒÒÓÕ××ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØØØØÕÕÔÖ“ÔÔÓÔÔƒ#ÔÔÒÒÒ“#“Õ×רÚÚÜÛÛÛÛÛÛÜÜÙÚÜÜÜÙÜÜÜÜÚÚÚÚÚÚÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÜÜÚÜÚÚÜ×××××ÜÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÓÓÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÚÚÚÚÚÚÚÚÚØ×ÓÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝÝ“ÓÓÓÓÓÓÓÓÓÓÓÓ““Ý““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÕÕרÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜÚÜÚÚÚÚÙØÚÚÙÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØ×ÕÕÕƒƒƒƒƒ###############“ÒÓÕÕ××ÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØØÕÕÕ“##ƒÔÔÒÒƒ##ÔÒÒƒƒ#“ÕÕ××ÚØØÜÛÛÛÛÚÛÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÙÚÚÚÚÚÚÜÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚØØ×××Ô×ÔÔÔÖÖÖÖרÙÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØÓÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÜÜÚØØÓÓÓÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓÓÕ××ØÚØØØÚÚÚÚÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚ××Õƒ############################!ÓÓÕÓרÙÙÚÚÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚØ××ÕÔÕ‚##ƒÒÒ“ƒ####ƒƒ###“ÕÕרØÚÚÛÛÛÜÚÜÚÚÚÚÙÚÚÚÙÚÚÚÚÚÚØÙ“ÙÙÜÚÚÜÜÚÚÜÜÜÙÜÜÜÚÜÜÜÜÜÚÚÚÜÚ××¥×××רØÚÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÜØØ×××ÔÓ“Ó“ÓÓÓÖÓÕÖ××ÙÙÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÓÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÜÜÚØÕÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÓÓÕÕ××רÚÚÚØÚÚÚÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÜØ×ÕÕƒ################################-ÒÓÓ××××ÙÙÙÙÚÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÕÔ“ƒ###ƒÒƒ##########-“ÔÔÕØÚØÚÛÛÛÜÜÜÚÚÙÙÚØØÙØÚÚÚØØØÚ“ÙÙÙÙ‚ÙÚÜÙÚÚÚÜÜÜÜÚÚÜÜÜÚÚÚÚ××ר“#ƒÖ××רØÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØ××ÕÔÔÃÃÃÓ“Ó““ÓÓÕÖ×ÙÙØÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÓ“ÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÜÜÚØÕÓÓÓÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÓÕÕ×××××ØÚØØÚÚÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÜØ×ÕÕ“#################################ÒÓÓÓÕ×Ó×××ÙÙÙÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÜÜÙÜÜÚØ×ÕÕÔƒ################-“ÓÕÔ×ØÚØÚÛÛÛÛÛÚÚÚ“-“ÚØØØ“ÚÚØØØØØØÙÙÙÙÙÙÚÚÚÚÚÜÜÜÜÜÜÜÜÚÚÚÚÚ××Õד#“ƒÓÔ×רÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØ××Ô“ÃÃÃÃÃÃÃÓ“ÓÓÓÕÕ××ÚØÚÚÜÚÜÜÜÜÜÜÜÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚ××ÕÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÓÓÓÕÕÕ××Ô×רØÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÙØØ×Ô“!###!!#######!!-!################“ÒÓÓÕÕÕ××××רÙÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÚÜÜÜÚÚÚÜØØØÕÔÔ“################““ÓÕÕ×ØÙØØÛÛÛÜÙÚÚÙÚÚ“ØØØØØØ““ØØØØØÙ×ÙÙÙÙÙÚÚÚÜÚÚÚÚÚÚÚÚÚÚÚÚ×××ד!###“ÔÖרÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØ×Ô“ÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÓÕÖ×ÚØØÜÚÛÜÜÜÜÜÜÜÜÜÜÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÕÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÓÓÓÓÔÔÕ×Ö×ØØØÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÚÚØÕÕÕ“-!"ƒƒ!####!-“““ƒ--!--!!!#########ÒÓÓÓÓÕÓÕÕÖ×רÙÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÚÜÚÚÚÚÚÚÜÚØ×ÕÔÔÒ“ƒ##############-“ÓÓÕÕÕØØÚÚÚÜÚÛÚÚÚÚØØ“ÚØØØØØ××ד“ØØ×ÙØÙÙÜÚÙÚÚÚÚÚÚÚÚÚÚÚÚÙÚÚ×××ÕÕƒ!!#“ÔÖ×רÚÚÜÜÚÚÜÜÚÚÚÚÜÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØ×ÕÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÓÕ×רÚÚÚÚÛÜÜÜÜÜÜÜÚÚÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÕÕÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÒÓÓÓ““ÓÕ××רÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÚÙØ××ÕÔ“““ÑÓƒ!!!-"“ÑÑÓÓ“’“’“““--!#######“ÒÒÓ“““““ÕÕÕרÙÙÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÙÙØÚØØØ×ÕÔÔÔÒƒ#############-ƒÒÓÓÕÕÕØÚØÚÜÚÚÜÚÚÙØÚÚÚØØØØØ×××××ר××ÙÙÙÙÙÜÙÚ“ƒÚÚÚÚÙÙØØÙ×Ú“×××ÕÕÔ####ÔÖ×ØÚØÚÚÚÚÚÚÚØØÚÚÚÚÚÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØ×“ÔÔ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔ××רØÚÜÛÜÜÜÜÜÜÜÜÜÜÜÚÚÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜÜÜÜÜÚÚØØÕÕÕÒ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÕÕרÚÜÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚØ×ÕÕÔÔÔÔÓÓ’--ÓÓÓÓÔÓÔÔÔÔÓÓÓÓÑ“-!!-!-##“ÒÓ#####ƒÓÕÕ×ÙÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÚÚÚØØÙØØØØØ×ÕÔÓÒу#############-ƒÑÒÒÓÔÕÕØØØØÜÚÙÚÚÚÚØÚÚÚØ“ØØØ×××ר“Ø×׃ƒÙÙÙÙÙÙÙÚÙÚÙÚÙØÙÚÚÚד×ÔÕÔÔÔ“###ÔÖ×רÚÚÚÚ×ÚÚר×ÚÚÚØØÚÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØÚØÕÕÔ“““ÂÃÃÃÃÃÃÃÃÃÓÓÓÔÔ×רÚÚÛÛÜÜÜÜÜÜÜÜÜÜÚÙÓ“ÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚØØ×ÕÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓÓÔ××ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØØØ×Õ×ÕÔÔÔÔÔ“ÔÔÔÕÕÕÕÕÕÔÕÔÔÔÔÓÓ“"“““ƒ-!“ƒ“######ÓÕÓÖ××ÙÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØØØØ×רÕÕÕÔÔÒÑ“#############!ƒÑÑÒÔ“ÔÔÕרØÚÚÚÚÚÚÚØØÚÚÚØØØØ××רØ×××רׂÙÙÜÙÙÙÙÚÚÚÙÙÙ×Ú××××××ÕÕÕÕÔÔ““#ÔÖÖ××ÚÚÚÚ×××××××××××ÚÚØÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØÛØ×ÕÕÔÓÓÓ“ÃÃÃÃÃÃÃÃÃÓ“ÔÔÖרØÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÚ×ÓÓÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÜÜÚÚÚÚØÚÚØØØØØØØØØ×ØÕÕÕÓÓÒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÕÕ×ØÚØÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÚÜØØØØ×Õ×ÕÕÕÕÕÕÕÕÕ××××ÕÕÕÕÕÕÔÔÔÔÔÓÓÓ“--“Ó######ÒÓÓÕÖ×ÙÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØØØ×Ø“Õ×ÕÔÔÓÒ“ƒ##############“ÑÑÒÒƒ“ÔÔ“ÕØØÚÚØÚÚØØÚÚ““ØØØØØ×“ƒ“׃ƒ×××ØÙ““ÙÚÚÙÙÚÙÙÙÙÙ“××××ÕÕÕÕÕÕ“ÕÔÓÕ“ÕÕÔÔ××××××ÕÕÕÕÕÕÕÕ××××רÚÚÚÜÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÚÜÚØÕ×ÕÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÓ““רÚÚÚÛÜÜÜÜÜÜÜÜÜÜÚÚ××ÕÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÜÜÚÚÚÚØÚØØ×Ø×ØØ××ØØØØ×ÕÕÕÕÓÓÒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÕרØÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÛØÚÚØÚØØØØ×ØØ××ØØØØØØØØØØØØ×ÕÕÕÕÕÔÔÔÔÔÔ““Ó““####“ÒÓÕÕÖ×ÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÚÚØØØ×׃ƒ!““ÔÔÔÔƒ################ƒÑÒÒƒƒ#ƒƒÕ“×רØÚÚÚØØÚØÚØØØØ×ØØØ““ƒ##ƒ×Ø×ÙÙÙÙÚÚÚÚÚÙÙÙÙד“×ÕÕÕ“““ÕÕ“Ó“ÓÓÓÓÕÕÕ×××ÕÕÔÔÓÓÓÓÓÓÔÔÕÔ××רÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÜÚÚØ××ÔÔÔ“ÃÃÃÃÃÃÃÃÃÃÃÃÓÕרØÚÚÛÜÜÜÜÜÜÜÚÚÙÙ××ÖÓÓÓ“ÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚÚÚØÚÚÚ××××ÕÕÕÕÕÕÕÕÕÕÕÕÕÓÓÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕ×ØØØÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÚÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØÚØØØØØÚØÚÚÚØØÙÚØØØÚØØ××××Õ×ÕÕÔÔÔÓÓÒÑ#####“ÒÓÓÖ×ÙÙÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÜÚÚÚ××××-““ÕÔÓÔÔƒ#################ƒƒƒƒ####!“ÕÕ×רØÚÚØØØØÚØØØØ×××Õ××Ö“#רØÙÙÙÙÚÚÚÚÚÚØØØÙ×ד“ÕÕÕ““““ÓÓÓÓ“ÓÓÕÓÕÕÕÕÕÓÓ““““Ñ““Ý“ÓÓÔÕÕ×××ÚÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÚÜÚØ××ÔÕÔÓ“““ÃÃÃÃÃÃÓ“ÔÔÕרØÚÛÛÜÜÜÜÜÜÜÚÙÚ×Õ×ÓÑÓ““ÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÛÚÜÚÚÚØØ××××××ÕÕÕÕÕÓÓÓÓÓÓÓÓÓÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÒÓÓÕ×רÚÚÚÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÚÙÙÙÚÚÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÙÜÜØØÚØØØÛÚØÜÛÛÜÜÜÜÙÜÚÚØØØÙØØØØ×××ÕÔÕÓÒÒ“#####ƒƒÓÖרÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØÚØ××ר“ÕÕÔÕ“!#######################!ƒ““““ÕÕÕ×××ØØØØ““ØØØØØØ××רÖר‚××ÖÙÙÙÙÚÚÚÚÚÚÚÚÙד×ד“ÕÕÓÓÓÓ““““Ý“ÓÓÓÓÓÓÓÓÓ“ÝÝÝÝÝÝÝÝÝ““ÓÓÓÕÕ×רÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚØÚØ××××ÔÓÓÓÓ““ÃÃÃÓÓÔÔÔרØÚÚÛÜÜÜÜÜÚÜÚÙÙ×ÖÕÓÓ“ÃÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚØ×××ÔÕÔÓÓÓÓ“ÝÝÝÝ““ÓÓÒÒÒ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÕÕ×רÚÚÚÚÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚÚÙØØ×××רÙÙÙÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚ“ÚØØØØØ××ÓÓÓÓ“#######“ÕÖ××ÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØØ××ÕÕÕÕÕÔÔÓÓÓ“!#####################ƒÒÒÓÓÓÔÔÔÕÕØ×ר“×××××ד“Ø××××ÖÖØØÙÙÙÙÙÚÚÚÚÚÚÚÚÙØ×ƒÓ×Õ“ÓÓÓÓÓÓÑÑÓÝÝ“ÓÓÓÓ“ÑÑÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÓÓÓ“Õ××ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÚÜÚÚØÚÚØØ×××ÖÔÔÓÓÓÓ““ÃÓÕÔ××ØÚØÚÛÜÜÜÜÜÚÜÚÙ××ÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÛÛÚÛØØ××ÕÕÔÓÓÓÓ““ÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÒÒÓÕÕÕ×רÚÚÚÜÜÛÜÜÜÜÜÛÛÜÚÜÜÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØÚØ××××××××××ÙÙÙÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÚÚÚÚÚØØØ××ÖÕÓ“#######“ÓÓ××ÙÙÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØØ×“Øƒƒƒ“ÔÔÓÓÒÒ-####################-ƒÒÒÒ““ÓÔÔÔÕ“ÕÕ×-×××××דר×ד“ÙØØØÙÙÙÙÚÚÚÚÚÚÚÚÙØ××ÕÓÕ“ÝÝÝ“““ÑÑÑÑ“ÝÝÝ“““Ý““ÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““×××ÚÚÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚØØØØØØØØØØ××××ÖÖÖ×ÓÓÓ““ÃÕÕ×רÚÚÛÚÛÜÜÜÜÜÚÚÙ×ÖÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÛÛÚÚÚד“ÓÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÓÕÕÕ×××ÚÚÚÜÜÜÜÛÛÛÛÚÜÚÜÜÜÜÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÚØ×Ø××ÕÖÕÕÕÕÕ××רÚÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÛÛÚÚÚØØØ×ÓÓÓ“#######ÒÒÕÖÖ×ÙÚÚÚÜÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛØÚØØ××!!#-“ÔÓÔÓÓÓÑ“#################-#“ÒÑÑÒÒÒÔÒÓÔÔƒ!ÕÕÕ“××Ö××ÕÕÕ×דØ×ÙÙØÙÙÙÙÙÙÚÚÚÙÚÙØÚØ××ÓÓÕÓ“““ÝÝÝ““ÑÑÑ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“Ó×××ÚÚÚÜÜÜÜÜÜÜÜÚÚÚÚØØ××רØÕØ××××ר×××××ÓÖ××ÕÔ““Õ×רÜÜÚÛÛÜÜÜÚÚÚÙ××ÕÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÛÚØÚØ×““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÒÓÓÕÕ×רÚÚÚÜÜÜÛÚÜÛÚÜÚÚÚÜÚÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØ××ÕÕÓ““#““ÓÕÕ×Ö××ÚÚÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÙÙÙÜÚØØØ×ÖÓÓ““-###ƒÒÔÓÓ×××ÙÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØØ×Ô“-!ÕÕÔÔÔÓÓÑÓ““““!########!#!-ƒÑƒ!#ƒÒÒƒƒÒÒƒƒ##!ÕÕÕÕÕÕ××××ד“-ƒ×ÙÙÙÙÙÙÙÙØØØÙÙÚÙØØÙ×××ÕÓÓÓÓÓÑ“ÝÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÔÖ××ÚÚÚÚÚÚÚÚÚÚØØØØ××ÕÕÕÕÕÕÕÕÕÕ×××ר××××××××Ôד“רØÚÜÚÛÛÜÜÜÜÚÚÙ××ÓÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÛÚÚØØ×ÕÔÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÕÕ××ÚÚÚÚÜÜÚÚÚÚØØÚØÙÚÜÚÚÛÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ××Ö“ÓÓ####“ÓÓÓÕÕ××רÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØ×ÓÕÓÒÒ“###ƒÒÒÑÓÕÖ×ÙÙÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØØ×ÕÕÕ““ÔÓÓÓÓÔÔÑÑÑÑÑ“####!!-ƒ“ƒƒÑÑу--#ƒƒÒƒÒƒ###ƒƒÓÓÕÕÕ×Õ×ÕדררÙÙÙÙÙÙÙÙÙ“ØØ×ØÚÙØØØ×Ô×ÕÓÓÒÑ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕ×××ÚØØØÚÚØÚØØ××ÕÕÕÔÔÔÔÔÔÓÓÕÕÕÕÕ×××רØ×Ø×××Õד“ØØØÚÛÚÛÜÜÜÜÚÙØ××ÕÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÛÛÚØØ×ÕÔ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÕÕ××ÚÚÛÜÜÚÚÚÚØØÚÜÜØÚÜÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ×ÖÕ“Ó“#####ÒÒÓÓÕÕ×ÖרÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØØ×ÕÕÕÓÒÒ####“ÒÑÒÓÖ×××ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØØØ×ÕÕ““ÓÓÓÒÑ#“ÔÑ“ÑÑ““--ƒ“ÑÑÑÑÑÑÍÒÑÍÑÒƒ##ƒƒƒ####“ÓÓÔÔÔÕ×Õד““×ØØØÙÙÙÚÙÙÚÙÙƒ““×ØÙØØ×××ÕÕÔ““““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÔÕ×××××ØØØ×××ÕÕÕÓÓÔÓ“““ÝÝ““ÓÓÕÕÕÕ××××ØØØ×ØØØØØ““ØØÚÚÛÜÜÜÜÚÚÙ×Ó×ÓÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÛÛÚÚØ×ÕÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““××ÚÚÚÛÜÚÚÚØØØØØØØØÜÜÚÛÛÛÜÜÜÛÜÚÜÜÜÚÚÚÚÚÜÜÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ×Õ“Ó“######ÒÒÒÓ“““Ó××ÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØ××ÓÓÓÒƒ######“ÔÒÓÖ××ÙÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØØÕÕÕÔÓÓÒÓÓ“######‚‚ÍÍÐÑÑÑÑÑÑÒÒÍÒÒƒ“ƒƒ#########ÒÒÒÓ“Õ“ÕÕ“ƒ“×רÙÙÙÙÚÚÙÚÚÚÙÙØƒƒÚרØ×ÕÕÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÓÕ××××Õ×ÕÕÕÕÓÔÓÓÓÓ“ÝÝÝÝÝÝÝ““ÓÓÓÕÕ××××××ØØØØØØØ“ØØÚÚÛÛÛÜÜÚÚ××ÓÔÓÓÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÛÚØÚ×ÔÕÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“×רÚÚÛÚÚÚÚØØ“““ØØØÛÛØÚÛÛÜÛÛÜÜÚÚÚØÚÚÚÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ×ÕÓ“#########““##“Ó×Ö×ÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØÚ×ÓÖÓÒ“########““““Õ××ÚÙÚÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØØ×ÕÕÔÓÓÒÔ“##########-DZ-Nh̓ƒƒƒ###############ÒÒÓƒƒ!-Õד××רØÛÙÙÚÚÚÚÚÚÙÙÙÙ×Ú×דØÖÖÕÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÑÓÓÓÓÓÔÕÕÕÕÕÕÓÕÓÓÓÓÒ“ÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÓÕÕÕ×××ØØØØÙÙÚØÜÚÛÚÛÛÛÜÚÚÙ×ÖÕÓÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÛÚÚÚØÔÕÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““×××ÚØÚÚÜÚÚÚØØ““Ý““ØÚÛØÚÛÛÛÚÚÚÚÚØØØØØØÚÚÚÚÚÚÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ×ÓÕÓ#############“Ó×Ö××ÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØ×Ó×Ó““############Õ×רÙÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÛÙØØ×Õ“#ÔÑÒ“#################N##################-“Ò“---“Õ×××ÙÙÛØÜÚÚÚÚÚÙÙÙÙØ×××××ד!!!““““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÑÑÑÓÓÑÓÓÓÓÓÓÓÓÓÓÓÒÒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÓÓÕÕ×××ÚÚÚÚÚÜÜÚÚÜÜÜÛÜÜÚÚ××ÕÔ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÛÛÚØØÕÕÔÓÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓ×××ÚØÚÚÜÜÚÚØØØØ“ÝÝØØØÛÚÛÛÛÚÚÚÚÚ××××××××רÚÚÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ×ÓÕÓ##############ÓÕ×Ö×ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØ×ÓÕÓƒ############ÓÖÖרÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÙÙØ××Õ“!ÓÒ“###############################!-ƒ“ƒƒÒÒ““ÔÔÕ××רÚ×ÙÚÚØØÚÚÚÚÙÙÙÙØ××××Ô×Õ““““ÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÑÑÓÑÓ““““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÕÕ××ÚØÚÚÚÚÚÚÚÜÜÜÜÜÚÚÚ×ÖÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ××ÔÓÓƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“Ó×ÓרÚÚÜÛÛÛÛÚØØØØØØØØØØÛÚÛÚÚÚÚÚ××ÕÕÕÕÕÕÕÕ×××ÚØÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ×ÓÕÓ"#############“ÓÖÖÖ×ÙÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØÕÕÓÓ“############ÓÓ×רÙÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÜÜÙØ××ÕÔÔ“ƒƒ###############!###############-ƒÒÒÒÒуƒ!ÓÔÔ××רØÙÙÚÚÚÚÜÙÚÚÙØ××××××Ô×ÕÕÕÔÓÓÓÑÓÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕÔ×ÚÚÚÚÚÚÜÚÜÜÜÜÜÚØØ×ÕÖÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØ×ÕÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓ×ÕרÚÚÜÛÛÛÚÛÚÚÚØØØÚÛÚÚÚÚÛÚÚÚØØ×ÕÕÔÓÕ“““ÕÕÕ×ÚÚÚÚÜÜÛÜÜÜÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ×ÕÓÓ“#############“ÓÖÖÖÖ×ÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚØ×ÓÓÓÒ#############“Ó×רÙÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÜÚÙÙØÕ×ÔÓÓÑ##############################!““Òƒƒ##ƒƒƒ!“ÓÔÕ×רØ×ÙÙÚÚÛÚÚÚØØÙ××××Ó×ÕÕÕÔÔÓÓÓÑÓÓÑ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݓѓÔÕ×רØÚÜÚÜÚÜÜÜÚÚÚØ×ÖÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ××ÔÓÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÔÖØØØÚÛÛÛÛÚÛÚÚÛØÚÛØØÚÚÛÚÚÚÜØØ×ÕÕÕ“ÝÝÝÝÝ“ÔÔ×רÚÚÚÚÚÚÚÚÚÜÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØÚ××ÕÓ“#############“ÓÖÔÖÕØÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØ××ÕÓÒƒ#############ÓÕרÙÙÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜØØØÕÔÔÔÔÑ“ÑÑÑÑ“###################!-!“уƒÍÒ“######!“ÔÔÕÕרÛ×ÚÚÚÜÚÚÜÚÚÙØ×ד#ÕÕÕÓÕÓÓÓÓÓ“ÓÑ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÔÔÖ×ÚØÚÚÜÜÜÜÜÜÚÚÚ×ÖÖÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØ××ÔÔ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÒÓÔÔרÚÚÚÜÜÜÛÛÛÛÚÚÚÚÚÚÛÚÚÛÚÚÚØØ×דÓÓ“ÝÝÝÝÝÝ“ÔÕÖ×ØÚØØÚÚØÚÜÚÚÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚ××ÖÓÔ“############“ÓÖÖÖÓÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÚÚØØÕÕÓÔ“############““Õ×ÕØÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØØØ×Õ×ÔÔÔÓÔ“#““““‚################Z‚“ƒÑƒÑÍÒÒ““!!!---"“ÔÔÕ×רØÚÚÚÚÜÛÛÛÚÚØÙ×Öד#“ÕÕÓ““ݓӓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÔÕ××רÚÚÚÚÚÚÚÚØ×Ö×ÓÓÑ“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ×ÔÔÔ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÓÔרØÜÜÜÜÜÜÛÛÛÛÛÚÚÚÛÛÛÛÜÛÚÚØØ×“Ý““ÝÝÝÝÝÝÝÝ“ÔÔ××ØØØÚÚØØØØÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØÚ××ÖÓÑ“############“ÓÖÖÖÕÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØÕÕÕÒ“###########“ÓÓÕÕרØÚÚÚÜÜÜÜÜÜÜÜÜÚÛÜÜÜÜÜÜÜÜÚÚÚÚÚØØ×Õ“ƒÔÓÔÓ########################ƒƒƒÒÒƒÒÒ“ƒ!-“““ÓÓÔ“ÔÕÔÕ××ÚØÚÚÚÜÜÛÚÜÚØØØ××ÕÕ#“Õ“ÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÔÔ×××ÚØØÚÚØÚÚÚ×××ÓÓѓݓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ••Ý•ÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ×ÖÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÔרØÚÚÜÜÜÜÜÜÜÜÛÛÛÛÛÛÜÜÛÚÚÜÚØ×דÝÝÝÝÝÝÝÝÝÝ““×××ØØØØØØØÚÚÚÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚ×Ö×Ó““############“ÓÖÖÖÓØÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÚÜÚÚØØ×ÕÕÓ“#######-ƒƒƒ“ÓÓÕÕרØÙÚÚÚÚÚÚÚÚÚÚÚÚÜÚÛÛÜÜÜÛÜÜÚÚØØØÕØÕÔÔÔÓÔ““############################“Òƒ##!““ÓÓÓÔÔÔÔÕÕÕ×ØØØØÚÚÚÜÜÛÚÜÚØØØ×Öד#ÕÓÓÑÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÑÓÓÔÔ××××רØ××××××ÔÓÓ“ÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÝÝÝÝÝ•ÝÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚØ×ÖÕÔÓÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÓÕÕ×ÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØ××Õ““ÝÝÝÝÝ““Ô“ÔÕ×××ØØØØ““ÚØÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØÚ×Ö×Ó###############“ÖÖÖÕ×ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜØÚÚÚÚØØØÕÕÕÔÒ“#######ƒÑÒÔÓÓÖÓרØÙÚÚÚÚÚÚÚÚÚØØÚÚÚÚÚÚÛÜÛÛÜÚÚÚØØØ×ÕÔ“ÔÒ“#############################“ƒ-!"“ÓÓÔÔÔÕÕÕÕ××ØØØØØÚÚÚÜÚÛÚÚÚ““Ø×“"##ÖÓÓÓÓÝ““““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÓÓÔÔÕÕ××Õ×××Ö×××ÓÓ“ÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÛÜÜÚÚ×ÖÔÓÓÑ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÒÒÓÕÓרÚÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚØØØ××ÔÔ““ÝÝÝ“ÔÔÔ××××רØ×“Ý“ØÚØØÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ×××Ó“#############"“×ÖÔÓ×ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØØ×ØØÕÕÕÕÒÒ“#######ƒÒÒÓÓÓÓÖØØØÚÚÚÚÚÚÚØØØØØØÚØÚÚÚÛÛÛÚÚÚØØ××ÕÕ“ƒÔÔ“######################!-ÑÒÒ““ÓÓÔÕÕÕÕ×××ØØØ“““ÚÚÚÚÜÚÛÚÚÚÚØÙ××ד“ÕÓÓÝÝ“ÓÑÑÑÑ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÓÓÓÔÕÕÕÕÕÕÔÔÔÓÓÝÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÓÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÛÜÜØÚ××ÔÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÕÕרØÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÜÚØØ×ÕÕÔÔÔ“““ÔÕÕ××××ד“ÝÝ“ØØØÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×Ó×ÓÔ“############“Ó×ÖÔÕ×ÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØØØ×ÕÕÔÓÓÒÒÒƒ#######““ÒÓÓÕ×רÙÚÚÚÚÚÚØØ×ØÕØ×רÚÚÚÚÜÛÜÜÚÚÚØ×ÕÖ““ÓÔ““###################ƒƒÑÑ““ÓÓÔÔÕÕÕÕ×ØØØØØÚ““ØÚÚÚÚÜÚÛÚÚÚÚÙÙ××××ÕÓÕ“ÝÝ“ÓÑ““““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÑÓÓÓÓÓÓÓÓÓÓÓÓÓƒÝÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÓÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚ××ÕÓÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕ×רÚÚÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØÜØØ×ÕÕÕÕÕÕÕÕ×××ØØØØ““““ØØØØÚØÛÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ××ÓÓ““############ÑÓÖÔÖÓרÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØØØÕÕÔÔ“ƒƒÒƒƒ#########“ÓÓÓÓ××ÙÙÚÚÚØÚ××ÕÕÕÖÖÕ×××ÚÚØÜÜÜÚÚÚØ××Õ“““ÔÒ“####################ƒÍÒÒÒ-“Ô“Õ“““×ØØØØÛØØØÚÚÚÛÚÜÜÚÜÚÚÚÚØØ××ÖÕÕÕÓ““ÓÓÑ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÓÑ“““ÝÝÝ“ÓÓÓÓÓÓ“ÝÝÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÚØØ××Ô“““ÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÕÕ×רØÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØÛÛØØ××××××××ØØØØØØØØØØØØØØØÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚ×ÔÔÓÓÔ“############ÒÓÓ×ÔÕÕØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØØØÕÔÒÔƒ##ƒƒƒ##########ƒÒÓÓÕ×רÙÙÚÚ×××ÕÕÕƒƒ#-Õ××ØÚØÜÜÚÚÚÚ×Õ“ƒ#‚Ô““###########################ƒÒ““““ÔÕÕÕ×דÛÚÚÚÚÚÚÚÚÚÚÚÚÚÚÛÜÜÚÚÚÙ××Ö×ÕÕÕÓÓÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝ“ÑÓÓÓÓÝÝÝÝÝ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÛÚÚÚ××ÕÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÕÕ××ÚØÚÜÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÚÚØÚØØØØØØØØÚØØØØØØØØØÜØÚÚØÙÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØ××ÔÓÓ“#############““ÓÓ×רÙÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜÚÚÚØ×ÕÕÔ“ƒƒ################ƒÒÓÕÕÕ×רØ××××ÕÓÕƒ###!ÕÕ×רÚÚÚÚÚÚØ×ÕÕ““ƒÒƒ#““##################################“ÔÔÔÕ××ØÙ“ÚÚÚÚÚÚÚÚÚÚÚÚÜÜÛÛÜÜÚÚÚÙ×Ö×ÕÕÓÕÓÓÓÒÒÑ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÑÑÑÑ“ÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÚÚÚØ××ÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÒÓÕÕÕØØØÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚØÚØÚØÚÚÚÚÜÜØÚØØÚÜÚØÚØÛÛÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÚ×××ÓÓÓ################ÓÔÔרØÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÚÜÚÚÚÚÚØØÕÕÔÔ####################“ÒÓÓÕÕ××××ÕÕÕÕÕÕƒ###-ÕÕÕרÚÚÚÚØ××ÕÕÔÓÒÒÒ###“############!##################!-“ÓÔÕרØÙÙÙÜÚÚÚÚÚÛÚÜØØÚÛÜÛÛÛÜÚÚÚÚ×××ÕÕÕÕÓÕÓÓÒÓÓÑ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÑÑÑÑ“ÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÛÜÚÚØÖÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÕÕ×רØÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÚÛÚÚÛÛÚÚÚÚÜÚÚÚÚÚÚÚØØÚÜÜÜÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚ××ÕÔÓ“################“ÔÔרÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÚÚÚØØ×ÕÕÔÒÔƒ####################ÒÒÓÕÕÕÕÕÕÕÕÓÕÒƒ#####“ÕÕ×ØØØÚÚØ××ÕÕÔÒÒÒ“###“################-““ÓÔÔÔÕØØÙÚÙÚÚÛÚÚÚÛÛÛÜÜÜÛÛÛÛÛÜÚÚØØ××ÖÕÕ““ƒƒ“ÒÓÒÒÑÑ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÑÑÑ“ÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÛÛÚØØÔÔ“ÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓÓÓÕרØÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÜÜÜÜÜÙÜÜÙÚÛÛÛÛÛÜÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ××Ô““#################ÓÔÕרÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØÚØ××ÕÕÕÓÒÒÒƒ#####################“ÒÒÒÒÓÔÕÔÔÔÒÒƒ#####!ÕÔ××ØØØØØ×ÕÕÕÒÒÔ“#####ƒ###############ƒÓÓÓÕÖרØÚÚÙÚÚÜÚÜÜÛÛÛÛÜÜÜÙÜÛÜÚÚØØØ×Ö“##“Õ###ƒ“ÓÒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÑ“ÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÛÚÚØ×ÔÔ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃ÓÓÕÕ×רÚÚÜÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ××Õ“#################“ÓÕÕרÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØØØ×××ÕÕÕÓÓÒÒÒƒ######################ƒÒÒÒƒƒ###########!“ÔÕ×ØØØÚ××ÕÕÓÓ““##########-#############!ƒÓÓÓÕ×××ØØØØÙÚÚÜÜÜÜÛÛÜÙÜÚÚÚÚÜÜÜÜÚÚØ×Ö““-!##!-“ÑÓÑ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÚØÚ×ÔÔÔ“ÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕÕÕרØÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØÚ××Ô“##"#############““ÔÔרÙÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜØØÚØ×ÕÕÓÓÕ“ƒƒ“Òƒ########################“ÒÒƒ###########ƒ“ÓÕÕÕØØØØ××ÕÓ“#############“######################‚“ÓÓÕÔÕÕ××ØØØØÚØÚÚÚÜÜÛÛÛÙÜÜÚ“ÚÚÜÚÚØØØ×ÔÕÓ““!!“ÓÓÑÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÂÃÓ“““ÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÚØØØ×ÔÔ“ÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••••••••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÕÕÕØØÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØ×Õ“““ÓÓ“###########“ÓÕÕרÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÚÚÜÜÚÚÚÚØØ×“ÕÕÓÒÒƒ#########################################!-“ÔÓÕÕØØØØÚØ×ÕÔ““#############“#######################-ƒÓÒÔÔÕÕÕ××ÕØ×ØØØÚØÚÚÚÜÜÙÚÚÚÙÙÙÙÚÜØØØ××ÔÔÕÓÓ““ÒÑÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÛØØØ×ÔÔÓÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝ•••Ý•ÝÝÝÝ••ÝÝÝÝÝÝÝÝ••••••••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕÕÕרÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÛØØ×““ÔÓÓÓ“““#######“ÓÓÕ×רÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚÚÚÚÚÚØØ××ÕÓÕ““Ò“##########################################“ÓÓÕÔÕרØÙØØ×ÕÕ“ÓÒ####################################“ÒÒÓÓÓÕÕÕÕÕØÕ×ÕÕØØØÚÚÚÚÚÜÚÚÙÙÙÙÙÙÚÚÚÚØ×ÖÔÓÕ“ÓÒÒÑÑÑ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÚØØ×ÔÔÓ“ÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝ••••••ÝÝÝÝÝ••••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݓӓÕÕÕרÚÚÚÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚØØ×“ÔÓÕÓÓÓÒ“######“ÓÕÕרÙÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚØÚØØØÕÕÕÕÓÒÓ###########################################!!ƒÓÔÔÕÕרØÚÙØØ×ÕÕÓƒƒ####################################“ÑÒÓÓÔÔÔÕÕƒƒ““ÕÕըרØÚÚÚÜÙÙÚÙÙØÙØÚÚÚØ××ÖÕÓÓÝÝÝ“ÑÑÑÑÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÂÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜØØØÕÔÔÓ“ÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••••••••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÕÕÕØØØÚÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚØØ×××ÖÕÓÓÓÓÔƒ#####ÓÓ×ÕØØÙÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÚØØØØØØØÕÕÕÕÔÔÓÔƒ#######################################-!!ƒ“ÓÓÔÔÕ×רÙÙÜÚØØ×ÕÔÓt###############t#####################“ÑÒÓÓÔÔÔÔ“““ÔÔÔƒƒ“×רÚÙÚÚÙÚÙÙÙØØØØØØØ××ÔÓÕÓ“ÝÝÝ““ÑÑÑ’ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÚÙÜÚØ×ÕÔÔÓÝÝÝÝÝÝÝÝÝ•••••••ÝÝÝÝÝ“ÝÝ““““Ý••••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݕݕÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÕÕÕ×רØÚØØÚÚÚÚÜÚÜÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚÚØ××××ÕÓÓÓÓÓÒ!#“ÕÕ××רÙÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØØ×Ø××ÕÕÕÔÔÓÓÒÒ“######################################!!““ÓÓÓÕÕÕ×××ÙÙÚÜÜÙØØÕÕÓ“#########!######t#####################“ÑÒÓÓÓÓÓÓ“ÓÔÓÔƒ#ƒ“××רÚÙÙÙÙÙØ“!ƒ““ØØ××ÖÔÕÓÓ“ÝÝÝÝÝÝ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““Õ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÙØØØ×ÕÔÔ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••““ÝÝÝÝ“ÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÒÒÓÓÔÕÕÕØØ×ØØØØÚÚÚÚÚÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚ×ÚÙÙ××ÓÓÕÓÕÓ“ÓÓÕÕ×רÚÙÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚØØØ×××ÕÕÔÔÔÓÓÓÒÒÒƒ#####################################!-“ÓÓÓÔÕÕÕ×××ÙÙÙÚÙÜÙÙØØÕÕÓ“##################“###################“ÑÒÒÒÔÔƒ“ÔÒÒÔ“-““ÕÕ×ØØØÙÙÙÙØØ“-ƒ“××××××Õ““ÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÂÃÃÓ““““ÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜØØØØ×ÕÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝ•••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÒÓÓÓÕÕÕÕÕ××××ØØØÚÚÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚØÙÙÙØ×Ö×ÓÓÕÓÓÕÓÕ××רÙÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÚØ××ÕÕÓÕƒ““ÒÓÒ“ÔÒƒ##################################!-!-““ÓÓÔÔÕÕר×ÙÙÙÚÚÜÚÜÙÙØØÕÕÓÓ-#############-######################““ÑÒÒƒ####“““““ÓÓÓÕÕ“““ØØÚÙÙÙØØØ“Ø“×Õ××ÕÕÕÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜØØÕÕÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÒÒÓÓÓÔÕÓÕÕÕ×Õ×ØØØØÚÚÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØ×ÙÙØ×ÖÕÓÓÕÓ“ÕÕÕ×××ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØÕÕƒ#“###################################!!-"“““ÓÔÔÔÕÕ×רÙÙÙÚÚÚÜÜÜÜÙØÕÕÓ###############““##################““Ñ“-########ƒÔÒÓÓÕ““××ØÚØØÙÚÚØØØ×Ø××××ÕÕÕÓƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙØÚØØÕÕÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•••ÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““““ÓÒÓÓÓÓÓÕÕÕÕ×רØÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚרØÙ×ÕÕÕÕÕƒ#ÕÕÕ×××ÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØÕÓÕÓƒ##################################!--ƒ““ÓÓÔÔÔÔÕÕÕØØÙÙÚÚÚÚÜÜÜÜÙÕÓ##############“#####################ÑÑ“#########“““ƒ““ÕÕרØÚÚÚØÚØØØØØ×דÕÕÔÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚØ×ÕÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ƒƒÓÓÔÕÕ×ØØØÚØÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙ×××××Õƒƒ####ƒÕÓÖרØÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙØ×ÕÕÓÕ“######################################!!-“ÓÓÓÔÔÔÔÕÕÕÕ×ØØØÙÙÚÚÚÚÜÜÜÜÜÜÚÕÔ##############“““####################“##########ƒÒÒÓÓÔÕÕ××ØØØØÜÚÚØØØ×Ø×“--“ÓÓ“Ò“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜØÚØ×ÕÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÔÕÕÕÕ×רÚÚÚÚÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙ××Ö×ÕÕÔƒ####“ÓÓÓ×רÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙ×××ÕÕÓ“######################################-ƒÑÑÓÓÓÔÔÕÕÕ×ÕØØØÚØÙÜÜÜÚÜÜÜÜÜÜÜÜÚÕÒ##############“####“““#########################“ƒƒÒÓÓÔÕÕÕÕØØØÚØÜÚÚØØØØÕ×Õ“ÓÓÓ“Ò“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÜÜÚØ×ÕÔÓÓƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÓÓÓÕÕÕרØÚÚÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚ××ÖÓ×Õ“ƒƒ#####ƒÓÓÖרØÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÙ××ÖÖÕÓÓ“######################################!ƒÑÒÓÓÔÔÔ××ØØØØØØÜÚÙÜÜÜÜÜÜÜÜÜÜÜÜÜÚØ××ÕÒ#######-####-“““#########“######################“ÑÒÑÒÒÓÓÔÕÕ×ØÕØØØØØØØØ“×ÕÕÕÕÓÓÓ““““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÚØ××ÕÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃“ÓÓÓÕÓÕ×רØÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ×××××ÕÓ“######ƒÓÓÓרØÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÙ××ÕÕÕÓ“########################################-ƒÒÓÓÔÔÔÕØØØØØÜÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØ××ÕÓÒ#############t#############“####################““ÑÒÒÒÔÒÒÓÔ“ƒ“ÕØØÕ×ØØØ“--Ø×ÕÔÕÓӓݓѓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ““ÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØ×ÕÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÓÓÕÕ×רØÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÔÖÖÕ×ÕÒƒ######ƒÓÓÓÖ×ÚØÚÚÜÜÜÜÜÜÜÜÜÚÚÚÚÙÙÙ××ÕÕÓÓ“###“######################################ƒ“ÓÓÔÕÕØØØÚØÙÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØÕÕÓƒ###########################““#################“#######“ƒÒÒÔƒ#“ÕÕÕ×ØØØØØÕ×ÕÕÔÔÓÒÓÒ“Ý“ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛØÓÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÕÕ××ÚÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÔ××Õ×Õ“#######ƒÒÓ×ÓרØÚÚÜÜÜÜÜÜÜÚÜÚÚÚÙÙÙ××ÕÕÓÓÓ“###“########################################“ÓÕ×רØÚÛÛÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÕÕ#######“#############““#########“““““############ƒÒÒƒ“ÓÓÔÕÕÕÕ×ÕÕÕÕÔÔÔÓÓÓÒÒѓݒђ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØÚÕÔ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÕ×רÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚ×××××ÓÔ########“ÓÕÓרÚÚÚÜÜÜÜÜÚÜÚÚÚÚÙÙ×××ÕÓÓÕ“#################################!!!-""---!!##-“ÕØØÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜܨד#######““###############““#““#““#################ƒÒÒÒÒÓÒÔÓÔÔÔÔÔÔÔÔÔÔÓÓ““ÒÑÑÑ““ÑÑÑ““Ý““ÑÓ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÛ×ÕÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“Õ××רØÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚ××רÕÔƒ#########“ÓÔרÚÚÜÜÜÜÜÜÜÚÚÚÙÙØ×ÖÕÕÓÔ“#################################!-““’““Ó“““““--“Õ×ØØØÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØÕÓÓÒ###!######“#########################################“““#“ƒÒÒÒÓÔÔÔÔÔÓÒÒÒ“ÝÝÝ“““Ñ“““ÑÑÒÑ“ÒÒÑÑÑÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚ××ÕÔÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÕÖרØÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÕ×Õ×Ô“##########“ÓÔרØÚÜÜÜÜÜÚÚÚÚÙÙ××ÖÖÓÓÓ“################################!-“ÓÑÓÓÓÓÓÓÔÔÔÔÕÕÕרØÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ×ÕÕÒÒÒ“##############“###############################################“ÒÒÒÒÒÔÔÔÒÒÒ““ÝÝÝÝÝÝ“““Ý“ÑÑÑÑÒÒÑӓݓӓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““““““ÃÃÃÃÃÃÃÃÓÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ××ÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÔרÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÕ××ÕÕÓ##########“ÓÔÖØØØÚÜÜÜÚÚÚÙÙØ×ÖÖÓÓÓÒ““###############################!-’ÑÓÔÔÔÔÔÔÕÕÕÕÕÕ×ØØØÛØÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙÙÕÕÔÒÒÒ##############“################################################““#######“ƒƒ#ÝÝÝÝÝÝÝÝÝÝÝ““ÒÒÒÓ“ÓÓ“““ÓÓÓ“““““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØ×ÕÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓרØÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜØ××ÕÔ“##########“ÔÔÖØØÚÚÚÚÚÚÚÚÙ××ÖÕÖÓÒÒ“###############################!-“ÓÓÔÔÕÕÕ×Õ×Õ×××××ØØØØÚÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÙ×××ÕÓÒÒÒÒ“##############““#############################################################ƒÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÑ““ÓÔÔÔÔÔÔÓÓÓÓÑÑ““““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÃÃÃÃÃÃÓÝÝÝ•ÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚ××ÕÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÒÓÓÕÔרØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØ××ÕÕÓƒ########!ÓÔÕÖרÚÚÚÚÚÙÚØ×××Ö“““““###############################!“’ÓÔÔÔÕ×××ØØØØØØØØØÙØØØÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÙÙØ××ÖÕÓ“““#################“##############################################################-ÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÓÓÔÔÔÔÔÕÔÔÔÔÓÓÑÑÑ“ÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÃÃÃÃÓ“Ý•ÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ××ÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“Õ××ÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØ×ÕÔ“"-!#####!ÓÕÕ××ØØØØÚÙ××ÕÓ×ÓÓ“#################################!!“ÓÓÔÕÕרÚÚØØÛÛÜÜÜÜÜÚÜÜÜÜÜÜÛÛÜÜÜÜÜÜÜÜÜÜÚÜÚÚÚÚÙÙØ×ÖÖÕÓÕÓƒ““#################“###############################################################“ÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÒÒÓÔÔÕÕÕÕÕÕÔÓÔÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÃÃÃÓÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÛØØ×ÔÔÓÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃ƒÝ݃###““Ý݃ƒÓÕ××ÚÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØÕÕÔÔ““-!!#!ƒÔÕÔ×רÚÚÚ×××ÕÓÓÓÔÒ#################################!“ÓÓÔÔÕ×רÚÚÚÚÚÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÚÚÚÚØÙ×××ÖÕÓÓÒÒÒ“##################‚################################################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÒÓÑÓÓÕÔÕÕÕÕÕÓÓÓÓÑ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÓ“ÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØ×ÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃##ƒƒ########““ÕÕÕ×ÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÙÙÜÜÜÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØØØ×ÕÔÔÓ““-“!“ÕÕÕ×ØØØØØ××Ó×ÖÓÔÒ“################################!“ÓÓÔÕÕ×ØØØÚÛÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÜÛÙÚÜÜÚÚÚÚÚØÚÚØØ××ÕÕÓÓÓÓÔƒ“###“#############-#‚################################################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÒÓÓÓÓÓÔÕÕÕÕÕÓÓÓÒÑÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ݓÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØ×ÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃##############ÒÓÕÕÕØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÚÜÚÚÜÜÜÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØØØÕÕÕÔÔÔÔÓ!ƒÕ×Õ×ØØØ““““ÕÓÓÓÓ“#################################ƒÓÓÔÔ×רØÚÚÚÛÛÜÜÜÜÜÜÜÜÜÜÙÜÚÜÜÙÜÜÜÚÚÚÚÚÚØØØØØØ××ÕÕÓÕÓÓÒ“######ƒ#######!##########“##############################################################“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓÓÓÓÓÓÓÓÓÓÓÑÑÑÑÑуƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝ“ÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ×ÕÔÓÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝ-##############ÒÓÕÕÕ×ÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÜÜÚÙÙÙÙÙÙÙÙÙÙÙÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜØØØÕ×ÕÕÕÕÕ-ƒÕÕØØØÚØ×׃ÓÓÓÑ###################################!“ÓÓÔÕØØØÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÚÚÜÚÜÜÚÚÚÚÚÚØÚØØØØØ××ÕÕÕÓÓÓÓƒƒ###########################“#############################################################ƒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÓÓÓÓÓÓÓÓÓÒÒÒÑ““““ÑÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••••ÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝ•••ÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØÚ××ÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ƒ###############ÒÓÔÕÕØØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÚØÙÙÙÙ××××××ØØØÙÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÛÛØØÚØØØ×ÕÕÕ-“ØØØØØØØ×ÖÓÓÓÓÔ#################################!ƒÓÓÔÕרÛÜÛÚÛÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚÚÚØØ×ÕÕÓÓ“#“####““##################““#############################################################ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••••ÝÝÝÝÝÝÝÝÝÝ“““ÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““##################ƒÔÔÕÕØÚÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜÚÚØØØØØ×ÕÕ×Ö×Õ×Õ××ØØØÚÜÚÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÙØØØØØ“ØØØØØØØØ×ÔÕÓ“#############################!“ÓÔÕÕØÚÚÚÛÛÜÜÜÜÜÜÜÜÜÛÜÚÜØÚØØ××ÕÓ“#“##########################“###########################################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÔÔÔ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““““““ÝÝÝ“#####################“ÒÔÔÕØØÜÜÜÜÚÜÜÜÜÜÚÚÚÚØØØØØÕÕ×ÕÔÔÔÔÔÔÔÔÔÕÕרØÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÛÜÜÙÙÛÚØÚØØØØÚÛØØØÚØ×ÓÕÓ“###########################ƒÓÓÔÕרÚÚÛÜÜÜÜÜÜÜÜÜÜÛÛÜÜÚØØØ×Õ“ÓÓ#######“##-#################“########################################################!““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ###“#####“ƒ““######################“ÔÔÔÔÕÕØÚÚÚÚÚÚÚÚÚÚÚØØØØØ×××ÕÔÔÔÒ“ÔÔ“ÔƒÔÔÔÔ×ØØØÚÜÚÜÛÛÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÜÚÜÚØÜÛÚØØØØ××ÕÓÓ“##########################!“ÓÔ×ÕØÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØÚØØØ×ÕÕÕÕÕÕÒÓ“ÒÔ“########ƒ###########“##########################################################################ƒƒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØÔÔÔ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃###################################“ÒÒÔÔÔÕ×ØØØÙÙØÚÚØØØØØÕ×ÕÕÕÔÔÓÒÒ“######ƒ“ÔÔÔÕרØÚÚÜÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÙØÚÚÚÚÛÚÚØ×ÕÓÕÓ“###############################-ÓÓÔ×רÚÛÛÜÜÜÜÜÜÜÜÜÜÙÜÜÚÚØÚÚØØ××ד“ƒ““ÓÕÓ““Ò“““#########“###########““###################““####################################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““““ÓÓÑÑÔ’’““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØÕÔÔÓÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÝÝÝ““““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“#########################################“ÔÒÔÔÔÕÕØØØØØØØØØÕÕÕÕÕÕÓÓÓ“ƒ“###########ƒÓÔÕ×ØØØÚÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÜÜÛÛÚÚÚÚØØ×ÕÓÓÒ###################################!ƒÓÔÕ××ÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØØ“××ÕÕÕÕÔÔÓ“““ƒÒ““############“############“ƒ###########“““““###“####################################################ƒƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÑÓÓÔÔÔÔÔÔÔÔÓÑÔÓÓÓÓ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•••ÝÝÝÝÝÝ•••••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØÕÔÔÓÝÝÝÝÝÝÝ“““Ý“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“###########################################“ÒÒÒÔÔÔÕ×ÕÕÕÕ×ÕÕÕÔÔÔÒÓÒÒÒ##############ƒÒÓÔÔÕ×ØØØÚÜÚØÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÜÛÛÛÚÜÚØØ×ÕÓÓƒ##################################!-ÓÔÔ×רØÚÛÜÜÜÜÜÜÜÜÜØÜÚÚÚÚÚØØ×Õ×ÕÕÕÕÓÓÓÒÒÒÒ“##############“##############ƒ#########“########“######################################################“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÓÔÔÔÔÔÕÕÕÕÕÕÕÕÔÔÔÔÓÑÓÓ“ÝÝ“’““““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ×ÔÔ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“##################################################“ÓÒÓÓÔÔÓÕÓÒÔƒƒ‚ƒÔ“ƒ##################ƒÔÒÔÔÕÕÕØØØÚØØÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜØØ×ÕÕÓƒ###################################““ÔÔÕ×ÚØÚÛÜÜÜÜÜÜÜÚÜÚÚÚÚÚÚØ××ÕÕÕÕÔÕÒÒÒÒÒÒ““#################“###########!###‚#““##“############““###################################################““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÓÓÔÔÔÕ×××××××××××××Õ×ÕÕÕÔÔÔÔÔÔÔÔÓÓÑÑ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ×ÔÔÓ““ÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““####################################################““ÒÒÓÔÒÒÒ‚ƒƒ###“ƒt###################‚ÍÒÒÔÔÕÕըרØÚØÙÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÚØ××ÕÕƒ###################################!“ÓÔÔרØÚÛÛÜÜÜÜÜÛÜÜÜÚÚÚØØØ××ÕÓÕ“Ô“-#-ƒÒ““####################““#################“###############“#######################################“ÝÝÝÝÝÝÝÝÝÝÝÝÑÓÓÔÕÕ××ØØØÚ×××ÚÚÚØØØ×××××××ÕÕÕÕÕÕÔÔÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ××ÔÓ“ÝÝ“ÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃#“##“#####################################################““ÒÒƒƒ‚##############################tÍÒÓÔÔÕÕÕÕ×ØØØÚÚÚÚÜÜÜÜÜÜÜÜÛÜÚÚØ×ÕÕÓƒ################################!!!“ÔÔÕ×ØØØÚÚÛÜÜÛÛÜÜÚÚÚÚØØØ×ÕÕÕÕÓÓÒÔÒƒÒÒÒ“########################“###!####!##tƒ###########################################################““ÝÝÝ݃ƒ“ÝÝÝÝÓÔÔÕ××ØØØÚÚÚÚÚÚÚÚÚÚÚÚØÚ×ØØØ×××××××ÕÕÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ××ÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“!#####““#####################################################“ƒ################################-ZhÍÒÒÔÔÔÕÕ×רØÙÚÚÜÜÜÜÜÜÜÜÚÜÚØ×ÕÕÓÒƒ###############################!““’ÔÔÕ×ØØØÚÛÛÛÛÛÜÚÜÚÚØÚØØ×ÕÕÕÕ““ƒÒÒÒÒ““############################“###-####!#######################“#########################################““ƒ####“Ý“ÓÔÕרØÚÚÚÛÛÛÛÛÛÛÛÛÛÚÚÚÚÚÚÚÚÚÚØØÚØØ×××ÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØ×××ÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“#########“#####################################################################################-Bt“““ÔÔÒÔÕÕÕØØÙÚÚÜÜÜÚÜÜÚÚÚØØÕÕÕÔÔƒ#############################!-“ÓÓÔÔÕרØÚÚÛÚÛÛÛÜÜÜÚØÚØØ×ÕÕÕÕÔÕ“##“““##############################-“#########“#####################################################################################““ÔÕÕØÚØÚÛÛÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÛÛÚÚÚÚÚÚÚÛØ××ÕÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝ’ÑÑÑ““ݓѓÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ××ÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“###########“###########################################################################!#####-##########“ƒƒÓÔÕ×ÕØÙÚÚÚÚÚÚÚØØØØÕÕÔÔÒÒ############################!-““ÓÔÔÕÕ×ØØØÚÚÚÛÛÛÜÜÚÚÚØØ×ØÕÕÕ“ÒÔÔ####“###############################“##########“#######################“##############################################################““ÓÓÓÕØØÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÛÜÜÚÚÚØØ×ÕÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝ“ÑÑÑÑÑ“ÑÑÑÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØ××ÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ"!-############“######################################################!!!####################-########““#####“ÓÔÕÕרØÙÙÙÙØØØÕÕÕÔÔÓÒÒƒ##########################!-““ÓÓÔÕÕÕרØÚÚÚÚÛÛÛÜÚÜÚÚØØ×ÕÕƒÓÕÒ““####“################################“#########“#########################“#############################################################ÑÓÓÕ×ØØØÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÛÚØ×ÕÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÑÑÒÑÑÓÓÓÑÑ“ÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚ××ÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÓÓÓ“Ñ“ƒ#############“#####################################################!!!###########-########“ÓÔÔÕÕ××רØ××ÕÕÔÔÔÔÒÒ“###########################i““ÓÔÔÕÕ××ØØØÚÛÚÛÛÜÛÜÚÚÚØØ×Õ““ÔÒÔ“####““###################################““““““############################“#########################################################!!““ÓÓÕÕרÚÚÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚ××ÕÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝ“ÑÑÑÑÓÓÑÑÑ“ÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚ××ÕÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÓÓÓÓÓÓÓу!############“#######################!############################!!!###!#########!-########ÔÒÓÔÕ×Õ××ÕÕÕÔÔÓÔ“““##########################! ƒÑÓÓÔÕÕ××ØØØÚÚÛÛÛÜÜÜÛÜÜØÚ××Õ“ÔÔƒ““###“#################################################################################################################################ƒÑƒÒÒÓÓÓÕØÙØØÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØØ×ÕÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝ““ÑÒÑÑÑ““ÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØ××ÔÓÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“’ÓÓ“““ÓÓÓÔÔÕÔÔÔÔÔÓÓÓ##################################!##########################!##!!!##!!#!########-Z#########ƒÔÓÓÔÔÔÔÔÔÔÓÒ“###############################“ÓÓÓÔÕ××ØÚØÚÚÚÛÛÜÜÜÜÛÜÚØÚØ×׃ԓƒ“##############################################“########################################################################################“ƒÒÒÔÓÕÖרÙÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØ×ÕÔÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝ““ÑÑ“ÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØ××ÕÓÓÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“’ÑÓÓÓÓÓÓÕÕÕÕÕ×ÕÕÕÕÔÓÓÓ“!############“#####################!########################!##!!!##!!#!###############Zh###############“ÒÒÓÓÒÓÔÒÑ““###############################“ÒÓÓÔÔÕØØØÚÚÛÛÛÛÜÜÜÜÛÜÚÚØÚ×Õ“Õ“Ô“#############################################““#############################################################################ƒÒÔÓÕÕØÙÚÙÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÛÚØ×ÕÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝ“ÑÑÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÚ××ÔÓ““““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““““““Ý“““ÓÓÔÔÔÕÕÕÕ×Õ××ØØØØØÕÕÔÔÓ“#############““####################!#########################!!###!###!#################ƒ#################“ÒÑÔÒÔÒ““################################“ÑÔÓÓ×ÕØØÚÚÛÚÛÛÜÜÜÜÚÜÜÜÚÚØØØÕÕÕƒ######““#######################################“#####################““##########################################################“ÒÔÕÓרØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚØ×ÕÔÔÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••••ÝÝÝÝÝÝ“ÑÑ’ÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ×ÔÔÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“’ÓÓÓÔÔÔÔÔÔÔÔÔÕÕÕÕÕררÙÙÙÙÙØØÜÙÚØØ×ÔÔÓ“"############ƒ###################!#!#!!!########################!##!!#!##############################################################################“ÒÓÕ×רÚÛÛÛÛÛÛÛÜÜÚÚÜÜÚØØØØ×ÕÕÓÓÒƒƒ“““############################################““################“#############################################################ƒÓ×רÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚØØØ×ÔÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÑГÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ×ÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÔÔÔÔÔÕÕÕÕÕÕÕ××××ØØØÙÙÙÙÚÚÚÙÚÜÜÜÚØØ×ÕÔÓ““################################!#!#!!!######################!!#!!##!###################“###########################################################ÒÓÓÓרØÚÜÛÛÛÛÜÜÜÚÚÚÚÚØÚØØ×ÕÕÔÓÒÒÒƒ“###############################################“########################“##############################################################“Õ×רÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØØ×ÕÔÔÔÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݓѓÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ×ÕÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÓÔÔÔÔÕÕÕ×××××××ØØØØØÚÚÙÚÚÚÜÜÚÜÜÜÜÜÚØÜÚØ×ÕÔÓ“#############“##################!#!#!!!###########################!#####################“###########################################################ÔÓÓÕרÚÜÜÛÛÜÚÚÜÜÚÚÚØØØØØØÕÕÔÓ““Ò“################################################“############################“##############################################################ƒÒÕÕ××ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØØ×ÕÕÔÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ××Ô““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÓÔÔÔÔÕÕÕ××ØØØØØØ×ÚÚØÚÚÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØÔÔÓÓ"############“##################!#!#-##!#####################-##########################“####•••###################################################ÒÓÓ××ÚÚÜÜÜÜÚÚÚÚØÚØØØØØÕ“×ÕÕÓ““Ò“################################################“#############################“##############################################################“ÓÕÕ××ÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØØØ××ÕÔÔÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ××ÔÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““““ÝÓÓÔÔÔÕÕ××ØØØØØÚØÚÚÚÚÚÚÚÚÚÚØÜÚÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØÕÔÓÓ“############“#############!###-############!######################“#####†##################################################ƒÒÓÓÕ×ÚØÚÜÚÚÚÚØØØØØ×ÕÕÕÕÕÕÔÔ“ÒÒ“###############################################“###############################“#####““““#####################################################ƒÔÕÕÕ×ÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÚÚØØØØÕ×ÕÔÔÔ“’“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““““ÝÝÝÝÝÝÝÝÝÝ“ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØ×Õ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““““ÓÓÓÓÓÔÔÔÔÔÕ×Õ×ØØØÛÛØØÚÚÛÛÛÛÛÛÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛØÙØÕÔÔÓ“############ƒ“##########!#-##-#################################“######••################################################ƒÔÓÕ×רÚÚÜÚÚÚØØØØÕØÕÕÕÕÕ“ÔÓÓÒƒ“################################################################################“#####“####“““““““####“########################################ƒÒÓÓÕרÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØØØØÕÕÔÔÔÔÔÓÓÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÓÓ“ÝÝÝÝ“ÓÑ“ÓÓÑÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••ÝÝÝÝÝÝÝ•ÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØÕÕÔ“““ÝÝ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““““ÓÓÓÓÔÔÔÔÔÔÔÕÕ×××ØØØØÚÚÚÛÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØÕÔÓ“##############“############################-####!##############“#########•##############################••##########•#######ƒ“ÕÕØÚØÚÚÚØØ×ÕÕÕƒÕÔÔÔ“ƒÓÓ“Ò“###################################“#################################“#####################““““““#““#““############################“ÔÒÓÕÖ×ÚÚÚÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚÚÚØØØÕ×ÕÕÔÔÔÔÓÓÓÓÔ“ÝÝÝÝÝÝÝÝÝ“ÓÑÓÓ’ÝÝÝÝ“ÓÓÓÓÔÔÔÓ““ÔÔÔÔÓÓÓÓÓ““’ÓÓÓÓÑ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØ×ÕÕÕÔÓ“ÓÓÓÓÓÑ’ÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÓÔÔÔÕÕÕÕÕ××Õ××ØØØÚØÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÙØÕÔÔÓ"#################################-#####!##-#####!#!#!#################################################################•••##•######•###•••###••“ÕרÚÜÚØÚØ××ÕÔ“#“ÔÔÓÓ“ÓÒÒÒ###########################################################################“############################“###########################“ÒÓÓÖ×ÙÚÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØÜÚØØØÕ×ÕÕÕÕÕÔÔÔÓÓÑÑ’“ÝÝÝ“ÓÓÓÓÓÓÓ“ÝÝÝÔÔÔÔÔÔÔÔÔÔÔÕÕÕÕÔÔÕÔÕÔÔÔÔÔÔÓÓÓ’ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÚØØØØÕ×ÕÕÕÔÔÓÓÓÓ“ÝÝÝÝÝÝÝÝÝ““ÓÓÔÔÔÕÕ×××ØØØØØØÚØØÚÚÚÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÙØÕÔÔÓ“##############“#########-#################################†############-#############“###########••########•#†••######••##•######•••••••########–†ƒÓÓÕרØÚÚØØÕ×ÕÔ““#““ÒÒ“ÔÔÒÒÑ#####################################“#################################“#““###############################ƒ##########################“ÒÓÓÓ×רÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÜÚØÚØØØ×××ÕÕÕÔÔÔÔÓÓ“Ý“ÔÔÔÔÔÔÔÔÔÔ““ÔÕÕ×Õ×××ÕÕÕ×ÕÕÕ×××ÕÕÕÕÕÕÕÕÔÔÔÔÓÓÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ••••ÝÝ•ÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØÚØØØØ×ÕÕÕÕÕÕÔÔÓ“““ÝÝÝÝ““’ÔÔÔÕ×Õ×ØØØØØØØØÚÚØÜÜÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÚÙ×ÕÔÓ““#############ƒ########################################•############################ƒ#############•#####•••#####††######†•#######################!“ÓÓÕ×ØØØÚØØ×ÕÔƒ#####ÒÒÒÒ““ƒÑ##############################################“#####“““########################“####################################ƒ##########################“ÔÒÓÖ××ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜØÜÚØÚØØ××××ÕÕÕÔÔÔÔ“ÔÕÔÕÕÕÕ×ÕÕÕÕÕ××××ØØØØØØØØØØØØØØØØØØ×××ÕÕÕÕÔÔÓÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØÜØØØØØØ××Õ××ÔÕÔÔÔÓ““Ó“ÔÔÔÕÕ××ØØØÚØÚÜØÜÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÚÙØÕÕÓ“ÓÑ#############ƒ#######################################•##•##########################ƒ““########################################################!“ÒÓÓÕ××ØØØØÕÕÕÔƒ#####“Òу-ÒÒ“###########################################################“#################“““#““######################################“############################“Õ××ÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÛÚÚÚÚÚØØÚר×××Õ×ÕÕÕÕ××ÕÕÕ××Ø×ØØØØØÚØÛØÛØØØØØÙÙØØØØÙØØØØØØØ×××ÕÔÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ•ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØÚÚÚÙÙÙØØØÕ××ÕÕÕÕÕÕÔÕÕÕÕרØÜØØÜÚÜÜÚÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÙØÕÕÔ““ƒ##############“######################################†#################################“######################################################“ÒƒÓÓÕÕ×רØÕÕÕÔ“######“ÒÑÑÒƒ“####################################################“##““####““#•##•##########“###“#######################################ƒ“############################Ö×רÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÚÚÚÚÚØØØØ××Ø×ØØØØØÙÙÙÙØÚØÚÛØØÚÚÚÚÚÜÜÜÚÚÚÚÚÛÛÚÚÚÚÚÚØÚÜØØØ×ÕÕÔÔÔÓ““Ý“’“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜÚÚÚØØÚØØØØØ××××ØØØØÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙØ×ÕÕÓ“#######•#########“######################################################################“#######################################################ƒÒÒÒÓÓÕÕÕÕÕÔÔÓ“#######ÒÑ“################################################################““######•##“########“##““#######################################ƒ#########################“ÓÕÖØÚØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚÚÚÚÚØØÚÚÚÚÚÜÚÚÚØÚÚÚÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÚÚÜÚØØ××ÕÕÕÔÔÔÔÔÓÓÓÑÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÚÚÚØÚØÚØØØØÚØÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚØ××ÕÓÓ#######•##########“######################################•##############################ƒ#######################################################ƒÒƒÔÒÔÓÕÔÔÔÔÓÓƒ########“#########################################################################“############““##########################################ƒƒ“######################“ÓÕÖØÚØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÛÛÚÚÚÚÚÜÜÚÜÚÜÜÜÚÚÚÜÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÛÚØÚØØØ××ÕÕÕÕÔÔÔÔÔÓÓÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÜØØÚÚÚÚÛÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØ×ÕÓÓ######•###########“####################################################################“#########################################################““#“ÔÓÓÔÔÔÔÔÒ“-#######“#########################################################################““##########################################################ƒ“#############“ƒ###ƒƒÓÓÓÖØÚØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚÚÚØØØØØ××ÕÕÕÕÔÔÔÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““““““ÝÝÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÜÜÜÜÛÛÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÙØ×ÕÓÓ“#####•###########“#######################################•###########################“ƒ#############################################################“ÒÔÔÔÒÒÒÒÑÒ#######“##############################################################““#########““############################################################ƒ####“““##“#“ƒ######ÔÓÓÕØÚØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÚÚÚÚØÚÚØØØØ××ÕÔÔÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÃÃÃÃÃÓ“ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙØØÕÕÓ“#####•###################################################•#############################################################################################-ÒÒÒÒÑÑÒ############““##########################################“““#######““#############““###################################################################•############ÓÓÓרØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚÚÚÚÚÚØØØØØ××ÕÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙØØ×ÕÓÓ###!••###########““#################################################################“#######################-###########################################“Ò““ƒÑ“########“““###“########################################“############“#############“####################################################################••########-“ÓÖÕרØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÜØÚØÚÚØØ×ÕÔÔ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙØÕÕÕÓ“#!ƒƒ#############“#################################################################ƒ###-!!####-!##########ƒÝƒ###############################################“###############“##################################“####““############“##########““““######################################################################•#######“ƒÓ××רÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚØØ×ÕÔÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙØÕÖÕÓƒ!ƒÒƒ###################################################•#############################!“ÝÝ“““!“Ý“-#######-““ƒƒ###############################################################“################################“##““#“••####################““###################################################################################““ÓÕÕרÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÛÚØÕ×ÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÙØÖÕÓÒƒÒ“####################################################•############################!-ÝÝÝÝÝÝÝÝÝÝÝ!######!ƒÝ“ƒ################################################################“““##########################““########•############““######“#####################################################################################ÒÓÓÕ××ÚÜØÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÛÚ××ÔÓÖÓÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÙØ×ÕÓÒÒÒ################“###################################•#############################“ÝÝÝÝÝÝÝÝÝÝÝÝ“ƒ###!“““ÝÝ“!###############################################################“###“######################“###########•####################################################################################################•#####ƒÒÓÕ×רÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ××ÓÓÒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚØÖÖÖÓÓ“#####################################################•###################““““####-ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ###-ÝÝÝÝÝÝ“!#############################################################“####“####################“#########################“########################################################################•†#####“ÒÓÕ×רÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØÚ××ÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙØ×ÖÕ“###################“###################################•###################“ÝÝ݃###!ÝÝÝÝÝÝÝÝÝÝÝÝÝ݃!#!ÝÝÝÝÝÝÝ݃##--!!-““###################################################“#####“################“####################################################################################################•######ƒ“ÓÓÓרØÚÜÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØ×××Ó“Ý“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙØÖÕÕ“Ó##################ƒ#########################################################ÝÝÝ““!!ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ-!ÝÝÝÝÝÝÝÝ“!ƒÝÝÝÝÝÝ“######################################“““““##############################“#############################“######“#############################################################################•########ƒÒÓÓÕ××ÚÚÚÚÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚ×××Ó“ÃÃÃÃÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÖÕÕ“““!################################################“““###ƒ“#################“ÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÝÝÝÝÝÝ“““ÝÝÝÝÝ݃#####################################“####################““###########““##############################“####““##########################################################################•#########“Ò“ÓÕÕ××ÚÚÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚ××ÕÓÓƒÃÃÃÃÃÓ“““ÝÝÝÝÝÝÝÝ““““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÙ×ÖÓƒ“ÒÒ###############################################“#########“###############““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ-!““!################################“#######################“#########“####################•###########“###“#################################################################################•#########“Ò“ÓÓÕÕ××ÚØÚÛÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ××ÓÓÓÒÃÃÃÃÃÃÃÃÃÓÝÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÙÙ×ÓÖÓÔÒƒ#############################################“““####•#####ƒ“““#########““##“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÝÝ-########################“““““““““########################““““###““#################################“#““##################################################################################•##########“ÑÓÒÓÕÕ××ÚØÚÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ××ÔÓÓÒÃÃÃÃÃÃÃÃÃÓݓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÙØ××ÓÓÒÒƒ##################ƒ#########################“######•##########““#######“###“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“####################“““###################################“##########################################““###################################################################################•#########ƒÑÒ“““ÒÕÕ×רÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚØ×ÕÔÓÒÑÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙØ×ÖÓÕ“ÒÒƒ##################ƒ“#######################“######•#############“####““#####““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ-#“““““###########““#####################################“##############################•##############““#“###############################################################################•#########“Òƒ###ƒƒ“Õ××ÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÜÜÜÜÜÜÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØ×ÔÔÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙ××ÓÓÓÒÒƒ“####################“#######################“####•############################ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““#####################################################################################•##################“#########################################################################################ƒ“##•–ƒÕÕ××ÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚÚÚÚÚÚÚÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚØ×ÕÕÓÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚ××ÖÕÓÒƒ“##################################################•†############################ƒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““#“ÝÝ-######“################################################################################•###################“““################################################““““#######################•######!####••###ƒÕÕ×רØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÜÚÚØØÚÚØØÚÚØÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØ×ÕÕÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÚØ×ÓÖÓÓ“#########################“#####################““##•##############################““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“####““##########“““#“““##############################################################################################“##############################################“#####“#####################•##-““““-###†•••#!“Ô×××ÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜØØÚØØ×ØØ×ØØÚÙÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÚØØ×ÕÕÓÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÖÕÓÔ“##########################“###############“““#““##••#################################“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ƒƒ#######################“########################################“##############################•######################“#############################################“############################††“SSSS““!#######ƒÓÕÕרØÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØ×רÕÕÕ××רÙÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜÜÚÚÚÚØÚØØÕÕÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚØØ×ÕÕÓƒ#########################ƒ################“#######•####################################“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃-#################################################################““############################•###################################################################“#######“#####################!ƒSSSSSSS“-######“ÓÔ×ÖØÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÚÚ××ÕÕÕÔÔÕÕÕ×××ÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÜÜÚÚÚÚÚÚÚØØÚÚØØ×ÕÕÔÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚØØÕÕÓÓ!#########################ƒ##############################################################““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“-#-##################################################################“##############################################################################################“#######“######################“SSSSSSSSS““!###!““ÔÕרØÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØÚØ×ד“ÔÔ“““ÕÕÕ××ÚØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚÚÚÚÚÚÚØØÚÚØØ××××ÕÕÔÓÓÒÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÙדÕÓ“ƒ###########################“###############ƒ######•#######################################-“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ#######################################################“###################################################“###################################““###########“######################-SSSSSSSSSSSSS“““S“ÓÔÕרÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÜÜÜÜÜÚÚÚØØ×ÕÕSSSSSSSSÓÕÕ××רÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÚÚÚÚÚÚØØØ××××××××ÕÕÕÕÕÓÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÙ××ÕÕƒ#############################““#########“ƒƒ########•########################################ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ### ######################################################################•##########################################################““###############ƒ#####################ƒSSSSSSSSSSSSSSSSÑÓÓÔÔרÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÚÜÚÚÚÚÚÚÚØØ×ÕÕÕ“ƒQBSSSS“ÓÕÕ×רØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚØØØ×××××ÕÕÕÕÕÕÕÕÓÓÓÓÓÓÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÙ×ÖÕ“!##############################ƒ######“ƒ#####################################################“ÝÝ“ƒƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ƒ###################################################################“#########################•######################################################“ƒƒ##################ƒ####################!“SSSSSSSSSSSSSSS“ÒÒÓÔÕÕØØÚÛÛÜÜÜÜÜÜÜÜÜÜÛÛÜÜÚÚÚÚØØØÚØØ×ÕÕÕÓÓ“ SSSSS“ÓÕÕÕרØÚÜÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚØ×××ÕÕÕÕÕÕÓÕÓÓÓÓÓÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚ×××ÕÓ““####################!##########ƒ““##########################################################““##-ÝÝ“““““Ý“ƒƒÝÝÝÝÝÝ“###############################################################################################•###########################“#########################“####################ƒ#####################-SSSSSSSSSSSSSSS“Ñ“ÓÓÔÕ××ÚÚÚÛÛÜÜÜÜÜÜÜÜÜÛÚÚÚÚÚØØÚ××××ÕÕÕÔÓÓÒgSSSSS“ÒÓÕÕ×רÚÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØØØ×××ÕÕÕÕÓÓÓÓ“““““ÒÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚ××Õ“ÓÒÒ##################!–#––!####################################################################“####•#######!-““ÝÝ“ƒƒƒ“#########################################################################“#########################•############################“########““##ƒƒƒ‚#“##########################ƒ######################“SSSSSSSSSSSSSSS“ƒSÑÒÓÕÔרÚÚÛÛÜÜÜÜÜÜÜÜÛÚÛÚÚÚØ×××××ÕÕÕÕÓÓÓÓÒ“QSSSSSS“ÒÕÓÕÕרØÚÚÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØØ×××ÕÕÕÓÓÓÓÓÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚ××ÕÕÓÒ“ƒ#################!‡#####†•##••###################•#########################################################“Ý“################################################################################““#######################•#############################“###““#############“###“#################“ƒƒ######################!ƒSSSSSSSSSSSSSSSSSS“ÒÓÔÕÕרÚÚÛÛÜÜÜÜÜÜÜÛÛÛÜÚØ××××ÕÕÕÕÓÓÓÒÑÓ““SSSSSSSSÔÓÓÓÕÕרØÚÚÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÜÜÚÜÚÚÚÚÚÚÚØÚØ×××ÕÕÕÕÓÓÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÚÚÚÚÚ××ÕÕÓÒÒ###•••••######!###!‡#############••###############•##################•#######################“#####•#########““#################################################################################“########################################################““################ƒƒ“###########################################-“SSSSSSSSSSSSSSSSSSS“ÓÔÔÕ×ÚØÚÛÛÜÜÜÜÜÜÜÛÚÚÚØ×ד““ÓÓÓÓÓ“““ƒ“SF,SSSSSSSSSS“ÓÕÔÕ×רØÚÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÚÚØÚÚÚÚÚØØ×Ø××ÕÕÕÓÓÒ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚÚÚÚÚ×××ÕÓÕƒÒƒƒ†#####••–••–#††–‡################•#############•###################•######################“#############################################################################################################################•###################################################################“ƒ#########################“SSSSSSSSSSSSSSSSSSSSSS’ÔÕ×רØÚÛÛÜÜÜÜÜÜÛÚÚØØ××SS“““““SSSSSSS)SSSSSSSSSSSSÓÓÕÔÕ×רØÚØÚÚÚÜÚÚÜÜÜÜÚÜÚÚÚÚÚÚÚÚÚÚØÚØÚØØØØØØ×××××ÕÕÕÕÕÓÓÓÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÚÚÚØ××ÕÕÕÓ“#“ƒƒ###################################–†########••####################•######################“###############••##•#############################################################################“###“#######################•##################################################################“###########################!ƒSSSSSSSSSSSSSSSSSSSSSƒÓÔÕ×××ÚÚÛÜÜÜÜÜÜÛÚÚØØ×Ô“SSSSSSSSSSSSSSSSSSSSSSSSS““ÓÓÕÕ×××רØÚÚÚÚÚÜÜÜÜÚÚÚÚÚÚÙØÚÚÚØØØØ××ר××××ÕÕÕÕÕÕÓÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÙÙÙØ“×ÕÓÕÓƒƒ########################################!…!!!#!-†##############################################“#############•#•####†#################################################################################“######•••#•••########•##############################################################################################-“SSSSSSSSSSSSSSSSSSSSSSƒÔÕ×רÚÚÚÛÜÜÜÜÛÛÛÚØØ××Õ““SSSSSSSSSSSSSSSSSSSSSSSSSS“ÔÔÕÕ×××××ØØØÚÚÚÚÚÙÚÚÚÙÙ××××××××ÕÕÕÕÕÕÕÕÕÕÕÓÓÓÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÙÙדÕÕÕÓÓÒÒÒ#########################################-y-"wkk#####################!†########################“##############•#########••############################################################################“####•#########•••####•################################################################ƒ#############################““SSSSSSSSSSSSSSSSSSSSSSƒÒÔ××××ÚÚÛÛÛÛÛÛÚÚÚÚØ××ÕÔ“SSSSSSSSSS)SSSSSSSSSSSSSSSS“ÓÔÔÔÕÕÕ××××ØØØÚØÙÙØØ××××Õ×ÕÕÕÕÕÕÕÕÕÓÓÓÓÓÓÒÓÓ“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚÚÙÙ×××ÕÕÓÓÔ“ƒÒ“###################################################################!-k##########################“#####################################################################################################“###•################•###############################################################ƒ###############################“SSSSSSSSSSSSSSSSSSSSSƒƒÒƒÔÕÖרÚÚÛÛÚÚÚÚÚÚØØ×××ÕÓÓ“SSSSSSSSSSSSQB-   ,B“ÓÓÓ“ÕÕÔÕÔÕÔ×××Ú××××Ö×Ó××ÕÕÕÕÓÓÓÓÓÓ““““““““““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃɉ‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÜÚÚÚÙÙ×××ÕÕÖÓÒƒƒƒ########################!!!#!!#!##############!########################^-###########################“############################•###############################################•••######################“••###########################################################ƒ“##################################!SSSSSSSSSSSSSSSSSSSS“ÑÑ““SÔÔÕ××ÚÛØÚØØØØØ×××ÕÕÕÕÓÕÓÑ“SSSSSSFSSSSSSSSS““ÓÓÓ“g&FSSS““ÔÕÕÔÕ×ÕÕÖÓÓÓÓ““““ÑÒÓ“‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃɉ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØ××ÖÖÕÕÓÓÔƒ“###########################!!!!!!.#!############!####################!-Fw-###########################“######•######################••##########################################••#######••############•##•“################################################################ƒ“##################################ƒSSSSSSSSSSSSSSSSSSSSÑÑ“SSS“ÔÔÕ××ÚÚØØØ×××××ÕÕÕÕÕÕÓÓÑÓ“SSSSSSSSSSSSSSSSÒÒÓÓÓÓÓ’SESS“ÔÔÔÔÕÔÔÓÓÓ“‰‰‰‰‰Ñ“‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰Ãɉ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÜÚØÚØ×××ÕÕÓÓÓÓ““###############################!!!!#!!################-##-w-#################“######••########################•#####################################•#############•##########•###“##“#############################################################“#################################ƒSSSSSSSSSSSSSSSSSSSSSSSSSSSƒÒÔÕÕÖ×××××Õ×ÕÕÕÕÔÔÕÕÔÓÓÒÒÓ“SSS,SSSSSSSSSSSSS“ÓÔÔÔÔÔÔSSFSÔÔÓÔÔÔÓÓÓÓÓ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØÚØ×××ÕÓÓÓÓÓ““#################################!!##!!#######!###-!-#!-"k^##-###########################•#########################••#################################•################•#•••••••#####“##“######““““###################################################################“################################ƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒÓÔÔÕÕÕ×Õ“’’“ÕÔÔÓÔÓÓƒƒƒÓÒÑÒÑÓ“SSSSSSSSSSSSSS“ÓÔÔÔÕÕÔÔÔ““SSSS“Ó“‰““““““‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃɉ‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÜÚØ××ÕÕÓÓÒÒ“#######################################!!#######-##^^^k!##-###########################•###########################••############################•################################“####“##“““###“##““###############################################################ƒ##############################-“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒÒÒÓÔÔÕÕÕÔÔƒ“Ó“““S““ÓÓÓÒÑÓÓÒÒÑ“SSSSSSSSS“““ÓÔÔÔÔÕÕÕÕÕÕÔÔ““SS“ÔÔ“‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚ××Õ“““ƒ““########################################!#.################!!\"F!#####!###############################“########••############################•#######################••###################################“###############“##““###############################################################ƒ############################ƒ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒÒÒÒÔÓÓÔÓÓÓÓƒSSSSSSSS““ÑÑÒÓÓÒÑ“SS““SSS““Ò“ÓÓÓÔ××ר×××ÕÕÕÕÕÔÔÔÔÔÔÔ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØÚ××ÔÔ“####################################!######!!!!##################^†kw!##################################“““###########•################################••••##############•###############################################################“########################################################-###########################!-“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒƒÒÒÒÒÓ““ÓÓÒ“SSSSSSSSSSSS“ÒÑ““Ñѓѓ““ÒÒÓÓÓÕÕ××ØØØØØ××××ÕÕÕÕÕÕÔ““‰“Ó“‰‰‰‰‰O‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ××ÔÓ“##########################################!!#########################^######################################““###############•####################################•###########•######################################“#########################“#######################################################ƒS“-########################-‚SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒ“ÒÒƒƒƒ“SSSSSSSSSSSSSSSÒÑÑÑÑÑÑÑÑ“ÒÒ“ÓÕÕ××רØÚÚØØØ××××××××ÔÔ“ÔÓÓ““‰‰‰‰‰O‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØ×Õ““-!!###################################!!!!###!!!#####################†#####################################“########################################################••#####•••###############““#“###################“““#############################““#################################################““SS“#######################!ƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒƒƒÒÑÒÑÑуSSSSSSS)S““ƒS“’ÑÑÑ““Ò“ÓÕÕ×רÚÜÚÚÚÚÚÚÚØØØ×Ø××ÕÕÔÔÓÓÑ“““‰‰,‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰l‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØÕÕÕÓÒÒƒ###################################!!!!##########################†•####################################“####################•######################################•##••################““####“#################“#################################““################################################ƒSSS“-!!###################-“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒÑƒ““““SSSSSSSSSSSSSƒ“S“““ÒÒÓÓÕÕ×רÚÚÚÜÜÚÚÚÚÚÚØÚØØØ××ÕÕÔÓÓÑÑ“‰‰‰‰,@‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØÕÔÔÓÒÒ“###########################!#######!!!!##########################!####################################““############################################################################““##“######“####““#####““###“###ƒ##############################“###############################################!“SSSS“““-!!###########!!##!“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒƒSSSSSS••SSSQFSSSSSSSSSSSSS“ÒÓÓÓ×××ÚÚÚÜÜÛÛÛÚÜÚÚÚÚØØØØ××ÔÓÓÑÑ“‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰F‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØÕÔÓ““ƒ################!#!!!-"-!!““ƒƒ“##################################•############################################################•##################################################““ƒ“#######“#####“######“############################################################ƒ“SSSSSSSSS““-!######### !ƒ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS–2SSSSSSSSSSSSSSSSS“Ò“ÓÕÕרØÚÚÜÛÜÜÜÛÛÚÛÚÚÚØØ××ÔÓÓÓ“‰‰‰‰‰‰‰^7‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰B‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØ××Õƒƒƒƒ###############-“ÓÑ“““ÓÓ““ÓÒÒƒ################################••######################################“#######################•#################################################“##########################“#########““““#####################################“S“SSSSSSSSSSSSSSS“########!ƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSR) SSSSSSSSSSSSSSSSSSSS“Ò“ÔÕÕרØÚÚÚÜÜÜÜÜÜÜÜÜÚÚÚØ×ÖÔÔ“‰‰‰‰‰‰‰‰‰‡'‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰'‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØ×Õ“!################!“’ÓÓÓÓÔÓÔÓÓÓÒÒ#########################################################################“########################•###############################################“#############################““##############““#####“““#######################-““-“SSSSSSSSSSSSSSSSSSƒ########-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS) CSSS•SSSSSSSSSSSSSSSSSS““ÓÓÕÕרÚÚÚÚÛÜÜÜÜÜÜÜÜÚÚÚØ×ÕÔÓ“‰‰‰‰‰‰‰‰‰3z‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰'‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚØØ×ÕÕ“---!#######!###--ÓÓÓÔÔÔÔÔÔÔÓÓÓÒ#############################•###########################################“######################################################################“####################################################!###################“#####“###“#################-##-“SSSSSSSSSSSSSSSSSSSSSS“!######““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRSSSSSSSSSSS,ESSSSS•SSSSSSSSSSSSSSSSSSSS“ÓÓÕ×רØÚÚÚÛÛÜÜÜÜÜÜÛÜÚØ××ÕÓ“‰‰‰‰‰‰‰‰‰‰_‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ ,‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰kk‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÚØØÕ×ÕÔ““““““Ó“Ó“-----“ÔÔÔÕÔ×××ÔÕÔÔÓÒ###########################••############################################“########################################################################################################################“#########!####################““““####“############!-“““S“““SSSSSSSSSSSSSSSSSSSSSSSS“!!##!“SS-ESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,),SSSSSSSSSSSSSSSSSSSSSSSSSSSSSS“ÓÓÕÕרÚÚÚÜÚÛÜÜÜÜÜÛÜÚØ××ÕÓ“‰‰‰‰‰‰‰‰‰‰O‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰_‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰k',B‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÛØØØ××ÕÕÔÔÓÔÓÓÓÓÓ““ÓÔ“ÔÔÕÕÕרØ×××ÔÔÓÒ###########################•#########################################“###“########################•#############################################“#################################################“#####-#############################################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒ-““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSB)QSSSSSSSSSSSSSSSQ,)BQ“““SSSSSSSSSSSSSSSSSSS““ÓÔÓÕ×רØÚÚÚÛÚÜÜÜÜÜÚØ××ÕÓ“““‰‰‰‰‰‰‰‰‰^B‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰z2,^‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚØØØ××××ÕÕÕÕÓÕÕÕÕÔÔÔÕÕ×Õ×ØØØØØ××ÕÕÓÒƒ###########!-" -########•##########################################““####“######################•###############################################“###################-#!!-########“###############““““###################“#########--“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSE ,.SSSSSSSSSSSSSSSSSSSSSSSSSSSSC,CSSSSSSSSSSSSSSSSSSS“ÒÓÓÕÕÕ×ØÚØÚÚÜÜÜÜÚÚÚÚ××ÕÓ“Ñ“‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰zB‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰OB‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØØÚØØØØ×Õ×××ÕÕÕÕÕÕ×Õ×ØØØÚØÚÚØØ×ÕÕÓÓƒ#######-!""““ÑÑ“ƒ-#####†##########################################ƒƒ#####“######################•################################################“#################################“#################“###################“######!““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSE,SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS“ÑÑ.CSSSSSSSSSSSSSSSS“Ó“ÓÓÔÕ×ØØØÚÚÜÚÜÜÚÚØ×ÕÕÓÓÑ“‰‰‰‰‰‰‰‰‰‰7z‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰7z‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰^k‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÛÛÚÜÜÚØØØØØØØØØØØØØØØØØØØØØÜÜØ““ÕÕÓÓ#####!""““ÓÓÓÓÑÑÓÑÒ•†•#†–#########################################ƒ###############################•##############################################““#######################################“##“###““####““#################“#““““““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSS ,SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÑÑ“SSS,,SSSSSSSSSSSSSSSS“ÓÓÔÕÕØØÚØØÚÚÚÚØ××ÕÕÓÓÓ““Ñщ‰‰‰‰‰‰‰(‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰k3^‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÜÜÚÚÚÚÚÚÚÚÚÚÚØÚÚÚÚØÜÚØÚÚÚÚÜØØØ×ÕÕÓ“####!Ñ“ÓÓÓÓÓÔÔÓÓÓƒ!##############################################################################••##############################################“#############################“########“#####“#“##“###“##“#######“““#“#““#########““#ƒ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS’Ñ“SSSSSS.)SSSSSSSSSSSSS“ÓÓÓÔÕÕ×ØØØÜØÚÚ×××ÕÓÓÓÓÑÑ““‰‰‰‰‰‰‰‰O‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰z3‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰Oz‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÚÚÚÚÚÚÚÚÚÜÚÚÚÚØØØ×××ÕÓ!###!“ÓÓÓÔÔÔÔÕÔÔÔÓ“ƒ!######################################################“######################•#######################################################!#####################“#““ƒ####“###“####“######“########################“###-“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSFSSSSSSSSSSSSSSQSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒÑ“SSSSSSSSSF BSSSSSSSSSSS““ÓÓÔÔÕÕ×ØØØØØ××ÕÕÓÓÓ““‰‰‰‰‰‰‰‰‰‰‰,‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰O‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜÚÜÜÚÚÚ“ØØØ××ÕÕ####-“ÓÔÔÔÕÕÕÕ×ÕÕÔÔ“!-!!##################################““ƒ##““##########“##################•###•##############################################################################################““########••#####################“““““######“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS’ÐÑ“SSSSSSSSSSSB)FSSSSSSSSS““““ÓÕÕÕÕ×××Õ×Õ“‰““‰‰‰‰‰‰‰‰‰‰‰‰‰‰ ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰(‰‰‰‰‰‰‰‰‰‰‰‰‰\B‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÚÜ“ØØØ××ÕÕ!!---“ÔÔÕÕ×ØØØØØ××ÔÔÔ““!-!--##############################“#################“###############••####################################################“#######-################!######“######################•######“###########################“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSF.SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒÑÐÑ“SSSSSSSSSSSSFSSSSSSSSSSS“ÓÔÔÕÕ×××ÕÕ“‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰,‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰z‰‰‰‰‰‰‰‰‰‰‰_,‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØØ×ד“ÔÔÔÕÕÕÕרÚÚÚÚØÚØØ×ÕÕÔÔÔÓÓÓÓ“““###########################ƒ#################ƒ##############••########################################################i########•†••••••####•################################################################“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSE,,SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS““ÑÑÑ’ƒSS’ƒSSSSSSSSSSSSSSSSSSSSS“ÓÒÔÔÔÕÕÕÕÕ““‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰k^‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‡‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÛÛÜØÜØØØ×ÕÕÕÕÕ×רØÚÛÚÛÜÜØØØØØ×Õ×ÕÔÔÔÓÓÓÑ““#########################ƒ################################•##########################################################ƒ#######•#################““ƒ#######################•################################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS““ÑÐÑÑÑÑ’ƒSSSSSSSSSSSSSSSSSSSS““SÓÓÔÔÓÕÕÓÓ““““‰‰‰‰‰‰‰‰‰‰‰‰‰3‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰O^‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÛÚÚØØØØØØØØØØØÚØÚÛÜÜÜÜÜÚØØØØØ××ÕÕÔÔÔÓÓÑÑ“#####################-ƒt-################################•##########################################################“#####••#############•####“#################•########•####“##########################ƒƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒ“““ÑÑÑÑSSSSSSSSSSSSSSSSSSSSSSSÒÓÓÓÓÔÔÓÓÒÒÑщ‰‰‰‰‰‰‰‰‰‰‰‰ ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÚÚÚØØØØØØØÚØÜÚÚØÜÜÜÜÜÜÜÚÚÚØØØØØ×××ÔÔÔÓÓ““##########################################“#############•##########################################################“#####•##############“######################•#########••••“#••#########################ƒƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSEEEEEEEEEEQSSSSSSSSSSSSS ,FSSSSSSSSSSSBSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS“ÑÑÑSSSSSSSSSSSSSSSSSSSSSSS“ÒÓÓÓÓÓÓÓÒ“‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰,‡‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÚÜÜÜÚÜÜÚÜÜÜÚÜÚÜÚÜÜÜÜÚÜÜÜÚÜÚÙÜÚÚÚÚØØÚÚÜØÚÚÜÜÜÜÜÜÜÜÚÜÜÚÚÚÚØØÚØ××ÔÔÓÓÑ“##########################################“###########•############################################################“###•##“ƒ“##########“####“##################•#############“###•########################ƒ“SSSSSSSSSSSSSSSSSSSSE-( -,-,,---,,---)) )FSSSSSSSSSSSSCESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÑÑ’“SSSSSSSSSSSSSSSSSSSSSSSS“ÒÓÓÓÒÓÓÑÒ““‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰,‰‰‰‰‰‰‰‰O‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÜÜÜÚÜÚÚÜÜÚÜÚÚÚÜÜÜÚÚÜÚÜÜÜÚÜÜÜÜÜÜÜÜÚÜÜÚÚØØØ×ÔÔÔÓ“-###############“““################################•###############################################################““##“###ƒ########“##“####################•##############“######••####################“SSSSSSSSSSSSEB )BFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÑ’“SSSSSSSSSSSSSF,,(,CSSSSSSS““ÓÑÑÓÓÓÓÑ“‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ z‰‰‰‰‰‰‰zz‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÜÜÚÚÚØØÚÚÚÚÚÚÚÙÙÚÚÚÙÙÙÙÚÚÚÚÚÚÜÜÚÚÚÜÜÜÚÜÜÜÚÚÚÚÚÚÚÚÚÚÚÚÚÜÜÜÚÚÚÚÚÚÚÚÚØØ×ÖÔÔÓ“"##############“#!#######“###########################################################################••######“######“####“##################•###############“########••#################ƒSSSSSSSE-CSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS“Ñ“SSSSSSSSSSFSSSFESSSEC) )SSSS““ÒÒÒÒÑÑÓÑ“‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰z‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚÚØØ××××××רÙÙØØÙØØÙÙÙÙÙÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚØÚØÚÚÚÚÚÚÚÚÚÚÚØÚØÚØÚÚØ××ÔÔÓ““##############“##-#########ƒ##########•##################################################################•######“######“######################•###########################•#############!  ).SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSQSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒÑSSSSSSSSSSSSSSSSSSSSSSF,SSSS““ÓÑÑÑÑÑ“‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰S‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØØ××Ö×××××××××××ÖÖÖ×××רÙÙÚÚÚÚÚÚØØØÚÚØÚÚØØÚÚØØÚÚÚØØØÚØØØØØØØØØØØØ×××ÔÔÔ““##########“ƒ“#“################################################################################################““““ƒƒ######################################““############••##############“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒ“SSSSSSSSE,SSSSSSSSSSSSSSSSS.SSSSSS“ÑÑÑÑÑ’“‰‰‰‰‰‰‰‰‡‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰k‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚØ××ÖÔ““ÕÕÕ×ÖÖÕÕÕÕÕÕÕÕÖ×Ö××רÙÙÚØØ××××××××××××××××××××××××××ÕÕ×××××Ö×ÕÔÔ““#########“ƒ#######################“###“########•#######################################################################################################•##############“################•##############“S“““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)SSSSSSSSSSSSSSSSSSSSS SSSSSS“ÑÑÑÑ“‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ (‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚØ“×ד“ÃÔÔÔ×ÖÓÓÕÓÓÓӓÓÕÕÖ×Ö××××××ÕÕ×ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ××ÔÔÔÓ“########“########################“#“########••################################################################•#####################################••############““##################••#################“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS BSSSSSSSSSSSSSSSSSSSSSSSS )SSS‰‰“ÑÑщ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰z(‰‰‰‰‰‰‰z‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚØØ“Ã“ÃÃÃÓ“ÓÓÓÔÔÑÔ““ÃÓ“ÓÕÕÕÓÕ××ÕÕÕÔÕÕÕÕÓÕÓÓÓ““ÓÓÓÓÓÓÓÓÓÓÓÓÓ“ÓÓÓÓÔÔÔÔÔÔÓÓÓ"!######ƒ###############################“########•###############################################################••####################################•#############““#####################••#################ƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSBSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSS-FSSSSSSSSSSSSSSSSSSSSSSSSSSSB ,S‰‰““Ñ“‰O3Oz‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰k‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÛÚØ××Õ“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÓÓÓÓÓÓÓ“Ó““ÓÓÓÓӓ““Ò“““““““““ÃÃÃÃÓ““Ó“ÓÓÓÔÓÓÓ“““" --“#############################“ƒ##“#####•#############################################################†–####################################•#########################################•######################“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSBSSS.SSSSSSSSSRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSQSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰O‰‰‰‰‰‰‰ˆ ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰'‰‰‰‰‰‰‰ˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚØØØ××ÕÔÔ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÒÒÑÑÓÑÓ““ÃÃÃÃÃÓ“Ó“ÑÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÓÔÓÓÓÓÓÓÓÓÑ“’--!#####################“ƒƒƒ##########•############################################################•^###################################••#################“########################••#####################“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS-FSSSS)  (8FSRRSSSSSSSSSSSSSSSSSSSSSS••••S•SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰O 7‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØØØ××ÕÔÔÔÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ““Ó“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ““ÓÔÔÔÔÔÔÔÔÔÓÓÓÑ“-!!#-ƒƒƒƒ##ƒ“########“ƒ#######“####•############################################################•-###################################†###################“##############################################-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSBSSS-SSSSSSSSSSSSSSSSSSSSSSC,*))QSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰_'‰‰‰‰‰‰‰ ‰‰‰‰‰‰‰‰‰‰‰‰‰‰ ˆ‰‰‰‰‰‰_7‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÜÜÚØØ××ÕÔÔ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔÔÔÔÕÕÕÕÔÔÔÔÓÓ““"-!--!!###ƒ““###““ƒ#########“###•#################################!###!###############!#!###•######!########################••†#••##############################################•##################!““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSFSC SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS&ƒSSSS•••SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰‰‰‰‰ˆO^,'7‰‰‰‰‰‰‰‰‰‰‰‰‰3ˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØÚØØ×ÕÕÕÔÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔ××××××ÕÕÕÕÔÔÓÓ““““ÒÍÒ“•†##““““############“###•###################################################-#######•###############################•##########################“########################•##################“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS“ÐÐВу•••SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰‰‰‰‰‰‰‰‰‰zk‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰kB‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÛÜÚÚÜÙØØØÕÕÕÕÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔ××ØØØÚØØ×××ÕÕÔÔÓÓÓ““ƒ!!!##################“####•#########################################################!•#####!##########################•###################################################•###############!V,,,), ),-FSSSSSSSSSSSSSSSSSSSSSSSF  CSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒƒ“ÐÐÐÐÑÑуSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰,‡‰‰‰‰‰‰z‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÙÙÙ××ÕÕÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÑ“““ÔÔ×ØØØØÚÚÚÚØØØ×ÕÕÔÔÓ“"-““у•################“###••#########################################################•################################•###########################““######################•###############sCSSSSSSSSSSSSSSSSSSSSSSRE- )BRSSSSSSSSF)-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSƒÐÐÑÐÒÐÐÐÐÒ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰‰‰‰‰‰‰‰‰‰k(^‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰,‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÙÙÙÙØ×ÕÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÑÑÓÓÔÕÔ×ØÚØÚÚÚÚÚÚØØØØ×ÕÕÔÓ“ÓÑ““-#•#####!########“###•#############################################•#####################–############################“######################•#################-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS., -SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•ƒÑÑÑÑÑÒ“S“ÐÒ““SSSSSS,BQSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰‰‰‰‰‰‰‰‰‰O‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰Dk‰‰‰‰‰‰z3‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÚÚÙØÕ×ÖÓ“““ÃÃÃÃÃÃÃÃÃÃÃÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÑÑÑÑÑÓÓÕÔרØÚÚÚÛÛÚÚÜÜÙÚØØÕÕÔÓ“““у##†#############“#############################################-#•##################•†####################################################•#################“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSE,,SSSSSSSSSSSSSSSSSSSSSSSSSSS•SSS““ƒSSRSƒÐÒƒSS])SSSSSC-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰‰‰‰‰‰‰‰z77^‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰O‰‰‰‰‰‰‰ ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÙØØ×××ÓÓÓÃÃÃÃÃÃÓÑÑÑÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÑÓÓÔÕ×רÚÚÚÛÛÛÛÛÜÚÚÚØØ×ÕÔÔÓ““!###•############“#“•“########################################•################•†###################################“####################-•###############-““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS),SSSSSSSSSSSSSSSSSSSS••SSSSSSSSSƒƒSSRQSSSSSSSSSSSSCSSSSSSSSSSSSSSSSSS‰SSSSSSSSSSSSSSSSSF *k‰‰‰‰‡O7z‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰^‰‰‰‰‰‰‰'‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÙÚÚÚØ×Ö×ÖÕ““““““ÑÑÑÑÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÑÓÔÔ×רÚÚÚÚÛÜÜÜÛÙÜÚÚÚØ×ÕÕÔÓÓƒ••###•••#••###••••““###“##########################################••###################################•####################################“#####################•##############-“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS, BSSSSSSSSSSSSS•SSSSSSCFSSSSSSRSSSSSSSSSSSSSSQ, SSSSSSSSSSSSSSS‰‰‰‰‰‰SSSSSSSSSSSSSSS‰‰D'(3O‡‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰^O‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØÚ××ÖÖÓÓÓÓÓÒÓÒÑÒ““ÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓӓ“ÓÓÕÔרØÚÚÛÛÜÜÜÙÜÜÚÚØØ××ÔÓÓ!!!#••##########•#######“############################################••#####################################•#####################################“####################•#############!“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSFSSSSSS•••SS•SSSSSBSSSSSSFSSSSSSSSSSSSSSSSSSESSSSSSSSSSSSS‰‰‰‰‰‰‰‰‰SSSSSSSSSSSSS‰‰‰‰‰_,4ll‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÚÚÚÚØØ××Ô×ÕÓÓÓÓÑÑ““ÃÃÃÓ“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔ××רÚÚÜÜÜÜÜÜÜÜÜÚØØØÕÔÔÓ““-#########““###########################################•##############################††••••########################################“################••##############““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSS.SSSSSSCRSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSS‰‰‰‰‰‰‰‰‰‰SSSSSSSSS‰‰‰‰‰‰‰‰‰‰‰‰‰‰7z‰‰‰‰‰‰‰‰‰‰‰‰S‰‰‰‰‰‰‰3k‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚØØ×Õ××ÕÓÓÓÓÒÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÕÕ×ÚØÚÚÛÜÜÜÜÜÚÜÙØÚØØÕÕÔÓÓ“!##########“##########################################•###########################•################################################“##############•#################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS••SSSSSSSSSSSSSSSSSSSSRQSSSSSSSSSSSSSSSSSSSSSSSCSSSSSSSSSSS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰F‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙÙØ××ÕÕÕÕÓÓ““ÒÒ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÔÔ×רÚÚÜÛÜÜÜÜÜÜÜÙØØØ××ÕÔÓÓ"##########“###########################################•##########################•##############################################“###############•##################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS••SSSSSSSSSSSSSSSSSSSSRSSSSSSSSSSSSSSSSSSSSSSSSSSQSSSSSSSSSS‰‰‰‰‰z3ˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‡‰‰‰‰‰‰l‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙÙØ×ÕÕÕÓÕÓÓÓÑÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÕ××ÚÚÜÜÜÜÜÜÜÜÚÜÜØØØ×ÔÔÔÓ“####““!###########““############################################•########################•##############################################“###############••#################ƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSCQSSSSSSSSSSSSSSSSSSSSSSSSSSSCSSSSSSSSSS‰‰‰‰‰k@‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰S,‰‰‰‰‰‰‰^‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜÜÜÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙÙ×ÕÕ““““ÓÓ“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔ××ÚÚÜÜÜÜÜÜÜÜÜÚÜÙØØØ×ÔÔÓÓ-!###ƒÍÑt-#########ƒ###############################################•########################•###############################################“#############•###################ƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSS.SSSSSSSSSSSSSSSSSSSSSSSSSSSS,SSSSSSSSSS‰‰‰‰‰‰‰^7‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰z‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÚÚÚÚÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÙØ×Õ““ÃÃÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔ×רÚÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØ×ÔÔÓ“-###“ÑÑÑ“-########“###############################################•########################•#############################################################†###################ƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,QSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰‰‰‰‰‰^‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰k‰‰‰‰‰‰‰k,‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÜÚÚÚÚØØØÚÚÚÚÚØØÚÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÙØ×“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ///ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔ×רÚÜÜÜÜÜÜÜÜÜÜÚÙÚØØ×ÕÕÔ#ÒÑ#################################################•########################•#######################################-####################•!################!-#ƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,SSSSSSSS‰‰‰‰‰‰‰‰‰‰‰‰k‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰z k‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚÚÚØÚÚ×××××××××ØØØØØÚÚÚÜÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÚÙÙØ×Õ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ/ÃÃ//////Ã//Ã//Ã/Ã///ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÕ××ÚÚÜÜÜÜÜÜÜÜÜÜÜÚØÚÚØ×ÔÔ!ƒÒÒÑ######“############################################•#######################†##############----###d“#-#!wBSEESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰‰‰‰‰‰‰‰‰‰‰ˆ7ˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ˆ‰‰‰‰‰‰‰ˆˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚÚÚÚ×××××ÕÕ×ÕÕ××××××ØØØØÚØÚÚÚÚÜÚÚÚÜÜÜÜÜÜÚÚÙÙØÖÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ/Ã/Ã////Ã///ÃÃ///ÃÃ///ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÔÕ×רÚÜÜÜÜÜÜÜÜÜÜÜÜÜØØØØÕÕƒ“Ñ#################################################•######################•############## --#!)#!-###rt”•!# "))rS)EEEDSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰z‰‰‰‰‰‰‰‰‰‰‰‰(D‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ ‰‰‰‰‰‰‰‰O‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØÚÚ××××ÔÕÔÔÓÓÔÔÕÕÕÕÕ××××ØØØØÚØÚÚÚÚÚÚÚÚÚÚÚÚÙÙÙ×ÖÕÕ“““ÃÃÃÃÃÃÃÃÃÃÃÃ/ÃÃÃ////Ã///ÃÃ///ÃÃ///ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÔÕרÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÛØÚØÕÔ-“ÓÑÒÒ“##########“##########################################••####################•################-!##wrEEEEOESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSS-QSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰‰‰l‰‰‰‰‰‰‰‰‰‰‰‰kk‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØØ××ÕÔÓÓ“ÓÓÓ“ÓÓÓÓÓÕÕÕÕÕÕÕרØ×ØØØØØØØÚÚØÚÚÚØÙÙÖÖÕÕÕÓÓ““““ÃÃÃÃÃÃÃÃ/ÃÃÃ///Ã//Ã//Ã/Ã/ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔ×רÚÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚØÚØÕ““ÓÑ“-############ƒ“#######################################••#####################•#################-##!!#--##„„#### “r  !SEESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS••SSSSSSSSSSSSSSSSSCSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰‰‰‰‰‰(k‰‰‰‰‰‰‰‰‰‰‰‰‰BO‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰z‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚÚ××ÕÔ““ÓÓÝÝÝÝÝÝÝÝ“ÓÓÒÓÓÕÕÕÕÕÕÕÕ×Õ×××Ø×ØØØÙÙÙÙÙÙ××ÖÕÕÕÓÓÓÓÑ““ÃÃÃÃÃ/Ã/Ã/ÃÃÃÃÃÃÃÃÃÃÃÃ/ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔ×רØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÚØÚØØ×Õ×ÔÔÔ“ÓÓÒ!##############ƒ####################################•••########################•#######################################„••######################!SSSSSSSSSSSSSSSS(BSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSS ESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰‰‰‰‰‰‰‰ˆ, ˆ‰‰‰‰‰‰‰‰‰‰‰‰‰^((^‰‰‰‰‰‰‰‰‰^3‰‰‰‰‰‰‰‰^‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØ××ÕÔÓÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÓÓÓÔÕÓÕÓÕÕÕÕ××רÙÙØÙÙÙÙ×רÕÕÔÓÓÒÒ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÑÃÃÃÃÃÃÃÓÔÔÕרØÜÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÜÚØØÕÕ““ÔÓÓ“!###############################################••##############################•#########################################•#####################“#######““#KSSSSSSSSSSSSSSSSSFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSS) SSSSSSSSSSSS)SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰k3‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰7OOOkO737k‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ••••ÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ××Õ“““““Ñ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÒÓÓÓÓÓÓÓÓÔ“ÕÕ××ÙÙÙÚÚÙÙÙØØ×ÕÕÔÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ’“ÑÑ“ÂÃÓ“’’ÔÔÕÕØØÚÚØÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÚØØÕ““ÔÔÓÓ!!############-“###############################•#########################################################################•#######################““####“SSSS5SSSSSSSSSSSSSSSSSS FSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSS.SSSSSSSSSSSSF-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰zO‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰zkkkk‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØÚ××ÔÔÓ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““““Ý““““ÝÝ“ÓÕ×רÙÚÚÚÚÚÙÙØ××ÔÓÓÓÓÃÃÃÃÃÃÃÃÃÃû»¶»»»»Ã»ÃÃÃÓ“ÑÑÓÑÓÓÔÔÔÕ××ØØØÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÚØØÚØ×ÕÕÔÔÓ“"--#########-ƒÑ#############################••########################################################################••#########################““###ƒSSSSSS SSSSSSSSSSSSSSSSS,SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSBBSSSSSSSSSSSSSS)SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSF,S‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰k 3‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØ××ÔÓ““““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕ×××ÙÙÚÚÜÜÚÙØ×××ÔÓÓ“ÃÃÃÃÃÃÃÃûú»»¶º»ÃÃûÃÃÃÃÃÓÑÑÓÓÔÔÔÕ×××ØØØØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÛÜÜØØØ×“×ÕÔÔÓ““!-!--!!!!“Òƒ#########““##############•••#######################################################################••##############################“##“SSSSSSS)ESSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSS)SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSQ)SSS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰(^‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×Õ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÕÓÓ××ÙÚÚÚÜÚÚÚØ××ÔÓÓÓ“ÃÃÃÃÃÃöú»»»º»º»ÃÃÃÃÃÃÓÓÓÔÔÔÕ××רØÛÚÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÚØÛÜØØ×ד““ÔÔÓÓ““““““““Ó“!########“Ñ“###########••#########################################†#################################################################“#“SSSSSSSSR SSSSSSSSSSSSSSSSSS-,SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSEBSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰k('7ˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰k\,2,2k‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚØ×ד“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓ×××ÙÚÚÚÚÚÚØ×Õ×ÔÓÓÓÃÃÃÃÃÃÃÃÃÁô¶³¶»ÁºÃºÃÃÃÃÃÃÃÃÓÓÔÔÕררÚÚÚÛÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÜÚÜÛÛØØØ×××Õ““ÔÓÓÓÓÓÓÓÓÓ““!!######“Ñ“““########•#############################################################################•###############################“#“SSSSSSSSS,SSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSS)QSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSBÏS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰B,F‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰^(z‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØ×ÕÔÓ““““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÕÕÖ×ÙÚÚÚÚÙØ×“““ÓÓÓÃÃÃÃÃÃÃÃÃÁ»ÂÃÃÃó»ÁÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔ×רØÚÚÚÛÛÛÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÜÜÜÛØØØØØ××ÕÕÕÕÕÕÕÕÕ““ÓÓ’“--"""""ÑÒ“Ñ“#######•############################################-##################################•###############################“SSSSSSSSSS,SSSSSSSSSSSSSSSSSS)BSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS-FSSSSSSSSSSSSSSSSQSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÏS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰zkkOO,(3kz‰‰‰‰‰‰‰‰‰‰‰, ^‰‰‰‰‰‰‰‰‰‰‰‰••ÃÃÃÃÕÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØ××ÔÔÓÑÓÑ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÕÓרØÙÚÚÚØ×““Ó““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔÔ×רÚÚÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÛÚÚØØØØØØØÕ×××ÕÕÕÕÔÔÔÔÔÓÓÓÓÓÓÓÓÓƒ#######•###########################################!!“ƒ##################################•#############################“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,SSSSSSSSSSSSSS,SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSωS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰^B ^‰‰‰‰‰‰‰‰‰‰O‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØÚØ×“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓ×רØÙÚÚÙØ××ÕÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔÕØØÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÛÛÚÚÜÚÜÚØØØØØØ××××××ÕÕÕÕÕÕÔÔÔÔÓÓÓÓ“#--#-•#########################################!!"““Ñ“###################################•############################“SSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSFSSSSSSSSSSSSSS)SSSSCSSSSSSSSSSSSSSSSSSSSSSSSSSSSSωS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰_ ^‰‰‰‰‰‰‰‰B‰‰‰‰‰‰•ÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØ×ד““Ó“Ñ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“Ó×Ö×ÙØÚÚÙØ×Õ×ÔÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÂÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔרÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÚÚÚÚÜÚÚÙÙÙÙÙÙÙØØØ×××ÕÕÕÕÕ××ÓÓÓ““ƒÍÒ“#########################################ƒ“ÑÑÑÑу####################################•############################“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSB,SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÏÏS‰‰‰ D‡‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃɉ‰‰‰‰‰‰‰‰‰‰‰‰‰‰kO‰]‰‰‰‰‰‰‰‰‰‰‰‰•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØØ××ÕÔÔÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓ×רØÙÚÙØ××ÕÔÓÓÃÃÃÃÃÃÃÃÃÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÓÔÕרØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÙÜÜÜÜÙÜÜÜÚÚÙÙØØØØØØØØØØ××Õ××ÖÓÒÒƒƒ################"##"““####################“ÑÑÑѓѓ####################################•#############################SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSS,SSSSSSSSSSSSSSSSSSSSSSS,8SSSSSSSSSSSSSSSSSSSSSSSSSSSÏÏω‰‰‰lDB‡‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃɉ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰^,k‰‰‰‰‰‰‰‰‰‰•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØØ×ÕÕÔÔÓÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓרØÚÚÚÚØ×ÕÕ“ÃÃÃÓ““ƒ“““ÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ““ÔÔÔרÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÙÜÚØØØØÚØØØØ××ÖÕÓÓÒƒƒ###############“Ñ“““Ñ“###################-“““““Ó“-!###################################•############################“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSESSSQSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÏSÏω‰‰‰‰‰‰‰z7,z‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃɉ‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃɉ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰O,3z‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØØ××ÔÔ“““““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÖרØÚØØØØÕ““ÂÃÓÓÓÓÓÓÓÓÓÒÒ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÕ××ÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜÙÚÛÚÚÚØØØ×ÖÕÓÓÒƒ################“ÑÒÒÒÑ“"##############!!-“Ó““ÓÓÓÓÓ““"-!################################•###########################““SSSSSF)SSSSSSSSSSSSSSSSSSSSSSSSSSSESSSF)SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSS,SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÏSSS‰‰‰‰‰‰‰‰‰‰‰‰‰^\‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃɉ‰‰‰‰ÃÃÃÃɉ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÚÚÚØØØ××ÕÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÔ××רÚÚØÚØØÕÕƒƒÓ××ÕÕÓÓÓÓÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÕרØÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØÚ×ÖÓÕÒ-##################“ÑÒÓÓÓÓÓÒ““#########ƒƒÒ“ÓÓÓÓÔÕÕÕÔÔÓÓ’“-!##############################•############################““SSSR5SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSFFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•••SSSSSSSSSSSSSSSSSSSSESSSSSSSSSSSSQRSSSSSSSSSSSSSSSSSSSSSSS‰‰SSS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰O^‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃɉ‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚÚÚרØ×ÔÔÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓ×××ÚÚÚÚÚÚØØÕ×ÕÕ××ÖÕ××ÓÖÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÔÕרÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÙÚØ×ÖÓÕÒ####################ÓÓÒÓÓÔÓÓÓÓ“###!#!-ƒÒÒÒÒÓÔÔÕÕÕÕÕÕÕÔÔÔÓ’““-!!#########################•###############################ƒ, RRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSS)SSSSSSSSSSSSSSSSSSSSSSSSSSS•†SSESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRSSSSSSSSSSSSSSSSSSSSSS‰‰‰SS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ ‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃɉ‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÚÚÚÚÚØ×ÔÔÓÓÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÕ××ÚÚÚÚÚØÚÚØØØØØØØØ××Ó×ÔÓÓ“ÃÃÃÃÃÃÃÃÁÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔ××ÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÙØÙ×ÖÕƒ!##########!###““Ò“““ÓÓÓÕÕÓÓÓÓÓÓ“#""""“уƒÒÓÓÔÕ×ըרØÕÕÕÕÔÔÓÓÑ’“-!!######################•#############################t^SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSQ FSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÏω‰‰S‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰z‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃɉ‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØÕÕÔÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÕ×רÚÚÚÚÚÚØØÚØÙØÙÙØÙ××ÖÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÕ××ÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØ×ÕÓÓÒƒƒ#######ƒƒ“Ñ“ÒÔÒÔÒÔ““ÖÕÕÓÕÕÓÓÓÓ“ÓÓÓ“ÓÓ-#-ƒÕÕ×רØÙØØØØÕ×ÕÕÕÔÓÓÓÓ““!###################################################!###ƒ^SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSQQSSSSSSSSS)SSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSFSSSSSSSSSSSSSSSSS,SSSSSSSSSSSSSSSSSSSSSÏÏω‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃɉ‰‰‰‰‰‰•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØØ×ÕÔÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÔÖ×ÚÚÚÚÚÚÚÚÚØÚÚÙÙÙÚØØ××ÔÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“Ô×רØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÜÚØØ×ÓÓÓÒÒƒ#######“ÒÒÒÔÓÒÔÓÓÔ“ƒÖÓÓÕÕÕÕÓÓÓ“ÓÓÓÓÓÓ--“ÕÕ×רÙÙÙØØÚØØØ××ÕÕÕÔÔÓÓÑ-######################################################  ))QSSSSSSSSSSSSSSSSSSSSSSSSSSS.RSSSSSSSSSSSFSSSSSSSSSSSSSSB FSSSSSSSSSSSSSSSSSSFSSSSSSSSSSSSSSSSSSSFSSSSSSSSSSSSSSSSSSSSSÏÏÏω‰S‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃɉ‰‰Ã•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÛÚÚØ×ÔÔÓÓÑÑÑÑÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÔ××ÙÚÚÚÚÚÚÚÚØÙÚÙÚÚÚØ××××ÔÓÑÐÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔ×רÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÜÚØØ×ÖÓÔÒ““########ƒÒÓÑÓÓÔÕÓÓÖÔÕÓÓÕÕÓÕÕÕÕÔÔÔÔÔ“““Ô““×ØØØÚÚÜÜÛØÚÜØÚØ××ÕÕÔÔÓÓ“-####################†!!!--#############################““#“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS5 ,.•SSSSSSSSSSSSSSSSSSS,SSSSSSSSSSSSSSSSSSSSR8SSSSSSSSSSSSSSSSSSSSÏSÏ0›‰S‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØØ×ÔÔÓÓÑÑ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÔ×××ÚÚÚÚÚÚÚÚÚÚÙÚÚÙÙÙÚ×ÖÔÓÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÕרÚÛÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØ×ÓÓÓÔÒ#########!“ÒÔÓÖÓÓÓÖÕÖÓ““Ó“ÓÕÕÕÖÕÕÖÔÖÖÕÕ“ÕÕ×רØÙÚÚÚÜÜÜÜÙÜÚÚ×Ú××ÕÕÔÔ““!!################!!••"“Ñ“"##################################ƒS-SSSSSSSSSSSSSSSSSSSSSSSSSSS.SSSSSSSSSSSSSSSSSS.ESSSS•SSSSSSSSSSSSSRSSF.SSSSSSSSSSSSSSSSSSSSSS,FRSSSSSSSSSSSSSSSSSSSÏSSÏ£B‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØØÔÔÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÕ××ÙÙÚÚÚÚÚÙÙÙÙÙÙÚÚØÙÖÖÔÓ““Ñ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔÕ×ÚÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚØ×“ÕÓÓƒ#######-ƒ“ÒÒÓÖÖÕ“Ó×Õ““####Õ“ÖÖÖÕÖÖ××××Õ××ØØØØÚÚÚÚÜÜÚÜÚÜÙÛÚÚÚÚØ××ÕÕÔ“““-!!#############“ÓÑÓÓ““ÑÑ“"################################ƒSS,SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSB)-,-( 5SSSSSSSSSSSSSSSSSSSSSSSSSSS)SSSSSSSSSSSSSSSSSSSSSSSÏÏB ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØ××Ô“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÔÔÖ×ÙÙÙÚÙÙÙÙרÙÙÙÚ××ÖÔÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔרÛÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØ×דÕÓƒ-###“ƒ“#ÒÒÒÒÓÓÓÓÕ“ÕÕ“###““##““ÓÖÖÖ×××ØØØØØØØÚØÚÚÚÚÚÚÚÚÚÚÚÜÚÚÚÚÚØØÕ×ÕÔÓÓÓ“"!##########!“ÑÓÓÓÓÓÓÓÓÑ“################################“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSEFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,S,SSSSSSSSSSSSSSSSSSSSÏSSSÏÏS‰\‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØ××ÔÔ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÓÓÓÔÖÖ××ÙÙÙד““Ù×ר××ÖÖÔÔ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ’ÔÕÕ×ÚÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØ×׃ƒ“ƒ“#“ƒ####ƒÒƒ“Ó“ÓÓÕ“ÕÓ“##ÓÓƒÓ-““ÖÖÖ×××ØÚØÚØÚØÜÜØÜÚÚÚÚÚÙÚÚÚÚÚÚÚÚÚÚÚÚØØÕÕÕÕÓÓÓ“--!#######ƒ“ÓÓÔÔÔÔÔÓÓ“Ñ“#############################!ƒSSSSS,BSSSSSSSSSSSSSSSSSSSSSSSSSS-)SSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS8SSSSSSSSSSSSSSSSSSSSSSωSSSÏS‰‰‰]\‰‡‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚ××Õ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݓѓÓÓÓÔÖÖÖÙÙ××××Ó“××××Ö×ÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔ×רØÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØ××ÖÓÓÒ#######--!ƒÒÒÓÓÓÓÓ“ÕÓÓÓÓÓÓÒ“ÓÓ“ÖÖ×××ÚÚÚØØØÜØÚØÚÚÚØÚÚÚØÙÚÙÚÚÚÚÚÚÚÚÙÙØ×ÕÕÕÔÔÓ““"-!!###!“ÓÓÔÕÕÕÕÔÔÓÓ“Ò““##########################“ƒSSSSSSS,SSSSSSSSSSSSSSSSSSSSSSSSSSS,SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSC,SSS,CSSSSSSSSSSSSSSSSSSSω‰SSSS‰‰‰‰‰F‡‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚ××Õ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““Ý“ÃÓÓÓÕÕÖÖÖ×××דÓ××××ÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÓÔÔ×ØØØÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØ××ÕÓÓÒ######“ÑÑÑÑÒÒ““#““ÓÓÓÒÓÒÒÒƒ###ÓÓÖÖÔ××ØØØØØØØÚÚØØØÚÚÚÙØÙØÚÜÚÚÚÛÛÛÙÙÜÙÙØØØ×ÕÕÔÔÔÓ“““--““ÔÕÕ××××××ÕÓÓÔÒÒ“#####################“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)(SSSSS(SSSSSSSSSSSSSSSSSSSω‰‰‰SSS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÛ××ÕÔÓÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÓ““ÓÕÖÖÖ××ÖÖ“Ö×Ö×ÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÑÓÓÔÕÕרÚÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚØ××ÕÕÔÒ######ƒÑÑÑÒÔ“####“ÓÒÓÓÒÔÒÔÒ##“ÔÓÕÕ××Õ××רØÕØØØØØØ×רƒƒ-“ØØØÚÚÛÜÜÚÚÜÜÚÙÙØØ×ÕÕÕÔÔÔÔÔÔÔÕÕÕ××ØØØØØ×ÕÕÓ#“““####################ƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS))SSSSS)SSSSSSSSSSSSSSSSSSSÏω‰‰‰SSS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØ××ÔÓÓ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÃÃÃÃÃÃÃÓ“ÓÓÖÖÖÖÖÖ×Ö×××ÔÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔ×רÚÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÚÚØ××ÕÓÒÒ#######-ÑÑ“######“ÓÒÓÒÓ““####“ÓÓÓÓÕÕÕÕÕÕ×××ÕÕ×××××××---ÚØÛÚÚÛÛÜÜÜÜÚÚÜÚÜÚÜØØ××ÕÕÕÕÕÕ×Õ××ØÚØÚÛÚØØ×Õƒ!#######################ƒSSSSSSSSSSSSSSS.)SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS-)SSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSESSSSSQ-SSSSSSSSSSSSSSSSSSSÏÏÏω‰‰SS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØ××ÔÓÓÓÑÑ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÝÝÝ“ÃÃÃÃÃÃÃÃÓғÓÔÕÖÖÖÖÖÖÖÖÓÓÓÓÑÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔÔרØÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÚÚ××ÕÕÓÒÒ#######“ÑÒƒ######“ÓÓÓ““########““ÓÓÓÕÔÔÔÔÔÔÔÕÕÕÕÕ××ד“ØØØØÚÚÚÛÜÜÜÜÜÜÜÜÜÜÚÚØØØØØØÕ×××ררÚÚÚÚÚØØ××Õ########################SSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSFFSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.CSSSSSSSSSSSSSSSSSSÏSÏÏÏω‰‰S‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØ×ÕÔÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÃÃÃÃÝÝÝ“ÃÃÃÃÃÃÃÃÓ’“ÔÖÓÖÖÓÓÓÖÓÓÓÓÓÑÓÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔרØÚÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØ××ÕÓÒÒÒ#######“ÑÒ#######“ÓÓÒ“########““ÓÓÓÓÓÓ“““ÓÓÓÔÔÔÕÕÕÖ×××ØÚØØÚÚÜÛÜÜÜÜÜÜÜÜÜÜÚÜÜÜØØØØÛØØÚÚØØÚÚÚÛÚÜØØØ×ÕÔ““““““““““#############SSSSSSSSSSSSSSSSSS,,SSSSSSSSSSSSSSSSSSFC-SSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÏSSÏÏÏω‰S‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØ×ÕÔ“ÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÓÝÃÃÃÃÃÃÃÃÃÓ““ÓÓÔÔÔ“ÓÓÓ““ÓÓ“ÑÓÑÑÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔרØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÚØ×ÕÕÕÒ““#######“Ñ“--!##Ó“ÓÓÓÓ“########ÑÑÒÓÓÒ“ÝÝÝÝÝ““““““ÔÕ××רØÜØÚÚÛÛÛÜÜÜÜÜÜÜÜÜÜÜÚÚÜÛÜÚÚÚÚÚÚÚÚÚÚÚÚÛÛÜÚØØØ×Õ×ÓÓ“ÓÔÑÑÑÒ#############SSSSSSSSSSSSSSSSSSSBSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRBFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSCSSSSSSSSSSSSSSSSSSωSa——½ÏωS‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚ××ÕÔÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ““ÓÓÔÔ““ÓӓÓ““ÃÓ““ÑÐÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÔÔÔרÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚØ×ד“ƒ##########ƒÒÑÒƒ““Ó“ÓÓÓÓ“########ÔÑÒÒÓÓ“ÝÝÝÝÝÝÝÝÝÝÝ“ÔÔ××ØØØÚÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÛÛÚÚÚÛÛÛÛÛÛÚÜÜÚØØ××ÕÓÓÓÔÑÒу############ƒSSSSSSSSSSSSSSSSSSSSFSSSSSSSSSSQ F.SSSSSSSSSSSSSSSSSSSF,ESSSS•SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,SSSSSSSSSSSSSSSSSSω‰SŠ—™Ïɉ‰‰‰ÃÃÃɉ‰‰‰‰‰‰ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØ×ÕÔÓÝÝÝÝÝݓӓ“ÑÑ“ÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÓÓÔÔ““ÓÃÃÃÃÃÃÃÃÃÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÕÕרÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØ××Õ“############ƒÒÑÒÒÒÓÓÓÓÓÓ“#####!####“Ò“ÓÒ“ÝÝÝÝÝÝÝÝÝÝÝ“ÓÕ×ØØØØÚÚÜÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚØÚÚØ××ÖÕÕ“ÓÒÒ“###########“SSSSSSSSSSSSSSSSSSSSSSSS,SSSSSSSSSSSSSSSSSSSSSSSSSSSQ,F•SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,,SSSSSSSSSSSSSSSSSSSS‰‰‰Sˆˆ— ÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛØØ×ÕÕ“ÝÝÝÝÝ“’ÓÓÑÑÓÑ““““Ý“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÓÔÔÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔ×רÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜØØ×ÕÕÕ##############“ÒÒÓÓÓÓÓÕÓ“““##“ƒ“#####ÓÓÑÒ“ÝÝÝÝÝÝÝÝÝÝÓÓÕÕרØÚÚÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚÚØØ×Ö×ÕÓÒÒ“###!####-“ƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,ESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSQSSSSSSSSSSSSSSSSSSSSS‰‰ÏÏSSS—»ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØ××Õ“Ô“ÔÔÔÔÔÔÓÓÓÓÑÑÑ“ÝÝÝÝ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ’ÓÓÔÓÔÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔרÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ××ÕÓÕ-#############ƒÒÒÓÓ“ÕÕÓÕÕÓÓ“-“Ò“#####ÑÑÑ“ÝÝÝÝÝÝÝÝÝÝ“ÓÓÕÕ×ØØØÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÚÚØÚ×ÖÖÕÓÒÒ“##### ƒƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•S-ESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,SSSSSSSSSSSSSSSSSSSSSSSÏÏÏÏSSS³—»ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚÚØ×ÕÕÕÕÕÕÕÕÕÔÔÔÓÓÑÑ““ÝÝÝ““““ÃÃÃÃÃÃÃÃÃÃÃÃÃ’ÓÓÓÓÓÔ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔרÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚ××Ò“#####Ò““ÕÕÓÓ#“ÓÒ#####ÑÑÑ“ÝÝÝÝÝÝÝÝÝÝ“ÒÓÓÕÕרØÚÚÚÚÜÚÚÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜØÚØ×ÖÕÓÒÔ######“tSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSFSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSS5SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSQSSSSSSSSSSSSSSSSSSSÏÏSSSÏÏÏÏSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚÛÛØØ××××××××ÕÕÕÔ“ÝÝÝÝÝÝÝÝÝÝ“ÂÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÓÓÔÓÓÒ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÕ××ÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ××ÓÓ“######Ó“ÕÕÕÕ“ÓÓÓ“###“ÑÑ“ÝÝÝÝÝÝÝÝÝÝÝ“ÒÒÓÕÕÕ×ØØØØÚÚØÚÚÚÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚÙÖÖÕÓÒƒ! #ƒƒSSSSS ESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS ,SSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSS -SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSCQSSSS.SSSSSSSSSSSSSSÏÏÏSSSSÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÚÚÚØØÚØØØÚØØ×××ÔÔ““ÝÝÝÝÝÝÝÝÝÝ“ÃÃÂÃÃÃÃÃÃÃÃÓÓÔÔÓÕÔÓÒÒ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÕ××ÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØÕÓ“########Ó×ÕÕÕÕÕÕ““##-Ñ“ÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÒÓÓÕÕÕÕר××ØØØØÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ××ÖÓÓ““#hSSSSSSSSSS))SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS. SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSB SSSSSSSSSSSSSSSSFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSQ,SÏÏSÏÏÏÏSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚÚÚÚÚÚÚÚÚÚÚØØ××ÕÔÓÓÝÝÝÝÝÝÝÝÝÝ“ÑÑ“ÃÃÃÃÓ“ÓÓÓÔÕÓÓÓÓÓГÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔ×רÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØ×Ó“################ÒÒ“ÓÖ××רÕÕÕÕÓÓ“ÓÒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÓÓÓÕÔÕÕÕÕ×××ÚÙÙÙÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØÚ×ÖÓÔÒƒ#“SR SSSSSSSSSSSEBRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSB SSSSSSSSSSSSSSS),SSSSSSSSSSSSSSSSSSSSSCSSSSSSSSSSQÏSSSSÏÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÚÚÜÚÚÚÛÚÚØØ×ÕÔÔ“ÝÝÝÝÝÝÝÝÝÝ““Ó“““““Ó“ÓÔÓÓ“ÓÓÓÒÓГ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔרÚÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØØ×ÕÔÓ#################“Ò“““ÓÖ×ר××××ÕÓÕÓÓÔÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÒÓÓÓÓÕÓÕÕÕÕ××ÚÙÚÚÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×Ó×Ó“##“SSF^SSSSSSSSSSS5SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSBRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,(SSSSSSSSSSSSSSSE,C.,SSSSSSSSSSSSSSSSSSSSSSSÏÏSSSSÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚØØ×ÕÕÔÔ“ÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÓÓÔÓÓÔӓÓӓ““ÑÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔ××ÚØÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØ×ÕÔÓ!#################“##“Ó×רØÙÙÙØÕÓÖÓÓ“““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““““““ÓÓ““ÕÕÕ××ÙÙÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØÚ×ÓÕÓ“##SSSSBSSSSSSSSSSSSSR)SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRSSSSSSSSSSSSSSSSSS•SSSSSSSSSSS-SSSSSSSSSSSSSSSSSSSC.ESSSSSSSSSSSSSSSS)SSSSSSSSSÏS·ÏSSSSÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØ×ÕÕÔÔ““““““““ÝÝ“ÓÔÔÔÔÔÔÔÔÔÔÓÓÓÃÓÑÑÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÕרØÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØØ×ÕÔÓ-########!##!#########“×רØÙÙÙÙØ×ÕÓÓÓÒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕÕ××ÙÙÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØÖÕÓÓ#““SSSS9SSSSSSSSSSSSSSSF SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSS SSSSSSSSSSSSSSFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS-ÏÏÏSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÚÚØ××ÕÕÕÔÔÔÓÓÓÓ’“ÔÔÔÔÔÔÕÕÔÔÔÓӓÓ“ÓÓГÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÔ×ÔØØÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØØØ×ÔÔ-#!ƒƒ#################“ÖרÙÚÙÙÚØ××ÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓÓ“Õ××ÙÙÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×Ö×ÓÒ“SSSSSSSF)^SSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSF FSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSSSQ--SSSSSSSSSÏÏSSSSSSÏÏSS€FSSSSSSÏÏÏSSB€ÏÏÏSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚ×ר××ÕÕÕÕÔÕÕÔÕÕÕÕÕ×ÕÔÔÕ“ÔÔÓӒÓ““ÑÐÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔÔ×רÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØØØ×ÕÔ--ƒÒƒ##-ƒƒ!#######ƒÒ““Ö×רÙÚÚÚÚØØ××ÕÓÒ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÒÒÒÝ“Õ×ÙÙÙÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÚØ×ÔÔÓ“SSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.SSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSSSSSBCSSSSSSÏÏÏÏSSSSÏÏÏSSSSSSSÏSÏÏÏÏSSÏÏÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØÚØ×××××ÕÕ×××××××××Ô×ÕÓÔÓӓÓÑÓ“Ñ“ÃÃÃÃÃÃÃÃÃÃÃÓ“ÑГ““ÓÓÔÔÖרÚÚÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙØØØÕÕÕ“Ó“Òƒ-!Ñ“ƒ-######ƒÒÓÓÓÖÖØÙÚÚÜÚÚÚØ×ÓÓÓÒÑ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÒÝ“Õ××ÙÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ××ÔÔÓ“SSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRSSSSSSSSSSSSSSSSSSSS•••SSSSSSSSSSSSSSSSSSSSSSSSSESSSSSÏÏÏÏÏÏÏÏÏÏÏÏSS ÏÏÏÏSS]aŸÏÏSBBSÏÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÚÚÚÚØØØØØØ×Ø×Ø×רר×דÔÃÃÓÓӓÓ“ÐÑ“ÑÃÃÃÃÃÃÃÃÃÃÃÓ“ÑÑÑÑÓÓÓÔÕרØÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÙØ×ÕÕÓ““ÒÒ““ƒÑƒ!######ƒÒÓÓÕÖרÙÚÚÚÚÚÙ××ÕÓÓÒ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÝÝÕ×××ÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ××ÔÓÓ“SSSSSSSSSS SSSSSSSSSSSSSSSSSSSS-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSÏÏÏSSSSÏÏÏSS)SÏÏÏ]™—Ÿ¼½½a:an´¡˜—— ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÚÚÚÚØØÛÚØØÚÚÚÛØ×Ø×ÖÃÃÓ“ÓÑÓѓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“Ñ““ÓÓÔÖ×ÚØÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÙÙ×ÕÕÕƒÓÓÒÒ““ƒ########“ÒÓÖÖ××ÚÚÚÜÚÚÙÙ××ÓÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݓғÝÓ×××ÙÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØ××ÔÓÓSSSSSSSSSSSS ^SSSSSSSSSSSSSSSSSSSBB,SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSF -SSSSSSSSSSSSSSSSSSSSSS••SSS••SSSSSSSSSSSSSSSSSSSFSSSSÏSSÏÏÏSSSSÏÏÏS,FÏÏÏSSQSÏÏÏSSÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚÚÚÚÚÚÚÚÛÛÚÚÚÚÛØ×ד“““ÃÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔ××ÚØÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÙÙØ×ÕÕ-“ÕÓÒÒу########ÒÒÓÕÖרØÚÚÚÚÙÙ××ÕÕÓÒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““Ý“Õ××ÙÙÚÚÚÜÜÜÜÜÜÚÜÛÜÜÜÜÜÜÜÜÜÜÜØØØ××ÔÓ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSÏSSÏÏÏfSSSÏÏÏ)SÏÏÏÏSSSÏϤSSSÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÛÚÚÚÚØØ××ÔÔÓ““ÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÓÔÕ×ÚÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÙÙÙ××Õ“#ƒÔÓÒÒ“-#######ÒÒÓÕÖ×ÙÙÚÚÚÚÙ××ÕÓÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““““ÕÕרÙÚÚÚÜÜÚÜÚÚÚÚÜÛÛÜÜÜÜÜÜÜÜÜÙØØ×ÔÔÓ“SSSSSSSSSSSSQSSSSSSSSSSSSSSSSSSSSS SSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS-)SSSSSSSSSSSSSSSSSSSSSBESS•SSSSSSSSSSSSSSSSSSQESSSSSÏSSÏÏ—¡SSSÏÏÏnSSÏÏÏÏSSSÏÏIÏSSSÏÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÛÛÚØ××ÕÔ“ÓÑÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÑÑÓÓÔÔ××רÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÙÙÙ×דƒ!ƒƒÓ“!!######ƒÒÓÕÖרÙÚÚÚÙ××ÕÕÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݓѓ“ÓÓÖ×ÚØØØÚÚÚÚÚØÚÚÚÚÜÛÜÜÜÜÜÜÜÜÜØØ××ÔÓ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,SSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSBSSSSSSSSSSSSSSSSFBSSS•SSSSSSSSSSSSSSSSSSSSSSSSSSÏSSS¡—ÏSSSSÏÏÏSSSSÏÏÏb]SSÏnÏSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚÚØØ×ÔÕÔÓÓÑГÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÔÕ×רÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÙÙ×××Õ““““““!!#####-ÒÓÕÕרÙÚÚÙØ××ÕÓÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÓÝÕÖÖרÚÚÚØÚÚÚØØØÚÚÚÜÛÜÜÜÜÜÜÜÜÜØØ××ÔÓ“SSSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSS)FSSSSSQSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSQ,FSSSSSSEB,SSSSSSS•SSSSSSSSSSSSSSSSSS SSSSSSSÏSSSS¬ÏÏÏSSSÏÏÏÏSSSÏÏ— SSS0ÏÏÏSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÛÚØØØ××ÕÔÓÓÑÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÕÔ×ÚÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÙÙÙÙ××ÕÕÕÔÓÓÓƒ######“ÓÓÓ××ÚÚÚÙ×××ÕÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÒ“ÓÔÖ××ÚÚÚר“××ØÚØØÚÚÚÛÜÜÜÜÜÜÛÛÜØ××ÔÓ“SSSSSSSSSSSSSSS,SSSSSSSSSSSSSSSSSSSS SSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSF,,5FSSSSSSSSSSS••••SSSSSSSSSSSSSSSSSSSSSSSSÏÏSSQ¼ÏÏÏSSSÏÏÏÏSSSÏ——ÏSSÏÏÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÚØÚØ××Ô““ÃÓÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔÔ×רÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÚÚÙÙØØ×Õ×ÕÔÓÓÓ!#####!ÕÓÓ“ƒÙÙÙÙ×ÕÕÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓ“ÔÖר××××ד“××××ØÚØÜÛÜÜÜÜÜÜÛÜÜØ××ÔÓ“SSSSSSSSSSSSSSSRRSSSSSSSSSSSSSSSSSSSSSSSSSSSFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSÏÏÏSS—ÏÏÏÏSSSÏÏÏÏSSSªªÏÏSSÏÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÜØØØ××ÔÔ“ÃÓÑÑÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÔÔÔרÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÜÚÙÙÙÙØ×Ø×ÕÔÔÓ“!####-ÕÓÓ×רÙÙ××ÕÕÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÒÓ“ÔÖר××××ד“Õ×××רÚÚÚÛÜÜÜÜÜÛÜÜØ××ÔÓ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSBCSSSSSSSSQFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSÏÏÏÏS{QSÏÏÏSSSSSÃSSS~ŠÏÏHFSSÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÜÜÚØØ××ÔÔ“ÃÓ““Ñ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔ×רÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÜÚÙÙØØØ×ÕÔÔÓƒ!###-ÔÓÔ××ÙÙØ××ÕÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÒÓ“ÔÖ××××××Õ“Ý“ÕÕÕ×ØØØÚÛÜÜÜÜÜÛÜÚÚ××ÕÓÓ“SSSSSSSSSSSSSSSS) SSSSSSSSSSSSSSSSSS SSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS•SSSSSSSSSSSSSSSSSSSSSSSSÏÏÏÏSŽSSÏÏÏSSSÃÃÃÏS˜SϤSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÜÚÜ““×ÖדÓ““ÃÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔ×רÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÙÜÚÙÚØ××ÕÕÔÔ“!!!“ÔÕÕרØÙ××ÕÓÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÓ“Ö×××××ÕÕÔÝÝÝ“ÕÕÕרØÚÛÛÜÜÜÜÜÛÚÚ×××ÓÓÒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.,SSÏSSÏ•ÏSSSSSSSSSSSSSSSSS.SSSSSÏSÏÏÏ™{SSÏÏSÃÃÃÃSÏÏn—SSÏ;ÏSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÚÜÚØØ×“×ÔÓÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔרÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜÜÚÚÚÜÜÜÜÜÜÚÜÜÚÚÚØØØÕÕ“““-“Õ××ØØØ×××ÕÓÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃ÓÕÓÖ×××××ÕÕÔÝÝÝÝ“ÔÔ×רÚÜÛÜÜÜÜÜÛÚÚØ××ÔÓÓSSSSSSSSSSSSSSSSSQ SSSSSSSSSSSSSSSSSS,ESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSD `SSSS•ÏÏSSSSSSSSSSSSSSSSSSSSÏSSSÏÏÏ SSSSÃÃÃÃÃSÏϼŸSSSÏÏÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÛÚÚØÚ×Ö“ÔÓ“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÕÕ×ÚØÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÜÜÚÜÚØØØ××ÕÕÕÕÕ“Õ×ØØØÙ×Ö×ÕÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÖ×רØ××ÕÕÓÝÝÝÝ“ÔÕ×רØÜÜÜÜÜÜÜÜÜÚØ××ÔÓÓSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÏÏSSÏÏSSSSSS¾BSSÏÏÏÏSSSSSSSSSSSSSS,BSSÏÏÆ——‹ÏÏÏ SÃÃÃÃÃÃÃSSϼŸÏSSSÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÜÚØØÚ××ÔÔÓÓÑÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÕרØÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÚÚØÚØÚÚÚØÙÚÙÚÚÚÚÚÜÚÜÚÚÙØØ×Õ×ÕÕÕØØÚØØ×××ÕÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÓ×רØ××ÕÔ“ÝÝÝÝÝ“ÔÔרØÚÛÜÜÜÜÜÜÜÚÚØ×ÕÔÓSSSSSSSSSSSSSSS^““Ñ““SSSSSSSSSSSSSSSSS-SSSSSSSSSSSSSESSSSSSSSSSSSSSSSSSSSSSSSSSSSSÏÏÏÏÏSSSÏÏSSSSSÏÏÏ®`n`SSSSSSSSSSÏ.SÏÏÏÏ™\— ´pÃÃÃÃÃÃÃÃSS´ ÏÏSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚÚÚÚØØÚ××××ÔÓÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÕÕØØÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØÚØØØ××××רØÙÙÙÚÚÚÜÚÜÜØÜÙÙÙØØØØØØØØØÙ×××ÕÓÒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÓÓ×ØØØØ××Õ“ÝÝÝÝ“ÓÔ×ÔØØØÛÜÜÜÜÜÜÜÚÚØ×ÕÔÓSSSSSSSSSSSSSS“ÒÒÔÒÒÔ“SSSSSSSSSSSSSSSS)SSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSÏÏÏSSSÏÏÏÏSSSÏÏÏSSSSÏÏÏ•SSSÏÏS SSSSSSSÏÏSÏÏÏSSÏÏÏÏSSSS¼—»ÂÃÃÃÃÃÃSS|‹SSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÜÚÚÚÚØ×ÖÖÕ“ÓÓÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÔÕÕØØÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØØ×Ø××ÕÕÕÕÕ×××××ÚØÚÚÚÜÚÜÙÚÚÙÙÜØÚÙÙÙØÙØ××ÕÕÓÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕ×ØØØØ××Õ““ÝÝÝ“ÓÔÔרØÚÚÛÜÜÜÜÜÜÜÚØ×ÕÔÓ“SSSSSSSSSSSSƒÒÑÔÔÔÒÒÒ“SSSSSSSSSSSSSSSSFSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÏÏÏÏÏSSSÏÏÏÏSSSÏÏÏSÏSSÏÏÏ•SSSSSSSSSSSÏÏÏSSSSÏÏESSSÏÏÏSSSSß—ÃÃÃÃÃÃÃà¨ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚÚØØØØ××ÖÔÖ’ÓÓÓ“Ñ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÕ×רØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙÙÙ××ÕÕÕÕÕÕÒÕÕÓÓÓÕÕÕ×רØÚÚÚÜÚÜÜÜÙÙÜÙÜÜÚÚÙØ××ÓÓÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓ×××ØÚØØØ×ÕÔÔÝÝÝ“ÓÕÕ×רÜÚÛÜÜÜÜÜÜÛØÚØ×ÔÔ“SSSSSSSSSSS^“ÔÓÕÖÓÓÓÔÑ“SSSSSSSSSSSSSSSSRSSSSSSSSSSSSSSS5-SSSSSSSSSSSSSSSSSSSÏSSÏÏÏÏSSSÏÏÉŸaSSÏÏÏÏSSSÏÏ•ÏSSÏSSSSÏÏSÏÏÏÏSSSÏÏÉSSSÏÏÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÛØØ““Ø××ÖÖÔÔÓ“Ó“““““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÕ××ÙÛÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØØØ×ÕÕÕÔÔÔƒ‚“##ƒ“ÕÔÕÕÕÕ×רÙÚÚÚÜÜÜÜÜÜÙÜÜÚÚÙ××ÕÓÓÒ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÕ×רÚÚØØ××ÕÔ“ÝÝÝ“Õ×××ÚÜÚÛÜÜÜÜÜÜÛÜØØ×ÕÔÔ“^SSSSSSSSƒÔÓÓÕÕÖÖÕÓÓÒÑSSSSSSSSSSSSSSSSFSSSSSSSSSSSSSSSBBR-BSSSSSSSSSSSSSSSSSÏSSSÏÏÏÏSSSÏ¡—ŸSSSÏÏÏÏSSSÏÏÏÏSÏSSSSÏSSSSÏÏÏSSSSÏÏSSSSÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚØØØØ“××ÖÔ×ÔÓÃÃÓÑÑ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÕÕ××ÛÛÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÙØ××ÕÓÕÓ-###########“ÕÕÓÕÕ×ÙØÚÚÜÜÜÜÜÜÚÚÚÚÚ××ÓÓÓ““ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÕ×רØÚØØØ×ÕÕÔ“ÝÝÝÕ×רÚÜÚÛÜÜÜÜÜÜÜÚÚÚØ×ÔÔÓ““_SSSS“ÔÔÓÓÖÖ×ÖÖÓÓÓÓ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS5SS, RSSSSSSSSSSSSSSSÏÏSSSÏÏÏÏSSSϪÏÏSSSSÏÏÏS•SSÏÏÏSSSSSÏÏSSSSÏÏÏSSSS€¤ÏSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛØÚÚØØ““×ÖÔÔÔÔ“ÃÃÃÓГ““ÃÃÃÃÃÃÃÃÃÃÓ““ÃÃÃÓӓÓÓÓÔÔÕ×רÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÙØ×ÕÕÕÓÓÓƒƒ###########“ÒÓÓÕ×רÙÚÚÜÚÜÜÜÜÚÚÚÚ×××ÓÓ““Ñ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÔ××ØØØÜØØØ××ÕÕ““““×רÚÜÚÛÜÜÜÜÜÜÜÚÚØØØ×ÔÔÔÓ““S““ÓÕÓÖÖÖØ×××ÖÕÓÓ“SSSSSSSSSSSSSSSSSQSSSSSSSSSSSSSSSESSSSBSSSSSSSSSSSSSSÏÏÏSSSSÏÏÏSSS{ÏÏÏSSSSÏÏÏSSSSÏÏSSSSSÏÏÏSSSSÏÏÏSSSSnÏSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØØØ×Ó×ÕÔÔ“ÓÃÓ“Ñ“ÃÃÃÃÃÃÃÃÃÃÃÃÓÑÑÑÑÑ““ÓÓÓÓÔÔÔÔÕÕ××××ÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÙØ×ÕÕÕÓÔƒƒƒƒ#############“ÒÕÕ××ÙÚÚÚÚÚÜÜÜÜÚÚÚ×ÕÓÓÓÒ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÔ×רØÚÚÚØÚØ××ÕÕÕד“ØØØÚÜÛÜÜÜÜÜÜÜÛÚØØØ××ÔÔÔÓÓ““ÓÕÕÖÖØØØØ××ÖÓÓÓ“SSSSSSSSSSSSSSSSSSSRSSSSSSSSSSSSSS5,SSSS)FSSSSSSSSSSSSSÏÏÏSSSSÏÏÏSS~SÏÏÏSSSSÏÏÏSSÏSSSFSSSSÏÏÏÏSSSÏÏÏÏSSF›ÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØØØ×““ÕÔÔÔ“ÃÃÓÓГÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÑÑÓÓÓÓÓÔÔÔÕÕÕ×××ÛÚÚÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØ×ÖÕÓÔƒƒ##################“ÓÕÕ×רÚÚÚÜÜÜÜÜÚÚ××ÓÓ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““Õ××רÚÚÚÚÚØØØØ×××ØØØÚÜÚÚÜÜÜÜÜÜÜÜÛÚÚØØØ×ÖÔÓÕÓÓ×ÓÕÖ×רÙÙÙØ×ÖÖÓÒSSSSSSSSSSSSSSSSSSSSQSSSSSSSSSSSSSSSQSSSSS.5SSSSSSSSSSSÏÏÏSSSSÏÏÏSa]SÏÏÏÏSÏSSSSSSSSSE ;ESÉÏÏÏSŠŠª¼ÏÏSFÏÏÏÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚÚÚØ×“““ÔÔÔ“ÃÓ“ÃÓÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÓÑÓÑÓÓÔÔ×ÔÖ×××ר×ÛÚÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØ×ÖÕÔƒ“####################““ÔÕÕÕרØÚÚÜÜÜÚØÚ×Ô×Õ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓÓ×××ÚÚÜÜÚÚÚØØØØØØØØØØÚÜÜÛÜÜÜÜÜÜÜÛÜÚÚØØ×Ö××ÕÕÓÕÕ×רÙÙÙÙÙØ×ÖÕÓ“SSSSSSSSSSSSSSSSSSSSSRSSSSSSSSSSSSSEBSSSSSE)FRSSSSSSSÏSSÏÏÏÏSSSÏÏÏÇaSSÏÏÏÏÏSSSSSSSSSSSSÏ,·ÏÏÏS\—ŸªÏÏSS›ÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÛØØ××ÕÕÔÔÔÔ“Ó““ÓÓÑ““ÃÃÃÃÃÃÃÃÃÃÃÓÑÓÓÑÓÓÔÔ×××רØÚÚÚÚÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØÙ×ÖÕÕƒ“######################““ÒÕÕÕרÚÚÚÚÜÚØØ××ÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓÓÕ×רÚÚÚÚÜÚÚÚØØØÛÛØÜÜÚÜÜÜÜÜÜÜÜÜÜÛÜÚØØØ×Ö““ÕÕÕ×ÓרÙÙÚÙÙÙ××ÓÓ““SSSSSSSSSSSSSSSSSSSSSSQ SSSSSSSSSSSSSSSSSSSSFBSSSSSSSÏSSSÏÏÏÏSSSÏÏϪSSSÏÏÏÏÏSSSSSSSSSÏÏÏÏSS( 0ÏÏSfS]—¼ÏSSFSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØØØØ×““ÔÔÔÔÓÓÓÓÓÓÓ’“ÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÑÓÓÔÔ××רØÛÚÚÛÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÕÓ““#########################“ÒÓÕÕ×רÚÚÚÚÚØ×ÕÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÑÒÓÓÕ××ÚÚÚÜÜÚÚÚÜÚÚÚÚÚÚÚÛÛÛÛÜÜÜÜÜÜÜÜÛÜÚØØ×××Ô“ÕÕÕ×××ÙÙÙÚÙÙÙ×ÖÓÓ“SSSSSSSSSSSSSSSSSSSSSSSSESSSSSSSSSSSSS-SSSSSSSSSSSSSSÏÏÏÏSSSÏÏÏÏSSSÏÏ—ÏSSSSÏÏÏÏ••••SSS•ÏSÏÏÏSSSS0nSSSSÆ— SSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚÚØØ“““ÔÔÔÔÔÓÓÓÓÓÓ“““’““ÃÃÃÃÃÃÃÃÃÃÓÓÓÓÓÔ××רÚÚÛÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÖÓ“###########################“ÓÕÕÕ××ØØØØØ×ÕÕÓÓ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÕ×Ô×ÚÚÚÚÜÜÜÜÚÚÚÛ“ÚÚÛÛÜÜÜÜÜÜÜÜÜÜÚÚØÚØ××ÕÕ“ÕÕÕÕ×××ÙÙÙÙÙ×ÖÖÕÓ^SSSSSSSSSSSSSSSSSSSSSSSSSBRSSSSSSSSSSSSFSSSSSSSSSSSSSÏSÏÏÏSSSSÏÏÏSSSSŸÏÏSSSSÏÏÏ•SSSÏÏÏSSSSÏÏÏSSSSϾ,SSSÏÏ ‹cSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØØ××ÔÔ“““ÓÓÓÓÓÓÓÓÓÓÑГÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔ×ÖרÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛØØØØÖÓÕ############################““ÓÕÕÕÕ×ר×××ÕÓÓÒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÑÓÓÓÕÕ×רØÚÚÚÜÜÚÚÚÜÛÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÚØØØ×ÔÔ“SÓÕÕÕÕ×××רÙ×ÖÓÖÓÓ“SSSSSSSSSSSSSSSSSSSSSSSSSS,RSSSSSSSSSSSS E SSSSSSSSSSSSSÏSÏÏÏSSSSÏÏÏSSS~ÏÏÏSSSSÏÏ•SSSSÏÏÏSSSSÏÏÏÏSSSÏÏ®%SSÏÏϽŸQÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØØ××ÕԓÓÔÔÓÓÔÔÔÓÓÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÔÔ××רÚÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ×ÖÕÓ#############################“ÔÒÕÓÕÕÕÕÕÕÕÕÓÓÒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““““ÓÓÓÕÕ×××ÚÚÚÚÜÚÚÜÛÛÛÛÛÛÜÜÜÜÜÜÜÜÜÜÛØØØ×××SSS““ÓÓÕÓÕ××××ÖÖÓÕÔÒƒSSSSSSSSSSSSSSSSSSSSSSSSSSSFSSSSSSSSSSSS Q-SSSSSSSSSSSSSÏÏÏÏÏSSSSÏÏÏSSFmÉÏÏÏS••ÏÏÏÏSSSÏ•ÏÏSSSÏÏÏÏSSmÉÏÏÉ C·ÏÏÏ‹—ÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÚÚØ×××Ô“ÃÃÃÓÔÔÔÔÔÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÕÔרÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚ×××ÕÖ“--ƒƒƒ#########################“ƒÒÒÓÔÔÔÕÓÕÓғ݃#“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÕÕ××רØÚÚÚÜÛÛÛÛÙÜÜÜÜÜÜÜÜÜÜÛÚÚØ×××ÔSSSSSSS“ÓÓÕÕÕÕÔÔÑÔÒÒ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSFSSSSSSSSSSSSRS ESSSSSSSSSSSSSSSÏÏÏSSSS–––•—aS•••SSSSÏÏÏSSS•ÏÏÏSSSSÏÏÏSS——ÆÏÏB­ÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÚÜÚ×××ÕÔÃÃÃÓÔÔÔÔÕÔÔÓ“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÔÔ×רÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÙ××ÖÖÓ“ƒÒÒƒƒ##########################““#““ÓÓÓÓÓÒÒÝ݃#ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÓÓÓÕ×Ô×ÚÚØØÚÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÛÚÜÜØ×ד““SSSSSS“ÓÕÓÓÒÔÔ““ÒÒ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSS RSSSSSSSSSSSSSSÏÏÏSSRSÏÏÏ{˜SSSSSSSSSÏÏÏÏSS••ÏÏÏSSSÏÏÏÏn—aÏÏÏÏSSSÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÜÚØ×ÕÕ“ÃÃÃÃÃÓÔÕÔÕÔÔÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÔÔÔ×רÚÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÙ××ÕÕÓÒÒ“ƒ#################################ƒÒÒÒÒÒÒ““##“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݓѓ“ÓÔÕ××ÚØÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØ××ÔÔ““SSSSS““ÑÔÑÔ“SSSƒÒƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSE,SSSRSSSSSSSSSSSSSSSÏÏÏÏ–SSÏÏÉ´\ÃÃÃÃÃÃSSSÏÏÏÏSS•ÏÏÏÏSSSÏÏÏÏ]™SÏÏÏÏSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜØØØ×ÕÕ““ÃÃÃÓÕÕÔÔÕÕÔÔÔ“ÃÃÃÃӒ“Ó“ÃÓÔÔ××ÚÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÜÚÚ××ÖÕÓÓÒÑÒ!################################“ƒÒÒ“ƒ““###ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓ““Ô××ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚØ××ÕÔÓÓ“““SS“ÔÒÒÍ“SSSS““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSF)SSSSSSSSSSSESSSSSSSSSSSSSSÏSSSÏÏÏÏSSSÏS^—ÃÃÃÃÃÃÃÂÃSÏÏÏÏSSSÏÏÏÏSS•ÏÏÏÏS—SÏÏÏÏSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØ×ÕÔÔ“““ÃÓ×Õ×××ÕÕÔ“ÃÓ“ÓÓÓÓÓÓÓÓÓÓÔÔÔÔ×רÚÚÚÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÚÚ×דՓÒÒÒу#################################ƒÒÒƒ######-ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓÔÔרÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜØØ×ÕÔÔÓÓÓÒÓÒ“^ÒÒ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSS5SSSSSSSÏÏÏÏSSSÏÏÏÏSSSÃèÂÃÃÃÃÃÃÃÃÃÃ^^ÏÏS•SSÏÏÏSSSSÏÏÏS—SSÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØØ××ÕÕÕÕ“““Õ××××××ÕÕ““ÔÔÔÔÔÔÔÔÔÔÔÔ“ÔÕÔÔ×ØØØÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚ×ÖדÓÓƒÒÒÑÒƒ-!##############################“у#######!ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÔÔ×ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÚØ×ÕÔÔÓS“ÒÓÒÓ“Ô“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,ESSSSSSSSSSQSSSSSSFSSSSSSÏSÏÏÏSSSSÏÏS^ÃÃÃÃÁÃÃÃÃÃÃÃÃÃÃÃÃÃSSSSSSÏÏÏS††SÏÏÏ]‹]SSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÚØØØ×Õ×××Õ×ØØØØØØ××××ÕÕÕÕÕÕÔÕÔÕ×ÔÕ“ÕÕÕÕ××ØØØÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ×××Ó###-ÒƒƒÒуƒ############################!“у#######-ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÔ×רÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØ××ÕÔ“SS“ÓÓÓÔÔÍ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS5ESSSSSSSSSSSSSSÏÏÏSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃS•S••†–SS–SÏÏSb—ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÚØÚØØØØØØØØØØØØØÚØØØ×××××××××ÕÕÕÕÕÕ“““““×ØØØÚÜÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÚ×Ö×Ö####ƒÒ“#“Òƒ############################ƒÑÑ“######-“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÔÔ××ÚØØÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÙÚØ“““SSSS“ÓÓÔÔ““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.SSSSSSSSSSS SSSSSSSSS EQSSSSÏÏSÏSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÂSS^^S^•^S^ÃÃßÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜØÜÜÚÚØØØØØØÚÚÚÚØØØÜÚØØØØØØØØØ×××דÓÕ×ÕרØÚÚÜÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚ××ÕÓ#####ƒÒ##ƒƒ############################““““#######ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““Ý“ÕÔרØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÚØ×ÕדSS^ÓÓÓÔ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSS SSSSSSSSSSF)0ÏSSSSSÏS^ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÙÙÚÚÚØÚÚØØØÜÜÚÚÚØÚÚØÜØÚÚØØØØØ“ÃÃÕÕ““ØÚØÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÚ××ÖÓƒƒ!--#############################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÑÑ““ÔÔרÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÚÙÚØ×Ø×““ÔÔÓ“Ô“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSESSSSSSSSSSSEBSSSSSSSSSSSÏÏSÏÏ^ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÕÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÙÛÜÛÜÜÜÜÙÙÜÜÚÜÜÜØÙÙÙÜØÚØØØØØ×“×“×““ØÚØÚÜÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚ××דԃ“ƒƒ-#############################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÑÓÔÕרÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÙØØØ××ÕÕÔÓ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,SSSSSSSSSSSSQSSSSSSSSSÏÏÏÏÏÏSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜÜÜÜÜÜÜÚÚÜÜÜÜÜÜÜÜÜÛÚÜÜÚØØØ×××“ØØ“ØÚÚÚÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚ××ÖÕ“ÓÒÑÒÒƒ############################################“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÑÓÔÔ×רØÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÜØÙÙØØ××ÕÔ××ÓSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSÏSSSSÏÏSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÕ••ÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÙÚÚØÚØØØØØØØØÚÚÜÚÛÛÛÛÛÛÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØÖÓÓÓ““ƒ“-#############################################ƒƒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓ“Ô××רÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÚØÚÚØÙØ×ÕÔÓ““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSRSSSSSSSSSSSSSSSSSSSÏÏÏSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÛÜØØØØØØÙÛÛÚÚÛÜÚÛÛÛÚÜÜÚÚÛÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØÖÕÕӓ҃̓-###############################################ƒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕ××ÚÚÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÙÙÙØ×ÕÕÓÓ““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSR)SSSSSSÏÏÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÛÛÚÚÚÚÚÚÚÚÚÚÚÛÜÚÚÚÜÚÜÚÚÚÚÜÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØÖÓÓÒÓ“ƒƒƒƒ################################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““Ô×רØÚÚÚÜÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜÚÚÙØØ×ÖÕÓÓ“^SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.ESSSSSSSSSSSSRSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÜÛÛÚÚÚÚÚÚÛÛÛÛÚÛÚÚÚÚÚÚÚÚÚÚÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚ×ÖÕÓ“ÓÒƒ-#ƒ#################################################“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““Ô××רÚÚÚÚÚÚÜÜÜÚÜÜÜÚÜÜÜÜÚÚÚÚÚÚÚÚØØØ×ÓÔÓÓÓ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS,FSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÛÛÛÛÛÛÚÛÚØÜÚÚÚØØÚÚÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚØ×ÓÖÓÒÒ““####################################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÔÔ×××ØØØØÙÚÚÚÚÜÚÜÜÜÚÚÚÚÚÚÚÚÚØÚØÚØØØ×ÔÖÖÓÓ“““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSÏSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÛÚØÚÚ““ØÚÚØÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ×ÓÖ““ƒ######################################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÔÔ××××ØØØØÚÚÙÚÚÚÜÚÚÚÚÚÚÚÚÙÚØØØØØØØ×××ÔÓÓÖÓÓÓÓ^^SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSS)SSSSÏÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØÚØ×““×ØÚØÚÚÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØ×ÓÖ““-######################################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÔÔ××ÕרÕ×ØØØÚÚÚÚÚÚÚÚÙÚÙÙÙØ×××××ØØØÕ××Õ×××ÖÕÕÓÓÓÓÓ““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)SSSSSSSSSSSSSESSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚÚØ×ד“××ØØØÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜØÚØ×ÓÖ“““######################################################“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÓÓÔÕÕ××Õ×ד“ØØ“ÚÚÙÚÚÚÙØÙÙ×××××ÕÕÕÕÕÕÕÕÕÕÕ×××ÖÕÓÓÓÓÓÓÓ““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSF,SSSSSSSSSSSSS,ÈÏSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØÚØØ××Ô“×××ÚÚØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØÖ×ÓÓ““!#####################################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÔÕ××דƒ!#׃Ø×ØÚÙÙÚÙÙÙר×Õ×ÕÕÕÓÓÔÓ“ÔÔÔÓÕÕÕÕÕÕ×ÓÖÖÓÔÔÔÓ“““““““““ÓÓÒ““““^SSSSSSSSSSSSSSS SSSSSSSSSSSSÏÏÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØÚØ×ד““×××רÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜØØØ×ÕÓ““Òƒ#####################################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““’ÓÔÔÕ×ÕÕÕ““““ƒƒ×רÚÚÙÙÙÚ“×××ÕÕÓ““ÕÓƒƒ““Ô“ÓÓÕÕÕÕÕÕ××××ÔÔÔÔÔÔÔÔÓÓÔÓÓÓÓÓÓÓÓÑÑÑSSSSSSSSSSSSSSBSSSSSSSSSSSÏS ÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØØ×“ÃÃÓ××רØÚÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛØÚ×Ö“ÓÓ-!ƒ####################################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÔÔÔÕÕ××××Փד““רØÚØÙØØƒƒƒƒÕÕÓÓ“!#Òƒ“####“ÔÒÓÓÕÓÕÕÕÕÕ××ÖÔÔÔÕÔÕÕÕÕÕÕÕÕÔÓÓÓÓÒSSSSSSSSSSSSSS SSSSSSSSSSÏSSEBÏÏÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØØØ××Õ““Õ×רØÜÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ×ÖÔÓ““-####################################################ƒƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÝÝÓÓÔÔÕ××ØØØØØØ×“Õ××ØØØÙØØ×××ÕÕÓÓÓÓÒƒƒ“ƒ“######“““ƒ“ÕÕÕÕÕ×Õ×××××××ÕÕ×××ÕÕÕÕÕÔÓÓÓSSSSSSSSSSSSSS,RSSSSSSSSSÏÏÏSSÏÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÜÛØØ××ÓՓÕ×ØØØÚÛÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚ××Õ““ÒÒƒ###-##############################################!ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““““ÓÓÓÔÕÕ×רØÛÛØØÚØØØØØÙØØØØØ×Õ×ÕÕÓÓ“ÒÒƒ“###############ƒÓÓÒÓÕÕÕÕ×××ØØØØÙÙÙÙÙØØ××ÕÕ“““ƒSSSSSSSSSSSSRSSSSSSSSSSÏÏÏSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÙØØ×ד“×“Õ“ØØØÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚ××ÕÕÓ!ƒÒƒƒƒÒ##############################################-ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÑÓÓÔÔÕ××ØØØØÚÚÜÜÚØØÚÙÙÙÙØØ×××ÕÕÓÓÒƒÒ“““#################ƒÔÒÒÓÔÕÕÕ××ØØØÙÚÙÚÚÚÙØØ×ÕדÓÓ“SSSSÃÃSSSSS  SSSSSSSSSSSSSS%SÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÛÚØÚØØ××Õ“×ØØØÚÚÚÛÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜ××ÕÕÒƒ#ƒƒƒƒ#############################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÔÓÓÓÕÕרØÚÚÚÛÛÛÚÚÜØØÚÚÚÚÙØØ××ד““Ô“““######################““ÒÒÓÔÕÕÕØØØÚÚÚÚÚÜÚØÚØ××ÕÔÓ“SÃÃÃÃÃÃSSSSS),SSSSSSSSSSSSSSS0SSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓѕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚØØØØØØ“Ø“ØØØÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚ××ÔÕÓ!-#########################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÔÕ×ØÛØÚÚÚÚÛÛÛÜÜÜÚÜØÙÚÚØÙ××ÕƒÕ#############################““ÒÔÓÔÕÕØØØÚÚÚÚÚÚÚÚØØ××ÕÕÓÓÒÒÃÃÃÃSSSSSRESSSSSSSSSSSSSSSÏSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÃÂÑÑ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚÛÚØØØØØÚØØØÚÛÛÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØ×ÕÓ“ÒÒ#######################################“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÒÓÓÓ×ØØØÚÚÜÛÛÛÜÜÜÜÜÜÜÜÜÜÚÚØØ×ÖÖÕ“###############################“ƒÔÔÔÕÕÕ××ØÚØØÚÚÚÚÚ××ÕÕÓÓÓÒ“ÃÃSSSSSSS^ÃÃÃSSSSSSSSSSSSÏn›SSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ’“ÑÓÓÑÑÓÑ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÜÚÚØØÚÚØÜÜÚØØÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÕÕÓƒ##########################################“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÒÓÓÓרØÚÚÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÙÚ××ÖÖÓƒ##################################“ÒÓÔÔÕÕ××ØØØØØØØ××ÕÕÕÓÓÒ“ÃÃSSSSSÃÃÃÃÃÃÃSSSSSSSSSSÏÏÏSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÑÑÓÓÓÑÓÓÑÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÜÜÜØØÚÚÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜØ×ÕÔÓƒ#####################################################ƒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓÓ×ØÚØÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚ×ÖÖÓƒ###################################“ÔÓÒÔÔÓÕÕ××רØ××××ÕÕÕÓÓÒÒ““ƒƒƒƒÑƒÃ••ÕÃÃSSSSSSSSÏSSSϤ`SSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÑÐÑÑÓÓÓÑÓÓÓÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÙÜÜÙØÜÚÜÜØÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØ×ÕÕ“-######################################################-“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓÓרØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÕÕÔÔƒ####################################ƒƒÒÒÓÒÓÕÕÕÕ×××ÕÕÕÕÓÓÓÒÒÑÒÑÑÑÒÒ“ÃÃÃÃÃÃÃÃSSSSSSÏÏS]SSÏ;›SSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÑÓ““ÓÓÓÓÓÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÜÜÜÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜØØ×ÕÕÓƒ-!#####################################################-“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÔרØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙ×ÕÖÓ#########################################ƒ“ÒÓÒÓÔÔÔÕÕÕÕÓÕÓÓ“““ÒÒÑÍÒ“ÃÃÃÃÃÃÓ““SSSSÏSÏÏϼ˜]SϾSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÓÓÓÓÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ××ÕÓÓÒ!!ƒ“!!-#############################################-!“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÕÓרÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØ×ÕÕÔ“##########################################ƒÔ“ƒÔÔÓÓÓÔÓÓÓÓ“SSSSƒƒƒƒÃÃÃÃÃÃÃÓÑÑÑ“ÏÏSSSÏÏÏ—|SSÉ·ÏSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÓÓÓÓÓÑÓ“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ××ÕÓÓÒÒƒƒÑƒÑÒ############################################-“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÕÓרØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØ×Ö×Ó!##############################################-ÔÒÒÓÒÒ““SSSSSSSSSSSÃÃÃÃÃÃÓÑÑÒ“ÏÏÏSSSÏÏÆ´—SSSÏÏÏSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃГ“ÓÑÓÑÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚ××ÕÔƒ-ƒÒÒÒƒƒ############################################-“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÕÔרØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÕÕÒ“################################################“SƒÒ“““SSSSSSSSSSSSSÃÃÃÃÑÑÒÒSSÏÏÏSSSSÏÏÏ—SSSÏÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÐÑÑÑÑÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØØ×ÔÔÓÓ“!#################################################ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÕ××ÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØ×ÕÓÓƒ#################################################SS“Ò“SSSSSSSSSQ,SSSS““ÔÓÓÓÓ“SSÏÏÏÏSSSÏÏϼ—\SÏÏSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÑÑ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ×ÕÔ“““-#ƒ“##############################################ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݓғÕÕ×רÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙØÖÓÕÓ##################################################ƒSS““SSSSSSSSRSSSS^“ÓÓÕÕÕÕÓ““““Ñ“ÏSSSSSÏÏ{{SSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØØØÕÔÔÓ“-ƒƒƒ#-##ƒƒ########################################ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓÕ×רÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙ×ÖÕÓÓ###################################################“SSSSSSSSSSQESSSSÓÓÕÕÕÕ×ÕÓÕÔÓÓÑÑÃÃÃÃÃÃÃÃö—³ÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ••••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÚØÕÕÔ““Óƒƒ#-ƒƒ#ƒƒ!#######################################ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕ×רÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙ×ÖÕÓÒ“##################################################ƒSSSSSSSSS SSSS“““ÓÕÓÕÕÕØ×ÕÔÔÓÓÒÒÃÃÃÃÃÃÃÃÃÃûŸÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÕ•••ÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÚÚØØ×ÔÔÓ“-!!ƒÑƒ!“у#######################################ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕ××ÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙ××ÕÓÓƒ“###################################################ƒSSSSSS.SSSSSS“ÒÓÖÕÖרØÙØ×ÕÔÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ••••ÃÃÃÃÕ••ÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÚÜØØ×ÕÕ-Ó““““Ñ!ƒÑ“########################################“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÕ××ÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙ×ÖÖÒÒƒ#####################################################SSSSE)SSSSSSSÔÓÕÖÖרÚÙÙØØ×ÕÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜØØØØ×Õ“ÔÓ““Ó“"“Ñ!########################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕ×ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÕÓÔÒ“#####################################################ƒSS,SSSSSSSS“ÕÕÕרØÚÚÚÚÚØØÕÔÓÓ“••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÛÜØØØÕÕÕÔÔÓ““Ñ““ƒ!#######################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕ×ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÕÕÓÔƒ#####################################################-! SSSSSSSRƒ“ÓÕÕÖ×ÙÙÚÚÚÚÚØØ×ÕÕÓÒ“S•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØØØÕÕÕÔÔ““ÓÓÑ“-######################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÕרÚÚÜÜÜÜÜÜÜÜÜÜÜÜÙÚÚØ×ÕÓÓ###################################################### !“SSSSSSS“ÒÓÓÕ××ÙÙÚÚÚÚÚÙØ××ÓÕÓÒ“S•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÜÚØÚØØ×ÕÕÔÔÓ““ƒ######################################ƒƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÒÓÓÕ××ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÚÚØØ×ÓÖÓ###########################################################“SSS“ÒÒÒÓÓÓÕ×ÙÙÚÚÚÚÚÙÙ××ÕÕÓÑ“SSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØØØØÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜØØÜÜØØ××ÔÔÔ““"--!!!#################################“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݓѓÓÓÕ×רÚÚÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÕÕÓÒ###########################################################ƒSSS“ÒÒÓÓÕ××ÙÙÙÙÚÙØØÙ×ÕÕÕÓÓÓSSSS••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØÚÚØØØØ“ØØØÚÜÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÛÜÚÚØØÕ×ÔÔÔӓуÑÑÑ################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““““ÓÕÕ××ÚÚÚÜÜÜÜÜÜÜÜÜÚÚØØ×ÕÕÓÔ############################################################SSS““ÒÓÓÖ×רÙÙÙÙØØ××ÕÕÓÓÓÒ“SSSSSS•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ’“““ÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØØ××××רØÜÜÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÚÜÜØØ×ÕÕÔÓÓƒƒƒƒ################################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓ××ÚÚÚÚÛÜÜÜÜÜÜÜÚÚÚ××ÕÓÓ“############################################################ƒSSSS“ÓÕÓÕ××××××ÕÕÕÕÕÓÓÒƒSSSSSSSS•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÐÓÑÑГ•ÃÃÃÃÃÃÃÃÃÃÕ••••••ÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÕ••••••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØÚØØ×Õ“×××ØØØØÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÛÚØÚØ××ÔÔ“Óƒ##################################“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕ××ÚØÚÚÛÜÜÜÜÜÜÚÚØ×ÖÖÓ“##############################################################“SSSƒÒÓÓÕÕÕ×××ÕÕÓÓÓÓÒÒ“SSSSSSSSSS†ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÐÑÐÐÐÑ“ÃÃÕÃÃÃÃÕ••ÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØØ×“Õ“Õ“×ØØØØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÜØ×××ÕÔ“--!!!-#############################“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÔÕרØÚÚÜÜÜÜÜÜÜÚÚ×××Õ““##############################################################“SSS““ÓÓÕÓÕÕÕÓÕÓÓ““ƒSSSSSSSSSSSSSSSR†ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ“ÐÐÐÓÐÃÃÃÃÕ•••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•••••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØÚØ“ÃÃÃÓ“ØØÚØØÛÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØØ××ÕÔ“““"ÑÑ“!###########################ƒƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÒÓÓÔÕ×ØØØÜÛÜÜÜÜÚÚÚ××ÖÕ“###############################################################ƒ“SSSSÒÒÓÓÓÓÓÓÓ“ƒSSSSSSSSSSSSSSS,QSSR––ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÓ“Ñ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØ×““Ó“רØÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÛÚÚØØ××ÕÔÔÓÓÓ“““-!#########################ƒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݓѓ“ÓÓÔ××ÚÚÚÜÛÜÜÚÜÚÚ××ÓÓ##################################################################SSSSÒÒÒÒÒÒÒ“SSSSSSSSSSSSSSSSSSSSSS•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØØ×““××ØØØØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜØ×××ÔÔÔÓÓÑÑÒƒ########################!“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÕÕרØÚÜÛÜÜÚÚÚÚ×ÖÖÓ##################################################################“SSSÒÒÒ“ÒÒ“SSSSSSSSSSSSSSSSB SSSSSSS––¼Á“ÑÐÐÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛØÜÚÚØØØØØØØÙÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÚØØ××ÕÔÔÓÓ““!!#######################-ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÕÕרØÚÚÜÚÜÚÚÚ×ÖÖÓ“#################################################################“SSSƒƒƒSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS“ÑÑÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚØÚØØÚÜØØØÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜØØÚØ××ÕÔÔÓÓÓу!#########!############ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÕÕ×רÚÚÜÚÜÚÚÚ××ÖÓ““#################################################################SSSSSSSSSSSSSSSSSSSSSS)SSSSSSSSSSSSSSSS“ÒÐÑ“ÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚØØÚÚÚØØÚÚÜÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜØÜÜØØ×ÕÕ““ÓÓ“ƒ“---!!!!“ƒ----!########ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÓÕ×רÚÚÚÜÚÚÚ××Ö“ÒÔ######################################################SSSSSSSSSSSSSSSSSSSSESSSSSSSSSSSSSSSS^ÒÒÒÓ““Õ•••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØÚÜÚØØÛÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÚØ×Õ““Ô““ÒÒÑÑÑ“ƒƒƒÒуÑÑÒƒ########ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÓÕÕ×רØÚÚÚÚÚ××××ÓÓ#####################################################“SSSSSSSSSSSSSSSSSEFSSSSSSSSSSSSSSSSS^“ÒÒÓÓÑÓ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÙÜÜÜÙÙÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚØ××ÕÔÔ“--““““Ò““#ƒƒÑу!########“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕÕ×ÚØÚÚÚÚ××××ÓÓ“##################################################“SSSSSSSSSSSSSSBSSSSSSSSSSSSS^^^S^“ÓÓÓÓÓÓÓÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÚØØ×ÕÕÔÔ“““ÓÓÑ“#####ƒÑ“ƒ########“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ƒÓÓÕ××ØØØÚÚÚ×דÔÓ##!!###########################################################“SSSSSSSSSSSS,-SSSSSSSSSSSSS^““ÒÓÓÓÓÓÓÓÓÓÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÛÚØØØ×ד““ÔÔÓÓÓ-!#####“““““!#####“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÓÕÕÕ×ØØØ×Ø×ÖÔÔÓ““Ñ“-#############################################################“SSSSSSSS.5SSSSSSSSSSSSSS““ÓÑÓÓÓÓÓÕÕÕÓÓÓÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÜÚØØØ×Õ“ÕÔÔÔÓ““!######ƒƒÑƒ######“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݓғÓÕÕ×××רØ××ÖÔÔÓÓ“Òƒ##############################################################SSSSQS BRSSSSSSSSSSSSSS“Ñ“ÑÓÓÓÓÖÖÖÓÓÓÑÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÙØØÚØØØØÕÕÔÔÔÓÓ“######ƒ“ƒ!#######ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÓÓÓÕÕ××רØ×ÖÔÕÓÓÓ““##############################################################ƒ^R QSSSSSS“ÓÓÔÓÓÖÕÕÓÓÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÛØØÚÜØØØØÕÕÔÔÓ“!#####“̓“#######“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÓÓÕÕ××Ú×××ÔÔÔÓ“-###########################################################!! SSSSSSSSSSSSSS3QSSSS“ÓÓÓÓÓÓÖÕÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÛÛÜÜØØØ×ÕÔÔÔÓ-!#####“Òƒ########“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÕÕÕÕר×××ÖÔÔÓÓ“############################################################“SSSSSSSSSSSSSSSSSSSSS“ÑÓÓÓÓÓÓÓÖÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÙÜÜØØØ×ÕÔÓ“"!################“““““ƒƒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓÓ×Õ×ØØØ×ÔÔÔÓ“-##############################################################“SSSSSSSSSSSSSSSSSSSS“Ñ““ÓÑÓÓÓÓÓÓÓ’ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÜÜÜÜØØØÕÕÔÓ“"########################ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““Õ××ØØØØ×ÕÔÔÓ““!############################################################“SSSSSSSSSSSSSSSSSSSS“““ÑÓ““ÓÓÓÑÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙØØØ×ÕÔÔÓ“########################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÕÕ××ØÚØØ×ÕÔÔ““#############################################################“SSSSSSSSSSSSSSSSSSSSSS“ÑÓ“Ó“ÓÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÛØØØ×ÔÔÔ“-#######################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÓÕ××ÚØØØØ×ÕÔ“ƒ!!###########################################################“SSSSSSSSSSSSSSSSSSSSSS“Ñ“SSS“ÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÜØØØÕÕÔÓ“-!!-!##################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕ×ØØØØØØÕÕÔ“""!##########################################################“SSSSSSSSSSSSSSSSSSSSS“Ñ“SSSS“ÑÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙØØØØ×ÔÔÓ““-ÒÒƒ###############!!ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÕ××ÚÚÚØØ×ÕÔÓÓ““#########################################################“SSSSSSSSSSSSSSSSSSSSSSSSSSSS“ÑÑÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙØÚØ××ÕÔÓÓ““-###############!““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÔ××רØÜØØ×ÕÔÓÓƒ######################################################!!“SSSSSSSSSSSSSSSSSSSSSSS““SSS“ÑÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ××ÕÓÓÓ““!##############ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÔÔ×רØÚØÚØ×ÕÔÓÓ####################################################--ƒSSSSSSSSSSSSSSSSSSSSSSS“’ÐÐÑÑÑÑÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÜÜÚØ××ÔÔÓÒÒƒ##############“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÓÔÕ×ÚØÚÚÚÚ××ÔÔÓ“!################################################!““SSSSSSSSSSSSSSSSSSSSSSSS“ÐÐÑÑÑÑ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØÚØ×ÕÕÓÒÒƒ“#############““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“Ô×רØÚÚÚÚØ×ÕÔÓÓ“#############################################-“““SSSSSSSSSSSSSSSSSSSSSSSSSSГ“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÛÚܨד““--!!!##############ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÕÔרÚÚÚÚÚÛØÕ×ÔÓÓ############################################““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÜÜØ×דÓÓ““!##############“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÕרØÚÚÚÚÛÚØ×ÕÔÓÓ!#########################################““SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜØØØ××ÕÔÔÓÓÑ-!#!##########ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÓÔÔרØÚÚÛÛÜÚÚØ××ÓÓ“#########################################ƒ“SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØØ×ÕÔÔ“Ó““Ò“###########“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÔÔרØÚÚÛÛÛÚÛØ××ÕÓÓ-#########################################ƒSSSSSSSSSSSSSSSSSSSSS)ESSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚÚØ×Õ×ÔÓÓуƒ“###########“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÔÔרØÚÜÛÜÜÚÚØØ×ÕÔÓÒ##########################################SSSSSSSSSSSSSSSSSSSE 5SSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÚÚØØ××ÕÔÓÓƒ““###########“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃“ÒÓÔÔרÚÚÜÜÜÜÛÚØØ×ÕÔÓÓ##########################################“SSSSSSSSSSSSSRS.5SRSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜØÚØ××ÔÔÓƒ##############ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÓÔÔ×ØÚØÛÜÜÜÛÜØÜØÕ×ÔÓ##########################################ƒSSSSSSSSSSSSBESSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÚÚÚÚÚÚÚÚÚÜÚÜÜÜÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ×ÕÔÓ“!#############-ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÔÕרØÜÚÜÜÜÜÛÚÚØ××ÔÓƒ-#######################################!“SSSSSSSSSE.SSSSSSSSSSS^ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚÚØÚØÚÚÚ×ØØØÚØÚÚÚÚÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚ××ÔÔÓ-#############!ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÔÕרÚÚÚÛÜÜÜÛÜØÚ××ÕÓÓƒ!!#####################################-SSSSSSSF 5SSSSSSSSSSSSS^ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØÚÚ×××Ô×××Õ×××××××××ØØØØØÚÚÚØÚÚÚÚÚÜÚÚÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚØØ×ÔÔÓ““############!ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÒÓÕÕרÚÚÚÜÛÜÜÚÚØØØÕÔ“Óғу################################-ƒSSSSS.BSSSSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØ×Ú×Ô×ÕÕÕÕÔÔÕÕÕÕÕÕÕÕÕÕ×××××רØÚØÚÚÚÚÚÚÚÚÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚØ×““Ó“"#############ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““ÓÓÕרØÚÚÜÜÜÜÜØØØØ×“-“ÒÒƒƒ###############################ƒSRSS-BSSSSFSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÚÙ×××ÔÕÓÕÓÓÓÓ““ÓÓÓÓÓÕÕÔÕÕÕÕÕÕ×××××××ÚÚØÚÚÚÚÚÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙØÜØ×ÕÔÔÓ“-############ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÑÒÓÓÕÕרÚÚÚÜÜÜÚÜÜØØ×ÕÓ“ÓÒÒƒ###########################!!#KSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÏÏÏÏÏÏÏÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙÚ×××ÔÔÓÓ“ÃÃÃÃÃÃÓÓÓÓÓÓÓÓÔÔÔÕÕÕÕÕÕ××Ô××××××ÚÚÚØÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÚØØ×ÕÔÓÓ“############ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÓÔÕÕרÚÚÚÜÜÜÚÚÚØ×ÕÓÓÓÒƒ############################ KEFSSSSSSSSSSS QSSSS^ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÏÏÏÏÏÏÏÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚÙÙ××ÔÔÔÓ“ÃÃÃÃÃÃÃÃÃÃÓÓ“““““Ó““ÓÓÓÓÓÔÔÔÔÕÔ××××××ÚÚÚÚÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ×ÔÔÓ““!###########ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݓғÔÕ×רÚÚÜÚÚÚÚÚØ×ÕÓÓÓ“#################################SSSSSSSSSSSSSSSSSS^ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÏÏÏÏÏÏÏÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÙÙ×ÖÖÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÓÓÓÓÓÓÔÔÔÔÔÕ××××ÚÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÚÚØØÕÔÓ“-###########!ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“““ÓÕÕÕ××ØØØØÚØØ×ÕÕÓÓÒ“#############################!--ƒSSSSSSSSSSSSSSSS^ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÏÏÏÏÏÏÏÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÙÙ×Ö×ÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“““ÓÑ“““ÔÔÔÔÕÕ×××ÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØ×ÕÔÓÑ-!##########ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݓғÕÓÕ×רØ××××ÕÕÓÓÓÒ#############################!“SSSSSSSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÏÏÏÏÏÏÏÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÙ××ÓÔÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÃÃÃÃÓÓÔÔÕ×××ÚÚØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ×Ô““Ó“"#########“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÒÒÓÓÓÕÕÕÕÕÕÕÕÕÕÕÔÒÒÒ#############################“SSSSSSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓѓѓ“““““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚ××ÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔÔÕ××××ÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÚØÚ×ד“ÓÓÑ#########““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ÑÑ“ÒÓÓÓÓÕÕÔÕÔÔÓÓÒÒÒ“#############################SSSSSSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÓÓÓÑÓÑГÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•••••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØ×Ö××Ó“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÓÔÔÖ××ÚÚÚÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÛØÚØ×ÕÔÓ“““###########““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝݓѓ““““ÓÓÓ“ÓÓÒÒÒƒÒƒ“###############################SSSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ““ÃÓ““ÓÓÓÓÔÓÓÓÑÐÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÜÚÚÚØØ×ÖÓ×ÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÔ×ÖרÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ×ÔÕÔÓÑ“#############ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““Ý““““““ÒÔÔÒ“#################################ƒSSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÓÓÓ““ÓÓÔÓÔÔÔÔÔÓÓÓÓÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÚÚÚÚÚ×××ÖÓÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔ××ÚØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØ×ÔÔÓÓ-#############ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“####################################“SSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÐÓÓÓÓÔÔÔÔÔÔÔÔÔÔÔÓÓÓÑÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚØÚÚ××Ö×ÖÖÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÔÔ×רÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚØ××ÔÔ“!###########!#“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“#####################################ƒSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ’ÓÓÓÔÔÔÔÔÖÕ×ÔÔÔÓÓÓÓÓÓÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÜÚÚ×××ÖÖÓÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÔÔ××ÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØ××ÔÓ“#############“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“####################################“SSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔÔÔÖÖÖ××ÔÔÔÓÓ““ÓÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÛÚÚ××××ÓÓ“““““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔ×רØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÛØØ×ÔÔÓ“#############“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“#####################################“SSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔÔÖÖ×Ö××ÕÔÔÔ““ÃÃÓѓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚØ×××Ô““““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔרܨÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØØ×ÕÔÓ““############ƒ“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“######################################ƒSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÔÔÖÖ×××××ÔÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛØØ×ד“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔרØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ××ÕÔÓÓ“############ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃########################################ƒSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔÔÖ×××××ÕÔ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÛØØ×“ÃÃÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔרØÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØ××ÔÓÓ“############-ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“#########################################“SSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÓÕÖÔ×××××ÕÔ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØÛØ×ד““’Ó“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÔÔÔØÚØÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚ×××ÔÓ“#############“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃ƒ########################################-SSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÂÓÔÔÔÔד““××Ô“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚÚØ×““ÔÓÓÑÒ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔרÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØÕÕÕÓ“““###########“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“#######################################-ƒSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÑÑÓÔÔ×דÓ××ÕÔÔÔÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚÚØØ×ÕÔÔÓÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÕרØÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÚØ××ÕÓÔ““############“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ######################################-“SSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÑÓÔÔÔ×ØØ“ØØ×ÕÔÔÔÃÃÃÃÃÃÃÃÃÃÂÃÃÃÃÃÂÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØØ××ÔÔÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÑÓÔÔÕØØØÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØÚØ×ÕÓÓ““"###########!ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃######################################“SSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÔÔÔ×ØÚØØØ“×ÕÕ“ÃÃÃÃÃÓÓÑ“ÓÓ““““ÓÓÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚØÚØ××ÔÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔÔ×ØØØÛÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÜØØØ×ÕÕÓÓÑ““#########-ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“####################################-“SSSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔ×ØÚØØØØØÕ×Õ“ÃÃÃÓ’ÑÓÓÔÔÓÓÓÓÓÓÓÓÓ““““““••ÃÕ•••ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝ݉‰‰‰‰‰‰ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÜÜÜØØ××ÔÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔÕØØÛÜÙÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÜÚØØ×ÕÓÓ“““########-“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃###################################!““SSSSEEE-SSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“Ô×ÕרØÚÛÛØØØ××ÕÕÔÔÔÔÔÔÔÔÔÔÕ××ÔÔÔÔÓÓÓÓÑÑ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝ݉‰‰‰‰‰‰ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚØØ×ÖÔÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÓÔÕרÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÜÚÙØÖÕÓÓ“"########“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“ƒ################################&,BSSSSSSS*SSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔ×רÚÜÚÚÚÚØØØØ×××××ÕÕ××××××××ÖÖÔÔÔÓÓÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝ݉‰‰‰‰‰‰ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚÚÚØ×××ÔÓÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔÕ×ÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÜÜÚÚÚÚØ×ÕÓÓÔƒ#######ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“####################################!SSSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“Ô××ÚÚÚÜÜÚÜÚÚÚØØØØØØØØØØØØØØØ×××ÖÔÔÓÓÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝ݉‰‰‰‰‰‰ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚØØ×××ÔÔÓÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔרÜÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÜÚÜÜÜÚÚÚØ××ÓÓÓÔ#######ƒƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃##################################!-“SSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÖרÚÚÜÜÚÚÜÚÚÚÚÚØÚÚÚØØÛÚÚØØÚØÚ××ÔÔÔÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝ݉‰‰‰‰‰‰ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚÚÚØ×××ÔÔÓÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÑÓÔÕרØÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÚÚÜÚÚÚÚÚÙ××ÕÓÓÓÑÒ!######ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃###################################ƒ“SSSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔ××ÚØÚÜÜÜÜÚÜÜÚÜÚÚÚÚÚÚÚÚÚÚÚÚØØ××ÔÔÔÓÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØÚØ××××ÔÔ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔÔרØÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚÚØÚÚÚÚÚÚØ××ÕÓÓ““Ò-!######ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““###################################“SSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔ××רÚÚÜÜÜÜÜÜÜÜÚÚÚÜÜÜÜÚÚÚÜÚÚØØ×ÖÔÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÛÚØÚØ×××Ô““ÃÃÃÃÃÓ“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÃÃÔÕÕרØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÛÛÛÚØÜÚÚØØØÚØ××Ö×ÓÓ#“Òƒ######ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ-################################““SSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃӓ“ÓÓÔÔ×ÔÖÙ×ÚØÚÚÚÚÚÚÚÚÜÜÜÚÜÜÜÚÚÚÚÚØÚ×ÖÔÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØÚדÃÃÃÃÃÃÓ““Ñ“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“““““ÕØÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÚÜØ“ÚØØØØ××ÖÖ×Õ“##ƒƒ######ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ################################“SSSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÑÑÓÓÓÓÓÔÔÔÔ××××ÚÚØÚÚØÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚÚ××ÖÔ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØØØÃÓ“““““Ó’ÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÃÃÃÃÃÃÃÃÃÃÓÓÓÓÔ““רØÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÛÛÚÚÚ““ØØ××××ÖÖ×ÓÓ#ƒƒ“######ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃ƒƒ################################“SSSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÓÓÓÓÔÔÔÔÕ××Ö×××××××ØØØØØØØÚØØÚÚÚÚÚØØ×ÖÔ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚØØ““ÔÔÔÔÔÓÓÓÑ““ÂÃÃÃÃÃÓ““ÃÓ““ÃÃÃÓ“ÃÃÃÃÃÓ“ÃÃÓÑГÓÑÓÑÃÃÃÓÓÓÔÔ×רÚÜÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÛÛÚÜØØ““×××ÖÖÔ×ÕÓÓƒÒÒÒƒ#####“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“##################################“SSSSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÑÑÐÓÑÑÓÓÓÓÔÔÔÔÔÔÕ×Ô××××Õ××××××××××ÚÚØØÚÚØ×ÖÔ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÛØØ××ÖÖÕÕÔÔÓÓÓÑÓÓ“““ÃÃÓÐѓ“ÓÑ“ÃÃÓÑÃÃÃÃÃÃÑ“ÃÓ“ÓÓÓ“ÓÓÑÓÃÃÃÓÔÔÕ××ØØØÚØÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÜÚØØÚؓؓ××Õ×ÕÕÓÓÓÒ“!ƒƒ#ƒƒ!##“ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃###################################“SSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÓ““ÑÓÑÑÓÑÓÓÓÓÓÓÓÓÓÓÓÔÓÔÔÔÔÕÕÕÕÕÕÕÕÕ××Ö××ÚØ×××ÖÔ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØØ××××ÔÔÔÔÓÓÓÓГѓÃÃÓÑÑÑÐÓÓÓ’ÃÓ“ÑÃÃÃÃÃÓ““““ÓÔÔÔÔÔÔÔÓ“ÃÃÃÔÔÕÕ×ØÚØÚÜÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØÚØØ××-ƒÕ×ÕÕÕÕÓÓÒƒƒ“-ƒ“-###““ƒ“#ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ-###################################“SSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÓ’ÑÑÑÑÑÑÓÓÓ“ÓÓÓÓÓ“““ÓÓÓÓÓÓÓÓÓÓÓÓÓÔÔÔÔÔÕ××××××Ö×ÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÛÚÚÚØØ××××ÔÔÔÓÓÓÓÓÑ“ÃÃÃÃÓÑÑÑÑÓÓÓÓÃÓÓÓ““ÃÃÃÓÓÓÔÔÔÕÕÕÕÔÔÕԓÓ“ÕÕ××ØØØÜÙÜÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÚØØØØØ×“"““““ÕÓÔÓÒÒÒƒ-ƒÑƒ#########ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ####################################“SSSSSSSSÃÃÃÃÃÃÃÃÃÓ“ÐÑÑÑ““Ñѓѓ“Óѓ“ÃÃÃÃÃÃÃÓ““ÓÓÓÓ“““““ÓÓÔÔÕ×××Ö××ÔÓÓÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØ××ÔÕÔÔÓÓÓÓÑ““ÃÃÃÃÃÃÓ“ÓÓÓÓÓÔÃÓÓÓÓÓÓÔÔÔÔÔÕÕÕ××ØØØØ××××ÕÕ×רØÚØØÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÜØØØØ××ÖÔ“““!ƒÔƒÒÒÒÒÑÒ##########-ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ݃#####################################SSSSSSSSÃÃÃÃÃÃÃÃÃÓÐÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔÕÕÕÕÔÓÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÜÚÚ××ÔÔ“Ó“Ó“““ÃÃÃÃÃÃÃÃÃÃÓÓÓÔÔԓÓÔÔÔÔÕÕÕÕ×ÕÕÕØØÚÚØØØØØØØØØØØÚÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØÚØ××ÔÕÔÕ“-!“Ò#ƒÒÒÒ##!!!!!###!ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ#####################################“SSSSSSÃÃÃÃÃÃÃÃÓÐÐÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔÔÔÕÔÔÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚØ×ÕÕ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔÔÔ×ÕÕÕÕÕÕ×Õ×Õ×ØØØØØØØÚØØÙÜØÚÚØØÚÚØÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚØØØ××ÕÔÕÓÓ“Ò####“ƒƒ-“ÍÍ““###-ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““#####################################“SSSSSSÃÃÃÃÃÃÃÃÓ“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÔÔÔÔÔÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØ×Õ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔÕ×Õ×Õ×ØØØØØØØØÚØÚÜÜÙÙÜÙÙÜÜÜÜÚØØØØÛÙÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜØÜÚØØ×ÕÕÓƒ“ÓÒ!####““#““ƒÒƒ###“ÝÝÝÝÝÝÝÝÝ““ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“#####################################““SSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔÔÔÔÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚØØ×“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔÕ××ØØØØØÚØØØÚÜÜÜÙÙÙÜÜÚÜÜÜÜÜÜÜÙÙÙÙÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÛÜÚØØØ××Õ“Ó““Ò“#####ƒƒ“##““###ƒÝÝÝÝÝ“ƒƒ##ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“######################################“SSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÓÓÔÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØØ×“ÔÓÃÃÃÃÃÃÃÃÃÃÂÃÃÃÃÓÓÔÔ×ØØØÚÚÚÜØÜÜÛÙÙÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÚÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÚØ×ד““Ó“““##!###“ƒ!#######ƒƒ########-ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ“######################################“SSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÔÔÓÔÓÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØØ×ÕÔÔ“Ó“ÃÃÃÃÓ“Ñ“ÃÃÓ“ÔÔÕ×ØØØØÛÜÙÙÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØÚØ×Õ“““!“Ò##““!-ÑÑ“ƒ################ƒÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ““######################################“SSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÓÔÓÓÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÚØ××ÕÔÓÓ““ÃÃÃÓѓÃÃÃÓÓÔÔÕØØØØÙÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜØÚ××ÕÔ“ƒ“Ò!-у-“Ñѓу-##############-ÝÝÝÝÝÝÝÝÝÝ““##########################################“SSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÓÔÓÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝSSSSSSSÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØÚØ××ÕÔÔÓ“ÃÃÃÃÑÓÃÃÃÓÓÔÔ×רØÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚØ××ÕÔ““ƒ!!Ó““ÓÑÒƒÑÑÒ###############ÝÝÝÝÝÝÝÝÝ““###########################################“SSSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÓÔÓÔÓÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝSSSSSSSÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÜÜÜØ××ÕÕÔÔӓÓÑÓ““ÃÓÔÔÕ×ØØØÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ××ÕÕ“Óƒƒ“ÓÓ““ÑÒÒÑÒÒ“##############ƒÝÝÝÝÝÝ““#############################################“SSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔÔÔÓÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝSSSSSSSÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÛÚÚØØ××ÕÕÔÔ“ÓÓÓ““ÃÓÔÔ×ØØØÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØØ××ÕÔ“““ÓÓÓÓÓÒÒÒƒ###############!“ÝÝÝÝÝ“#####ƒ“““##“###################################“SSSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔÔÔÔÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝSSSSSSSÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÚØÜØØ××ÕÕÔÔÔ““Ó“Õ×ÕØØÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØ××ÕÕ““ÔÔÔÓ““ƒÒƒƒ##############-ÝÝ݃ƒ“#############“#####“#“###########################SSSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔÔ×ÔÔÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝSSSSSSSÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÛÙØÚØØØÕÕ×ÕÕÕ×ÕרØÚØÜÛÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙØÚØØØØ×ד“ÕÔÔÔÓ“ƒ“Òƒƒ############ƒ“ÝÝ“######ƒ#########““######“##########################“SSSSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÔ×ÔÔÔ“ÃÃÓ“ÃÃÃÃÃÓÐÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÜÜÜØØÜØØØØØØØ×ØØØÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÙÜÜÚØØØØÕ“×ÔÔÔÓ-###“ƒ###############ƒ““####ƒ#############################################“SSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÕÕÔÔÕ““““Ó“ÃÃÓÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÜÜÜØØØÚØØØØØØØÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜØØØØØØ×ÕÕÔÔ-######################“###“###################ƒ##########################“SSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÕ×Ô×ÔÔÔÔÔÔÓÓÓÑÓÓÑ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÙÜÛÚÜØØØÜÚÜÛÙÜÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÛÛÜÚÚØØØ××Õ“““###!!ƒ“-############“#########################“##########################SSSSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔ×Õ×××ÕÔÕÕÕÔÔÔÓÓÑÑ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÙÜÜÜØÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÛÜÚØÚØØ×ÔÕÔ“!-“““Ñ“##############ƒ#“#######################“#########################“SSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÕ×××ØØ““×××ÔÔÔÔÓÓÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜÜÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÙÜØÜÚÚØØÕÕÔ“““ÑÑÒƒ#########################################“#########################“SSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔ××רØÚØØØØØ×ÔÔÔÔÓÓÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜÜÚØØØ×ÔÔÔÓÓ“““ƒ##################################################################“SSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔ×רÚÚØØØØÚØ××ÔÔÔÓÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙØÚÜØØ×ÕÔÔÓÓ“#ƒƒ#######ƒ“#############################“##########################“SSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÕÕרØÚÚÚÚÚØÚØ××ÔÔÔÓÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØ×ÕÔÔÓ“!ƒƒ-######ƒÑ#############################“##################“########“SÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔÕ×ØÚØÚÛÚÚÚÚØØ××ÕÔÓÓÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÙØÚÚØÕÔÔÔ“““!Òƒ!!###ƒƒ#############################“#################“#“#######“SÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÔÕ×רÚÚÚÚÜÚÚÚØ×Ô×ÔÓÓ’ÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÛÚØØ××ÔÔÔÓ“#“Òƒƒ“-!ƒƒ#############################“###################“#######““SÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÔÔ×רØÚÚÜÚÚÚÚØ××ÕÔÓÓÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝ!######ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÜÜÚØØÔÕÔÓ“##ƒ““Ñ“-ƒ“!############################“################“##“########“SÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÔÕ×רÚÚÚÚÜÚØÚØ×ÔÔÔÔÓÑÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝ-######ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÚØ××ÕÔ““-"““ÓÓ“ÑÑ“ƒƒ!-“ƒ######################“#################“#“#########SÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ’Ó“““ÔÕÕ×רÚÚÚÚÜÚØÚ××ÕÔ““Ó““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝ######!ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ד“Ô“ÓÓÓÓÓÓÓÒ““ƒ“ƒÑ“######################“#################“##“########“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ“ÓÓÔÔÔÕÕרÚÚÚÚÛÚÜÚØÚ×ÕÔ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÂ’““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝ######-ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ××Õ“Ô““““ÓÓ““ÓÑÒÒÒÒÒ“####!-################“#################ƒ###“######“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ’“ÓÓÓ“ÓÓÔÔÔÔÕ×רØÚÚÚÛÛÛÜÚÚØ××ÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÓÑÑÑÑ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝ-!!!---ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØØ×דÕÔ“ÔÔÔÔ-“ÓÓÓ“ƒƒ#####-ƒÒ“###############“################ƒƒ###“######“SÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓѓ““ÓÓÓÓÔ“ÔÔÕÕÕÕÕ×ØØØÚÚÛÚÛÜÜÜÚØ××ÕÔ“ÃÃÃÃÃÃÃÃÃÃÃÓÓÓÓÓÓÑÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØÚØØ××ÕÕÕÕÕÕ““ÔÔ“-!#####!-у#################“##############ƒ#####“######ƒSÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÓÓÓÔÔÔÔÕÕÕÕÕÕ××ØØØÚØÚÚÚÚÛÜÜÜÚÚÚ××ÕÓ“ÃÃÃÃÃÓ““““ÓÓÔÔÔÔÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØØØØØØØ×××××ÕÔÔÔ““#!!!!“ƒÑ“#################ƒ#############“ƒ######ƒƒ“###-SÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÓÓÓÔÔÕÔÕÕÕÕÕÕ×ÕØØØØØØØÚÚÚÚÛÛÜÜÜÚÚØØ××ÔÓ“ÃÃÃÃÃÓÓÓÓÓÔÔÔÕÕÕÔÔÓÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚØØÚÚØØØØØØ×××ÕÔÓ“““ƒÒ“ÒÍÒ“########!##########ƒ#“#####“##############“##-ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ““ÓÓÔÔÕÕÕÕ×ÕÕØØØØØØÚØØØÚØÛÛÛÛÛÜÜÜÜÜÚÚØ×Ö×ÔÓ“ÃÃÃÃÓÓÓÓÔÔÔ×Õ×××ÔÔÔÓÓÑÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÜÜÜÜÜÚØÚØØÚØØ××ÕÔÔÓÓÒƒ-ƒÒƒƒ########ƒƒ!##########ƒ“##“#########-ƒƒ!##!ƒ!!-ÃÃÃÓ“““““ӓÃÃÓ““ÃÃÃÃÃÃÃÃÃÓ““ÓÓÓÔÔÕÕÕ×××ØØØÚØØØØÜÜÜÙÙÙÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚ××ÕÓÓ“ÃÃÃÃÓÑÑÓÔÔÔ××ØØØ×ÖÔÔÓÓÑÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÛÛÜÜÜÜØØØØ××ÕÔÓÓÓÒÒ!#““########ƒÑƒ###########ƒ#ƒ########!--““!!-“"“““ÃÓ“ÑÑÑÑÐÑ“ÓÓÓ“ÓÓÓÓÑÓ“ÃÃÃÓ“ÓÓÓÓÔÔÔÔÕÕ×Õ×ØØØØÙÚÜØØÙÙÜÜÜÙÚÚÜÜÜÜÜÜÜÜÜÜÜÜÚØÚ×ÕÔÓ“ÃÃÃÃÃÃÓÑÓÔÔ×רÚÚØ×ÖÔÔÓÑÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜÜÛÛÜØØØ××ÕÔ“ƒÒÒ“!!!-#######ƒÑƒ####################!!ƒÑƒÒƒÒÓÑÑÑÑÓÓÃÓ““““ÓÓÓÓÓÔÔÔÔÔÔÔÔÔÓÓÓÓÓÓÔÔÔÔÔÕÕ×ÕÕØØØÙÙØØÙÙÙÜÜÚÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚ××ÔÓÓ“ÃÃÃÃÃÃÓÓÓÔÔרØÚØÚØÖÕÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜØÚ×Õדƒ!ƒƒÑ“"“Ñ-!!####ƒÑƒ#################ƒƒƒÍÑÑÍÍÒÒÒÓÓÓÓÓÓ“ÃÃÃÃÃÃÓÔÔÔÔÕÕÕ×ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ××ØØØØØÙÙÜÙÙÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÜÚÚÚ××ÔÓÓÓÃÃÃÃÃÃÃÓÓÓÔÔÖ×ØØØÚØ×ÔÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ××Õ“-!!“ÓÑÑ“ƒ“####!ƒÑƒ!################ƒƒƒƒƒƒƒÒÒÒÓÓÓÓÓÔÓÓ“ÃÓ““““ÔÕÕÕÕÕÕØØØÕÕÕÕ×Õ×Õ××ØØØØØØØÙÙÜÙÙÙÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÜÜÚÚØ×××ÔÓÓ“ÃÃÃÃÃÃÃÓÑÓÔÔÔ××ÚØÚ××ÔÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÜÚØØÕÕÕ“Ô““Ó“"“““####ƒÑÑ“!##ƒƒ“!#################ƒƒÓÓÕÔÕÕÕÕ“ÕÕÕÔÕÕÕ×ØØØØØÙÙÙØØØØÙÙÙÙØÙÚØÚØÜÜÜÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØØØ×ÖÕÔÓÓÓÃÃÃÃÃÃÃÃÃÃÓÓÓÕÔ×ØØØ×ÔÔÔÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØØØÕ×ÔÔ““ÓÓ’ÑÑу###“ÍÒÒ!##ƒÑÑ!##################ƒÒÕÓÕ××××Õ×××Õ×ØØØØØÜÜÜÙÜÜÜØØÚÚÙÙÚÚÚÚÙÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÛÚØØØ××ÕÔÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÓ“Ô××רØ×ÔÔÔ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÛÜÜÜÜÜÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚØØØØ××Ô“ÔÓÓÓ““!####ƒÒÑ!#!ƒÑƒ!####ƒ“#############ÕÕÕ××ØØØØØØØØØØÚØÚÜØÜÛÚÜÜÜÚÚÜÜÜÜÜÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚØØØ××ÕÔÔÓ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÓ×Ô×ר×ÔÔ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÛÚÙÜÚÚÚÚÜÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÚÜÚØØØ×ÕÕÕÔÔÓ“““!#!##ƒÑ-!ƒÒÑÑ-####ÑÑ!#############“Õ×רØÚÚÙÙÙØÚÙØÜÜÜÜÛÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚÚÚÚØ×““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓ××רØ×ÔÔ““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛÚÚÚÚÚÙÙÚÚÜÜÜÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÙÜØØÚØØ××ÕÕÔ“Ó““-““--ƒÓ“!-ÑÑ“ƒ####ƒÑ-##########---“ÕרܨØÚØÙÚÜÚÚÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÚØÚØ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÓÔÕ××ØØØØÕÔÔ“ÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛÛØÚÙÙÙÙÙÚÚÜÜÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÜÜÚÚÚØØ×Õ“ÕÔ“““Ó““““Ó““-ÑÑÒƒ###ƒƒÑ!#######!!-““ÔÕ×רØÜÜÛÜÜÜÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛØØÚØØ×ÕÔÔÔ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÔÔÕ××ØÚØØ×ÕÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÚÚØÚØÚÚÚÙÙÚÜÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜÚÚØØØ××ÔÔÔÔÓÓƒ“ÓÓÓ““ÓÓÒÒ###“ÒÑ“##!!----ÓÔÔÕ×רÚÜÚÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÚÚØØØØÕÕÕÔÔÓ“ÃÃÃÃÃÃÃÓ’ÓÔÔÕ××ØØØÛØ×ÕÕÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÛØÛ““ÚÚÚÚÚÚÚÚÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÛÜÚØØØØ×ÕÕÔ““--ƒ“ÔÔÓÓ““!####“Ò“-!-ÓÓ“““ÔÔÕÕ×רÚÜÜÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÛÜÚÚÚØØÕÕÕÔÔÔÓ“ÃÃÃÃÓÓÔÔÔ×ÕרÚÚÚÚÚØÕÔÔÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÛÚØÜÙÚ““““ØÚÜÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛØØØØØØ××ÕÕ“““ÕÔÔÔÔÔ“!!!#!ƒÓÓ“““ÓÓÔÔÔÔÕ×ÕØØØØÚÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÛÜÚÚØØØÕ×ÕÔÔÔÔÔÔÔ““ÔÔÔÕ××רØÚÚÚÚØØ×ÕÔ“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÛÚÚØØØØØ“Ý“ÚÜÚÚÛÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÛØÚÚØØØ×Õ×××ÕÕÕ×ÕÕÕÔ“““-““ÔÔÔÔÔÕÔÕÕ×Õ×ØØØØÚÜÛÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÙØÚØØØØØÕ×ÕÕÔÕÔÕÕÕÕ××ØØØØÚÚÚÚÛÚØØ×ÔÔÓÓÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÚÚÚÚØÚÚØ““ÚÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÙØØÜÚØØØØØØØØ××ÕÕÕÕÕÕ“ÕÔÕÕÕÕÕ×ÕÕ×ØØØÙØØØÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÜÜÜÜÙÚØÚØØØØ××ÕÕÕ×××ØØØØÚÚÚÛÛÛÛÚÚØØÕÔÔÓ“ÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÙÛÚÚÚØÜÚÚÚØØÚÚÚÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜØÚØØØØØÙØØØØØ×ÕÕÕ×ÕÕÕ×××Õ×ØØØØÚØØÙÜÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÛÜÜÙÙØØØØØØØØØÚÚÛÚÛÜÚÛÛÛÛÚÚØØ×ÔÔÓÓ“ÂÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÛÛÚØÜÚØÚÚÜÜØÜÜÙÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÜÛÜÜÚÜÜÚÚÜØØÚØØØØØØØØÙÙÙÚØØØÙÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÙÜÜÜÚÜØØÚÚÚÚÚÚÚÜÜÜÚÜÜÚÜÚØÚØ××ÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙÜÚØØÚÜÜÙÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜÜÜÜÜÜÜÙÜØÜØÙÙÙÙÚÚØÜÚÚÙÙÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜÜÙÛÚÚÚÜÚÚÚÚÚØÜÚÚÚÚÚÚØÚ××ÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÙÙÙÙÜÜÜÙÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÜÜÜÙÙÚÜÜÜØÛÜÜÜÚÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÛÜÜÚÚÚÚØØØØØØØÚØØ××ÕÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÜÜÜÜÚÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚØØØØ××ØØØÚØØØ××ÔÓÓÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÜØØ×××Õ×ÕÕÕ××ØØØØ××ÔÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚÚÚ××ÕÕÔÔ“ÔÕÕÕ××ØØØ×ÕÔÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚØ×ÕÕÕÔ“ÃÃÓÔÕ××רØ××ÔÔ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÛÜÚÚØ×ÕÕÔ“ÃÃÃÃÓÓÕÕר×××ÕÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚØØÕÕÓ“ÃÃÃÃÃÓÓÕÕÕØØØØÕÕÔ“““ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙØ×ÕÕ““ÃÃÃÃÃÃÓÕÕÕØØØØÕ×Õ““ÒÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕ•ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÙØÕÕÕ“ÃÃÃÃÃÃÃÃÃÕÕÕØØØØØÕÕÔÓÓ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÚÚÚØ××ÕÔÃÃÃÃÃÃÃÃÓÕÕÕØØÙÙØØÕÕÔÓÒ“ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÕÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃlgeneral-1.3.1/src/themes/default/fr_hori.bmp0000664000175000017500000000510612140770455016067 00000000000000BMF 6(Ö œ œ 7'#B.*C/+8'#1# 6'#4%";*'8(&2$"2$"2$"2$"2$"1#!6'#6'#;)&@-)L61D1,@-*?-)F1-;)%6&"6&"6&"9'$A-);)&6&"6&"6&"7'$@-)@-)7'$>,(7'$6'$.!6%"6'$:)&?,(6%!0!5%!2#!9(%6&$0" 0" 0" 0" 0" 0" 5&"5&":(%?,(K50C0+?,)>,(E0,:($5%!5%!5%!8&#@,(:(%5%!5%!5%!6&#?,(?,(6&#=+'6&#- 5%"6'$:)&6%!0!5%!2#!9(%6&$0" 0" 0" 0" 0" 0" 5&"5&":(%?,(K50C0+?,)>,(E0,:($5%!5%!5%!8&#@,(:(%5%!5%!5%!6&#?,(?,(6&#=+'6&#- 5%"6'$:)&6%!0!5%!2#!9(%6&$0" 0" 0" 0" 0" 0" 5&"5&":(%?,(K50C0+?,)>,(E0,:($5%!5%!5%!8&#@,(:(%5%!5%!5%!6&#?,(?,(6&#=+'6%!0!5%!2#!9(%6&$0" 0" 0" 0" 0" 0" 5&"5&":(%?,(K50C0+?,)>,(E0,:($5%!5%!5%!8&#@,(:(%5%!5%!5%!6&#?,(?,(6&#=+'6&#- 5%"6'$:)&F1-¢rj˄˂١”Ùš‹ÉŒ‚Б„Ù¥—Ù¥—Ù¡Ö—‡Ö—‡Ù«™Ù­›Ù«šÒ•‡ÉŒ‚¹‚wÙ ‘Ù¥™Ù²¡Ù¿­Ù¿°Ù¿°Ùº¨ÙòÙòٲ¢Ù­Ù§™Ù¢”Ùš‹Ù§™Ù§™Ù˂Ӕ‡ÎƒÙ¢•Ù¡•Ù¹©Ù§—Ú£•欜çÉ·çʸ簡ç¬ç¤•×–‹Þ›ç°¡ç°¡ç«šä¡ä¡ç·£ç¹¥ç·¤àž×–‹Å‹窛簣羬ç̹ç̼çÌ¼çÆ³çоçо羭繧粣ç­ç¤•粣粣秙ٙ‹áÜšŒç­žç¬žçŴ粡ç­ç­çÉ·çʸç¬ç¤•×–‹Þ›ç°¡ç°¡ç«šä¡ä¡ç·£ç¹¥ç·¤àž×–‹Å‹窛簣羬ç̹ç̼çÌ¼çÆ³çоçо羭繧粣ç­ç¤•粣粣秙ٙ‹áÜšŒç­žç¬žçÅ´æ± å«›å«›çÆµçǶ媛䢓Օ‰Û™‹æ®Ÿæ®Ÿå©˜âŸŽâŸŽæµ¡æ·£æµ¢ÝœŽÕ•‰ÂŠ}娙殡缪çÊ·çÊ»çÊ»çñçͼçͼ缫緦污嫛䢓污污妗חŠÞ›ŽÙ˜‹å«œåªœåª›ä¡’Ó“†Ù˜‹åªœåªœå§—ÞœŒÞœŒæ±žæµ¡æ±ŸÛ›ŒÓ“†¼†yÏ–ŠÐšÑ§˜Ñ´¤Ñ´¦Ñ´¦Ñ¯ŸÑ¶¦Ñ¶¦Ñ¦—С’Ï›ŽÏ—ŠÌ‚Ï›ŽÏ›ŽÎ’…¿…yÅŠ~Àˆ{Ï—‹Ï–‹Ñ¬žÏ›ŒÏ—ŠÏ—ŠÑ°ŸÔ±¡ÅŠlgeneral-1.3.1/src/themes/default/scroll_buttons.bmp0000664000175000017500000003306612140770455017521 00000000000000BM666(`06ë ë ((ÿÿÿÿÿÿÿÿÿÿÿÿ(hhP##(ÿÿÿhhP##ÿÿÿÿÿÿhhP##ÿÿÿGGG(hhPHH088(##(ÿÿÿhhPHH088(##ÿÿÿÿÿÿhhPHH088(##ÿÿÿGGG///&&&(hhPHH0HH0HH088(##(ÿÿÿhhPHH0HH0HH088(##ÿÿÿÿÿÿhhPHH0HH0HH088(##ÿÿÿGGG/////////&&&(hhPHH0HH0HH0HH0HH088(##(ÿÿÿhhPHH0HH0HH0HH0HH088(##ÿÿÿÿÿÿhhPHH0HH0HH0HH0HH088(##ÿÿÿGGG///////////////&&&(hhPHH0HH0HH0HH0HH0HH0HH088(##(ÿÿÿhhPHH0HH0HH0HH0HH0HH0HH088(##ÿÿÿÿÿÿhhPHH0HH0HH0HH0HH0HH0HH088(##ÿÿÿGGG/////////////////////&&&(hhPHH0HH0HH0HH0HH0HH0HH0HH0HH088(##(ÿÿÿhhPHH0HH0HH0HH0HH0HH0HH0HH0HH088(##ÿÿÿÿÿÿhhPHH0HH0HH0HH0HH0HH0HH0HH0HH088(##ÿÿÿGGG///////////////////////////&&&(hhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##(ÿÿÿhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##ÿÿÿÿÿÿhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##ÿÿÿGGG/////////////////////////////////&&&(hhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##(ÿÿÿhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##ÿÿÿÿÿÿhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##ÿÿÿGGG///////////////////////////////////////&&&(hhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##(ÿÿÿhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##ÿÿÿÿÿÿhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##ÿÿÿGGG/////////////////////////////////////////////&&&(hhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##(ÿÿÿhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##ÿÿÿÿÿÿhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##ÿÿÿGGG///////////////////////////////////////////////////&&&(hhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##(ÿÿÿhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##ÿÿÿÿÿÿhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH088(##ÿÿÿGGG/////////////////////////////////////////////////////////&&&(˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ(ÿÿÿ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆÿÿÿÿÿÿ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆÿÿÿllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll((((((((((((((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(((((((((((((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(˜˜ˆ88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88((ÿÿÿ˜˜ˆ88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(ÿÿÿÿÿÿ˜˜ˆ88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(88(ÿÿÿlll&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&(˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0hhPVV4(ÿÿÿ˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0hhPVV4ÿÿÿÿÿÿ˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0hhPVV4ÿÿÿlllGGG////////////////////////////////////////////////GGG777(˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0hhPVV4(ÿÿÿ˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0hhPVV4ÿÿÿÿÿÿ˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0hhPVV4ÿÿÿlllGGG//////////////////////////////////////////GGG777(˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0hhPVV4(ÿÿÿ˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0hhPVV4ÿÿÿÿÿÿ˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0HH0hhPVV4ÿÿÿlllGGG////////////////////////////////////GGG777(˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0hhPVV4(ÿÿÿ˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0hhPVV4ÿÿÿÿÿÿ˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0HH0HH0hhPVV4ÿÿÿlllGGG//////////////////////////////GGG777(˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0hhPVV4(ÿÿÿ˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0hhPVV4ÿÿÿÿÿÿ˜˜ˆhhPHH0HH0HH0HH0HH0HH0HH0HH0hhPVV4ÿÿÿlllGGG////////////////////////GGG777(˜˜ˆhhPHH0HH0HH0HH0HH0HH0hhPVV4(ÿÿÿ˜˜ˆhhPHH0HH0HH0HH0HH0HH0hhPVV4ÿÿÿÿÿÿ˜˜ˆhhPHH0HH0HH0HH0HH0HH0hhPVV4ÿÿÿlllGGG//////////////////GGG777(˜˜ˆhhPHH0HH0HH0HH0hhPVV4(ÿÿÿ˜˜ˆhhPHH0HH0HH0HH0hhPVV4ÿÿÿÿÿÿ˜˜ˆhhPHH0HH0HH0HH0hhPVV4ÿÿÿlllGGG////////////GGG777(˜˜ˆhhPHH0HH0hhPVV4(ÿÿÿ˜˜ˆhhPHH0HH0hhPVV4ÿÿÿÿÿÿ˜˜ˆhhPHH0HH0hhPVV4ÿÿÿlllGGG//////GGG777(˜˜ˆhhPhhPVV4(ÿÿÿ˜˜ˆhhPhhPVV4ÿÿÿÿÿÿ˜˜ˆhhPhhPVV4ÿÿÿlllGGGGGG777(˜˜ˆVV4(ÿÿÿ˜˜ˆVV4ÿÿÿÿÿÿ˜˜ˆVV4ÿÿÿlll777((ÿÿÿÿÿÿÿÿÿÿÿÿlgeneral-1.3.1/src/themes/default/font_error.bmp0000664000175000017500000023406612140770455016627 00000000000000BM686( 8u u ÿÿÿÿÿÿÿÿ************ÿÿ******************ÿÿ******ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠúŠŠúŠŠúŠŠú ÿÿÿÿÿÿŠŠúŠŠúŠŠú ÿÿÿÿÿÿÿÿÿÿÿÿŠŠú ÿÿFFæ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿFFæFFæFFæFFæ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÖÖÖÖÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕ ÿÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕ &&&***&&&&&&&&&***&&&***&&&v>b2f2R*&&&&&&²Ö²Ö†žj~ Rb Vf&&&&&&NRR:>B"""ŠŠúŠŠúFF把úŠŠúFFæFFæFFæFFæFFæFFæFF把úŠŠúŠŠúŠŠúŠŠú~~ú~~úFFæ ÙÙÙ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÖÖÖ ÿÿÿ ÙÙÙÕÕÕ ÙÙÙÕÕÕ z***þþþþþþÒÒö¶¶öîîîþþþ&&&***²Z–JŽFf2J&.&&&***¾Þš¶br BN&&&&&&r~‚fffFJNFJN&&&******ŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæFFæ~~úŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFFæFFæFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæFFæFFæFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúFFæFFæFFæFFæFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFFæFFæFF把úŠŠúŠŠúŠŠú~~úFFæFFæFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFFæFFæFFæFF把úŠŠúFF把úŠŠúŠŠúŠŠúŠŠú~~úFFæ~~ú~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úFFæFFæFFæFFæFFæFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú222...222.........222.........222.........222.........ÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûû ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿãããÿÿÿÿÿÿÿÿÿãã㊊ŠÿÿÿãããÿÿÿÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ òòòÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿ ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøøø ÿÿÿ ïïï ÕÕÕÕÕÕÕÕÕÕÕÕ ÕÕÕÕÕÕÕÕÕÕÕÕ ÕÕÕÕÕÕÕÕÕÕÕÕ ÕÕÕÕÕÕÕÕÕÕÕÕ ÕÕÕÕÕÕÕÕÕÕÕÕ ÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ûûû ÿÿÿ ÿÿÿ ÿÿÿ÷÷÷××× ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕ áááÕÕÕÕÕÕÕÕÕ áááÕÕÕÕÕÕÕÕÕ áááÕÕÕÕÕÕÕÕÕ áááÕÕÕÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ zþn***òòöîîîFFæêîîîþþþ***&&&®V¾^šNŽFf2R****&&&ÚþžºZn BN******†’–Žššr~‚>FF"""R.6R.6***~BV***FFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFF把úŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúFF把úŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFFæ~~úŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæ~~úŠŠúŠŠúŠŠúŠŠú~~úFFæFF把úŠŠúZZZRRRRRR:>B...jÎÊZ²®222RRR:>B...jÎÊZ²®222...Z²®Nšš......jÎÊZ²®222...Z²®Nšš......jÎÊZ²®222...Z²®Nšš......jÎÊZ²®222...Z²®Nšš...ÿÿÿÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿííí ÿÿÿÿÿÿŠŠŠããããã㊊ŠÿÿÿŠŠŠããããããŠŠŠŠŠŠããããã㊊ŠÿÿÿÕÕÕ ÕÕÕÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ òòò ÿÿÿ ÿÿÿÕÕÕ ÕÕÕ ÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿùùù ÿÿÿ ÿÿÿ ÷÷÷ÕÕÕ ÷÷÷ÕÕÕ ÷÷÷ÕÕÕ ÷÷÷ÕÕÕ ÷÷÷ÕÕÕ ÿÿÿÿÿÿ÷÷÷ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÕÕÕ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ëëëÿÿÿÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÿÿÿÕÕÕÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿííí ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿííí zþþú~&&&®®ö¢¢öþþŠŠúººî&&&þþ***Êf¶ZÖjÆb‚B~>&&&***ÚþªÊbr BN&&&***ÊÚÞšª®†’–~ŠŽV^^FNN***ÿÿÿÿÿÿ†FV~BVN*6************’Jb¾b~***ŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠú~~úFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúŠŠú~~úFF把úŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠú~~úFFæFF把úŠŠúFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFF把úŠŠúŠŠúŠŠúŠŠú~~úFF把úŠŠúŠŠúŠŠújjjVVV~~~rrr......†æâR¦¦~~~rrr......‚îîR¦¦Žúú†æâBbf...‚îîR¦¦Žúú†þþBbf...‚îîR¦¦Žúú†þþBbf...‚îîR¦¦Žúú†þþBbfÿÿÿÕÕÕ ÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãããÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãã㊊ŠãããÿÿÿãããŠŠŠŠŠŠããããã㊊Šãããÿÿÿêêê ÕÕÕÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ ÕÕÕ ÿÿÿ òòò ÿÿÿ ÕÕÕ ÕÕÕ ÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿùùù ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿÕÕÕÕÕÕ ÿÿÿ îîî ÿÿÿ îîî ÿÿÿ îîî ÿÿÿ îîî ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿäää ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÖÖÖÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ fþþþz&&&öþþþúö***þþþþ&&&º^ö‚þžÆb®V~>&&&***ÖöªÊj~ BN******®¾Â®¾ÂJŠªJvŠv~‚NRR***ÿÿÿÿÿÿÿÂf‚¾b~’JbR.6R.6N*6N*6***~BVz>N’NbÖrŽÖr’ÖrŽ***ŠŠú~~úFFæFFæFFæFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFF把úŠŠúŠŠúŠŠúFF把úFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæFFæFF把úŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠú~~úFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæ~~úŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠú~~úFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠú~~úFF把úŠŠúŠŠúŠŠúŠŠúFF把úŠŠú:::rrrjjjNNN:::R¦¦jjjNNN:::R¦¦R¦¦NNN 222R~~ªþþ†æâf²®... 222R~~†þþ†æâf²®... 222R~~ªþþ†æâf²®...ÿÿÿÕÕÕ ÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãã㊊ŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿŠŠŠÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠãã㊊ŠÿÿÿŠŠŠããã®®®ãããŠŠŠŠŠŠãã㊊Šÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÞÞÞÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÞÞÞÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÞÞÞÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÞÞÞÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÞÞÞÕÕÕÕÕÕ ÿÿÿÿÿÿÿÿÿÞÞÞÕÕÕÕÕÕ ÿÿÿòòò ÿÿÿ ÕÕÕ ÕÕÕ ÕÕÕ ÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÚÚÚ ÿÿÿÚÚÚ ÿÿÿÚÚÚ ÿÿÿÚÚÚ ÿÿÿÚÚÚ ÿÿÿÿÿÿŠŠŠÕÕÕÚÚÚ ÿÿÿ ååå ÿÿÿ ååå ÿÿÿ ååå ÿÿÿ ååå ÿÿÿ ÿÿÿÿÿÿÿÿÿäää ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕÿÿÿ ÿÿÿ ÕÕÕ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿ ÕÕÕÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ þþ""þþþÒn***æöþþþþ&&&þþþþþþ&&&þ¢þªîz¶Z&&&&&&Úþ²Öbr BN&&&&&&******†Â Z‚&&&&&&&&&ÿÿÿÿÿÿÿþ޲ÖrŽÖr’ÖrŽ’Nbz>N~BV^2>***²^v¾b~Êj†ÒnŠÖr’þ޲***ŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúFF把úŠŠúŠŠúŠŠúŠŠúFFæFFæFFæ~~úŠŠúŠŠúŠŠúŠŠú~~úFFæFFæFFæFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFFæFFæFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFFæ~~ú~~úŠŠú~~úFFæFFæFFæFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæ~~úŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúFFæ~~úŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúFFFnnnfffŠŠŠŠŠŠbbbJJJ...FFFnnnfffŠŠŠŠŠŠbbbJJJ...FFFnnnfffŠŠŠŠŠŠbbbJJJ...Vššzöò†æâR¦¦ŠŠŠbbbJJJ...Vššzöò†æâ†æâvâÞvâÞR¦¦:^^Vššzöò†æâÚþþªþþvâÞR¦¦:^^ÿÿÿÕÕÕ ÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãããÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãããÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠããããã㊊ŠÿÿÿÿÿÿŠŠŠãã㊊Šãã㊊Šããã ÿÿÿÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿòòòÕÕÕÕÕÕ ÿÿÿ áááÕÕÕÕÕÕÕÕÕáááÕÕÕÕÕÕÕÕÕáááÕÕÕÕÕÕÕÕÕáááÕÕÕÕÕÕÕÕÕÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿúúú ÿÿÿúúú ÿÿÿúúú ÿÿÿúúú ÿÿÿúúú ÿÿÿÿÿÿÿÿÿÿÿÿúúú ÿÿÿ ààà ÿÿÿ ààà ÿÿÿ ààà ÿÿÿ ààà ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿäääŽŽŽ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÖÖÖ ÕÕÕÿÿÿØØØÿÿÿØØØÿÿÿØØØÿÿÿØØØÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕÕÕÕÕÕÕÚÚÚ®®® ÿÿÿÿÿÿ ÕÕÕÕÕÕÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿ ÿÿÿ jþþþz&&&ÆÆú¢¢úæö~~ú¶¶þ***þþþþþþþþ&&&®Vþ¶ö‚Öj******ÖöÊêš¶br&&&&&&†Â Rz***ÿþšÂþ޲Ör’ÒnŠÊj†¾b~²^vz>N************æzšò‚¢***ŠŠúŠŠúFFæFFæFFæFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæFF把úŠŠúŠŠúŠŠú~~úFFæFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæFFæFFæFFæFFæFFæFF把úŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFFæ~~úŠŠúŠŠú~~úFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~ú~~úFFæFFæFFæFFæ~~ú~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæ~~úŠŠú666rrrŠŠŠvvvfff...666rrrŠŠŠvvvfff...666rrrŠŠŠvvvfff...Jvvf²®ŠŠŠvvvfff...JvvjÎÊvvvŠŠŠf²®FfbJvv‚úö¾þþ†þþvîêFfbÿÿÿÖÖÖ ÕÕÕ ÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãã㊊ŠÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿŠŠŠãããÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿããããããÿÿÿÿÿÿÿÿÿãã㊊ŠÿÿÿãããŠŠŠŠŠŠÿÿÿÿÿÿŠŠŠãããŠŠŠ ÿÿÿÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿÕÕÕ ÿÿÿòòò ÿÿÿ ùùù ùùù ùùù ùùù ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÝÝÝ ÿÿÿ ÝÝÝ ÿÿÿ ÝÝÝ ÿÿÿ ÝÝÝ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽŽŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÜÜÕÕÕÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÖÖ ÿÿÿÞÞÞÕÕÕÕÕÕÞÞÞÿÿÿÿÿÿÿÿÿÞÞÞÿÿÿÿÿÿÿÿÿÞÞÞÿÿÿÿÿÿÿÿÿÞÞÞÿÿÿÿÿÿÿÿÿÞÞÞÿÿÿÿÿÿÿÿÿÞÞÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzþþþj***þþþúúúâú¦¦îööö&&&þþþþþþþþ***º^úŽö‚²Z&&&&&&†¦®‚ÎÚ~ŠŽBbf&&&***ŽÎ Nn&&&þ’ºò‚¢æzšÂf‚þ’¶þªÖþžÆ***î‚¢***ŠŠúŠŠúŠŠú~~úFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúFFæFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúFFæFF把úŠŠúFFæFFæ~~úŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠú~~úŠŠúFFæFF把úŠŠúŠŠúFFæFFæFF把úŠŠúŠŠúŠŠúŠŠújjjV^^jjjV^^jjjV^^...jjjV^^ŠŠŠvvv...†ÆÆjÖÖ...ÿÿÿÜÜÜÕÕÕÕÕÕÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãã㊊Šÿÿÿÿÿÿÿÿÿãã㊊ŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠãã㊊ŠÿÿÿŠŠŠãã㊊Šããããã㊊ŠãããŠŠŠ ÿÿÿÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿÕÕÕÿÿÿòòò ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿ ÿÿÿ ÝÝÝ ÿÿÿ ÝÝÝ ÿÿÿ ÝÝÝ ÿÿÿ ÝÝÝ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÕÕÕÖÖÖ ÿÿÿÿÿÿ ^þj***þþþÖÖÖ®®öââþþþþþþþ***þþþþ&&&özêv***&&&~~~ÚÚÚ®®®JJJ*********&&&†Â Vz&&&***ÿÿÿÿÿÿÿþžÆî‚¢æzš******ŠŠúŠŠúŠŠú~~úFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúFFæFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúFF把úŠŠúFFæFF把úŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠú~~úFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFF把úŠŠú~~úŠŠúFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFF把úŠŠúŠŠúŠŠú...666...666...666...666...666...:^^R~~...ÕÕÕÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿããããããÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠãããÿÿÿããããããÿÿÿŠŠŠãããÿÿÿŠŠŠããããããŠŠŠŠŠŠããã ÿÿÿòòòÿÿÿòòòÿÿÿòòòÿÿÿòòòÿÿÿòòòÿÿÿòòòÿÿÿòòòÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿÿÿÿÿÿÿùùùáááÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÜÜÿÿÿÜÜÜÿÿÿÜÜÜÿÿÿÜÜÜÿÿÿÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ z&&&&&&&&&&&&&&&&&&&&&&&&***îvÊf&&&***ŠŠŠ®®®ŽŽŽNNN&&&&&&¦î–چ Vz :V.F&&&ÿÿÿÿÿÿÿþ®ÞþžÆŠŠúŠŠúŠŠú~~úŠŠúŠŠúŠŠúŠŠúFF把úŠŠúŠŠúFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæFFæFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úŠŠúŠŠúFFæFFæFFæFF把úŠŠúŠŠúŠŠúŠŠú~~úFFæFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæFFæFFæFFæFFæFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFFæFFæFFæFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~ú~~úFFæFFæFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú~~úFF把úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúFFæFFæFFæFFæFF把úŠŠúŠŠúŠŠú~~úŠŠúŠŠúFFæFFæFFæFF把úŠŠúŠŠúŠŠúFFæFFæFFæFFæFFæ~~úŠŠúŠŠúŠŠúŠŠúŠŠúŠŠúŠŠú***...ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿŠŠŠŠŠŠÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠãã㊊Šããããã㊊ŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿããããããÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòòòÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáááÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÞÞÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&Æb¾^&&&&&&jjjfff&&&&&&²ú¶þ²þ²þ¦îj–&&&ÿÿÿÿÿÿÿŠŠúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿÿÿÿŠŠŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáááÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ******************............******ÿÿÿ lgeneral-1.3.1/src/themes/default/font_turn_info.bmp0000664000175000017500000006571612140770455017505 00000000000000BMÎkÎ( hœ œ ææ***...&&&Æb¾^jjjfff²ú¶þ²þ¦îj–zîvÊfŠŠŠ®®®ŽŽŽNNN–چ Vz :V.F^þjþþþÖÖÖ®®öââþþözêv~~~ÚÚÚJJJþþúúúâú¦¦îöööº^úŽö‚²Z†¦®‚ÎÚ~ŠŽBbfŽÎ NnþÆÆú¢¢úæö~~ú¶¶þ®Vþ¶ÖjÖöÊêš¶br Rz""þÒnþ¢þªîz¶ZÚþ²Ö BN Z‚fþž~>ªÊj~®¾ÂJŠªJvŠv~‚NRRú~¢¢öŠŠúººî‚BÊÚÞšª®†’–V^^FNNòòöîîîFFæêšNŽFf2R*žºZnŽššr~‚>FF"""ÒÒö¶¶ö–JJ&.¾ÞFJNv>b2†ž Rb Vf:>Bÿÿÿþ®ÞþžÆî‚¢æzšþ’ºò‚¢Âf‚þ’¶þªÖþšÂþ޲Ör’ÒnŠÊj†¾b~²^vz>NÖrŽ’Nb~BV^2>’JbR.6N*6†FVÿÿÿããã ìììÕÕÕâââüüüÝÝÝ×××ýýýàààñññôôôåååùùùæææáááäääòòòÞÞÞÛÛÛÜÜÜêêêøøøëëëßßß÷÷÷ïïïõõõÙÙÙéééûûûØØØðððèèèííí666:^^R~~†ÆÆjÖÖrrrvvvJvv‚úö¾þþ†þþvîêFfbFFFnnnbbbVššzöò†æâÚþþªþþvâÞR¦¦:::222f²®VVV‚îîŽúúZZZRRRjÎÊZ²®Nššƒƒƒƒƒƒ„„„„„„„„„„ƒ„„„„„„„„ƒ„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒžžžž  ƒƒƒžžž ƒƒƒƒƒƒž ƒ¢ ƒƒƒƒƒƒƒƒ¢¢¢¢ ƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„„„„„„„„„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ¢ ƒƒƒžžƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒžžƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ¢¢¢¢ ƒƒ¢¢¢¢ }~noPPW€\‚u          ž  ž                                     ¦  ž                                                                ž                                ¢¢¢¢¢¢¢                     žž       ž ž                ž ¾                  »¢                           » žžžžžž               ž                                                                                                                                                                                           ž                    »¢  »¢ vwi2xmnyz{EFQs||ž   ž  ž ž  žžž ž¢¢ žž  žžžž ¢¢  °žžžžžžžžžžžžžž ž ž±¢¢ ²žžž  ž žžžž  žž¶ ¢¢©žž  ž¢ žžžžžž ¢ ¢¢±ž  žžžž žžžµ  ¢¢¢¢¢¢ž žžžž ž ž žžžžž¦¢¢ ± žžžžžžžž ž ž ¹ ¢¢¢¢  ¢ žžžž  ž žžžžž ž žžžž ¢ ž ž ž ž ½ ¢¢¢¢¢¢®¬žžž žžžž žžž ž ž ž¸¦  ¢¢¢¢ žžž ž ®¢¢¢ ¢ žžžžž ž žžžžžžž ž *¢¢¢¢¢¢  ž ž ¢ žžžž  ž       ª ¢ ·°žž žžž žžžžž ž ¢ ¢ ž   ¢ ¢¢¢¢¢¢®¬žž žžž žžžžÂÂ'ÂÜ'ÂÜÜÜÜž¢ žžžžžž½ žžžžž žžžžžžžžžžžžžžž¢    žžžŸžžžŸžŸžž¢¢¢¢ž ¢ ž ¢ ž ¢ ž ¢ ž ¢ ž ¢ ž °¢¢ žžžž ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢žžžžžžžžžžžžžžžžžžžžžžžµ  ž ¹ ¢¢¢¢  ¢¢¢¢  ¢¢¢¢  ¢¢¢¢  ¢¢¢¢  ž¢¢¢¢  žžžž žžžž žžžž žžžž ½ ž ž ž¸¦  žžž ž žžž ž žžž ž žžž ž žžž ž žžž ž ž žžž¢¢¢¢ ®¢¢¢ ®¢¢¢ ®¢¢¢ ®¢¢¢ žžžžžžžžžžžžžžžžžžžžžžž  ž ¢ žžžž  žžžž  žžžž  žžžž  žžžž  žžžž  žžžžžžžžžžžžžžžž   ¢ ž    ¢ )Jhijki@lmnoOpqQerstu››˜ ¢ ¢ žžžž  ž žžžž © ¢    žžžžž ¢¢  ž ž žž    ž  ž¢ ¢ž ž žž  ¢žžžž      ¢  ž   ž ¢ ¢ž  ž žž¬  ¢ ¬ ž žž ž ž ž §¢  žž ž ž ž ž ¸¢ ¢ žžž ž žžž ž ž ž ¢ ¢ ž žžž ž žž ² ¢ žž žžž žž¢ ¢ ¢¶žž ž ¢¢ ž   ž ž ž ž ž ž¢ ¢  ž ž ¢ ¢ž ž žžž  žžž ž ¢ ¢ žž žž ž ž ž ž ž¢¢ ± žžžžÁ  ¢ ž ž   Âáâ'Ââ‚ÂãäÜÂâ‚ÂãäÜäåãäÜäåãäÜäåãäÜä垢¢¢¢¢žžžž¢žžž¢ž žžž žžžž¢žžžÁ žžŸŸžŸŸŸŸž¢   ¢ž ¢ ž ¢ ž ¢ ž ¢ ž ¢ ž ¢ ž °  ž ž¢ ¢ ¢ ¢ ž ž ž ž ž¬  ž ž ¸¢ ¸¢ ¸¢ ¸¢ ¸¢ žž¸¢ ž ž ž ž ž ž ž ž ž ž žž¢ žžž žžž žžž žžž žžž žžž žžž¢ ¢ž ¢ž ¢ž ¢ž ¢ž ž ž ž ¶žž ž ¢ ¢ž ¢ž ¢ž ¢ž ¢ž ž¢žž ž ž ž ž ž ž ž ž žžžÁ žž žžžÁ )(]^_!!`a!!NBbUOVFQcde5fg„„„„„„˜œš“ž ¢  ¢  žž ž žžžž¤¢ ž žž ž ¯¢  ž  ž žžžžžž¢ ¢ž ž žž ¢ žžžžžµ®¢ ž ž ž ž ž    ¢ ¢žž ž¬ ¢ ® ž  ž ž ž ž ¢ ¢ žž ž  ž ž ž ž¢ ¢ ¼žž ž žž ž ž ¬ ¢ ¢ ž ž ž ž žž ¬ ¢ žž žž ž¯ ¢ ž ž      ¢ žžž  ž ž ž ž ž  ž¢ ¢ * ž ž ¢ ¢ž žžž žžž ¢  ¢¥ž ž ž žž ž ¥ ¢ žž ž žž À ¢ ž žžžÂÞ$ÈÕÙ$ÈßÙàÕ6ßÙàÍ6ßÙàÍ6ßÙàÍ6ž¢ ¢¢žžžžžžžžžžžž ž¢žžžžžžžžžžžžžŸžžž žž žžžžžžžžžžŸŸžŸŸŸŸž´ ¢ž    ¢ ž    ¢ ž    ¢ ž    ¢ ž    ¢ ž    ¢ ž  °   ž ¢ ¢ ¢ ¢ ž ž ž ž ž¬ ž žž ž¢ ž¢ ž¢ ž¢ ž¢ žžž¢¢ ž i ž i ž i ž i ž žžžžž¯ žž žž žž žž žž žž žž¢ ž      ž      ž      ž      ž ž ž ž ž ž ¢ ¢ž ¢ž ¢ž ¢ž ¢ž ¢žž ž ž ž ž ž ž ž ž ž žž žžžž žž S9)=!!!,=!!!!/1T@UCVWQXXYZ[\„„„„„„„‹“š››œœ˜•—––ž ¥¢¢¢¢¢žžž žž  ž ¢  žž    ž        ž ž¢ . žž   žžž   ¢ ¢¢žž žž   ¢   ž¢ ž ž žžž žžž±¢¢ ¢žž žž ¢    ¢    ž žžžž    ž ž ¢ ¢ žž ž ž ž ž žž ž% ¢     ¢ž ž ž      žž ž i ¢¢ ž ž ž žžž ¬ ¢ žž žžžžž žž ¢  ¢ž žžž¬®¢ ¢    žž ž  ž ž ž žžž ³ ¢ ¼ ž ž  ¢ ¢ž žž žž £  ¢¢ ž ž ž ž ž ž ±¢ žž ž ž ¬  ¢ž ž    ÚÂÛÈÂÚÂÛÙÂÚÂÛÙÙ ÜÅ×ÕÝ ÜÅÍÕÝ ÜÅ×ÕÝž¢ ¢žžžž žžžžžžžžžžžžŸžžžžžžžžž ž žžžžžžžŸžŸŸŸž ž žžž±¢¢ žžž±¢¢ žžž±¢¢ žžž±¢¢ žžž±¢¢ žžž±¢¢ ž°   ž ¢    ¢    ¢    ¢    ž ž ž ž žž ž žž ž% ž% ž% ž% ž% žž¢% ž « ž « ž « ž « ž žžž¯ žžžžž žžžžž žžžžž žžžžž žžžžž žžžžž žžžžž¢  žžž¬®¢ žžž¬®¢ žžž¬®¢ žžž¬®¢ ž ž ž ž ¢ž ž  ¢ ¢ž ¢ž ¢ž ¢ž ¢ž ¢žž ž ž ž ž ž ž ž ž ž ž žžž ž (H)(IJ<=!!!!!!!!!!KLMNOPFQR„„„„„„„––—•˜™”“’‘ž ¢¢  žžžž žž ž ¢ žžžžžžžžžžžžžžžžž ž¢ ® ž žžžžž žž  ¢¢ ¢¢¯ž žžžž  žžž ¢ ¢  ž  ž       ¢ž ž žž ž¢ ¢¢¥ž  ž žž ®¢¢¢¢¢®¬ž žžžžžž ž ¢ ¢³ ž ž ž ž ž žž ž* ¢¢¢¢¢  ¢ž žžžžž  žžžžž ž « ¢  ž žž ž ž ¬ ¢ žž    žžžž   ¢¢%¶ ž¾¢¢¢¢¦žž žž  žž ž ž ž i ¢  % žžž  ¢¢žžžžžžž ž  ¢¢   ¢ž    ž ž ž ž ž ¢ %ž ž ž    ¬  ¢¢ ½ žžžžÐÑÒ&ÐÑÒ&ÐÑÒ&ÓÔÕÙÒ&ÓÔÕÕØØÙÄÓÔÕÖרÙÄž¢ ¢žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžŸžžžžžžžŸžž ž žžžžžžžŸŸžžŸŸŸ žž¢ ž¢ ž¢ ž¢ ž¢ ž¢ žžž°¢¢ ž ®¢¢¢®¢¢¢®¢¢¢®¢¢¢ž ž ž ž žž ž žž ž* ž* ž* ž* ž* žžžž* ž ¨ ž ¨ ž ¨ ž ¨ žž žž ž¯   ž   ž   ž   ž   ž   ž  žž   ¢ž¾ž¾ž¾ž¾ž ž ž ž ¢¢¢% žž  ¢¢ž¢ž¢ž¢ž¢žžžžžž¢žžž ž ž ž ž ž ž ž ž ž žž ž ž 99(:;<=>?!!!!!!!!@A1BCDEFG„Ž‘’“”•ˆŠž   §¢¢¢¢¨ž  ž žž ž ¢žž ž ž ž¢  ¢  ž ž žž ž ž­¢¢ ž žž ž±¢ ¢¢±žžžž žžžžžž¢ ž ž žžž ž¢ ¢ž  ž žž ¬ ¢ ž ž ž ž ¢ ¢ ¸ ž ž žžž ž žž žž ¢ ¢¬ žž ž ž ž ¨ ¢ » ž ž žž žž ¬ ¢ žž   žžžžž žžž³¢¢¢¢¢¢ žžžž¢ žžžžž žžžžžžžž ž½ ¢¢¢ižž±¢¢±žžžžžžžžžžžžž¿²¢¢¢¢¾´¤žžžžžžž¢¢žžžžžžžž¬¢» ž     ÃÈÉÃÈÉÃÈÉÊÝÉÊãÉÝÏÊËÌÍÎÏž ¢ ¢žžžžžž¢žžž¢žžžžžžž¢žžžžžžžžžŸžžžžŸžžžžžžŸŸžžžŸžŸžžŸ  žž¢ ž¢ ž¢ ž¢ ž¢ ž¢ ž°  ž ¬ ¬ ¬ ¬ ž ž ž ž žžžžž žžž žž žž žž žž žž žžžžž ž ¥ ž ¥ ž ¥ ž ¥ žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžž³¢¢¢žžžžžžžžžžžžžžžžžžžžžžžž  ž±¢¢±žžž±žžž±žžž±žžž±žžž±žžžžžžžžžžžžžžžžžžž())*+,-.!!!!!!!!/012345678‰Šˆ‹Œ†‡ž ž ž ¥ ¢ ¦ž   ž  ž žžž ž ¢ žžžž ž¢¢¢ ž ž ž žž ž ¢ ž žž ž¢ ¢žž ¢ ´ ž ž ž¢¢žž  žžž ¢ ž  ž ž ž ¢ ¢ ž ž žžžž žžž žž °¢ ¢® žž ž  ž ž ¥ ¢¥ ž ž žž žž ¬ ¢ ž ž ³ž ¢ ¢  ž   ž ž ¢ ¢ ¢ ž ž ž žžÂfÂÂfÂÂfÂfÂÂÉÂÆÇž³¢¢¢¢žžžžž  žž  žžžžžžžžžžžŸžžžŸžžžžžžŸžŸŸŸŸ žž¢ž¢ž¢ž¢ž¢ž¢ž° ž  ž ž ž ž ž ž ž ž žžž ž žž žž žž žž žž žžž ž ¥ ž ¥ ž ¥ ž ¥ ž ž žžžž ž ž    ¢ žž  !!!!"#$%&'„„„„„„„†‡ˆž ž ž ¡¢£¤žžžžž ž ž ¢ž ž¦¢¢ ž   ž    ž žž ž      ¢       ž žžž¢ž ¤¢   ¢¬   žž¢¢žž   žžžž      ¢      ž   žž ž  ž    ¢   ¢ ž ž ž ž ž ž žžž¢¢¢¤žž   ž  ž    ž ¥ ¢ ž ž ž ž ž ž ž     µ ¢       ž ž¯ ž ¢ ¢  %ž žžž ž ¢¢   ¢   žžžž     ÂÃÂÂÃÂÂÃÂÂÃÂÂÃÂÄÅ¢žžž žž   žžžžžžžžžžžžžžžžŸŸžžžžŸžŸŸžŸžŸŸŸ ž°ž°ž°ž°ž°ž°ž°ž   žžžž¬®¢ žžž¬®¢ žžž¬®¢ žžž¬®¢ žžžžž žžžžž žžžžž žžžžž žžžž žžžžžžžžžžžžžžžžžžžžžžžž³ž³ž³ž³žž ž ž žžžžžžžžžžžžžžžžžž¢ žžžžžžžžžžžžžžžžž  „„„„„„„…†žžžŸžžžž¢žžž¢žžžžžžžžžžžžžžž§ª¢¢¢¦«¬žžžžžžžžžž³žž¢¢¢¢¬žžžž°¢¢¢·žžžžžžžžžžž¬®¢¢¢¢¢¢¢žžžžžžžžžžž¤³¢¢¢¢žžžžžžžžžžžž§º¨¢¢¢¢Ÿ¬žžžžžžžžžžžžžžž³¢žžžžžžžžžžžžž¢¢¢¢¢žžžž®žž¢¢¢¢žžžž¢¢¢¢¢·¸žžžžžžÂžžžžž žžžžžžžžžžžžžžžžžžžžžžžžžžŸŸŸžžžžžžŸŸžžžžžžžžžžžž°¢¢žžžžžžž®žžžžžžžž±žžžžžžžžžžžžžžžžžžž žžžžžžžžžžžžžžžžžžžžžžž¢¢žžžžžžžžžžžžžžžžžžž „„„„„„„žžžžžžžžžžžžžžžžžžžžžž®žžžžžžžžžžžžžžžžžžžžžžžžž„„„   lgeneral-1.3.1/src/themes/default/brief_frame.bmp0000664000175000017500000037000212140770455016700 00000000000000BMð(‰@ï33`ðøH€˜`T¨`¸(€¸Hhh(D(xüðHÐø88¬øx 4 ˆ@`XpÄà@¼¸xÐà@XP8œ¸xØèP„˜€P|xPŒ Hh˜X¤° <¸Xˆ8X8`¬¸XthXtp€äðP„€PtpXHH0X\HX˜˜P| €ø h¼Ø                                                                                                                                                                                                                                                                                     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!                                           lgeneral-1.3.1/src/themes/default/scen_dlg_buttons.bmp0000664000175000017500000005046612140770455020004 00000000000000BM6Q6(`HQœ œ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&1kž 1t 2o 0h +d (P 1 #? $O%K$C"B!<41,'"&&&ÿÿÿ1kž 1t 2o 0h +d (P 1 #? $O%K$C"B!<41,'"ÿÿÿÿÿÿ1kž 1t 2o 0h +d (P 1 #? $O%K$C"B!<41,'"ÿÿÿ]]]444333000---''' %%%$$$""" &&&sÞô‰Ï|´‘ÓÓŒÐ\;aL}„Ç€Åy¿pºd¬`¡[žV’Lˆ hu±–àß„×w¾Ju,L :c^ L‡&&&ÿÿÿjâúW”¹`]R%zž!¢ä¤è!¡ã^>hu±–àß„×w¾Ju,L :c^ L‡ÿÿÿÿÿÿjâúW”¹`]R%zž!¢ä¤è!¡ã^>hu±–àß„×w¾Ju,L :c^ L‡ÿÿÿ²²²{{{IIIccc‡‡‡‰‰‰†††QQQ999ddd€€€|||uuuiiiAAA'''555UUUEEE&&&^âø3¨ãËרsdM"u™"©ë ¬é"ªå`“>ht³”ÞˆÕ;l)i Y¢3f5a Pˆ$&&&ÿÿÿ^âø3¨ãËרsdM"u™"©ë ¬é"ªå`“>ht³”ÞˆÕ;l)i Y¢3f5a Pˆ$ÿÿÿÿÿÿ^âø3¨ãËרsdM"u™"©ë ¬é"ªå`“>ht³”ÞˆÕ;l)i Y¢3f5a Pˆ$ÿÿÿ°°°‹‹‹¬¬¬LLL___ŒŒŒ‹‹‹SSS999dddvvv666\\\TTT000111HHH&&&YÞø"Ÿä8°èµÃÎbXR#˜Î'³ï&³ì"©æa‘=lq³‡ÒExÉU•Ø]Ÿ*JPŽ'&&&ÿÿÿYÞø"Ÿä8°èµÃÎbXR#˜Î'³ï&³ì"©æa‘=lq³‡ÒExÉU•Ø]Ÿ*JPŽ'ÿÿÿÿÿÿYÞø"Ÿä8°èµÃÎbXR#˜Î'³ï&³ì"©æa‘=lq³‡ÒExÉU•Ø]Ÿ*JPŽ'ÿÿÿ®®®………‘‘‘žžžFFF}}}’’’‘‘‘‹‹‹SSS999cccuuuCCCkkkƒƒƒUUU&&&JJJ&&&QÞ÷ £ç§è3³ëËÓÐpgW)žÅ'¹ï'´ì"­ì\rœFnU*&&&ÿÿÿQÞ÷ £ç§è3³ëËÓÐpgW)žÅ'¹ï'´ì"­ì\rœFnU*ÿÿÿÿÿÿQÞ÷ £ç§è3³ëËÓÐpgW)žÅ'¹ï'´ì"­ì\rœFnU*ÿÿÿ¬¬¬ˆˆˆŠŠŠ’’’©©©PPP~~~•••’’’ŽŽŽPPP777^^^LLL‘‘‘hhhaaa===MMM&&&QÛ÷!¢çªê#²í8ºçËÎÂth^)ŸÈ'¸ò'±ï!¥ä^>bP‹Kš>ˆ:en­U’,&&&ÿÿÿQÛ÷!¢çªê#²í8ºçËÎÂth^)ŸÈ'¸ò'±ï!¥ä^>bP‹Kš>ˆ:en­U’,ÿÿÿÿÿÿQÛ÷!¢çªê#²í8ºçËÎÂth^)ŸÈ'¸ò'±ï!¥ä^>bP‹Kš>ˆ:en­U’,ÿÿÿ«««ˆˆˆŒŒŒ‘‘‘•••£££RRR€€€•••‘‘‘‰‰‰RRR777IIIJJJ>>>555```MMM&&&SÜõ" ç ¨è&°î'¹ï?ÁèËÏÆpe{)œÌ'²ï%ªí!¡ãZ8]Eo6Ya«d®X•.&&&ÿÿÿSÜõ" ç ¨è&°î'¹ï?ÁèËÏÆpe{)œÌ'²ï%ªí!¡ãZ8]Eo6Ya«d®X•.ÿÿÿÿÿÿSÜõ" ç ¨è&°î'¹ï?ÁèËÏÆpe{)œÌ'²ï%ªí!¡ãZ8]Eo6Ya«d®X•.ÿÿÿ«««‡‡‡‹‹‹‘‘‘•••™™™¤¤¤WWW’’’†††OOO333===000YYY[[[OOO&&&`Þø¢ç ªê%±ì'¸ï(Àó?Ãí¸ÃÅ%4` ”À#®ë¦éšÝGn7Y4R8\^V•!6&&&ÿÿÿ`Þø¢ç ªê%±ì'¸ï(Àó?Ãí¸ÃÅ%4` ”À#®ë¦éšÝGn7Y4R8\^V•!6ÿÿÿÿÿÿ`Þø¢ç ªê%±ì'¸ï(Àó?Ãí¸ÃÅ%4` ”À#®ë¦éšÝGn7Y4R8\^V•!6ÿÿÿ®®®ˆˆˆ‘‘‘•••™™™œœœ333xxxŠŠŠ===000...222TTTNNN&&&hâøŸä §è$¯ï'¸ï+Àó,Àô<ÀípŠ,/Kr?\’Õ8_7V3S0N6T R†!9&&&ÿÿÿhâøŸä §è$¯ï'¸ï+Àó,Àô<ÀípŠ,/Kr?\’Õ8_7V3S0N6T R†!9ÿÿÿÿÿÿhâøŸä §è$¯ï'¸ï+Àó,Àô<ÀípŠ,/Kr?\’Õ8_7V3S0N6T R†!9ÿÿÿ±±±………ŠŠŠ•••™™™ššš™™™ggg"""AAA555|||333000---+++///III&&&uâøæ å"®ë'´î(¼ð/Ãó,¿ò*§Ô'?Y./€C 4Knž8\5Q2O-G,C2&&&ÿÿÿuâøæ å"®ë'´î(¼ð/Ãó,¿ò*§Ô'?Y./€C 4Knž8\5Q2O-G,C2ÿÿÿÿÿÿuâøæ å"®ë'´î(¼ð/Ãó,¿ò*§Ô'?Y./€C 4Knž8\5Q2O-G,C2ÿÿÿ²²²………†††ŽŽŽ’’’———œœœ™™™†††777999,,,]]]222...,,,(((&&&&&&zâ÷áå#ªé$°ë%¶í)ºñ)¼ð1¥Î‹Ê(1r \[ 7Whž5S1N0J,C "&&&ÿÿÿzâ÷áå#ªé$°ë%¶í)ºñ)¼ð1¥Î‹Ê(1r \[ 7Whž5S1N0J,C "ÿÿÿÿÿÿzâ÷áå#ªé$°ë%¶í)ºñ)¼ð1¥Î‹Ê(1r \[ 7Whž5S1N0J,C "ÿÿÿ²²²„„„„„„“““–––———„„„~~~666((('''000ZZZ///,,,***&&&&&&†ßù•ߘâœÝ Ú¨á%¯ê$±ì'¯ì=~¥ffÅBH¢7;Q /Qd›2T-H-A !&&&ÿÿÿ†ßù•ߘâœÝ Ú¨á%¯ê$±ì'¯ì=~¥ffÅBH¢7;Q /Qd›2T-H-A !ÿÿÿÿÿÿ†ßù•ߘâœÝ Ú¨á%¯ê$±ì'¯ì=~¥ffÅBH¢7;Q /Qd›2T-H-A !ÿÿÿ³³³€€€‚‚‚‚‚‚‰‰‰‘‘‘iiiiiiOOODDD###+++WWW---(((&&&&&&ŠßöÛ€¿#Z„)L4Sz¯"«é!­ê ­ìV‘Ö†Žå?I4;U 0PU/L,B &&&ÿÿÿŠßöÛ€¿#Z„)L4Sz¯"«é!­ê ­ìV‘Ö†Žå?I4;U 0PU/L,B ÿÿÿÿÿÿŠßöÛ€¿#Z„)L4Sz¯"«é!­ê ­ìV‘Ö†Žå?I4;U 0PU/L,B ÿÿÿ²²²zzzmmmNNN&&&---gggŽŽŽ€€€‡‡‡NNNBBB$$$+++MMM***&&&&&&”àù‰Ø@yU5x¼8v2QÝ!¥è"¨é!¥èSÖˆæÉó:Èô4Èó2Ãó.¾ñ+¼ì'·í#´æJ\&&&ÿÿÿÙòý·Þô£ÞòŠßøwÝöZÙöRÒöKÒ÷IÑ÷AÑø=Íö>Éó:Èô4Èó2Ãó.¾ñ+¼ì'·í#´æJ\ÿÿÿÿÿÿÙòý·Þô£ÞòŠßøwÝöZÙöRÒöKÒ÷IÑ÷AÑø=Íö>Éó:Èô4Èó2Ãó.¾ñ+¼ì'·í#´æJ\ÿÿÿÃÃõµµ³³³³³³¯¯¯ªªª¦¦¦¦¦¦¦¦¦¥¥¥¢¢¢   ŸŸŸžžžœœœ™™™–––”””‘‘‘:::&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ''''''ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ '‰¥}''[¢©'ÿÿÿ‰¥}ÿÿÿÿÿÿ[¢©ÿÿÿÿÿÿ‰¥}ÿÿÿÿÿÿ[¢©ÿÿÿ )))111%%% 000222 'Ï܉k''_†Ïé'ÿÿÿÏ܉kÿÿÿÿÿÿ_†ÏéÿÿÿÿÿÿÏ܉kÿÿÿÿÿÿ_†Ïéÿÿÿ >>>BBB))) (((>>>EEE 'ëßéZ''i½íׯ'ÿÿÿëßéZÿÿÿÿÿÿi½íׯÿÿÿÿÿÿëßéZÿÿÿÿÿÿi½íׯÿÿÿ FFFBBBEEE***  888GGG@@@444 'öÿÚ{}''ˆ«ÚüÏ'ÿÿÿöÿÚ{}ÿÿÿÿÿÿˆ«ÚüÏÿÿÿÿÿÿöÿÚ{}ÿÿÿÿÿÿˆ«ÚüÏÿÿÿ IIILLLAAA$$$%%% (((333AAAKKK>>> 'ÃýòÏ©®ûïÛº'ÿÿÿÃýòÏ©®ûïÛºÿÿÿÿÿÿÃýòÏ©®ûïÛºÿÿÿ :::KKKHHH>>>222444KKKGGGAAA777 'åßÿÝÓÖüÂ'ÿÿÿåßÿÝÓÖüÂÿÿÿÿÿÿåßÿÝÓÖüÂÿÿÿ DDDBBBLLLBBB???@@@KKK::: 'ÔÆõ×ÕÊ'ÿÿÿÔÆõ×ÕÊÿÿÿÿÿÿÔÆõ×ÕÊÿÿÿ ???;;;III@@@???<<< '©²êï·¬'ÿÿÿ©²êï·¬ÿÿÿÿÿÿ©²êï·¬ÿÿÿ 222555FFFGGG666333 '…ËÓòÿÊ–z'ÿÿÿ…ËÓòÿÊ–zÿÿÿÿÿÿ…ËÓòÿÊ–zÿÿÿ '''<<>>EEE<<< ''''''ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ((ÿÿÿÿÿÿÿÿÿÿÿÿ(D5(ÿÿÿD5ÿÿÿÿÿÿD5ÿÿÿ((((gZND(ÿÿÿgZNDÿÿÿÿÿÿgZNDÿÿÿ<<<555...((((Xi¹îlO(ÿÿÿXi¹îlOÿÿÿÿÿÿXi¹îlOÿÿÿ333===mmmŒŒŒ???...(q|²Ý÷ÑzY(ÿÿÿq|²Ý÷ÑzYÿÿÿÿÿÿq|²Ý÷ÑzYÿÿÿBBBIIIiii‚‚‚‘‘‘{{{GGG444({‚Ͻ­ÉÄÏeg(ÿÿÿ{‚Ͻ­ÉÄÏegÿÿÿÿÿÿ{‚Ͻ­ÉÄÏegÿÿÿHHHLLLzzzooofffvvvssszzz;;;<<<(— Èëþ((õïÕtv(ÿÿÿ— ÈëþÿÿÿÿÿÿõïÕtvÿÿÿÿÿÿ— ÈëþÿÿÿÿÿÿõïÕtvÿÿÿYYY^^^vvvŠŠŠ•••}}}DDDEEE(Îüúû((ûØúvk(ÿÿÿÎüúûÿÿÿÿÿÿûØúvkÿÿÿÿÿÿÎüúûÿÿÿÿÿÿûØúvkÿÿÿyyy”””“““””””””“““EEE???(Õóÿ((ÿä¸y`(ÿÿÿÕóÿÿÿÿÿÿÿÿä¸y`ÿÿÿÿÿÿÕóÿÿÿÿÿÿÿÿä¸y`ÿÿÿ}}}––––––†††lllGGG888((((øë®|w(ÿÿÿÿÿÿÿÿÿÿÿÿøë®|wÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøë®|wÿÿÿ’’’ŠŠŠfffIIIFFF(øÝÛwn(ÿÿÿøÝÛwnÿÿÿÿÿÿøÝÛwnÿÿÿ’’’‚‚‚FFF@@@(ÿ餔(ÿÿÿÿ餔ÿÿÿÿÿÿÿ餔ÿÿÿ–––‰‰‰```WWW(øÎç(ÿÿÿøÎçÿÿÿÿÿÿøÎçÿÿÿ’’’yyyˆˆˆ(((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlgeneral-1.3.1/src/themes/default/confirm_buttons.bmp0000664000175000017500000002266612140770455017664 00000000000000BM¶%6(P(€%ë ë ''''''ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ '‰¥}''[¢©'ÿÿÿ‰¥}ÿÿÿÿÿÿ[¢©ÿÿÿÿÿÿ‰¥}ÿÿÿÿÿÿ[¢©ÿÿÿ )))111%%% 000222 'Ï܉k''_†Ïé'ÿÿÿÏ܉kÿÿÿÿÿÿ_†ÏéÿÿÿÿÿÿÏ܉kÿÿÿÿÿÿ_†Ïéÿÿÿ >>>BBB))) (((>>>EEE 'ëßéZ''i½íׯ'ÿÿÿëßéZÿÿÿÿÿÿi½íׯÿÿÿÿÿÿëßéZÿÿÿÿÿÿi½íׯÿÿÿ FFFBBBEEE***  888GGG@@@444 'öÿÚ{}''ˆ«ÚüÏ'ÿÿÿöÿÚ{}ÿÿÿÿÿÿˆ«ÚüÏÿÿÿÿÿÿöÿÚ{}ÿÿÿÿÿÿˆ«ÚüÏÿÿÿ IIILLLAAA$$$%%% (((333AAAKKK>>> 'ÃýòÏ©®ûïÛº'ÿÿÿÃýòÏ©®ûïÛºÿÿÿÿÿÿÃýòÏ©®ûïÛºÿÿÿ :::KKKHHH>>>222444KKKGGGAAA777 'åßÿÝÓÖüÂ'ÿÿÿåßÿÝÓÖüÂÿÿÿÿÿÿåßÿÝÓÖüÂÿÿÿ DDDBBBLLLBBB???@@@KKK::: 'ÔÆõ×ÕÊ'ÿÿÿÔÆõ×ÕÊÿÿÿÿÿÿÔÆõ×ÕÊÿÿÿ ???;;;III@@@???<<< '©²êï·¬'ÿÿÿ©²êï·¬ÿÿÿÿÿÿ©²êï·¬ÿÿÿ 222555FFFGGG666333 '…ËÓòÿÊ–z'ÿÿÿ…ËÓòÿÊ–zÿÿÿÿÿÿ…ËÓòÿÊ–zÿÿÿ '''<<>>EEE<<< ''''''ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ((ÿÿÿÿÿÿÿÿÿÿÿÿ(D5(ÿÿÿD5ÿÿÿÿÿÿD5ÿÿÿ((((gZND(ÿÿÿgZNDÿÿÿÿÿÿgZNDÿÿÿ<<<555...((((Xi¹îlO(ÿÿÿXi¹îlOÿÿÿÿÿÿXi¹îlOÿÿÿ333===mmmŒŒŒ???...(q|²Ý÷ÑzY(ÿÿÿq|²Ý÷ÑzYÿÿÿÿÿÿq|²Ý÷ÑzYÿÿÿBBBIIIiii‚‚‚‘‘‘{{{GGG444({‚Ͻ­ÉÄÏeg(ÿÿÿ{‚Ͻ­ÉÄÏegÿÿÿÿÿÿ{‚Ͻ­ÉÄÏegÿÿÿHHHLLLzzzooofffvvvssszzz;;;<<<(— Èëþ((õïÕtv(ÿÿÿ— ÈëþÿÿÿÿÿÿõïÕtvÿÿÿÿÿÿ— ÈëþÿÿÿÿÿÿõïÕtvÿÿÿYYY^^^vvvŠŠŠ•••}}}DDDEEE(Îüúû((ûØúvk(ÿÿÿÎüúûÿÿÿÿÿÿûØúvkÿÿÿÿÿÿÎüúûÿÿÿÿÿÿûØúvkÿÿÿyyy”””“““””””””“““EEE???(Õóÿ((ÿä¸y`(ÿÿÿÕóÿÿÿÿÿÿÿÿä¸y`ÿÿÿÿÿÿÕóÿÿÿÿÿÿÿÿä¸y`ÿÿÿ}}}––––––†††lllGGG888((((øë®|w(ÿÿÿÿÿÿÿÿÿÿÿÿøë®|wÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøë®|wÿÿÿ’’’ŠŠŠfffIIIFFF(øÝÛwn(ÿÿÿøÝÛwnÿÿÿÿÿÿøÝÛwnÿÿÿ’’’‚‚‚FFF@@@(ÿ餔(ÿÿÿÿ餔ÿÿÿÿÿÿÿ餔ÿÿÿ–––‰‰‰```WWW(øÎç(ÿÿÿøÎçÿÿÿÿÿÿøÎçÿÿÿ’’’yyyˆˆˆ(((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlgeneral-1.3.1/src/themes/default/folder.bmp0000664000175000017500000000074612140770455015717 00000000000000BMæ6( °  ]eEK=@/1 !#,/+-!"%"""###ƒŒv}€‹X^HNGMJOU^.1 &&&z„­º®»±¿ÅÓÐà©¶¼ËZa16 s|ãó׿ÅÓ£°¹Ç®»ÆÕKP=A """u~ÙéÌÛÈׯÕÀÎÅÔÁÐ?D6:(((t}×çáñÏÞÍÝÆÕËÙÓãHM=@((("""xËÚØçØçÚêáñØçæ÷_g[c(((gpkrs{s{bhkrДДx˜(((€Š°¼ÆÕ׿ÅÔ¿Ì$$$$$$&&&((((((˜£¥°¨µ¦³¥²·Ä$$$!!!$$$lgeneral-1.3.1/src/themes/default/cursors.bmp0000664000175000017500000004774212140770455016153 00000000000000BMâOzl4hOà à BGRs™™™442442442442442442442442442442442442442442442442442442442ÿÿÿÿ™™™ÿÿ333333333333333333333333333333333333333333333333ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ™™™ÿÿ333333333333333333333333333333333333333333ÿÿÿÿ442ÿÿÿÿÿÿÿÿÿÿ™™™ÿÿ333333333333333333333333333333333333ÿÿ442ÿÿ333442ÿÿÿÿÿÿÿÿÿÿ™™™ÿÿ333333333333333333333333333333ÿÿ333442ÿÿ333333442ÿÿÿ442XtpXtpXtpˆˆp442Xtp442Xtp442885442`Œˆ`ŒˆXtp`Œˆÿÿÿ™™™ÿÿ333333333333333333333333ÿÿ333333442ÿÿ333333333442ÿÿÿˆˆpxx`xx`xx`442442HlH442hhPhhPhhPhhPhhPhhPhhPhhP442442HlH442ˆˆp442442442442ÿÿÿˆˆp442442ÿÿÿffffffffffffffffffffffff˜˜ˆÿÿ333333333333333333ÿÿ333333333442ÿÿ333333333333442333333ÿÿ333333((442ˆˆphhP442442ˆˆphhP442442442442442ˆˆp442442442442ÿÿfff`Kffffff„\[Offf˜˜ˆÿÿ333333333333ÿÿ333333333333442ÿÿ333333333333333442˜˜€333øüø˜˜€333øüøÿÿ˜˜€333øüø333333333333333442885442442442442442442442442ˆˆp¨¨x˜ÿÿfff¸¬mIffffffÌŒlOfff˜˜ˆÿÿ333333ÿÿ333333333333333442ÿÿ333333333333333333442333˜˜€333øüø ²‹333˜˜€333øüø ²‹ÿÿÿÿ333˜˜€333øüø ²‹((442442442442442442442442442442442xx`˜˜€˜˜€˜˜€333442442442442˜˜€442442442442442442heQgbLbbKggQmgRnePnePnePneP…n[`VE333neP”udnePnePlj]lj]333333333333ÿÿÿÿfffèÙÁ´oKffffffÿ‘Kfff˜˜ˆÿÿÿÿ333333333333333333442ÿÿ333333333333333333333442èìà333333øüø ²‹èìà333333øüø ²‹ÿÿÿÿèìà333333øüø ²‹hhPhhPhhPhhPhhPhhPhhPhhPhhPhhPhhP442xx`˜˜€xx`xx`˜˜€Ø´¨Ø´¨Ø´¨ˆˆp442442˜˜€442442˜˜€ˆˆpÿÿÿˆˆp442˜˜€333333333885885885885885885885885885885885885885885885885333333333ÿÿÿÿfffÿÿÿΣvcVffffffÿÖ¯_fff˜˜ˆÿÿ333333333333333333333333442ÿÿ333333333333333333333333442èìà333øüø ²‹èìà333øüø ²‹ÿÿÿÿÿÿÿÿÿÿÿÿÿèìà333øüø ²‹hhPhhP333hhPhhP333hhPhhP333hhP333442333hhPhhPxx`xx`hhPhhPhhPˆˆp442442ˆˆp885442442442ÿÿÿ885442˜˜€885885885333lj]yld˜“Š”Š|lj];;9lj]~|m«©“u‹‹s·±¢ZNJlj]rl`Šxymc333333ÿÿÿÿÿÿÿÿÿÿÿÿÿfffffffffÿÒµzffffffffffffffffffÿÒ±pfffffffffÿÿ333442ÿÿ333333333333333333333333442ÿÿ333333333333333333333333ÿÿ˜˜ˆ ²‹øüø ²‹ ²‹øüø ²‹ÿÿÿÿ ²‹øüø ²‹ÈȸÈȸxx`˜˜€˜˜€xx`xx`˜˜€˜˜€˜˜€hhP442333333333˜˜€ÿÿÿÿÿÿÿÿÿØ´¨ÿÿÿ442442442885˜˜€ÿÿÿˆˆp442ˆˆplj]lj]lj]}}r‹whlYlj]pp`ÿÿÿÿfffÿÖÄ›ffffffÿÿÿΤƒu[fffÿÿ333333333442˜˜ˆÿÿ333333333333333333333442ÿÿ333333333333333333333ÿÿ˜˜ˆ ²‹¨¨øüøðäà333 ²‹¨¨øüøðäà333ÿÿÿÿ ²‹¨¨øüøðäà333ÈȸÈȸˆˆpÈȸÈȸÈȸˆˆpÈȸ¸¸¨¨¨¨¨442hhPÿÿÿÿÿÿØ´¨ÿÿÿ885885442ÿÿÿXtp885442442hhPXtpÿÿÿˆˆp¬¸«lj]ÿÿÿÿfffÿŲ̀ffffffÿÿ¼×Ífffÿÿ333333333333333442˜˜ˆÿÿ333333333333333333442ÿÿ333333333333333333ÿÿ˜˜ˆ ²‹¨¨øüøøüøøüøxx` ²‹¨¨øüøøüøøüøxx`ÿÿ ²‹¨¨øüøøüøøüøxx`ØØÐåå常¨ÈȸÈȸåå常¨ÈȸÈȸåååÈȸhhPØ´¨Ø´¨Ø´¨ˆˆpˆˆpÿÿfffÿÔÁffffffÿÿØ­fffÿÿ333333333333333333333442˜˜ˆÿÿ333333333333333442ÿÿ333333333333333ÿÿ˜˜ˆ ²‹¨¨øüøøüø ²‹¨¨øüøøüøÿÿ ²‹¨¨øüøøüøØØÐÿÿÿ¸¸¨ÈȸÈȸÿÿÿåååÈȸÈȸÈȸÿÿÿÿÿÿˆˆpÿÿÿˆˆpÿÿfffÿÿÿ·ffffffÿ÷fffÿÿ333333333333333333333333333442˜˜ˆÿÿ333333333333442ÿÿ333333333333ÿÿ˜˜ˆ ²‹333¨¨øüø ²‹ ²‹333¨¨øüø ²‹ÿÿÿ ²‹333¨¨øüøØèØÿÿÿffffffffffffffffffffffffÿÿ333333333333333333333333333333333442˜˜ˆÿÿ333333333442ÿÿ333333333ÿÿ˜˜ˆ ²‹333¨¨øüø ²‹ ²‹333¨¨øüø ²‹ÿÿÿ ²‹333¨¨øüø ²‹ÿÿÿÿÿ333333333333333333333333333333333333333442˜˜ˆÿÿ333333442ÿÿ333333ÿÿ˜˜ˆ ²‹X\HàÐÈøüø ²‹ ²‹X\HàÐÈøüø ²‹ÿÿÿÿÿ ²‹X\HàÐÈøüø ²‹ÿÿÿÿÿÿÿ333333333333333333333333333333333333333333333442˜˜ˆÿÿ333442ÿÿ333ÿÿ˜˜ˆ ²‹ˆŒ€àÐÈøüø ²‹ ²‹ˆŒ€àÐÈøüø ²‹ÿÿÿÿÿ ²‹ˆŒ€àÐÈøüø ²‹ÿÿÿÿÿÿÿ333333333333333333333333333333333333333333333333333442˜˜ˆÿÿ442ÿÿÿÿ˜˜ˆˆŒ€øüøøüø ²‹ˆŒ€øüøøüø ²‹ÿÿÿÿÿˆŒ€øüøøüø ²‹ÿÿÿÿÿÿÿ333333333333333333333333333333333333333333333333333333333442˜˜ˆÿÿÿÿ˜˜ˆøüø ²‹øüø ²‹ÿøüø ²‹ÿ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆ˜˜ˆlgeneral-1.3.1/src/themes/default/menu3_buttons.bmp0000664000175000017500000020706612140770455017255 00000000000000BM66(`ð  &&&&&&***&&&&&&&&&******&&&&&&&&&***&&&&&&******&&&&&&***&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ***ªªª¦¦¦¢¢¢ºººÆÆÆ¦¦¦®®®ÆÆÆÂ¦¦¦’’’ŽŽŽªªª¦¦¦ÆÆÆ¦¦¦’’’¦¦¦®®®ÆÆÆ***ÿÿÿªªª¦¦¦¢¢¢ºººÆÆÆ¦¦¦®®®ÆÆÆÂ¦¦¦’’’ŽŽŽªªª¦¦¦ÆÆÆ¦¦¦’’’¦¦¦®®®ÆÆÆÿÿÿÿÿÿªªª¦¦¦¢¢¢ºººÆÆÆ¦¦¦®®®ÆÆÆÂ¦¦¦’’’ŽŽŽªªª¦¦¦ÆÆÆ¦¦¦’’’¦¦¦®®®ÆÆÆÿÿÿ&&&¦¦¦___aaaŽŽŽvvvccc^^^iii~~~„„„ŸŸŸoooppp¡¡¡„„„ooodddcccŒŒŒÆÆÆ&&&ÿÿÿ¦¦¦___aaaŽŽŽvvvccc^^^iii~~~„„„ŸŸŸoooppp¡¡¡„„„ooodddcccŒŒŒÆÆÆÿÿÿÿÿÿ¦¦¦___aaaŽŽŽvvvccc^^^iii~~~„„„ŸŸŸoooppp¡¡¡„„„ooodddcccŒŒŒÆÆÆÿÿÿ***ÆÆÆ‘‘‘^^^ooo€€€ssskkkfffqqq€€€ˆˆˆ‡‡‡www‰‰‰iiibbbvvvˆˆˆ¦¦¦***ÿÿÿÆÆÆ‘‘‘^^^ooo€€€ssskkkfffqqq€€€ˆˆˆ‡‡‡www‰‰‰iiibbbvvvˆˆˆ¦¦¦ÿÿÿÿÿÿÆÆÆ‘‘‘^^^ooo€€€ssskkkfffqqq€€€ˆˆˆ‡‡‡www‰‰‰iiibbbvvvˆˆˆ¦¦¦ÿÿÿ&&&ÆÆÆ…J\jlTw@n:u?‚F„K!mRcE,sS]3 M* I&U+ A$ O+^2ŠŠŠ&&&ÿÿÿÆÆÆ…J\jlTw@n:u?‚F„K!mRcE,sS]3 M* I&U+ A$ O+^2ŠŠŠÿÿÿÿÿÿÆÆÆ…J\jlTw@n:u?‚F„K!mRcE,sS]3 M* I&U+ A$ O+^2ŠŠŠÿÿÿ***ÆÆÆ‚J~NZn‚J†J†J‚J‚JjF*ªrZ^2b6 B"f6 F& V2R.~~~***ÿÿÿÆÆÆ‚J~NZn‚J†J†J‚J‚JjF*ªrZ^2b6 B"f6 F& V2R.~~~ÿÿÿÿÿÿÆÆÆ‚J~NZn‚J†J†J‚J‚JjF*ªrZ^2b6 B"f6 F& V2R.~~~ÿÿÿ&&&¦¦¦ŠJŠJ^nRvZ–†>j^rZ–&‚6^N.~F^2 N* V2 F& F* J&r>ŠŠŠ&&&ÿÿÿ¦¦¦ŠJŠJ^nRvZ–†>j^rZ–&‚6^N.~F^2 N* V2 F& F* J&r>ŠŠŠÿÿÿÿÿÿ¦¦¦ŠJŠJ^nRvZ–†>j^rZ–&‚6^N.~F^2 N* V2 F& F* J&r>ŠŠŠÿÿÿ***¦¦¦ŠJ‚J~F^žŽ^šŽ^žŽnB*ªz^‚Jj:Z.RB N. J*N* N* N*¢¢¢***ÿÿÿ¦¦¦ŠJ‚J~F^žŽ^šŽ^žŽnB*ªz^‚Jj:Z.RB N. J*N* N* N*¢¢¢ÿÿÿÿÿÿ¦¦¦ŠJ‚J~F^žŽ^šŽ^žŽnB*ªz^‚Jj:Z.RB N. J*N* N* N*¢¢¢ÿÿÿ&&&ÆÆÆ†Jr>n:ŠJZ–†z:.‚F:z>&Z–†‚F F&n:~Fn: Z2n> J&Z2¢¢¢&&&ÿÿÿÆÆÆ†Jr>n:ŠJZ–†z:.‚F:z>&Z–†‚F F&n:~Fn: Z2n> J&Z2¢¢¢ÿÿÿÿÿÿÆÆÆ†Jr>n:ŠJZ–†z:.‚F:z>&Z–†‚F F&n:~Fn: Z2n> J&Z2¢¢¢ÿÿÿ***ÆÆÆr> J&j:z^z:"z6"^žŽ^š’^¢’ŠJŠJŠJz^z^nVb6r>‚Jžžž***ÿÿÿÆÆÆr> J&j:z^z:"z6"^žŽ^š’^¢’ŠJŠJŠJz^z^nVb6r>‚JžžžÿÿÿÿÿÿÆÆÆr> J&j:z^z:"z6"^žŽ^š’^¢’ŠJŠJŠJz^z^nVb6r>‚Jžžžÿÿÿ&&&¦¦¦ Z2^2~Bz^z:"ª~ZV’†ZvZn~F†JŠJŠJ†J†Jn:v>ŠŠŠ&&&ÿÿÿ¦¦¦ Z2^2~Bz^z:"ª~ZV’†ZvZn~F†JŠJŠJ†J†Jn:v>ŠŠŠÿÿÿÿÿÿ¦¦¦ Z2^2~Bz^z:"ª~ZV’†ZvZn~F†JŠJŠJ†J†Jn:v>ŠŠŠÿÿÿ&&&ªªªf: Z2vBz^ªz^‚F†J†J^fff†J†J‚FzB~Br> R.¢¢¢***ÿÿÿªªªf: Z2vBz^ªz^‚F†J†J^fff†J†J‚FzB~Br> R.¢¢¢ÿÿÿÿÿÿªªªf: Z2vBz^ªz^‚F†J†J^fff†J†J‚FzB~Br> R.¢¢¢ÿÿÿ***®®® Z2j:v>z:"Š.z^ŠJŠJ‚F‚F^jbbbjzBZšŠV’†ŠJ‚F¢¢¢&&&ÿÿÿ®®® Z2j:v>z:"Š.z^ŠJŠJ‚F‚F^jbbbjzBZšŠV’†ŠJ‚F¢¢¢ÿÿÿÿÿÿ®®® Z2j:v>z:"Š.z^ŠJŠJ‚F‚F^jbbbjzBZšŠV’†ŠJ‚F¢¢¢ÿÿÿ&&&¢¢¢j:r>vZªbJ*‚F†J†Jj:~B‚FzBRv^¢’f®žzB‚FŠJªªª***ÿÿÿ¢¢¢j:r>vZªbJ*‚F†J†Jj:~B‚FzBRv^¢’f®žzB‚FŠJªªªÿÿÿÿÿÿ¢¢¢j:r>vZªbJ*‚F†J†Jj:~B‚FzBRv^¢’f®žzB‚FŠJªªªÿÿÿ***¦¦¦a7o<ƒGlE&%lPzG†J({L g@e8xB~D@uP‚[—ŒZ’ƒ)[&„SÆÆÆ&&&ÿÿÿ¦¦¦a7o<ƒGlE&%lPzG†J({L g@e8xB~D@uP‚[—ŒZ’ƒ)[&„SÆÆÆÿÿÿÿÿÿ¦¦¦a7o<ƒGlE&%lPzG†J({L g@e8xB~D@uP‚[—ŒZ’ƒ)[&„SÆÆÆÿÿÿ&&&¦¦¦MeXJaUlxqpvrhkibccdddooo{{{{{{rrr~‰t‹„o{winlegfƒƒƒ²²²***ÿÿÿ¦¦¦MeXJaUlxqpvrhkibccdddooo{{{{{{rrr~‰t‹„o{winlegfƒƒƒ²²²ÿÿÿÿÿÿ¦¦¦MeXJaUlxqpvrhkibccdddooo{{{{{{rrr~‰t‹„o{winlegfƒƒƒ²²²ÿÿÿ***“““YYY```~~~uuu```gggzzzˆˆˆ™™™rrrrrrªªªwwwSSSqqqˆˆˆ¦¦¦&&&ÿÿÿ“““YYY```~~~uuu```gggzzzˆˆˆ™™™rrrrrrªªªwwwSSSqqqˆˆˆ¦¦¦ÿÿÿÿÿÿ“““YYY```~~~uuu```gggzzzˆˆˆ™™™rrrrrrªªªwwwSSSqqqˆˆˆ¦¦¦ÿÿÿ&&&ÆÆÆººº¦¦¦¦¦¦¯‡…¼¼¼Šž”•›˜ššš¦¦¦ƒ•Œš¡¶¶¶ºººªªª¦¦¦£¤¥¦¦²²²¦¦¦***ÿÿÿÆÆÆººº¦¦¦¦¦¦¯‡…¼¼¼Šž”•›˜ššš¦¦¦ƒ•Œš¡¶¶¶ºººªªª¦¦¦£¤¥¦¦²²²¦¦¦ÿÿÿÿÿÿÆÆÆººº¦¦¦¦¦¦¯‡…¼¼¼Šž”•›˜ššš¦¦¦ƒ•Œš¡¶¶¶ºººªªª¦¦¦£¤¥¦¦²²²¦¦¦ÿÿÿ***¦¦¦ÿÿÿå99ü îù ÿÿâ33õÿÿÿ€€€€€€888ªªª&&&ÿÿÿ¦¦¦ÿÿÿå99ü îù ÿÿâ33õÿÿÿ€€€€€€888ªªªÿÿÿÿÿÿ¦¦¦ÿÿÿå99ü îù ÿÿâ33õÿÿÿ€€€€€€888ªªªÿÿÿ&&&¦¦¦ä??ì&&þñì++þÿù ìÿòáCCÿÿÄÄÄ888®®®***ÿÿÿ¦¦¦ä??ì&&þñì++þÿù ìÿòáCCÿÿÄÄÄ888®®®ÿÿÿÿÿÿ¦¦¦ä??ì&&þñì++þÿù ìÿòáCCÿÿÄÄÄ888®®®ÿÿÿ***ÆÆÆ›››•••¦¦¦››››››¦¦¦žžž“““ŽŽŽ¦¦¦¢¢¢¨¨¨ººº¨¨¨¦¦¦¦¦¦®®®”””¦¦¦&&&ÿÿÿÆÆÆ›››•••¦¦¦››››››¦¦¦žžž“““ŽŽŽ¦¦¦¢¢¢¨¨¨ººº¨¨¨¦¦¦¦¦¦®®®”””¦¦¦ÿÿÿÿÿÿÆÆÆ›››•••¦¦¦››››››¦¦¦žžž“““ŽŽŽ¦¦¦¢¢¢¨¨¨ººº¨¨¨¦¦¦¦¦¦®®®”””¦¦¦ÿÿÿ&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöT==T==T==T==T==T==T==T==T==T==ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö))))))))))))))))))))))))))))))T==P;;G44B//B//B//B//B//B//B//F33T==ÿÿÿP;;G44B//B//B//B//B//B//B//F33ÿÿÿÿöÿÿÿP;;G44B//B//B//B//B//B//B//F33ÿÿÿÿö)))(((### """)))T==ZCChOO…ff¸••Ƨ§Í®®¾®‰‰¦^EEG44=,,T==ÿÿÿZCChOO…ff¸••Ƨ§Í®®¾®‰‰¦^EEG44=,,ÿÿÿÿöÿÿÿZCChOO…ff¸••Ƨ§Í®®¾®‰‰¦^EEG44=,,ÿÿÿÿö)))---444CCC___hhhlllbbbYYYTTT...###)))T==C00lQQ¦É¬¬T==T==T==T==T==T==¿žž”ooF335&&T==ÿÿÿC00lQQ¦É¬¬ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿žž”ooF335&&ÿÿÿÿöÿÿÿC00lQQ¦É¬¬ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿žž”ooF335&&ÿÿÿÿö))) 666TTTjjj))))))))))))))))))cccJJJ""")))T==kPP–qqÕººT==T==ÛÄÄ|aaD11T==ÿÿÿkPP–qqÕººÿÿÿÿÿÿÛÄÄ|aaD11ÿÿÿÿöÿÿÿkPP–qqÕººÿÿÿÿÿÿÛÄÄ|aaD11ÿÿÿÿö)))555KKKrrr))))))vvv???!!!)))T==O::€ccɬ¬T==T==Ô¹¹iPP;**T==ÿÿÿO::€ccɬ¬ÿÿÿÿÿÿÔ¹¹iPP;**ÿÿÿÿöÿÿÿO::€ccɬ¬ÿÿÿÿÿÿÔ¹¹iPP;**ÿÿÿÿö)))'''AAAjjj))))))qqq555)))T==:))oTT¯ŠŠT==T==Í®®\EE2##T==ÿÿÿ:))oTT¯ŠŠÿÿÿÿÿÿÍ®®\EE2##ÿÿÿÿöÿÿÿ:))oTT¯ŠŠÿÿÿÿÿÿÍ®®\EE2##ÿÿÿÿö)))888YYY))))))lll...)))T==`GGoTTy^^T==T==ɪª²B//T==ÿÿÿ`GGoTTy^^ÿÿÿÿÿÿɪª²B//ÿÿÿÿöÿÿÿ`GGoTTy^^ÿÿÿÿÿÿɪª²B//ÿÿÿÿö)))///888===))))))jjj\\\ )))T==H55kPPW@@T==T==»˜˜M888''T==ÿÿÿH55kPPW@@ÿÿÿÿÿÿ»˜˜M888''ÿÿÿÿöÿÿÿH55kPPW@@ÿÿÿÿÿÿ»˜˜M888''ÿÿÿÿö)))###555+++))))))aaa&&&)))T==·””lQQH55T==T==Ô¹¹`GGH55T==ÿÿÿ·””lQQH55ÿÿÿÿÿÿÔ¹¹`GGH55ÿÿÿÿöÿÿÿ·””lQQH55ÿÿÿÿÿÿÔ¹¹`GGH55ÿÿÿÿö)))^^^666###))))))qqq///###)))T==ÀŸŸ©„„F33T==T==”ookPPG44T==ÿÿÿÀŸŸ©„„F33ÿÿÿÿÿÿ”ookPPG44ÿÿÿÿöÿÿÿÀŸŸ©„„F33ÿÿÿÿÿÿ”ookPPG44ÿÿÿÿö)))dddUUU"""))))))JJJ555###)))T==¾gNNB//T==T==¸••~aa`GGT==ÿÿÿ¾gNNB//ÿÿÿÿÿÿ¸••~aa`GGÿÿÿÿöÿÿÿ¾gNNB//ÿÿÿÿÿÿ¸••~aa`GGÿÿÿÿö)))bbb444 ))))))___@@@///)))T==gNNÈ©©J55T==T==¥€€oTT:))T==ÿÿÿgNNÈ©©J55ÿÿÿÿÿÿ¥€€oTT:))ÿÿÿÿöÿÿÿgNNÈ©©J55ÿÿÿÿÿÿ¥€€oTT:))ÿÿÿÿö)))444iii$$$))))))TTT888)))T==²¥€€C00T==T==°‹‹uZZW@@T==ÿÿÿ²¥€€C00ÿÿÿÿÿÿ°‹‹uZZW@@ÿÿÿÿöÿÿÿ²¥€€C00ÿÿÿÿÿÿ°‹‹uZZW@@ÿÿÿÿö)))\\\TTT ))))))ZZZ;;;+++)))T==ÒµµlQQB//T==T==—rr…ffiPPT==ÿÿÿÒµµlQQB//ÿÿÿÿÿÿ—rr…ffiPPÿÿÿÿöÿÿÿÒµµlQQB//ÿÿÿÿÿÿ—rr…ffiPPÿÿÿÿö)))ooo666 ))))))LLLCCC555)))T== {{ɬ¬K66B//T==T==T==T==T==T==dKKoTTlQQC00T==ÿÿÿ {{ɬ¬K66B//ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdKKoTTlQQC00ÿÿÿÿöÿÿÿ {{ɬ¬K66B//ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdKKoTTlQQC00ÿÿÿÿö)))QQQjjj%%% ))))))))))))))))))222888666 )))T==¡¡—rrL77D11C00B//C00C00D11U>>kPPaHHT==ÿÿÿ¡¡—rrL77D11C00B//C00C00D11U>>kPPaHHÿÿÿÿöÿÿÿ¡¡—rrL77D11C00B//C00C00D11U>>kPPaHHÿÿÿÿö)))eeeLLL&&&!!! !!!***555000)))T==äÑѼ™™É¬¬Ï²²Â¡¡¾Ê­­½œœ”oorWWT==ÿÿÿäÑѼ™™É¬¬Ï²²Â¡¡¾Ê­­½œœ”oorWWÿÿÿÿöÿÿÿäÑѼ™™É¬¬Ï²²Â¡¡¾Ê­­½œœ”oorWWÿÿÿÿö)))}}}aaajjjmmmeeebbbkkkbbbJJJ999)))T==T==T==T==T==T==T==T==T==T==ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö))))))))))))))))))))))))))))))ÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿö***&&&******&&&***&&&******&&&&&&&&&&&&***&&&&&&&&&&&&&&&***&&&&&&þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿöþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿö&&&îêêîââîêêâââêêêââââââÞæææÞÞæÞÞâââÖÚÚâââÞÞÞâææÎÎÎÒÒÒÞÞÞÞÖÖÊÊÊ***þþþîêêîââîêêâââêêêÞâââââÞæææÞÞæÞÞâââÚÚÚâââÞâââææÎÎÎÎÎÎÞÚÚÖÒÒÎÎÎþþþÿöþþþîêêîââîêêâââêêêÞâââââÞæææÞÞæÞÞâââÚÚÚâââÞâââææÎÎÎÎÎÎÞÚÚÖÒÒÎÎÎþþþÿö  ***êîîæÞÞêêêêêêÚÚÚêêêæææÚææâææâæææââæÞÞÞÞ޾–––:::ZZZÚÚÚÞÚÚÚÚÚ&&&þþþêîîæÞÞêêêêêêÚÚÚêêêæææÚææâææâæææâââââÞÞÞ¾¾¾–––:::Z^^ÖÞÞÞÚÚÞÚÚþþþÿöþþþêîîæÞÞêêêêêêÚÚÚêêêæææÚææâææâæææâââââÞÞÞ¾¾¾–––:::Z^^ÖÞÞÞÚÚÞÚÚþþþÿöJJJJJJNJJFJJNJJJJJJFFFJJJFFJFFJFFFFFJFFFFFFJJFBBFBBJFFFBBBBB ***êêêîîîòòòîêêæÞÞîêêÚÚÚÖÚÚÚÖÖæææâââÆÆÆ‚~~^bbbbbªªªbbbæêêÖÖÖÖÒÒ***þþþêêêîîîòòòîêêæÞÞîêêÞÚÚÖÚÚÖÖÖæææâââÆÆÆ‚~~^bbfffª¦¦bbbæææÖÒÒÚÖÖþþþÿöþþþêêêîîîòòòîêêæÞÞîêêÞÚÚÖÚÚÖÖÖæææâââÆÆÆ‚~~^bbfffª¦¦bbbæææÖÒÒÚÖÖþþþÿö NNNNJJNJJJJJJFFJJJJJJFJJJJJJJJJJJJJJJFF:>>222FJJFJJFFF&&&òîî vvvþþþîêêêêêîêêêêêæêêâæææêêZ^^†††¾¾¾æææÎÎÎfffæææÞÚÚÚÚÚ&&&þþþîîî vvvþþþîêêêêêêêêêêêêêêâæææêêZZZ†††¾¾¾âææÎÎÎfffæææÚÚÚÞÚÚþþþÿöþþþîîî vvvþþþîêêêêêêêêêêêêêêâæææêêZZZ†††¾¾¾âææÎÎÎfffæææÚÚÚÞÚÚþþþÿöJJJJJJNNNNJJJFFJNNFFFBFFFFFJJJFJJ>>>***""666""JJJFBBFFF &&&¢ªªBBBnnn¶ºº¶¶¶–––²²²®®®®ªª¢¢¢BBB®®®²²²²²²–––b^^ººº²®®®®®***þþþ¦¦¦FBBnnnº¾¾¶¶¶–––²²²®®®®ªª¢¢¢BBB®²²²®®²²²š––^^^ººº²²²®²²þþþÿöþþþ¦¦¦FBBnnnº¾¾¶¶¶–––²²²®®®®ªª¢¢¢BBB®²²²®®²²²š––^^^ººº²²²®²²þþþÿö NJJ&&&RRRNNNJJJNJJJNNJJJJJJFJJ...:>>JJJBBB"NJJFFFBFF***îîîòööŠŽŽ®®®ÖÖÖBBBöööêîîÖÚÚZ^^êîîÚÚÚêââ¶¶¶bbbâææÖÖÖÒÒÒ&&&þþþîîîòööŠŠŠ®®®ÖÖÖBBBöööêîîÖÚÚ^^^êêêÚÚÚêââ¶¶¶fffâææÖÒÒÖÒÒþþþÿöþþþîîîòööŠŠŠ®®®ÖÖÖBBBöööêîîÖÚÚ^^^êêêÚÚÚêââ¶¶¶fffâææÖÒÒÖÒÒþþþÿö666"""::::::...:::::::66666666:66:::222::::::::: ***¶¶¶²²²º¶¶nnn¢¢¢¾¾¾žžž>>>®®®®®®RRRººº¶²²²²²¢¦¦^^^ººº²®®®²²***þþþ¶¶¶²²²¶¶¶nnn¢¢¢º¾¾šžž >>>®®®®®®RRRººº²²²²²²¢¦¦^^^ººº®®®®²²þþþÿöþþþ¶¶¶²²²¶¶¶nnn¢¢¢º¾¾šžž >>>®®®®®®RRRººº²²²²²²¢¦¦^^^ººº®®®®²²þþþÿöJNNNNN***:::FFFRNNJJJBFFJJJFJJJJJ:::JJJBFFBBB&&&ÚÖÖÖÖÖÒÒÒjjj²¶¶ÒÖÖÖÞÞ’’’ ªªªÎÎÎZ^^ÚÖÖÎÎÎÎÎή®®***¢ªªÒÒÒÊÊÊ&&&þþþÚÖÖÖÖÖÒÒÒjjj²¶¶ÒÒÒÞÞÞ–––ªªªÎÎÎZ^^ÖÖÖÎÎÎÎÎή®®***¢ªªÒÒÒÊÊÊþþþÿöþþþÚÖÖÖÖÖÒÒÒjjj²¶¶ÒÒÒÞÞÞ–––ªªªÎÎÎZ^^ÖÖÖÎÎÎÎÎή®®***¢ªªÒÒÒÊÊÊþþþÿö:::::::>>"&&222:>>222::::::>>>::::::666:>>:::::: &&&ÖÖÖÖÖÖÖÖÖbbb¶²²ÒÒÒÒÒÒÖÖÖvvvºººÊÊÊb^^ÞÚÚÎÎÎÊÊÊÊÆÆFBB’’’¾ÂÂ&&&þþþÖÚÚÖÖÖÖÖÖbbbº¶¶ÒÒÒÒÒÒÖÚÚrrrº¶¶ÊÊÊb^^ÚÚÚÎÎÎÎÎÎÊÆÆFFF’’’ÂÂÂþþþÿöþþþÖÚÚÖÖÖÖÖÖbbbº¶¶ÒÒÒÒÒÒÖÚÚrrrº¶¶ÊÊÊb^^ÚÚÚÎÎÎÎÎÎÊÆÆFFF’’’ÂÂÂþþþÿöFFFFFFBBB""":::BFFJFF...:::BBBFFFBBBBBB:::666BBBBBB***ºººººº¶¶¶nnnšžž¶¶¶¶¶¶ºººZ^^–––ªªªjjj¾¾¾¶¶¶®¾¾ªªª&&&šžž&&&þþþºººººº¶¶¶nnnšžž²¶¶¶¶¶¶¶¶^^^–––ªªªjjj¾¾¾¶²²®¾¾ªªª"&&šžžþþþÿöþþþºººººº¶¶¶nnnšžž²¶¶¶¶¶¶¶¶^^^–––ªªªjjj¾¾¾¶²²®¾¾ªªª"&&šžžþþþÿöFBBFBBFFF":::FBBBFFFFF&&&:::>>>FFFBBBBBB>>>.22>>> ***òòòöúúêîîvvvÊÆÆöööâââêêêrvvÊÊÊþúú–’’†††æââÚÚÚæÞÞÒÖÖ¾¾¾ÂÆÆ***þþþòöööööîîîvzzÊÆÆöòòâââêêêvvvÊÊÊþþþ–––†††æââÚÚÚâââÒÒÒÂÂÂÂÆÆþþþÿöþþþòöööööîîîvzzÊÆÆöòòâââêêêvvvÊÊÊþþþ–––†††æââÚÚÚâââÒÒÒÂÂÂÂÆÆþþþÿö::::>>:>>"""222:::::::::.22:66"""::::::::::66222&&&¢ªª¢¢¢ªªªZZZ–––®®®²²²ªªªVRR’’’®®®ºººbbbŽŽŽ®®®¶¶¶®®®²²²®®®&&&þþþ¦¦¦¢¦¦¢ªªZZZ–––®²²¶²²®®®RRR’’’®ªª¶¶¶jffŽŽŽ®²²¶²²²²²®®®®®®þþþÿöþþþ¦¦¦¢¦¦¢ªªZZZ–––®²²¶²²®®®RRR’’’®ªª¶¶¶jffŽŽŽ®²²¶²²²²²®®®®®®þþþÿö JNNNNNJJJ***BBBNNNFJJNNN&&&BBBRRR.22...FFFFFFFJJBBB>>>>>> &&&öúúöööþþþ¢žž¢¢¢ºººöúúòöö~~~ÊÊÊîêêæææêîîÒÖÖÖÖÖæâââââÞÞÞâââÖÞÞ***þþþööööööþþþ¢¢¢¢žž¾¾¾öööòöövzzÊÊÊêêêæææîîîÖÖÖÖÖÖææææÞÞÞÞÞÞÞÞÞÞÞþþþÿöþþþööööööþþþ¢¢¢¢žž¾¾¾öööòöövzzÊÊÊêêêæææîîîÖÖÖÖÖÖææææÞÞÞÞÞÞÞÞÞÞÞþþþÿö666666:::...666:66:66...:66:::"...::::::::::::666***òòòöööòööâææªªªŽŽŽ’ŽŽººº‚zzÆÆÆêêêêêêêêêæêêæâââæææâââââÞÖÖÒÒÒ&&&þþþòòòöööòòòæææªªªŠŠŠ’’’º¾¾‚zzÊÊÊêêêêêêêêêâææææææâââââæââÞÖÖÒÖÖþþþÿöþþþòòòöööòòòæææªªªŠŠŠ’’’º¾¾‚zzÊÊÊêêêêêêêêêâææææææâââââæââÞÖÖÒÖÖþþþÿöRRRRNNRNN666222>>>RRRNRR&&&BBBJJJJJJNNNFFFFBBJJJJJJJFFFJJFJJ &&&úúúæêêòööòööòòòæâ⢢¢ŠŠŠ222ÊÆÆîîîêêêÖÚÚÚææÚææÞÚÚæââÞââÒÒÒÖÞÞ***þþþúúúêêêööööööòîîæâ⢢¢Š††...ÊÊÊîêêêêêÚÚÚÚææÞææÞÖÖââââââÒÒÒÖÞÞþþþÿöþþþúúúêêêööööööòîîæâ⢢¢Š††...ÊÊÊîêêêêêÚÚÚÚææÞææÞÖÖââââââÒÒÒÖÞÞþþþÿö NNNNNNNNNJJJ666......:>>&&&BBBJJJJJJJNNJJJJJJJJJJFFJJJFFFBBB***ööööööööööòòöòòòòòêêêÚÚÚÊÊÊæææêêêææææææææææââæâââââÞÞÞÞÞÞÞÞÞ&&&þþþöööòööòööòòòòòòòòòêêêÚÚÚÊÊÊæââêêêæææâææâææâââââââââÞÞÞÖÞÞÞÞÞþþþÿöþþþöööòööòööòòòòòòòòòêêêÚÚÚÊÊÊæââêêêæææâææâææâââââââââÞÞÞÖÞÞÞÞÞþþþÿöNNNJJJNRRNRRNNNJJJ666***>>>NNNNNNFFFFJJFJJJFFJJJFFFBBBFJJ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿöþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿöNRRNRRNRRJNNJNNJNNJNNBFFBBBFJJJNNFJJFJJFJJFJJFJJFJJFJJFJJFJJÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿö                      (((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ((()Ì΃ððˆðñ(((ÿÿÿ)Ì΃ððˆðñÿÿÿÿÿÿ)Ì΃ððˆðñÿÿÿNNN______((( œŸƒððˆðñ½ôô(((ÿÿÿ œŸƒððˆðñ½ôôÿÿÿÿÿÿ œŸƒððˆðñ½ôôÿÿÿ<<<______ccc(((((((((((((((((((((IJ\êëƒðð‘ññ°òó‘ññ(((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿIJ\êëƒðð‘ññ°òó‘ññÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿIJ\êëƒðð‘ññ°òó‘ññÿÿÿ[[[___```bbb```(((oQ †mbTvîïyïð‘ññ½ôôÛõõ(((ÿÿÿoQ †mbTvîïyïð‘ññ½ôôÛõõÿÿÿÿÿÿoQ †mbTvîïyïð‘ññ½ôôÛõõÿÿÿ$$$^^^^^^```ccceee(((ÕÿÿþøÿêiqîîyïðñòÄôôÛõõ(((ÿÿÿÕÿÿþøÿêiqîîyïðñòÄôôÛõõÿÿÿÿÿÿÕÿÿþøÿêiqîîyïðñòÄôôÛõõÿÿÿ ???]]]^^^aaadddeee((((((((((((CDSUQR"«¯Vèéƒðð°òóÎôõâõõJæç(((ÿÿÿÿÿÿÿÿÿÿÿÿCDSUQR"«¯Vèéƒðð°òóÎôõâõõJæçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCDSUQR"«¯Vèéƒðð°òóÎôõâõõJæçÿÿÿ AAAZZZ___bbbdddeeeYYY(((((((((CDIJXYef3ØÚyïð§òòÎôõâõõìõöñöö(((ÿÿÿÿÿÿÿÿÿCDIJXYef3ØÚyïð§òòÎôõâõõìõöñööÿÿÿÿÿÿÿÿÿÿÿÿCDIJXYef3ØÚyïð§òòÎôõâõõìõöñööÿÿÿ"""&&&RRR^^^aaadddeeeffffff(((,-BCIJLMSU[\yzfi~€½ôôâõõòööòööìõö(((ÿÿÿ,-BCIJLMSU[\yzfi~€½ôôâõõòööòööìõöÿÿÿÿÿÿ,-BCIJLMSU[\yzfi~€½ôôâõõòööòööìõöÿÿÿ """...'''000ccceeefffffffff(((EFQRQRXY`c`c€ƒ$ÁÃfi œŸâõõèõöâõõèõõ(((ÿÿÿEFQRQRXY`c`c€ƒ$ÁÃfi œŸâõõèõöâõõèõõÿÿÿÿÿÿEFQRQRXY`c`c€ƒ$ÁÃfi œŸâõõèõöâõõèõõÿÿÿ"""$$$$$$111III'''<<>>333YYYfffaaaTTTZZZ[[[]]](((“—0ÔÕ0ÔÕ%ÃÆ(ËÍ0ÔÕ#º¼[êêfìí œŸ(ËÍ;ÝÞCâä\êë(((ÿÿÿ“—0ÔÕ0ÔÕ%ÃÆ(ËÍ0ÔÕ#º¼[êêfìí œŸ(ËÍ;ÝÞCâä\êëÿÿÿÿÿÿ“—0ÔÕ0ÔÕ%ÃÆ(ËÍ0ÔÕ#º¼[êêfìí œŸ(ËÍ;ÝÞCâä\êëÿÿÿ888QQQQQQJJJMMMQQQGGG[[[\\\<<>>+++000888FFFKKK(((\êë,ÎÑ~€tx‘“"¡¤$ÁÃ(((ÿÿÿ\êë,ÎÑ~€tx‘“"¡¤$ÁÃÿÿÿÿÿÿ\êë,ÎÑ~€tx‘“"¡¤$ÁÃÿÿÿ[[[OOO000---777===III(((\êëz}tx‹"¡¤ œŸ(((ÿÿÿ\êëz}tx‹"¡¤ œŸÿÿÿÿÿÿ\êëz}tx‹"¡¤ œŸÿÿÿ[[[///---555===<<<(((\ê뀃„ˆ œŸ(((ÿÿÿ\ê뀃„ˆ œŸÿÿÿÿÿÿ\ê뀃„ˆ œŸÿÿÿ[[[111333<<<(((\êë‹€ƒ(((ÿÿÿ\êë‹€ƒÿÿÿÿÿÿ\êë‹€ƒÿÿÿ[[[555111(((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(((((((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(((QQ(((((()Ì΃ððˆðñ(((ÿÿÿQQÿÿÿÿÿÿ)Ì΃ððˆðñÿÿÿÿÿÿQQÿÿÿÿÿÿ)Ì΃ððˆðñÿÿÿNNN______(((ÂJ(((((( œŸƒððˆðñ½ôô(((ÿÿÿÂJÿÿÿÿÿÿ œŸƒððˆðñ½ôôÿÿÿÿÿÿÂJÿÿÿÿÿÿ œŸƒððˆðñ½ôôÿÿÿ<<<______ccc(((((((((îk((((((IJ\êëƒðð‘ññ°òó‘ññ(((ÿÿÿÿÿÿÿÿÿîkÿÿÿÿÿÿIJ\êëƒðð‘ññ°òó‘ññÿÿÿÿÿÿÿÿÿÿÿÿîkÿÿÿÿÿÿIJ\êëƒðð‘ññ°òó‘ññÿÿÿ[[[___```bbb```(((oaä²mbTvîïyïð‘ññ½ôôÛõõ(((ÿÿÿoaä²mbTvîïyïð‘ññ½ôôÛõõÿÿÿÿÿÿoaä²mbTvîïyïð‘ññ½ôôÛõõÿÿÿ$$$^^^^^^```ccceee(((ÿÿÿþøÿêiqîîyïðñòÄôôÛõõ(((ÿÿÿÿÿÿþøÿêiqîîyïðñòÄôôÛõõÿÿÿÿÿÿÿÿÿþøÿêiqîîyïðñòÄôôÛõõÿÿÿ ???]]]^^^aaadddeee((((((((((((ðSUQR"«¯Vèéƒðð°òóÎôõâõõJæç(((ÿÿÿÿÿÿÿÿÿðSUQR"«¯Vèéƒðð°òóÎôõâõõJæçÿÿÿÿÿÿÿÿÿÿÿÿðSUQR"«¯Vèéƒðð°òóÎôõâõõJæçÿÿÿ AAAZZZ___bbbdddeeeYYY(((((((((þjXYef3ØÚyïð§òòÎôõâõõìõöñöö(((ÿÿÿÿÿÿÿÿÿþjXYef3ØÚyïð§òòÎôõâõõìõöñööÿÿÿÿÿÿÿÿÿÿÿÿþjXYef3ØÚyïð§òòÎôõâõõìõöñööÿÿÿ"""&&&RRR^^^aaadddeeeffffff(((,-BCIJø [\yzfi~€½ôôâõõòööòööìõö(((ÿÿÿ,-BCIJø [\yzfi~€½ôôâõõòööòööìõöÿÿÿÿÿÿ,-BCIJø [\yzfi~€½ôôâõõòööòööìõöÿÿÿ """...'''000ccceeefffffffff(((EFQRQRXY`c`c€ƒ$ÁÃfi œŸâõõèõöâõõèõõ(((ÿÿÿEFQRQRXY`c`c€ƒ$ÁÃfi œŸâõõèõöâõõèõõÿÿÿÿÿÿEFQRQRXY`c`c€ƒ$ÁÃfi œŸâõõèõöâõõèõõÿÿÿ"""$$$$$$111III'''<<>>333YYYfffaaaTTTZZZ[[[]]](((“—0ÔÕ0ÔÕ%ÃÆ(ËÍ0ÔÕ#º¼[êêfìí œŸ(ËÍ;ÝÞCâä\êë(((ÿÿÿ“—0ÔÕ0ÔÕ%ÃÆ(ËÍ0ÔÕ#º¼[êêfìí œŸ(ËÍ;ÝÞCâä\êëÿÿÿÿÿÿ“—0ÔÕ0ÔÕ%ÃÆ(ËÍ0ÔÕ#º¼[êêfìí œŸ(ËÍ;ÝÞCâä\êëÿÿÿ888QQQQQQJJJMMMQQQGGG[[[\\\<<>>+++000888FFFKKK(((\êë,ÎÑ~€tx‘“"¡¤$ÁÃ(((ÿÿÿ\êë,ÎÑ~€tx‘“"¡¤$ÁÃÿÿÿÿÿÿ\êë,ÎÑ~€tx‘“"¡¤$ÁÃÿÿÿ[[[OOO000---777===III(((\êëz}tx‹"¡¤ œŸ(((ÿÿÿ\êëz}tx‹"¡¤ œŸÿÿÿÿÿÿ\êëz}tx‹"¡¤ œŸÿÿÿ[[[///---555===<<<(((\ê뀃„ˆ œŸ(((ÿÿÿ\ê뀃„ˆ œŸÿÿÿÿÿÿ\ê뀃„ˆ œŸÿÿÿ[[[111333<<<(((\êë‹€ƒ(((ÿÿÿ\êë‹€ƒÿÿÿÿÿÿ\êë‹€ƒÿÿÿ[[[555111(((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿöÿö(((((((((ÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿö((()Ì΃ððˆðñ(((ÿÿÿ)Ì΃ððˆðñÿÿÿÿöÿÿÿ)Ì΃ððˆðñÿÿÿÿöNNN______((( œŸƒððˆðñ½ôô(((ÿÿÿ œŸƒððˆðñ½ôôÿÿÿÿöÿÿÿ œŸƒððˆðñ½ôôÿÿÿÿö<<<______ccc(((IJ\êëƒðð‘ññ°òó‘ññ(((ÿÿÿIJ\êëƒðð‘ññ°òó‘ññÿÿÿÿöÿÿÿIJ\êëƒðð‘ññ°òó‘ññÿÿÿÿö[[[___```bbb```(((EF`cvîïyïð‘ññ½ôôÛõõ(((ÿÿÿEF`cvîïyïð‘ññ½ôôÛõõÿÿÿÿöÿÿÿEF`cvîïyïð‘ññ½ôôÛõõÿÿÿÿö$$$^^^^^^```ccceee(((EFSU"§¨qîîyïðñòÄôôÛõõ(((ÿÿÿEFSU"§¨qîîyïðñòÄôôÛõõÿÿÿÿöÿÿÿEFSU"§¨qîîyïðñòÄôôÛõõÿÿÿÿö ???]]]^^^aaadddeee(((CDSUQR"«¯Vèéƒðð°òóÎôõâõõJæç(((ÿÿÿCDSUQR"«¯Vèéƒðð°òóÎôõâõõJæçÿÿÿÿöÿöÿöÿÿÿCDSUQR"«¯Vèéƒðð°òóÎôõâõõJæçÿÿÿÿö AAAZZZ___bbbdddeeeYYY(((((((((CDIJXYef3ØÚyïð§òòÎôõâõõìõöñöö(((ÿÿÿÿÿÿÿÿÿCDIJXYef3ØÚyïð§òòÎôõâõõìõöñööÿÿÿÿöÿÿÿÿÿÿÿÿÿCDIJXYef3ØÚyïð§òòÎôõâõõìõöñööÿÿÿÿö"""&&&RRR^^^aaadddeeeffffff(((,-BCIJLMSU[\yzfi~€½ôôâõõòööòööìõö(((ÿÿÿ,-BCIJLMSU[\yzfi~€½ôôâõõòööòööìõöÿÿÿÿöÿÿÿ,-BCIJLMSU[\yzfi~€½ôôâõõòööòööìõöÿÿÿÿö """...'''000ccceeefffffffff(((EFQRQRXY`c`c€ƒ$ÁÃfi œŸâõõèõöâõõèõõ(((ÿÿÿEFQRQRXY`c`c€ƒ$ÁÃfi œŸâõõèõöâõõèõõÿÿÿÿöÿÿÿEFQRQRXY`c`c€ƒ$ÁÃfi œŸâõõèõöâõõèõõÿÿÿÿö"""$$$$$$111III'''<<>>333YYYfffaaaTTTZZZ[[[]]](((“—0ÔÕ0ÔÕ%ÃÆ(ËÍ0ÔÕ#º¼[êêfìí œŸ(ËÍ;ÝÞCâä\êë(((ÿÿÿ“—0ÔÕ0ÔÕ%ÃÆ(ËÍ0ÔÕ#º¼[êêfìí œŸ(ËÍ;ÝÞCâä\êëÿÿÿÿöÿÿÿ“—0ÔÕ0ÔÕ%ÃÆ(ËÍ0ÔÕ#º¼[êêfìí œŸ(ËÍ;ÝÞCâä\êëÿÿÿÿö888QQQQQQJJJMMMQQQGGG[[[\\\<<>>+++000888FFFKKK(((\êë,ÎÑ~€tx‘“"¡¤$ÁÃ(((ÿÿÿ\êë,ÎÑ~€tx‘“"¡¤$ÁÃÿÿÿÿöÿÿÿ\êë,ÎÑ~€tx‘“"¡¤$ÁÃÿÿÿÿö[[[OOO000---777===III(((\êëz}tx‹"¡¤ œŸ(((ÿÿÿ\êëz}tx‹"¡¤ œŸÿÿÿÿöÿÿÿ\êëz}tx‹"¡¤ œŸÿÿÿÿö[[[///---555===<<<(((\ê뀃„ˆ œŸ(((ÿÿÿ\ê뀃„ˆ œŸÿÿÿÿöÿÿÿ\ê뀃„ˆ œŸÿÿÿÿö[[[111333<<<(((\êë‹€ƒ(((ÿÿÿ\êë‹€ƒÿÿÿÿöÿÿÿ\êë‹€ƒÿÿÿÿö[[[555111(((((((((ÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿö((((((((((((((((((((((((((((((((((((((((((((((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö((((((ÿÿÿÿÿÿÿöÿÿÿÿÿÿÿö(((¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨(((ÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿöÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿö(((¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨(((ÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿöÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿö(((¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨(((ÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿöÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿö(((¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨(((ÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿöÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿö(((¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨(((ÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿöÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿö(((¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨(((ÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿöÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿö(((¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨(((ÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿöÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿö(((¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨(((ÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿöÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿö(((¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨(((ÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿöÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿö(((¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨(((ÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿöÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿö(((¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨(((ÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿöÿÿÿ¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨¥É¨ÿÿÿÿö((((((((((((((((((((((((((((((((((((((((((((((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿö(((!!!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö (((¥¥¥jjjSSSEEECCC;;;;;;666777AAACCC???::::::000000ÿÿÿ¥¥¥jjjSSSEEECCC;;;;;;666777AAACCC???::::::000000ÿÿÿÿöÿÿÿ¥¥¥jjjSSSEEECCC;;;;;;666777AAACCC???::::::000000ÿÿÿÿöLLL000&&& (((´´´µµµ¤¤¤tttmmmxxx}}}ŒŒŒŒŒŒ•••ŠŠŠ```222ÿÿÿ´´´µµµ¤¤¤tttmmmxxx}}}ŒŒŒŒŒŒ•••ŠŠŠ```222ÿÿÿÿöÿÿÿ´´´µµµ¤¤¤tttmmmxxx}}}ŒŒŒŒŒŒ•••ŠŠŠ```222ÿÿÿÿöRRRSSSKKKAAA;;;555222777999;;;@@@@@@DDD???;;;;;;,,, (((ûûûÞÞÞÖÖÖðððÿÿÿþþþýýýöööýýýúúúööööööööööööööö××פ¤¤HHH555ÿÿÿûûûÞÞÞÖÖÖðððÿÿÿþþþýýýöööýýýúúúööööööööööööööö××פ¤¤HHH555ÿÿÿÿöÿÿÿûûûÞÞÞÖÖÖðððÿÿÿþþþýýýöööýýýúúúööööööööööööööö××פ¤¤HHH555ÿÿÿÿössseeebbbmmmuuuttttttqqqtttrrrqqqqqqqqqqqqqqqbbbKKKAAA!!! (((ììì¹¹¹ººº×××ÿÿÿÈÈÈ[[[000ÿÿÿììì¹¹¹ººº×××ÿÿÿÈÈÈ[[[000ÿÿÿÿöÿÿÿììì¹¹¹ººº×××ÿÿÿÈÈÈ[[[000ÿÿÿÿölllTTTUUUbbb uuu\\\*** (((ÙÙÙ¤¤¤‰‰‰!!!,,,+++&&&ÿÿÿeee555ÿÿÿÙÙÙ¤¤¤‰‰‰!!!,,,+++&&&ÿÿÿeee555ÿÿÿÿöÿÿÿÙÙÙ¤¤¤‰‰‰!!!,,,+++&&&ÿÿÿeee555ÿÿÿÿöcccKKK???  uuu... +++ãã㇇‡@@@ ---777kkk£££ggg555ÿÿÿsss777ÿÿÿãã㇇‡@@@ ---777kkk£££ggg555ÿÿÿsss777ÿÿÿÿöÿÿÿãã㇇‡@@@ ---777kkk£££ggg555ÿÿÿsss777ÿÿÿÿöhhh>>> 111KKK/// uuu444 ///úúú{{{777 ±ëø±ëøÓõû+++;;;~~~ÿÿÿÿÿÿÿÿÿ---ÿÿÿŽŽŽ999ÿÿÿúúú{{{777 ±ëø±ëøÓõû+++;;;~~~ÿÿÿÿÿÿÿÿÿ---ÿÿÿŽŽŽ999ÿÿÿÿöÿÿÿúúú{{{777 ±ëø±ëøÓõû+++;;;~~~ÿÿÿÿÿÿÿÿÿ---ÿÿÿŽŽŽ999ÿÿÿÿörrr888jjjjjj ooo:::uuuuuuuuu uuuAAA ///ÿÿÿ{{{::: Õ÷ü½ïù###'''ÿÿÿ”””ÿÿÿÿÿÿ¢¢¢DDDÿÿÿÿÿÿ{{{::: Õ÷ü½ïù###'''ÿÿÿ”””ÿÿÿÿÿÿ¢¢¢DDDÿÿÿÿöÿÿÿÿÿÿ{{{::: Õ÷ü½ïù###'''ÿÿÿ”””ÿÿÿÿÿÿ¢¢¢DDDÿÿÿÿöuuu888ppp lll uuuDDD@@@uuu uuuJJJ ///ÿÿÿwww::: ýÿÿ...)))¾ðú±ëøÿÿÿ///444ýþÿÿÿÿ§§§HHHÿÿÿÿÿÿwww::: ýÿÿ...)))¾ðú±ëøÿÿÿ///444ýþÿÿÿÿ§§§HHHÿÿÿÿöÿÿÿÿÿÿwww::: ýÿÿ...)))¾ðú±ëøÿÿÿ///444ýþÿÿÿÿ§§§HHHÿÿÿÿöuuu777ttt mmmjjj uuuttt uuuLLL!!! ///þþþ::: ÿÿÿRRRSSS???èûý±ëøéûý######çûýÿÿÿ¶¶¶GGGÿÿÿþþþ::: ÿÿÿRRRSSS???èûý±ëøéûý######çûýÿÿÿ¶¶¶GGGÿÿÿÿöÿÿÿþþþ::: ÿÿÿRRRSSS???èûý±ëøéûý######çûýÿÿÿ¶¶¶GGGÿÿÿÿöttt;;;uuu&&&&&&rrr jjj rrrrrr uuuSSS ///øøø~~~??? ÿÿÿUUUyyyaaaÿÿÿ Îõûºîùºîùÿÿÿ´´´DDDÿÿÿøøø~~~??? ÿÿÿUUUyyyaaaÿÿÿ Îõûºîùºîùÿÿÿ´´´DDDÿÿÿÿöÿÿÿøøø~~~??? ÿÿÿUUUyyyaaaÿÿÿ Îõûºîùºîùÿÿÿ´´´DDDÿÿÿÿöqqq:::uuu'''777,,,uuuooo lll lll uuuRRR ///øøøsss@@@ ÿÿÿÿÿÿÅÅÅÿÿÿÿÿÿ333 Áñú±ëøòòò”””DDDÿÿÿøøøsss@@@ ÿÿÿÿÿÿÅÅÅÿÿÿÿÿÿ333 Áñú±ëøòòò”””DDDÿÿÿÿöÿÿÿøøøsss@@@ ÿÿÿÿÿÿÅÅÅÿÿÿÿÿÿ333 Áñú±ëøòòò”””DDDÿÿÿÿöqqq444 uuuuuuZZZuuuuuummm jjj oooDDD ///ýýýBBB $$$\\\‹‹‹mmmTTT777)))¿¿¿šššJJJÿÿÿýýýBBB $$$\\\‹‹‹mmmTTT777)))¿¿¿šššJJJÿÿÿÿöÿÿÿýýýBBB $$$\\\‹‹‹mmmTTT777)))¿¿¿šššJJJÿÿÿÿöttt:::***@@@222''' XXXGGG""" ///ÿÿÿ‘‘‘NNN ///999555$$$¶¶¶™™™ZZZÿÿÿÿÿÿ‘‘‘NNN ///999555$$$¶¶¶™™™ZZZÿÿÿÿöÿÿÿÿÿÿ‘‘‘NNN ///999555$$$¶¶¶™™™ZZZÿÿÿÿöuuuBBB###   SSSFFF))) ///ÿÿÿ®®®jjj<<<   ÅÅÅ®®®………###ÿÿÿÿÿÿ®®®jjj<<<   ÅÅÅ®®®………ÿÿÿÿöÿÿÿÿÿÿ®®®jjj<<<   ÅÅÅ®®®………ÿÿÿÿöuuuPPP000;;;ZZZPPP===///ÿÿÿÿÿÿsssXXXPPP>>>333000000000000333:::::::::UUU¢¢¢ÉÉÉÉÉÉÉÉÉ(((ÿÿÿÿÿÿÿÿÿsssXXXPPP>>>333000000000000333:::::::::UUU¢¢¢ÉÉÉÉÉÉÉÉÉÿÿÿÿöÿÿÿÿÿÿÿÿÿsssXXXPPP>>>333000000000000333:::::::::UUU¢¢¢ÉÉÉÉÉÉÉÉÉÿÿÿÿöuuuuuu444((($$$'''JJJ\\\\\\\\\///ÿÿÿööö–––qqqggg]]]]]]]]]]]][[[mmm|||{{{vvv“““ÄÄÄæææççç(((ÿÿÿÿÿÿööö–––qqqggg]]]]]]]]]]]][[[mmm|||{{{vvv“““ÄÄÄæææçççÿÿÿÿöÿÿÿÿÿÿööö–––qqqggg]]]]]]]]]]]][[[mmm|||{{{vvv“““ÄÄÄæææçççÿÿÿÿöuuuqqqDDD333///++++++++++++***222999888666DDDYYYiiiiii///ÿÿÿÿÿÿÿÿÿÿÿÿÒÒÒ½½½ÊÊÊÍÍÍÑÑÑÓÓÓçççÿÿÿÿÿÿæææýýýýýý(((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒÒÒ½½½ÊÊÊÍÍÍÑÑÑÓÓÓçççÿÿÿÿÿÿæææýýýýýýÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒÒÒ½½½ÊÊÊÍÍÍÑÑÑÓÓÓçççÿÿÿÿÿÿæææýýýýýýÿÿÿÿöuuuuuuuuuuuu```VVV\\\^^^``````iiiuuuuuuiiitttttt////////////////////////111777777777777///((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿö((((((((((((((((((((((((((((((((((((((((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö((([[[EEE<<<888OOOdddfff[[[SSSPPPNNNEEE333***---444(((ÿÿÿ[[[EEE<<<888OOOdddfff[[[SSSPPPNNNEEE333***---444ÿÿÿÿöÿÿÿ[[[EEE<<<888OOOdddfff[[[SSSPPPNNNEEE333***---444ÿÿÿÿö...###(((333444...***)))(((###(((YYY]]]^^^]]]MMMNNN\\\zzz‚‚‚‚‚‚{{{sssiiiPPPAAA999444666(((ÿÿÿYYY]]]^^^]]]MMMNNN\\\zzz‚‚‚‚‚‚{{{sssiiiPPPAAA999444666ÿÿÿÿöÿÿÿYYY]]]^^^]]]MMMNNN\\\zzz‚‚‚‚‚‚{{{sssiiiPPPAAA999444666ÿÿÿÿö...000000000((((((///>>>CCCCCC???;;;666)))"""(((XXXsssrrrssssssqqqlllmmm‚‚‚~~~nnnllllllaaa\\\NNNNNNJJJ;;;(((ÿÿÿXXXsssrrrssssssqqqlllmmm‚‚‚~~~nnnllllllaaa\\\NNNNNNJJJ;;;ÿÿÿÿöÿÿÿXXXsssrrrssssssqqqlllmmm‚‚‚~~~nnnllllllaaa\\\NNNNNNJJJ;;;ÿÿÿÿö---;;;:::;;;;;;:::888888CCCAAA888888888222///((((((&&&(((jjj   ¶¶¶‚‚‚‚‚‚~~~‚‚‚mmmlllpppsssrrrmmmgggXXXGGGGGG(((ÿÿÿjjj   ¶¶¶‚‚‚‚‚‚~~~‚‚‚mmmlllpppsssrrrmmmgggXXXGGGGGGÿÿÿÿöÿÿÿjjj   ¶¶¶‚‚‚‚‚‚~~~‚‚‚mmmlllpppsssrrrmmmgggXXXGGGGGGÿÿÿÿö666BBBRRR^^^CCCCCCBBBAAACCC888888999;;;:::888555---$$$$$$(((tttÎÎβ²²ŠŠŠ‚‚‚‚‚‚‚‚‚xxx‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚qqqXXXNNNWWW(((ÿÿÿtttÎÎβ²²ŠŠŠ‚‚‚‚‚‚‚‚‚xxx‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚qqqXXXNNNWWWÿÿÿÿöÿÿÿtttÎÎβ²²ŠŠŠ‚‚‚‚‚‚‚‚‚xxx‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚qqqXXXNNNWWWÿÿÿÿö<<>>CCCCCCCCCCCCCCCCCC:::---(((---(((‚‚‚½½½ÓÓÓÍÍÍÆÆÆ™™™‚‚‚†††¨¨¨ÒÒÒ‚‚‚‚‚‚‚‚‚‚‚‚tttbbbZZZ(((ÿÿÿ‚‚‚½½½ÓÓÓÍÍÍÆÆÆ™™™‚‚‚†††¨¨¨ÒÒÒ‚‚‚‚‚‚‚‚‚‚‚‚tttbbbZZZÿÿÿÿöÿÿÿ‚‚‚½½½ÓÓÓÍÍÍÆÆÆ™™™‚‚‚†††¨¨¨ÒÒÒ‚‚‚‚‚‚‚‚‚‚‚‚tttbbbZZZÿÿÿÿöCCCaaallliiieeeNNNCCCDDDVVVlllPPPCCCCCCCCCCCC<<<333...(((tttyyy   ººº°°°ŒŒŒ‚‚‚‚‚‚¢¢¢êêêËËË———‚‚‚‚‚‚‚‚‚hhh[[[(((ÿÿÿtttyyy   ººº°°°ŒŒŒ‚‚‚‚‚‚¢¢¢êêêËËË———‚‚‚‚‚‚‚‚‚hhh[[[ÿÿÿÿöÿÿÿtttyyy   ººº°°°ŒŒŒ‚‚‚‚‚‚¢¢¢êêêËËË———‚‚‚‚‚‚‚‚‚hhh[[[ÿÿÿÿö<<<>>>RRR___ZZZHHHCCCCCCSSSxxxhhhNNNJJJCCCCCCCCC555...(((\\\]]]qqq‚‚‚‚‚‚âçÈ̃ƒƒÅÅÅïïïííí———‚‚‚‚‚‚|||hhhiii(((ÿÿÿ\\\]]]qqq‚‚‚‚‚‚âçÈ̃ƒƒÅÅÅïïïííí———‚‚‚‚‚‚|||hhhiiiÿÿÿÿöÿÿÿ\\\]]]qqq‚‚‚‚‚‚âçÈ̃ƒƒÅÅÅïïïííí———‚‚‚‚‚‚|||hhhiiiÿÿÿÿö///000:::CCCCCChhh[[[CCCeeezzzyyyNNNCCCCCC???555666]]]ZZZgggúÿìñäé‚‚‚‰‰‰ÒÒÒÙÙÙÌÌ̼¼¼†††~~~fff(((ÿÿÿ]]]ZZZgggúÿìñäé‚‚‚‰‰‰ÒÒÒÙÙÙÌÌ̼¼¼†††~~~fffÿÿÿÿöÿÿÿ]]]ZZZgggúÿìñäé‚‚‚‰‰‰ÒÒÒÙÙÙÌÌ̼¼¼†††~~~fffÿÿÿÿö 000...555ooollliiiCCCFFFllloooiii```DDDAAA444 +-Z\ÁÅîóýÿÿÿúÿúÿ‚‚‚ƒƒƒ§§§ÁÁÁ¬¬¬ƒƒƒyyyUUU(((ÿÿÿ +-Z\ÁÅîóýÿÿÿúÿúÿ‚‚‚ƒƒƒ§§§ÁÁÁ¬¬¬ƒƒƒyyyUUUÿÿÿÿöÿÿÿ +-Z\ÁÅîóýÿÿÿúÿúÿ‚‚‚ƒƒƒ§§§ÁÁÁ¬¬¬ƒƒƒyyyUUUÿÿÿÿö )))YYYllloooxxxooooooCCCCCCVVVcccYYYCCC>>>,,, JK``cc­±ÀÄéìþÿúÿÙÞÄÇivvzzz‚‚‚ZZZ(((ÿÿÿ JK``cc­±ÀÄéìþÿúÿÙÞÄÇivvzzz‚‚‚ZZZÿÿÿÿöÿÿÿ JK``cc­±ÀÄéìþÿúÿÙÞÄÇivvzzz‚‚‚ZZZÿÿÿÿö """,,,---NNNYYYlllxxxoooccc[[[<<<>>>AAACCCBBB...++VWbf¡¥³¸ÕÚÕÚ«¯„BBfffOOOHHH(((ÿÿÿÿÿÿ++VWbf¡¥³¸ÕÚÕÚ«¯„BBfffOOOHHHÿÿÿÿöÿÿÿÿÿÿ++VWbf¡¥³¸ÕÚÕÚ«¯„BBfffOOOHHHÿÿÿÿö (((---JJJRRRccccccNNN<<< 444(((%%%BB…‡ž¡¥ª”svLN()ÿÿÿBB…‡ž¡¥ª”svLN()ÿÿÿÿöÿÿÿBB…‡ž¡¥ª”svLN()ÿÿÿÿö  <<><>  ÿÿÿÿÿÿ>><>  ÿÿÿÿöÿÿÿÿÿÿ>><>  ÿÿÿÿö  ÿÿÿÿÿÿÿÿÿÿÿÿÿöÿöÿÿÿÿÿÿÿÿÿÿÿÿÿö   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿö  ÿÿÿÿöÿÿÿÿöÿöÿöÿöÿöÿö ÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿö((((((((((((((((((((((((((((((((((((((((((((((((þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿöþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿö(((’¦ºz®ºŽŽºf®º†žºv–ºjžºr¢ºz¢ºzšºn–ºnžºr‚ºZ j‚(((þþþ’¦ºz®ºŽŽº^®ºŠžºvšºnžºr¢ºz¦ºzšºn–ºnžºr‚ºZ j‚þþþÿöþþþ’¦ºz®ºŽŽº^®ºŠžºvšºnžºr¢ºz¦ºzšºn–ºnžºr‚ºZ j‚þþþÿö662ZZZ^^^RRRbbbZZZVVVZZZZZZ^^ZZZZZZZZZZRRR""22.(((2¶®º†Žºf~¢–‚zŠŽ~‚–6ºN–(((þþþ2¶®º†Žºf‚¦–‚zŠŽ~‚–6ºN–þþþÿöþþþ2¶®º†Žºf‚¦–‚zŠŽ~‚–6ºN–þþþÿöBBBbbbVVV.2.666666222...662226.....2666FFB666(((²ªº‚ªº‚vn :º"ž‚’’‚ž:¶"n :¶(((þþþ²ªº‚ªº‚vj :¶ž‚’’‚ž:¶"n :"¶þþþÿöþþþ²ªº‚ªº‚vj :¶ž‚’’‚ž:¶"n :"¶þþþÿö:::^^^^^^...&&&FFF666222666226.2.6:6FFB&&&:::(((ª®º†žºrŠŠ j2¶–ŠŠ–2¶j~Nž(((þþþªªº†žºrŠŠn 2¶–ŠŠ–2¶j~Nžþþþÿöþþþªªº†žºrŠŠn 2¶–ŠŠ–2¶j~Nžþþþÿö:>:bbbZZZ222222"""BBB666222222666BBB"""...6:6(((¶¦º~–ºf†ŽŠ jRº.~z:¶&fŠŠRž(((þþþ¶¦º~–ºf†ŽŠ jJº*~z:¶&fŠŠRžþþþÿöþþþ¶¦º~–ºf†ŽŠ jJº*~z:¶&fŠŠRžþþþÿö>>:^^ZZZV222262222""JJF......JJF""222222:::(((²ªº‚–ºf†ŠŠ’ jZº6bº> f–ŠŽNž(((þþþ²ªº‚–ºf†ŠŠ’ jbº>bº> f–ŠŽNžþþþÿöþþþ²ªº‚–ºf†ŠŠ’ jbº>bº> f–ŠŽNžþþþÿö>>>bb^VVV22.222222666NNNNNN""666226666666(((²®º†¢ºvŠ‚~’Bº&jj Fº*’zŠRª(((þþþ²®º†¢ºvŠ‚~’Bº&jj Fº*’zŠRªþþþÿöþþþ²®º†¢ºvŠ‚~’Bº&jj Fº*’zŠRªþþþÿö>>:bb^ZZZ262222...662FFF&&&"""FFF666..2222::6((("¶®º†šºn††–.¶n ‚‚j 2¶–†Rž(((þþþ¶®º†šºn††–.¶n ‚‚j 2¶–†Ržþþþÿöþþþ¶®º†šºn††–.¶n ‚‚j 2¶–†Ržþþþÿö:>:bbbZZZ22222.666BBB"""22.222""">>>666222:::(((²¦º‚–ºjŽš2¶ j‚––‚ f:¶"ŠNŽ(((þþþ²ªº‚–ºjŽš2¶ j‚––‚ f:¶"ŠNŽþþþÿöþþþ²ªº‚–ºjŽš2¶ j‚––‚ f:¶"ŠNŽþþþÿö>>:bb^VVV666666BBB&&".2.662226...&&&BBB222262(((&¶¦º~–ºjš"¶n ŠŠ†††Š f2¶fš(((þþþ&¶¦º~–ºjš"¶n ŠŠ†††Š f2¶fšþþþÿöþþþ&¶¦º~–ºjš"¶n ŠŠ†††Š f2¶fšþþþÿöBB>^^^ZZV666>>>&&"222222222222222222"&"BBB666(((2¶®º†¢ºv:¶"n –Š‚‚ŽŽ†ŠfB¶(((þþþ2¶®º†¢ºv:¶&n –Š‚‚ŽŽ†ŠfB¶þþþÿöþþþ2¶®º†¢ºv:¶&n –Š‚‚ŽŽ†ŠfB¶þþþÿöBB>^^^Z^ZBFB&&&662222.2.222666666226226"":>:(((2¶–ºjšºnšºr–ºj–ºfšºr¦º‚¢ºzŽºf–ºn¦ºzžºr¦ºzNR(((þþþ2¶–ºjšºnšºn–ºj–ºfšºr¦º‚¢ºzŽºf–ºn¦º~šºn¦ºzNRþþþÿöþþþ2¶–ºjšºnšºn–ºj–ºfšºr¦º‚¢ºzŽºf–ºn¦º~šºn¦ºzNRþþþÿöFFBZZVZZZZZZVVVZZZZZZ^^^^^^VVVZZZ^^^ZZZ^^^(((®Rº.Fº*††2¶†®~ºR¢ºv¦º‚¢ºzŽº^ŽºfRŠ(((þþþ®Rº.Fº*††2¶†®‚ºV¦ºz¦º‚¦º~Žº^–ºjRŠþþþÿöþþþ®Rº.Fº*††2¶†®‚ºV¦ºz¦º‚¦º~Žº^–ºjRŠþþþÿö:>:JJJFFF222222BFB22.:>:VVV^^^bbb^^^VVVVVV222((("¶:ºšzBº&šºnšºrr(((((((((((((((((("¶†(((þþþ"¶:ºšzBº&šºnžºrrþþþþþþþþþþþþþþþþþþ"¶†þþþÿöþþþ"¶:ºšzBº&šºnžºrrþþþþþþþþþþþþþþþþþþ"¶†þþþÿö>>:BF>6:6...FFFZZVZ^Z***>>>22.(((.¶6ºŽ²ªº‚*¶~ºRj(((((((((((((((Bº&n (((þþþ.¶:ºŽ²ªº‚.¶~ºRjþþþþþþþþþþþþþþþBº&n þþþÿöþþþ.¶:ºŽ²ªº‚.¶~ºRjþþþþþþþþþþþþþþþBº&n þþþÿöBB>FFB226>>>bb^BB>RRR"""FFF&&"(((’–žrºF‚ºZ(((zfºF¦ºz–ºjšºrªº†¢ºv:¶"(((þþþ’–žrºF‚ºZþþþzfºF¦º~–ºjšºr®º†¢ºz:¶"þþþÿöþþþ’–žrºF‚ºZþþþzfºF¦º~–ºjšºr®º†¢ºz:¶"þþþÿö2626666:6NNNRRR...NNN^^^VVVZZZ^^^ZZZBBB(((2¶²Vº2Šº^r(((((((((((((((((((((((((((þþþ2¶²Vº2Šº^rþþþþþþþþþþþþþþþþþþþþþþþþþþþÿöþþþ2¶²Vº2Šº^rþþþþþþþþþþþþþþþþþþþþþþþþþþþÿöBFB>B>JJFVVR**&(((v6º¢ºzrºF~(((þþþv6º¢ºzrºF~þþþÿöþþþv6º¢ºzrºF~þþþÿöÿöÿöÿöÿöÿöÿöÿöÿö**&BF>^^ZNRN...(((†ŠºZ¢ºz¶((((((þþþ†ŠºZ¢ºz¶þþþþþþÿöþþþ†ŠºZ¢ºz¶þþþþþþÿö222VVR^^Z>>:(((–ºnZº6((((((þþþšºnZº6þþþþþþÿöþþþšºnZº6þþþþþþÿöÿöZZVJJJ((((((þþþþþþÿöþþþþþþÿöÿöÿöÿölgeneral-1.3.1/src/themes/default/fr_ruc.bmp0000664000175000017500000000036612140770455015722 00000000000000BMö6(À  Ö—‡2$"@-)Ö—‡2$"@-)Ù¡2$"@-)Ù¥—8(&@-)Ù¥—;*'@-)6&"6&"7'$@-)J60V<7>,(@-)Ù§™Ù§™Ù˂֖‰±zqN:5@-)@-)@-)@-)@-)@-)@-)4'#@-)lgeneral-1.3.1/src/themes/default/module_buttons.bmp0000664000175000017500000001546612140770455017514 00000000000000BM66(`œ œ (((!!!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ (((¥¥¥jjjSSSEEECCC;;;;;;666777AAACCC???::::::000000ÿÿÿ¥¥¥jjjSSSEEECCC;;;;;;666777AAACCC???::::::000000ÿÿÿÿÿÿ¥¥¥jjjSSSEEECCC;;;;;;666777AAACCC???::::::000000ÿÿÿLLL000&&& (((´´´µµµ¤¤¤tttmmmxxx}}}ŒŒŒŒŒŒ•••ŠŠŠ```222ÿÿÿ´´´µµµ¤¤¤tttmmmxxx}}}ŒŒŒŒŒŒ•••ŠŠŠ```222ÿÿÿÿÿÿ´´´µµµ¤¤¤tttmmmxxx}}}ŒŒŒŒŒŒ•••ŠŠŠ```222ÿÿÿRRRSSSKKKAAA;;;555222777999;;;@@@@@@DDD???;;;;;;,,, (((ûûûÞÞÞÖÖÖðððÿÿÿþþþýýýöööýýýúúúööööööööööööööö××פ¤¤HHH555ÿÿÿûûûÞÞÞÖÖÖðððÿÿÿþþþýýýöööýýýúúúööööööööööööööö××פ¤¤HHH555ÿÿÿÿÿÿûûûÞÞÞÖÖÖðððÿÿÿþþþýýýöööýýýúúúööööööööööööööö××פ¤¤HHH555ÿÿÿssseeebbbmmmuuuttttttqqqtttrrrqqqqqqqqqqqqqqqbbbKKKAAA!!! (((ììì¹¹¹ººº×××ÿÿÿÈÈÈ[[[000ÿÿÿììì¹¹¹ººº×××ÿÿÿÈÈÈ[[[000ÿÿÿÿÿÿììì¹¹¹ººº×××ÿÿÿÈÈÈ[[[000ÿÿÿlllTTTUUUbbb uuu\\\*** (((ÙÙÙ¤¤¤‰‰‰!!!,,,+++&&&ÿÿÿeee555ÿÿÿÙÙÙ¤¤¤‰‰‰!!!,,,+++&&&ÿÿÿeee555ÿÿÿÿÿÿÙÙÙ¤¤¤‰‰‰!!!,,,+++&&&ÿÿÿeee555ÿÿÿcccKKK???  uuu... +++ãã㇇‡@@@ ---777kkk£££ggg555ÿÿÿsss777ÿÿÿãã㇇‡@@@ ---777kkk£££ggg555ÿÿÿsss777ÿÿÿÿÿÿãã㇇‡@@@ ---777kkk£££ggg555ÿÿÿsss777ÿÿÿhhh>>> 111KKK/// uuu444 ///úúú{{{777 ±ëø±ëøÓõû+++;;;~~~ÿÿÿÿÿÿÿÿÿ---ÿÿÿŽŽŽ999ÿÿÿúúú{{{777 ±ëø±ëøÓõû+++;;;~~~ÿÿÿÿÿÿÿÿÿ---ÿÿÿŽŽŽ999ÿÿÿÿÿÿúúú{{{777 ±ëø±ëøÓõû+++;;;~~~ÿÿÿÿÿÿÿÿÿ---ÿÿÿŽŽŽ999ÿÿÿrrr888jjjjjj ooo:::uuuuuuuuu uuuAAA ///ÿÿÿ{{{::: Õ÷ü½ïù###'''ÿÿÿ”””ÿÿÿÿÿÿ¢¢¢DDDÿÿÿÿÿÿ{{{::: Õ÷ü½ïù###'''ÿÿÿ”””ÿÿÿÿÿÿ¢¢¢DDDÿÿÿÿÿÿÿÿÿ{{{::: Õ÷ü½ïù###'''ÿÿÿ”””ÿÿÿÿÿÿ¢¢¢DDDÿÿÿuuu888ppp lll uuuDDD@@@uuu uuuJJJ ///ÿÿÿwww::: ýÿÿ...)))¾ðú±ëøÿÿÿ///444ýþÿÿÿÿ§§§HHHÿÿÿÿÿÿwww::: ýÿÿ...)))¾ðú±ëøÿÿÿ///444ýþÿÿÿÿ§§§HHHÿÿÿÿÿÿÿÿÿwww::: ýÿÿ...)))¾ðú±ëøÿÿÿ///444ýþÿÿÿÿ§§§HHHÿÿÿuuu777ttt mmmjjj uuuttt uuuLLL!!! ///þþþ::: ÿÿÿRRRSSS???èûý±ëøéûý######çûýÿÿÿ¶¶¶GGGÿÿÿþþþ::: ÿÿÿRRRSSS???èûý±ëøéûý######çûýÿÿÿ¶¶¶GGGÿÿÿÿÿÿþþþ::: ÿÿÿRRRSSS???èûý±ëøéûý######çûýÿÿÿ¶¶¶GGGÿÿÿttt;;;uuu&&&&&&rrr jjj rrrrrr uuuSSS ///øøø~~~??? ÿÿÿUUUyyyaaaÿÿÿ Îõûºîùºîùÿÿÿ´´´DDDÿÿÿøøø~~~??? ÿÿÿUUUyyyaaaÿÿÿ Îõûºîùºîùÿÿÿ´´´DDDÿÿÿÿÿÿøøø~~~??? ÿÿÿUUUyyyaaaÿÿÿ Îõûºîùºîùÿÿÿ´´´DDDÿÿÿqqq:::uuu'''777,,,uuuooo lll lll uuuRRR ///øøøsss@@@ ÿÿÿÿÿÿÅÅÅÿÿÿÿÿÿ333 Áñú±ëøòòò”””DDDÿÿÿøøøsss@@@ ÿÿÿÿÿÿÅÅÅÿÿÿÿÿÿ333 Áñú±ëøòòò”””DDDÿÿÿÿÿÿøøøsss@@@ ÿÿÿÿÿÿÅÅÅÿÿÿÿÿÿ333 Áñú±ëøòòò”””DDDÿÿÿqqq444 uuuuuuZZZuuuuuummm jjj oooDDD ///ýýýBBB $$$\\\‹‹‹mmmTTT777)))¿¿¿šššJJJÿÿÿýýýBBB $$$\\\‹‹‹mmmTTT777)))¿¿¿šššJJJÿÿÿÿÿÿýýýBBB $$$\\\‹‹‹mmmTTT777)))¿¿¿šššJJJÿÿÿttt:::***@@@222''' XXXGGG""" ///ÿÿÿ‘‘‘NNN ///999555$$$¶¶¶™™™ZZZÿÿÿÿÿÿ‘‘‘NNN ///999555$$$¶¶¶™™™ZZZÿÿÿÿÿÿÿÿÿ‘‘‘NNN ///999555$$$¶¶¶™™™ZZZÿÿÿuuuBBB###   SSSFFF))) ///ÿÿÿ®®®jjj<<<   ÅÅÅ®®®………###ÿÿÿÿÿÿ®®®jjj<<<   ÅÅÅ®®®………ÿÿÿÿÿÿÿÿÿ®®®jjj<<<   ÅÅÅ®®®………ÿÿÿuuuPPP000;;;ZZZPPP===///ÿÿÿÿÿÿsssXXXPPP>>>333000000000000333:::::::::UUU¢¢¢ÉÉÉÉÉÉÉÉÉ(((ÿÿÿÿÿÿÿÿÿsssXXXPPP>>>333000000000000333:::::::::UUU¢¢¢ÉÉÉÉÉÉÉÉÉÿÿÿÿÿÿÿÿÿÿÿÿsssXXXPPP>>>333000000000000333:::::::::UUU¢¢¢ÉÉÉÉÉÉÉÉÉÿÿÿuuuuuu444((($$$'''JJJ\\\\\\\\\///ÿÿÿööö–––qqqggg]]]]]]]]]]]][[[mmm|||{{{vvv“““ÄÄÄæææççç(((ÿÿÿÿÿÿööö–––qqqggg]]]]]]]]]]]][[[mmm|||{{{vvv“““ÄÄÄæææçççÿÿÿÿÿÿÿÿÿööö–––qqqggg]]]]]]]]]]]][[[mmm|||{{{vvv“““ÄÄÄæææçççÿÿÿuuuqqqDDD333///++++++++++++***222999888666DDDYYYiiiiii///ÿÿÿÿÿÿÿÿÿÿÿÿÒÒÒ½½½ÊÊÊÍÍÍÑÑÑÓÓÓçççÿÿÿÿÿÿæææýýýýýý(((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒÒÒ½½½ÊÊÊÍÍÍÑÑÑÓÓÓçççÿÿÿÿÿÿæææýýýýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒÒÒ½½½ÊÊÊÍÍÍÑÑÑÓÓÓçççÿÿÿÿÿÿæææýýýýýýÿÿÿuuuuuuuuuuuu```VVV\\\^^^``````iiiuuuuuuiiitttttt////////////////////////111777777777777///((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlgeneral-1.3.1/src/themes/default/font_brief.bmp0000664000175000017500000006061212140770455016557 00000000000000BMŠaJ(@ @^M M ÅÅÿ***...&&&Æb¾^jjjfff²ú¶þ²þ¦îj–zîvÊfŠŠŠ®®®ŽŽŽNNN–چ Vz :V.F^þjþþþÖÖÖ®®öââþþözêv~~~ÚÚÚJJJþþúúúâú¦¦îöööº^úŽö‚²Z†¦®‚ÎÚ~ŠŽBbfŽÎ NnþÆÆú¢¢úæö~~ú¶¶þ®Vþ¶ÖjÖöÊêš¶br Rz""þÒnþ¢þªîz¶ZÚþ²Ö BN Z‚fþž~>ªÊj~®¾ÂJŠªJvŠv~‚NRRú~¢¢öŠŠúººî‚BÊÚÞšª®†’–V^^FNNòòöîîîFFæêšNŽFf2R*žºZnŽššr~‚>FF"""ÒÒö¶¶ö–JJ&.¾ÞFJNv>b2†ž Rb Vf:>Bÿÿÿþ®ÞþžÆî‚¢æzšþ’ºò‚¢Âf‚þ’¶þªÖþšÂþ޲Ör’ÒnŠÊj†¾b~²^vz>NÖrŽ’Nb~BV^2>’JbR.6N*6†FV9d666vvvrrrJvvf²®jÎÊFfbFFFnnnbbbVššzöò†æâR¦¦vâÞ:^^::: 222R~~ªþþ†þþVVV‚îîŽúúZZZRRRZ²®Nšš†ÆÆjÖÖ‚úö¾þþvîêÚþþƒ„„ƒƒƒƒƒƒƒ„„ƒƒƒƒƒƒƒ„ƒƒƒƒƒƒƒ„…………………………„……………………„……………„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„……„„„„……………………………………………………„„„„„„„„„„„„„„„„„„„„„„„„„ŸŸ„„„„„„„„„„„„„„„ŸŸ„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ŸŸ„„„„„„„„„„„„„„„„„„„„„„„„}~no9PPW€\‚uŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ vwi1xmnyz{EFQs||ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ  & ´& ´´´´ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ (Jhijki@lmnoOpqQerstuœœ™ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ »¼& ¼‚ ¦½´ ¼‚ ¦½´½¾¦½´½¾¦½´½¾¦½´½¾ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ (']^_ `a NBbUOVFQcde4fg………………ž™›”ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ ¸#£­®#£¹®º­599¹®º·599¹®º·599¹®º·5ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸS89J( = += .0T@UCVWQXXYZ[\…………………Œ”›œœ™–˜—‘—ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ ±£  ±®  ±®®²9³´µ¶­¥9³´µ·­¥9³´µ¶­¥ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ'H9('IJ<=  KLMNOPFQR…………………—‘—˜–™š•”“’‘ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ¨©ª%¨©ª%¨©ª%«¬­®ª%«¬­­¯¯®°«¬­Ä¶¯®°ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ8989' :;<=>? @A0BCDEFG…‘’“”•–‰‹ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ¡£¢¡£¢¡£¢¤¥¢¤¦¢¥§¤Á·çŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ '(()*+,- ./01234567Š‹‰ŒŽ‡ˆŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ f  f  f f  ¢ ¿ÀŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ !"#$%&…………………‡ˆ‰ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ ¡  ¡  ¡  ¡  ¡ °µŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ  …ƒ……ƒ…………†‡ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ          ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ …ƒ………………ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸ………ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸlgeneral-1.3.1/src/themes/default/setup_confirm_buttons.bmp0000664000175000017500000012106612140770455021076 00000000000000BM6¢6(`¢œ œ ÿöÿöÿöÿö((((ÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿöÿöÿöÿöÿö(@@ACCCNPPcZc$0)(((ÿÿÿ@@ACCCNPPcZcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿ@@ACCCNPPcZcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿöÿö''')))111999(,11%*'258KO.56&.3EOWISWnjv^K`!,((ÿÿÿ,11%*'258KO.56&.3EOWISWnjv^K`ÿÿÿÿÿÿÿÿÿÿöÿöÿöÿöÿÿÿ,11%*'258KO.56&.3EOWISWnjv^K`ÿÿÿÿÿÿÿÿÿÿö--- 111222BBB111()((kpo™™™§§§ƒ‰ABB$-'/340FF6:@0:AOZcagjL>L(ÿÿÿÿÿÿÿÿÿÿÿÿkpo™™™§§§ƒ‰ABB$-'/340FF6:@0:AOZcagjL>Lÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿkpo™™™§§§ƒ‰ABB$-'/340FF6:@0:AOZcagjL>LÿÿÿÿöCCC]]]fffTTT((()))$$$$$$777???((((®°°«®®²µµ»½½PPP@@@\\\WWWd®t^¦mFKF___˜œ™€‚‚_aaQX\6CJELS(ÿÿÿ®°°«®®²µµ»½½PPP@@@\\\WWWd®t^¦mFKF___˜œ™€‚‚_aaQX\6CJELSÿÿÿÿöÿÿÿ®°°«®®²µµ»½½PPP@@@\\\WWWd®t^¦mFKF___˜œ™€‚‚_aaQX\6CJELSÿÿÿÿökkkjjjnnnsss111'''888555___[[[---:::^^^OOO;;;555)))///((šœœ³µµ\]]@F@7>9% G•X7H$*%%,&EEE‚‚‚ˆˆˆ©©©µµµ–‘˜(ÿÿÿÿÿÿšœœ³µµ\]]@F@7>9% G•X7H$*%%,&EEE‚‚‚ˆˆˆ©©©µµµ–‘˜ÿÿÿÿöÿÿÿÿÿÿšœœ³µµ\]]@F@7>9% G•X7H$*%%,&EEE‚‚‚ˆˆˆ©©©µµµ–‘˜ÿÿÿÿö___nnn999)))$$$OOODDD***OOOSSSgggnnnYYY()"&d®uÍ‘p½‚iµzO ae±uJ•Z%,&333mmm‘”•qvv_^_(ÿÿÿ)"&d®uÍ‘p½‚iµzO ae±uJ•Z%,&333mmm‘”•qvv_^_ÿÿÿÿöÿöÿÿÿ)"&d®uÍ‘p½‚iµzO ae±uJ•Z%,&333mmm‘”•qvv_^_ÿÿÿÿö___rrrhhhcccVVVaaaPPPBBBZZZHHH9993~B;ŠR:ŠRK•\s¾‚e­tr¾‚b®rU¢e!555ÊÊÉ­®©|(ÿÿÿ3~B;ŠR:ŠRK•\s¾‚e­tr¾‚b®rU¢e!555ÊÊÉ­®©|ÿÿÿÿöÿÿÿ3~B;ŠR:ŠRK•\s¾‚e­tr¾‚b®rU¢e!555ÊÊÉ­®©|ÿÿÿÿöBBBIIIIIIPPPiii___iii___WWW {{{iiiLLL3~B/{?#'n¹~Z£iCIC}ÈŒxĈD‰S@D>RJQ((ÿÿÿ3~B/{?ÿÿÿÿÿÿn¹~Z£iCIC}ÈŒxĈD‰S@D>RJQÿÿÿÿÿÿÿöÿÿÿ3~B/{?ÿÿÿÿÿÿn¹~Z£iCIC}ÈŒxĈD‰S@D>RJQÿÿÿÿÿÿÿöBBB@@@fffXXX+++ooolllJJJ(((...3~B7‡O't?:ŠR$q;"&ÿÿÿ3~Bÿÿÿÿÿÿ7‡O't?ÿÿÿÿÿÿ:ŠR$q;ÿÿÿÿÿÿÿöÿÿÿ3~Bÿÿÿÿöÿÿÿ7‡O't?ÿÿÿÿÿÿ:ŠR$q;ÿÿÿÿÿÿÿöÿöBBBGGG<<< III::: 3~B0{?+x<3~Bb)ÿÿÿÿÿÿÿÿÿ3~B0{?ÿÿÿ+x<3~Bb)ÿÿÿÿöÿÿÿÿöÿÿÿÿÿÿ3~B0{?ÿÿÿ+x<3~Bb)ÿÿÿÿöBBB@@@>>>BBB111P!j13~B3~B3~B3~B+x<ÿÿÿP!j13~B3~B3~B3~B+x<ÿÿÿÿöÿÿÿP!j13~B3~B3~B3~B+x<ÿÿÿÿö'''666BBBBBBBBBBBB>>>+x<3~B3~B1|A(u93~B'q6ÿÿÿ+x<3~B3~B1|A(u93~B'q6ÿÿÿÿöÿÿÿ+x<3~B3~B1|A(u93~B'q6ÿÿÿÿö>>>BBBBBB@@@<<†O+x;ÿÿÿ>†O+x;ÿÿÿÿöÿÿÿ>†O+x;ÿÿÿÿöGGG===ÿÿÿÿÿÿÿöÿÿÿÿÿÿÿöÿöÿöÿöÿöÿöÿö((((ÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿöÿöÿöÿöÿö(@@ACCCNPPcZc$0)(((ÿÿÿ@@ACCCNPPcZcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿ@@ACCCNPPcZcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿöÿö$$$&&&---555(,11%*'258KO;LO&;GEOWISWnjv^K`!,((ÿÿÿ,11%*'258KO;LO&;GEOWISWnjv^K`ÿÿÿÿÿÿÿÿÿÿöÿöÿöÿöÿÿÿ,11%*'258KO;LO&;GEOWISWnjv^K`ÿÿÿÿÿÿÿÿÿÿö***+++"""---///???///()((kpo™™™§§§ƒ‰lnn[ec9<<>HJ0FF6:@0:AOZcagjL>L(ÿÿÿÿÿÿÿÿÿÿÿÿkpo™™™§§§ƒ‰lnn[ec9<<>HJ0FF6:@0:AOZcagjL>Lÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿkpo™™™§§§ƒ‰lnn[ec9<<>HJ0FF6:@0:AOZcagjL>Lÿÿÿÿö???WWW___NNN>>>888"""(((&&&""""""444;;;&&&(®°°«®®²µµ»½½PPPiii°°°¤¤¤¨¨¨¯¯¯²²²¸¸¸˜œ™€‚‚_aaQX\6CJELS(ÿÿÿ®°°«®®²µµ»½½PPPiii°°°¤¤¤¨¨¨¯¯¯²²²¸¸¸˜œ™€‚‚_aaQX\6CJELSÿÿÿÿöÿÿÿ®°°«®®²µµ»½½PPPiii°°°¤¤¤¨¨¨¯¯¯²²²¸¸¸˜œ™€‚‚_aaQX\6CJELSÿÿÿÿödddbbbfffkkk---<<>>TTTCCC555))prs§§§¼¼¼¢¢¢yyypppEFGMMMÊÊÉ­®©|(ÿÿÿÿÿÿprs§§§¼¼¼¢¢¢yyypppEFGMMMÊÊÉ­®©|ÿÿÿÿöÿöÿöÿÿÿÿÿÿprs§§§¼¼¼¢¢¢yyypppEFGMMMÊÊÉ­®©|ÿÿÿÿöAAA___kkk\\\EEE@@@(((,,,rrrbbbHHH)—–—“““«««¼¼¼°±±…}¤ŸŸ–‚”((ÿÿÿ—–—“““«««¼¼¼°±±…}¤ŸŸ–‚”ÿÿÿÿÿÿÿöÿöÿÿÿ—–—“““«««¼¼¼°±±…}¤ŸŸ–‚”ÿÿÿÿÿÿÿöUUUTTTaaakkkdddHHHZZZNNN((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿöÿöÿöÿöÿöÿöÿöÿöÿö((ÿÿÿÿÿÿÿöÿÿÿÿÿÿÿö(`K(ÿÿÿ`Kÿÿÿÿöÿÿÿ`Kÿÿÿÿö(¸¬mI(ÿÿÿ¸¬mIÿÿÿÿöÿÿÿ¸¬mIÿÿÿÿö777333 (âÙÁ´oK(ÿÿÿâÙÁ´oKÿÿÿÿöÿÿÿâÙÁ´oKÿÿÿÿöCCCAAA999666!!!(ðððΣvcV'ÿÿÿðððΣvcVÿÿÿÿöÿÿÿðððΣvcVÿÿÿÿöHHHHHHHHH===000###(((óÒµz)((ÿÿÿÿÿÿÿÿÿóÒµzÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿóÒµzÿÿÿÿÿÿÿÿÿÿöHHH???666$$$ (øÖÄ› *ÿÿÿøÖÄ›ÿÿÿÿöÿöÿÿÿøÖÄ›ÿÿÿÿöÿöJJJ@@@:::...!!!(þŲ̀(ÿÿÿþŲ̀ÿÿÿÿöÿÿÿþŲ̀ÿÿÿÿöLLLAAA===222(øÔÁ *ÿÿÿøÔÁÿÿÿÿöÿÿÿøÔÁÿÿÿÿöJJJ???999///!!!(þðë·(ÿÿÿþðë·ÿÿÿÿöÿÿÿþðë·ÿÿÿÿöLLLHHHFFF666((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿö((((((((((((((((((((((((((((((((((((((((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö((([[[EEE<<<888OOOdddfff[[[SSSPPPNNNEEE333***---444(((ÿÿÿ[[[EEE<<<888OOOdddfff[[[SSSPPPNNNEEE333***---444ÿÿÿÿöÿÿÿ[[[EEE<<<888OOOdddfff[[[SSSPPPNNNEEE333***---444ÿÿÿÿö...###(((333444...***)))(((###(((YYY]]]^^^]]]MMMNNN\\\zzz‚‚‚‚‚‚{{{sssiiiPPPAAA999444666(((ÿÿÿYYY]]]^^^]]]MMMNNN\\\zzz‚‚‚‚‚‚{{{sssiiiPPPAAA999444666ÿÿÿÿöÿÿÿYYY]]]^^^]]]MMMNNN\\\zzz‚‚‚‚‚‚{{{sssiiiPPPAAA999444666ÿÿÿÿö...000000000((((((///>>>CCCCCC???;;;666)))"""(((XXXsssrrrssssssqqqlllmmm‚‚‚~~~nnnllllllaaa\\\NNNNNNJJJ;;;(((ÿÿÿXXXsssrrrssssssqqqlllmmm‚‚‚~~~nnnllllllaaa\\\NNNNNNJJJ;;;ÿÿÿÿöÿÿÿXXXsssrrrssssssqqqlllmmm‚‚‚~~~nnnllllllaaa\\\NNNNNNJJJ;;;ÿÿÿÿö---;;;:::;;;;;;:::888888CCCAAA888888888222///((((((&&&(((jjj   ¶¶¶‚‚‚‚‚‚~~~‚‚‚mmmlllpppsssrrrmmmgggXXXGGGGGG(((ÿÿÿjjj   ¶¶¶‚‚‚‚‚‚~~~‚‚‚mmmlllpppsssrrrmmmgggXXXGGGGGGÿÿÿÿöÿÿÿjjj   ¶¶¶‚‚‚‚‚‚~~~‚‚‚mmmlllpppsssrrrmmmgggXXXGGGGGGÿÿÿÿö666BBBRRR^^^CCCCCCBBBAAACCC888888999;;;:::888555---$$$$$$(((tttÎÎβ²²ŠŠŠ‚‚‚‚‚‚‚‚‚xxx‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚qqqXXXNNNWWW(((ÿÿÿtttÎÎβ²²ŠŠŠ‚‚‚‚‚‚‚‚‚xxx‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚qqqXXXNNNWWWÿÿÿÿöÿÿÿtttÎÎβ²²ŠŠŠ‚‚‚‚‚‚‚‚‚xxx‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚qqqXXXNNNWWWÿÿÿÿö<<>>CCCCCCCCCCCCCCCCCC:::---(((---(((‚‚‚½½½ÓÓÓÍÍÍÆÆÆ™™™‚‚‚†††¨¨¨ÒÒÒ‚‚‚‚‚‚‚‚‚‚‚‚tttbbbZZZ(((ÿÿÿ‚‚‚½½½ÓÓÓÍÍÍÆÆÆ™™™‚‚‚†††¨¨¨ÒÒÒ‚‚‚‚‚‚‚‚‚‚‚‚tttbbbZZZÿÿÿÿöÿÿÿ‚‚‚½½½ÓÓÓÍÍÍÆÆÆ™™™‚‚‚†††¨¨¨ÒÒÒ‚‚‚‚‚‚‚‚‚‚‚‚tttbbbZZZÿÿÿÿöCCCaaallliiieeeNNNCCCDDDVVVlllPPPCCCCCCCCCCCC<<<333...(((tttyyy   ººº°°°ŒŒŒ‚‚‚‚‚‚¢¢¢êêêËËË———‚‚‚‚‚‚‚‚‚hhh[[[(((ÿÿÿtttyyy   ººº°°°ŒŒŒ‚‚‚‚‚‚¢¢¢êêêËËË———‚‚‚‚‚‚‚‚‚hhh[[[ÿÿÿÿöÿÿÿtttyyy   ººº°°°ŒŒŒ‚‚‚‚‚‚¢¢¢êêêËËË———‚‚‚‚‚‚‚‚‚hhh[[[ÿÿÿÿö<<<>>>RRR___ZZZHHHCCCCCCSSSxxxhhhNNNJJJCCCCCCCCC555...(((\\\]]]qqq‚‚‚‚‚‚âçÈ̃ƒƒÅÅÅïïïííí———‚‚‚‚‚‚|||hhhiii(((ÿÿÿ\\\]]]qqq‚‚‚‚‚‚âçÈ̃ƒƒÅÅÅïïïííí———‚‚‚‚‚‚|||hhhiiiÿÿÿÿöÿÿÿ\\\]]]qqq‚‚‚‚‚‚âçÈ̃ƒƒÅÅÅïïïííí———‚‚‚‚‚‚|||hhhiiiÿÿÿÿö///000:::CCCCCChhh[[[CCCeeezzzyyyNNNCCCCCC???555666]]]ZZZgggúÿìñäé‚‚‚‰‰‰ÒÒÒÙÙÙÌÌ̼¼¼†††~~~fff(((ÿÿÿ]]]ZZZgggúÿìñäé‚‚‚‰‰‰ÒÒÒÙÙÙÌÌ̼¼¼†††~~~fffÿÿÿÿöÿÿÿ]]]ZZZgggúÿìñäé‚‚‚‰‰‰ÒÒÒÙÙÙÌÌ̼¼¼†††~~~fffÿÿÿÿö 000...555ooollliiiCCCFFFllloooiii```DDDAAA444 +-Z\ÁÅîóýÿÿÿúÿúÿ‚‚‚ƒƒƒ§§§ÁÁÁ¬¬¬ƒƒƒyyyUUU(((ÿÿÿ +-Z\ÁÅîóýÿÿÿúÿúÿ‚‚‚ƒƒƒ§§§ÁÁÁ¬¬¬ƒƒƒyyyUUUÿÿÿÿöÿÿÿ +-Z\ÁÅîóýÿÿÿúÿúÿ‚‚‚ƒƒƒ§§§ÁÁÁ¬¬¬ƒƒƒyyyUUUÿÿÿÿö )))YYYllloooxxxooooooCCCCCCVVVcccYYYCCC>>>,,, JK``cc­±ÀÄéìþÿúÿÙÞÄÇivvzzz‚‚‚ZZZ(((ÿÿÿ JK``cc­±ÀÄéìþÿúÿÙÞÄÇivvzzz‚‚‚ZZZÿÿÿÿöÿÿÿ JK``cc­±ÀÄéìþÿúÿÙÞÄÇivvzzz‚‚‚ZZZÿÿÿÿö """,,,---NNNYYYlllxxxoooccc[[[<<<>>>AAACCCBBB...++VWbf¡¥³¸ÕÚÕÚ«¯„BBfffOOOHHH(((ÿÿÿÿÿÿ++VWbf¡¥³¸ÕÚÕÚ«¯„BBfffOOOHHHÿÿÿÿöÿÿÿÿÿÿ++VWbf¡¥³¸ÕÚÕÚ«¯„BBfffOOOHHHÿÿÿÿö (((---JJJRRRccccccNNN<<< 444(((%%%BB…‡ž¡¥ª”svLN()ÿÿÿBB…‡ž¡¥ª”svLN()ÿÿÿÿöÿÿÿBB…‡ž¡¥ª”svLN()ÿÿÿÿö  <<><>  ÿÿÿÿÿÿ>><>  ÿÿÿÿöÿÿÿÿÿÿ>><>  ÿÿÿÿö  ÿÿÿÿÿÿÿÿÿÿÿÿÿöÿöÿÿÿÿÿÿÿÿÿÿÿÿÿö   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿö  ÿÿÿÿöÿÿÿÿöÿöÿöÿöÿöÿö ÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿöÿö((((((((((((((((((((((((((((((((((((((((((((((((þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿöþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿö(((’¦ºz®ºŽŽºf®º†žºv–ºjžºr¢ºz¢ºzšºn–ºnžºr‚ºZ j‚(((þþþ’¦ºz®ºŽŽº^®ºŠžºvšºnžºr¢ºz¦ºzšºn–ºnžºr‚ºZ j‚þþþÿöþþþ’¦ºz®ºŽŽº^®ºŠžºvšºnžºr¢ºz¦ºzšºn–ºnžºr‚ºZ j‚þþþÿö662ZZZ^^^RRRbbbZZZVVVZZZZZZ^^ZZZZZZZZZZRRR""22.(((2¶®º†Žºf~¢–‚zŠŽ~‚–6ºN–(((þþþ2¶®º†Žºf‚¦–‚zŠŽ~‚–6ºN–þþþÿöþþþ2¶®º†Žºf‚¦–‚zŠŽ~‚–6ºN–þþþÿöBBBbbbVVV.2.666666222...662226.....2666FFB666(((²ªº‚ªº‚vn :º"ž‚’’‚ž:¶"n :¶(((þþþ²ªº‚ªº‚vj :¶ž‚’’‚ž:¶"n :"¶þþþÿöþþþ²ªº‚ªº‚vj :¶ž‚’’‚ž:¶"n :"¶þþþÿö:::^^^^^^...&&&FFF666222666226.2.6:6FFB&&&:::(((ª®º†žºrŠŠ j2¶–ŠŠ–2¶j~Nž(((þþþªªº†žºrŠŠn 2¶–ŠŠ–2¶j~Nžþþþÿöþþþªªº†žºrŠŠn 2¶–ŠŠ–2¶j~Nžþþþÿö:>:bbbZZZ222222"""BBB666222222666BBB"""...6:6(((¶¦º~–ºf†ŽŠ jRº.~z:¶&fŠŠRž(((þþþ¶¦º~–ºf†ŽŠ jJº*~z:¶&fŠŠRžþþþÿöþþþ¶¦º~–ºf†ŽŠ jJº*~z:¶&fŠŠRžþþþÿö>>:^^ZZZV222262222""JJF......JJF""222222:::(((²ªº‚–ºf†ŠŠ’ jZº6bº> f–ŠŽNž(((þþþ²ªº‚–ºf†ŠŠ’ jbº>bº> f–ŠŽNžþþþÿöþþþ²ªº‚–ºf†ŠŠ’ jbº>bº> f–ŠŽNžþþþÿö>>>bb^VVV22.222222666NNNNNN""666226666666(((²®º†¢ºvŠ‚~’Bº&jj Fº*’zŠRª(((þþþ²®º†¢ºvŠ‚~’Bº&jj Fº*’zŠRªþþþÿöþþþ²®º†¢ºvŠ‚~’Bº&jj Fº*’zŠRªþþþÿö>>:bb^ZZZ262222...662FFF&&&"""FFF666..2222::6((("¶®º†šºn††–.¶n ‚‚j 2¶–†Rž(((þþþ¶®º†šºn††–.¶n ‚‚j 2¶–†Ržþþþÿöþþþ¶®º†šºn††–.¶n ‚‚j 2¶–†Ržþþþÿö:>:bbbZZZ22222.666BBB"""22.222""">>>666222:::(((²¦º‚–ºjŽš2¶ j‚––‚ f:¶"ŠNŽ(((þþþ²ªº‚–ºjŽš2¶ j‚––‚ f:¶"ŠNŽþþþÿöþþþ²ªº‚–ºjŽš2¶ j‚––‚ f:¶"ŠNŽþþþÿö>>:bb^VVV666666BBB&&".2.662226...&&&BBB222262(((&¶¦º~–ºjš"¶n ŠŠ†††Š f2¶fš(((þþþ&¶¦º~–ºjš"¶n ŠŠ†††Š f2¶fšþþþÿöþþþ&¶¦º~–ºjš"¶n ŠŠ†††Š f2¶fšþþþÿöBB>^^^ZZV666>>>&&"222222222222222222"&"BBB666(((2¶®º†¢ºv:¶"n –Š‚‚ŽŽ†ŠfB¶(((þþþ2¶®º†¢ºv:¶&n –Š‚‚ŽŽ†ŠfB¶þþþÿöþþþ2¶®º†¢ºv:¶&n –Š‚‚ŽŽ†ŠfB¶þþþÿöBB>^^^Z^ZBFB&&&662222.2.222666666226226"":>:(((2¶–ºjšºnšºr–ºj–ºfšºr¦º‚¢ºzŽºf–ºn¦ºzžºr¦ºzNR(((þþþ2¶–ºjšºnšºn–ºj–ºfšºr¦º‚¢ºzŽºf–ºn¦º~šºn¦ºzNRþþþÿöþþþ2¶–ºjšºnšºn–ºj–ºfšºr¦º‚¢ºzŽºf–ºn¦º~šºn¦ºzNRþþþÿöFFBZZVZZZZZZVVVZZZZZZ^^^^^^VVVZZZ^^^ZZZ^^^(((®Rº.Fº*††2¶†®~ºR¢ºv¦º‚¢ºzŽº^ŽºfRŠ(((þþþ®Rº.Fº*††2¶†®‚ºV¦ºz¦º‚¦º~Žº^–ºjRŠþþþÿöþþþ®Rº.Fº*††2¶†®‚ºV¦ºz¦º‚¦º~Žº^–ºjRŠþþþÿö:>:JJJFFF222222BFB22.:>:VVV^^^bbb^^^VVVVVV222((("¶:ºšzBº&šºnšºrr(((((((((((((((((("¶†(((þþþ"¶:ºšzBº&šºnžºrrþþþþþþþþþþþþþþþþþþ"¶†þþþÿöþþþ"¶:ºšzBº&šºnžºrrþþþþþþþþþþþþþþþþþþ"¶†þþþÿö>>:BF>6:6...FFFZZVZ^Z***>>>22.(((.¶6ºŽ²ªº‚*¶~ºRj(((((((((((((((Bº&n (((þþþ.¶:ºŽ²ªº‚.¶~ºRjþþþþþþþþþþþþþþþBº&n þþþÿöþþþ.¶:ºŽ²ªº‚.¶~ºRjþþþþþþþþþþþþþþþBº&n þþþÿöBB>FFB226>>>bb^BB>RRR"""FFF&&"(((’–žrºF‚ºZ(((zfºF¦ºz–ºjšºrªº†¢ºv:¶"(((þþþ’–žrºF‚ºZþþþzfºF¦º~–ºjšºr®º†¢ºz:¶"þþþÿöþþþ’–žrºF‚ºZþþþzfºF¦º~–ºjšºr®º†¢ºz:¶"þþþÿö2626666:6NNNRRR...NNN^^^VVVZZZ^^^ZZZBBB(((2¶²Vº2Šº^r(((((((((((((((((((((((((((þþþ2¶²Vº2Šº^rþþþþþþþþþþþþþþþþþþþþþþþþþþþÿöþþþ2¶²Vº2Šº^rþþþþþþþþþþþþþþþþþþþþþþþþþþþÿöBFB>B>JJFVVR**&(((v6º¢ºzrºF~(((þþþv6º¢ºzrºF~þþþÿöþþþv6º¢ºzrºF~þþþÿöÿöÿöÿöÿöÿöÿöÿöÿö**&BF>^^ZNRN...(((†ŠºZ¢ºz¶((((((þþþ†ŠºZ¢ºz¶þþþþþþÿöþþþ†ŠºZ¢ºz¶þþþþþþÿö222VVR^^Z>>:(((–ºnZº6((((((þþþšºnZº6þþþþþþÿöþþþšºnZº6þþþþþþÿöÿöZZVJJJ((((((þþþþþþÿöþþþþþþÿöÿöÿöÿöÿöÿöÿöÿöÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö···¯¯¯†††‚‚‚gggTTTnnnÿÿÿ···¯¯¯†††‚‚‚gggTTTnnnÿÿÿÿöÿöÿöÿÿÿ···¯¯¯†††‚‚‚gggTTTnnnÿÿÿÿö®®®´´´˜˜˜¤¤¤ƒƒƒgggMMMsssÿÿÿÿÿÿÿÿÿ®®®´´´˜˜˜¤¤¤ƒƒƒgggMMMsssÿÿÿÿöÿöÿÿÿÿÿÿÿÿÿ®®®´´´˜˜˜¤¤¤ƒƒƒgggMMMsssÿÿÿÿökkklll   èèèÒÒÒ´´´···†††ÿÿÿÿÿÿkkklll   èèèÒÒÒ´´´···†††ÿÿÿÿöÿöÿÿÿÿÿÿkkklll   èèèÒÒÒ´´´···†††ÿÿÿÿökkk‘‘‘„„„“““óóóøøøîîî¾¾¾······ššš”””†††ÿÿÿÿÿÿkkk‘‘‘„„„“““óóóøøøîîî¾¾¾······ššš”””†††ÿÿÿÿöÿÿÿÿÿÿkkk‘‘‘„„„“““óóóøøøîîî¾¾¾······ššš”””†††ÿÿÿÿö™™™ppp‰‰‰······ÚÚÚóóóÎÎθ¸¸···šššŒŒŒ†††VVVÿÿÿ™™™ppp‰‰‰······ÚÚÚóóóÎÎθ¸¸···šššŒŒŒ†††VVVÿÿÿÿöÿÿÿ™™™ppp‰‰‰······ÚÚÚóóóÎÎθ¸¸···šššŒŒŒ†††VVVÿÿÿÿö}}}‰‰‰ÉÉÉààà°°°™™™™™™œœœÊÊÊœœœŒŒŒ‘‘‘„„„‡‡‡ÿÿÿ}}}‰‰‰ÉÉÉààà°°°™™™™™™œœœÊÊÊœœœŒŒŒ‘‘‘„„„‡‡‡ÿÿÿÿöÿÿÿ}}}‰‰‰ÉÉÉààà°°°™™™™™™œœœÊÊÊœœœŒŒŒ‘‘‘„„„‡‡‡ÿÿÿÿö¨¨¨ÊÊÊèèè¿¿¿¡¡¡¡¡¡œœœÉÉɵµµ§§§™™™{{{€€€ÿÿÿ¨¨¨ÊÊÊèèè¿¿¿¡¡¡¡¡¡œœœÉÉɵµµ§§§™™™{{{€€€ÿÿÿÿöÿÿÿ¨¨¨ÊÊÊèèè¿¿¿¡¡¡¡¡¡œœœÉÉɵµµ§§§™™™{{{€€€ÿÿÿÿö¥¥¥§§§œœœ———ŽŽŽ¯¯¯ÎÎÎèèèžžž˜˜˜kkkƒƒƒÿÿÿ¥¥¥§§§œœœ———ŽŽŽ¯¯¯ÎÎÎèèèžžž˜˜˜kkkƒƒƒÿÿÿÿöÿÿÿ¥¥¥§§§œœœ———ŽŽŽ¯¯¯ÎÎÎèèèžžž˜˜˜kkkƒƒƒÿÿÿÿö™™™™™™™™™}}}sssƒƒƒšššéééóóóÒÒÒªªªyyykkkÿÿÿ™™™™™™™™™}}}sssƒƒƒšššéééóóóÒÒÒªªªyyykkkÿÿÿÿöÿÿÿ™™™™™™™™™}}}sssƒƒƒšššéééóóóÒÒÒªªªyyykkkÿÿÿÿö–––™™™µµµªªª€€€ttt···«««ÏÏÏéééÒÒÒ¥¥¥™™™ÿÿÿ–––™™™µµµªªª€€€ttt···«««ÏÏÏéééÒÒÒ¥¥¥™™™ÿÿÿÿöÿÿÿ–––™™™µµµªªª€€€ttt···«««ÏÏÏéééÒÒÒ¥¥¥™™™ÿÿÿÿö‚‚‚¨¨¨½½½šššmmm„„„···²²²¸¸¸éééÙÙÙÑÑÑœœœÿÿÿ‚‚‚¨¨¨½½½šššmmm„„„···²²²¸¸¸éééÙÙÙÑÑÑœœœÿÿÿÿöÿÿÿ‚‚‚¨¨¨½½½šššmmm„„„···²²²¸¸¸éééÙÙÙÑÑÑœœœÿÿÿÿöŒŒŒ£££ÏÏÏÞÞÞ¤¤¤¤¤¤············¼¼¼®®®™™™ÿÿÿŒŒŒ£££ÏÏÏÞÞÞ¤¤¤¤¤¤············¼¼¼®®®™™™ÿÿÿÿöÿÿÿŒŒŒ£££ÏÏÏÞÞÞ¤¤¤¤¤¤············¼¼¼®®®™™™ÿÿÿÿöˆˆˆšššÈÈÈôôôøøøçççÐÐз·····®®®‰‰‰€€€ÿÿÿˆˆˆšššÈÈÈôôôøøøçççÐÐз·····®®®‰‰‰€€€ÿÿÿÿöÿÿÿˆˆˆšššÈÈÈôôôøøøçççÐÐз·····®®®‰‰‰€€€ÿÿÿÿö•••ŒŒŒ™™™¦¦¦çççðððÐÐз··°°°mmmÿÿÿ•••ŒŒŒ™™™¦¦¦çççðððÐÐз··°°°mmmÿÿÿÿöÿÿÿ•••ŒŒŒ™™™¦¦¦çççðððÐÐз··°°°mmmÿÿÿÿö†††¶¶¶­­­œœœ€€€ÿÿÿÿÿÿ†††¶¶¶­­­œœœ€€€ÿÿÿÿÿÿÿöÿÿÿÿÿÿ†††¶¶¶­­­œœœ€€€ÿÿÿÿÿÿÿö{{{nnntttÿÿÿÿÿÿÿÿÿÿÿÿ{{{nnntttÿÿÿÿöÿöÿÿÿÿÿÿÿÿÿÿÿÿ{{{nnntttÿÿÿÿöÿÿÿÿÿÿÿÿÿÿöÿöÿöÿöÿÿÿÿÿÿÿÿÿÿöÿöÿöÿö((ÿÿÿÿÿÿÿÿÿÿÿÿ(D5(ÿÿÿD5ÿÿÿÿÿÿD5ÿÿÿ((((gZND(ÿÿÿgZNDÿÿÿÿÿÿgZNDÿÿÿ<<<555...((((Xi¹îlO(ÿÿÿXi¹îlOÿÿÿÿÿÿXi¹îlOÿÿÿ333===mmmŒŒŒ???...(q|²Ý÷ÑzY(ÿÿÿq|²Ý÷ÑzYÿÿÿÿÿÿq|²Ý÷ÑzYÿÿÿBBBIIIiii‚‚‚‘‘‘{{{GGG444({‚Ͻ­ÉÄÏeg(ÿÿÿ{‚Ͻ­ÉÄÏegÿÿÿÿÿÿ{‚Ͻ­ÉÄÏegÿÿÿHHHLLLzzzooofffvvvssszzz;;;<<<(— Èëþ((õïÕtv(ÿÿÿ— ÈëþÿÿÿÿÿÿõïÕtvÿÿÿÿÿÿ— ÈëþÿÿÿÿÿÿõïÕtvÿÿÿYYY^^^vvvŠŠŠ•••}}}DDDEEE(Îüúû((ûØúvk(ÿÿÿÎüúûÿÿÿÿÿÿûØúvkÿÿÿÿÿÿÎüúûÿÿÿÿÿÿûØúvkÿÿÿyyy”””“““””””””“““EEE???(Õóÿ((ÿä¸y`(ÿÿÿÕóÿÿÿÿÿÿÿÿä¸y`ÿÿÿÿÿÿÕóÿÿÿÿÿÿÿÿä¸y`ÿÿÿ}}}––––––†††lllGGG888((((øë®|w(ÿÿÿÿÿÿÿÿÿÿÿÿøë®|wÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøë®|wÿÿÿ’’’ŠŠŠfffIIIFFF(øÝÛwn(ÿÿÿøÝÛwnÿÿÿÿÿÿøÝÛwnÿÿÿ’’’‚‚‚FFF@@@(ÿ餔(ÿÿÿÿ餔ÿÿÿÿÿÿÿ餔ÿÿÿ–––‰‰‰```WWW(øÎç(ÿÿÿøÎçÿÿÿÿÿÿøÎçÿÿÿ’’’yyyˆˆˆ(((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlgeneral-1.3.1/src/themes/default/deploy_buttons.bmp0000664000175000017500000004546612140770455017526 00000000000000BM6K6(PPKë ë ((((((ÿÿÿÿÿÿÿÿÿÿÿÿ(((((((((9DM;FP(((ÿÿÿ9DM;FPÿÿÿÿÿÿ9DM;FPÿÿÿ(((EEEGGG((((((wŸŒ¥»p„•'06(((ÿÿÿwŸŒ¥»p„•'06ÿÿÿÿÿÿwŸŒ¥»p„•'06ÿÿÿ(((¨¨¨†††000((((((¥ÅÝ ¾Õ®Ïéar€(((ÿÿÿ¥ÅÝ ¾Õ®Ïéar€ÿÿÿÿÿÿ¥ÅÝ ¾Õ®Ïéar€ÿÿÿ(((ÈÈÈÁÁÁÓÓÓttt((((((œºÓ•°É((((((¤ÄÝ0:A(((ÿÿÿœºÓ•°Éÿÿÿÿÿÿ¤ÄÝ0:AÿÿÿÿÿÿœºÓ•°Éÿÿÿÿÿÿ¤ÄÝ0:Aÿÿÿ(((¾¾¾´´´((((((ÇÇÇ;;;((((((Œ¤»”°Ç((((((¯ÐêGT_(((ÿÿÿŒ¤»”°Çÿÿÿÿÿÿ¯ÐêGT_ÿÿÿÿÿÿŒ¤»”°Çÿÿÿÿÿÿ¯ÐêGT_ÿÿÿ(((¨¨¨³³³((((((ÔÔÔUUU((((((jŽ«Êå((((((§Çà+29(((ÿÿÿjŽ«Êåÿÿÿÿÿÿ§Çà+29ÿÿÿÿÿÿjŽ«Êåÿÿÿÿÿÿ§Çà+29ÿÿÿ(((ÎÎÎ((((((ÊÊÊ333((((((¡¾Ö©Éã((((((¯ÐêFP[(((ÿÿÿ¡¾Ö©Éãÿÿÿÿÿÿ¯ÐêFP[ÿÿÿÿÿÿ¡¾Ö©Éãÿÿÿÿÿÿ¯ÐêFP[ÿÿÿ(((ÂÂÂÍÍÍ((((((ÔÔÔRRR((((((^p¥ÂÝ((((((¨Éâ1:A(((ÿÿÿ^p¥ÂÝÿÿÿÿÿÿ¨Éâ1:Aÿÿÿÿÿÿ^p¥ÂÝÿÿÿÿÿÿ¨Éâ1:Aÿÿÿ(((rrrÆÆÆ((((((ÌÌÌ;;;((((((ާ¾«Ëæ((((((¯ÐêN]j(((ÿÿÿާ¾«Ëæÿÿÿÿÿÿ¯ÐêN]jÿÿÿÿÿÿާ¾«Ëæÿÿÿÿÿÿ¯ÐêN]jÿÿÿ(((«««ÏÏÏ((((((ÔÔÔ___((((((Xiu©Êã((((((¤ÄÜ.6>(((ÿÿÿXiu©Êãÿÿÿÿÿÿ¤ÄÜ.6>ÿÿÿÿÿÿXiu©Êãÿÿÿÿÿÿ¤ÄÜ.6>ÿÿÿ(((jjjÍÍÍ((((((ÇÇÇ777((((((nƒ””¯Ç((((((¯ÐêL\e(((ÿÿÿnƒ””¯Çÿÿÿÿÿÿ¯ÐêL\eÿÿÿÿÿÿnƒ””¯Çÿÿÿÿÿÿ¯ÐêL\eÿÿÿ(((………³³³((((((ÔÔÔ\\\((((((as‰¤º((((((ªÊã,4<(((ÿÿÿas‰¤ºÿÿÿÿÿÿªÊã,4<ÿÿÿÿÿÿas‰¤ºÿÿÿÿÿÿªÊã,4<ÿÿÿ(((uuu§§§((((((ÍÍÍ555((((((‹¥¹’­Ä((((((¯ÐêYix(((ÿÿÿ‹¥¹’­Äÿÿÿÿÿÿ¯ÐêYixÿÿÿÿÿÿ‹¥¹’­Äÿÿÿÿÿÿ¯ÐêYixÿÿÿ(((¨¨¨°°°((((((ÔÔÔkkk((((((j}Ž“¯Æ((((((¡ÀØ,4;(((ÿÿÿj}Ž“¯Æÿÿÿÿÿÿ¡ÀØ,4;ÿÿÿÿÿÿj}Ž“¯Æÿÿÿÿÿÿ¡ÀØ,4;ÿÿÿ(((€€€²²²((((((ÃÃÃ555((((((Š£¹ˆ£·((((((®ÏèUfr(((ÿÿÿŠ£¹ˆ£·ÿÿÿÿÿÿ®ÏèUfrÿÿÿÿÿÿŠ£¹ˆ£·ÿÿÿÿÿÿ®ÏèUfrÿÿÿ(((¦¦¦¦¦¦((((((ÒÒÒggg((((((¦ÅÞ]o}((((((((((((((((((((((((((((((((((((((((((KXdALU(((ÿÿÿ¦ÅÞ]o}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿKXdALUÿÿÿÿÿÿ¦ÅÞ]o}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿKXdALUÿÿÿ(((ÉÉÉqqq((((((((((((((((((((((((((((((((((((((((((ZZZMMM((((((¨ÈásŠœF(((ÿÿÿ¤ÄÞUcqÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿž¼Ô4>Fÿÿÿÿÿÿ¤ÄÞUcqÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿž¼Ô4>Fÿÿÿ(((ÈÈÈeee((((((((((((((((((((((((((((((((((((((((((¿¿¿???((((((o„•9DN((((((xŽ¡–²É(((ÿÿÿo„•9DNÿÿÿÿÿÿxŽ¡–²Éÿÿÿÿÿÿo„•9DNÿÿÿÿÿÿxŽ¡–²Éÿÿÿ(((†††EEE((((((‘‘‘µµµ((((((‹£¹>>((((((‚‚‚¬¬¬((((((¢ÀÚ?LU((((((uŒŸš¶Î(((ÿÿÿ¢ÀÚ?LUÿÿÿÿÿÿuŒŸš¶Îÿÿÿÿÿÿ¢ÀÚ?LUÿÿÿÿÿÿuŒŸš¶Îÿÿÿ(((ÄÄÄMMM((((((ººº(((((({“¦3=D((((((k§¾(((ÿÿÿ{“¦3=Dÿÿÿÿÿÿk§¾ÿÿÿÿÿÿ{“¦3=Dÿÿÿÿÿÿk§¾ÿÿÿ(((–––>>>((((((«««((((((¦ÄÞ@KV((((((x¡¡¾Ø(((ÿÿÿ¦ÄÞ@KVÿÿÿÿÿÿx¡¡¾Øÿÿÿÿÿÿ¦ÄÞ@KVÿÿÿÿÿÿx¡¡¾Øÿÿÿ(((ÈÈÈMMM((((((ÂÂÂ((((((z’£4=E((((((h{Œ»Ó(((ÿÿÿz’£4=Eÿÿÿÿÿÿh{Œ»Óÿÿÿÿÿÿz’£4=Eÿÿÿÿÿÿh{Œ»Óÿÿÿ(((”””>>>((((((~~~¾¾¾((((((©ÊãN\g((((((ƒš®¯Ðê(((ÿÿÿ©ÊãN\gÿÿÿÿÿÿƒš®¯Ðêÿÿÿÿÿÿ©ÊãN\gÿÿÿÿÿÿƒš®¯Ðêÿÿÿ(((ÍÍÍ]]]((((((ÔÔÔ((((((‘«Â6AI((((((sˆš¨Éâ(((ÿÿÿ‘«Â6AIÿÿÿÿÿÿsˆš¨Éâÿÿÿÿÿÿ‘«Â6AIÿÿÿÿÿÿsˆš¨Éâÿÿÿ(((¯¯¯BBB((((((‹‹‹ÌÌÌ((((((¯ÐêTcp((((((…²¯Ðê(((ÿÿÿ¯ÐêTcpÿÿÿÿÿÿ…²¯Ðêÿÿÿÿÿÿ¯ÐêTcpÿÿÿÿÿÿ…²¯Ðêÿÿÿ(((ÔÔÔeee((((((   ÔÔÔ((((((©Á5>G((((((‡ µ»Ó(((ÿÿÿ©Á5>Gÿÿÿÿÿÿ‡ µ»Óÿÿÿÿÿÿ©Á5>Gÿÿÿÿÿÿ‡ µ»Óÿÿÿ(((­­­???((((((£££¾¾¾((((((¯Ðên„•((((((”°Ç¯Ðê(((ÿÿÿ¯Ðên„•ÿÿÿÿÿÿ”°Ç¯Ðêÿÿÿÿÿÿ¯Ðên„•ÿÿÿÿÿÿ”°Ç¯Ðêÿÿÿ(((ÔÔÔ†††((((((³³³ÔÔÔ((((((¬Ìæj}Žfy‰ ¾×(((ÿÿÿ¬Ìæj}Žfy‰ ¾×ÿÿÿÿÿÿ¬Ìæj}Žfy‰ ¾×ÿÿÿ(((ÐÐЀ€€{{{ÂÂÂ((((((’­Ã§Çà§Æß˜´Ë(((ÿÿÿ’­Ã§Çà§Æß˜´Ëÿÿÿÿÿÿ’­Ã§Çà§Æß˜´Ëÿÿÿ(((°°°ÊÊÊÊÊÊ···((((((¸ØòÄéü(((ÿÿÿ¸ØòÄéüÿÿÿÿÿÿ¸ØòÄéüÿÿÿ(((ÜÜÜêêê(((((((((ÿÿÿÿÿÿÿÿÿÿÿÿ((((((''''''ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ '‰¥}''[¢©'ÿÿÿ‰¥}ÿÿÿÿÿÿ[¢©ÿÿÿÿÿÿ‰¥}ÿÿÿÿÿÿ[¢©ÿÿÿ )))111%%% 000222 'Ï܉k''_†Ïé'ÿÿÿÏ܉kÿÿÿÿÿÿ_†ÏéÿÿÿÿÿÿÏ܉kÿÿÿÿÿÿ_†Ïéÿÿÿ >>>BBB))) (((>>>EEE 'ëßéZ''i½íׯ'ÿÿÿëßéZÿÿÿÿÿÿi½íׯÿÿÿÿÿÿëßéZÿÿÿÿÿÿi½íׯÿÿÿ FFFBBBEEE***  888GGG@@@444 'öÿÚ{}''ˆ«ÚüÏ'ÿÿÿöÿÚ{}ÿÿÿÿÿÿˆ«ÚüÏÿÿÿÿÿÿöÿÚ{}ÿÿÿÿÿÿˆ«ÚüÏÿÿÿ IIILLLAAA$$$%%% (((333AAAKKK>>> 'ÃýòÏ©®ûïÛº'ÿÿÿÃýòÏ©®ûïÛºÿÿÿÿÿÿÃýòÏ©®ûïÛºÿÿÿ :::KKKHHH>>>222444KKKGGGAAA777 'åßÿÝÓÖüÂ'ÿÿÿåßÿÝÓÖüÂÿÿÿÿÿÿåßÿÝÓÖüÂÿÿÿ DDDBBBLLLBBB???@@@KKK::: 'ÔÆõ×ÕÊ'ÿÿÿÔÆõ×ÕÊÿÿÿÿÿÿÔÆõ×ÕÊÿÿÿ ???;;;III@@@???<<< '©²êï·¬'ÿÿÿ©²êï·¬ÿÿÿÿÿÿ©²êï·¬ÿÿÿ 222555FFFGGG666333 '…ËÓòÿÊ–z'ÿÿÿ…ËÓòÿÊ–zÿÿÿÿÿÿ…ËÓòÿÊ–zÿÿÿ '''<<>>EEE<<< ''''''ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ((ÿÿÿÿÿÿÿÿÿÿÿÿ(D5(ÿÿÿD5ÿÿÿÿÿÿD5ÿÿÿ((((gZND(ÿÿÿgZNDÿÿÿÿÿÿgZNDÿÿÿ<<<555...((((Xi¹îlO(ÿÿÿXi¹îlOÿÿÿÿÿÿXi¹îlOÿÿÿ333===mmmŒŒŒ???...(q|²Ý÷ÑzY(ÿÿÿq|²Ý÷ÑzYÿÿÿÿÿÿq|²Ý÷ÑzYÿÿÿBBBIIIiii‚‚‚‘‘‘{{{GGG444({‚Ͻ­ÉÄÏeg(ÿÿÿ{‚Ͻ­ÉÄÏegÿÿÿÿÿÿ{‚Ͻ­ÉÄÏegÿÿÿHHHLLLzzzooofffvvvssszzz;;;<<<(— Èëþ((õïÕtv(ÿÿÿ— ÈëþÿÿÿÿÿÿõïÕtvÿÿÿÿÿÿ— ÈëþÿÿÿÿÿÿõïÕtvÿÿÿYYY^^^vvvŠŠŠ•••}}}DDDEEE(Îüúû((ûØúvk(ÿÿÿÎüúûÿÿÿÿÿÿûØúvkÿÿÿÿÿÿÎüúûÿÿÿÿÿÿûØúvkÿÿÿyyy”””“““””””””“““EEE???(Õóÿ((ÿä¸y`(ÿÿÿÕóÿÿÿÿÿÿÿÿä¸y`ÿÿÿÿÿÿÕóÿÿÿÿÿÿÿÿä¸y`ÿÿÿ}}}––––––†††lllGGG888((((øë®|w(ÿÿÿÿÿÿÿÿÿÿÿÿøë®|wÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøë®|wÿÿÿ’’’ŠŠŠfffIIIFFF(øÝÛwn(ÿÿÿøÝÛwnÿÿÿÿÿÿøÝÛwnÿÿÿ’’’‚‚‚FFF@@@(ÿ餔(ÿÿÿÿ餔ÿÿÿÿÿÿÿ餔ÿÿÿ–––‰‰‰```WWW(øÎç(ÿÿÿøÎçÿÿÿÿÿÿøÎçÿÿÿ’’’yyyˆˆˆ(((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlgeneral-1.3.1/src/themes/default/menu1_buttons.bmp0000664000175000017500000013646612140770455017260 00000000000000BM6½6(`¨½ë ë ''''''ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ '‰¥}''[¢©'ÿÿÿ‰¥}ÿÿÿÿÿÿ[¢©ÿÿÿÿÿÿ‰¥}ÿÿÿÿÿÿ[¢©ÿÿÿ !!!((( '''((( 'Ï܉k''_†Ïé'ÿÿÿÏ܉kÿÿÿÿÿÿ_†ÏéÿÿÿÿÿÿÏ܉kÿÿÿÿÿÿ_†Ïéÿÿÿ 222555!!!  222888 'ëßéZ''i½íׯ'ÿÿÿëßéZÿÿÿÿÿÿi½íׯÿÿÿÿÿÿëßéZÿÿÿÿÿÿi½íׯÿÿÿ 999555888"""  ---999444*** 'öÿÚ{}''ˆ«ÚüÏ'ÿÿÿöÿÚ{}ÿÿÿÿÿÿˆ«ÚüÏÿÿÿÿÿÿöÿÚ{}ÿÿÿÿÿÿˆ«ÚüÏÿÿÿ ;;;===555 )))555===222 'ÃýòÏ©®ûïÛº'ÿÿÿÃýòÏ©®ûïÛºÿÿÿÿÿÿÃýòÏ©®ûïÛºÿÿÿ ///===:::222(((***===999555,,, 'åßÿÝÓÖüÂ'ÿÿÿåßÿÝÓÖüÂÿÿÿÿÿÿåßÿÝÓÖüÂÿÿÿ 777555===555333444===/// 'ÔÆõ×ÕÊ'ÿÿÿÔÆõ×ÕÊÿÿÿÿÿÿÔÆõ×ÕÊÿÿÿ 333000;;;444333000 '©²êï·¬'ÿÿÿ©²êï·¬ÿÿÿÿÿÿ©²êï·¬ÿÿÿ (((+++999999,,,))) '…ËÓòÿÊ–z'ÿÿÿ…ËÓòÿÊ–zÿÿÿÿÿÿ…ËÓòÿÊ–zÿÿÿ 000333:::===000$$$ 'wµÛäéÛõð‹€'ÿÿÿwµÛäéÛõð‹€ÿÿÿÿÿÿwµÛäéÛõð‹€ÿÿÿ ,,,555777888555;;;:::!!! 'š®åÛÉ''»øÓµ’'ÿÿÿš®åÛÉÿÿÿÿÿÿ»øÓµ’ÿÿÿÿÿÿš®åÛÉÿÿÿÿÿÿ»øÓµ’ÿÿÿ %%%***777555000 ---<<<333,,,### '¨üÕñÊ''ÛòÿÁ°'ÿÿÿ¨üÕñÊÿÿÿÿÿÿÛòÿÁ°ÿÿÿÿÿÿ¨üÕñÊÿÿÿÿÿÿÛòÿÁ°ÿÿÿ (((===333:::000 555:::===...*** '¿ñÙ³''®ôãÄ'ÿÿÿ¿ñÙ³ÿÿÿÿÿÿ®ôãÄÿÿÿÿÿÿ¿ñÙ³ÿÿÿÿÿÿ®ôãÄÿÿÿ ...:::555+++ ***;;;777/// 'ÆÅ''ÑæÉ'ÿÿÿÆÅÿÿÿÿÿÿÑæÉÿÿÿÿÿÿÆÅÿÿÿÿÿÿÑæÉÿÿÿ 000000 222888000 ''''''ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&1kž 1t 2o 0h +d (P 1 #? $O%K$C"B!<41,'"&&&ÿÿÿ1kž 1t 2o 0h +d (P 1 #? $O%K$C"B!<41,'"ÿÿÿÿÿÿ1kž 1t 2o 0h +d (P 1 #? $O%K$C"B!<41,'"ÿÿÿ]]]444333000---''' %%%$$$""" &&&sÞô‰Ï|´‘ÓÓŒÐ\;aL}„Ç€Åy¿pºd¬`¡[žV’Lˆ hu±–àß„×w¾Ju,L :c^ L‡&&&ÿÿÿjâúW”¹`]R%zž!¢ä¤è!¡ã^>hu±–àß„×w¾Ju,L :c^ L‡ÿÿÿÿÿÿjâúW”¹`]R%zž!¢ä¤è!¡ã^>hu±–àß„×w¾Ju,L :c^ L‡ÿÿÿ²²²{{{IIIccc‡‡‡‰‰‰†††QQQ999ddd€€€|||uuuiiiAAA'''555UUUEEE&&&^âø3¨ãËרsdM"u™"©ë ¬é"ªå`“>ht³”ÞˆÕ;l)i Y¢3f5a Pˆ$&&&ÿÿÿ^âø3¨ãËרsdM"u™"©ë ¬é"ªå`“>ht³”ÞˆÕ;l)i Y¢3f5a Pˆ$ÿÿÿÿÿÿ^âø3¨ãËרsdM"u™"©ë ¬é"ªå`“>ht³”ÞˆÕ;l)i Y¢3f5a Pˆ$ÿÿÿ°°°‹‹‹¬¬¬LLL___ŒŒŒ‹‹‹SSS999dddvvv666\\\TTT000111HHH&&&YÞø"Ÿä8°èµÃÎbXR#˜Î'³ï&³ì"©æa‘=lq³‡ÒExÉU•Ø]Ÿ*JPŽ'&&&ÿÿÿYÞø"Ÿä8°èµÃÎbXR#˜Î'³ï&³ì"©æa‘=lq³‡ÒExÉU•Ø]Ÿ*JPŽ'ÿÿÿÿÿÿYÞø"Ÿä8°èµÃÎbXR#˜Î'³ï&³ì"©æa‘=lq³‡ÒExÉU•Ø]Ÿ*JPŽ'ÿÿÿ®®®………‘‘‘žžžFFF}}}’’’‘‘‘‹‹‹SSS999cccuuuCCCkkkƒƒƒUUU&&&JJJ&&&QÞ÷ £ç§è3³ëËÓÐpgW)žÅ'¹ï'´ì"­ì\rœFnU*&&&ÿÿÿQÞ÷ £ç§è3³ëËÓÐpgW)žÅ'¹ï'´ì"­ì\rœFnU*ÿÿÿÿÿÿQÞ÷ £ç§è3³ëËÓÐpgW)žÅ'¹ï'´ì"­ì\rœFnU*ÿÿÿ¬¬¬ˆˆˆŠŠŠ’’’©©©PPP~~~•••’’’ŽŽŽPPP777^^^LLL‘‘‘hhhaaa===MMM&&&QÛ÷!¢çªê#²í8ºçËÎÂth^)ŸÈ'¸ò'±ï!¥ä^>bP‹Kš>ˆ:en­U’,&&&ÿÿÿQÛ÷!¢çªê#²í8ºçËÎÂth^)ŸÈ'¸ò'±ï!¥ä^>bP‹Kš>ˆ:en­U’,ÿÿÿÿÿÿQÛ÷!¢çªê#²í8ºçËÎÂth^)ŸÈ'¸ò'±ï!¥ä^>bP‹Kš>ˆ:en­U’,ÿÿÿ«««ˆˆˆŒŒŒ‘‘‘•••£££RRR€€€•••‘‘‘‰‰‰RRR777IIIJJJ>>>555```MMM&&&SÜõ" ç ¨è&°î'¹ï?ÁèËÏÆpe{)œÌ'²ï%ªí!¡ãZ8]Eo6Ya«d®X•.&&&ÿÿÿSÜõ" ç ¨è&°î'¹ï?ÁèËÏÆpe{)œÌ'²ï%ªí!¡ãZ8]Eo6Ya«d®X•.ÿÿÿÿÿÿSÜõ" ç ¨è&°î'¹ï?ÁèËÏÆpe{)œÌ'²ï%ªí!¡ãZ8]Eo6Ya«d®X•.ÿÿÿ«««‡‡‡‹‹‹‘‘‘•••™™™¤¤¤WWW’’’†††OOO333===000YYY[[[OOO&&&`Þø¢ç ªê%±ì'¸ï(Àó?Ãí¸ÃÅ%4` ”À#®ë¦éšÝGn7Y4R8\^V•!6&&&ÿÿÿ`Þø¢ç ªê%±ì'¸ï(Àó?Ãí¸ÃÅ%4` ”À#®ë¦éšÝGn7Y4R8\^V•!6ÿÿÿÿÿÿ`Þø¢ç ªê%±ì'¸ï(Àó?Ãí¸ÃÅ%4` ”À#®ë¦éšÝGn7Y4R8\^V•!6ÿÿÿ®®®ˆˆˆ‘‘‘•••™™™œœœ333xxxŠŠŠ===000...222TTTNNN&&&hâøŸä §è$¯ï'¸ï+Àó,Àô<ÀípŠ,/Kr?\’Õ8_7V3S0N6T R†!9&&&ÿÿÿhâøŸä §è$¯ï'¸ï+Àó,Àô<ÀípŠ,/Kr?\’Õ8_7V3S0N6T R†!9ÿÿÿÿÿÿhâøŸä §è$¯ï'¸ï+Àó,Àô<ÀípŠ,/Kr?\’Õ8_7V3S0N6T R†!9ÿÿÿ±±±………ŠŠŠ•••™™™ššš™™™ggg"""AAA555|||333000---+++///III&&&uâøæ å"®ë'´î(¼ð/Ãó,¿ò*§Ô'?Y./€C 4Knž8\5Q2O-G,C2&&&ÿÿÿuâøæ å"®ë'´î(¼ð/Ãó,¿ò*§Ô'?Y./€C 4Knž8\5Q2O-G,C2ÿÿÿÿÿÿuâøæ å"®ë'´î(¼ð/Ãó,¿ò*§Ô'?Y./€C 4Knž8\5Q2O-G,C2ÿÿÿ²²²………†††ŽŽŽ’’’———œœœ™™™†††777999,,,]]]222...,,,(((&&&&&&zâ÷áå#ªé$°ë%¶í)ºñ)¼ð1¥Î‹Ê(1r \[ 7Whž5S1N0J,C "&&&ÿÿÿzâ÷áå#ªé$°ë%¶í)ºñ)¼ð1¥Î‹Ê(1r \[ 7Whž5S1N0J,C "ÿÿÿÿÿÿzâ÷áå#ªé$°ë%¶í)ºñ)¼ð1¥Î‹Ê(1r \[ 7Whž5S1N0J,C "ÿÿÿ²²²„„„„„„“““–––———„„„~~~666((('''000ZZZ///,,,***&&&&&&†ßù•ߘâœÝ Ú¨á%¯ê$±ì'¯ì=~¥ffÅBH¢7;Q /Qd›2T-H-A !&&&ÿÿÿ†ßù•ߘâœÝ Ú¨á%¯ê$±ì'¯ì=~¥ffÅBH¢7;Q /Qd›2T-H-A !ÿÿÿÿÿÿ†ßù•ߘâœÝ Ú¨á%¯ê$±ì'¯ì=~¥ffÅBH¢7;Q /Qd›2T-H-A !ÿÿÿ³³³€€€‚‚‚‚‚‚‰‰‰‘‘‘iiiiiiOOODDD###+++WWW---(((&&&&&&ŠßöÛ€¿#Z„)L4Sz¯"«é!­ê ­ìV‘Ö†Žå?I4;U 0PU/L,B &&&ÿÿÿŠßöÛ€¿#Z„)L4Sz¯"«é!­ê ­ìV‘Ö†Žå?I4;U 0PU/L,B ÿÿÿÿÿÿŠßöÛ€¿#Z„)L4Sz¯"«é!­ê ­ìV‘Ö†Žå?I4;U 0PU/L,B ÿÿÿ²²²zzzmmmNNN&&&---gggŽŽŽ€€€‡‡‡NNNBBB$$$+++MMM***&&&&&&”àù‰Ø@yU5x¼8v2QÝ!¥è"¨é!¥èSÖˆæÉó:Èô4Èó2Ãó.¾ñ+¼ì'·í#´æJ\&&&ÿÿÿÙòý·Þô£ÞòŠßøwÝöZÙöRÒöKÒ÷IÑ÷AÑø=Íö>Éó:Èô4Èó2Ãó.¾ñ+¼ì'·í#´æJ\ÿÿÿÿÿÿÙòý·Þô£ÞòŠßøwÝöZÙöRÒöKÒ÷IÑ÷AÑø=Íö>Éó:Èô4Èó2Ãó.¾ñ+¼ì'·í#´æJ\ÿÿÿÃÃõµµ³³³³³³¯¯¯ªªª¦¦¦¦¦¦¦¦¦¥¥¥¢¢¢   ŸŸŸžžžœœœ™™™–––”””‘‘‘:::&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&&&&***&&&&&&&&&******&&&&&&&&&***&&&&&&******&&&&&&***&&&&&&&&&þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ"""""""""""""""""""""***ªªª¦¦¦¢¢¢ºººÆÆÆ¦¦¦®®®ÆÆÆÂ¦¦¦’’’ŽŽŽªªª¦¦¦ÆÆÆ¦¦¦’’’¦¦¦®®®ÆÆÆ***þþþªªª¦¦¦¢¢¢ºººÆÆÆ¦¦¦®®®ÆÆÆÂ¦¦¦’’’ŽŽŽªªª¦¦¦ÆÆÆ¦¦¦’’’¦¦¦®®®ÆÆÆþþþþþþªªª¦¦¦¢¢¢ºººÆÆÆ¦¦¦®®®ÆÆÆÂ¦¦¦’’’ŽŽŽªªª¦¦¦ÆÆÆ¦¦¦’’’¦¦¦®®®ÆÆÆþþþ"""‰‰‰†††ƒƒƒ–––   †††   †††vvvsss‰‰‰†††   †††vvv†††   """&&&¦¦¦RvB’f~Fb6 Z2 F& ^6‚F‚FªŠ.z^ R*f: N* N* R* :"ÆÆÆ&&&þþþ¦¦¦RvB’f~Fb6 Z2 F& ^6‚F‚FªŠ.z^ R*f: N* N* R* :"ÆÆÆþþþþþþ¦¦¦RvB’f~Fb6 Z2 F& ^6‚F‚FªŠ.z^ R*f: N* N* R* :"ÆÆÆþþþ†††EEEdddNNN===888+++:::PPPPPP (((RRR222@@@000000222$$$   ***ÆÆÆ^fbj~F ^6b6 R* V.‚Fz^š&jF*nR >" ^6 B" F&f6j:¦¦¦***þþþÆÆÆ^fbj~F ^6b6 R* V.‚Fz^š&jF*nR >" ^6 B" F&f6j:¦¦¦þþþþþþÆÆÆ^fbj~F ^6b6 R* V.‚Fz^š&jF*nR >" ^6 B" F&f6j:¦¦¦þþþ"""   FFFJJJNNN:::===222555PPPRRR$$$555JJJ&&&:::(((+++>>>AAA†††"""&&&ÆÆÆ†JZnjZzB N* F&Z. >" N*^2ŠŠŠ&&&þþþÆÆÆ†JZnjZzB N* F&Z. >" N*^2ŠŠŠþþþþþþÆÆÆ†JZnjZzB N* F&Z. >" N*^2ŠŠŠþþþ   SSSGGGJJJKKK000+++777&&&000:::ooo***ÆÆÆ‚J~NZn´®ÝÿÀÃÝÿÝÿÝÿÝÿÝÿÁÑ B"f6 F& V2R.~~~***þþþÆÆÆ‚J~NZn´®ÝÿÀÃÝÿÝÿÝÿÝÿÝÿÁÑ B"f6 F& V2R.~~~þþþþþþÆÆÆ‚J~NZn´®ÝÿÀÃÝÿÝÿÝÿÝÿÝÿÁÑ B"f6 F& V2R.~~~þþþ"""   QQQPPPGGG€€€¦¦¦‹‹‹¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ŽŽŽ(((>>>+++555333fff"""&&&¦¦¦ŠJŠJ^n¯ÑÝÿÝÿÝÿ"´Ì+¥´½ÐÝÿÝÿÍç F& F* J&r>ŠŠŠ&&&þþþ¦¦¦ŠJŠJ^n¯ÑÝÿÝÿÝÿ"´Ì+¥´½ÐÝÿÝÿÍç F& F* J&r>ŠŠŠþþþþþþ¦¦¦ŠJŠJ^n¯ÑÝÿÝÿÝÿ"´Ì+¥´½ÐÝÿÝÿÍç F& F* J&r>ŠŠŠþþþ†††UUUUUUIII†††¦¦¦¦¦¦¦¦¦ŠŠŠ~~~ŽŽŽ¦¦¦¦¦¦™™™+++,,,---FFFooo***¦¦¦ŠJ‚J~FÈÙÝÿ ÖòVdYªz^‚J ƒeÝÿÝÿ¢N* N* N*¢¢¢***þþþ¦¦¦ŠJ‚J~FÈÙÝÿ ÖòVdYªz^‚J ƒeÝÿÝÿ¢N* N* N*¢¢¢þþþþþþ¦¦¦ŠJ‚J~FÈÙÝÿ ÖòVdYªz^‚J ƒeÝÿÝÿ¢N* N* N*¢¢¢þþþ"""†††UUUQQQNNN–––¦¦¦¢¢¢MMM RRRQQQWWW¦¦¦¦¦¦rrr000000000ƒƒƒ"""&&&ÆÆÆ†Jr>n:¸®ÝÿD‚‹‚F:z>&Z–†‚F F&Ýÿ¸½n> J&Z2¢¢¢&&&þþþÆÆÆ†Jr>n:¸®ÝÿD‚‹‚F:z>&Z–†‚F F&Ýÿ¸½n> J&Z2¢¢¢þþþþþþÆÆÆ†Jr>n:¸®ÝÿD‚‹‚F:z>&Z–†‚F F&Ýÿ¸½n> J&Z2¢¢¢þþþ   SSSFFFCCC‚‚‚¦¦¦eee;;;111oooPPP+++¦¦¦………EEE---888ƒƒƒ***ÆÆÆr> J&j:…pQplz6"^žŽÔêÝÿ±·nVb6r>‚Jžžž***þþþÆÆÆr> J&j:…pQplz6"^žŽÔêÝÿ±·nVb6r>‚JžžžþþþþþþÆÆÆr> J&j:…pQplz6"^žŽÔêÝÿ±·nVb6r>‚Jžžžþþþ"""   FFF---AAA[[[VVV,,,vvvžžž¦¦¦JJJ===FFFQQQ€€€"""&&&¦¦¦ Z2^2~Bz^z:"ª“~&»É ±ÑÎïÝÿÝÿÔê“^†J†Jn:v>ŠŠŠ&&&þþþ¦¦¦ Z2^2~Bz^z:"ª“~&»É ±ÑÎïÝÿÝÿÔê“^†J†Jn:v>ŠŠŠþþþþþþ¦¦¦ Z2^2~Bz^z:"ª“~&»É ±ÑÎïÝÿÝÿÔê“^†J†Jn:v>ŠŠŠþþþ†††888:::NNNRRR... fffˆˆˆœœœ¦¦¦¦¦¦žžž^^^SSSSSSCCCHHHooo&&&ªªªf: Z2vBz^—/,ÒíÝÿÝÿÝÿÝÿÝÿÊ×^‚FzB~Br> R.¢¢¢***þþþªªªf: Z2vBz^—/,ÒíÝÿÝÿÝÿÝÿÝÿÊ×^‚FzB~Br> R.¢¢¢þþþþþþªªªf: Z2vBz^—/,ÒíÝÿÝÿÝÿÝÿÝÿÊ×^‚FzB~Br> R.¢¢¢þþþ‰‰‰@@@888IIIRRR...žžž¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦•••\\\PPPKKKNNNFFF333ƒƒƒ"""***®®® Z2j:v>z:"ÉåÝÿÝÿÊ×´¬  „lzbbbjzBZšŠV’†ŠJ‚F¢¢¢&&&þþþ®®® Z2j:v>z:"ÉåÝÿÝÿÊ×´¬  „lzbbbjzBZšŠV’†ŠJ‚F¢¢¢þþþþþþ®®® Z2j:v>z:"ÉåÝÿÝÿÊ×´¬  „lzbbbjzBZšŠV’†ŠJ‚F¢¢¢þþþ"""888AAAHHH...™™™¦¦¦¦¦¦•••€€€mmmRRRHHHJJJKKKsssmmmUUUPPPƒƒƒ&&&¢¢¢j:r>vZ…EFÝÿÝÿ £††Jj:~B‚F^¢’f®žzB‚FŠJªªª***þþþ¢¢¢j:r>vZ…EFÝÿÝÿ £††Jj:~B‚F^¢’f®žzB‚FŠJªªªþþþþþþ¢¢¢j:r>vZ…EFÝÿÝÿ £††Jj:~B‚F^¢’f®žzB‚FŠJªªªþþþƒƒƒAAAFFFOOO===¦¦¦¦¦¦oooSSSAAANNNPPPxxx‚‚‚KKKPPPUUU‰‰‰"""***¦¦¦^2r>ŠJ\kiÝÿÝÿ~BZ2f6†JÓêÝÿ^šŽZ’‚ŽN†JÆÆÆ&&&þþþ¦¦¦^2r>ŠJ\kiÝÿÝÿ~BZ2f6†JÓêÝÿ^šŽZ’‚ŽN†JÆÆÆþþþþþþ¦¦¦^2r>ŠJ\kiÝÿÝÿ~BZ2f6†JÓêÝÿ^šŽZ’‚ŽN†JÆÆÆþþþ"""†††:::FFFUUUTTT¦¦¦¦¦¦NNN888>>>SSS¦¦¦tttmmmXXXSSS   &&&¦¦¦vB~Fz^{E7ÝÿÝÿ¿ÁÀÃÝÿÝÿj²ž>j^ŠJ‚F²²²***þþþ¦¦¦vB~Fz^{E7ÝÿÝÿ¿ÁÀÃÝÿÝÿj²ž>j^ŠJ‚F²²²þþþþþþ¦¦¦vB~Fz^{E7ÝÿÝÿ¿ÁÀÃÝÿÝÿj²ž>j^ŠJ‚F²²²þþþ†††IIINNNRRR999¦¦¦¦¦¦ŠŠŠ‹‹‹¦¦¦¦¦¦„„„NNNUUUPPP"""***ŠJ†Jš&ª/†vÝÿÝÿÝÿÝÿÝÿÝÿÝÿÝÿRŠzVrZn~N¦¦¦&&&þþþŠJ†Jš&ª/†vÝÿÝÿÝÿÝÿÝÿÝÿÝÿÝÿRŠzVrZn~N¦¦¦þþþþþþŠJ†Jš&ª/†vÝÿÝÿÝÿÝÿÝÿÝÿÝÿÝÿRŠzVrZn~N¦¦¦þþþ"""UUUSSS$$$ ```¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦gggEEEGGGPPP†††&&&ÆÆÆŠJ†Jz:"ªz^™r°¹ÝÿÝÿÝÿ¨µ·½Óê ŒZ†J‚JbbVr¢¢¢***þþþÆÆÆŠJ†Jz:"ªz^™r°¹ÝÿÝÿÝÿ¨µ·½Óê ŒZ†J‚JbbVr¢¢¢þþþþþþÆÆÆŠJ†Jz:"ªz^™r°¹ÝÿÝÿÝÿ¨µ·½Óê ŒZ†J‚JbbVr¢¢¢þþþ   UUUSSS... RRRfff€€€¦¦¦¦¦¦¦¦¦|||………YYYSSSQQQHHHEEEƒƒƒ"""***¦¦¦ŠJz^‚66n>‚FZ2b6R.N*N*Z2 R. ^6 V2vBzB~FRvªªª&&&þþþ¦¦¦ŠJz^‚66n>‚FZ2b6R.N*N*Z2 R. ^6 V2vBzB~FRvªªªþþþþþþ¦¦¦ŠJz^‚66n>‚FZ2b6R.N*N*Z2 R. ^6 V2vBzB~FRvªªªþþþ"""†††UUURRR,,,HHHPPP888===333000000888333:::555IIIKKKNNNEEE‰‰‰&&&¦¦¦ŠJz^š&z^ŠJb6 F&Z.f6 V. V.r>Z2^2ŠJŠJŠJŠJ®®®***þþþ¦¦¦ŠJz^š&z^ŠJb6 F&Z.f6 V. V.r>Z2^2ŠJŠJŠJŠJ®®®þþþþþþ¦¦¦ŠJz^š&z^ŠJb6 F&Z.f6 V. V.r>Z2^2ŠJŠJŠJŠJ®®®þþþ†††UUURRR$$$RRRUUU===+++777>>>555555FFF888:::UUUUUUUUUUUU"""***ÆÆÆººº¦¦¦¦¦¦²²²¾¾¾¦¦¦žžžššš¦¦¦¦¦¦¦¦¦¶¶¶ºººªªª¦¦¦¦¦¦ÆÆÆ¶¶¶¦¦¦&&&þþþÆÆÆººº¦¦¦¦¦¦²²²¾¾¾¦¦¦žžžššš¦¦¦¦¦¦¦¦¦¶¶¶ºººªªª¦¦¦¦¦¦ÆÆÆ¶¶¶¦¦¦þþþþþþÆÆÆººº¦¦¦¦¦¦²²²¾¾¾¦¦¦žžžššš¦¦¦¦¦¦¦¦¦¶¶¶ºººªªª¦¦¦¦¦¦ÆÆÆ¶¶¶¦¦¦þþþ"""   –––††††††™™™†††€€€|||†††††††††“““–––‰‰‰††††††   “““†††&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ&&&&&&***&&&&&&&&&******&&&&&&&&&***&&&&&&******&&&&&&***&&&&&&&&&þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ"""""""""""""""""""""***ªªª¦¦¦¢¢¢ºººÆÆÆ¦¦¦®®®ÆÆÆÂ¦¦¦’’’ŽŽŽªªª¦¦¦ÆÆÆ¦¦¦’’’¦¦¦®®®ÆÆÆ***þþþªªª¦¦¦¢¢¢ºººÆÆÆ¦¦¦®®®ÆÆÆÂ¦¦¦’’’ŽŽŽªªª¦¦¦ÆÆÆ¦¦¦’’’¦¦¦®®®ÆÆÆþþþþþþªªª¦¦¦¢¢¢ºººÆÆÆ¦¦¦®®®ÆÆÆÂ¦¦¦’’’ŽŽŽªªª¦¦¦ÆÆÆ¦¦¦’’’¦¦¦®®®ÆÆÆþþþ"""‰‰‰†††ƒƒƒ–––   †††   †††vvvsss‰‰‰†††   †††vvv†††   """&&&¦¦¦RvB’f~Fb6 Z2 F& ^6‚F‚FªŠ.z^ R*f: N* N* R* :"ÆÆÆ&&&þþþ¦¦¦RvB’f~Fb6 Z2 F& ^6‚F‚FªŠ.z^ R*f: N* N* R* :"ÆÆÆþþþþþþ¦¦¦RvB’f~Fb6 Z2 F& ^6‚F‚FªŠ.z^ R*f: N* N* R* :"ÆÆÆþþþ†††EEEdddNNN===888+++:::PPPPPP (((RRR222@@@000000222$$$   ***ÆÆÆ^fbj~F ^6b6 R* V.‚FnR >" ^6 B" F&f6j:¦¦¦***þþþÆÆÆ^fbj~F ^6b6 R* V.‚FnR >" ^6 B" F&f6j:¦¦¦þþþþþþÆÆÆ^fbj~F ^6b6 R* V.‚FnR >" ^6 B" F&f6j:¦¦¦þþþ"""   FFFJJJNNN:::===222555PPPJJJ&&&:::(((+++>>>AAA†††"""&&&ÆÆÆ†JZnjZzBn: ›”Qpl ›” F&Z. >" N*^2ŠŠŠ&&&þþþÆÆÆ†JZnjZzBn: ›”Qpl ›” F&Z. >" N*^2ŠŠŠþþþþþþÆÆÆ†JZnjZzBn: ›”Qpl ›” F&Z. >" N*^2ŠŠŠþþþ   SSSGGGJJJKKKCCCoooVVVooo+++777&&&000:::ooo***ÆÆÆ‚J~NZn‚J ­šÓêÝÿÝÿÝÿÝÿÝÿ¦¥f6 F& V2R.~~~***þþþÆÆÆ‚J~NZn‚J ­šÓêÝÿÝÿÝÿÝÿÝÿ¦¥f6 F& V2R.~~~þþþþþþÆÆÆ‚J~NZn‚J ­šÓêÝÿÝÿÝÿÝÿÝÿ¦¥f6 F& V2R.~~~þþþ"""   QQQPPPGGGQQQxxx¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦xxx>>>+++555333fff"""&&&¦¦¦ŠJŠJ^nÅ×ÝÿÝÿÝÿ+¥´­¹ÒêÝÿÝÿÎè W> F* J&r>ŠŠŠ&&&þþþ¦¦¦ŠJŠJ^nÅ×ÝÿÝÿÝÿ+¥´­¹ÒêÝÿÝÿÎè W> F* J&r>ŠŠŠþþþþþþ¦¦¦ŠJŠJ^nÅ×ÝÿÝÿÝÿ+¥´­¹ÒêÝÿÝÿÎè W> F* J&r>ŠŠŠþþþ†††UUUUUUIII•••¦¦¦¦¦¦¦¦¦~~~¦¦¦¦¦¦ššš999,,,---FFFooo***¦¦¦ŠJ‚J~F4ºÀÝÿÝÿ=‡ˆªz^‚Jj: †tÍêÝÿ{qN* N* N*¢¢¢***þþþ¦¦¦ŠJ‚J~F4ºÀÝÿÝÿ=‡ˆªz^‚Jj: †tÍêÝÿ{qN* N* N*¢¢¢þþþþþþ¦¦¦ŠJ‚J~F4ºÀÝÿÝÿ=‡ˆªz^‚Jj: †tÍêÝÿ{qN* N* N*¢¢¢þþþ"""†††UUUQQQNNNŒŒŒ¦¦¦¦¦¦ggg RRRQQQAAA\\\ššš¦¦¦VVV000000000ƒƒƒ"""&&&ÆÆÆ†Jr>n:ÝÿÝÿ7”¢z>&Z–†‚F F&n:ˆZ “| Z2n> J&Z2¢¢¢&&&þþþÆÆÆ†Jr>n:ÝÿÝÿ7”¢z>&Z–†‚F F&n:ˆZ “| Z2n> J&Z2¢¢¢þþþþþþÆÆÆ†Jr>n:ÝÿÝÿ7”¢z>&Z–†‚F F&n:ˆZ “| Z2n> J&Z2¢¢¢þþþ   SSSFFFCCC¦¦¦¦¦¦rrr111oooPPP+++CCCXXXddd888EEE---888ƒƒƒ***ÆÆÆr> J& |ÝÿÝÿ^žŽ^š’^¢’ŠJŠJŠJz^z^nVb6r>‚Jžžž***þþþÆÆÆr> J& |ÝÿÝÿ^žŽ^š’^¢’ŠJŠJŠJz^z^nVb6r>‚JžžžþþþþþþÆÆÆr> J& |ÝÿÝÿ^žŽ^š’^¢’ŠJŠJŠJz^z^nVb6r>‚Jžžžþþþ"""   FFF---ccc¦¦¦¦¦¦vvvuuuxxxUUUUUUUUURRRRRRJJJ===FFFQQQ€€€"""&&&¦¦¦ Z2^2 žÝÿÝÿ~ZV’†ZvZn~F†JŠJŠJ†J†Jn:v>ŠŠŠ&&&þþþ¦¦¦ Z2^2 žÝÿÝÿ~ZV’†ZvZn~F†JŠJŠJ†J†Jn:v>ŠŠŠþþþþþþ¦¦¦ Z2^2 žÝÿÝÿ~ZV’†ZvZn~F†JŠJŠJ†J†Jn:v>ŠŠŠþþþ†††888:::kkk¦¦¦¦¦¦SSSmmmJJJGGGNNNSSSUUUUUUSSSSSSCCCHHHooo&&&ªªªf: Z2 ˜ÝÿÝÿ‚F†J†J^fff†J†J‚FzB~Br> R.¢¢¢***þþþªªªf: Z2 ˜ÝÿÝÿ‚F†J†J^fff†J†J‚FzB~Br> R.¢¢¢þþþþþþªªªf: Z2 ˜ÝÿÝÿ‚F†J†J^fff†J†J‚FzB~Br> R.¢¢¢þþþ‰‰‰@@@888hhh¦¦¦¦¦¦PPPSSSSSSFFFJJJSSSSSSPPPKKKNNNFFF333ƒƒƒ"""***®®® Z2j: ˜~ÝÿÝÿŠJŠJ‚F‚F^jbbZšŠV’†ŠJ‚F¢¢¢&&&þþþ®®® Z2j: ˜~ÝÿÝÿŠJŠJ‚F‚F^jbbZšŠV’†ŠJ‚F¢¢¢þþþþþþ®®® Z2j: ˜~ÝÿÝÿŠJŠJ‚F‚F^jbbZšŠV’†ŠJ‚F¢¢¢þþþ"""888AAAggg¦¦¦¦¦¦UUUUUUPPPPPPHHHHHHsssmmmUUUPPPƒƒƒ&&&¢¢¢j:r>lÝÿÝÿ†J†Jj:~B‚FzBÍïÉÛzB‚FŠJªªª***þþþ¢¢¢j:r>lÝÿÝÿ†J†Jj:~B‚FzBÍïÉÛzB‚FŠJªªªþþþþþþ¢¢¢j:r>lÝÿÝÿ†J†Jj:~B‚FzBÍïÉÛzB‚FŠJªªªþþþƒƒƒAAAFFFYYY¦¦¦¦¦¦SSSSSSAAANNNPPPKKK›››———KKKPPPUUU‰‰‰"""***¦¦¦^2r>ŠJ·ÍÝÿÈÖ~BZ2f6†JÝÿÝÿZ’‚ŽN†JÆÆÆ&&&þþþ¦¦¦^2r>ŠJ·ÍÝÿÈÖ~BZ2f6†JÝÿÝÿZ’‚ŽN†JÆÆÆþþþþþþ¦¦¦^2r>ŠJ·ÍÝÿÈÖ~BZ2f6†JÝÿÝÿZ’‚ŽN†JÆÆÆþþþ"""†††:::FFFUUU‹‹‹¦¦¦“““NNN888>>>SSS¦¦¦¦¦¦mmmXXXSSS   &&&¦¦¦vB~Fz^lXOÝÿÝÿµÀÓêÝÿÝÿ>j^ŠJ‚F²²²***þþþ¦¦¦vB~Fz^lXOÝÿÝÿµÀÓêÝÿÝÿ>j^ŠJ‚F²²²þþþþþþ¦¦¦vB~Fz^lXOÝÿÝÿµÀÓêÝÿÝÿ>j^ŠJ‚F²²²þþþ†††IIINNNRRRFFF¦¦¦¦¦¦„„„¦¦¦¦¦¦NNNUUUPPP"""***ŠJ†Jš&ª/†vÝÿÝÿÝÿÝÿÝÿÝÿÝÿ×ô¾ÉVrZn~N¦¦¦&&&þþþŠJ†Jš&ª/†vÝÿÝÿÝÿÝÿÝÿÝÿÝÿ×ô¾ÉVrZn~N¦¦¦þþþþþþŠJ†Jš&ª/†vÝÿÝÿÝÿÝÿÝÿÝÿÝÿ×ô¾ÉVrZn~N¦¦¦þþþ"""UUUSSS$$$ ```¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¢¢¢‹‹‹EEEGGGPPP†††&&&ÆÆÆŠJ†Jz:"ªz^^¡¢ÍçÝÿÝÿ¹Î‘ ™€ W~F€KbbVr¢¢¢***þþþÆÆÆŠJ†Jz:"ªz^^¡¢ÍçÝÿÝÿ¹Î‘ ™€ W~F€KbbVr¢¢¢þþþþþþÆÆÆŠJ†Jz:"ªz^^¡¢ÍçÝÿÝÿ¹Î‘ ™€ W~F€KbbVr¢¢¢þþþ   UUUSSS... RRR\\\ttt™™™¦¦¦¦¦¦ŠŠŠooohhhSSSNNNQQQHHHEEEƒƒƒ"""***¦¦¦ŠJz^‚66n>‚FZ2b6R.N*N*Z2 R. ^6 b8~F{B~FRvªªª&&&þþþ¦¦¦ŠJz^‚66n>‚FZ2b6R.N*N*Z2 R. ^6 b8~F{B~FRvªªªþþþþþþ¦¦¦ŠJz^‚66n>‚FZ2b6R.N*N*Z2 R. ^6 b8~F{B~FRvªªªþþþ"""†††UUURRR,,,HHHPPP888===333000000888333:::===NNNKKKNNNEEE‰‰‰&&&¦¦¦ŠJz^š&z^ŠJb6 F&Z.f6 V. V.r>Z2^2ŠJŠJŠJŠJ®®®***þþþ¦¦¦ŠJz^š&z^ŠJb6 F&Z.f6 V. V.r>Z2^2ŠJŠJŠJŠJ®®®þþþþþþ¦¦¦ŠJz^š&z^ŠJb6 F&Z.f6 V. V.r>Z2^2ŠJŠJŠJŠJ®®®þþþ†††UUURRR$$$RRRUUU===+++777>>>555555FFF888:::UUUUUUUUUUUU"""***ÆÆÆººº¦¦¦¦¦¦²²²¾¾¾¦¦¦žžžššš¦¦¦¦¦¦¦¦¦¶¶¶ºººªªª¦¦¦¦¦¦ÆÆÆ¶¶¶¦¦¦&&&þþþÆÆÆººº¦¦¦¦¦¦²²²¾¾¾¦¦¦žžžššš¦¦¦¦¦¦¦¦¦¶¶¶ºººªªª¦¦¦¦¦¦ÆÆÆ¶¶¶¦¦¦þþþþþþÆÆÆººº¦¦¦¦¦¦²²²¾¾¾¦¦¦žžžššš¦¦¦¦¦¦¦¦¦¶¶¶ºººªªª¦¦¦¦¦¦ÆÆÆ¶¶¶¦¦¦þþþ"""   –––††††††™™™†††€€€|||†††††††††“““–––‰‰‰††††††   “““†††&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÿÿÿÿÿÿ(((((!P(((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPÿÿÿÿÿÿÿÿÿ...(5` j2ƒ+(`"(A{=3Š/WA% (ÿÿÿ5` j2ƒ+(`"ÿÿÿA{=3Š/WA% ÿÿÿÿÿÿ5` j2ƒ+(`"ÿÿÿA{=3Š/WA% ÿÿÿ222:::MMM999OOORRR///%%%( @ d4{&-š'AÄ7<‰5‹ÎyjÄ`2§3.Ž$-g!9(ÿÿÿ @ d4{&-š'AÄ7<‰5‹ÎyjÄ`2§3.Ž$-g!9ÿÿÿÿÿÿ @ d4{&-š'AÄ7<‰5‹ÎyjÄ`2§3.Ž$-g!9ÿÿÿ"""777HHHVVVpppSSSŒŒŒ~~~```PPP=== ( < :c2q#,‘#-±#&„$WˆD¬æ•pâZSÂK,¬$0€&Y (ÿÿÿ < :c2q#,‘#-±#&„$WˆD¬æ•pâZSÂK,¬$0€&Y ÿÿÿÿÿÿ < :c2q#,‘#-±#&„$WˆD¬æ•pâZSÂK,¬$0€&Y ÿÿÿ !!!777BBBQQQ```JJJYYY¡¡¡‹‹‹vvv___JJJ000($‰ ) [ *l5z%(™|5¡í ã‰{Ëm>½5(›,p Q(ÿÿÿ$‰ ) [ *l5z%(™|5¡í ã‰{Ëm>½5(›,p Qÿÿÿÿÿÿ$‰ ) [ *l5z%(™|5¡í ã‰{Ëm>½5(›,p QÿÿÿLLL///>>>GGGSSSBBB ¢¢¢›››†††lllTTTAAA((((<(ª"L 6S"] cqb“ωk¦`@¢9"jO)(ÿÿÿ<(ª"L 6S"] cqb“ωk¦`@¢9"jO)ÿÿÿÿÿÿ<(ª"L 6S"] cqb“ωk¦`@¢9"jO)ÿÿÿ"""\\\(((...555EEE666lll‘‘‘ooo```MMM<<<((((%”(­"'™$  &MuH E 1ˆ(‚L(ÿÿÿ%”(­"'™$  &MuH  E 1ˆ(‚Lÿÿÿÿÿÿ%”(­"'™$  &MuH  E 1ˆ(‚LÿÿÿQQQ^^^UUUPPP$$$NNNEEE+++(Q,´$(­(ª%U2 *Š"<¼28·1/—#2(ÿÿÿQ,´$(­(ª%U 2 *Š"<¼28·1/—#2ÿÿÿÿÿÿQ,´$(­(ª%U 2 *Š"<¼28·1/—#2ÿÿÿ---bbb]]]]]]---NNNkkkgggTTT(F@EÀ=2¶'(ª'"™MW6 7 8 < /®$=Â/RÃID·=u(ÿÿÿF@EÀ=2¶'(ª'"™MW6 7 8 < /®$=Â/RÃID·=uÿÿÿÿÿÿF@EÀ=2¶'(ª'"™MW6 7 8 < /®$=Â/RÃID·=uÿÿÿYYYpppddd^^^RRR)))...   ___mmmuuukkk@@@(E~;]àMRÎFEÈ=3¼&%œ 9 0'+ž N ‚(ž#*ª 0º%5»-Y(ÿÿÿE~;]àMRÎFEÈ=3¼&%œ 9 0'+ž N ‚(ž#*ª 0º%5»-YÿÿÿÿÿÿE~;]àMRÎFEÈ=3¼&%œ 9 0'+ž N ‚(ž#*ª 0º%5»-YÿÿÿPPP………zzztttgggUUUQQQVVV((( DDDWWW\\\fffhhh111(/G,ŒÙt‹ámpÚ^PÇGQ3†1=¯3X 7 %„+’ *“ '›""†(ÿÿÿ/G,ŒÙt‹ámpÚ^PÇGQ3†1=¯3X 7 %„+’ *“ '›""†ÿÿÿÿÿÿ/G,ŒÙt‹ámpÚ^PÇGQ3†1=¯3X 7 %„+’ *“ '›""†ÿÿÿ000‘‘‘‰‰‰www,,,PPPeee111IIIQQQQQQUUUJJJ(Am¦džÏŽŸÐŽ{Îe=–1   P %ƒ)’D (ÿÿÿAm¦džÏŽŸÐŽ{Îe=–1  P %ƒ)’D ÿÿÿÿÿÿAm¦džÏŽŸÐŽ{Îe=–1  P %ƒ)’D ÿÿÿ(((ppp““““““………XXX  +++HHHPPP$$$(((((( 4qK - ? =G 0J(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 4qK - ? =G 0Jÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 4qK - ? =G 0Jÿÿÿ===+++ """&&& (((( 3u&– '—h &'"'ª.º'9µ* 6 (ÿÿÿ 3u&– '—h &'"'ª.º'9µ* 6 ÿÿÿÿÿÿ 3u&– '—h &'"'ª.º'9µ* 6 ÿÿÿ@@@RRRRRR777OOO[[[fffeee(0U°O5¼-(©!) ""˜7 9-x!.Œ&)£".´$$‹#(ÿÿÿ0U°O5¼-(©!) ""˜7 9-x!.Œ&)£".´$$‹#ÿÿÿÿÿÿ0U°O5¼-(©!) ""˜7 9-x!.Œ&)£".´$$‹#ÿÿÿnnniii\\\XXXRRREEEPPPYYYcccNNN (Fq@±6.¡+cT/n 3',$(™"„X (ÿÿÿFq@±6.¡+cT/n 3',$(™"„X ÿÿÿÿÿÿFq@±6.¡+cT/n 3',$(™"„X ÿÿÿJJJ~~~ooogggZZZ777,,,@@@KKKQQQSSSIII...( ß‹ÛtrÆiJ½@.°$6 V b+m5y%#~.1(ÿÿÿ ß‹ÛtrÆiJ½@.°$6 V b+m5y%#~.1ÿÿÿÿÿÿ ß‹ÛtrÆiJ½@.°$6 V b+m5y%#~.1ÿÿÿ›››‘‘‘ooo``` ,,,555>>>GGGFFF(Jm@­ä˜«æ™Ýy^ÍQV@ W a %f= (((ÿÿÿJm@­ä˜«æ™Ýy^ÍQV@ W a %f= ÿÿÿÿÿÿÿÿÿÿÿÿJm@­ä˜«æ™Ýy^ÍQV@ W a %f= ÿÿÿÿÿÿÿÿÿJJJ¡¡¡¢¢¢“““}}}000$$$,,,333::: (5F/f…\g†]^…T B 8 ? ( (ÿÿÿ5F/f…\g†]^…T B 8 ? ( ÿÿÿÿÿÿ5F/f…\g†]^…T B 8 ? ( ÿÿÿ111______\\\EEE###!!!(((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(((((((((((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(vbh."àØÙïîîïîîïîîïîîïîîïîîïîîïîîïèðòúö€\b(ÿÿÿvbh."àØÙïîîïîîïîîïîîïîîïîîïîîïîîïèðòúö€\bÿÿÿÿÿÿvbh."àØÙïîîïîîïîîïîîïîîïîîïîîïîîïèðòúö€\bÿÿÿRRR¯¯¯ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ¾¾¾ÈÈÈNNN(~jm10àØÙïîîïîîíõùïîîïîîíõùïîîïîîïîîíõùnIL&(ÿÿÿ~jm10àØÙïîîïîîíõùïîîïîîíõùïîîïîîïîîíõùnIL&ÿÿÿÿÿÿ~jm10àØÙïîîïîîíõùïîîïîîíõùïîîïîîïîîíõùnIL&ÿÿÿXXX¯¯¯ÀÀÀÀÀÀÆÆÆÀÀÀÀÀÀÆÆÆÀÀÀÀÀÀÀÀÀÆÆÆ>>>(~jm1."àØÙïîîïîîïîîïîîïîîïîîïîîïîîëêéòúönIL&(ÿÿÿ~jm1."àØÙïîîïîîïîîïîîïîîïîîïîîïîîëêéòúönIL&ÿÿÿÿÿÿ~jm1."àØÙïîîïîîïîîïîîïîîïîîïîîïîîëêéòúönIL&ÿÿÿXXX¯¯¯ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ¼¼¼ÈÈÈ>>>(~jm5"*ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëääíõùnIL(ÿÿÿ~jm5"*ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëääíõùnILÿÿÿÿÿÿ~jm5"*ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëääíõùnILÿÿÿXXX³³³ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ¸¸¸ÆÆÆ>>>(„ps5"ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëêéòúönIL0#"(ÿÿÿ„ps5"ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëêéòúönIL0#"ÿÿÿÿÿÿ„ps5"ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëêéòúönIL0#"ÿÿÿ]]] ³³³ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ¼¼¼ÈÈÈ>>>(„ps6#$ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëääúþþnIL0#"(ÿÿÿ„ps6#$ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëääúþþnIL0#"ÿÿÿÿÿÿ„ps6#$ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëääúþþnIL0#"ÿÿÿ]]]³³³ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ¸¸¸ÌÌÌ>>>(„ps<$ãÞÞïîîãÞÞñÞçãÞÞëääëääëääëääëää÷úûnIL=#)(ÿÿÿ„ps<$ãÞÞïîîãÞÞñÞçãÞÞëääëääëääëääëää÷úûnIL=#)ÿÿÿÿÿÿ„ps<$ãÞÞïîîãÞÞñÞçãÞÞëääëääëääëääëää÷úûnIL=#)ÿÿÿ]]]³³³ÀÀÀ³³³···³³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸ÉÉÉ>>> („ps6#$(ñÞçúþþúþþúþþîüüúþþ÷úûîüüíõùòúöïîîfTU6**(ÿÿÿ„ps6#$(ñÞçúþþúþþúþþîüüúþþ÷úûîüüíõùòúöïîîfTU6**ÿÿÿÿÿÿ„ps6#$(ñÞçúþþúþþúþþîüüúþþ÷úûîüüíõùòúöïîîfTU6**ÿÿÿ]]]···ÌÌÌÌÌÌÌÌÌÊÊÊÌÌÌÉÉÉÊÊÊÆÆÆÈÈÈÀÀÀEEE###(„psI&+<$zNRžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽ€\b€\b6#$(ÿÿÿ„psI&+<$zNRžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽ€\b€\b6#$ÿÿÿÿÿÿ„psI&+<$zNRžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽ€\b€\b6#$ÿÿÿ]]]###DDDrrrrrrrrrrrrrrrrrrrrrrrrrrrNNNNNN(’szI&+5"(     1(ÿÿÿ’szI&+5"(     1ÿÿÿÿÿÿ’szI&+5"(     1ÿÿÿaaa###    (&""&(=#)<$<$111*(*(*((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ=#)<$<$111*(*(*(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ=#)<$<$111*(*(*(ÿÿÿ %„\[O'ˆvxbNRfTUfTUfTUfTUfTUfTUfTU6#$**(ÿÿÿ„\[OÿÿÿˆvxbNRfTUfTUfTUfTUfTUfTUfTU6#$**ÿÿÿÿÿÿ„\[OÿÿÿˆvxbNRfTUfTUfTUfTUfTUfTUfTU6#$**ÿÿÿ aaaAAAEEEEEEEEEEEEEEEEEEEEE%ÌŒlO )àØÙʪ¶ÚÊÊßÐÔÚÊÊ´ž ¾¾¾ëêéˆvxH24*1*(ÿÿÿÌŒlOÿÿÿàØÙʪ¶ÚÊÊßÐÔÚÊÊ´ž ¾¾¾ëêéˆvxH24*1*ÿÿÿÿÿÿÌŒlOÿÿÿàØÙʪ¶ÚÊÊßÐÔÚÊÊ´ž ¾¾¾ëêéˆvxH24*1*ÿÿÿ111"""¯¯¯¤¤¤ªªª¤¤¤‚‚‚™™™¼¼¼aaa+++(ú‘K$ÙÃÅ®ŽŽÊª¶ÖºÆÚÂÎsut)36ÚÊÊ„psH24&0#"*(ÿÿÿú‘KÿÿÿÙÃÅ®ŽŽÊª¶ÖºÆÚÂÎsut)36ÚÊÊ„psH24&0#"*ÿÿÿÿÿÿú‘KÿÿÿÙÃÅ®ŽŽÊª¶ÖºÆÚÂÎsut)36ÚÊÊ„psH24&0#"*ÿÿÿ===///###   uuu›››¢¢¢^^^(((¤¤¤]]]+++(øÖ¯_)ÚÊʪ††¶•™¾¢²àÆÐ„psb@DàØÙ„psU9;06#$((ÿÿÿøÖ¯_ÿÿÿÚÊʪ††¶•™¾¢²àÆÐ„psb@DàØÙ„psU9;06#$(ÿÿÿÿÿÿøÖ¯_ÿÿÿÚÊʪ††¶•™¾¢²àÆÐ„psb@DàØÙ„psU9;06#$(ÿÿÿ<<<444***¤¤¤ooo|||‰‰‰¤¤¤]]]777¯¯¯]]]000(((óÒ±p!+((®ŽŽ¶•™¾¢²vbh)36²²²’szU9;<$6#$."(ÿÿÿÿÿÿÿÿÿóÒ±pÿÿÿÿÿÿÿÿÿ®ŽŽ¶•™¾¢²vbh)36²²²’szU9;<$6#$."ÿÿÿÿÿÿÿÿÿÿÿÿóÒ±pÿÿÿÿÿÿÿÿÿ®ŽŽ¶•™¾¢²vbh)36²²²’szU9;<$6#$."ÿÿÿ:::333+++uuu|||‰‰‰RRR(((aaa000(ÿûðΤƒu['ÙÃÅξ¾ÙÃÅֺƴ¦¨Î¾¾†††’zz„psbNR(ÿÿÿÿûðΤƒu[ÿÿÿÙÃÅξ¾ÙÃÅֺƴ¦¨Î¾¾†††’zz„psbNRÿÿÿÿÿÿÿûðΤƒu[ÿÿÿÙÃÅξ¾ÙÃÅֺƴ¦¨Î¾¾†††’zz„psbNRÿÿÿ======:::111(((    ššš   ›››ˆˆˆšššlllddd]]]AAA"-ÿð¼×Í)(((((((((((ÿÿÿÿð¼×Íÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð¼×Íÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ===:::///---444111"-ÿúØ­".ÿÿÿÿúØ­ÿÿÿÿÿÿÿúØ­ÿÿÿ======444)))!,ÿä(ÿÿÿÿäÿÿÿÿÿÿÿäÿÿÿ===777()ÿÿÿÿÿÿÿÿÿÿÿÿ(((((((((((((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(vbh."àØÙïîîïîîïîîïîîïîîïîîïîîïîîïèðòúö€\b(ÿÿÿvbh."àØÙïîîïîîïîîïîîïîîïîîïîîïîîïèðòúö€\bÿÿÿÿÿÿvbh."àØÙïîîïîîïîîïîîïîîïîîïîîïîîïèðòúö€\bÿÿÿRRR¯¯¯ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ¾¾¾ÈÈÈNNN(~jm10àØÙïîîïîîíõùïîîïîîíõùïîîïîîïîîíõùnIL&(ÿÿÿ~jm10àØÙïîîïîîíõùïîîïîîíõùïîîïîîïîîíõùnIL&ÿÿÿÿÿÿ~jm10àØÙïîîïîîíõùïîîïîîíõùïîîïîîïîîíõùnIL&ÿÿÿXXX¯¯¯ÀÀÀÀÀÀÆÆÆÀÀÀÀÀÀÆÆÆÀÀÀÀÀÀÀÀÀÆÆÆ>>>(~jm1."àØÙïîîïîîïîîïîîïîîïîîïîîïîîëêéòúönIL&(ÿÿÿ~jm1."àØÙïîîïîîïîîïîîïîîïîîïîîïîîëêéòúönIL&ÿÿÿÿÿÿ~jm1."àØÙïîîïîîïîîïîîïîîïîîïîîïîîëêéòúönIL&ÿÿÿXXX¯¯¯ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ¼¼¼ÈÈÈ>>>(~jm5"*ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëääíõùnIL(ÿÿÿ~jm5"*ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëääíõùnILÿÿÿÿÿÿ~jm5"*ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëääíõùnILÿÿÿXXX³³³ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ¸¸¸ÆÆÆ>>>(„ps5"ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëêéòúönIL0#"(ÿÿÿ„ps5"ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëêéòúönIL0#"ÿÿÿÿÿÿ„ps5"ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëêéòúönIL0#"ÿÿÿ]]] ³³³ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ¼¼¼ÈÈÈ>>>(„ps6#$ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëääúþþnIL0#"(ÿÿÿ„ps6#$ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëääúþþnIL0#"ÿÿÿÿÿÿ„ps6#$ãÞÞïîîïîîïîîïîîïîîïîîïîîïîîëääúþþnIL0#"ÿÿÿ]]]³³³ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ¸¸¸ÌÌÌ>>>(„ps<$ãÞÞïîîãÞÞñÞçãÞÞëääëääëääëääëää÷úûnIL=#)(ÿÿÿ„ps<$ãÞÞïîîãÞÞñÞçãÞÞëääëääëääëääëää÷úûnIL=#)ÿÿÿÿÿÿ„ps<$ãÞÞïîîãÞÞñÞçãÞÞëääëääëääëääëää÷úûnIL=#)ÿÿÿ]]]³³³ÀÀÀ³³³···³³³¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸ÉÉÉ>>> („ps6#$(ñÞçúþþúþþúþþîüüúþþ÷úûîüüíõùòúöïîîfTU6**(ÿÿÿ„ps6#$(ñÞçúþþúþþúþþîüüúþþ÷úûîüüíõùòúöïîîfTU6**ÿÿÿÿÿÿ„ps6#$(ñÞçúþþúþþúþþîüüúþþ÷úûîüüíõùòúöïîîfTU6**ÿÿÿ]]]···ÌÌÌÌÌÌÌÌÌÊÊÊÌÌÌÉÉÉÊÊÊÆÆÆÈÈÈÀÀÀEEE###(„psI&+<$zNRžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽ€\b€\b6#$(ÿÿÿ„psI&+<$zNRžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽ€\b€\b6#$ÿÿÿÿÿÿ„psI&+<$zNRžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽžŠŽ€\b€\b6#$ÿÿÿ]]]###DDDrrrrrrrrrrrrrrrrrrrrrrrrrrrNNNNNN(’szI&+5"(     1(ÿÿÿ’szI&+5"(     1ÿÿÿÿÿÿ’szI&+5"(     1ÿÿÿaaa###    (((I&+6#$=#)<$<$111*(*(*((ÿÿÿÿÿÿÿÿÿI&+6#$=#)<$<$111*(*(*(ÿÿÿÿÿÿÿÿÿÿÿÿI&+6#$=#)<$<$111*(*(*(ÿÿÿ### (`K(~jmˆvxbNRfTUfTUfTUfTUfTUfTUfTU6#$**(ÿÿÿ`Kÿÿÿ~jmˆvxbNRfTUfTUfTUfTUfTUfTUfTU6#$**ÿÿÿÿÿÿ`Kÿÿÿ~jmˆvxbNRfTUfTUfTUfTUfTUfTUfTU6#$**ÿÿÿXXXaaaAAAEEEEEEEEEEEEEEEEEEEEE(¸¬mI(àØÙʪ¶ÚÊÊßÐÔÚÊÊ´ž ¾¾¾ëêéˆvxH24*1*(ÿÿÿ¸¬mIÿÿÿàØÙʪ¶ÚÊÊßÐÔÚÊÊ´ž ¾¾¾ëêéˆvxH24*1*ÿÿÿÿÿÿ¸¬mIÿÿÿàØÙʪ¶ÚÊÊßÐÔÚÊÊ´ž ¾¾¾ëêéˆvxH24*1*ÿÿÿ,,,)))¯¯¯¤¤¤ªªª¤¤¤‚‚‚™™™¼¼¼aaa+++(âÙÁ´oK(®ŽŽÊª¶ÖºÆÚÂÎsut)36ÚÊÊ„psH24&0#"*(ÿÿÿâÙÁ´oKÿÿÿ®ŽŽÊª¶ÖºÆÚÂÎsut)36ÚÊÊ„psH24&0#"*ÿÿÿÿÿÿâÙÁ´oKÿÿÿ®ŽŽÊª¶ÖºÆÚÂÎsut)36ÚÊÊ„psH24&0#"*ÿÿÿ666555...,,,uuu›››¢¢¢^^^(((¤¤¤]]]+++(ðððΣvcV'¶•™¾¢²àÆÐ„psb@DàØÙ„psU9;06#$((ÿÿÿðððΣvcVÿÿÿ¶•™¾¢²àÆÐ„psb@DàØÙ„psU9;06#$(ÿÿÿÿÿÿðððΣvcVÿÿÿ¶•™¾¢²àÆÐ„psb@DàØÙ„psU9;06#$(ÿÿÿ:::::::::111'''|||‰‰‰¤¤¤]]]777¯¯¯]]]000(((óÒµz)((®ŽŽ¶•™¾¢²vbh)36²²²’szU9;<$6#$."(ÿÿÿÿÿÿÿÿÿóÒµzÿÿÿÿÿÿÿÿÿ®ŽŽ¶•™¾¢²vbh)36²²²’szU9;<$6#$."ÿÿÿÿÿÿÿÿÿÿÿÿóÒµzÿÿÿÿÿÿÿÿÿ®ŽŽ¶•™¾¢²vbh)36²²²’szU9;<$6#$."ÿÿÿ:::333,,,uuu|||‰‰‰RRR(((aaa000(øÖÄ› *ïîîßÐÔÙÃÅξ¾ÙÃÅֺƴ¦¨Î¾¾†††’zz„psbNR(ÿÿÿøÖÄ›ÿÿÿïîîßÐÔÙÃÅξ¾ÙÃÅֺƴ¦¨Î¾¾†††’zz„psbNRÿÿÿÿÿÿøÖÄ›ÿÿÿïîîßÐÔÙÃÅξ¾ÙÃÅֺƴ¦¨Î¾¾†††’zz„psbNRÿÿÿ<<<444///%%%ÀÀÀªªª   ššš   ›››ˆˆˆšššlllddd]]]AAA(þŲ̀(((((((((((((ÿÿÿþŲ̀ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþŲ̀ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ===555111((((øÔÁ *ÿÿÿøÔÁÿÿÿÿÿÿøÔÁÿÿÿ<<<333...&&&(þðë·(ÿÿÿþðë·ÿÿÿÿÿÿþðë·ÿÿÿ===:::999,,,((((((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlgeneral-1.3.1/src/themes/Makefile.in0000664000175000017500000004611112643745056014370 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/themes DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = default all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/themes/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/themes/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-tags distdir dvi dvi-am \ html html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/themes/Makefile.am0000664000175000017500000000002312140770455014340 00000000000000SUBDIRS = default lgeneral-1.3.1/src/map.c0000664000175000017500000021311612575262021011746 00000000000000/*************************************************************************** map.c - description ------------------- begin : Mon Jan 22 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "lgeneral.h" #include "parser.h" #include "file.h" #include "nation.h" #include "unit.h" #include "map.h" #include "misc.h" #include "localize.h" #include #include /* ==================================================================== Externals ==================================================================== */ extern Sdl sdl; extern Terrain_Type *terrain_types; extern int terrain_type_count; extern int hex_w, hex_h, hex_x_offset; extern List *vis_units; extern int cur_weather; extern int nation_flag_width, nation_flag_height; extern Config config; extern Terrain_Icons *terrain_icons; extern Unit_Info_Icons *unit_info_icons; extern Player *cur_player; extern List *units; extern int modify_fog; /* ==================================================================== Map ==================================================================== */ int map_w = 0, map_h = 0; Map_Tile **map = 0; Mask_Tile **mask = 0; /* ==================================================================== Locals ==================================================================== */ enum { DIST_AIR_MAX = SHRT_MAX }; typedef struct { short x, y; } MapCoord; static List *deploy_fields; /* ==================================================================== Check the surrounding tiles and get the one with the highest in_range value. ==================================================================== */ static void map_get_next_unit_point( int x, int y, int *next_x, int *next_y ) { int high_x, high_y; int i; high_x = x; high_y = y; for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( x, y, i, next_x, next_y ) ) if ( mask[*next_x][*next_y].in_range > mask[high_x][high_y].in_range ) { high_x = *next_x; high_y = *next_y; } *next_x = high_x; *next_y = high_y; } /* ==================================================================== Add a unit's influence to the (vis_)infl mask. ==================================================================== */ static void map_add_vis_unit_infl( Unit *unit ) { int i, next_x, next_y; if ( unit->sel_prop->flags & FLYING ) { mask[unit->x][unit->y].vis_air_infl++; for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( unit->x, unit->y, i, &next_x, &next_y ) ) mask[next_x][next_y].vis_air_infl++; } else { mask[unit->x][unit->y].vis_infl++; for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( unit->x, unit->y, i, &next_x, &next_y ) ) mask[next_x][next_y].vis_infl++; } } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== Load map. ==================================================================== */ int map_load( char *fname ) { int i, x, y, j, limit; PData *pd; char path[512]; char *str, *tile; char *domain = 0; List *tiles, *names; sprintf( path, "%s/maps/%s", get_gamedir(), fname ); if ( ( pd = parser_read_file( fname, path ) ) == 0 ) goto parser_failure; domain = determine_domain(pd, fname); locale_load_domain(domain, 0/*FIXME*/); /* map size */ if ( !parser_get_int( pd, "width", &map_w ) ) goto parser_failure; if ( !parser_get_int( pd, "height", &map_h ) ) goto parser_failure; /* load terrains */ if ( !parser_get_value( pd, "terrain_db", &str, 0 ) ) goto parser_failure; if ( !terrain_load( str ) ) goto failure; if ( !parser_get_values( pd, "tiles", &tiles ) ) goto parser_failure; /* allocate map memory */ map = calloc( map_w, sizeof( Map_Tile* ) ); for ( i = 0; i < map_w; i++ ) map[i] = calloc( map_h, sizeof( Map_Tile ) ); mask = calloc( map_w, sizeof( Mask_Tile* ) ); for ( i = 0; i < map_w; i++ ) mask[i] = calloc( map_h, sizeof( Mask_Tile ) ); /* map itself */ list_reset( tiles ); for ( y = 0; y < map_h; y++ ) for ( x = 0; x < map_w; x++ ) { tile = list_next( tiles ); /* default is no flag */ map[x][y].nation = 0; map[x][y].player = 0; map[x][y].deploy_center = 0; map[x][y].damaged = 0; /* default is no mil target */ map[x][y].obj = 0; /* check tile type */ for ( j = 0; j < terrain_type_count; j++ ) { if ( terrain_types[j].id == tile[0] ) { map[x][y].terrain = &terrain_types[j]; map[x][y].terrain_id = j; } } /* tile not found, used first one */ if ( map[x][y].terrain == 0 ) map[x][y].terrain = &terrain_types[0]; /* check image id -- set offset */ limit = map[x][y].terrain->images[0]->w / hex_w - 1; if ( tile[1] == '?' ) /* set offset by random */ map[x][y].image_offset = RANDOM( 0, limit ) * hex_w; else map[x][y].image_offset = atoi( tile + 1 ) * hex_w; /* set name */ map[x][y].name = strdup( map[x][y].terrain->name ); } /* map names */ if ( parser_get_values( pd, "names", &names ) ) { list_reset( names ); for ( i = 0; i < names->count; i++ ) { str = list_next( names ); x = i % map_w; y = i / map_w; free( map[x][y].name ); map[x][y].name = strdup( trd(domain, str) ); } } parser_free( &pd ); free(domain); return 1; parser_failure: fprintf( stderr, "%s\n", parser_get_error() ); failure: map_delete(); if ( pd ) parser_free( &pd ); free(domain); return 0; } /* ==================================================================== Delete map. ==================================================================== */ void map_delete( ) { int i, j; if ( deploy_fields ) list_delete( deploy_fields ); deploy_fields = 0; terrain_delete(); if ( map ) { for ( i = 0; i < map_w; i++ ) if ( map[i] ) { for ( j = 0; j < map_h; j++ ) if ( map[i][j].name ) free ( map[i][j].name ); free( map[i] ); } free( map ); } if ( mask ) { for ( i = 0; i < map_w; i++ ) if ( mask[i] ) free( mask[i] ); free( mask ); } map = 0; mask = 0; map_w = map_h = 0; } /* ==================================================================== Get tile at x,y ==================================================================== */ Map_Tile* map_tile( int x, int y ) { if ( x < 0 || y < 0 || x >= map_w || y >= map_h ) { #if 0 fprintf( stderr, "map_tile: map tile at %i,%i doesn't exist\n", x, y); #endif return 0; } return &map[x][y]; } Mask_Tile* map_mask_tile( int x, int y ) { if ( x < 0 || y < 0 || x >= map_w || y >= map_h ) { #if 0 fprintf( stderr, "map_tile: mask tile at %i,%i doesn't exist\n", x, y); #endif return 0; } return &mask[x][y]; } /* ==================================================================== Clear the passed map mask flags. ==================================================================== */ void map_clear_mask( int flags ) { int i, j; for ( i = 0; i < map_w; i++ ) for ( j = 0; j < map_h; j++ ) { if ( flags & F_FOG ) mask[i][j].fog = 1; if ( flags & F_INVERSE_FOG ) mask[i][j].fog = 0; if ( flags & F_SPOT ) mask[i][j].spot = 0; if ( flags & F_IN_RANGE ) mask[i][j].in_range = 0; if ( flags & F_MOUNT ) mask[i][j].mount = 0; if ( flags & F_SEA_EMBARK ) mask[i][j].sea_embark = 0; if ( flags & F_AUX ) mask[i][j].aux = 0; if ( flags & F_INFL ) mask[i][j].infl = 0; if ( flags & F_INFL_AIR ) mask[i][j].air_infl = 0; if ( flags & F_VIS_INFL ) mask[i][j].vis_infl = 0; if ( flags & F_VIS_INFL_AIR ) mask[i][j].vis_air_infl = 0; if ( flags & F_BLOCKED ) mask[i][j].blocked = 0; if ( flags & F_BACKUP ) mask[i][j].backup = 0; if ( flags & F_MERGE_UNIT ) mask[i][j].merge_unit = 0; if ( flags & F_DEPLOY ) mask[i][j].deploy = 0; if ( flags & F_CTRL_GRND ) mask[i][j].ctrl_grnd = 0; if ( flags & F_CTRL_AIR ) mask[i][j].ctrl_air = 0; if ( flags & F_CTRL_SEA ) mask[i][j].ctrl_sea = 0; if ( flags & F_MOVE_COST ) mask[i][j].moveCost = 0; if ( flags & F_DISTANCE ) mask[i][j].distance = -1; if ( flags & F_DANGER ) mask[i][j].danger = 0; if ( flags & F_SPLIT_UNIT ) { mask[i][j].split_unit = 0; mask[i][j].split_okay = 0; } } } /* ==================================================================== Swap units. Returns the previous unit or 0 if none. ==================================================================== */ Unit *map_swap_unit( Unit *unit ) { Unit *old; if ( unit->sel_prop->flags & FLYING ) { old = map_tile( unit->x, unit->y )->a_unit; map_tile( unit->x, unit->y )->a_unit = unit; } else { old = map_tile( unit->x, unit->y )->g_unit; map_tile( unit->x, unit->y )->g_unit = unit; } unit->terrain = map[unit->x][unit->y].terrain; return old; } /* ==================================================================== Insert, Remove unit pointer from map. ==================================================================== */ void map_insert_unit( Unit *unit ) { Unit *old = map_swap_unit( unit ); if ( old ) { fprintf( stderr, "insert_unit_to_map: warning: " "unit %s hasn't been removed properly from %i,%i:" "overwrite it\n", old->name, unit->x, unit->y ); } } void map_remove_unit( Unit *unit ) { if ( unit->sel_prop->flags & FLYING ) map_tile( unit->x, unit->y )->a_unit = 0; else map_tile( unit->x, unit->y )->g_unit = 0; } /* ==================================================================== Get neighbored tiles clockwise with id between 0 and 5. ==================================================================== */ Map_Tile* map_get_close_hex( int x, int y, int id ) { int next_x, next_y; if ( get_close_hex_pos( x, y, id, &next_x, &next_y ) ) return &map[next_x][next_y]; return 0; } /* ==================================================================== Add/set spotting of a unit to auxiliary mask ==================================================================== */ void map_add_unit_spot_mask_rec( Unit *unit, int x, int y, int points ) { int i, next_x, next_y; /* break if this tile is already spotted */ if ( mask[x][y].aux >= points ) return; /* spot tile */ mask[x][y].aux = points; /* substract points */ points -= map[x][y].terrain->spt[cur_weather]; /* if there are points remaining continue spotting */ if ( points > 0 ) for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( x, y, i, &next_x, &next_y ) ) if ( !( map[next_x][next_y].terrain->flags[cur_weather] & NO_SPOTTING ) ) map_add_unit_spot_mask_rec( unit, next_x, next_y, points ); } void map_add_unit_spot_mask( Unit *unit ) { int i, next_x, next_y; if ( unit->x < 0 || unit->y < 0 || unit->x >= map_w || unit->y >= map_h ) return; mask[unit->x][unit->y].aux = unit->sel_prop->spt; for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( unit->x, unit->y, i, &next_x, &next_y ) ) map_add_unit_spot_mask_rec( unit, next_x, next_y, unit->sel_prop->spt ); } void map_get_unit_spot_mask( Unit *unit ) { map_clear_mask( F_AUX ); map_add_unit_spot_mask( unit ); } /* ==================================================================== Set movement range of a unit to in_range/sea_embark/mount. ==================================================================== */ #ifdef OLD void map_add_unit_move_mask_rec( Unit *unit, int x, int y, int distance, int points, int stage ) { int next_x, next_y, i, moves; // if (strstr(unit->name,"leF")) printf("%s: points=%d stage=%d\n", unit->name, points, stage); /* break if this tile is already checked */ if ( mask[x][y].in_range >= points ) return; /* the outter map tiles may not be entered */ if ( x <= 0 || y <= 0 || x >= map_w - 1 || y >= map_h - 1 ) return; /* must mount to come here? * Do set mount flag only in stage 1, and only under the condition if * the field could not have been reached without the unit having a * transport. */ if ( stage == 1 && !mask[x][y].in_range && unit->embark == EMBARK_NONE && unit->trsp_prop.id ) { if ( unit->cur_mov - points < unit->prop.mov ) mask[x][y].mount = 0; else mask[x][y].mount = 1; } /* mark as reachable */ mask[x][y].in_range = points; /* remember distance */ if (mask[x][y].distance==-1||distancecur_mov > unit->sel_prop->mov ? unit->sel_prop->mov : unit->cur_mov ) ) mask[x][y].in_range = 0; points = 0; } else points -= moves; // if (strstr(unit->name,"leF")) printf("moves=%d mask[%d][%d].in_range=%d\n", moves, x, y, mask[x][y].in_range); /* go on if points left */ if ( points > 0 ) for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( x, y, i, &next_x, &next_y ) ) if ( unit_check_move( unit, next_x, next_y, stage ) != 0 ) map_add_unit_move_mask_rec( unit, next_x, next_y, distance+1, points, stage ); } void map_get_unit_move_mask( Unit *unit ) { int i, next_x, next_y, stage, distance = 0; map_clear_unit_move_mask(); if ( unit->x < 0 || unit->y < 0 || unit->x >= map_w || unit->y >= map_h ) return; if ( unit->cur_mov == 0 ) return; mask[unit->x][unit->y].in_range = unit->cur_mov + 1; mask[unit->x][unit->y].distance = distance; for ( stage = 0; stage < 2; stage++) { for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( unit->x, unit->y, i, &next_x, &next_y ) ) { if ( map_check_unit_embark( unit, next_x, next_y, EMBARK_SEA, 0 ) ) { /* unit may embark to sea transporter */ mask[next_x][next_y].sea_embark = 1; continue; } if ( map_check_unit_debark( unit, next_x, next_y, EMBARK_SEA, 0 ) ) { /* unit may debark from sea transporter */ mask[next_x][next_y].sea_embark = 1; continue; } if ( unit_check_move( unit, next_x, next_y, stage ) ) map_add_unit_move_mask_rec( unit, next_x, next_y, distance+1, stage == 0 && unit->cur_mov > unit->sel_prop->mov ? unit->sel_prop->mov : unit->cur_mov, stage ); } } mask[unit->x][unit->y].blocked = 1; } #endif /* ==================================================================== Check whether unit can enter (x,y) provided it has 'points' move points remaining. 'mounted' means, to use the base cost for the transporter. Return the fuel cost (<=points) of this. If entering is not possible, 'cost' is undefined. ==================================================================== */ int unit_can_enter_hex( Unit *unit, int x, int y, int is_close, int points, int mounted, int *cost ) { int base = terrain_get_mov( map[x][y].terrain, unit->sel_prop->mov_type, cur_weather ); /* if we check the mounted case, we'll have to use the ground transporter's cost */ if ( mounted && unit->trsp_prop.id ) base = terrain_get_mov( map[x][y].terrain, unit->trsp_prop.mov_type, cur_weather ); /* allied bridge engineers on river? */ if ( map[x][y].terrain->flags[cur_weather] & RIVER ) if ( map[x][y].g_unit && map[x][y].g_unit->sel_prop->flags & BRIDGE_ENG ) if ( player_is_ally( unit->player, map[x][y].g_unit->player ) ) base = 1; /* impassable? */ if (base==0) return 0; /* cost's all but not close? */ if (base==-1&&!is_close) return 0; /* not enough points left? */ if (base>0&&pointsx || y != unit->y ) && mask[x][y].spot ) { if ( map[x][y].a_unit && ( unit->sel_prop->flags & FLYING ) ) { if ( !player_is_ally( unit->player, map[x][y].a_unit->player ) ) return 0; else map_mask_tile( x, y )->blocked = 1; } if ( map[x][y].g_unit && !( unit->sel_prop->flags & FLYING ) ) { if ( !player_is_ally( unit->player, map[x][y].g_unit->player ) ) return 0; else map_mask_tile( x, y )->blocked = 1; } } /* if we already have to spent all; we are done */ if (base==-1) { *cost = points; return 1; } /* entering an influenced tile costs all remaining points */ *cost = base; if ( unit->sel_prop->flags & FLYING ) { if ( mask[x][y].vis_air_infl > 0 ) *cost = points; } else { if ( mask[x][y].vis_infl > 0 ) *cost = points; } return 1; } /* ==================================================================== Check whether hex (x,y) is reachable by the unit. 'distance' is the distance to the hex, the unit is standing on. 'points' is the number of points the unit has remaining before trying to enter (x,y). 'mounted' means to re-check with the move mask of the transporter. And to set mask[x][y].mount if a tile came in reach that was previously not. ==================================================================== */ void map_add_unit_move_mask_rec( Unit *unit, int x, int y, int distance, int points, int mounted ) { int i, next_x, next_y, cost = 0; /* break if this tile is already checked */ if ( mask[x][y].in_range >= points ) return; if ( mask[x][y].sea_embark ) return; /* the outer map tiles may not be entered */ if ( x <= 0 || y <= 0 || x >= map_w - 1 || y >= map_h - 1 ) return; /* can we enter? if yes, how much does it cost? */ if (distance==0||unit_can_enter_hex(unit,x,y,(distance==1),points,mounted,&cost)) { /* remember distance */ if (mask[x][y].distance==-1||distance= points-cost ) return; /* enter tile new or with more points */ points -= cost; if (mounted&&mask[x][y].in_range==-1) { mask[x][y].mount = 1; mask[x][y].moveCost = unit->trsp_prop.mov-points; } mask[x][y].in_range = points; /* get total move costs (basic unmounted) */ if (!mounted) mask[x][y].moveCost = unit->sel_prop->mov-points; } else points = 0; /* all points consumed? if so, we can't go any further */ if (points==0) return; /* check whether close hexes in range */ for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( x, y, i, &next_x, &next_y ) ) { if ( distance==0 && map_check_unit_embark( unit, next_x, next_y, EMBARK_SEA, 0 ) ) { /* unit may embark to sea transporter */ mask[next_x][next_y].sea_embark = 1; continue; } if ( distance==0 && map_check_unit_debark( unit, next_x, next_y, EMBARK_SEA, 0 ) ) { /* unit may debark from sea transporter */ mask[next_x][next_y].sea_embark = 1; continue; } map_add_unit_move_mask_rec( unit, next_x, next_y, distance+1, points, mounted ); } } void map_get_unit_move_mask( Unit *unit ) { int x,y; map_clear_unit_move_mask(); /* we keep the semantic change of in_range local by doing a manual adjustment */ for (x=0;xembark == EMBARK_NONE && unit->trsp_prop.id ) { /* this goes wrong if a transportable unit may move in intervals which is logically correct however (for that case automatic mount is not possible, the user'd have to explicitly mount/unmount before starting to move); so all units should move in one go */ //begin patch: we need to consider if our range is restricted by lack of fuel -trip //map_add_unit_move_mask_rec(unit,unit->x,unit->y,0,unit->prop.mov,0); //map_add_unit_move_mask_rec(unit,unit->x,unit->y,0,unit->trsp_prop.mov,1); int maxpoints = unit->prop.mov; if ((unit->prop.fuel || unit->trsp_prop.fuel) && unit->cur_fuel < maxpoints) { maxpoints = unit->cur_fuel; //printf("limiting movement because fuel = %d\n", unit->cur_fuel); } map_add_unit_move_mask_rec(unit,unit->x,unit->y,0,maxpoints,0); /* fix for crashing when don't have enough fuel to use the land transport's full range -trip */ maxpoints = unit->trsp_prop.mov; if ((unit->prop.fuel || unit->trsp_prop.fuel) && unit->cur_fuel < maxpoints) { maxpoints = unit->cur_fuel; //printf("limiting expansion of movement via transport because fuel = %d\n", unit->cur_fuel); } map_add_unit_move_mask_rec(unit,unit->x,unit->y,0,maxpoints,1); //end of patch -trip } else map_add_unit_move_mask_rec(unit,unit->x,unit->y,0,unit->cur_mov,0); for (x=0;xx = x; p->y = y; ++p; } return p - coords; } /* ==================================================================== Sets the distance mask beginning with the airfield at (ax, ay). ==================================================================== */ static void map_get_dist_air_mask( int ax, int ay, short *dist_air_mask ) { int x, y; for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) { int d = get_dist( ax, ay, x, y ) - 1; if (d < dist_air_mask[y*map_w+x]) dist_air_mask[y*map_w+x] = d; } dist_air_mask[ay*map_w+ax] = 0; } /* ==================================================================== Recreates the danger mask for 'unit'. The fog must be set to the movement range of 'unit' for this function to work properly. The movement cost of the mask must have been set for 'unit'. Returns 1 when at least one tile's danger mask was set, otherwise 0. ==================================================================== */ int map_get_danger_mask( Unit *unit ) { int i, x, y, retval = 0; short *dist_air_mask = alloca(map_w*map_h*sizeof dist_air_mask[0]); MapCoord *airfields = alloca(map_w*map_h*sizeof airfields[0]); int airfield_count = map_write_friendly_depot_list( unit, airfields ); /* initialise masks */ for (i = 0; i < map_w*map_h; i++) dist_air_mask[i] = DIST_AIR_MAX; /* gather distance mask considering all friendly airfields */ for ( i = 0; i < airfield_count; i++ ) map_get_dist_air_mask( airfields[i].x, airfields[i].y, dist_air_mask ); /* now mark as danger-zone any tile whose next friendly airfield is farther away than the fuel quantity left. */ for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) if (!mask[x][y].fog) { int left = unit->cur_fuel - unit_calc_fuel_usage(unit, mask[x][y].distance); retval |= mask[x][y].danger = /* First compare distance to prospected fuel qty. If it's * too far away, it's dangerous. */ dist_air_mask[y*map_w+x] > left /* Specifically allow supplied tiles. */ && !map_get_unit_supply_level(x, y, unit); } return retval; } /* ==================================================================== Get a list of way points the unit moves along to it's destination. This includes check for unseen influence by enemy units (e.g. Surprise Contact). ==================================================================== */ Way_Point* map_get_unit_way_points( Unit *unit, int x, int y, int *count, Unit **ambush_unit ) { Way_Point *way = 0, *reverse = 0; int i; int next_x, next_y; /* same tile ? */ if ( unit->x == x && unit->y == y ) return 0; /* allocate memory */ int maxpoints = unit->cur_mov; if (mask[x][y].mount == 1) maxpoints = (unit->trsp_prop.mov>unit->prop.mov?unit->trsp_prop.mov:unit->prop.mov); way = calloc( maxpoints + 1, sizeof( Way_Point ) ); reverse = calloc( maxpoints + 1, sizeof( Way_Point ) ); /* it's easiest to get positions in reverse order */ next_x = x; next_y = y; *count = 0; while ( next_x != unit->x || next_y != unit->y ) { reverse[*count].x = next_x; reverse[*count].y = next_y; map_get_next_unit_point( next_x, next_y, &next_x, &next_y ); (*count)++; } reverse[*count].x = unit->x; reverse[*count].y = unit->y; (*count)++; for ( i = 0; i < *count; i++ ) { way[i].x = reverse[(*count) - 1 - i].x; way[i].y = reverse[(*count) - 1 - i].y; } free( reverse ); /* debug way points printf( "'%s': %i,%i", unit->name, way[0].x, way[0].y ); for ( i = 1; i < *count; i++ ) printf( " -> %i,%i", way[i].x, way[i].y ); printf( "\n" ); */ /* check for ambush and influence * if there is a unit in the way it must be an enemy (friends, spotted enemies are not allowed) * so cut down way to this way_point and set ambush_unit * if an unspotted tile does have influence >0 an enemy is nearby and our unit must stop */ for ( i = 1; i < *count; i++ ) { /* check if on this tile a unit is waiting */ /* if mask::blocked is set it's an own unit so don't check for ambush */ if ( !map_mask_tile( way[i].x, way[i].y )->blocked ) { if ( map_tile( way[i].x, way[i].y )->g_unit ) if ( !( unit->sel_prop->flags & FLYING ) ) { *ambush_unit = map_tile( way[i].x, way[i].y )->g_unit; break; } if ( map_tile( way[i].x, way[i].y )->a_unit ) if ( unit->sel_prop->flags & FLYING ) { *ambush_unit = map_tile( way[i].x, way[i].y )->a_unit; break; } } /* if we get here there is no unit waiting but maybe close too the tile */ /* therefore check tile of moving unit if it is influenced by a previously unspotted unit */ if ( unit->sel_prop->flags & FLYING ) { if ( map_mask_tile( way[i - 1].x, way[i - 1].y )->air_infl && !map_mask_tile( way[i - 1].x, way[i - 1].y )->vis_air_infl ) break; } else { if ( map_mask_tile( way[i - 1].x, way[i - 1].y )->infl && !map_mask_tile( way[i - 1].x, way[i - 1].y )->vis_infl ) break; } } if ( i < *count ) *count = i; /* enemy in the way; cut down */ return way; } /* ==================================================================== Backup/restore spot mask to/from backup mask. ==================================================================== */ void map_backup_spot_mask() { int x, y; map_clear_mask( F_BACKUP ); for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) map_mask_tile( x, y )->backup = map_mask_tile( x, y )->spot; } void map_restore_spot_mask() { int x, y; for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) map_mask_tile( x, y )->spot = map_mask_tile( x, y )->backup; map_clear_mask( F_BACKUP ); } /* ==================================================================== Get unit's merge partners and set mask 'merge'. At maximum MAP_MERGE_UNIT_LIMIT units. All unused entries in partners are set 0. ==================================================================== */ void map_get_merge_units( Unit *unit, Unit **partners, int *count ) { Unit *partner; int i, next_x, next_y; *count = 0; map_clear_mask( F_MERGE_UNIT ); memset( partners, 0, sizeof( Unit* ) * MAP_MERGE_UNIT_LIMIT ); /* check surrounding tiles */ for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( unit->x, unit->y, i, &next_x, &next_y ) ) { partner = 0; if ( map[next_x][next_y].g_unit && unit_check_merge( unit, map[next_x][next_y].g_unit ) ) partner = map[next_x][next_y].g_unit; else if ( map[next_x][next_y].a_unit && unit_check_merge( unit, map[next_x][next_y].a_unit ) ) partner = map[next_x][next_y].a_unit; if ( partner ) { partners[(*count)++] = partner; mask[next_x][next_y].merge_unit = partner; } } } /* ==================================================================== Check if unit may transfer strength to unit (if not NULL) or create a stand alone unit (if unit NULL) on the coordinates. ==================================================================== */ int map_check_unit_split( Unit *unit, int str, int x, int y, Unit *dest ) { if (unit->str-str<4) return 0; if (dest) { int old_str, ret; old_str = unit->str; unit->str = str; ret = unit_check_merge(unit,dest); /* is equal for now */ unit->str = old_str; return ret; } else { if (str<4) return 0; if (!is_close(unit->x,unit->y,x,y)) return 0; if ((unit->sel_prop->flags&FLYING)&&map[x][y].a_unit) return 0; if (!(unit->sel_prop->flags&FLYING)&&map[x][y].g_unit) return 0; if (!terrain_get_mov(map[x][y].terrain,unit->sel_prop->mov_type,cur_weather)) return 0; } return 1; } /* ==================================================================== Get unit's split partners assuming unit wants to give 'str' strength points and set mask 'split'. At maximum MAP_SPLIT_UNIT_LIMIT units. All unused entries in partners are set 0. 'str' must be valid amount, this is not checked here. ==================================================================== */ void map_get_split_units_and_hexes( Unit *unit, int str, Unit **partners, int *count ) { Unit *partner; int i, next_x, next_y; *count = 0; map_clear_mask( F_SPLIT_UNIT ); memset( partners, 0, sizeof( Unit* ) * MAP_SPLIT_UNIT_LIMIT ); /* check surrounding tiles */ for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( unit->x, unit->y, i, &next_x, &next_y ) ) { partner = 0; if ( map[next_x][next_y].g_unit && map_check_unit_split( unit, str, next_x, next_y, map[next_x][next_y].g_unit ) ) partner = map[next_x][next_y].g_unit; else if ( map[next_x][next_y].a_unit && map_check_unit_split( unit, str, next_x, next_y, map[next_x][next_y].a_unit ) ) partner = map[next_x][next_y].a_unit; else if ( map_check_unit_split( unit, str, next_x, next_y, 0 ) ) mask[next_x][next_y].split_okay = 1; if ( partner ) { partners[(*count)++] = partner; mask[next_x][next_y].split_unit = partner; } } } /* ==================================================================== Get a list (vis_units) of all visible units by checking spot mask. ==================================================================== */ void map_get_vis_units( void ) { int x, y; list_clear( vis_units ); for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) if ( mask[x][y].spot || ( cur_player && cur_player->ctrl == PLAYER_CTRL_CPU ) ) { if ( map[x][y].g_unit ) list_add( vis_units, map[x][y].g_unit ); if ( map[x][y].a_unit ) list_add( vis_units, map[x][y].a_unit ); } } /* ==================================================================== Draw a map tile terrain to surface. (fogged if mask::fog is set) ==================================================================== */ void map_draw_terrain( SDL_Surface *surf, int map_x, int map_y, int x, int y ) { Map_Tile *tile; if ( map_x < 0 || map_y < 0 || map_x >= map_w || map_y >= map_h ) return; tile = &map[map_x][map_y]; /* terrain */ DEST( surf, x, y, hex_w, hex_h ); if ( mask[map_x][map_y].fog ) SOURCE( tile->terrain->images_fogged[cur_weather], tile->image_offset, 0 ) else SOURCE( tile->terrain->images[cur_weather], tile->image_offset, 0 ) blit_surf(); /* nation flag */ if ( tile->nation !=0 && tile->damaged == 0) { nation_draw_flag( tile->nation, surf, x + ( ( hex_w - nation_flag_width ) >> 1 ), y + hex_h - nation_flag_height - 2, tile->obj ); } /* grid */ if ( config.grid ) { DEST( surf, x, y, hex_w, hex_h ); SOURCE( terrain_icons->grid, 0, 0 ); blit_surf(); } } /* ==================================================================== Draw tile units. If mask::fog is set no units are drawn. If 'ground' is True the ground unit is drawn as primary and the air unit is drawn small (and vice versa). If 'select' is set a selection frame is added. ==================================================================== */ void map_draw_units( SDL_Surface *surf, int map_x, int map_y, int x, int y, int ground, int select ) { Unit *unit = 0; Map_Tile *tile; if ( map_x < 0 || map_y < 0 || map_x >= map_w || map_y >= map_h ) return; tile = &map[map_x][map_y]; /* units */ if ( MAP_CHECK_VIS( map_x, map_y ) ) { if ( tile->g_unit ) { if ( ground || tile->a_unit == 0 ) { /* large ground unit */ DEST( surf, x + ( (hex_w - tile->g_unit->sel_prop->icon_w) >> 1 ), y + ( ( hex_h - tile->g_unit->sel_prop->icon_h ) >> 1 ), tile->g_unit->sel_prop->icon_w, tile->g_unit->sel_prop->icon_h ); SOURCE( tile->g_unit->sel_prop->icon, tile->g_unit->icon_offset, 0 ); blit_surf(); unit = tile->g_unit; } else { /* small ground unit */ DEST( surf, x + ( (hex_w - tile->g_unit->sel_prop->icon_tiny_w) >> 1 ), y + ( ( hex_h - tile->g_unit->sel_prop->icon_tiny_h ) >> 1 ) + 4, tile->g_unit->sel_prop->icon_tiny_w, tile->g_unit->sel_prop->icon_tiny_h ); SOURCE( tile->g_unit->sel_prop->icon_tiny, tile->g_unit->icon_tiny_offset, 0 ); blit_surf(); unit = tile->a_unit; } } if ( tile->a_unit ) { if ( !ground || tile->g_unit == 0 ) { /* large air unit */ DEST( surf, x + ( (hex_w - tile->a_unit->sel_prop->icon_w) >> 1 ), y + 6, tile->a_unit->sel_prop->icon_w, tile->a_unit->sel_prop->icon_h ); SOURCE( tile->a_unit->sel_prop->icon, tile->a_unit->icon_offset, 0 ); blit_surf(); unit = tile->a_unit; } else { /* small air unit */ DEST( surf, x + ( (hex_w - tile->a_unit->sel_prop->icon_tiny_w) >> 1 ), y + 6, tile->a_unit->sel_prop->icon_tiny_w, tile->a_unit->sel_prop->icon_tiny_h ); SOURCE( tile->a_unit->sel_prop->icon_tiny, tile->a_unit->icon_tiny_offset, 0 ); blit_surf(); unit = tile->g_unit; } } /* unit info icons */ if ( unit && config.show_bar ) { /* strength */ DEST( surf, x + ( ( hex_w - unit_info_icons->str_w ) >> 1 ), y + hex_h - unit_info_icons->str_h, unit_info_icons->str_w, unit_info_icons->str_h ); if ( cur_player && player_is_ally( cur_player, unit->player ) ) SOURCE( unit_info_icons->str, (unit&&(unit_low_ammo(unit)||unit_low_fuel(unit)))?unit_info_icons->str_w:0, unit_info_icons->str_h * ( unit->str - 1 + 15 ) ) else SOURCE( unit_info_icons->str, 0, unit_info_icons->str_h * ( unit->str - 1 ) ) blit_surf(); /* for current player only */ if ( unit->player == cur_player ) { /* attack */ if ( unit->cur_atk_count > 0 ) { DEST( surf, x + ( hex_w - hex_x_offset ), y + hex_h - unit_info_icons->atk->h, unit_info_icons->atk->w, unit_info_icons->atk->h ); SOURCE( unit_info_icons->atk, 0, 0 ); blit_surf(); } /* move */ if ( unit->cur_mov > 0 ) { DEST( surf, x + hex_x_offset - unit_info_icons->mov->w, y + hex_h - unit_info_icons->mov->h, unit_info_icons->mov->w, unit_info_icons->mov->h ); SOURCE( unit_info_icons->mov, 0, 0 ); blit_surf(); } /* guarding */ if ( unit->is_guarding ) { DEST( surf, x + ((hex_w-unit_info_icons->guard->w)>>1), y + hex_h - unit_info_icons->guard->h, unit_info_icons->guard->w, unit_info_icons->guard->h ); SOURCE( unit_info_icons->guard, 0, 0 ); blit_surf(); } } } } /* selection frame */ if ( select ) { DEST( surf, x, y, hex_w, hex_h ); SOURCE( terrain_icons->select, 0, 0 ); blit_surf(); } } /* ==================================================================== Draw danger tile. Expects 'surf' to contain a fully drawn tile at the given position which will be tinted by overlaying the danger terrain surface. ==================================================================== */ void map_apply_danger_to_tile( SDL_Surface *surf, int map_x, int map_y, int x, int y ) { DEST( surf, x, y, hex_w, hex_h ); SOURCE( terrain_icons->danger, 0, 0 ); alpha_blit_surf( DANGER_ALPHA ); } /* ==================================================================== Draw terrain and units. ==================================================================== */ void map_draw_tile( SDL_Surface *surf, int map_x, int map_y, int x, int y, int ground, int select ) { map_draw_terrain( surf, map_x, map_y, x, y ); map_draw_units( surf, map_x, map_y, x, y, ground, select ); } /* ==================================================================== Set/update spot mask by engine's current player or unit. The update adds the tiles seen by unit. ==================================================================== */ void map_set_spot_mask() { int i; int x, y, next_x, next_y; Unit *unit; map_clear_mask( F_SPOT ); map_clear_mask( F_AUX ); /* buffer here first */ /* get spot_mask for each unit and add to fog */ /* use map::mask::aux as buffer */ list_reset( units ); for ( i = 0; i < units->count; i++ ) { unit = list_next( units ); if ( unit->killed ) continue; if ( player_is_ally( cur_player, unit->player ) ) /* it's your unit or at least it's allied... */ map_add_unit_spot_mask( unit ); } /* check all flags; if flag belongs to you or any of your partners you see the surrounding, too */ for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) if ( map[x][y].player != 0 ) if ( player_is_ally( cur_player, map[x][y].player ) ) { mask[x][y].aux = 1; for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( x, y, i, &next_x, &next_y ) ) mask[next_x][next_y].aux = 1; } /* convert aux to fog */ for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) if ( mask[x][y].aux || !config.fog_of_war ) mask[x][y].spot = 1; /* update the visible units list */ map_get_vis_units(); } void map_update_spot_mask( Unit *unit, int *enemy_spotted ) { int x, y; *enemy_spotted = 0; if ( player_is_ally( cur_player, unit->player ) ) { /* it's your unit or at least it's allied... */ map_get_unit_spot_mask( unit ); for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) if ( mask[x][y].aux ) { /* if there is an enemy in this auxialiary mask that wasn't spotted before */ /* set enemy_spotted true */ if ( !mask[x][y].spot ) { if ( map[x][y].g_unit && !player_is_ally( unit->player, map[x][y].g_unit->player ) ) *enemy_spotted = 1; if ( map[x][y].a_unit && !player_is_ally( unit->player, map[x][y].a_unit->player ) ) *enemy_spotted = 1; } mask[x][y].spot = 1; } } } /* ==================================================================== Set mask::fog (which is the actual fog of the engine) to either spot mask, in_range mask (covers sea_embark), merge mask, deploy mask. ==================================================================== */ void map_set_fog( int type ) { int x, y; for ( y = 0; y < map_h; y++ ) for ( x = 0; x < map_w; x++ ) switch ( type ) { case F_SPOT: mask[x][y].fog = !mask[x][y].spot; break; case F_IN_RANGE: mask[x][y].fog = ( (!mask[x][y].in_range && !mask[x][y].sea_embark) || mask[x][y].blocked ); break; case F_MERGE_UNIT: mask[x][y].fog = !mask[x][y].merge_unit; break; case F_SPLIT_UNIT: mask[x][y].fog = !mask[x][y].split_unit&&!mask[x][y].split_okay; break; case F_DEPLOY: mask[x][y].fog = !mask[x][y].deploy; break; default: mask[x][y].fog = 0; break; } } /* ==================================================================== Set the fog to players spot mask by using mask::aux (not mask::spot) ==================================================================== */ void map_set_fog_by_player( Player *player ) { int i; int x, y, next_x, next_y; Unit *unit; map_clear_mask( F_AUX ); /* buffer here first */ /* units */ list_reset( units ); for ( i = 0; i < units->count; i++ ) { unit = list_next( units ); if ( unit->killed ) continue; if ( player_is_ally( player, unit->player ) ) /* it's your unit or at least it's allied... */ map_add_unit_spot_mask( unit ); } /* check all flags; if flag belongs to you or any of your partners you see the surrounding, too */ for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) if ( map[x][y].player != 0 ) if ( player_is_ally( player, map[x][y].player ) ) { mask[x][y].aux = 1; for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( x, y, i, &next_x, &next_y ) ) mask[next_x][next_y].aux = 1; } /* convert aux to fog */ for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) if ( mask[x][y].aux || !config.fog_of_war ) mask[x][y].fog = 0; else mask[x][y].fog = 1; } /* ==================================================================== Modify the various influence masks. ==================================================================== */ void map_add_unit_infl( Unit *unit ) { int i, next_x, next_y; if ( unit->sel_prop->flags & FLYING ) { mask[unit->x][unit->y].air_infl++; for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( unit->x, unit->y, i, &next_x, &next_y ) ) mask[next_x][next_y].air_infl++; } else { mask[unit->x][unit->y].infl++; for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( unit->x, unit->y, i, &next_x, &next_y ) ) mask[next_x][next_y].infl++; } } void map_remove_unit_infl( Unit *unit ) { int i, next_x, next_y; if ( unit->sel_prop->flags & FLYING ) { mask[unit->x][unit->y].air_infl--; for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( unit->x, unit->y, i, &next_x, &next_y ) ) mask[next_x][next_y].air_infl--; } else { mask[unit->x][unit->y].infl--; for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( unit->x, unit->y, i, &next_x, &next_y ) ) mask[next_x][next_y].infl--; } } void map_remove_vis_unit_infl( Unit *unit ) { int i, next_x, next_y; if ( unit->sel_prop->flags & FLYING ) { mask[unit->x][unit->y].vis_air_infl--; for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( unit->x, unit->y, i, &next_x, &next_y ) ) mask[next_x][next_y].vis_air_infl--; } else { mask[unit->x][unit->y].vis_infl--; for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( unit->x, unit->y, i, &next_x, &next_y ) ) mask[next_x][next_y].vis_infl--; } } void map_set_infl_mask() { Unit *unit = 0; map_clear_mask( F_INFL | F_INFL_AIR ); /* add all hostile units influence */ list_reset( units ); while ( ( unit = list_next( units ) ) ) if ( !unit->killed && !player_is_ally( cur_player, unit->player ) ) map_add_unit_infl( unit ); /* visible influence must also be updated */ map_set_vis_infl_mask(); } void map_set_vis_infl_mask() { Unit *unit = 0; map_clear_mask( F_VIS_INFL | F_VIS_INFL_AIR ); /* add all hostile units influence */ list_reset( units ); while ( ( unit = list_next( units ) ) ) if ( !unit->killed && !player_is_ally( cur_player, unit->player ) ) if ( map_mask_tile( unit->x, unit->y )->spot ) map_add_vis_unit_infl( unit ); } /* ==================================================================== Check if unit may air/sea embark/debark at x,y. If 'init' != 0, used relaxed rules for deployment ==================================================================== */ int map_check_unit_embark( Unit *unit, int x, int y, int type, int init ) { int i, nx, ny; if ( x < 0 || y < 0 || x >= map_w || y >= map_h ) return 0; if ( type == EMBARK_AIR ) { if ( unit->sel_prop->flags & FLYING ) return 0; if ( unit->sel_prop->flags & SWIMMING ) return 0; if ( cur_player->air_trsp == 0 ) return 0; if ( unit->embark != EMBARK_NONE ) return 0; if ( !init && map[x][y].a_unit ) return 0; if ( unit->player->air_trsp_used >= unit->player->air_trsp_count ) return 0; if ( !init && !unit->unused ) return 0; if ( !init && !( map[x][y].terrain->flags[cur_weather] & SUPPLY_AIR ) ) return 0; if ( init && !(unit->sel_prop->flags&PARACHUTE) && !( map[x][y].terrain->flags[cur_weather] & SUPPLY_AIR ) ) return 0; if ( !( unit->sel_prop->flags & AIR_TRSP_OK ) ) return 0; if ( init && unit->trsp_prop.flags & TRANSPORTER ) return 0; return 1; } if ( type == EMBARK_SEA ) { if ( unit->sel_prop->flags & FLYING ) return 0; if ( unit->sel_prop->flags & SWIMMING ) return 0; if ( cur_player->sea_trsp == 0 ) return 0; if ( unit->embark != EMBARK_NONE || ( !init && unit->sel_prop->mov == 0 ) ) return 0; if ( !init && map[x][y].g_unit ) return 0; if ( unit->player->sea_trsp_used >= unit->player->sea_trsp_count ) return 0; if ( !init && !unit->unused ) return 0; if ( terrain_get_mov( map[x][y].terrain, unit->player->sea_trsp->mov_type, cur_weather ) == 0 ) return 0; /* basically we must be close to an harbor but a town that is just near the water is also okay because else it would be too restrictive. */ if ( !init ) { if ( map[x][y].terrain->flags[cur_weather] & SUPPLY_GROUND ) return 1; for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( x, y, i, &nx, &ny ) ) if ( map[nx][ny].terrain->flags[cur_weather] & SUPPLY_GROUND ) return 1; } return init; } return 0; } int map_check_unit_debark( Unit *unit, int x, int y, int type, int init ) { if ( x < 0 || y < 0 || x >= map_w || y >= map_h ) return 0; if ( type == EMBARK_SEA ) { if ( unit->embark != EMBARK_SEA ) return 0; if ( !init && map[x][y].g_unit ) return 0; if ( !init && !unit->unused ) return 0; if ( !init && terrain_get_mov( map[x][y].terrain, unit->prop.mov_type, cur_weather ) == 0 ) return 0; return 1; } if ( type == EMBARK_AIR ) { if ( unit->embark != EMBARK_AIR ) return 0; if ( !init && map[x][y].g_unit ) return 0; if ( !init && !unit->unused ) return 0; if ( !init && terrain_get_mov( map[x][y].terrain, unit->prop.mov_type, cur_weather ) == 0 ) return 0; if ( !init && !( map[x][y].terrain->flags[cur_weather] & SUPPLY_AIR ) && !( unit->prop.flags & PARACHUTE ) ) return 0; return 1; } return 0; } /* ==================================================================== Embark/debark unit and return if an enemy was spotted. If 'enemy_spotted' is 0, don't recalculate spot mask. If unit's coordinates or x and y are out of bounds, the respective tile is not manipulated. For air debark (x,y)=(-1,-1) means deploy on airfield, otherwise it's a parachutist which means: it can drift away, it can loose strength, it may not move. ==================================================================== */ void map_embark_unit( Unit *unit, int x, int y, int type, int *enemy_spotted ) { Map_Tile *tile; if ( type == EMBARK_AIR ) { /* not marked as used so may debark directly again */ /* abandon ground transporter */ memset( &unit->trsp_prop, 0, sizeof( Unit_Lib_Entry ) ); /* set and change to air_tran_prop */ memcpy( &unit->trsp_prop, cur_player->air_trsp, sizeof( Unit_Lib_Entry ) ); unit->sel_prop = &unit->trsp_prop; unit->embark = EMBARK_AIR; /* unit now flies */ tile = map_tile(x, y); if (tile) tile->a_unit = unit; tile = map_tile(unit->x, unit->y); if (tile) tile->g_unit = 0; /* set full move range */ unit->cur_mov = unit->trsp_prop.mov; /* cancel attacks */ unit->cur_atk_count = 0; /* no entrenchment */ unit->entr = 0; /* adjust pic offset */ unit_adjust_icon( unit ); /* another air_tran in use */ cur_player->air_trsp_used++; if (enemy_spotted) /* in any case your spotting must be updated */ map_update_spot_mask( unit, enemy_spotted ); return; } if ( type == EMBARK_SEA ) { /* action taken */ unit->unused = 0; /* abandon ground transporter */ /* FIXME! This is utterly wrong! */ memset( &unit->trsp_prop, 0, sizeof( Unit_Lib_Entry ) ); /* set and change to sea_tran_prop */ memcpy( &unit->trsp_prop, cur_player->sea_trsp, sizeof( Unit_Lib_Entry ) ); unit->sel_prop = &unit->trsp_prop; unit->embark = EMBARK_SEA; /* update position */ tile = map_tile(unit->x, unit->y); if (tile) tile->g_unit = 0; unit->x = x; unit->y = y; tile = map_tile(x, y); if (tile) tile->g_unit = unit; /* set full move range */ unit->cur_mov = unit->trsp_prop.mov; /* cancel attacks */ unit->cur_atk_count = 0; /* no entrenchment */ unit->entr = 0; /* adjust pic offset */ unit_adjust_icon( unit ); /* another air_tran in use */ cur_player->sea_trsp_used++; if (enemy_spotted) /* in any case your spotting must be updated */ map_update_spot_mask( unit, enemy_spotted ); return; } } void map_debark_unit( Unit *unit, int x, int y, int type, int *enemy_spotted ) { Map_Tile *tile; if ( type == EMBARK_SEA ) { /* action taken */ unit->unused = 0; /* change back to unit_prop */ memset( &unit->trsp_prop, 0, sizeof( Unit_Lib_Entry ) ); unit->sel_prop = &unit->prop; unit->embark = EMBARK_NONE; /* set position */ tile = map_tile(unit->x, unit->y); if (tile) tile->g_unit = 0; unit->x = x; unit->y = y; tile = map_tile(x, y); if (tile) tile->g_unit = unit; if ( tile && tile->nation ) { tile->nation = unit->nation; tile->player = unit->player; } /* no movement allowed */ unit->cur_mov = 0; /* cancel attacks */ unit->cur_atk_count = 0; /* no entrenchment */ unit->entr = 0; /* adjust pic offset */ unit_adjust_icon( unit ); /* free occupied sea transporter */ cur_player->sea_trsp_used--; if (enemy_spotted) /* in any case your spotting must be updated */ map_update_spot_mask( unit, enemy_spotted ); return; } if ( type == EMBARK_AIR || type == DROP_BY_PARACHUTE ) { /* unit may directly move */ /* change back to unit_prop */ memset( &unit->trsp_prop, 0, sizeof( Unit_Lib_Entry ) ); unit->sel_prop = &unit->prop; unit->embark = EMBARK_NONE; /* get down to earth */ tile = map_tile(unit->x,unit->y); if ( tile ) tile->a_unit = 0; if (type == EMBARK_AIR) { if (tile) tile->g_unit = unit; } else { /* 70% chance of drifting */ if (DICE(10)<=7) { int i,nx,ny,c=0,j; for (i=0;i<6;i++) if (get_close_hex_pos(x,y,i,&nx,&ny)) if (map[nx][ny].g_unit==0) if (terrain_get_mov(map[nx][ny].terrain,unit->prop.mov_type,cur_weather)!=0) c++; j = DICE(c)-1; for (i=0,c=0;i<6;i++) if (get_close_hex_pos(x,y,i,&nx,&ny)) if (map[nx][ny].g_unit==0) if (terrain_get_mov(map[nx][ny].terrain,unit->prop.mov_type,cur_weather)!=0) { if (j==c) { unit->x = nx; unit->y = ny; break; } else c++; } } else { unit->x = x; unit->y = y; } tile = map_tile(unit->x,unit->y); if (tile) tile->g_unit = unit; } /* chance to die for each parachutist: 6%-exp% */ if (type == DROP_BY_PARACHUTE) { int i,c=0,l=6-unit->exp_level; for (i=0;istr;i++) if (DICE(100)<=l) c++; unit->str -= c; if (unit->str<=0) unit->str=1; /* have some mercy */ } /* set movement + attacks */ if (type == EMBARK_AIR) { unit->cur_mov = unit->sel_prop->mov; unit->cur_atk_count = unit->sel_prop->atk_count; } else { unit->cur_mov = 0; unit->cur_atk_count = 0; unit->unused = 0; } /* no entrenchment */ unit->entr = 0; /* adjust pic offset */ unit_adjust_icon( unit ); /* free occupied sea transporter */ cur_player->air_trsp_used--; if (enemy_spotted) /* in any case your spotting must be updated */ map_update_spot_mask( unit, enemy_spotted ); return; } } /* ==================================================================== Mark this field being a deployment-field for the given player. ==================================================================== */ void map_set_deploy_field( int mx, int my, int player ) { if (!deploy_fields) deploy_fields = list_create( LIST_AUTO_DELETE, (void (*)(void*))list_delete ); else list_reset( deploy_fields ); do { MapCoord *pt = 0; List *field_list; if ( player == 0 ) { pt = malloc( sizeof(MapCoord) ); pt->x = (short)mx; pt->y = (short)my; } field_list = list_next( deploy_fields ); if ( !field_list ) { field_list = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); list_add( deploy_fields, field_list ); } if ( pt ) list_add( field_list, pt ); } while ( player-- ); } /* ==================================================================== Check whether (mx, my) can serve as a deploy center for the given unit (assuming it is close to it, which is not checked). If no unit is given, check whether it is any ==================================================================== */ static int map_check_deploy_center( Player *player, Unit *unit, int mx, int my ) { if (map[mx][my].deploy_center!=1||!map[mx][my].player) return 0; if (!player_is_ally(map[mx][my].player,player)) return 0; if (unit) { if (terrain_get_mov(map[mx][my].terrain,unit->sel_prop->mov_type,cur_weather)==0) return 0; if (unit->sel_prop->flags&FLYING) if (!(map[mx][my].terrain->flags[cur_weather]&SUPPLY_AIR)) return 0; if (map[mx][my].nation!=unit->nation) return 0; } return 1; } /* ==================================================================== Add any deploy center and its surrounding to the deploy mask, if it can supply 'unit'. If 'unit' is not set, add any deploy center. ==================================================================== */ static void map_add_deploy_centers_to_deploy_mask( Player *player, Unit *unit ) { int x, y, i, next_x, next_y; for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) if (map_check_deploy_center(player,unit,x,y)) { mask[x][y].deploy = 1; for (i=0;i<6;i++) if (get_close_hex_pos( x, y, i, &next_x, &next_y )) mask[next_x][next_y].deploy = 1; } } /* ==================================================================== Add the default initial deploy mask: all supply centers and their surrounding (non-airfields for aircrafts too), all own units and any close hex, if such a hex is not blocked or close to an enemy unit, a river or close to an unspotted tile. Ships may not be deployed, so water is always off. Screws the deploy mask! ==================================================================== */ static MapCoord *map_create_new_coord(int x, int y) { MapCoord *pt = calloc(1,sizeof(MapCoord)); pt->x = x; pt->y = y; return pt; } static void map_add_default_deploy_fields( Player *player, List *fields ) { int x, y; Unit *unit; list_reset(units); while ((unit=list_next(units))) /* make sure all units can be re-deployed */ if (unit->player == player && unit_supports_deploy(unit)) mask[unit->x][unit->y].deploy = 1; map_add_deploy_centers_to_deploy_mask(player,0); for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) if (mask[x][y].deploy) list_add(fields,map_create_new_coord(x,y)); } /* ==================================================================== Set deploy mask by player's field list. If first entry is (-1,-1), create a default mask by adding all tiles with own unit on (but not the surrounding to prevent moving front line one step ahead). ==================================================================== */ static void map_set_initial_deploy_mask( Player *player ) { int i = player_get_index(player); List *field_list; MapCoord *pt; if ( !deploy_fields ) return; list_reset( deploy_fields ); while ( ( field_list = list_next( deploy_fields ) ) && i-- ); if ( !field_list ) return; list_reset( field_list ); while ( ( pt = list_next( field_list ) ) ) { Mask_Tile *tile = map_mask_tile(pt->x, pt->y); if (!tile) /* -1,-1 */ { list_delete_current(field_list); map_add_default_deploy_fields(player,field_list); } else { tile->deploy = 1; tile->spot = 1; } } } /* ==================================================================== Set the deploy mask for this unit. If 'init', use the initial deploy mask (or a default one). If not, set the valid deploy centers. In a second run, remove any tile blocked by an own unit if 'unit' is set. ==================================================================== */ void map_get_deploy_mask( Player *player, Unit *unit, int init ) { int x, y; assert( unit || init ); map_clear_mask( F_DEPLOY ); if (init) map_set_initial_deploy_mask(player); else map_add_deploy_centers_to_deploy_mask(player, unit); if (unit) { for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) if (unit->sel_prop->flags&FLYING) { if (map[x][y].a_unit) mask[x][y].deploy = 0; } else { if (map[x][y].g_unit&&(!init||!map_check_unit_embark(unit,x,y,EMBARK_AIR,1))) mask[x][y].deploy = 0; } } } /* ==================================================================== Check whether a unit can be undeployed. If 'air_region' check aircrafts only, otherwise ground units only. ==================================================================== */ Unit* map_get_undeploy_unit( int x, int y, int air_region ) { if ( air_region ) { /* check air */ if ( map[x][y].a_unit && map[x][y].a_unit->fresh_deploy ) return map[x][y].a_unit; else /*if ( map[x][y].g_unit && map[x][y].g_unit->fresh_deploy ) return map[x][y].g_unit; else*/ return 0; } else { /* check ground */ if ( map[x][y].g_unit && map[x][y].g_unit->fresh_deploy ) return map[x][y].g_unit; else /*if ( map[x][y].a_unit && map[x][y].a_unit->fresh_deploy ) return map[x][y].a_unit; else*/ return 0; } } /* ==================================================================== Check the supply level of tile (mx, my) in the context of 'unit'. (hex tiles with SUPPLY_GROUND have 100% supply) ==================================================================== */ int map_get_unit_supply_level( int mx, int my, Unit *unit ) { int x, y, w, h, i, j; int flag_supply_level, supply_level; /* flying and swimming units get a 100% supply if near an airfield or a harbour */ if ( ( unit->sel_prop->flags & SWIMMING ) || ( unit->sel_prop->flags & FLYING ) ) { supply_level = map_supplied_by_depot( mx, my, unit )*100; } else { /* ground units get a 100% close to a flag and looses about 10% for each title it gets away */ /* test all flags within a region x-10,y-10,20,20 about their distance */ /* get region first */ x = mx - 10; y = my - 10; w = 20; h = 20; if ( x < 0 ) { w += x; x = 0; } if ( y < 0 ) { h += y; y = 0; } if ( x + w > map_w ) w = map_w - x; if ( y + h > map_h ) h = map_h - y; /* now check flags */ supply_level = 0; for ( i = x; i < x + w; i++ ) for ( j = y; j < y + h; j++ ) if ( map_is_allied_depot(&map[i][j], unit) ) { flag_supply_level = get_dist( mx, my, i, j ); if ( flag_supply_level < 2 ) flag_supply_level = 100; else { flag_supply_level = 100 - ( flag_supply_level - 1 ) * 10; if ( flag_supply_level < 0 ) flag_supply_level = 0; } if ( flag_supply_level > supply_level ) supply_level = flag_supply_level; } } /* air: if hostile influence is 1 supply is 50%, if influence >1 supply is not possible */ /* ground: if hostile influence is 1 supply is at 75%, if influence >1 supply is at 50% */ if ( unit->sel_prop->flags & FLYING ) { if ( mask[ mx][ my ].air_infl > 1 || mask[ mx][ my ].infl > 1 ) supply_level = 0; else if ( mask[ mx][my ].air_infl == 1 || mask[ mx][ my ].infl == 1 ) supply_level = supply_level / 2; } else { if ( mask[ mx][ my ].infl == 1 ) supply_level = 3 * supply_level / 4; else if ( mask[ mx][ my ].infl > 1 ) supply_level = supply_level / 2; } return supply_level; } /* ==================================================================== Check if this map tile is a supply point for the given unit. ==================================================================== */ int map_is_allied_depot( Map_Tile *tile, Unit *unit ) { if ( tile == 0 ) return 0; /* maybe it's an aircraft carrier */ if ( tile->g_unit ) if ( tile->g_unit->sel_prop->flags & CARRIER ) if ( player_is_ally( tile->g_unit->player, unit->player ) ) if ( unit->sel_prop->flags & CARRIER_OK ) return 1; /* check for depot */ if ( tile->player == 0 ) return 0; if ( !player_is_ally( unit->player, tile->player ) ) return 0; if ( unit->sel_prop->flags & FLYING ) { if ( !(tile->terrain->flags[cur_weather] & SUPPLY_AIR) ) return 0; } else if ( unit->sel_prop->flags & SWIMMING ) { if ( !(tile->terrain->flags[cur_weather] & SUPPLY_SHIPS) ) return 0; } if (tile->damaged) // currently damaged by carpet bombing return 0; return 1; } /* ==================================================================== Checks whether this hex (mx, my) is supplied by a depot in the context of 'unit'. ==================================================================== */ int map_supplied_by_depot( int mx, int my, Unit *unit ) { int i; if ( map_is_allied_depot( &map[mx][my], unit ) ) return 1; for ( i = 0; i < 6; i++ ) if ( map_is_allied_depot( map_get_close_hex( mx, my, i ), unit ) ) return 1; return 0; } /* ==================================================================== Get drop zone for unit (all close hexes that are free). ==================================================================== */ void map_get_dropzone_mask( Unit *unit ) { int i,x,y; map_clear_mask(F_DEPLOY); for (i=0;i<6;i++) if (get_close_hex_pos(unit->x,unit->y,i,&x,&y)) if (map[x][y].g_unit==0) if (terrain_get_mov(map[x][y].terrain,unit->prop.mov_type,cur_weather)!=0) mask[x][y].deploy = 1; if (map[unit->x][unit->y].g_unit==0) if (terrain_get_mov(map[unit->x][unit->y].terrain,unit->prop.mov_type,cur_weather)!=0) mask[unit->x][unit->y].deploy = 1; } lgeneral-1.3.1/src/image.h0000664000175000017500000002425412140770455012266 00000000000000/*************************************************************************** image.h - description ------------------- begin : Tue Mar 21 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __IMAGE_H #define __IMAGE_H /* ==================================================================== Surface buffer. Used to buffer parts of a surface. ==================================================================== */ typedef struct { SDL_Rect buf_rect; /* source rect in buffer */ SDL_Rect surf_rect; /* destination rect in surf */ SDL_Rect old_rect; /* refresh region of the old position if moved */ SDL_Surface *buf; /* actual buffer */ SDL_Surface *surf; /* surface buffer is assigned to */ int hide; /* if True this buffer is not drawn */ int moved; /* if this is False and move is called old_rect is set to the old region */ int recently_hidden; /* set if hidden and cleared buffer_draw */ } Buffer; /* ==================================================================== Create buffer of size w,h with default postion x,y in surf. SDL must have been initialized before calling this. ==================================================================== */ Buffer* buffer_create( int w, int h, SDL_Surface *surf, int x, int y ); void buffer_delete( Buffer **buffer ); /* ==================================================================== Hide this buffer from surface (no get/draw actions) ==================================================================== */ void buffer_hide( Buffer *buffer, int hide ); /* ==================================================================== Get buffer from buffer->surf. ==================================================================== */ void buffer_get( Buffer *buffer ); /* ==================================================================== Draw buffer to buffer->surf. ==================================================================== */ void buffer_draw( Buffer *buffer ); /* ==================================================================== Add refresh rects including movement and recent hide. ==================================================================== */ void buffer_add_refresh_rects( Buffer *buffer ); /* ==================================================================== Modify the buffer settings. Does not include any get() or draw(). The maximum resize is given by buffers initial size. ==================================================================== */ void buffer_move( Buffer *buffer, int x, int y ); void buffer_resize( Buffer *buffer, int w, int h ); void buffer_set_surface( Buffer *buffer, SDL_Surface *surf ); void buffer_get_geometry(Buffer *buffer, int *x, int *y, int *w, int *h ); SDL_Rect *buffer_get_surf_rect( Buffer *buffer ); /* ==================================================================== Image. Used to add toplevel graphics (e.g. cursor). It's either drawn completely or partial (depends on img_rect). ==================================================================== */ typedef struct { Buffer *bkgnd; /* background buffer for image */ SDL_Rect img_rect; /* source rect in image */ SDL_Surface *img; /* image */ } Image; /* ==================================================================== Create an image. The image surface is deleted by image_delete(). The image region (that's actually drawn) is initiated to 0,0,buf_w,buf_h where buf_w or buw_h 0 means to use the whole image. The maximum region size is limited to the initial region size. The current draw position is x,y in 'surf'. ==================================================================== */ Image *image_create( SDL_Surface *img, int buf_w, int buf_h, SDL_Surface *surf, int x, int y ); void image_delete( Image **image ); /* ==================================================================== Hide image completly ==================================================================== */ #define image_hide( image, hide ) buffer_hide( image->bkgnd, hide ) /* ==================================================================== Get image background ==================================================================== */ #define image_get_bkgnd( img ) buffer_get( img->bkgnd ) /* ==================================================================== Hide the image (draw background to current position). ==================================================================== */ #define image_draw_bkgnd( image ) buffer_draw( image->bkgnd ) /* ==================================================================== Draw image region to current position. Stores the background first. Add the refresh_rects as needed including movement and hide refreshs. ==================================================================== */ void image_draw( Image *image ); /* ==================================================================== Modify the image settings. Does not include any drawing (neither image nor background) but may resize the background if needed. ==================================================================== */ #define image_move( img, x, y ) buffer_move( img->bkgnd, x, y ) #define image_set_surface( img, surf ) buffer_set_surface( img->bkgnd, surf ) void image_set_region( Image *image, int x, int y, int w, int h ); /* ==================================================================== Animation. An image that changes it's draw region every 'speed' milliseconds (next frame). Multiple animations may be stored in one surface. Each row represents an animation and each column #i frame number #i of each animation. ==================================================================== */ typedef struct { Image *img; /* frame graphics */ int playing; /* true if an animation is playing */ int loop; /* true if animation is in an endless loop */ int speed; /* time in milliseconds a frame is displayed */ int cur_time; /* if this exceeds speed the next frame is played (or animation is stopped) */ } Anim; /* ==================================================================== Create an animation. The animation surface is deleted by anim_delete(). The buffer size of each frame is frame_w, frame_h. The current draw position is x,y in 'surf'. Per default an animation is stopped and set to the first frame of the first animation. Animation is hidden per default. ==================================================================== */ Anim* anim_create( SDL_Surface *gfx, int speed, int frame_w, int frame_h, SDL_Surface *surf, int x, int y ); void anim_delete( Anim **anim ); /* ==================================================================== Draw animation ==================================================================== */ #define anim_hide( anim, hide ) buffer_hide( anim->img->bkgnd, hide ) #define anim_get_bkgnd( anim ) buffer_get( anim->img->bkgnd ) #define anim_draw_bkgnd( anim ) buffer_draw( anim->img->bkgnd ) #define anim_draw( anim ) image_draw( anim->img ) /* ==================================================================== Modify animation settings ==================================================================== */ #define anim_move( anim, x, y ) buffer_move( anim->img->bkgnd, x, y ) #define anim_set_surface( anim, surf ) buffer_set_surface( anim->img->bkgnd, surf ) void anim_set_speed( Anim *anim, int speed ); void anim_set_row( Anim *anim, int id ); void anim_set_frame( Anim *anim, int id ); void anim_play( Anim *anim, int loop ); void anim_stop( Anim *anim ); void anim_update( Anim *anim, int ms ); /* ==================================================================== Frame. A contents surface is modified and together with a frame it builds up the image. If alpha < 255 the background is darkened by using shadow surface first when drawing. ==================================================================== */ typedef struct { Image *img; SDL_Surface *shadow; SDL_Surface *contents; SDL_Surface *frame; int alpha; } Frame; /* ==================================================================== Create a frame. If alpha > 0 the background is shadowed by using the shadow surface when drawing. The size of buffer, image and contents is specified by the measurements of the frame picture 'img'. The current draw position is x,y in 'surf'. ==================================================================== */ Frame *frame_create( SDL_Surface *img, int alpha, SDL_Surface *surf, int x, int y ); void frame_delete( Frame **frame ); /* ==================================================================== Draw frame ==================================================================== */ void frame_hide( Frame *frame, int hide ); #define frame_get_bkgnd( frame ) buffer_get( frame->img->bkgnd ) #define frame_draw_bkgnd( frame ) buffer_draw( frame->img->bkgnd ) void frame_draw( Frame *frame ); /* ==================================================================== Modify/Get frame settings ==================================================================== */ #define frame_move( frame, x, y ) buffer_move( frame->img->bkgnd, x, y ) #define frame_set_surface( frame, surf ) buffer_set_surface( frame->img->bkgnd, surf ) #define frame_get_geometry(frame,x,y,w,h) buffer_get_geometry(frame->img->bkgnd,x,y,w,h) void frame_apply( Frame *frame ); /* apply changed contents to image */ #define frame_get_width( frame ) ( (frame)->img->img->w ) #define frame_get_height( frame ) ( (frame)->img->img->h ) #endif lgeneral-1.3.1/src/maps/0000775000175000017500000000000012643745101012042 500000000000000lgeneral-1.3.1/src/maps/Makefile.in0000664000175000017500000003165312643745056014050 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/maps DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/maps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/maps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/maps # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/maps/Makefile.am0000664000175000017500000000010112140770455014010 00000000000000install-data-local: $(mkinstalldirs) $(DESTDIR)$(inst_dir)/maps lgeneral-1.3.1/src/unit_lib.c0000664000175000017500000006354012472352653013011 00000000000000/*************************************************************************** unit_lib.c - description ------------------- begin : Sat Mar 16 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "lgeneral.h" #include "parser.h" #include "unit_lib.h" #include "localize.h" #include "nation.h" /* ==================================================================== Externals ==================================================================== */ extern Sdl sdl; extern int log_x, log_y; extern Font *log_font; /* ==================================================================== Target types, movement types, unit classes These may only be loaded if unit_lib_main_loaded is False. ==================================================================== */ int unit_lib_main_loaded = 0; Trgt_Type *trgt_types = 0; int trgt_type_count = 0; Mov_Type *mov_types = 0; int mov_type_count = 0; Unit_Class *unit_classes= 0; int unit_class_count = 0; /* ==================================================================== Unit map tile icons (strength, move, attack ...) ==================================================================== */ Unit_Info_Icons *unit_info_icons = 0; /* ==================================================================== Unit library list which is created by the UNIT_LIB_MAIN call of unit_lib_load(). ==================================================================== */ List *unit_lib = 0; /* ==================================================================== Convertion table for string -> flag. ==================================================================== */ StrToFlag fct_units[] = { { "swimming", SWIMMING }, { "flying", FLYING }, { "diving", DIVING }, { "parachute", PARACHUTE }, { "transporter", TRANSPORTER }, { "recon", RECON }, { "artillery", ARTILLERY }, { "interceptor", INTERCEPTOR }, { "air_defense", AIR_DEFENSE }, { "bridge_eng", BRIDGE_ENG }, { "infantry", INFANTRY }, { "air_trsp_ok", AIR_TRSP_OK }, { "destroyer", DESTROYER }, { "ignore_entr", IGNORE_ENTR }, { "carrier", CARRIER }, { "carrier_ok", CARRIER_OK }, { "bomber", BOMBER }, { "attack_first", ATTACK_FIRST }, { "low_entr_rate", LOW_ENTR_RATE }, { "tank", TANK }, { "anti_tank", ANTI_TANK }, { "suppr_fire", SUPPR_FIRE }, { "turn_suppr", TURN_SUPPR }, { "jet", JET }, { "ground_trsp_ok", GROUND_TRSP_OK }, { "carpet_bombing", CARPET_BOMBING }, { "X", 0} }; /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Get the geometry of an icon in surface 'icons' by using the three measure dots in the left upper, right upper, left lower corner. ==================================================================== */ static void unit_get_icon_geometry( int icon_id, SDL_Surface *icons, int *width, int *height, int *offset, Uint32 *key ) { Uint32 mark; int y; int count = icon_id * 2; /* there are two pixels for one icon */ /* nada white dot! take the first pixel found in the upper left corner as mark */ mark = get_pixel( icons, 0, 0 ); /* compute offset */ for ( y = 0; y < icons->h; y++ ) if ( get_pixel( icons, 0, y ) == mark ) { if ( count == 0 ) break; count--; } *offset = y; /* compute height */ y++; while ( y < icons->h && get_pixel( icons, 0, y ) != mark ) y++; (*height) = y - (*offset) + 1; /* compute width */ y = *offset; *width = 1; while ( get_pixel( icons, (*width ), y ) != mark ) (*width)++; (*width)++; /* pixel beside left upper measure key is color key */ *key = get_pixel( icons, 1, *offset ); } /* ==================================================================== Delete unit library entry. ==================================================================== */ static void unit_lib_delete_entry( void *ptr ) { Unit_Lib_Entry *entry = (Unit_Lib_Entry*)ptr; if ( entry == 0 ) return; if ( entry->id ) free( entry->id ); if ( entry->name ) free( entry->name ); if ( entry->icon ) SDL_FreeSurface( entry->icon ); if ( entry->icon_tiny ) SDL_FreeSurface( entry->icon_tiny ); #ifdef WITH_SOUND if ( entry->wav_alloc && entry->wav_move ) wav_free( entry->wav_move ); #endif free( entry ); } /* ==================================================================== Evaluate the unit. This score will become a relative one whereas the best rating will be 1000. Each operational region ground/sea/air will have its own reference. This evaluation is PG specific. Cost is not considered. ==================================================================== */ void unit_lib_eval_unit( Unit_Lib_Entry *unit ) { int attack = 0, defense = 0, misc = 0; /* The score is computed by dividing the unit's properties into categories. The subscores are added with different weights. */ /* The first category covers the attack skills. */ if ( unit->flags & FLYING ) { attack = unit->atks[0] + unit->atks[1] + /* ground */ 2 * MAXIMUM( unit->atks[2], abs( unit->atks[2] ) / 2 ) + /* air */ unit->atks[3]; /* sea */ } else { if ( unit->flags & SWIMMING ) { attack = unit->atks[0] + unit->atks[1] + /* ground */ unit->atks[2] + /* air */ 2 * unit->atks[3]; /* sea */ } else { attack = 2 * MAXIMUM( unit->atks[0], abs( unit->atks[0] ) / 2 ) + /* soft */ 2 * MAXIMUM( unit->atks[1], abs( unit->atks[1] ) / 2 ) + /* hard */ MAXIMUM( unit->atks[2], abs( unit->atks[2] ) / 2 ) + /* air */ unit->atks[3]; /* sea */ } } attack += unit->ini; attack += 2 * unit->rng; /* The second category covers defensive skills. */ if ( unit->flags & FLYING ) defense = unit->def_grnd + 2 * unit->def_air; else { defense = 2 * unit->def_grnd + unit->def_air; if ( unit->flags & INFANTRY ) /* hype infantry a bit as it doesn't need the close defense value */ defense += 5; else defense += unit->def_cls; } /* The third category covers miscellany skills. */ if ( unit->flags & FLYING ) misc = MINIMUM( 12, unit->ammo ) + MINIMUM( unit->fuel, 80 ) / 5 + unit->mov / 2; else misc = MINIMUM( 12, unit->ammo ) + MINIMUM( unit->fuel, 60 ) / 4 + unit->mov; /* summarize */ unit->eval_score = ( 2 * attack + 2 * defense + misc ) / 5; } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== Load a unit library. If UNIT_LIB_MAIN is passed target_types, mov_types and unit classes will be loaded (may only happen once) ==================================================================== */ int unit_lib_load( char *fname, int main ) { int i, j, icon_id; SDL_Surface *icons = NULL; int icon_type; int width, height, offset; Uint32 color_key; int byte_size, y_offset; char *pix_buffer; Unit_Lib_Entry *unit; int best_ground = 0, best_air = 0, best_sea = 0; /* used to relativate evaluations */ List *entries, *flags; PData *pd, *sub, *subsub; char path[512]; char *str, *flag; char *domain = 0; float scale; /* log info */ int log_dot_limit = 40; /* maximum of dots */ int log_dot_count = 0; /* actual number of dots displayed */ int log_units_per_dot = 0; /* number of units a dot represents */ int log_unit_count = 0; /* if > units_per_dot a new dot is added */ char log_str[128]; /* there can be only one main library */ if ( main == UNIT_LIB_MAIN && unit_lib_main_loaded ) { fprintf( stderr, tr("%s: can't load as main unit library (which is already loaded): loading as 'additional' instead\n"), fname ); main = UNIT_LIB_ADD; } /* parse file */ sprintf( path, "%s/units/%s", get_gamedir(), fname ); sprintf( log_str, tr(" Parsing '%s'"), fname ); write_line( sdl.screen, log_font, log_str, log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); if ( ( pd = parser_read_file( fname, path ) ) == 0 ) goto parser_failure; domain = determine_domain(pd, fname); locale_load_domain(domain, 0/*FIXME*/); /* if main read target types & co */ if ( main == UNIT_LIB_MAIN ) { write_line( sdl.screen, log_font, tr(" Loading Main Definitions"), log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); unit_lib = list_create( LIST_AUTO_DELETE, unit_lib_delete_entry ); /* target types */ if ( !parser_get_entries( pd, "target_types", &entries ) ) goto parser_failure; trgt_type_count = entries->count; if ( trgt_type_count > TARGET_TYPE_LIMIT ) { fprintf( stderr, tr("%i target types is the limit!\n"), TARGET_TYPE_LIMIT ); trgt_type_count = TARGET_TYPE_LIMIT; } trgt_types = calloc( trgt_type_count, sizeof( Trgt_Type ) ); list_reset( entries ); i = 0; while ( ( sub = list_next( entries ) ) ) { trgt_types[i].id = strdup( sub->name ); if ( !parser_get_value( sub, "name", &str, 0 ) ) goto parser_failure; trgt_types[i].name = strdup(trd(domain, str)); i++; } /* movement types */ if ( !parser_get_entries( pd, "move_types", &entries ) ) goto parser_failure; mov_types = calloc( entries->count, sizeof( Mov_Type ) ); list_reset( entries ); mov_type_count = 0; while ( ( sub = list_next( entries ) ) ) { mov_types[mov_type_count].id = strdup( sub->name ); if ( !parser_get_value( sub, "name", &str, 0 ) ) goto parser_failure; mov_types[mov_type_count].name = strdup(trd(domain, str)); #ifdef WITH_SOUND if ( parser_get_value( sub, "sound", &str, 0 ) ) { mov_types[mov_type_count].wav_move = wav_load( str, 0 ); } #endif mov_type_count++; } /* unit classes */ if ( !parser_get_entries( pd, "unit_classes", &entries ) ) goto parser_failure; unit_classes = calloc( entries->count, sizeof( Unit_Class ) ); list_reset( entries ); unit_class_count = 0; while ( ( sub = list_next( entries ) ) ) { unit_classes[unit_class_count].id = strdup( sub->name ); if ( !parser_get_value( sub, "name", &str, 0 ) ) goto parser_failure; unit_classes[unit_class_count].name = strdup(trd(domain, str)); unit_classes[unit_class_count].purchase = UC_PT_NONE; if (parser_get_value( sub, "purchase", &str, 0 )) { if (strcmp(str,"trsp") == 0) unit_classes[unit_class_count].purchase = UC_PT_TRSP; else if (strcmp(str,"normal") == 0) unit_classes[unit_class_count].purchase = UC_PT_NORMAL; } unit_class_count++; /* ignore sounds so far */ } /* unit map tile icons */ unit_info_icons = calloc( 1, sizeof( Unit_Info_Icons ) ); if ( !parser_get_value( pd, "strength_icons", &str, 0 ) ) goto parser_failure; sprintf( path, "units/%s", str ); if ( ( unit_info_icons->str = load_surf( path, SDL_SWSURFACE ) ) == 0 ) goto failure; if ( !parser_get_int( pd, "strength_icon_width", &unit_info_icons->str_w ) ) goto parser_failure; if ( !parser_get_int( pd, "strength_icon_height", &unit_info_icons->str_h ) ) goto parser_failure; if ( !parser_get_value( pd, "attack_icon", &str, 0 ) ) goto parser_failure; sprintf( path, "units/%s", str ); if ( ( unit_info_icons->atk = load_surf( path, SDL_SWSURFACE ) ) == 0 ) goto failure; if ( !parser_get_value( pd, "move_icon", &str, 0 ) ) goto parser_failure; sprintf( path, "units/%s", str ); if ( ( unit_info_icons->mov = load_surf( path, SDL_SWSURFACE ) ) == 0 ) goto failure; if ( !parser_get_value( pd, "guard_icon", &str, 0 ) ) str = "pg_guard.bmp"; sprintf( path, "units/%s", str ); if ( ( unit_info_icons->guard = load_surf( path, SDL_SWSURFACE ) ) == 0 ) goto failure; } /* icons */ if ( !parser_get_value( pd, "icon_type", &str, 0 ) ) goto parser_failure; if (STRCMP( str, "fixed" ) ) icon_type = UNIT_ICON_FIXED; else if ( STRCMP( str, "single" ) ) icon_type = UNIT_ICON_SINGLE; else icon_type = UNIT_ICON_ALL_DIRS; if ( !parser_get_value( pd, "icons", &str, 0 ) ) goto parser_failure; sprintf( path, "units/%s", str ); write_line( sdl.screen, log_font, tr(" Loading Tactical Icons"), log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); if ( ( icons = load_surf( path, SDL_SWSURFACE ) ) == 0 ) goto failure; /* unit lib entries */ if ( !parser_get_entries( pd, "unit_lib", &entries ) ) goto parser_failure; /* LOG INIT */ log_units_per_dot = entries->count / log_dot_limit; log_dot_count = 0; log_unit_count = 0; /* (LOG) */ list_reset( entries ); while ( ( sub = list_next( entries ) ) ) { /* read unit entry */ unit = calloc( 1, sizeof( Unit_Lib_Entry ) ); /* identification */ unit->id = strdup( sub->name ); /* name */ if ( !parser_get_value( sub, "name", &str, 0) ) goto parser_failure; unit->name = strdup(trd(domain, str)); /* nation (if not found or 'none' unit can't be purchased) */ unit->nation = -1; /* undefined */ if ( parser_get_value( sub, "nation", &str, 0) && strcmp(str,"none") ) { Nation *n = nation_find( str ); if (n) unit->nation = nation_get_index( n ); } /* class id */ unit->class = 0; if ( !parser_get_value( sub, "class", &str, 0 ) ) goto parser_failure; for ( i = 0; i < unit_class_count; i++ ) if ( STRCMP( str, unit_classes[i].id ) ) { unit->class = i; break; } /* target type id */ unit->trgt_type = 0; if ( !parser_get_value( sub, "target_type", &str, 0 ) ) goto parser_failure; for ( i = 0; i < trgt_type_count; i++ ) if ( STRCMP( str, trgt_types[i].id ) ) { unit->trgt_type = i; break; } /* initiative */ if ( !parser_get_int( sub, "initiative", &unit->ini ) ) goto parser_failure; /* spotting */ if ( !parser_get_int( sub, "spotting", &unit->spt ) ) goto parser_failure; /* movement */ if ( !parser_get_int( sub, "movement", &unit->mov ) ) goto parser_failure; /* move type id */ unit->mov_type = 0; if ( !parser_get_value( sub, "move_type", &str, 0 ) ) goto parser_failure; for ( i = 0; i < mov_type_count; i++ ) if ( STRCMP( str, mov_types[i].id ) ) { unit->mov_type = i; break; } /* fuel */ if ( !parser_get_int( sub, "fuel", &unit->fuel ) ) goto parser_failure; /* range */ if ( !parser_get_int( sub, "range", &unit->rng ) ) goto parser_failure; /* ammo */ if ( !parser_get_int( sub, "ammo", &unit->ammo ) ) goto parser_failure; /* attack count */ if ( !parser_get_int( sub, "attack/count", &unit->atk_count ) ) goto parser_failure; /* attack values */ if ( !parser_get_pdata( sub, "attack", &subsub ) ) goto parser_failure; for ( i = 0; i < trgt_type_count; i++ ) if ( !parser_get_int( subsub, trgt_types[i].id, &unit->atks[i] ) ) goto parser_failure; /* ground defense */ if ( !parser_get_int( sub, "def_ground", &unit->def_grnd ) ) goto parser_failure; /* air defense */ if ( !parser_get_int( sub, "def_air", &unit->def_air ) ) goto parser_failure; /* close defense */ if ( !parser_get_int( sub, "def_close", &unit->def_cls ) ) goto parser_failure; /* flags */ if ( parser_get_values( sub, "flags", &flags ) ) { list_reset( flags ); while ( ( flag = list_next( flags ) ) ) unit->flags |= check_flag( flag, fct_units ); } /* set the entrenchment rate */ unit->entr_rate = 2; if ( unit->flags & LOW_ENTR_RATE ) unit->entr_rate = 1; else if ( unit->flags & INFANTRY ) unit->entr_rate = 3; /* time period of usage (0 == cannot be purchased) */ unit->start_year = unit->start_month = unit->last_year = 0; parser_get_int( sub, "start_year", &unit->start_year ); parser_get_int( sub, "start_month", &unit->start_month ); parser_get_int( sub, "last_year", &unit->last_year ); /* cost of unit (0 == cannot be purchased) */ unit->cost = 0; parser_get_int( sub, "cost", &unit->cost ); /* icon */ /* icon id */ if ( !parser_get_int( sub, "icon_id", &icon_id ) ) goto parser_failure; /* icon_type */ unit->icon_type = icon_type; /* get position and size in icons surface */ unit_get_icon_geometry( icon_id, icons, &width, &height, &offset, &color_key ); /* picture is copied from unit_pics first * if picture_type is not ALL_DIRS, picture is a single picture looking to the right; * add a flipped picture looking to the left */ if ( unit->icon_type == UNIT_ICON_ALL_DIRS ) { unit->icon = create_surf( width * 6, height, SDL_SWSURFACE ); unit->icon_w = width; unit->icon_h = height; FULL_DEST( unit->icon ); SOURCE( icons, 0, offset ); blit_surf(); /* remove measure dots */ set_pixel( unit->icon, 0, 0, color_key ); set_pixel( unit->icon, 0, unit->icon_h - 1, color_key ); set_pixel( unit->icon, unit->icon_w - 1, 0, color_key ); /* set transparency */ SDL_SetColorKey( unit->icon, SDL_SRCCOLORKEY, color_key ); } else { /* set size */ unit->icon_w = width; unit->icon_h = height; /* create pic and copy first pic */ unit->icon = create_surf( unit->icon_w * 2, unit->icon_h, SDL_SWSURFACE ); DEST( unit->icon, 0, 0, unit->icon_w, unit->icon_h ); SOURCE( icons, 0, offset ); blit_surf(); /* remove measure dots */ set_pixel( unit->icon, 0, 0, color_key ); set_pixel( unit->icon, 0, unit->icon_h - 1, color_key ); set_pixel( unit->icon, unit->icon_w - 1, 0, color_key ); /* set transparency */ SDL_SetColorKey( unit->icon, SDL_SRCCOLORKEY, color_key ); /* get format info */ byte_size = icons->format->BytesPerPixel; y_offset = 0; pix_buffer = calloc( byte_size, sizeof( char ) ); /* get second by flipping first one */ for ( j = 0; j < unit->icon_h; j++ ) { for ( i = 0; i < unit->icon_w; i++ ) { memcpy( pix_buffer, unit->icon->pixels + y_offset + ( unit->icon_w - 1 - i ) * byte_size, byte_size ); memcpy( unit->icon->pixels + y_offset + unit->icon_w * byte_size + i * byte_size, pix_buffer, byte_size ); } y_offset += unit->icon->pitch; } /* free mem */ free( pix_buffer ); } scale = 1.5; unit->icon_tiny = create_surf( unit->icon->w * ( 1.0 / scale ), unit->icon->h * ( 1.0 / scale ), SDL_SWSURFACE ); unit->icon_tiny_w = unit->icon_w * ( 1.0 / scale ); unit->icon_tiny_h = unit->icon_h * ( 1.0 / scale ); for ( j = 0; j < unit->icon_tiny->h; j++ ) { for ( i = 0; i < unit->icon_tiny->w; i++ ) set_pixel( unit->icon_tiny, i, j, get_pixel( unit->icon, scale * i, scale * j ) ); } /* use color key of 'big' picture */ SDL_SetColorKey( unit->icon_tiny, SDL_SRCCOLORKEY, color_key ); /* read sounds -- well as there are none so far ... */ #ifdef WITH_SOUND if ( parser_get_value( sub, "move_sound", &str, 0 ) ) { // FIXME reloading the same sound more than once is a // big waste of loadtime, runtime, and memory if ( ( unit->wav_move = wav_load( str, 0 ) ) ) unit->wav_alloc = 1; else { unit->wav_move = mov_types[unit->mov_type].wav_move; unit->wav_alloc = 0; } } else { unit->wav_move = mov_types[unit->mov_type].wav_move; unit->wav_alloc = 0; } #endif /* add unit to database */ list_add( unit_lib, unit ); /* absolute evaluation */ unit_lib_eval_unit( unit ); /* LOG */ log_unit_count++; if ( log_unit_count >= log_units_per_dot ) { log_unit_count = 0; if ( log_dot_count < log_dot_limit ) { log_dot_count++; strcpy( log_str, " [ ]" ); for ( i = 0; i < log_dot_count; i++ ) log_str[3 + i] = '*'; write_text( log_font, sdl.screen, log_x, log_y, log_str, 255 ); SDL_UpdateRect( sdl.screen, log_font->last_x, log_font->last_y, log_font->last_width, log_font->last_height ); } } } parser_free( &pd ); /* LOG */ write_line( sdl.screen, log_font, log_str, log_x, &log_y ); refresh_screen( 0, 0, 0, 0 ); /* relative evaluate of units */ list_reset( unit_lib ); while ( ( unit = list_next( unit_lib ) ) ) { if ( unit->flags & FLYING ) best_air = MAXIMUM( unit->eval_score, best_air ); else { if ( unit->flags & SWIMMING ) best_sea = MAXIMUM( unit->eval_score, best_sea ); else best_ground = MAXIMUM( unit->eval_score, best_ground ); } } list_reset( unit_lib ); while ( ( unit = list_next( unit_lib ) ) ) { unit->eval_score *= 1000; if ( unit->flags & FLYING ) unit->eval_score /= best_air; else { if ( unit->flags & SWIMMING ) unit->eval_score /= best_sea; else unit->eval_score /= best_ground; } } free(domain); SDL_FreeSurface(icons); return 1; parser_failure: fprintf( stderr, "%s\n", parser_get_error() ); failure: unit_lib_delete(); if ( pd ) parser_free( &pd ); free(domain); SDL_FreeSurface(icons); return 0; } /* ==================================================================== Delete unit library. ==================================================================== */ void unit_lib_delete( void ) { int i; if ( unit_lib ) { list_delete( unit_lib ); unit_lib = 0; } if ( trgt_types ) { for ( i = 0; i < trgt_type_count; i++ ) { if ( trgt_types[i].id ) free( trgt_types[i].id ); if ( trgt_types[i].name ) free( trgt_types[i].name ); } free( trgt_types ); trgt_types = 0; trgt_type_count = 0; } if ( mov_types ) { for ( i = 0; i < mov_type_count; i++ ) { if ( mov_types[i].id ) free( mov_types[i].id ); if ( mov_types[i].name ) free( mov_types[i].name ); #ifdef WITH_SOUND if ( mov_types[i].wav_move ) wav_free( mov_types[i].wav_move ); #endif } free( mov_types ); mov_types = 0; mov_type_count = 0; } if ( unit_classes ) { for ( i = 0; i < unit_class_count; i++ ) { if ( unit_classes[i].id ) free( unit_classes[i].id ); if ( unit_classes[i].name ) free( unit_classes[i].name ); } free( unit_classes ); unit_classes = 0; unit_class_count = 0; } if ( unit_info_icons ) { if ( unit_info_icons->str ) SDL_FreeSurface( unit_info_icons->str ); if ( unit_info_icons->atk ) SDL_FreeSurface( unit_info_icons->atk ); if ( unit_info_icons->mov ) SDL_FreeSurface( unit_info_icons->mov ); if ( unit_info_icons->guard ) SDL_FreeSurface( unit_info_icons->guard ); free( unit_info_icons ); unit_info_icons = 0; } unit_lib_main_loaded = 0; } /* ==================================================================== Find unit lib entry by id string. ==================================================================== */ Unit_Lib_Entry* unit_lib_find( char *id ) { Unit_Lib_Entry *entry; list_reset( unit_lib ); while ( ( entry = list_next( unit_lib ) ) ) if ( STRCMP( entry->id, id ) ) return entry; return 0; } lgeneral-1.3.1/src/gui.c0000664000175000017500000024722112523604253011761 00000000000000/*************************************************************************** gui.c - description ------------------- begin : Sun Mar 31 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "lgeneral.h" #include "event.h" #include "parser.h" #include "date.h" #include "nation.h" #include "unit.h" #include "file.h" #include "map.h" #include "list.h" #include "nation.h" #include "unit_lib.h" #include "player.h" #include "slot.h" #include "windows.h" #include "purchase_dlg.h" #include "gui.h" #include "scenario.h" #include "campaign.h" #include "localize.h" /* ==================================================================== Externals ==================================================================== */ extern Sdl sdl; extern int hex_w, hex_h; extern Player *cur_player; extern Unit_Info_Icons *unit_info_icons; extern int nation_flag_width, nation_flag_height; extern SDL_Surface *nation_flags; extern Unit *cur_unit; extern Unit_Class *unit_classes; extern int trgt_type_count; extern Trgt_Type *trgt_types; extern Mov_Type *mov_types; extern Scen_Info *scen_info; extern char scen_message[128]; extern Weather_Type *weather_types; extern int turn; extern int deploy_turn; extern int deploy_unit_id; extern Unit *deploy_unit; extern List *avail_units; extern List *left_deploy_units; extern List *players; extern Setup setup; extern int vcond_check_type; extern VCond *vconds; extern int vcond_count; extern Config config; extern int camp_loaded; /* ==================================================================== Locals ==================================================================== */ GUI *gui = 0; int cursor; /* current cursor id */ /* cursor hotspots */ typedef struct { int x,y; } HSpot; HSpot hspots[CURSOR_COUNT] = { {0,0}, {0,0}, {11,11}, {0,0}, {11,11}, {11,11}, {11,11}, {11,11}, {11,11}, {11,11}, {11,11} }; Font *log_font = 0; /* this font is used to display the scenarion load info and is initiated by gui_load() */ int deploy_offset = 0; /* offset in deployment list */ int deploy_border = 10; int deploy_show_count = 7; /* number of displayed units in list */ int unit_list_offset = 0; /* offset in unit_list */ int unit_list_max_offset = 0; int unit_list_graphical_offset=150; /* y-offset for rendering in dialog */ /* ==================================================================== Create a frame surface ==================================================================== */ SDL_Surface *gui_create_frame( int w, int h ) { int i; SDL_Surface *surf = create_surf( w, h, SDL_SWSURFACE ); SDL_FillRect( surf, 0, 0x0 ); /* upper, lower horizontal beam */ for ( i = 0; i < w; i += gui->fr_hori->w ) { DEST( surf, i, 0, gui->fr_hori->w, gui->fr_hori->h ); SOURCE( gui->fr_hori, 0, 0 ); blit_surf(); DEST( surf, i, h - gui->fr_hori->h, gui->fr_hori->w, gui->fr_hori->h ); SOURCE( gui->fr_hori, 0, 0 ); blit_surf(); } /* left, right vertical beam */ for ( i = 0; i < h; i += gui->fr_vert->h ) { DEST( surf, 0, i, gui->fr_vert->w, gui->fr_vert->h ); SOURCE( gui->fr_vert, 0, 0 ); blit_surf(); DEST( surf, w - gui->fr_vert->w, i, gui->fr_vert->w, gui->fr_vert->h ); SOURCE( gui->fr_vert, 0, 0 ); blit_surf(); } /* left upper corner */ DEST( surf, 0, 0, gui->fr_luc->w, gui->fr_luc->h ); SOURCE( gui->fr_luc, 0, 0 ); blit_surf(); /* left lower corner */ DEST( surf, 0, h - gui->fr_llc->h, gui->fr_llc->w, gui->fr_llc->h ); SOURCE( gui->fr_llc, 0, 0 ); blit_surf(); /* right upper corner */ DEST( surf, w - gui->fr_ruc->w, 0, gui->fr_ruc->w, gui->fr_ruc->h ); SOURCE( gui->fr_ruc, 0, 0 ); blit_surf(); /* right lower corner */ DEST( surf, w - gui->fr_rlc->w, h - gui->fr_rlc->h, gui->fr_rlc->w, gui->fr_rlc->h ); SOURCE( gui->fr_rlc, 0, 0 ); blit_surf(); return surf; } /* ==================================================================== Add the units to the deploy window. ==================================================================== */ void gui_add_deploy_units( SDL_Surface *contents ) { int i; Unit *unit; int deploy_border = 10; int sx = deploy_border, sy = deploy_border; SDL_FillRect( contents, 0, 0x0 ); for ( i = 0; i < deploy_show_count; i++ ) { unit = list_get( left_deploy_units, deploy_offset + i ); if ( unit ) { if ( unit == deploy_unit ) { DEST( contents, sx, sy, hex_w, hex_h ); fill_surf( 0xbbbbbb ); } DEST( contents, sx + ( ( hex_w - unit->sel_prop->icon_w ) >> 1 ), sy + ( ( hex_h - unit->sel_prop->icon_h ) >> 1 ), unit->sel_prop->icon_w, unit->sel_prop->icon_h ); SOURCE( unit->sel_prop->icon, 0, 0 ); blit_surf(); sy += hex_h; } } } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== Create the gui and use the graphics in gfx/themes/... ==================================================================== */ int gui_load( const char *dir ) { char str[128]; int i; int sx, sy; char path[256], path2[256], path3[256], path4[256]; gui_delete(); gui = calloc( 1, sizeof( GUI ) ); /* name */ gui->name = strdup( dir ); /* frame tiles */ sprintf( path, "../themes/%s/fr_luc.bmp", dir ); gui->fr_luc = load_surf( path, SDL_SWSURFACE ); SDL_SetColorKey( gui->fr_luc, 0, 0 ); sprintf( path, "../themes/%s/fr_llc.bmp", dir ); gui->fr_llc = load_surf( path, SDL_SWSURFACE ); SDL_SetColorKey( gui->fr_llc, 0, 0 ); sprintf( path, "../themes/%s/fr_ruc.bmp", dir ); gui->fr_ruc = load_surf( path, SDL_SWSURFACE ); SDL_SetColorKey( gui->fr_ruc, 0, 0 ); sprintf( path, "../themes/%s/fr_rlc.bmp", dir ); gui->fr_rlc = load_surf( path, SDL_SWSURFACE ); SDL_SetColorKey( gui->fr_rlc, 0, 0 ); sprintf( path, "../themes/%s/fr_hori.bmp", dir ); gui->fr_hori = load_surf( path, SDL_SWSURFACE ); SDL_SetColorKey( gui->fr_hori, 0, 0 ); sprintf( path, "../themes/%s/fr_vert.bmp", dir ); gui->fr_vert = load_surf( path, SDL_SWSURFACE ); SDL_SetColorKey( gui->fr_vert, 0, 0 ); /* briefing frame and background */ sprintf( path, "../themes/%s/bkgnd.bmp", dir ); if ( ( gui->bkgnd = load_surf( path, SDL_SWSURFACE ) ) == 0 ) goto sdl_failure; sprintf( path, "../themes/%s/brief_frame.bmp", dir ); if ( ( gui->brief_frame = load_surf( path, SDL_SWSURFACE ) ) == 0 ) goto sdl_failure; sprintf( path, "../themes/%s/wallpaper.bmp", dir ); if ( ( gui->wallpaper = load_surf( path, SDL_SWSURFACE ) ) == 0 ) goto sdl_failure; /* folder */ sprintf( path, "../themes/%s/folder.bmp", dir ); if ( ( gui->folder_icon = load_surf( path, SDL_SWSURFACE ) ) == 0 ) goto sdl_failure; /* basic fonts */ sprintf( path, "../themes/%s/font_std.bmp", dir ); gui->font_std = load_font( path ); sprintf( path, "../themes/%s/font_status.bmp", dir ); gui->font_status = load_font( path ); sprintf( path, "../themes/%s/font_error.bmp", dir ); gui->font_error = load_font( path ); sprintf( path, "../themes/%s/font_turn_info.bmp", dir ); gui->font_turn_info = load_font( path ); sprintf( path, "../themes/%s/font_brief.bmp", dir ); gui->font_brief = load_font( path ); /* cursors */ sprintf( path, "../themes/%s/cursors.bmp", dir ); if ( ( gui->cursors = image_create( load_surf( path, SDL_SWSURFACE ), 22, 22, sdl.screen, 0, 0 ) ) == 0 ) goto failure; /* info label */ if ( ( gui->label = label_create( gui_create_frame( 240, 30 ), 160, gui->font_std, sdl.screen, 0, 0 ) ) == 0 ) goto failure; if ( ( gui->label2 = label_create( gui_create_frame( 240, 30 ), 160, gui->font_std, sdl.screen, 0, 0 ) ) == 0 ) goto failure; label_hide( gui->label, 1 ); label_hide( gui->label2, 1 ); /* quick unit infos */ if ( ( gui->qinfo1 = frame_create( gui_create_frame( 240, 60 ), 160, sdl.screen, 0, 0 ) ) == 0 ) goto failure; frame_hide( gui->qinfo1, 1 ); if ( ( gui->qinfo2 = frame_create( gui_create_frame( 240, 60 ), 160, sdl.screen, 0, 0 ) ) == 0 ) goto failure; frame_hide( gui->qinfo2, 1 ); /* full unit info */ if ( ( gui->finfo = frame_create( gui_create_frame( 460, 280 ), 160, sdl.screen, 0, 0 ) ) == 0 ) goto failure; frame_hide( gui->finfo, 1 ); //unit list if ( ( gui->unit_list = frame_create( gui_create_frame( 600, 460 ), 160, sdl.screen, 0, 0 ) ) == 0 ) goto failure; frame_hide( gui->unit_list, 1 ); /* scenario info */ if ( ( gui->sinfo = frame_create( gui_create_frame( 300, 260 ), 160, sdl.screen, 0, 0 ) ) == 0 ) goto failure; frame_hide( gui->sinfo, 1 ); /* confirm window */ sprintf( path2, "../themes/%s/confirm_buttons.bmp", dir ); if ( ( gui->confirm = group_create( gui_create_frame( 200, 80 ), 160, load_surf( path2, SDL_SWSURFACE ), 20, 20, 6, ID_OK, gui->label, sdl.screen, 0, 0 ) ) == 0 ) goto failure; sx = gui->confirm->frame->img->img->w - 60; sy = gui->confirm->frame->img->img->h - 30; group_add_button( gui->confirm, ID_OK, sx, sy, 0, tr("Accept") ); sx += 30; group_add_button( gui->confirm, ID_CANCEL, sx, sy, 0, tr("Cancel") ); group_hide( gui->confirm, 1 ); /* unit buttons */ sprintf( path2, "../themes/%s/unit_buttons.bmp", dir ); if ( ( gui->unit_buttons = group_create( gui_create_frame( 30, 230 ), 160, load_surf( path2, SDL_SWSURFACE ), 24, 24, 7, ID_SUPPLY, gui->label, sdl.screen, 0, 0 ) ) == 0 ) goto failure; sx = 3; sy = 3; group_add_button( gui->unit_buttons, ID_UNDO, sx, sy, 0, tr("Undo Turn [u]") ); sy += 40; group_add_button( gui->unit_buttons, ID_SUPPLY, sx, sy, 0, tr("Supply Unit [s]") ); sy += 30; group_add_button( gui->unit_buttons, ID_EMBARK_AIR, sx, sy, 0, tr("Air Embark") ); sy += 30; group_add_button( gui->unit_buttons, ID_MERGE, sx, sy, 0, tr("Merge Unit [j]") ); sy += 30; group_add_button( gui->unit_buttons, ID_SPLIT, sx, sy, 0, tr("Split Unit [x+1..9]") ); sy += 30; group_add_button( gui->unit_buttons, ID_RENAME, sx, sy, 0, tr("Rename Unit") ); sy += 40; group_add_button( gui->unit_buttons, ID_DISBAND, sx, sy, 0, tr("Disband Unit") ); group_hide( gui->unit_buttons, 1 ); /* split menu */ sprintf( path2, "../themes/%s/strength_buttons.bmp", dir ); if ( ( gui->split_menu = group_create( gui_create_frame( 26, 186 ), 160, load_surf( path2, SDL_SWSURFACE ), 20, 20, 10, ID_SPLIT_1, gui->label, sdl.screen, 0, 0 ) ) == 0 ) goto failure; sx = 3; sy = 3; for ( i = 0; i < 9; i++ ) { sprintf( str, tr("Split Up %d Strength"), i+1 ); group_add_button( gui->split_menu, ID_SPLIT_1 + i, sx, sy, 0, str ); sy += 20; } group_hide( gui->split_menu, 1 ); /* deploy window */ sprintf( path2, "../themes/%s/deploy_buttons.bmp", dir ); if ( ( gui->deploy_window = group_create( gui_create_frame( 80, 440 ), 160, load_surf( path2, SDL_SWSURFACE ), 20, 20, 6, ID_APPLY_DEPLOY, gui->label, sdl.screen, 0, 0 ) ) == 0 ) goto failure; sx = gui->deploy_window->frame->img->img->w - 65; sy = gui->deploy_window->frame->img->img->h - 60; group_add_button( gui->deploy_window, ID_DEPLOY_UP, sx, sy, 0, tr("Scroll Up") ); group_add_button( gui->deploy_window, ID_DEPLOY_DOWN, sx + 30, sy, 0, tr("Scroll Down") ); sy += 30; group_add_button( gui->deploy_window, ID_APPLY_DEPLOY, sx, sy, 0, tr("Apply Deployment") ); group_add_button( gui->deploy_window, ID_CANCEL_DEPLOY, sx + 30, sy, 0, tr("Cancel Deployment") ); group_hide( gui->deploy_window, 1 ); /* edit */ if ( ( gui->edit = edit_create( gui_create_frame( 240, 30 ), 160, gui->font_std, 20, sdl.screen, 0, 0 ) ) == 0 ) goto failure; edit_hide( gui->edit, 1 ); /* base menu */ sprintf( path2, "../themes/%s/menu0_buttons.bmp", dir ); if ( ( gui->base_menu = group_create( gui_create_frame( 30, 280 ), 160, load_surf( path2, SDL_SWSURFACE ), 24, 24, 9, ID_MENU, gui->label, sdl.screen, 0, 0 ) ) == 0 ) goto failure; sx = 3; sy = 3; group_add_button( gui->base_menu, ID_AIR_MODE, sx, sy, 0, tr("Switch Air/Ground [t]") ); sy += 30; group_add_button( gui->base_menu, ID_STRAT_MAP, sx, sy, 0, tr("Strategic Map [o]") ); sy += 30; group_add_button( gui->base_menu, ID_PURCHASE, sx, sy, 0, tr("Request Reinforcements") ); sy += 30; group_add_button( gui->base_menu, ID_DEPLOY, sx, sy, 0, tr("Deploy Reinforcements [d]") ); sy += 30; group_add_button( gui->base_menu, ID_UNIT_LIST, sx, sy, 0, tr("Unit List") ); sy += 30; group_add_button( gui->base_menu, ID_SCEN_INFO, sx, sy, 0, tr("Scenario Info [i]") ); sy += 30; group_add_button( gui->base_menu, ID_CONDITIONS, sx, sy, 0, tr("Victory Conditions") ); sy += 30; group_add_button( gui->base_menu, ID_END_TURN, sx, sy, 0, tr("End Turn [e]") ); sy += 40; group_add_button( gui->base_menu, ID_MENU, sx, sy, 0, tr("Main Menu") ); group_hide( gui->base_menu, 1 ); /* main_menu */ sprintf( path2, "../themes/%s/menu1_buttons.bmp", dir ); if ( ( gui->main_menu = group_create( gui_create_frame( 30, 210 ), 160, load_surf( path2, SDL_SWSURFACE ), 24, 24, 7, ID_SAVE, gui->label, sdl.screen, 0, 0 ) ) == 0 ) goto failure; sx = 3; sy = 3; group_add_button( gui->main_menu, ID_SAVE, sx, sy, 0, tr("Save Game") ); sy += 30; group_add_button( gui->main_menu, ID_LOAD, sx, sy, 0, tr("Load Game") ); sy += 30; group_add_button( gui->main_menu, ID_RESTART, sx, sy, 0, tr("Restart Scenario") ); sy += 30; group_add_button( gui->main_menu, ID_CAMP, sx, sy, 0, tr("Load Campaign") ); sy += 30; group_add_button( gui->main_menu, ID_SCEN, sx, sy, 0, tr("Load Scenario") ); sy += 30; group_add_button( gui->main_menu, ID_OPTIONS, sx, sy, 0, tr("Options") ); sy += 30; group_add_button( gui->main_menu, ID_QUIT, sx, sy, 0, tr("Quit Game") ); group_hide( gui->main_menu, 1 ); /* load menu */ sprintf( path2, "../themes/%s/menu2_buttons.bmp", dir ); if ( ( gui->load_menu = group_create( gui_create_frame( 30, 246+24 ), 160, load_surf( path2, SDL_SWSURFACE ), 24, 24, 11, ID_LOAD_0, gui->label, sdl.screen, 0, 0 ) ) == 0 ) goto failure; sx = 3; sy = 3; for ( i = 0; i < SLOT_COUNT; i++ ) { sprintf( str, tr("Load: %s"), slot_get_name( i ) ); group_add_button( gui->load_menu, ID_LOAD_0 + i, sx, sy, 0, str ); sy += 24; } group_hide( gui->load_menu, 1 ); /* save menu */ sprintf( path2, "../themes/%s/menu2_buttons.bmp", dir ); if ( ( gui->save_menu = group_create( gui_create_frame( 30, 246 ), 160, load_surf( path2, SDL_SWSURFACE ), 24, 24, 10, ID_SAVE_0, gui->label, sdl.screen, 0, 0 ) ) == 0 ) goto failure; sx = 3; sy = 3; for ( i = 0; i < 10; i++ ) { sprintf( str, tr("Save: %s"), slot_get_name( i ) ); group_add_button( gui->save_menu, ID_SAVE_0 + i, sx, sy, 0, str ); sy += 24; } group_hide( gui->save_menu, 1 ); /* options */ sprintf( path2, "../themes/%s/menu3_buttons.bmp", dir ); if ( ( gui->opt_menu = group_create( gui_create_frame( 30, 300 - 60 ), 160, load_surf( path2, SDL_SWSURFACE ), 24, 24, 10, ID_C_SUPPLY, gui->label, sdl.screen, 0, 0 ) ) == 0 ) goto failure; sx = 3; sy = 3; //group_add_button( gui->opt_menu, ID_C_SUPPLY, sx, sy, 1, "Unit Supply" ); sy += 30; //group_add_button( gui->opt_menu, ID_C_WEATHER, sx, sy, 1, "Weather Influence" ); sy += 30; group_add_button( gui->opt_menu, ID_C_GRID, sx, sy, 1, tr("Hex Grid [g]") ); sy += 30; group_add_button( gui->opt_menu, ID_C_SHOW_CPU, sx, sy, 1, tr("Show CPU Turn") ); sy += 30; group_add_button( gui->opt_menu, ID_C_SHOW_STRENGTH, sx, sy, 1, tr("Show Unit Strength [.]") ); sy += 30; group_add_button( gui->opt_menu, ID_C_SOUND, sx, sy, 1, tr("Sound") ); sy += 30; group_add_button( gui->opt_menu, ID_C_SOUND_INC, sx, sy, 0, tr("Sound Volume Up") ); sy += 30; group_add_button( gui->opt_menu, ID_C_SOUND_DEC, sx, sy, 0, tr("Sound Volume Down") ); sy += 30; group_add_button( gui->opt_menu, ID_C_MUSIC, sx, sy, 1, tr("Music") ); sy += 30; group_add_button( gui->opt_menu, ID_C_VMODE, sx, sy, 0, tr("Video Mode [v]") ); group_hide( gui->opt_menu, 1 ); /* video mode dialog */ sprintf( path, "../themes/%s/scroll_buttons.bmp", dir ); sprintf( path2, "../themes/%s/confirm_buttons.bmp", dir ); gui->vmode_dlg = select_dlg_create( gui_create_frame( 210, 120 ), load_surf( path, SDL_SWSURFACE ), 24, 24, 8, 190, 12, lbox_render_text, gui_create_frame( 210, 30 ), load_surf( path2, SDL_SWSURFACE ), 20, 20, ID_VMODE_OK, sdl.screen, 0, 0); select_dlg_hide( gui->vmode_dlg, 1 ); /* scenario dialogue */ sprintf( path, "../themes/%s/scen_dlg_buttons.bmp", dir ); sprintf( path2, "../themes/%s/scroll_buttons.bmp", dir ); gui->scen_dlg = fdlg_create( gui_create_frame( 120, 240 ), 160, 10, load_surf( path2, SDL_SWSURFACE), 24, 24, 20, gui_create_frame( 220, 240), load_surf( path, SDL_SWSURFACE ), 24, 24, ID_SCEN_OK, gui->label, gui_render_file_name, gui_render_scen_info, sdl.screen, 0, 0 ); fdlg_add_button( gui->scen_dlg, ID_SCEN_SETUP, 0, tr("Player Setup") ); fdlg_hide( gui->scen_dlg, 1 ); /* campaign dialogue */ sprintf( path, "../themes/%s/confirm_buttons.bmp", dir ); sprintf( path2, "../themes/%s/scroll_buttons.bmp", dir ); gui->camp_dlg = fdlg_create( gui_create_frame( 120, 240 ), 160, 10, load_surf( path2, SDL_SWSURFACE), 24, 24, 20, gui_create_frame( 220, 240), load_surf( path, SDL_SWSURFACE ), 20, 20, ID_CAMP_OK, gui->label, gui_render_file_name, gui_render_camp_info, sdl.screen, 0, 0 ); fdlg_hide( gui->camp_dlg, 1 ); /* setup window */ sprintf( path, "../themes/%s/scroll_buttons.bmp", dir ); sprintf( path2, "../themes/%s/ctrl_buttons.bmp", dir ); sprintf( path3, "../themes/%s/module_buttons.bmp", dir ); sprintf( path4, "../themes/%s/setup_confirm_buttons.bmp", dir ); gui->setup = sdlg_create( gui_create_frame( 120, 120 ), load_surf( path, SDL_SWSURFACE ), 24, 24, 20, gui_create_frame( 220, 40 ), load_surf( path2, SDL_SWSURFACE ), 24, 24, ID_SETUP_CTRL, gui_create_frame( 220, 40 ), load_surf( path3, SDL_SWSURFACE ), 24, 24, ID_SETUP_MODULE, gui_create_frame( 220, 40 ), load_surf( path4, SDL_SWSURFACE ), 24, 24, ID_SETUP_OK, gui->label, gui_render_player_name, gui_handle_player_select, sdl.screen, 0, 0 ); sdlg_hide( gui->setup, 1 ); /* module dialogue */ sprintf( path, "../themes/%s/confirm_buttons.bmp", dir ); sprintf( path2, "../themes/%s/scroll_buttons.bmp", dir ); gui->module_dlg = fdlg_create( gui_create_frame( 120, 240 ), 160, 10, load_surf( path2, SDL_SWSURFACE), 24, 24, 20, gui_create_frame( 220, 240), load_surf( path, SDL_SWSURFACE ), 20, 20, ID_MODULE_OK, gui->label, gui_render_file_name, gui_render_module_info, sdl.screen, 0, 0 ); fdlg_hide( gui->module_dlg, 1 ); /* purchase dialogue */ sprintf( path2, "../themes/%s", dir ); if ( (gui->purchase_dlg = purchase_dlg_create( path2 )) == NULL) goto failure; purchase_dlg_hide( gui->purchase_dlg, 1 ); /* adjust positions */ gui_adjust(); /* sounds */ #ifdef WITH_SOUND sprintf( path, "../themes/%s/click.wav", dir ); gui->wav_click = wav_load( path, 1 ); sprintf( path, "../themes/%s/edit.wav", dir ); gui->wav_edit = wav_load( path, 1 ); #endif log_font = gui->font_std; return 1; sdl_failure: fprintf( stderr, "SDL says: %s\n", SDL_GetError() ); failure: gui_delete(); return 0; } void gui_delete() { if ( gui ) { if ( gui->name ) free( gui->name ); free_surf( &gui->bkgnd ); free_surf( &gui->brief_frame ); free_surf( &gui->wallpaper ); free_surf( &gui->fr_luc ); free_surf( &gui->fr_llc ); free_surf( &gui->fr_ruc ); free_surf( &gui->fr_rlc ); free_surf( &gui->fr_hori ); free_surf( &gui->fr_vert ); free_surf( &gui->folder_icon ); free_font( &gui->font_std ); free_font( &gui->font_status ); free_font( &gui->font_error ); free_font( &gui->font_turn_info ); free_font( &gui->font_brief ); image_delete( &gui->cursors ); label_delete( &gui->label ); label_delete( &gui->label2 ); frame_delete( &gui->qinfo1 ); frame_delete( &gui->qinfo2 ); frame_delete( &gui->finfo ); frame_delete( &gui->unit_list ); frame_delete( &gui->sinfo ); group_delete( &gui->confirm ); group_delete( &gui->unit_buttons ); group_delete( &gui->split_menu ); group_delete( &gui->deploy_window ); group_delete( &gui->base_menu ); group_delete( &gui->main_menu ); group_delete( &gui->load_menu ); group_delete( &gui->save_menu ); group_delete( &gui->opt_menu ); select_dlg_delete( &gui->vmode_dlg ); fdlg_delete( &gui->scen_dlg ); fdlg_delete( &gui->camp_dlg ); sdlg_delete( &gui->setup ); fdlg_delete( &gui->module_dlg ); edit_delete( &gui->edit ); purchase_dlg_delete( &gui->purchase_dlg ); #ifdef WITH_SOUND wav_free( gui->wav_click ); wav_free( gui->wav_edit ); #endif free( gui ); gui = 0; } } /* ==================================================================== Move all windows to there proper position according to screen's measurements. ==================================================================== */ void gui_adjust() { int label_top = 10; int label_x = (sdl.screen->w - gui->label->frame->img->img->w ) >> 1; /* info labels */ label_move( gui->label, label_x, label_top ); label_top += gui->label->frame->img->img->h + 5; label_move( gui->label2, label_x, label_top ); /* unit infos */ frame_move( gui->qinfo1, 10, sdl.screen->h - 10 - gui->qinfo1->img->img->h ); frame_move( gui->qinfo2, 10, sdl.screen->h - 20 - gui->qinfo1->img->img->h * 2 ); /* full info */ frame_move( gui->finfo, ( sdl.screen->w - gui->finfo->img->img->w ) >> 1, ( sdl.screen->h - gui->finfo->img->img->h ) >> 1 ); frame_move( gui->unit_list, ( sdl.screen->w - gui->unit_list->img->img->w ) >> 1, ( sdl.screen->h - gui->unit_list->img->img->h ) >> 1 ); /* basic menu */ group_move( gui->base_menu, sdl.screen->w - 10 - gui->base_menu->frame->img->img->w, sdl.screen->h - 10 - gui->base_menu->frame->img->img->h ); /* scenario info */ frame_move( gui->sinfo, ( sdl.screen->w - gui->sinfo->img->img->w ) >> 1, ( sdl.screen->h - gui->sinfo->img->img->h ) >> 1 ); /* confirm window */ group_move( gui->confirm, ( sdl.screen->w - gui->confirm->frame->img->img->w ) >> 1, ( sdl.screen->h - gui->confirm->frame->img->img->h ) >> 1 ); /* deploy window */ group_move( gui->deploy_window, ( sdl.screen->w - gui->deploy_window->frame->img->img->w ) - 10, ( sdl.screen->h - gui->deploy_window->frame->img->img->h ) / 2 ); /* edit */ edit_move( gui->edit, (sdl.screen->w - gui->edit->label->frame->img->img->w ) >> 1, 50 ); /* select dialogs */ select_dlg_move( gui->vmode_dlg, (sdl.screen->w - select_dlg_get_width(gui->vmode_dlg)) /2, (sdl.screen->h - select_dlg_get_height(gui->vmode_dlg)) /2); /* scenario dialogue */ fdlg_move( gui->scen_dlg, ( sdl.screen->w - ( gui->scen_dlg->group->frame->img->img->w + gui->scen_dlg->lbox->group->frame->img->img->w ) ) / 2, ( sdl.screen->h - gui->scen_dlg->group->frame->img->img->h ) / 2 ); /* campaign dialogue */ fdlg_move( gui->camp_dlg, ( sdl.screen->w - ( gui->camp_dlg->group->frame->img->img->w + gui->camp_dlg->lbox->group->frame->img->img->w ) ) / 2, ( sdl.screen->h - gui->camp_dlg->group->frame->img->img->h ) / 2 ); /* scenario setup */ sdlg_move( gui->setup, ( sdl.screen->w - ( gui->setup->list->group->frame->img->img->w + gui->setup->ctrl->frame->img->img->w ) ) / 2, ( sdl.screen->h - ( gui->setup->list->group->frame->img->img->h ) ) / 2 ); /* module dialogue */ fdlg_move( gui->module_dlg, ( sdl.screen->w - ( gui->module_dlg->group->frame->img->img->w + gui->module_dlg->lbox->group->frame->img->img->w ) ) / 2, ( sdl.screen->h - gui->module_dlg->group->frame->img->img->h ) / 2 ); /* purchase dialogue */ purchase_dlg_move(gui->purchase_dlg, (sdl.screen->w - purchase_dlg_get_width(gui->purchase_dlg)) /2, (sdl.screen->h - purchase_dlg_get_height(gui->purchase_dlg)) /2); } /* ==================================================================== Change all GUI graphics to the one found in gfx/theme/path. ==================================================================== */ int gui_change( const char *path ); /* ==================================================================== Hide/draw from/to screen ==================================================================== */ void gui_get_bkgnds() { label_get_bkgnd( gui->label ); label_get_bkgnd( gui->label2 ); frame_get_bkgnd( gui->qinfo1 ); frame_get_bkgnd( gui->qinfo2 ); frame_get_bkgnd( gui->finfo ); frame_get_bkgnd( gui->unit_list ); frame_get_bkgnd( gui->sinfo ); group_get_bkgnd( gui->base_menu ); group_get_bkgnd( gui->main_menu ); group_get_bkgnd( gui->load_menu ); group_get_bkgnd( gui->save_menu ); group_get_bkgnd( gui->opt_menu ); group_get_bkgnd( gui->unit_buttons); group_get_bkgnd( gui->split_menu ); edit_get_bkgnd( gui->edit ); group_get_bkgnd( gui->confirm ); group_get_bkgnd( gui->deploy_window ); select_dlg_get_bkgnd( gui->vmode_dlg ); fdlg_get_bkgnd( gui->scen_dlg ); fdlg_get_bkgnd( gui->camp_dlg ); fdlg_get_bkgnd( gui->module_dlg ); sdlg_get_bkgnd( gui->setup ); purchase_dlg_get_bkgnd( gui->purchase_dlg ); image_get_bkgnd( gui->cursors ); } void gui_draw_bkgnds() { label_draw_bkgnd( gui->label ); label_draw_bkgnd( gui->label2 ); frame_draw_bkgnd( gui->qinfo1 ); frame_draw_bkgnd( gui->qinfo2 ); frame_draw_bkgnd( gui->finfo ); frame_draw_bkgnd( gui->unit_list ); frame_draw_bkgnd( gui->sinfo ); group_draw_bkgnd( gui->base_menu ); group_draw_bkgnd( gui->main_menu ); group_draw_bkgnd( gui->load_menu ); group_draw_bkgnd( gui->save_menu ); group_draw_bkgnd( gui->opt_menu ); group_draw_bkgnd( gui->unit_buttons); group_draw_bkgnd( gui->split_menu ); edit_draw_bkgnd( gui->edit ); group_draw_bkgnd( gui->confirm ); group_draw_bkgnd( gui->deploy_window ); select_dlg_draw_bkgnd( gui->vmode_dlg ); fdlg_draw_bkgnd( gui->scen_dlg ); fdlg_draw_bkgnd( gui->camp_dlg ); fdlg_draw_bkgnd( gui->module_dlg ); sdlg_draw_bkgnd( gui->setup ); purchase_dlg_draw_bkgnd( gui->purchase_dlg ); image_draw_bkgnd( gui->cursors ); } void gui_draw() { label_draw( gui->label ); label_draw( gui->label2 ); frame_draw( gui->qinfo1 ); frame_draw( gui->qinfo2 ); frame_draw( gui->finfo ); frame_draw( gui->unit_list ); frame_draw( gui->sinfo ); group_draw( gui->base_menu ); group_draw( gui->main_menu ); group_draw( gui->load_menu ); group_draw( gui->save_menu ); group_draw( gui->opt_menu ); group_draw( gui->unit_buttons); group_draw( gui->split_menu ); edit_draw( gui->edit ); group_draw( gui->confirm ); group_draw( gui->deploy_window ); select_dlg_draw( gui->vmode_dlg ); fdlg_draw( gui->scen_dlg ); fdlg_draw( gui->camp_dlg ); fdlg_draw( gui->module_dlg ); sdlg_draw( gui->setup ); purchase_dlg_draw( gui->purchase_dlg ); image_draw( gui->cursors ); } /* ==================================================================== Move cursor. ==================================================================== */ void gui_move_cursor( int cx, int cy ) { if ( cx - hspots[cursor].x < 0 ) cx = hspots[cursor].x; if ( cy - hspots[cursor].y < 0 ) cy = hspots[cursor].y; if ( cx + hspots[cursor].x >= sdl.screen->w ) cx = sdl.screen->w - hspots[cursor].x; if ( cy + hspots[cursor].y >= sdl.screen->h ) cy = sdl.screen->h - hspots[cursor].y; /* if ( cx - hspots[cursor].x + gui->cursors->bkgnd->surf_rect.w >= sdl.screen->w ) cx = sdl.screen->w - gui->cursors->bkgnd->surf_rect.w + hspots[cursor].x; if ( cy - hspots[cursor].y + gui->cursors->bkgnd->surf_rect.h >= sdl.screen->h ) cy = sdl.screen->h - gui->cursors->bkgnd->surf_rect.h + hspots[cursor].y;*/ image_move( gui->cursors, cx - hspots[cursor].x, cy - hspots[cursor].y ); } /* ==================================================================== Set cursor. ==================================================================== */ void gui_set_cursor( int type ) { int move = 0; int x = -1, y; if ( type >= CURSOR_COUNT ) type = 0; if ( cursor != type ) { x = gui->cursors->bkgnd->surf_rect.x + hspots[cursor].x; y = gui->cursors->bkgnd->surf_rect.y + hspots[cursor].y; move = 1; } cursor = type; if ( move ) gui_move_cursor( x, y ); image_set_region( gui->cursors, 22 * type, 0, 22, 22 ); } /* ==================================================================== Handle events. ==================================================================== */ int gui_handle_motion( int cx, int cy ) { int ret = 1; if ( !group_handle_motion( gui->base_menu, cx, cy ) ) if ( !group_handle_motion( gui->main_menu, cx, cy ) ) if ( !group_handle_motion( gui->load_menu, cx, cy ) ) if ( !group_handle_motion( gui->save_menu, cx, cy ) ) if ( !group_handle_motion( gui->opt_menu, cx, cy ) ) if ( !group_handle_motion( gui->unit_buttons, cx, cy ) ) if ( !group_handle_motion( gui->split_menu, cx, cy ) ) if ( !group_handle_motion( gui->confirm, cx, cy ) ) if ( !select_dlg_handle_motion( gui->vmode_dlg, cx, cy ) ) if ( !fdlg_handle_motion( gui->scen_dlg, cx, cy ) ) if ( !fdlg_handle_motion( gui->camp_dlg, cx, cy ) ) if ( !fdlg_handle_motion( gui->module_dlg, cx, cy ) ) if ( !sdlg_handle_motion( gui->setup, cx, cy ) ) if ( !purchase_dlg_handle_motion( gui->purchase_dlg, cx, cy ) ) ret = 0; /* cursor */ gui_move_cursor( cx, cy ); return ret; } /** If true is returned, @button has to be set for processing upstream. */ int gui_handle_button( int button_id, int cx, int cy, Button **button ) { int ret = 1; *button = 0; if ( !group_handle_button( gui->base_menu, button_id, cx, cy, button ) ) if ( !group_handle_button( gui->main_menu, button_id, cx, cy, button ) ) if ( !group_handle_button( gui->load_menu, button_id, cx, cy, button ) ) if ( !group_handle_button( gui->save_menu, button_id, cx, cy, button ) ) if ( !group_handle_button( gui->opt_menu, button_id, cx, cy, button ) ) if ( !group_handle_button( gui->unit_buttons, button_id, cx, cy, button ) ) if ( !group_handle_button( gui->split_menu, button_id, cx, cy, button ) ) if ( !group_handle_button( gui->confirm, button_id, cx, cy, button ) ) if ( !group_handle_button( gui->deploy_window, button_id, cx, cy, button ) ) if ( !select_dlg_handle_button( gui->vmode_dlg, button_id, cx, cy, button ) ) if ( !fdlg_handle_button( gui->scen_dlg, button_id, cx, cy, button ) ) if ( !fdlg_handle_button( gui->camp_dlg, button_id, cx, cy, button ) ) if ( !fdlg_handle_button( gui->module_dlg, button_id, cx, cy, button ) ) if ( !sdlg_handle_button( gui->setup, button_id, cx, cy, button ) ) if ( !purchase_dlg_handle_button( gui->purchase_dlg, button_id, cx, cy, button ) ) ret = 0; return ret; } void gui_update( int ms ) { } /* ==================================================================== Set quick info frame with information on this unit and set hide = 0. ==================================================================== */ void gui_show_quick_info( Frame *qinfo, Unit *unit ) { int i, len; char str[64]; /* clear */ SDL_FillRect( qinfo->contents, 0, 0x0 ); /* icon */ DEST( qinfo->contents, 6 + ( ( hex_w - unit->prop.icon_w ) >> 1 ), ( ( qinfo->contents->h - unit->prop.icon_h ) >> 1 ), unit->prop.icon_w, unit->prop.icon_h ); SOURCE( unit->prop.icon, 0, 0 ); blit_surf(); DEST( qinfo->contents, 6 + ( ( hex_w - unit_info_icons->str_w ) >> 1 ), ( ( qinfo->contents->h - unit->prop.icon_h ) >> 1 ) + unit->prop.icon_h, unit_info_icons->str_w, unit_info_icons->str_h ); SOURCE( unit_info_icons->str, 0, ( unit->str + 14 ) * unit_info_icons->str_h ) blit_surf(); /* nation flag */ DEST( qinfo->contents, 6, 6, nation_flag_width, nation_flag_height ); SOURCE( nation_flags, 0, unit->nation->flag_offset ); blit_surf(); /* core unit flag */ if (camp_loaded) { gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_BOTTOM; write_text( gui->font_std, qinfo->contents, 6, qinfo->contents->h - 6, (unit->core==1)?"C":"A", 255 ); } /* name */ gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_TOP; write_text( gui->font_std, qinfo->contents, 12 + hex_w, 10, unit->name, 255 ); write_text( gui->font_std, qinfo->contents, 12 + hex_w, 22, unit->prop.name, 255 ); /* status */ gui->font_status->align = ALIGN_X_LEFT | ALIGN_Y_TOP; if ( cur_player && !player_is_ally( unit->player, cur_player ) ) len = sprintf( str, GS_AMMO "? " GS_FUEL "? " GS_ENTR "%i " GS_NOEXP GS_NOEXP GS_NOEXP GS_NOEXP GS_NOEXP " ", unit->entr ); else if ( unit_check_fuel_usage( unit ) ) len = sprintf( str, GS_AMMO "%i " GS_FUEL "%i " GS_ENTR "%i " GS_NOEXP GS_NOEXP GS_NOEXP GS_NOEXP GS_NOEXP " ", unit->cur_ammo, unit->cur_fuel, unit->entr ); else len = sprintf( str, GS_AMMO "%i " GS_FUEL "- " GS_ENTR "%i " GS_NOEXP GS_NOEXP GS_NOEXP GS_NOEXP GS_NOEXP " ", unit->cur_ammo, unit->entr ); for ( i = 0; i < unit->exp_level; i++ ) str[len - 6 + i] = (char)CharExp; str[len - 6 + i] = (char)(CharExpGrowth + (unit->exp % 100 / 20)); write_text( gui->font_status, qinfo->contents, 12 + hex_w, 36, str, 255 ); /* show */ frame_apply( qinfo ); frame_hide( qinfo, 0 ); } /* ==================================================================== Draw the expected losses to the label. ==================================================================== */ void gui_show_expected_losses( Unit *att, Unit *def, int att_dam, int def_dam ) { char str[128]; SDL_Surface *contents = gui->label->frame->contents; SDL_FillRect( contents, 0, 0x0 ); /* attacker flag */ DEST( contents, 10, ( contents->h - nation_flag_height ) >> 1, nation_flag_width, nation_flag_height ); SOURCE( nation_flags, 0, att->nation->flag_offset ); blit_surf(); /* defender flag */ DEST( contents, contents->w - 10 - nation_flag_width, ( contents->h - nation_flag_height ) >> 1, nation_flag_width, nation_flag_height ); SOURCE( nation_flags, 0, def->nation->flag_offset ); blit_surf(); /* kills */ sprintf( str, tr("%i CASUALTIES %i"), att_dam, def_dam ); gui->font_error->align = ALIGN_X_CENTER | ALIGN_Y_CENTER; write_text( gui->font_error, contents, contents->w >> 1, contents->h >> 1, str, 255 ); /* show */ frame_apply( gui->label->frame ); label_hide( gui->label, 0 ); } /* ==================================================================== Draw the actual losses to the label. ==================================================================== */ void gui_show_actual_losses( Unit *att, Unit *def, int att_suppr, int att_dam, int def_suppr, int def_dam ) { char str[128]; SDL_Surface *contents = gui->label->frame->contents; SDL_FillRect( contents, 0, 0x0 ); /* attacker flag */ DEST( contents, 10, ( contents->h - nation_flag_height ) >> 1, nation_flag_width, nation_flag_height ); SOURCE( nation_flags, 0, att->nation->flag_offset ); blit_surf(); /* defender flag */ DEST( contents, contents->w - 10 - nation_flag_width, ( contents->h - nation_flag_height ) >> 1, nation_flag_width, nation_flag_height ); SOURCE( nation_flags, 0, def->nation->flag_offset ); blit_surf(); /* kills */ sprintf( str, tr("%i CASUALTIES %i"), att_dam, def_dam ); gui->font_std->align = ALIGN_X_CENTER | ALIGN_Y_CENTER; write_text( gui->font_std, contents, contents->w >> 1, contents->h >> 1, str, 255 ); /* show */ frame_apply( gui->label->frame ); label_hide( gui->label, 0 ); /* suppression */ if (att_suppr>0||def_suppr>0) { contents = gui->label2->frame->contents; SDL_FillRect( contents, 0, 0x0 ); /* attacker flag */ DEST( contents, 10, ( contents->h - nation_flag_height ) >> 1, nation_flag_width, nation_flag_height ); SOURCE( nation_flags, 0, att->nation->flag_offset ); blit_surf(); /* defender flag */ DEST( contents, contents->w - 10 - nation_flag_width, ( contents->h - nation_flag_height ) >> 1, nation_flag_width, nation_flag_height ); SOURCE( nation_flags, 0, def->nation->flag_offset ); blit_surf(); /* kills */ sprintf( str, tr("%i SURPRESSED %i"), att_suppr, def_suppr ); gui->font_std->align = ALIGN_X_CENTER | ALIGN_Y_CENTER; write_text( gui->font_std, contents, contents->w >> 1, contents->h >> 1, str, 255 ); /* show */ frame_apply( gui->label2->frame ); label_hide( gui->label2, 0 ); } } /* ==================================================================== Show full info window. ==================================================================== */ void gui_show_full_info( Unit *unit ) { char str[128]; int border = 10, offset = 150; int x, y, i; SDL_Surface *contents = gui->finfo->contents; gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_TOP; /* clear */ SDL_FillRect( contents, 0, 0x0 ); /* icon */ x = border + 20; y = border; DEST( contents, x + ( ( hex_w - unit->prop.icon_w ) >> 1 ), y + ( ( ( hex_h - unit->prop.icon_h ) >> 1 ) ), unit->prop.icon_w, unit->prop.icon_h ); SOURCE( unit->prop.icon, 0, 0 ); blit_surf(); /* nation flag */ DEST( contents, x, y, nation_flag_width, nation_flag_height ); SOURCE( nation_flags, 0, unit->nation->flag_offset ); blit_surf(); /* name and type */ x = border; y = border + hex_h; write_line( contents, gui->font_std, unit->name, x, &y ); if (camp_loaded) { if (unit->core) write_line( contents, gui->font_std, tr("Core Unit"), x, &y ); else write_line( contents, gui->font_std, tr("Auxiliary Unit"), x, &y ); } write_line( contents, gui->font_std, unit->prop.name, x, &y ); if (!camp_loaded) y += 10; write_line( contents, gui->font_std, unit_classes[unit->prop.class].name, x, &y ); //y += 10; sprintf( str, tr("%s Movement"), mov_types[unit->prop.mov_type].name ); write_line( contents, gui->font_std, str, x, &y ); sprintf( str, tr("%s Target"), trgt_types[unit->prop.trgt_type].name ); write_line( contents, gui->font_std, str, x, &y ); /* ammo, fuel, spot, mov, ini, range */ x = border + hex_w + 90; y = border; if ( unit->prop.ammo == 0 ) sprintf( str, tr("Ammo: N.A.") ); else if ( cur_player == 0 || player_is_ally( cur_player, unit->player ) ) sprintf( str, tr("Ammo: %02i/%02i"), unit->cur_ammo, unit->prop.ammo ); else sprintf( str, tr("Ammo: %02i"), unit->prop.ammo ); write_line( contents, gui->font_std, str, x, &y ); if ( unit->prop.fuel == 0 ) sprintf( str, tr("Fuel: N.A.") ); else if ( cur_player == 0 || player_is_ally( cur_player, unit->player ) ) sprintf( str, tr("Fuel: %2i/%2i"), unit->cur_fuel, unit->prop.fuel ); else sprintf( str, tr("Fuel: %2i"), unit->prop.fuel ); write_line( contents, gui->font_std, str, x, &y ); y += 10; sprintf( str, tr("Spotting: %2i"), unit->prop.spt ); write_line( contents, gui->font_std, str, x, &y ); sprintf( str, tr("Movement: %2i"), unit->prop.mov ); write_line( contents, gui->font_std, str, x, &y ); sprintf( str, tr("Initiative: %2i"), unit->prop.ini ); write_line( contents, gui->font_std, str, x, &y ); sprintf( str, tr("Range: %2i"), unit->prop.rng ); write_line( contents, gui->font_std, str, x, &y ); y += 10; sprintf( str, tr("Experience: %3i"), unit->exp ); write_line( contents, gui->font_std, str, x, &y ); sprintf( str, tr("Entrenchment: %i"), unit->entr ); write_line( contents, gui->font_std, str, x, &y ); /* attack/defense */ x = border + hex_w + 90 + 140; y = border; for ( i = 0; i < trgt_type_count; i++ ) { if ( unit->prop.atks[i] < 0 ) sprintf( str, tr("%6s Attack:[%2i]"), trgt_types[i].name, -unit->prop.atks[i] ); else sprintf( str, tr("%6s Attack: %2i"), trgt_types[i].name, unit->prop.atks[i] ); write_line( contents, gui->font_std, str, x, &y ); } y += 10; sprintf( str, tr("Ground Defense: %2i"), unit->prop.def_grnd ); write_line( contents, gui->font_std, str, x, &y ); sprintf( str, tr("Air Defense: %2i"), unit->prop.def_air ); write_line( contents, gui->font_std, str, x, &y ); sprintf( str, tr("Close Defense: %2i"), unit->prop.def_cls ); write_line( contents, gui->font_std, str, x, &y ); y += 10; sprintf( str, tr("Suppression: %2i"), unit->turn_suppr ); write_line( contents, gui->font_std, str, x, &y ); /* transporter */ if ( unit->trsp_prop.id != 0 ) { /* icon */ x = border + 20; y = border + offset; DEST( contents, x + ( ( hex_w - unit->trsp_prop.icon_w ) >> 1 ), y + ( ( ( hex_h - unit->trsp_prop.icon_h ) >> 1 ) ), unit->trsp_prop.icon_w, unit->trsp_prop.icon_h ); SOURCE( unit->trsp_prop.icon, 0, 0 ); blit_surf(); /* name & type */ x = border; y = border + hex_h + offset; write_line( contents, gui->font_std, unit->trsp_prop.name, x, &y ); write_line( contents, gui->font_std, unit_classes[unit->trsp_prop.class].name, x, &y ); y += 6; sprintf( str, tr("%s Movement"), mov_types[unit->trsp_prop.mov_type].name ); write_line( contents, gui->font_std, str, x, &y ); sprintf( str, tr("%s Target"), trgt_types[unit->trsp_prop.trgt_type].name ); write_line( contents, gui->font_std, str, x, &y ); /* spt, mov, ini, rng */ x = border + hex_w + 90; y = border + offset; sprintf( str, tr("Spotting: %2i"), unit->trsp_prop.spt ); write_line( contents, gui->font_std, str, x, &y ); sprintf( str, tr("Movement: %2i"), unit->trsp_prop.mov ); write_line( contents, gui->font_std, str, x, &y ); sprintf( str, tr("Initiative: %2i"), unit->trsp_prop.ini ); write_line( contents, gui->font_std, str, x, &y ); sprintf( str, tr("Range: %2i"), unit->trsp_prop.rng ); write_line( contents, gui->font_std, str, x, &y ); /* attack & defense */ x = border + hex_w + 90 + 140; y = border + offset; for ( i = 0; i < trgt_type_count; i++ ) { sprintf( str, tr("%6s Attack: %2i"), trgt_types[i].name, unit->trsp_prop.atks[i] ); write_line( contents, gui->font_std, str, x, &y ); } y += 10; sprintf( str, tr("Ground Defense: %2i"), unit->trsp_prop.def_grnd ); write_line( contents, gui->font_std, str, x, &y ); sprintf( str, tr("Air Defense: %2i"), unit->trsp_prop.def_air ); write_line( contents, gui->font_std, str, x, &y ); sprintf( str, tr("Close Defense: %2i"), unit->trsp_prop.def_cls ); write_line( contents, gui->font_std, str, x, &y ); } /* show */ frame_apply( gui->finfo ); frame_hide( gui->finfo, 0 ); } /* ==================================================================== Show scenario info window. ==================================================================== */ void gui_show_scen_info() { Text *text; char str[128]; int border = 10, i; int x = border, y = border; SDL_Surface *contents = gui->sinfo->contents; gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_TOP; SDL_FillRect( contents, 0, 0x0 ); /* title */ write_line( contents, gui->font_std, scen_info->name, x, &y ); y += 10; /* desc */ text = create_text( gui->font_std, scen_info->desc, contents->w - border*2 ); for ( i = 0; i < text->count; i++ ) write_line( contents, gui->font_std, text->lines[i], x, &y ); delete_text( text ); /* turn and date */ y += 10; scen_get_date( str ); write_line( contents, gui->font_std, str, x, &y ); if ( turn + 1 < scen_info->turn_limit ) sprintf( str, tr("Turns Left: %i"), scen_info->turn_limit - turn ); else sprintf( str, tr("Turns Left: Last Turn") ); write_line( contents, gui->font_std, str, x, &y ); /* scenario result at the end */ if ( turn + 1 > scen_info->turn_limit ) { y += 10; write_line( contents, gui->font_std, tr("Result: "), x, &y ); text = create_text( gui->font_std, scen_message, contents->w - border*2 ); for ( i = 0; i < text->count; i++ ) write_line( contents, gui->font_std, text->lines[i], x, &y ); delete_text( text ); } /* players */ if ( cur_player ) { y += 10; sprintf( str, tr("Current Player: %s"), cur_player->name ); write_line( contents, gui->font_std, str, x, &y ); if ( players_test_next() ) { sprintf( str, tr("Next Player: %s"), players_test_next()->name ); write_line( contents, gui->font_std, str, x, &y ); } } /* weather */ y += 10; sprintf( str, tr("Weather: %s"), (( turn < scen_info->turn_limit ) ? weather_types[scen_get_weather()].name : tr("n/a"))); write_line( contents, gui->font_std, str, x, &y ); sprintf( str, tr("Forecast: %s"), ((turn+1 < scen_info->turn_limit ) ? weather_types[scen_get_forecast()].name : tr("n/a")) ); write_line( contents, gui->font_std, str, x, &y ); /* show */ frame_apply( gui->sinfo ); frame_hide( gui->sinfo, 0 ); } /* ==================================================================== Show explicit victory conditions and use scenario info window for this. ==================================================================== */ void gui_render_subcond( VSubCond *cond, char *str ) { switch( cond->type ) { case VSUBCOND_TURNS_LEFT: sprintf( str, tr("%i turns remaining"), cond->count ); break; case VSUBCOND_CTRL_ALL_HEXES: sprintf( str, tr("control all victory hexes") ); break; case VSUBCOND_CTRL_HEX: sprintf( str, tr("control hex %i,%i"), cond->x, cond->y ); break; case VSUBCOND_CTRL_HEX_NUM: sprintf( str, tr("control at least %i vic hexes"), cond->count ); break; case VSUBCOND_UNITS_KILLED: sprintf( str, tr("kill units with tag '%s'"), cond->tag ); break; case VSUBCOND_UNITS_SAVED: sprintf( str, tr("save units with tag '%s'"), cond->tag ); break; } } void gui_show_conds() { char str[128]; int border = 10, i, j; int x = border, y = border; SDL_Surface *contents = gui->sinfo->contents; gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_TOP; SDL_FillRect( contents, 0, 0x0 ); /* title */ sprintf( str, tr("Explicit VicConds (%s)"), (vcond_check_type==VCOND_CHECK_EVERY_TURN)?tr("every turn"):tr("last turn") ); write_line( contents, gui->font_std, str, x, &y ); y += 10; for ( i = 1; i < vcond_count; i++ ) { sprintf( str, "'%s':", vconds[i].message ); write_line( contents, gui->font_std, str, x, &y ); for ( j = 0; j < vconds[i].sub_and_count; j++ ) { if ( vconds[i].subconds_and[j].player ) sprintf( str, tr("AND %.2s "), vconds[i].subconds_and[j].player->name ); else sprintf( str, tr("AND -- ") ); gui_render_subcond( &vconds[i].subconds_and[j], str + 7 ); write_line( contents, gui->font_std, str, x, &y ); } for ( j = 0; j < vconds[i].sub_or_count; j++ ) { if ( vconds[i].subconds_or[j].player ) sprintf( str, tr("OR %.2s "), vconds[i].subconds_or[j].player->name ); else sprintf( str, tr("OR -- ") ); gui_render_subcond( &vconds[i].subconds_or[j], str + 6 ); write_line( contents, gui->font_std, str, x, &y ); } } y += 6; /* else condition */ sprintf( str, tr("else: '%s'"), vconds[0].message ); write_line( contents, gui->font_std, str, x, &y ); /* show */ frame_apply( gui->sinfo ); frame_hide( gui->sinfo, 0 ); } /* ==================================================================== Show confirmation window. ==================================================================== */ void gui_show_confirm( const char *_text ) { Text *text; int border = 10, i; int x = border, y = border; SDL_Surface *contents = gui->confirm->frame->contents; gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_TOP; SDL_FillRect( contents, 0, 0x0 ); text = create_text( gui->font_std, _text, contents->w - border*2 ); for ( i = 0; i < text->count; i++ ) write_line( contents, gui->font_std, text->lines[i], x, &y ); delete_text( text ); /* show */ frame_apply( gui->confirm->frame ); group_hide( gui->confirm, 0 ); } /* ==================================================================== Show unit buttons at screen x,y (does not include the button check) ==================================================================== */ void gui_show_unit_buttons( int x, int y ) { if ( y + gui->unit_buttons->frame->img->img->h >= sdl.screen->h ) y = sdl.screen->h - gui->unit_buttons->frame->img->img->h; group_move( gui->unit_buttons, x, y ); group_hide( gui->unit_buttons, 0 ); } /** Show unit purchase dialogue after preparing it for current player. */ void gui_show_purchase_window() { purchase_dlg_reset(gui->purchase_dlg); purchase_dlg_hide(gui->purchase_dlg,0); } /* ==================================================================== Show deploy window and select first unit as 'deploy_unit'. ==================================================================== */ void gui_show_deploy_window() { Unit *unit; SDL_Surface *contents = gui->deploy_window->frame->contents; SDL_FillRect( contents, 0, 0x0 ); deploy_offset = 0; deploy_unit = list_get( avail_units, 0 ); list_reset( avail_units ); list_clear( left_deploy_units ); while ( ( unit = list_next( avail_units ) ) ) { unit->x = -1; list_add( left_deploy_units, unit ); } /* add units */ gui_add_deploy_units( contents ); /* activate buttons */ group_set_active( gui->deploy_window, ID_APPLY_DEPLOY, 1 ); group_set_active( gui->deploy_window, ID_CANCEL_DEPLOY, !deploy_turn ); /* show */ frame_apply( gui->deploy_window->frame ); group_hide( gui->deploy_window, 0 ); } /* ==================================================================== Handle deploy window. gui_handle_deploy_motion: 'unit' is the unit the cursor is currently above gui_handle_deploy_click: 'new_unit' is set True if a new unit was selected (which is 'deploy_unit' ) else False return True if something happended ==================================================================== */ int gui_handle_deploy_click(int button, int cx, int cy) { int i; if ( button == WHEEL_UP ) { gui_scroll_deploy_up(); } else if ( button == WHEEL_DOWN ) { gui_scroll_deploy_down(); } else for ( i = 0; i < deploy_show_count; i++ ) if ( FOCUS( cx, cy, gui->deploy_window->frame->img->bkgnd->surf_rect.x + deploy_border, gui->deploy_window->frame->img->bkgnd->surf_rect.y + deploy_border + i * hex_h, hex_w, hex_h ) ) { if ( i + deploy_offset < left_deploy_units->count ) { deploy_unit = list_get( left_deploy_units, i + deploy_offset ); gui_add_deploy_units( gui->deploy_window->frame->contents ); frame_apply( gui->deploy_window->frame ); return 1; } } return 0; } void gui_handle_deploy_motion( int cx, int cy, Unit **unit ) { int i; *unit = 0; group_handle_motion( gui->deploy_window, cx, cy ); for ( i = 0; i < deploy_show_count; i++ ) if ( FOCUS( cx, cy, gui->deploy_window->frame->img->bkgnd->surf_rect.x + deploy_border, gui->deploy_window->frame->img->bkgnd->surf_rect.y + deploy_border + i * hex_h, hex_w, hex_h ) ) { *unit = list_get( left_deploy_units, i + deploy_offset ); } } /* ==================================================================== Scroll deploy list up/down. ==================================================================== */ void gui_scroll_deploy_up() { deploy_offset -= 2; if ( deploy_offset < 0 ) deploy_offset = 0; gui_add_deploy_units( gui->deploy_window->frame->contents ); frame_apply( gui->deploy_window->frame ); } void gui_scroll_deploy_down() { if ( deploy_show_count >= left_deploy_units->count ) deploy_offset = 0; else { deploy_offset += 2; if ( deploy_offset + deploy_show_count >= left_deploy_units->count ) deploy_offset = left_deploy_units->count - deploy_show_count; } gui_add_deploy_units( gui->deploy_window->frame->contents ); frame_apply( gui->deploy_window->frame ); } /* ==================================================================== Update deploy list. Unit is either removed or added to left_deploy_units and the deploy window is updated. ==================================================================== */ void gui_remove_deploy_unit( Unit *unit ) { List_Entry *entry; Unit *next_unit; entry = list_entry( left_deploy_units, unit ); if ( entry->next->item ) next_unit = entry->next->item; else if ( entry->prev->item ) next_unit = entry->prev->item; else next_unit = 0; list_delete_item( left_deploy_units, unit ); deploy_unit = next_unit; gui_add_deploy_units( gui->deploy_window->frame->contents ); frame_apply( gui->deploy_window->frame ); } void gui_add_deploy_unit( Unit *unit ) { if ( unit->sel_prop->flags & FLYING ) list_insert( left_deploy_units, unit, 0 ); else list_add( left_deploy_units, unit ); if ( deploy_unit == 0 ) deploy_unit = unit; gui_add_deploy_units( gui->deploy_window->frame->contents ); frame_apply( gui->deploy_window->frame ); } /* ==================================================================== Show base menu at screen x,y (does not include the button check) ==================================================================== */ void gui_show_menu( int x, int y ) { if ( y + gui->base_menu->frame->img->img->h >= sdl.screen->h ) y = sdl.screen->h - gui->base_menu->frame->img->img->h; group_move( gui->base_menu, x, y ); group_hide( gui->base_menu, 0 ); } /* ==================================================================== Update save slot names. ==================================================================== */ void gui_update_slot_tooltips() { int i; char str[128]; for ( i = 0; i < SLOT_COUNT; i++ ) { sprintf( str, tr("Load: %s"), slot_get_name( i ) ); strcpy_lt( group_get_button( gui->load_menu, ID_LOAD_0 + i )->tooltip, str, 31 ); } for ( i = 0; i < 10; i++ ) { sprintf( str, tr("Save: %s"), slot_get_name( i ) ); strcpy_lt( group_get_button( gui->save_menu, ID_SAVE_0 + i )->tooltip, str, 31 ); } } /* ==================================================================== Render the file name to surface. (directories start with an asteriks) ==================================================================== */ void gui_render_file_name( void *item, SDL_Surface *buffer ) { const char *fname = (const char*)item; SDL_FillRect( buffer, 0, 0x0 ); gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_CENTER; if ( fname[0] != '*' ) write_text( gui->font_std, buffer, 4, buffer->h >> 1, fname, 255 ); else { DEST( buffer, 2, ( buffer->h - gui->folder_icon->h ) >> 1, gui->folder_icon->w, gui->folder_icon->h ); SOURCE( gui->folder_icon, 0, 0 ); blit_surf(); write_text( gui->font_std, buffer, 4 + gui->folder_icon->w, buffer->h >> 1, fname + 1, 255 ); } } /* ==================================================================== Handle the selection of a scenario file (render info and load scen_info from path) ==================================================================== */ void gui_render_scen_info( const char *path, SDL_Surface *buffer ) { Text *text; int i, x = 0, y = 0; char *info; if ( path == 0 ) { /* no selection met */ group_set_active( gui->scen_dlg->group, ID_SCEN_SETUP, 0 ); group_set_active( gui->scen_dlg->group, ID_SCEN_OK, 0 ); SDL_FillRect( buffer, 0, 0x0 ); } else if ( ( info = scen_load_info( path ) ) ) { group_set_active( gui->scen_dlg->group, ID_SCEN_SETUP, 1 ); group_set_active( gui->scen_dlg->group, ID_SCEN_OK, 1 ); /* render info */ SDL_FillRect( buffer, 0, 0x0 ); gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_TOP; text = create_text( gui->font_std, info, buffer->w ); for ( i = 0; i < text->count; i++ ) write_line( buffer, gui->font_std, text->lines[i], x, &y ); delete_text( text ); free( info ); } } /* ==================================================================== Handle the selection of a campaign file (display info and load scen_info from full path) ==================================================================== */ void gui_render_camp_info( const char *path, SDL_Surface *buffer ) { Text *text; int i, x = 0, y = 0; char *info; if ( path == 0 ) { /* no selection met */ group_set_active( gui->camp_dlg->group, ID_CAMP_OK, 0 ); } else if ( ( info = camp_load_info( path ) ) ) { group_set_active( gui->camp_dlg->group, ID_CAMP_OK, 1 ); /* render info */ SDL_FillRect( buffer, 0, 0x0 ); gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_TOP; text = create_text( gui->font_std, info, buffer->w ); for ( i = 0; i < text->count; i++ ) write_line( buffer, gui->font_std, text->lines[i], x, &y ); delete_text( text ); free( info ); } } /** message pane option for selection */ typedef struct { /** hit test rectangle for this option (abs. screen coordinates) */ int x1, y1, x2, y2; /** id to be returned when selected */ char *id; /** textual description */ char *desc; } MessagePane_Option; /** * Represents data for the message pane. */ typedef struct MessagePane { /** general text that will be displayed at the beginning */ char *text; /** default id */ char *default_id; /** contains id that was selected or default id if no options exist */ char *selected_id; /** count of options */ unsigned options_count; /** array of options */ MessagePane_Option *options; /** currently focused option */ int focus_idx; /** focused option on last mouse button press */ int pressed_focus_idx; /** true if button has been pressed within this pane */ int button_pressed; /** repaint rectangle */ int refresh_x1, refresh_y1, refresh_x2, refresh_y2; } MessagePane; /* ==================================================================== Creates a new message pane structure. ==================================================================== */ MessagePane *gui_create_message_pane() { MessagePane *pane = calloc(1, sizeof(MessagePane)); pane->focus_idx = -1; pane->refresh_x2 = sdl.screen->w; pane->refresh_y2 = sdl.screen->h; return pane; } /* ==================================================================== Deletes the given message pane structure. ==================================================================== */ void gui_delete_message_pane(MessagePane *pane) { if (pane) { unsigned i; for (i = pane->options_count; i; ) { i--; free(pane->options[i].id); free(pane->options[i].desc); } free(pane->text); free(pane->default_id); } free(pane); } /* ==================================================================== Sets the text for the message pane. ==================================================================== */ void gui_set_message_pane_text( struct MessagePane *pane, const char *text ) { pane->text = strdup(text); } /* ==================================================================== Sets the default id for the message pane. ==================================================================== */ void gui_set_message_pane_default( struct MessagePane *pane, const char *default_id ) { pane->default_id = strdup(default_id); } /* ==================================================================== Returns the currently selected id or 0 if nothing is selected. ==================================================================== */ const char *gui_get_message_pane_selection( struct MessagePane *pane ) { return pane->selected_id; } /* ==================================================================== Fills in options for the given message pane. ids const char * list of ids descs const char * list of textual description being mapped to ids. ==================================================================== */ void gui_set_message_pane_options( MessagePane *pane, List *ids, List *descs ) { unsigned i; pane->options_count = (unsigned)ids->count; pane->options = calloc(pane->options_count, sizeof(MessagePane_Option)); list_reset(ids); list_reset(descs); for (i = 0; i < pane->options_count; i++) { MessagePane_Option *opt = &pane->options[i]; opt->id = strdup(list_next(ids)); opt->desc = strdup(list_next(descs)); } } /* ==================================================================== Draws and fills with text the message pane. ==================================================================== */ void gui_draw_message_pane( MessagePane *pane ) { static const char checkbox_indent_str[] = GS_CHECK_BOX_EMPTY " "; int i, j, y, x, checkbox_indent; Text *text; if (!(pane->refresh_x2 - pane->refresh_x1 > 0 && pane->refresh_y2 - pane->refresh_y1 > 0)) return; text = create_text( gui->font_brief, pane->text, gui->brief_frame->w - 40 ); DEST( sdl.screen, ( sdl.screen->w - gui->brief_frame->w ) / 2, ( sdl.screen->h - gui->brief_frame->h ) / 2, gui->brief_frame->w, gui->brief_frame->h ); SOURCE( gui->brief_frame, 0, 0 ); blit_surf(); gui->font_brief->align = ALIGN_X_LEFT | ALIGN_Y_TOP; x = ( sdl.screen->w - gui->brief_frame->w ) / 2 + 20; y = ( sdl.screen->h - gui->brief_frame->h ) / 2 + 40; for ( i = 0; i < text->count; i++ ) write_line( sdl.screen, gui->font_brief, text->lines[i], x, &y ); delete_text( text ); checkbox_indent = text_width(gui->font_brief, checkbox_indent_str); /* draw options and redetermine hit-rectangles */ for (j = 0; j < pane->options_count; j++) { MessagePane_Option *opt = pane->options + j; int old_y = y; const int indent_x = x + checkbox_indent; char buf[5]; snprintf(buf, sizeof buf, "%c", CharCheckBoxEmpty + (j == pane->focus_idx)); write_line(sdl.screen, gui->font_brief, buf, x, &y ); y = old_y; text = create_text(gui->font_brief, opt->desc, gui->brief_frame->w - 40 - checkbox_indent); for (i = 0; i < text->count; i++) write_line( sdl.screen, gui->font_brief, text->lines[i], indent_x, &y ); delete_text( text ); opt->x1 = x; opt->y1 = old_y; opt->x2 = x + gui->brief_frame->w - 40; opt->y2 = y; } refresh_screen( pane->refresh_x1, pane->refresh_y1, pane->refresh_x2 - pane->refresh_x1, pane->refresh_y2 - pane->refresh_y1 ); pane->refresh_x1 = pane->refresh_x2 = pane->refresh_y1 = pane->refresh_y2 = 0; } /* ==================================================================== Returns the index of the focused option under (mx, my) or -1 ==================================================================== */ static int gui_map_message_pane_focus_index( MessagePane *pane, int mx, int my ) { int i; for (i = 0; i < pane->options_count; i++) { MessagePane_Option *opt = pane->options + i; if (mx >= opt->x1 && mx < opt->x2 && my >= opt->y1 && my < opt->y2) return i; } return -1; } /** unite with existing repaint rectangle */ inline static void message_pane_unite_repaint_rect(MessagePane *pane, int x1, int y1, int x2, int y2) { if ((pane->refresh_x2 - pane->refresh_x1) <= 0 || (pane->refresh_y2 - pane->refresh_y1) <= 0) { pane->refresh_x1 = x1; pane->refresh_y1 = y1; pane->refresh_x2 = x2; pane->refresh_y2 = y2; } else { pane->refresh_x1 = MINIMUM(x1, pane->refresh_x1); pane->refresh_y1 = MINIMUM(y1, pane->refresh_y1); pane->refresh_x2 = MAXIMUM(x2, pane->refresh_x2); pane->refresh_y2 = MAXIMUM(y2, pane->refresh_y2); } } /* ==================================================================== Handles an event on the message pane. ==================================================================== */ void gui_handle_message_pane_event( MessagePane *pane, int mx, int my, int button, int pressed ) { int new_focus_idx = gui_map_message_pane_focus_index( pane, mx, my ); pane->selected_id = 0; /* determine new repaint rectangle if focus changed */ if (new_focus_idx != pane->focus_idx) { if (pane->focus_idx >= 0 && pane->focus_idx < pane->options_count) message_pane_unite_repaint_rect(pane, pane->options[pane->focus_idx].x1, pane->options[pane->focus_idx].y1, pane->options[pane->focus_idx].x2, pane->options[pane->focus_idx].y2); if (new_focus_idx >= 0 && new_focus_idx < pane->options_count) message_pane_unite_repaint_rect(pane, pane->options[new_focus_idx].x1, pane->options[new_focus_idx].y1, pane->options[new_focus_idx].x2, pane->options[new_focus_idx].y2); } switch (button) { case BUTTON_NONE: break; case BUTTON_LEFT: if (pressed) { pane->pressed_focus_idx = new_focus_idx; pane->button_pressed = 1; } else if (!pressed && pane->button_pressed) { if (new_focus_idx == pane->pressed_focus_idx && pane->pressed_focus_idx >= 0 && pane->pressed_focus_idx < pane->options_count) { pane->selected_id = pane->options[pane->pressed_focus_idx].id; } else if ((new_focus_idx < 0 || new_focus_idx >= pane->options_count) && pane->options_count == 0) { pane->selected_id = pane->default_id; } pane->pressed_focus_idx = -1; pane->button_pressed = 0; } break; default: break; } pane->focus_idx = new_focus_idx; } /* ==================================================================== Open scenario setup and set first player as selected. ==================================================================== */ void gui_open_scen_setup() { int i; List *list; /* adjust the config settings, might have changed due to loading */ group_lock_button( gui->setup->confirm, ID_SETUP_FOG, config.fog_of_war ); group_lock_button( gui->setup->confirm, ID_SETUP_SUPPLY, config.supply ); group_lock_button( gui->setup->confirm, ID_SETUP_WEATHER, config.weather ); group_lock_button( gui->setup->confirm, ID_SETUP_DEPLOYTURN, config.deploy_turn ); group_lock_button( gui->setup->confirm, ID_SETUP_PURCHASE, config.purchase); /* do the list and chose first entry */ list = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); for ( i = 0; i < setup.player_count; i++ ) list_add( list, strdup( setup.names[i] ) ); lbox_set_items( gui->setup->list, list ); gui->setup->list->cur_item = list_first( list ); lbox_apply( gui->setup->list ); if ( gui->setup->list->cur_item ) gui_handle_player_select( gui->setup->list->cur_item ); sdlg_hide( gui->setup, 0 ); } /* ==================================================================== Render the player name in the scenario setup ==================================================================== */ void gui_render_player_name( void *item, SDL_Surface *buffer ) { SDL_FillRect( buffer, 0, 0x0 ); gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_CENTER; write_text( gui->font_std, buffer, 4, buffer->h >> 1, (char*)item, 255 ); } /* ==================================================================== Handle the selection of a player in setup. ==================================================================== */ void gui_handle_player_select( void *item ) { int i; const char *name; char str[64]; SDL_Surface *contents; /* update selection */ name = (const char*)item; for ( i = 0; i < setup.player_count; i++ ) if ( STRCMP( name, setup.names[i] ) ) { gui->setup->sel_id = i; gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_CENTER; contents = gui->setup->ctrl->frame->contents; SDL_FillRect( contents, 0, 0x0 ); if ( setup.ctrl[i] == PLAYER_CTRL_HUMAN ) sprintf( str, tr("Control: Human") ); else sprintf( str, tr("Control: CPU") ); write_text( gui->font_std, contents, 10, contents->h >> 1, str, 255 ); frame_apply( gui->setup->ctrl->frame ); contents = gui->setup->module->frame->contents; SDL_FillRect( contents, 0, 0x0 ); sprintf( str, tr("AI Module: %s"), setup.modules[i] ); write_text( gui->font_std, contents, 10, contents->h >> 1, str, 255 ); frame_apply( gui->setup->module->frame ); break; } } /* ==================================================================== Load a module's info ==================================================================== */ void gui_render_module_info( const char *path, SDL_Surface *buffer ) { if ( path ) group_set_active( gui->module_dlg->group, ID_MODULE_OK, 1 ); else group_set_active( gui->module_dlg->group, ID_MODULE_OK, 0 ); } /* ==================================================================== Mirror position of asymmetric windows. ==================================================================== */ static int mirror_hori( int plane_x, int x, int w ) { if (x>=plane_x) return plane_x-(x-plane_x)-w; else return plane_x+(plane_x-(x+w)); } void gui_mirror_asymm_windows() { int plane_x=sdl.screen->w/2; int x,y,w,h; gui->mirror_asymm = !gui->mirror_asymm; /* quick info's */ frame_get_geometry(gui->qinfo1,&x,&y,&w,&h); frame_move(gui->qinfo1,mirror_hori(plane_x,x,w),y); frame_get_geometry(gui->qinfo2,&x,&y,&w,&h); frame_move(gui->qinfo2,mirror_hori(plane_x,x,w),y); /* deploy window */ group_get_geometry(gui->deploy_window,&x,&y,&w,&h); group_move(gui->deploy_window,mirror_hori(plane_x,x,w),y); } /** Show video mode selection */ void gui_vmode_dlg_show() { int i; /* fill list box on first run */ if (lbox_is_empty(gui->vmode_dlg->select_lbox)) { List *items = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); char str[64]; for (i = 0; i < sdl.num_vmodes; i++) { VideoModeInfo *vmi = &sdl.vmodes[i]; snprintf(str,64,"%dx%dx%d %s", vmi->width, vmi->height, vmi->depth, vmi->fullscreen? tr("Fullscreen"):tr("Window")); list_add(items, strdup(str)); } select_dlg_set_items( gui->vmode_dlg, items); } /* select current video mode */ for (i = 0; i < sdl.num_vmodes; i++) if (sdl.screen->w == sdl.vmodes[i].width && sdl.screen->h == sdl.vmodes[i].height && (!!(sdl.screen->flags & SDL_FULLSCREEN)) == sdl.vmodes[i].fullscreen) { lbox_select_item(gui->vmode_dlg->select_lbox, list_get(gui->vmode_dlg->select_lbox->items,i)); break; } select_dlg_hide( gui->vmode_dlg, 0 ); } //unit_list SDL_Surface * gui_prepare_unit_list() { SDL_Surface *contents = gui->unit_list->contents; gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_TOP; /* clear */ SDL_FillRect( contents, 0, 0x0 ); return contents; } void gui_show_unit_list( ) { frame_apply( gui->unit_list ); frame_hide( gui->unit_list, 0 ); } void gui_hide_unit_list( ) { frame_hide( gui->unit_list, 1 ); } static void gui_render_single_unit( SDL_Surface * contents,Unit *unit ,int x,int y) { //unit DEST( contents, x + ( ( hex_w - unit->prop.icon_w ) >> 1 ), y + ( ( ( hex_h - unit->prop.icon_h ) >> 1 ) ), unit->prop.icon_w, unit->prop.icon_h ); SOURCE( unit->prop.icon, 0, 0 ); blit_surf(); //move & attack if ( unit->cur_atk_count > 0 ) { DEST ( contents, x+hex_w/2-unit_info_icons->str_w/2-unit_info_icons->atk->w, y + hex_h - unit_info_icons->atk->h, unit_info_icons->atk->w, unit_info_icons->atk->h ); SOURCE( unit_info_icons->atk, 0, 0 ); blit_surf(); } if ( unit->cur_mov > 0 ) { DEST ( contents, x+hex_w/2+unit_info_icons->str_w/2, y + hex_h - unit_info_icons->mov->h, unit_info_icons->mov->w, unit_info_icons->mov->h ); SOURCE( unit_info_icons->mov, 0, 0 ); blit_surf(); } //str, highlight core units if ( unit->core ) { DEST( contents, x + ( ( hex_w - unit_info_icons->str_w ) >> 1 ), y +hex_h - unit_info_icons->atk->h, unit_info_icons->str_w, unit_info_icons->str_h ); fill_surf( 0xffff00 ); DEST( contents, x + ( ( hex_w - unit_info_icons->str_w ) >> 1 ) + 1, y +hex_h - unit_info_icons->atk->h + 1, unit_info_icons->str_w - 2, unit_info_icons->str_h - 2 ); SOURCE( unit_info_icons->str, 1, ( unit->str + 14 ) * unit_info_icons->str_h ) blit_surf(); } else { DEST( contents, x + ( ( hex_w - unit_info_icons->str_w ) >> 1 ), y +hex_h - unit_info_icons->atk->h, unit_info_icons->str_w, unit_info_icons->str_h ); SOURCE( unit_info_icons->str, 0, ( unit->str + 14 ) * unit_info_icons->str_h ) blit_surf(); } /* nation flag, highlight core units */ if ( unit->core ) { DEST( contents, x, y, nation_flag_width, nation_flag_height ); fill_surf( 0xffff00 ); DEST( contents, x + 1, y + 1, nation_flag_width - 2, nation_flag_height - 2 ); SOURCE( nation_flags, 1, unit->nation->flag_offset + 1 ); blit_surf(); } else { DEST( contents, x, y, nation_flag_width, nation_flag_height ); SOURCE( nation_flags, 0, unit->nation->flag_offset ); blit_surf(); } /* name and type */ if((2*x/3/hex_w)%2)y+=15; y+=hex_h; write_line( contents, gui->font_std, unit->name, x-24, &y ); } void gui_render_unit_list( SDL_Surface *contents, List * units) { int tagUnits=0; int x=hex_w/2,y=-unit_list_offset*hex_h*2; Unit *unit=(Unit *)list_first(units); char tags[160]; int tag_iterator=0; int last_tag=0; int already_added_tag=0; int class_count=0; int frame_width = frame_get_width(gui->unit_list); while (unit) { if(unit->player==cur_player&&!unit->killed) { for(already_added_tag=0,tag_iterator=0;tag_iterator!=last_tag;tag_iterator+=strlen(tags+tag_iterator)+1) if((!strcmp(tags+tag_iterator,unit->tag))||!strlen(unit->tag)||!unit->str) { already_added_tag=1; break; } if(!already_added_tag&&strlen(unit->tag)) { sprintf(tags+last_tag,"%s",unit->tag); last_tag+=strlen(unit->tag)+1; tagUnits=1; } if(unit->prop.class>class_count) class_count=unit->prop.class; } unit=list_next(units); } sprintf(tags+last_tag,"[untagged]"); last_tag+=11; for(tag_iterator=0;tag_iterator!=last_tag;tag_iterator+=strlen(tags+tag_iterator)+1) { if(y)y+=20; if(tagUnits) write_line( contents,gui->font_std,tags+tag_iterator,x+200,&y); y+=10; int j=0; for(j=0;j<=class_count;j++) { unit=(Unit *)list_first(units); while(unit) { if(unit->player==cur_player&&unit->str&&((!strlen(unit->tag)&&!strcmp(tags+tag_iterator,"[untagged]"))||!strcmp(unit->tag,tags+tag_iterator))&&unit->prop.class==j&&!unit->killed) { gui_render_single_unit(contents,unit,x,y); x+=hex_w*3/2; if(x>frame_width-hex_w) { x=hex_w/2; y+=hex_h*3/2; } } unit=list_next(units); } } if(x>hex_w/2) { x=hex_w/2; y+=hex_h*3/2; } } unit_list_max_offset=y/hex_h/2+unit_list_offset; } void gui_scroll_unit_list_up(List * units) { unit_list_offset -= 2; if ( unit_list_offset < 0 ) unit_list_offset = 0; gui_render_unit_list(gui_prepare_unit_list(),units); frame_apply( gui->unit_list ); } void gui_scroll_unit_list_down(List * units) { unit_list_offset += 2; if ( unit_list_offset > unit_list_max_offset ) unit_list_offset = unit_list_max_offset; gui_render_unit_list(gui_prepare_unit_list(),units); frame_apply( gui->unit_list ); } Unit *gui_unit_list_unit_clicked( List * units ,int cx,int cy) { int tagUnits=0; int x=hex_w/2,y=-unit_list_offset*hex_h*2; Unit *unit=(Unit *)list_first(units); char tags[160]; int tag_iterator=0; int last_tag=0; int already_added_tag=0; int class_count=0; int wx, wy; int frame_width = frame_get_width(gui->unit_list); /* translate cursor position cx,cy to relative position in window */ wx = cx-(config.width - frame_get_width(gui->unit_list))/2; wy = cy-(config.height - frame_get_height(gui->unit_list))/2; while(unit) { if(unit->player==cur_player&&!unit->killed) { for(already_added_tag=0,tag_iterator=0;tag_iterator!=last_tag;tag_iterator+=strlen(tags+tag_iterator)+1) if((!strcmp(tags+tag_iterator,unit->tag))||!strlen(unit->tag)||!unit->str) { already_added_tag=1; break; } if(!already_added_tag&&strlen(unit->tag)) { sprintf(tags+last_tag,"%s",unit->tag); last_tag+=strlen(unit->tag)+1; tagUnits=1; } if(unit->prop.class>class_count) class_count=unit->prop.class; } unit=list_next(units); } sprintf(tags+last_tag,"[untagged]"); last_tag+=11; for(tag_iterator=0;tag_iterator!=last_tag;tag_iterator+=strlen(tags+tag_iterator)+1) { if(y)y+=20; if(tagUnits) y+=10; y+=10; int j=0; for(j=0;j<=class_count;j++) { unit=(Unit *)list_first(units); while(unit) { if(unit->player==cur_player&&unit->str&&((!strlen(unit->tag)&&!strcmp(tags+tag_iterator,"[untagged]"))||!strcmp(unit->tag,tags+tag_iterator))&&unit->prop.class==j&&!unit->killed) { if(wx > x && wx < x+hex_w*3/2 && wy > y && wy < y+hex_h*3/2) return unit; x+=hex_w*3/2; if(x>frame_width-hex_w) { x=hex_w/2; y+=hex_h*3/2; } } unit=list_next(units); } } if(x>hex_w/2) { x=hex_w/2; y+=hex_h*3/2; } } return NULL; } lgeneral-1.3.1/src/ai_group.c0000664000175000017500000005670612140770455013013 00000000000000/*************************************************************************** ai_group.c - description ------------------- begin : Fri Jan 19 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "lgeneral.h" #include "unit.h" #include "action.h" #include "map.h" #include "ai_tools.h" #include "ai_group.h" /* ==================================================================== Externals ==================================================================== */ extern Player *cur_player; extern List *units, *avail_units; extern int map_w, map_h; extern Map_Tile **map; extern Mask_Tile **mask; extern int trgt_type_count; extern int cur_weather; extern Config config; /* ==================================================================== LOCALS ==================================================================== */ /* OH NO, A HACK! */ extern int ai_get_dist( Unit *unit, int x, int y, int type, int *dx, int *dy, int *dist ); /* ==================================================================== Check if there is an unspotted tile or an enemy within range 6 that may move close enough to attack. Flying units are not counted as these may move very far anyway. ==================================================================== */ typedef struct { Player *player; int unit_x, unit_y; int unsafe; } MountCtx; static int hex_is_safe( int x, int y, void *_ctx ) { MountCtx *ctx = _ctx; if ( !mask[x][y].spot ) { ctx->unsafe = 1; return 0; } if ( map[x][y].g_unit ) if ( !player_is_ally( ctx->player, map[x][y].g_unit->player ) ) if ( map[x][y].g_unit->sel_prop->mov >= get_dist( ctx->unit_x, ctx->unit_y, x, y ) - 1 ) { ctx->unsafe = 1; return 0; } return 1; } static int ai_unsafe_mount( Unit *unit, int x, int y ) { MountCtx ctx = { unit->player, x, y, 0 }; ai_eval_hexes( x, y, 6, hex_is_safe, &ctx ); return ctx.unsafe; } /* ==================================================================== Count the number of defensive supporters. ==================================================================== */ typedef struct { Unit *unit; int count; } DefCtx; static int hex_df_unit( int x, int y, void *_ctx ) { DefCtx *ctx = _ctx; if ( map[x][y].g_unit ) { if ( ctx->unit->sel_prop->flags & FLYING ) { if ( map[x][y].g_unit->sel_prop->flags & AIR_DEFENSE ) ctx->count++; } else { if ( map[x][y].g_unit->sel_prop->flags & ARTILLERY ) ctx->count++; } } return 1; } static void ai_count_df_units( Unit *unit, int x, int y, int *result ) { DefCtx ctx = { unit, 0 }; *result = 0; if ( unit->sel_prop->flags & ARTILLERY ) return; ai_eval_hexes( x, y, 3, hex_df_unit, &ctx ); /* only three defenders are taken in account */ if ( *result > 3 ) *result = 3; } /* ==================================================================== Gather all valid targets of a unit. ==================================================================== */ typedef struct { Unit *unit; List *targets; } GatherCtx; static int hex_add_targets( int x, int y, void *_ctx ) { GatherCtx *ctx = _ctx; if ( mask[x][y].spot ) { if ( map[x][y].a_unit && unit_check_attack( ctx->unit, map[x][y].a_unit, UNIT_ACTIVE_ATTACK ) ) list_add( ctx->targets, map[x][y].a_unit ); if ( map[x][y].g_unit && unit_check_attack( ctx->unit, map[x][y].g_unit, UNIT_ACTIVE_ATTACK ) ) list_add( ctx->targets, map[x][y].g_unit ); } return 1; } static List* ai_gather_targets( Unit *unit, int x, int y ) { GatherCtx ctx; ctx.unit = unit; ctx.targets= list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); ai_eval_hexes( x, y, unit->sel_prop->rng + 1, hex_add_targets, &ctx ); return ctx.targets; } /* ==================================================================== Evaluate a unit's attack against target. score_base: basic score for attacking score_rugged: score added for each rugged def point (0-100) of target score_kill: score unit receives for each (expected) point of strength damage done to target score_loss: score that is substracted per strength point unit is expected to loose The final score is stored to 'result' and True if returned if the attack may be performed else False. ==================================================================== */ static int unit_evaluate_attack( Unit *unit, Unit *target, int score_base, int score_rugged, int score_kill, int score_loss, int *result ) { int unit_dam = 0, target_dam = 0, rugged_def = 0; if ( !unit_check_attack( unit, target, UNIT_ACTIVE_ATTACK ) ) return 0; unit_get_expected_losses( unit, target, &unit_dam, &target_dam ); if ( unit_check_rugged_def( unit, target ) ) rugged_def = unit_get_rugged_def_chance( unit, target ); if ( rugged_def < 0 ) rugged_def = 0; *result = score_base + rugged_def * score_rugged + target_dam * score_kill + unit_dam * score_loss; AI_DEBUG( 2, " %s: %s: bas:%i, rug:%i, kil:%i, los: %i = %i\n", unit->name, target->name, score_base, rugged_def * score_rugged, target_dam * score_kill, unit_dam * score_loss, *result ); /* if target is a df unit give a small bonus */ if ( target->sel_prop->flags & ARTILLERY || target->sel_prop->flags & AIR_DEFENSE ) *result += score_kill; return 1; } /* ==================================================================== Get the best target for unit if any. ==================================================================== */ static int ai_get_best_target( Unit *unit, int x, int y, AI_Group *group, Unit **target, int *score ) { int old_x = unit->x, old_y = unit->y; int pos_targets; Unit *entry; List *targets; int score_atk_base, score_rugged, score_kill, score_loss; /* scores */ score_atk_base = 20 + group->order * 10; score_rugged = -1; score_kill = ( group->order + 3 ) * 10; score_loss = ( 2 - group->order ) * -10; unit->x = x; unit->y = y; *target = 0; *score = -999999; /* if the transporter is needed attacking is suicide */ if ( mask[x][y].mount && unit->trsp_prop.id ) return 0; /* gather targets */ targets = ai_gather_targets( unit, x, y ); /* evaluate all attacks */ if ( targets ) { list_reset( targets ); while ( ( entry = list_next( targets ) ) ) if ( !unit_evaluate_attack( unit, entry, score_atk_base, score_rugged, score_kill, score_loss, &entry->target_score ) ) list_delete_item( targets, entry ); /* erroneous entry: can't be attacked */ /* check whether any positive targets exist */ pos_targets = 0; list_reset( targets ); while ( ( entry = list_next( targets ) ) ) if ( entry->target_score > 0 ) { pos_targets = 1; break; } /* get best target */ list_reset( targets ); while ( ( entry = list_next( targets ) ) ) { /* if unit is on an objective or center of interest give a bonus as this tile must be captured by all means. but only do so if there is no other target with a positive value */ if ( !pos_targets ) if ( ( entry->x == group->x && entry->y == group->y ) || map[entry->x][entry->y].obj ) { entry->target_score += 100; AI_DEBUG( 2, " + 100 for %s: capture by all means\n", entry->name ); } if ( entry->target_score > *score ) { *target = entry; *score = entry->target_score; } } list_delete( targets ); } unit->x = old_x; unit->y = old_y; return (*target) != 0; } /* ==================================================================== Evaluate position for a unit by checking the group context. Return True if this evaluation is valid. The results are stored to 'eval'. ==================================================================== */ typedef struct { Unit *unit; /* unit that's checked */ AI_Group *group; int x, y; /* position that was evaluated */ int mov_score; /* result for moving */ Unit *target; /* if set atk_result is relevant */ int atk_score; /* result including attack evaluation */ } AI_Eval; static AI_Eval *ai_create_eval( Unit* unit, AI_Group *group, int x, int y ) { AI_Eval *eval = calloc( 1, sizeof( AI_Eval ) ); eval->unit = unit; eval->group = group; eval->x = x; eval->y = y; return eval; } int ai_evaluate_hex( AI_Eval *eval ) { int result; int i, nx, ny, ox, oy,odist, covered, j, nx2, ny2; eval->target = 0; eval->mov_score = eval->atk_score = 0; /* terrain modifications which only apply for ground units */ if ( !(eval->unit->sel_prop->flags & FLYING ) ) { /* entrenchment bonus. infantry receives more than others. */ eval->mov_score += ((eval->unit->sel_prop->flags&INFANTRY)?2:1) * ( map[eval->x][eval->y].terrain->min_entr * 2 + map[eval->x][eval->y].terrain->max_entr ); /* if the unit looses initiative on this terrain we give a malus */ if ( map[eval->x][eval->y].terrain->max_ini < eval->unit->sel_prop->ini ) eval->mov_score -= 5 * ( eval->unit->sel_prop->ini - map[eval->x][eval->y].terrain->max_ini ); /* rivers should be avoided */ if ( map[eval->x][eval->y].terrain->flags[cur_weather] & RIVER ) eval->mov_score -= 50; if ( map[eval->x][eval->y].terrain->flags[cur_weather] & SWAMP ) eval->mov_score -= 30; /* inf_close_def will benefit an infantry while disadvantaging other units */ if ( map[eval->x][eval->y].terrain->flags[cur_weather] & INF_CLOSE_DEF ) { if ( eval->unit->sel_prop->flags & INFANTRY ) eval->mov_score += 30; else eval->mov_score -= 20; } /* if this is a mount position and an enemy or fog is less than 6 tiles away we give a big malus */ if ( mask[eval->x][eval->y].mount ) if ( ai_unsafe_mount( eval->unit, eval->x, eval->y ) ) eval->mov_score -= 1000; /* conquering a flag gives a bonus */ if ( map[eval->x][eval->y].player ) if ( !player_is_ally( eval->unit->player, map[eval->x][eval->y].player ) ) if ( map[eval->x][eval->y].g_unit == 0 ) { eval->mov_score += 600; if ( map[eval->x][eval->y].obj ) eval->mov_score += 600; } /* if this position allows debarking or is just one hex away this tile receives a big bonus. */ if ( eval->unit->embark == EMBARK_SEA ) { if ( map_check_unit_debark( eval->unit, eval->x, eval->y, EMBARK_SEA, 0 ) ) eval->mov_score += 1000; else for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( eval->x, eval->y, i, &nx, &ny ) ) if ( map_check_unit_debark( eval->unit, nx, ny, EMBARK_SEA, 0 ) ) { eval->mov_score += 500; break; } } } /* modifications on flying units */ if ( eval->unit->sel_prop->flags & FLYING ) { /* if interceptor covers an uncovered bomber on this tile give bonus */ if ( eval->unit->sel_prop->flags & INTERCEPTOR ) { for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( eval->x, eval->y, i, &nx, &ny ) ) if ( map[nx][ny].a_unit ) if ( player_is_ally( cur_player, map[nx][ny].a_unit->player ) ) if ( map[nx][ny].a_unit->sel_prop->flags & BOMBER ) { covered = 0; for ( j = 0; j < 6; j++ ) if ( get_close_hex_pos( nx, ny, j, &nx2, &ny2 ) ) if ( map[nx2][ny2].a_unit ) if ( player_is_ally( cur_player, map[nx2][ny2].a_unit->player ) ) if ( map[nx2][ny2].a_unit->sel_prop->flags & INTERCEPTOR ) if ( map[nx2][ny2].a_unit != eval->unit ) { covered = 1; break; } if ( !covered ) eval->mov_score += 2000; /* 100 equals one tile of getting to center of interest which must be overcome */ } } } /* each group has a 'center of interest'. getting closer to this center is honored. */ if ( eval->group->x == -1 ) { /* proceed to the nearest flag */ if ( !(eval->unit->sel_prop->flags & FLYING ) ) { if ( eval->group->order > 0 ) { if ( ai_get_dist( eval->unit, eval->x, eval->y, AI_FIND_ENEMY_OBJ, &ox, &oy, &odist ) ) eval->mov_score -= odist * 100; } else if ( eval->group->order < 0 ) { if ( ai_get_dist( eval->unit, eval->x, eval->y, AI_FIND_OWN_OBJ, &ox, &oy, &odist ) ) eval->mov_score -= odist * 100; } } } else eval->mov_score -= 100 * get_dist( eval->x, eval->y, eval->group->x, eval->group->y ); /* defensive support */ ai_count_df_units( eval->unit, eval->x, eval->y, &result ); if ( result > 2 ) result = 2; /* senseful limit */ eval->mov_score += result * 10; /* check for the best target and save the result to atk_score */ eval->atk_score = eval->mov_score; if ( !mask[eval->x][eval->y].mount ) if ( !( eval->unit->sel_prop->flags & ATTACK_FIRST ) || ( eval->unit->x == eval->x && eval->unit->y == eval->y ) ) if ( ai_get_best_target( eval->unit, eval->x, eval->y, eval->group, &eval->target, &result ) ) eval->atk_score += result; return 1; } /* ==================================================================== Choose and store the best tactical action of a unit (found by use of ai_evaluate_hex). If there is none AI_SUPPLY is stored. ==================================================================== */ void ai_handle_unit( Unit *unit, AI_Group *group ) { int x, y, nx, ny, i, action = 0; List *list = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); AI_Eval *eval; Unit *target = 0; int score = -999999; /* get move mask */ map_get_unit_move_mask( unit ); x = unit->x; y = unit->y; target = 0; /* evaluate all positions */ list_add( list, ai_create_eval( unit, group, unit->x, unit->y ) ); while ( list->count > 0 ) { eval = list_dequeue( list ); if ( ai_evaluate_hex( eval ) ) { /* movement evaluation */ if ( eval->mov_score > score ) { score = eval->mov_score; target = 0; x = eval->x; y = eval->y; } /* movement + attack evaluation. ignore for attack_first * units which already fired */ if ( !(unit->sel_prop->flags & ATTACK_FIRST) ) if ( eval->target && eval->atk_score > score ) { score = eval->atk_score; target = eval->target; x = eval->x; y = eval->y; } } /* store next hex tiles */ for ( i = 0; i < 6; i++ ) if ( get_close_hex_pos( eval->x, eval->y, i, &nx, &ny ) ) if ( ( mask[nx][ny].in_range && !mask[nx][ny].blocked ) || mask[nx][ny].sea_embark ) { mask[nx][ny].in_range = 0; mask[nx][ny].sea_embark = 0; list_add( list, ai_create_eval( unit, group, nx, ny ) ); } free( eval ); } list_delete( list ); /* check result and store appropiate action */ if ( unit->x != x || unit->y != y ) { if ( map_check_unit_debark( unit, x, y, EMBARK_SEA, 0 ) ) { action_queue_debark_sea( unit, x, y ); action = 1; AI_DEBUG( 1, "%s debarks at %i,%i\n", unit->name, x, y ); } else { action_queue_move( unit, x, y ); action = 1; AI_DEBUG( 1, "%s moves to %i,%i\n", unit->name, x, y ); } } if ( target ) { action_queue_attack( unit, target ); action = 1; AI_DEBUG( 1, "%s attacks %s\n", unit->name, target->name ); } if ( !action ) { action_queue_supply( unit ); AI_DEBUG( 1, "%s supplies: %i,%i\n", unit->name, unit->cur_ammo, unit->cur_fuel ); } } /* ==================================================================== Get the best target and attack by range. Do not try to move the unit yet. If there is no target at all do nothing. ==================================================================== */ void ai_fire_artillery( Unit *unit, AI_Group *group ) { AI_Eval *eval = ai_create_eval( unit, group, unit->x, unit->y ); if ( ai_evaluate_hex( eval ) && eval->target ) { action_queue_attack( unit, eval->target ); AI_DEBUG( 1, "%s attacks first %s\n", unit->name, eval->target->name ); } free( eval ); } /* ==================================================================== PUBLICS ==================================================================== */ /* ==================================================================== Create/Delete a group ==================================================================== */ AI_Group *ai_group_create( int order, int x, int y ) { AI_Group *group = calloc( 1, sizeof( AI_Group ) ); group->state = GS_ART_FIRE; group->order = order; group->x = x; group->y = y; group->units = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); list_reset( group->units ); return group; } void ai_group_add_unit( AI_Group *group, Unit *unit ) { /* sort unit into units list in the order in which units are * supposed to move. artillery fire is first but moves last * thus artillery comes last in this list. that it fires first * is handled by ai_group_handle_next_unit. list order is: * bombers, ground units, fighters, artillery */ if ( unit->prop.flags & ARTILLERY || unit->prop.flags & AIR_DEFENSE ) list_add( group->units, unit ); else if ( unit->prop.class == 9 || unit->prop.class == 10 ) { /* tactical and high level bomber */ list_insert( group->units, unit, 0 ); group->bomber_count++; } else if ( unit->prop.flags & FLYING ) { /* airborne ground units are not in this section ... */ list_insert( group->units, unit, group->bomber_count + group->ground_count ); group->aircraft_count++; } else { /* everything else: ships and ground units */ list_insert( group->units, unit, group->bomber_count ); group->ground_count++; } /* HACK: set hold_pos flag for those units that should not move due to high entrenchment or being close to artillery and such; but these units will attack, too and may move if's really worth it */ if (!(unit->sel_prop->flags&FLYING)) if (!(unit->sel_prop->flags&SWIMMING)) { int i,nx,ny,no_move = 0; if (map[unit->x][unit->y].obj) no_move = 1; if (group->order<0) { if (map[unit->x][unit->y].nation) no_move = 1; if (unit->entr>=6) no_move = 1; if (unit->sel_prop->flags&ARTILLERY) no_move = 1; if (unit->sel_prop->flags&AIR_DEFENSE) no_move = 1; for (i=0;i<6;i++) if (get_close_hex_pos(unit->x,unit->y,i,&nx,&ny)) if (map[nx][ny].g_unit) { if (map[nx][ny].g_unit->sel_prop->flags&ARTILLERY) { no_move = 1; break; } if (map[nx][ny].g_unit->sel_prop->flags&AIR_DEFENSE) { no_move = 1; break; } } } if (no_move) unit->cur_mov = 0; } } void ai_group_delete_unit( AI_Group *group, Unit *unit ) { /* remove unit */ int contained_unit = list_delete_item( group->units, unit ); if ( !contained_unit ) return; /* update respective counter */ if ( unit->prop.flags & ARTILLERY || unit->prop.flags & AIR_DEFENSE ) /* nothing to be done */; else if ( unit->prop.class == 9 || unit->prop.class == 10 ) { /* tactical and high level bomber */ group->bomber_count--; } else if ( unit->prop.flags & FLYING ) { /* airborne ground units are not in this section ... */ group->aircraft_count--; } else { /* everything else: ships and ground units */ group->ground_count--; } } void ai_group_delete( void *ptr ) { AI_Group *group = ptr; if ( group ) { if ( group->units ) list_delete( group->units ); free( group ); } } /* ==================================================================== Handle next unit of a group to follow order. Stores all nescessary unit actions. If group is completely handled, it returns False. ==================================================================== */ int ai_group_handle_next_unit( AI_Group *group ) { Unit *unit = list_next( group->units ); if ( unit == 0 ) { if ( group->state == GS_MOVE ) return 0; else { group->state = GS_MOVE; list_reset( group->units ); unit = list_next( group->units ); if ( unit == 0 ) return 0; } } if ( unit == 0 ) { AI_DEBUG(0,"ERROR: %s: null unit detected\n",__FUNCTION__); return 0; } /* Unit is dead? Can only be attacker that was killed by defender */ if ( unit->killed ) { AI_DEBUG(0, "Removing killed attacker %s(%d,%d) from group\n", unit->name, unit->x, unit->y); ai_group_delete_unit( group, unit ); return ai_group_handle_next_unit( group ); } if ( group->state == GS_ART_FIRE ) { if ( unit->sel_prop->flags & ATTACK_FIRST ) ai_fire_artillery( unit, group ); /* does not check optimal movement but simply fires */ } else ai_handle_unit( unit, group ); /* checks to the full tactical extend */ return 1; } lgeneral-1.3.1/src/nation.c0000664000175000017500000001356412575246413012475 00000000000000/*************************************************************************** nation.c - description ------------------- begin : Wed Jan 24 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include #include #include "lg-sdl.h" #include "list.h" #include "misc.h" #include "file.h" #include "nation.h" #include "parser.h" #include "localize.h" /* ==================================================================== Externals ==================================================================== */ extern Sdl sdl; /* ==================================================================== Nations ==================================================================== */ Nation *nations = 0; int nation_count = 0; SDL_Surface *nation_flags = 0; int nation_flag_width = 0, nation_flag_height = 0; /* ==================================================================== Read nations from SRCDIR/nations/fname. ==================================================================== */ int nations_load( char *fname ) { int i; PData *pd, *sub; List *entries; char path[512]; char *str; char *domain = 0; sprintf( path, "%s/nations/%s", get_gamedir(), fname ); if ( ( pd = parser_read_file( fname, path ) ) == 0 ) goto parser_failure; domain = determine_domain(pd, fname); locale_load_domain(domain, 0/*FIXME*/); /* icon size */ if ( !parser_get_int( pd, "icon_width", &nation_flag_width ) ) goto failure; if ( !parser_get_int( pd, "icon_height", &nation_flag_height ) ) goto parser_failure; /* icons */ if ( !parser_get_value( pd, "icons", &str, 0 ) ) goto parser_failure; sprintf( path, "flags/%s", str ); if ( ( nation_flags = load_surf( path, SDL_SWSURFACE ) ) == 0 ) { fprintf( stderr, "%s: %s\n", path, SDL_GetError() ); goto failure; } /* nations */ if ( !parser_get_entries( pd, "nations", &entries ) ) goto parser_failure; nation_count = entries->count; nations = calloc( nation_count, sizeof( Nation ) ); list_reset( entries ); i = 0; while ( ( sub = list_next( entries ) ) ) { nations[i].id = strdup( sub->name ); if ( !parser_get_localized_string( sub, "name", domain, &nations[i].name ) ) goto parser_failure; if ( !parser_get_int( sub, "icon_id", &nations[i].flag_offset ) ) goto parser_failure; nations[i].flag_offset *= nation_flag_height; i++; } parser_free( &pd ); free(domain); return 1; parser_failure: fprintf( stderr, "%s\n", parser_get_error() ); failure: nations_delete(); if ( pd ) parser_free( &pd ); free(domain); return 0; } /* ==================================================================== Delete nations. ==================================================================== */ void nations_delete( void ) { int i; if ( nation_flags ) SDL_FreeSurface ( nation_flags ); nation_flags = 0; if ( nations == 0 ) return; for ( i = 0; i < nation_count; i++ ) { if ( nations[i].id ) free( nations[i].id ); if ( nations[i].name ) free( nations[i].name ); } free( nations ); nations = 0; nation_count = 0; } /* ==================================================================== Search for a nation by id string. If this fails 0 is returned. ==================================================================== */ Nation* nation_find( char *id ) { int i; if ( id == 0 ) return 0; for ( i = 0; i < nation_count; i++ ) if ( STRCMP( id, nations[i].id ) ) return &nations[i]; return 0; } /* ==================================================================== Get nation id (position in list) ==================================================================== */ int nation_get_index( Nation *nation ) { int i; for ( i = 0; i < nation_count; i++ ) if ( nation == &nations[i] ) return i; return 0; } /* ==================================================================== Draw flag icon to surface. NATION_DRAW_FLAG_NORMAL: simply draw icon. NATION_DRAW_FLAG_OBJ: add a golden frame to mark as military objective ==================================================================== */ void nation_draw_flag( Nation *nation, SDL_Surface *surf, int x, int y, int obj ) { if ( obj == NATION_DRAW_FLAG_OBJ ) { DEST( surf, x, y, nation_flag_width, nation_flag_height ); fill_surf( 0xffff00 ); DEST( surf, x + 1, y + 1, nation_flag_width - 2, nation_flag_height - 2 ); SOURCE( nation_flags, 1, nation->flag_offset + 1 ); blit_surf(); } else { DEST( surf, x, y, nation_flag_width, nation_flag_height ); SOURCE( nation_flags, 0, nation->flag_offset ); blit_surf(); } } /* ==================================================================== Get a specific pixel value in a nation's flag. ==================================================================== */ Uint32 nation_get_flag_pixel( Nation *nation, int x, int y ) { return get_pixel( nation_flags, x, nation->flag_offset + y ); } lgeneral-1.3.1/src/audio.h0000664000175000017500000000425612140770455012305 00000000000000/*************************************************************************** audio.h - description ------------------- begin : Sun Jul 29 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __AUDIO_H #define __AUDIO_H #ifdef WITH_SOUND /* ==================================================================== Wrapper for the SDL_mixer functions. ==================================================================== */ /* ==================================================================== Initiate/close audio ==================================================================== */ int audio_open(); void audio_close(); /* ==================================================================== Modify audio ==================================================================== */ void audio_enable( int enable ); void audio_set_volume( int level ); /* 0 - 128 */ void audio_fade_out( int channel, int ms ); /* ==================================================================== Wave ==================================================================== */ typedef struct { Mix_Chunk *chunk; /* sound */ int channel; /* chunk is played at this channel */ } Wav; Wav* wav_load( char *fname, int channel ); void wav_free( Wav *wav ); void wav_set_channel( Wav *wav, int channel ); void wav_play( Wav *wav ); void wav_play_at( Wav *wav, int channel ); #endif #endif lgeneral-1.3.1/src/list.h0000664000175000017500000002050012140770455012145 00000000000000/*************************************************************************** list.h - description ------------------- begin : Sun Sep 2 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __LIST_H #define __LIST_H #ifdef __cplusplus extern "C" { #endif /* ==================================================================== Dynamic list handling data as void pointers. ==================================================================== */ typedef struct _List_Entry { struct _List_Entry *next; struct _List_Entry *prev; void *item; } List_Entry; typedef struct _List { int auto_delete; int count; List_Entry head; List_Entry tail; void (*callback)(void*); List_Entry *cur_entry; } List; typedef struct _ListIterator { List *l; List_Entry *cur_entry; } ListIterator; /* ==================================================================== Create a new list auto_delete: Free memory of data pointer when deleting entry callback: Use this callback to free memory of data including the data pointer itself. Return Value: List pointer ==================================================================== */ enum { LIST_NO_AUTO_DELETE = 0, LIST_AUTO_DELETE }; enum { LIST_NO_CALLBACK = 0 }; List *list_create( int auto_delete, void (*callback)(void*) ); /* ==================================================================== Delete list and entries. ==================================================================== */ void list_delete( List *list ); /* ==================================================================== Delete all entries but keep the list. Reset current_entry to head pointer. ==================================================================== */ void list_clear( List *list ); /* ==================================================================== Insert new item at position. Return Value: True if successful else False. ==================================================================== */ int list_insert( List *list, void *item, int pos ); /* ==================================================================== Add new item at the end of the list. ==================================================================== */ int list_add( List *list, void *item ); /* ==================================================================== Delete item at pos. If this was the current entry update current_entry to valid previous pointer. Return Value: True if successful else False. ==================================================================== */ int list_delete_pos( List *list, int pos ); /* ==================================================================== Delete item if in list. If this was the current entry update current_entry to valid previous pointer. Return Value: True if successful else False. ==================================================================== */ int list_delete_item( List *list, void *item ); /* ==================================================================== Delete entry. ==================================================================== */ int list_delete_entry( List *list, List_Entry *entry ); /* ==================================================================== Get item from position if in list. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_get( List *list, int pos ); /* ==================================================================== Check if item's in list. Return Value: Position of item else -1. ==================================================================== */ int list_check( List *list, void *item ); /* ==================================================================== Return first item stored in list and set current_entry to this entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_first( List *list ); /* ==================================================================== Return last item stored in list and set current_entry to this entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_last( List *list ); /* ==================================================================== Return item in current_entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_current( List *list ); /* ==================================================================== Return an iterator to the list. ==================================================================== */ ListIterator list_iterator( List *list ); /* ==================================================================== Reset current_entry to head of list. ==================================================================== */ void list_reset( List *list ); /* ==================================================================== Get next item and update current_entry (reset if tail reached). Return Value: Item pointer if found else Null (if tail of list). ==================================================================== */ void* list_next( List *list ); /* ==================================================================== Get previous item and update current_entry. Return Value: Item pointer if found else Null (if head of list). ==================================================================== */ void* list_prev( List *list ); /* ==================================================================== Delete the current entry if not tail or head. This is the entry that contains the last returned item by list_next/prev(). Return Value: True if it was a valid deleteable entry. ==================================================================== */ int list_delete_current( List *list ); /* ==================================================================== Check if list is empty. Return Value: True if list counter is 0 else False. ==================================================================== */ int list_empty( List *list ); /* ==================================================================== Return entry containing the passed item. Return Value: True if entry found else False. ==================================================================== */ List_Entry *list_entry( List *list, void *item ); /* ==================================================================== Transfer an entry from one list to another list by removing from 'source' and adding to 'dest' thus if source does not contain the item this is equvalent to list_add( dest, item ). ==================================================================== */ void list_transfer( List *source, List *dest, void *item ); /* ==================================================================== Deqeue the first list entry. (must not use auto_delete therefore) ==================================================================== */ void *list_dequeue( List *list ); /* ==================================================================== Returns the current element and increments the iterator. ==================================================================== */ void *list_iterator_next( ListIterator *it ); /* ==================================================================== Checks whether there are more items in the list. ==================================================================== */ int list_iterator_has_next( ListIterator *it ); #ifdef __cplusplus }; #endif #endif lgeneral-1.3.1/src/config.h0000664000175000017500000000426212140770455012446 00000000000000/*************************************************************************** config.h - description ------------------- begin : Tue Feb 13 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __CONFIG_H #define __CONFIG_H /* stupid name similarity */ #ifdef HAVE_CONFIG_H # include <../config.h> #endif /* configure struct */ typedef struct { /* directory to save config and saved games */ char dir_name[512]; /* gfx options */ int grid; /* hex grid */ int tran; /* transparancy */ int show_bar; /* show unit's life bar and icons */ int width, height, fullscreen; int anim_speed; /* scale animations by this factor: 1=normal, 2=doubled, ... */ /* game options */ int supply; /* units must supply */ int weather; /* does weather have influence? */ int fog_of_war; /* guess what? */ int show_cpu_turn; int deploy_turn; /* allow deployment */ int purchase; /* disable predefined reinfs and allow purchase by prestige */ int ai_debug; /* level of information about AI move */ /* audio stuff */ int sound_on; int sound_volume; int music_on; int music_volume; } Config; /* check if config directory exists; if not create it and set config_dir */ void check_config_dir_name(); /* set config to default */ void reset_config(); /* load config */ void load_config( ); /* save config */ void save_config( ); #endif lgeneral-1.3.1/src/event.h0000664000175000017500000000705712140770455012327 00000000000000/*************************************************************************** event.h - description ------------------- begin : Wed Mar 20 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __EVENT_H #define __EVENT_H /* ==================================================================== Event filter. As long as this is active no KEY or MOUSE events will be available by SDL_PollEvent(). ==================================================================== */ int event_filter( const SDL_Event *event ); /* ==================================================================== Enable/Disable event filtering of mouse and keyboard. ==================================================================== */ void event_enable_filter( void ); void event_disable_filter( void ); void event_clear( void ); /* ==================================================================== Check if an motion event occured since last call. ==================================================================== */ int event_get_motion( int *x, int *y ); /* ==================================================================== Check if a button was pressed and return its value and the current mouse position. ==================================================================== */ int event_get_buttondown( int *button, int *x, int *y ); int event_get_buttonup( int *button, int *x, int *y ); /* ==================================================================== Get current cursor position. ==================================================================== */ void event_get_cursor_pos( int *x, int *y ); /* ==================================================================== Check if 'button' button is currently set. ==================================================================== */ enum { BUTTON_NONE = 0, BUTTON_LEFT, BUTTON_MIDDLE, BUTTON_RIGHT, WHEEL_UP, WHEEL_DOWN }; int event_check_button( int button ); /* ==================================================================== Check if 'key' is currently set. ==================================================================== */ int event_check_key( int key ); /* ==================================================================== Check if SDL_QUIT was received. ==================================================================== */ int event_check_quit(); /* ==================================================================== Clear the SDL event key (keydown events) ==================================================================== */ void event_clear_sdl_queue(); /* ==================================================================== Wait until neither a key nor a button is pressed. ==================================================================== */ void event_wait_until_no_input(); #endif lgeneral-1.3.1/src/main.c0000664000175000017500000002232112501302532012100 00000000000000/*************************************************************************** main.c - description ------------------- begin : Mit Jan 17 16:03:18 CET 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include "lgeneral.h" #include "parser.h" #include "event.h" #include "date.h" #include "nation.h" #include "list.h" #include "unit.h" #include "file.h" #include "map.h" #include "scenario.h" #include "campaign.h" #include "engine.h" #include "player.h" #include "localize.h" #ifdef _GNU_SOURCE # undef _GNU_SOURCE #endif #define _GNU_SOURCE #include /* FIXME already used twice! time to consolidate */ #ifdef __GNUC__ # define NORETURN __attribute__ ((noreturn)) # define PRINTF_STYLE(fmtidx, firstoptidx) __attribute__ ((format(printf,fmtidx,firstoptidx))) #else # define NORETURN # define PRINTF_STYLE(x,y) #endif static void abortf(const char *fmt, ...) NORETURN PRINTF_STYLE(1, 2); static void syntax(int argc, char *argv[]) NORETURN; int term_game = 0; extern Sdl sdl; extern Config config; extern SDL_Cursor *empty_cursor; extern Setup setup; /* command line stuff */ static int suppress_title; static List *player_control; enum Options { OPT_HELP = 256, OPT_CONTROL, OPT_SPEED, OPT_VERSION, OPT_CAMPAIGN_START, OPT_AI_DEBUG }; static struct option long_options[] = { { "campaign-start", 1, 0, OPT_CAMPAIGN_START }, { "control", 1, 0, OPT_CONTROL }, { "deploy-turn", 0, &config.deploy_turn, 1 }, { "no-deploy-turn", 0, &config.deploy_turn, 0 }, { "help", 0, 0, OPT_HELP }, { "notitle", 0, &suppress_title, 1 }, { "speed", 1, 0, OPT_SPEED }, { "version", 0, 0, OPT_VERSION }, { "purchase", 0, &config.purchase, 1 }, { "no-purchase", 0, &config.purchase, 0 }, { "ai-debug", 1, 0, OPT_AI_DEBUG }, { 0, 0, 0, 0 } }; static void show_title() { int dummy; Font *font = 0; SDL_Surface *back = 0; if ( ( back = load_surf( "title.bmp", SDL_SWSURFACE ) ) ) { FULL_DEST( sdl.screen ); FULL_SOURCE( back ); blit_surf(); } if ( ( font = load_font( "font_credit.bmp" ) ) ) { font->align = ALIGN_X_RIGHT | ALIGN_Y_BOTTOM; write_text( font, sdl.screen, sdl.screen->w - 2, sdl.screen->h - 2, tr("(C) 2001-2005 Michael Speck"), 255 ); font->align = ALIGN_X_LEFT | ALIGN_Y_BOTTOM; write_text( font, sdl.screen, 2, sdl.screen->h - 2, tr("http://lgames.sf.net"), 255 ); } refresh_screen( 0, 0, 0, 0 ); /* wait */ SDL_PumpEvents(); event_clear(); while (1) { if (event_check_quit()) break; if (event_get_buttonup( &dummy, &dummy, &dummy )) break; SDL_PumpEvents(); SDL_Delay( 20 ); } event_clear(); /* clear */ free_surf(&back); free_font(&font); } /* aborts with the given error message and exit code 1 */ static void abortf(const char *fmt, ...) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); exit(1); } static void syntax(int argc, char *argv[]) { printf(tr("Syntax: %s [options] [resource-file]\n"), argv[0]); printf(tr("\n" "Options:\n" " --ai-debug=\n" "\t\tVerbosity level of debug messages for AI turn\n" " --campaign-start=\n" "\t\tInitial state to start campaign with (debug only)\n" " --control=\n" "\t\tEntity who controls the current side. is either human,\n" "\t\tor cpu (short: h, or c). Multiple options can be specified.\n" "\t\tIn this case the first option refers to the first side, the\n" "\t\tsecond option to the second side, etc.\n" " --(no-)deploy-turn\n" "\t\tAllow/Disallow deployment of troops before scenario starts.\n" " --(no-)purchase\n" "\t\tEnable/Disable option for purchasing by prestige. If disabled\n" "\t\tthe predefined reinforcements are used.\n" " --notitle\tInhibit title screen\n" " --speed=\tAccelerate animation speed by \n" " --version\tDisplay version information and quit\n" "\n" "\tscenario file relative to scenarios-directory,\n" "\t\tor campaign file relative to campaigns-directory\n" "\t\tunder %s\n"), get_gamedir() ); exit(0); } static void print_version() { /* display some credits */ printf( tr("LGeneral %s\nCopyright 2001-2015 Michael Speck\nPublished under GNU GPL\n---\n"), VERSION ); printf( tr("Looking up data in: %s\n"), get_gamedir() ); #ifndef WITH_SOUND printf( tr("Compiled without sound and music\n") ); #endif } static void add_control(const char *ctlspec) { int ctl = PLAYER_CTRL_NOBODY; assert(ctlspec); switch (ctlspec[0]) { case 'C': case 'c': if (ctlspec[1] == 0 || strcasecmp(ctlspec, "cpu") == 0) ctl = PLAYER_CTRL_CPU; break; case 'H': case 'h': if (ctlspec[1] == 0 || strcasecmp(ctlspec, "human") == 0) ctl = PLAYER_CTRL_HUMAN; break; default: break; } if (ctl != PLAYER_CTRL_CPU && ctl != PLAYER_CTRL_HUMAN) abortf(tr("Invalid player control: %s\n"), ctlspec); if (!player_control) player_control = list_create(LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK); list_add(player_control, (void *)ctl); } static void eval_cmdline(int argc, char **argv) { const char *camp_scen_state = 0; for (;;) { int opt = getopt_long(argc, argv, "", long_options, 0); if (opt == -1) break; switch (opt) { case 0: break; /* directly set */ case OPT_HELP: syntax(argc, argv); break; case OPT_CAMPAIGN_START: camp_scen_state = optarg; break; case OPT_CONTROL: add_control(optarg); break; case OPT_SPEED: config.anim_speed = atoi(optarg); printf(tr("Animation speed up: x%d\n"),config.anim_speed); break; case OPT_AI_DEBUG: config.ai_debug = atoi(optarg); break; case OPT_VERSION: print_version(); exit(0); default: exit(1); } } if (optind < argc) { enum { LOAD_NOTHING, LOAD_SCEN, LOAD_CAMP, LOAD_GAME } load = LOAD_NOTHING; if (scen_load_info(argv[optind])) { setup.type = SETUP_INIT_SCEN; load = LOAD_SCEN; } else if (camp_load_info(argv[optind])) { setup.type = SETUP_INIT_CAMP; setup.scen_state = camp_scen_state; load = LOAD_CAMP; } else { fprintf(stderr, tr("Error loading scenario %s\n"), argv[optind]); exit(1); } /* imply --notitle */ suppress_title = 1; if (load == LOAD_SCEN || load == LOAD_CAMP) { /* apply control */ if (player_control) { int ctl, i; list_reset(player_control); for (i = 0; i < setup.player_count && (ctl = (int)list_next(player_control)); i++) setup.ctrl[i] = ctl; } } } } int main(int argc, char *argv[]) { char window_name[32]; locale_init(0); /* set random seed */ set_random_seed(); /* check config directory path and load config */ check_config_dir_name(); load_config(); eval_cmdline(argc, argv); print_version(); /* init sdl */ init_sdl( SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_AUDIO ); set_video_mode( 640, 480, 0 ); sprintf( window_name, tr("LGeneral %s"), VERSION ); SDL_WM_SetCaption( window_name, 0 ); event_enable_filter(); /* show lgeneral title */ if (!suppress_title) show_title(); /* switch to configs resolution */ sdl.num_vmodes = get_video_modes( &sdl.vmodes ); /* always successful */ set_video_mode( config.width, config.height, config.fullscreen ); #ifdef WITH_SOUND /* initiate audio device */ audio_open(); audio_enable( config.sound_on ); audio_set_volume( config.sound_volume ); #endif engine_create(); SDL_SetCursor( empty_cursor ); engine_run(); engine_delete(); #ifdef WITH_SOUND /* close audio device */ audio_close(); #endif /* save settings */ save_config(); event_disable_filter(); if (player_control) list_delete(player_control); return 0; } lgeneral-1.3.1/src/action.h0000664000175000017500000001112112477053263012452 00000000000000/*************************************************************************** action.h - description ------------------- begin : Mon Apr 1 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __ACTION_H #define __ACTION_H /* ==================================================================== Engine actions ==================================================================== */ enum { ACTION_NONE = 0, ACTION_END_TURN, ACTION_MOVE, ACTION_ATTACK, ACTION_STRATEGIC_ATTACK, /* carpet bombing on _empty_ tile; * if unit present, regular attack checks * for passive carpet bombing */ ACTION_SUPPLY, ACTION_EMBARK_SEA, ACTION_DEBARK_SEA, ACTION_EMBARK_AIR, ACTION_DEBARK_AIR, ACTION_MERGE, ACTION_SPLIT, ACTION_DISBAND, ACTION_DEPLOY, ACTION_DRAW_MAP, ACTION_SET_SPOT_MASK, ACTION_SET_VMODE, ACTION_QUIT, ACTION_RESTART, ACTION_LOAD, ACTION_OVERWRITE, ACTION_START_SCEN, ACTION_START_CAMP }; typedef struct { int type; /* type as above */ Unit *unit; /* unit performing the action */ Unit *target; /* target if attack */ int x, y; /* dest position if movement */ int w, h, full; /* video mode settings */ int id; /* slot id if any */ int str; /* strength of split */ } Action; /* ==================================================================== Create/delete engine action queue ==================================================================== */ void actions_create(); void actions_delete(); /* ==================================================================== Get next action or clear all actions. The returned action struct must be cleared by engine after usage. ==================================================================== */ Action* actions_dequeue(); void actions_clear(); /* ==================================================================== Remove the last action in queue (cancelled confirmation) ==================================================================== */ void action_remove_last(); /* ==================================================================== Returns topmost action in queue or 0 if none available. ==================================================================== */ Action *actions_top(void); /* ==================================================================== Get number of queued actions ==================================================================== */ int actions_count(); /* ==================================================================== Create an engine action and automatically queue it. The engine will perform security checks before handling an action to prevent illegal actions. ==================================================================== */ void action_queue_none(); void action_queue_end_turn(); void action_queue_move( Unit *unit, int x, int y ); void action_queue_attack( Unit *unit, Unit *target ); void action_queue_supply( Unit *unit ); void action_queue_embark_sea( Unit *unit, int x, int y ); void action_queue_debark_sea( Unit *unit, int x, int y ); void action_queue_embark_air( Unit *unit, int x, int y ); void action_queue_debark_air( Unit *unit, int x, int y, int normal_landing ); void action_queue_merge( Unit *unit, Unit *partner ); void action_queue_split( Unit *unit, int str, int x, int y, Unit *partner ); void action_queue_disband( Unit *unit ); void action_queue_deploy( Unit *unit, int x, int y ); void action_queue_draw_map(); void action_queue_set_spot_mask(); void action_queue_set_vmode( int w, int h, int fullscreen ); void action_queue_quit(); void action_queue_restart(); void action_queue_load( int id ); void action_queue_overwrite( int id ); void action_queue_start_scen(); void action_queue_start_camp(); void action_queue_strategic_attack( Unit *unit); #endif lgeneral-1.3.1/src/windows.h0000664000175000017500000005311212140770455012671 00000000000000/*************************************************************************** windows.h - description ------------------- begin : Tue Mar 21 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __WINDOWS_H #define __WINDOWS_H #include "image.h" /* ==================================================================== Label. A frame with a text drawn to it. ==================================================================== */ typedef struct { Frame *frame; Font *def_font; } Label; /* ==================================================================== Create a framed label. A label is hidden and empty per default. The current draw position is x,y in 'surf'. ==================================================================== */ Label *label_create( SDL_Surface *frame, int alpha, Font *def_font, SDL_Surface *surf, int x, int y ); void label_delete( Label **label ); /* ==================================================================== Draw label ==================================================================== */ #define label_hide( label, hide ) buffer_hide( label->frame->img->bkgnd, hide ) #define label_get_bkgnd( label ) buffer_get( label->frame->img->bkgnd ) #define label_draw_bkgnd( label ) buffer_draw( label->frame->img->bkgnd ) #define label_draw( label ) frame_draw( label->frame ) /* ==================================================================== Modify label settings ==================================================================== */ #define label_move( label, x, y ) buffer_move( label->frame->img->bkgnd, x, y ) #define label_set_surface( label, surf ) buffer_set_surface( label->frame->img->bkgnd, surf ) /* ==================================================================== Write text as label contents and set hide = 0. If 'font' is NULL label's default font pointer is used. ==================================================================== */ void label_write( Label *label, Font *font, const char *text ); /* ==================================================================== Button group. A frame with some click buttons. ==================================================================== */ typedef struct { SDL_Rect button_rect; /* region in button surface */ SDL_Rect surf_rect; /* region in buffer::surface */ int id; /* if returned on click */ char tooltip[32]; /* displayed as short help */ int active; /* true if button may be used */ int down; /* true if currently pressed */ int lock; /* keep button down when released */ } Button; typedef struct { Frame *frame; /* frame of group */ SDL_Surface *img; /* button surface. a row is a button, a column is a state */ int w, h; /* button size */ Button *buttons; int button_count; /* number of buttons */ int button_limit; /* limit of buttons */ int base_id; Label *label; /* label for the tooltip */ } Group; /* ==================================================================== Create button group. At maximum 'limit' buttons may be added. A buttons tooltip is displayed in 'label'. An actual button id is computed as base_id + id. ==================================================================== */ Group *group_create( SDL_Surface *frame, int alpha, SDL_Surface *img, int w, int h, int limit, int base_id, Label *label, SDL_Surface *surf, int x, int y ); void group_delete( Group **group ); /* ==================================================================== Add a button at x,y in group. If lock is true this button is a switch. 'id' * group::h is the y_offset of the button. ==================================================================== */ int group_add_button( Group *group, int id, int x, int y, int lock, const char *tooltip ); /* ==================================================================== Add a button at x,y in group. If lock is true this button is a switch. 'icon_id' is used for the button icon instead of 'id' (allows multiple buttons of the same icon) ==================================================================== */ int group_add_button_complex( Group *group, int id, int icon_id, int x, int y, int lock, const char *tooltip ); /* ==================================================================== Get button by global id. ==================================================================== */ Button* group_get_button( Group *group, int id ); /* ==================================================================== Set active state of a button by global id. ==================================================================== */ void group_set_active( Group *group, int id, int active ); /* ==================================================================== Lock button. ==================================================================== */ void group_lock_button( Group *group, int id, int down ); /* ==================================================================== Check motion event and modify buttons and label. Return True if in this frame. ==================================================================== */ int group_handle_motion( Group *group, int x, int y ); /* ==================================================================== Check click event. Return True if button was clicked and return the button. ==================================================================== */ int group_handle_button( Group *group, int button_id, int x, int y, Button **button ); /* ==================================================================== Draw group. ==================================================================== */ #define group_hide( group, hide ) buffer_hide( group->frame->img->bkgnd, hide ) #define group_get_bkgnd( group ) buffer_get( group->frame->img->bkgnd ) #define group_draw_bkgnd( group ) buffer_draw( group->frame->img->bkgnd ) void group_draw( Group *group ); /* ==================================================================== Modify/Get settings. ==================================================================== */ #define group_set_surface( group, surf ) buffer_set_surface( group->frame->img->bkgnd, surf ) #define group_get_geometry(group,x,y,w,h) buffer_get_geometry(group->frame->img->bkgnd,x,y,w,h) void group_move( Group *group, int x, int y ); #define group_get_width( group ) frame_get_width( (group)->frame ) #define group_get_height( group ) frame_get_height( (group)->frame ) /* ==================================================================== Return True if x,y is on group button. ==================================================================== */ int button_focus( Button *button, int x, int y ); /* ==================================================================== Editable label. ==================================================================== */ typedef struct { Label *label; char *text; /* text buffer */ int limit; /* max size of text */ int blink; /* if True cursor is displayed (blinks) */ int blink_time; /* used to switch blink */ int cursor_pos; /* position in text */ int cursor_x; /* position in label */ int last_sym; /* keysym if last key (or -1 if none) */ int last_mod; /* modifier flags of last key */ int last_uni; /* unicode */ int delay; /* delay between key down handle key events */ } Edit; /* ==================================================================== Created edit. ==================================================================== */ Edit *edit_create( SDL_Surface *frame, int alpha, Font *font, int limit, SDL_Surface *surf, int x, int y ); void edit_delete( Edit **edit ); /* ==================================================================== Draw label ==================================================================== */ #define edit_hide( edit, hide ) buffer_hide( edit->label->frame->img->bkgnd, hide ) #define edit_get_bkgnd( edit ) buffer_get( edit->label->frame->img->bkgnd ) #define edit_draw_bkgnd( edit ) buffer_draw( edit->label->frame->img->bkgnd ) void edit_draw( Edit *edit ); /* ==================================================================== Modify label settings ==================================================================== */ #define edit_move( edit, x, y ) buffer_move( edit->label->frame->img->bkgnd, x, y ) #define edit_set_surface( edit, surf ) buffer_set_surface( edit->label->frame->img->bkgnd, surf ) /* ==================================================================== Set buffer and adjust cursor x. If 'newtext' is NULL the current text is displayed. ==================================================================== */ void edit_show( Edit *edit, const char *newtext ); /* ==================================================================== Modify text buffer according to unicode, keysym, and modifier. ==================================================================== */ void edit_handle_key( Edit *edit, int keysym, int modifier, int unicode ); /* ==================================================================== Update blinking cursor and add keys if keydown. Return True if key was written. ==================================================================== */ int edit_update( Edit *edit, int ms ); /* ==================================================================== Listbox ==================================================================== */ typedef struct _LBox { Group *group; /* basic frame + up/down buttons */ /* selection */ List *items; /* list of items */ void *cur_item; /* currently highlighted item */ /* cells */ int step; /* jump this number of cells if wheel up/down */ int cell_offset; /* id of first item displayed */ int cell_count; /* number of cells */ int cell_x, cell_y; /* draw position of first cell */ int cell_w, cell_h; /* size of a cell */ int cell_gap; /* gap between cells (vertical) */ int cell_color; /* color of selection */ SDL_Surface *cell_buffer; /* buffer used to render a single cell */ void (*render_cb)( void*, SDL_Surface* ); /* render item to surface */ } LBox; /* ==================================================================== Create a listbox with a number of cells. The item list is NULL by default. ==================================================================== */ LBox *lbox_create( SDL_Surface *frame, int alpha, int border, SDL_Surface *buttons, int button_w, int button_h, Label *label, int cell_count, int step, int cell_w, int cell_h, int cell_gap, int cell_color, void (*cb)(void*, SDL_Surface*), SDL_Surface *surf, int x, int y ); void lbox_delete( LBox **lbox ); /* ==================================================================== Draw listbox ==================================================================== */ #define lbox_hide( lbox, hide ) buffer_hide( lbox->group->frame->img->bkgnd, hide ) #define lbox_get_bkgnd( lbox ) buffer_get( lbox->group->frame->img->bkgnd ) #define lbox_draw_bkgnd( lbox ) buffer_draw( lbox->group->frame->img->bkgnd ) #define lbox_draw( lbox ) group_draw( lbox->group ) /* ==================================================================== Modify/Get listbox settings ==================================================================== */ #define lbox_set_surface( lbox, surf ) buffer_set_surface( lbox->group->frame->img->bkgnd, surf ) #define lbox_move( lbox, x, y ) group_move( lbox->group, x, y ) #define lbox_get_width( lbox ) group_get_width( (lbox)->group ) #define lbox_get_height( lbox ) group_get_height( (lbox)->group ) #define lbox_get_selected_item( lbox ) ( (lbox)->cur_item ) #define lbox_get_selected_item_index( lbox ) \ (list_check( (lbox)->items, (lbox)->cur_item )) #define lbox_clear_selected_item( lbox ) \ do { (lbox)->cur_item = 0; lbox_apply(lbox); } while (0) void *lbox_select_first_item( LBox *lbox ); #define lbox_is_empty( lbox ) \ ((lbox)->items == NULL || (lbox)->items->count == 0) #define lbox_select_item(lbox, item) \ do { (lbox)->cur_item = (item); lbox_apply(lbox); } while (0) /* ==================================================================== Rebuild the listbox graphic (lbox->group->frame). ==================================================================== */ void lbox_apply( LBox *lbox ); /* ==================================================================== Delete the old item list (if any) and use the new one (will be deleted by this listbox) ==================================================================== */ void lbox_set_items( LBox *lbox, List *items ); #define lbox_clear_items( lbox ) lbox_set_items( lbox, NULL ) /* ==================================================================== handle_motion sets button if up/down has focus and returns the item if any was selected. ==================================================================== */ int lbox_handle_motion( LBox *lbox, int cx, int cy, void **item ); /* ==================================================================== handle_button internally handles up/down click and returns the item if one was selected. ==================================================================== */ int lbox_handle_button( LBox *lbox, int button_id, int cx, int cy, Button **button, void **item ); /** Render listbox item @item (which is a simple string) to listbox cell * surface @buffer. */ void lbox_render_text( void *item, SDL_Surface *buffer ); /* ==================================================================== File dialogue with space to display an info about a file (e.g. scenario information) ==================================================================== */ typedef struct { LBox *lbox; /* file list */ Group *group; /* info frame with ok/cancel buttons */ char root[1024]; /* root directory */ char subdir[1024]; /* current directory in root directory */ void (*file_cb)( const char*, SDL_Surface* ); /* called if a file was selected the full path is given */ int info_x, info_y; /* info position */ SDL_Surface *info_buffer; /* buffer of information */ int button_x, button_y; /* position of first button (right upper corner, new buttons are added to the left) */ int button_dist; /* distance between to buttons (gap + width) */ } FDlg; /* ==================================================================== Create a file dialogue. The listbox is empty as default. The first two buttons in conf_buttons are added as ok and cancel. For all other buttons found in conf_buttons there is spaces reserved and this buttons may be added by fdlg_add_button(). ==================================================================== */ FDlg *fdlg_create( SDL_Surface *lbox_frame, int alpha, int border, SDL_Surface *lbox_buttons, int lbox_button_w, int lbox_button_h, int cell_h, SDL_Surface *conf_frame, SDL_Surface *conf_buttons, int conf_button_w, int conf_button_h, int id_ok, Label *label, void (*lbox_cb)( void*, SDL_Surface* ), void (*file_cb)( const char*, SDL_Surface* ), SDL_Surface *surf, int x, int y ); void fdlg_delete( FDlg **fdlg ); /* ==================================================================== Draw file dialogue ==================================================================== */ void fdlg_hide( FDlg *fdlg, int hide ); void fdlg_get_bkgnd( FDlg *fdlg ); void fdlg_draw_bkgnd( FDlg *fdlg ); void fdlg_draw( FDlg *fdlg ); /* ==================================================================== Modify file dialogue settings ==================================================================== */ void fdlg_set_surface( FDlg *fdlg, SDL_Surface *surf ); void fdlg_move( FDlg *fdlg, int x, int y ); /* ==================================================================== Add button. Graphic is taken from conf_buttons. ==================================================================== */ void fdlg_add_button( FDlg *fdlg, int id, int lock, const char *tooltip ); /* ==================================================================== Show file dialogue at directory root. ==================================================================== */ void fdlg_open( FDlg *fdlg, const char *root ); /* ==================================================================== handle_motion updates the focus of the buttons ==================================================================== */ int fdlg_handle_motion( FDlg *fdlg, int cx, int cy ); /* ==================================================================== handle_button ==================================================================== */ int fdlg_handle_button( FDlg *fdlg, int button_id, int cx, int cy, Button **button ); /* ==================================================================== Setup dialogue ==================================================================== */ typedef struct { LBox *list; Group *ctrl; Group *module; Group *confirm; void (*select_cb)(void*); /* called on selecting an item */ int sel_id; /* id of selected entry */ } SDlg; /* ==================================================================== Create setup dialogue. ==================================================================== */ SDlg *sdlg_create( SDL_Surface *list_frame, SDL_Surface *list_buttons, int list_button_w, int list_button_h, int cell_h, SDL_Surface *ctrl_frame, SDL_Surface *ctrl_buttons, int ctrl_button_w, int ctrl_button_h, int id_ctrl, SDL_Surface *mod_frame, SDL_Surface *mod_buttons, int mod_button_w, int mod_button_h, int id_mod, SDL_Surface *conf_frame, SDL_Surface *conf_buttons, int conf_button_w, int conf_button_h, int id_conf, Label *label, void (*list_render_cb)(void*,SDL_Surface*), void (*list_select_cb)(void*), SDL_Surface *surf, int x, int y ); void sdlg_delete( SDlg **sdlg ); /* ==================================================================== Draw setup dialogue. ==================================================================== */ void sdlg_hide( SDlg *sdlg, int hide ); void sdlg_get_bkgnd( SDlg *sdlg ); void sdlg_draw_bkgnd( SDlg *sdlg ); void sdlg_draw( SDlg *sdlg ); /* ==================================================================== Scenario setup dialogue ==================================================================== */ void sdlg_set_surface( SDlg *sdlg, SDL_Surface *surf ); void sdlg_move( SDlg *sdlg, int x, int y ); /* ==================================================================== handle_motion updates the focus of the buttons ==================================================================== */ int sdlg_handle_motion( SDlg *sdlg, int cx, int cy ); /* ==================================================================== handle_button ==================================================================== */ int sdlg_handle_button( SDlg *sdlg, int button_id, int cx, int cy, Button **button ); /* ==================================================================== Select dialog: A listbox for selection with OK/Cancel buttons ==================================================================== */ typedef struct { Group *button_group; /* okay/cancel buttons */ LBox *select_lbox; } SelectDlg; SelectDlg *select_dlg_create( SDL_Surface *lbox_frame, SDL_Surface *lbox_buttons, int lbox_button_w, int lbox_button_h, int lbox_cell_count, int lbox_cell_w, int lbox_cell_h, void (*lbox_render_cb)(void*, SDL_Surface*), SDL_Surface *conf_frame, SDL_Surface *conf_buttons, int conf_button_w, int conf_button_h, int id_ok, SDL_Surface *surf, int x, int y ); void select_dlg_delete( SelectDlg **sdlg ); int select_dlg_get_width(SelectDlg *sdlg); int select_dlg_get_height(SelectDlg *sdlg); void select_dlg_move( SelectDlg *sdlg, int px, int py); void select_dlg_hide( SelectDlg *sdlg, int value); void select_dlg_draw( SelectDlg *sdlg); void select_dlg_draw_bkgnd( SelectDlg *sdlg); void select_dlg_get_bkgnd( SelectDlg *sdlg); int select_dlg_handle_motion( SelectDlg *sdlg, int cx, int cy); int select_dlg_handle_button( SelectDlg *sdlg, int bid, int cx, int cy, Button **pbtn ); #define select_dlg_set_items( sdlg, items ) \ lbox_set_items( sdlg->select_lbox, items ) #define select_dlg_clear_items( sdlg ) \ lbox_clear_items( sdlg->select_lbox ) #define select_dlg_get_selected_item( sdlg ) \ lbox_get_selected_item( sdlg->select_lbox ) #define select_dlg_get_selected_item_index( sdlg ) \ lbox_get_selected_item_index( sdlg->select_lbox ) #endif lgeneral-1.3.1/src/campaign.h0000664000175000017500000000715212521145676012765 00000000000000/*************************************************************************** campaign.h - description ------------------- begin : Fri Apr 5 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __CAMPAIGN_H #define __CAMPAIGN_H /* ==================================================================== Campaign Scenario entry. ==================================================================== */ typedef struct { char *id; /* entry id */ char *scen; /* scenario file name (if not set this is a selection) */ char *title; /* title string, will be displayed at the top */ char *brief; /* briefing for this scenario */ List *nexts; /* list of strings: result>next_id (if not set this is a final message) */ List *descs; /* textual descriptions for result: result>description */ char *core_transfer; /* set "allowed" if you want to replace core units from this scenario, with core units that survived the former one */ } Camp_Entry; /* ==================================================================== Load campaign. ==================================================================== */ int camp_load( const char *fname ); /* ==================================================================== Load a campaign description (newly allocated string) and setup the setup :) except the type which is set when the engine performs the load action. ==================================================================== */ char* camp_load_info( const char *fname ); void camp_delete(); /* ==================================================================== Query next campaign scenario entry by this result for the current entry. ==================================================================== */ Camp_Entry *camp_get_entry( const char *id ); /* ==================================================================== Return list of result identifiers for current campaign entry. (List of char *) ==================================================================== */ List *camp_get_result_list(); /* ==================================================================== Return textual description of result or 0 if no description. ==================================================================== */ const char *camp_get_description(const char *result); /* ==================================================================== Set the next scenario entry by searching the results in current scenario entry. If 'id' is NULL entry 'first' is loaded ==================================================================== */ int camp_set_next( const char *id ); /* ==================================================================== Set current scenario by camp scen entry id. ==================================================================== */ void camp_set_cur( const char *id ); #endif lgeneral-1.3.1/src/nation.h0000664000175000017500000000601712140770455012471 00000000000000/*************************************************************************** nation.h - description ------------------- begin : Wed Jan 24 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __NATION_H #define __NATION_H /* ==================================================================== A nation provides a full name and a flag icon for units (which belong to a specific nation). ==================================================================== */ typedef struct { char *id; char *name; int flag_offset; int no_purchase; /* whether nation has units to purchase; updated when scenario is loaded */ } Nation; /* ==================================================================== Read nations from SRCDIR/nations/fname. ==================================================================== */ int nations_load( char *fname ); /* ==================================================================== Delete nations. ==================================================================== */ void nations_delete( void ); /* ==================================================================== Search for a nation by id string. If this fails 0 is returned. ==================================================================== */ Nation* nation_find( char *id ); /* ==================================================================== Get nation index (position in list) ==================================================================== */ int nation_get_index( Nation *nation ); /* ==================================================================== Draw flag icon to surface. NATION_DRAW_FLAG_NORMAL: simply draw icon. NATION_DRAW_FLAG_OBJ: add a golden frame to mark as military objective ==================================================================== */ enum { NATION_DRAW_FLAG_NORMAL = 0, NATION_DRAW_FLAG_OBJ }; void nation_draw_flag( Nation *nation, SDL_Surface *surf, int x, int y, int obj ); /* ==================================================================== Get a specific pixel value in a nation's flag. ==================================================================== */ Uint32 nation_get_flag_pixel( Nation *nation, int x, int y ); #endif lgeneral-1.3.1/src/lgeneral.h0000664000175000017500000000320612575246413012773 00000000000000/*************************************************************************** unit_lib.h - description ------------------- begin : Sat Mar 16 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __LGENERAL_H #define __LGENERAL_H /* ==================================================================== General system includes. ==================================================================== */ #include #ifdef WITH_SOUND #include #include "audio.h" #endif #include #include #include #include /* ==================================================================== Important local includes ==================================================================== */ #include "lg-sdl.h" #include "image.h" #include "misc.h" #include "list.h" #include "config.h" #endif lgeneral-1.3.1/src/ai.h0000664000175000017500000000335012140770455011567 00000000000000/*************************************************************************** ai.h - description ------------------- begin : Thu Apr 11 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __AI_H #define __AI_H /* ==================================================================== Initiate turn ==================================================================== */ void ai_init( void ); /* ==================================================================== Queue next actions (if these actions were handled by the engine this function is called again and again until the end_turn action is received). ==================================================================== */ void ai_run( void ); /* ==================================================================== Undo the steps (e.g. memory allocation) made in ai_init() ==================================================================== */ void ai_finalize( void ); #endif lgeneral-1.3.1/src/strat_map.c0000664000175000017500000004300612140770455013165 00000000000000/*************************************************************************** strat_map.c - description ------------------- begin : Fri Apr 5 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include "lgeneral.h" #include "windows.h" #include "unit.h" #include "purchase_dlg.h" #include "gui.h" #include "nation.h" #include "player.h" #include "date.h" #include "map.h" #include "scenario.h" #include "engine.h" #include "strat_map.h" /* ==================================================================== Externals ==================================================================== */ extern Sdl sdl; extern Nation *nations; extern int nation_count; extern int nation_flag_width, nation_flag_height; extern int map_w, map_h; extern int hex_w, hex_h; extern int hex_x_offset, hex_y_offset; extern int terrain_type_count; extern Terrain_Type *terrain_types; extern Mask_Tile **mask; extern Map_Tile **map; extern int air_mode; extern Player *cur_player; /* ==================================================================== Strategic map data. ==================================================================== */ static int screen_x, screen_y; /* position on screen */ static int width, height; /* size of map picture */ static int sm_x_offset, sm_y_offset; /* offset for first strat map tile 0,0 in strat_map */ static int strat_tile_width; static int strat_tile_height; /* size of a shrinked map tile */ static int strat_tile_x_offset; static int strat_tile_y_offset; /* offsets that will be add to one's position for the next tile */ static SDL_Surface *strat_map = 0; /* picture assembled by create_strat_map() */ static SDL_Surface *fog_layer = 0; /* used to buffer fog before addind to strat map */ static SDL_Surface *unit_layer = 0; /* layer with unit flags indicating there position */ static SDL_Surface *flag_layer = 0; /* layer with all flags; white frame means normal; gold frame means objective */ static int tile_count; /* equals map::def::tile_count */ static SDL_Surface **strat_tile_pic = 0; /* shrinked normal map tiles; created in strat_map_create() */ static SDL_Surface *strat_flags = 0; /* resized flag picture containing the nation flags */ static int strat_flag_width, strat_flag_height; /* size of resized strat flag */ static SDL_Surface *blink_dot = 0; /* white and black dot that blinks indicating which unit wasn't moved yet */ static List *dots = 0; /* list of dot positions that need blinking */ static int blink_on = 0; /* switch used for blinking */ /* ==================================================================== LOCALS ==================================================================== */ /* ==================================================================== Get size of strategic map depending on scale where scale == 1: normal size scale == 2: size / 2 scale == 3: size / 3 ... ==================================================================== */ static int scaled_strat_map_width( int scale ) { return ( ( map_w - 1 ) * hex_x_offset / scale ); } static int scaled_strat_map_height( int scale ) { return ( ( map_h - 1 ) * hex_h / scale ); } /* ==================================================================== Updates the picture offset for the strategic map in all map tiles. ==================================================================== */ static void update_strat_image_offset() { int x, y; for ( x = 0; x < map_w; x++ ) for ( y = 0; y < map_h; y++ ) map_tile( x, y )->strat_image_offset = strat_tile_width * map_tile( x, y )->image_offset / hex_w; } /* ==================================================================== PUBLIC ==================================================================== */ /* ==================================================================== Is called after scenario was loaded in init_engine() and creates the strategic map tile pictures, flags and the strat_map itself + unit_layer ==================================================================== */ void strat_map_create() { Uint32 ckey; int i, j, x, y; int strat_tile_count; Uint32 pixel; int hori_scale, vert_scale; int scale; /* scale normal geometry so it fits the screen */ /* try horizontal */ hori_scale = 1; while( scaled_strat_map_width( hori_scale ) > sdl.screen->w ) hori_scale++; vert_scale = 1; while( scaled_strat_map_height( vert_scale ) > sdl.screen->h ) vert_scale++; /* use greater scale */ if ( hori_scale > vert_scale ) scale = hori_scale; else scale = vert_scale; /* get strat map tile size */ strat_tile_width = hex_w / scale; strat_tile_height = hex_h / scale; strat_tile_x_offset = hex_x_offset / scale; strat_tile_y_offset = hex_y_offset / scale; /* create strat tile array */ tile_count = terrain_type_count; strat_tile_pic = calloc( tile_count, sizeof( SDL_Surface* ) ); /* create strat tiles */ for ( i = 0; i < tile_count; i++ ) { /* how many tiles are rowed? */ strat_tile_count = terrain_types[i].images[0]->w / hex_w; /* create strat_pic */ strat_tile_pic[i] = create_surf( strat_tile_count * strat_tile_width, strat_tile_height, SDL_SWSURFACE ); /* clear to color key */ ckey = get_pixel( terrain_types[i].images[0], 0, 0 ); FULL_DEST( strat_tile_pic[i] ); fill_surf( ckey ); SDL_SetColorKey( strat_tile_pic[i], SDL_SRCCOLORKEY, ckey ); /* copy pixels from pic to strat_pic if strat_fog is none transparent */ for ( j = 0; j < strat_tile_count; j++ ) for ( x = 0; x < strat_tile_width; x++ ) for ( y = 0; y < strat_tile_height; y++ ) { /* we have the pixel in strat_pic by x + j * strat_fog_pic->w,y */ /* no we need the aquivalent pixel in tiles[i]->pic to copy it */ pixel = get_pixel( terrain_types[i].images[0], j * hex_w + hex_w * x / strat_tile_width, hex_h * y / strat_tile_height ); set_pixel( strat_tile_pic[i], j * strat_tile_width + x, y, pixel ); } } /* update strat picture offset in all map tiles */ update_strat_image_offset(); /* resized nation flags */ strat_flag_width = strat_tile_width - 2; strat_flag_height = strat_tile_height - 2; strat_flags = create_surf( strat_flag_width, strat_flag_height * nation_count, SDL_SWSURFACE ); /* scale down */ for ( i = 0; i < nation_count; i++ ) for ( x = 0; x < strat_flag_width; x++ ) for ( y = 0; y < strat_flag_height; y++ ) { pixel = nation_get_flag_pixel( &nations[i], nation_flag_width * x / strat_flag_width, nation_flag_height * y / strat_flag_height ); set_pixel( strat_flags, x, i * strat_flag_height + y, pixel ); } /* measurements */ width = ( map_w - 1 ) * strat_tile_x_offset; sm_x_offset = -strat_tile_width + strat_tile_x_offset; height = ( map_h - 1 ) * strat_tile_height; sm_y_offset = -strat_tile_height / 2; screen_x = ( sdl.screen->w - width ) / 2; screen_y = ( sdl.screen->h - height ) / 2; /* build white rectangle */ blink_dot = create_surf( 2, 2, SDL_SWSURFACE ); set_pixel( blink_dot, 0, 0, SDL_MapRGB( blink_dot->format, 255, 255, 255 ) ); set_pixel( blink_dot, 1, 0, SDL_MapRGB( blink_dot->format, 16, 16, 16 ) ); set_pixel( blink_dot, 1, 1, SDL_MapRGB( blink_dot->format, 255, 255, 255 ) ); set_pixel( blink_dot, 0, 1, SDL_MapRGB( blink_dot->format, 16, 16, 16 ) ); /* position list */ dots = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); } /* ==================================================================== Clean up stuff that was allocated by strat_map_create() ==================================================================== */ void strat_map_delete() { int i; if ( strat_tile_pic ) { for ( i = 0; i < tile_count; i++ ) free_surf( &strat_tile_pic[i] ); free( strat_tile_pic ); strat_tile_pic = 0; } free_surf( &strat_flags ); free_surf( &strat_map ); free_surf( &fog_layer ); free_surf( &unit_layer ); free_surf( &flag_layer ); free_surf( &blink_dot ); if ( dots ) { list_delete( dots ); dots = 0; } } /* ==================================================================== Update the bitmap containing the strategic map. ==================================================================== */ void strat_map_update_terrain_layer() { int i, j; /* reallocate */ free_surf( &strat_map ); free_surf( &fog_layer ); strat_map = create_surf( width, height, SDL_SWSURFACE ); SDL_FillRect( strat_map, 0, 0x0 ); fog_layer = create_surf( width, height, SDL_SWSURFACE ); SDL_FillRect( fog_layer, 0, 0x0 ); /* first gather all fogged tiles without alpha */ for ( j = 0; j < map_h; j++ ) for ( i = 0; i < map_w; i++ ) if ( mask[i][j].fog ) { DEST( fog_layer, sm_x_offset + i * strat_tile_x_offset, sm_y_offset + j * strat_tile_height + ( i & 1 ) * strat_tile_y_offset, strat_tile_width, strat_tile_height ); SOURCE( strat_tile_pic[map_tile( i, j )->terrain_id], map_tile( i, j )->strat_image_offset, 0 ); blit_surf(); } /* now add this fog map with transparency to strat_map */ FULL_DEST( strat_map ); FULL_SOURCE( fog_layer ); alpha_blit_surf( 255 - FOG_ALPHA ); /* now add unfogged map tiles */ for ( j = 0; j < map_h; j++ ) for ( i = 0; i < map_w; i++ ) if ( !mask[i][j].fog ) { DEST( strat_map, sm_x_offset + i * strat_tile_x_offset, sm_y_offset + j * strat_tile_height + ( i & 1 ) * strat_tile_y_offset, strat_tile_width, strat_tile_height ); SOURCE( strat_tile_pic[map_tile( i, j )->terrain_id], map_tile( i, j )->strat_image_offset, 0 ); blit_surf(); } } typedef struct { int x, y; Nation *nation; } DotPos; void strat_map_update_unit_layer() { int i, j; Unit *unit; DotPos *dotpos = 0; list_clear( dots ); free_surf( &unit_layer ); free_surf( &flag_layer ); unit_layer = create_surf( width, height, SDL_SWSURFACE ); SDL_FillRect( unit_layer, 0, 0x0 ); flag_layer = create_surf( width, height, SDL_SWSURFACE ); SDL_FillRect( flag_layer, 0, 0x0 ); /* draw tiles; fogged tiles are copied transparent with the inverse of FOG_ALPHA */ for ( j = 0; j < map_h; j++ ) for ( i = 0; i < map_w; i++ ) { if ( map_tile( i, j )->nation != 0 ) { /* draw frame and flag only if objective */ if ( map_tile( i, j )->obj ) { DEST( flag_layer, sm_x_offset + i * strat_tile_x_offset, sm_y_offset + j * strat_tile_height + ( i & 1 ) * strat_tile_y_offset, strat_tile_width, strat_tile_height ); fill_surf( 0xffff00 ); /* add flag */ DEST( flag_layer, sm_x_offset + i * strat_tile_x_offset + 1, sm_y_offset + j * strat_tile_height + ( i & 1 ) * strat_tile_y_offset + 1, strat_flag_width, strat_flag_height ); SOURCE( strat_flags, 0, nation_get_index( map_tile( i, j )->nation ) * strat_flag_height ); blit_surf(); } } unit = 0; if ( air_mode && map[i][j].a_unit ) unit = map_tile( i, j )->a_unit; if ( !air_mode && map[i][j].g_unit ) unit = map_tile( i, j )->g_unit; if ( map_mask_tile( i, j )->fog ) unit = 0; if ( unit ) { /* nation flag has a small frame of one pixel */ DEST( unit_layer, sm_x_offset + i * strat_tile_x_offset + 1, sm_y_offset + j * strat_tile_height + ( i & 1 ) * strat_tile_y_offset + 1, strat_flag_width, strat_flag_height ); SOURCE( strat_flags, 0, nation_get_index( unit->nation ) * strat_flag_height ); blit_surf(); if ( cur_player ) if ( cur_player == unit->player ) if ( unit->cur_mov > 0 ) { /* unit needs a blinking spot */ dotpos = calloc( 1, sizeof( DotPos ) ); dotpos->x = sm_x_offset + i * strat_tile_x_offset + 1/* + ( strat_flag_width - blink_dot->w ) / 2*/; dotpos->y = sm_y_offset + j * strat_tile_height + ( i & 1 ) * strat_tile_y_offset + 1/* + ( strat_flag_height - blink_dot->h ) / 2*/; dotpos->nation = unit->nation; list_add( dots, dotpos ); } } } } void strat_map_draw() { SDL_FillRect( sdl.screen, 0, 0x0 ); DEST( sdl.screen, screen_x, screen_y, width, height ); SOURCE( strat_map, 0, 0 ); blit_surf(); DEST( sdl.screen, screen_x, screen_y, width, height ); SOURCE( flag_layer, 0, 0 ); blit_surf(); DEST( sdl.screen, screen_x, screen_y, width, height ); SOURCE( unit_layer, 0, 0 ); blit_surf(); } /* ==================================================================== Handle motion input. If mouse pointer is on a map tile x,y and true is returned. ==================================================================== */ int strat_map_get_pos( int cx, int cy, int *map_x, int *map_y ) { int x = 0, y = 0; int tile_x_offset, tile_y_offset; int tile_x, tile_y; Uint32 ckey; /* check if outside of map */ if ( cx < screen_x || cy < screen_y ) return 0; if ( cx >= screen_x + width || cy >= screen_y + height ) return 0; /* clip mouse pos to mask */ cx -= screen_x; cy -= screen_y; /* get the map offset in screen from mouse position */ x = ( cx - sm_x_offset ) / strat_tile_x_offset; if ( x & 1 ) y = ( cy - ( strat_tile_height >> 1 ) - sm_y_offset ) / strat_tile_height; else y = ( cy - sm_y_offset ) / strat_tile_height; /* get the starting position of this strat map tile at x,y in surface strat_map */ tile_x_offset = sm_x_offset; tile_y_offset = sm_y_offset; tile_x_offset += x * strat_tile_x_offset; tile_y_offset += y * strat_tile_height; if ( x & 1 ) tile_y_offset += strat_tile_height >> 1; /* now test where exactly the mouse pointer is in this tile using strat_tile_pic[0] */ tile_x = cx - tile_x_offset; tile_y = cy - tile_y_offset; ckey = get_pixel( strat_tile_pic[0], 0, 0 ); if ( get_pixel( strat_tile_pic[0], tile_x, tile_y ) == ckey ) { if ( tile_y < strat_tile_y_offset && !( x & 1 ) ) y--; if ( tile_y >= strat_tile_y_offset && (x & 1 ) ) y++; x--; } /* assign */ *map_x = x; *map_y = y; return 1; } /* ==================================================================== Blink the dots that show unmoved units. ==================================================================== */ void strat_map_blink() { DotPos *pos; blink_on = !blink_on; list_reset( dots ); while ( ( pos = list_next( dots ) ) ) { if ( blink_on ) { DEST( sdl.screen, screen_x + pos->x, screen_y + pos->y, strat_flag_width, strat_flag_height ); SOURCE( strat_flags, 0, nation_get_index( pos->nation ) * strat_flag_height ); blit_surf(); } else { DEST( sdl.screen, screen_x + pos->x, screen_y + pos->y, strat_flag_width, strat_flag_height ); SOURCE( strat_map, pos->x, pos->y ); blit_surf(); SOURCE( unit_layer, pos->x, pos->y ); alpha_blit_surf( 96 ); } /* if ( blink_on ) { DEST( sdl.screen, screen_x + pos->x, screen_y + pos->y, blink_dot->w, blink_dot->h ); SOURCE( blink_dot, 0, 0 ); blit_surf(); } else { DEST( sdl.screen, screen_x + pos->x, screen_y + pos->y, blink_dot->w, blink_dot->h ); SOURCE( unit_layer, pos->x, pos->y ); blit_surf(); }*/ } add_refresh_region( screen_x, screen_y, width, height ); } lgeneral-1.3.1/src/strat_map.h0000664000175000017500000000453412140770455013175 00000000000000/*************************************************************************** strat_map.h - description ------------------- begin : Fri Apr 5 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __STRATMAP_H #define __STRATMAP_H /* ==================================================================== Is called after scenario was loaded in init_engine() and creates the strategic map tile pictures, flags and the strat_map itself + unit_layer ==================================================================== */ void strat_map_create(); /* ==================================================================== Clean up stuff that was allocated by strat_map_create() ==================================================================== */ void strat_map_delete(); /* ==================================================================== Update/draw the bitmap containing the strategic map. ==================================================================== */ void strat_map_update_terrain_layer(); void strat_map_update_unit_layer(); void strat_map_draw(); /* ==================================================================== Handle motion input. If mouse pointer is on a map tile x,y and true is returned. ==================================================================== */ int strat_map_get_pos( int cx, int cy, int *x, int *y ); /* ==================================================================== Blink the dots that show unmoved units. ==================================================================== */ void strat_map_blink(); #endif lgeneral-1.3.1/src/campaigns/0000775000175000017500000000000012643745101013044 500000000000000lgeneral-1.3.1/src/campaigns/PG0000664000175000017500000015377312555202140013226 00000000000000name = "World War II" desc = "Nazi Germany starts World War II, attempting to seize the world." authors = "Michael Speck, Leo Savernik" domain = pg [***** Differences compared to original PG campaign ***** You may choose EarlyMoscow if you achieve a major victory in Barbarossa (without spending prestige, because this paradigm does not exist). There is no possibility to play SealionPlus (Italian navy aids invasion). ] scenarios { [***** Europe *****] first { scenario = pg/Poland title = "1st September 1939" briefing = "Fall Weiß, the conquest of Poland has commenced. Your order is to make an inroad breach through the main Polish defenses and take the towns of Kutno and Lodz by no later than the 10th of September. Failing to do so could cause England and France to declare war against Germany. An earlier completion may make available more resources to your for the assault of Warsaw." next { major = warsaw minor = warsaw defeat = gameover } debriefings { major = "Your quick breakthrough in Poland enabled High Command to make additional resources available to you." minor = "You managed to break resistence in time before the Allies could react. The gates to Warsaw are now wide open." defeat = "Your failure to make an inroad success has lead to the Allies making an attack on Germany." } } warsaw { scenario = pg/Warsaw title = "10th September 1939" briefing = "Despite of your efforts England and France have entered the war against Germany. Additionally, our Eastern ally the Soviet Union has begun invading Poland to take its share of the cake. Thus it is imperative that you advance to the Vistula river and take the key city of Warsaw and surrounding objectives by no later than the 30th of September." next { major = norway minor = lowcountries defeat = gameover } debriefings { major = "Your performance in Poland has been outstanding, Herr General! You besieged and captured all objectives before the Soviet Union was able to catch up. Your forces have been diverted to the Western border to guard against French and English aggressions." minor = "Congratulations, you have won the war against Poland, Herr General! You besieged and captured all objectives before the Soviet Union was able to catch up. Your forces have been diverted to the Western border to guard against French and English aggressions." defeat = "Losing on the Polish front was an utter disaster. Your scandalous leadership has enabled the English and French to build up an formidable army which has begun invading Germany." } coretransfer = "allowed" } norway { scenario = pg/Norway title = "9th April 1940" briefing = "High Command has got a special order for you. In order to secure supply lines of Swedish ore, we prepared operation Weserübung, the invasion of Norway before the English will do so. You have to take Oslo, Stavanger-airport, and a number of Northern towns before the 3rd of May." next { major = lowcountries minor = lowcountries defeat = lowcountries } debriefings { major = "Excellent, Herr General! Your quick taking of Norway has enabled us to expel the English forces from Norway and station our fleet there. Our supply lines should be safe. You have been awarded command over troops at the Western border." minor = "Taking all objectives has enabled us to expel the English forces from Norway and station our fleet there. Our supply lines should be safe. You have been awarded command over troops at the Western border." defeat = "Despite your heroic efforts, Norwegian and English resistence was too strong to clean the territory from enemy influence. As the state of affairs is heating up on the Western border, we had to retract all forces from Noway, and divert you there." } } lowcountries { scenario = pg/LowCountries title = "10th May 1940" briefing = "Now it is the time to make the French and English forces pay for their declarations of war. In an audacious two-pronged attack, your Northern forces will break through Liege, Brussels, Maubeuge, while your Southern forces will force their way through the rough Ardennes forests and take by surprise the northernmost outpost of the Maginot-line, Sedan. Both forces are bound to pass the battlefields of the World War and capture all objectives by the 8th of June. If you capture your objectives much earlier, this could give us a chance to prepare an invasion of England this year." next { major = france_sealion minor = france defeat = france } debriefings { major = "You passed with ease the battlefields our troops bravely but fruitlessly attacked in the World War. We reassembled the troops for the final assault on France, and we utilised the additional time to start preparations for the invasion of England." minor = "You have proven to be a worthy Panzer General and secured the lowlands separating Germany from the heart of France. Now, the final assault on France is ready to commence. Unfortunately, time did not permit preparations of an invasion of England." defeat = "Despite your initially slow advance, by an overwhelming array of men and material we eventually drove the French forces over the Somme river. Yet we cannot tolerate suboptimal performance like this any longer. Your deeds need to improve. Needlessly to say that our chance of invading England this year has been lost." } } france_sealion { scenario = pg/France title = "@france" briefing = "France is weakened and open to attack. Since 1871, this is the first chance to battle down the mightiest army of Europe and face total victory on the Western continent. You are ordered to take Paris and various strategic coastal towns as well as towns of the hinterland. Timing is important, as only an early completion of your mission enables us to finish preparations in time for the invasion of England." next { major = sealion40 minor = france_selection defeat = gameover } debriefings { major = "@france" minor = "Congratulations for conquering France and for bringing an overwhelming victory to the Reich. France has surrendered, and its dependencies will be put under German protectorate. Yet it was too late to finish preparations for the invasion of England in time." defeat = "@france" } coretransfer = "allowed" } france { scenario = pg/France title = "5th June 1940" briefing = "France is weakened and open to attack. Since 1871, this is the first chance to battle down the mightiest army of Europe and face total victory on the Western continent. You are ordered to take Paris and various strategic coastal towns as well as towns of the hinterland." next { major = france_selection minor = france_selection defeat = gameover } debriefings { major = "Your performance was outstanding and has brought an overwhelming victory to the Reich. My humiliation of 1918 is revenged. France has surrendered, and its dependencies will be put under German protectorate." minor = "Congratulations for conquering France and for bringing an overwhelming victory to the Reich. France has surrendered, and its dependencies will be put under German protectorate." defeat = "Making Germany face another disaster like in the World War has forced the Reich to surrender and sign an overly unfavourable peace treaty." } coretransfer = "allowed" } france_selection { briefing = "Now there are two front lines to take care of. Herr General, which theater do you want to participate in?" next { east = balkans south = northafrica } options { east = "Balkans" south = "North Africa" } } sealion40 { scenario = pg/Sealion40 title = "1st September 1940" briefing = "Your decisive and early success in France gave us plenty of time to prepare operation Sealion, the invasion of England. You have to capture London and various key towns in the vicinity before Autumn weather sets in, causing rough sea and putting our supply lines at stake. This is a unique chance to force England to surrender and end the war." next { major = barbarossa_XE minor = sealion40_selection defeat = gameover } debriefings { major = "England has surrendered! It is to be attributed to your talent and to the high morale of your troops that you achieved an unprecedented victory over the British Empire. England, Scotland, Ireland, and the oversea dependencies are now governed by German administration. You are herewith awarded one of the highest order medals of the Reich, the Iron Cross with Oak Leaves, and Swords." minor = "Your brave efforts lead to the capturing of all Southern England. Unfortunately, bad weather and interference by the strong British fleet from the unattacked North have wreaked havoc on our supply lines. Thus, we were forced to retract all troops back to the continent." defeat = "Your failure to conquer England had given the enemy a chance to build up resistence and assemble a naval fleet of formidable strength crippling our supply lines. Thus, our expeditionary forces were severely decimated, forcing us to sign an unfavorable peace treaty." } } sealion40_selection { briefing = "@france_selection" next { east = balkans south = northafrica } options { east = "@france_selection" south = "@france_selection" } } balkans { scenario = pg/Balkans title = "6th April 1941" briefing = "Negotiations with Yugoslavia have failed which in order made them turn against us. Italian forces are fighting a stiff battle at the Metaxas line in Greece and have not been able to gain substancial advantages for over a year, and they may not sustain any longer. For our upcoming invasion of Russia we cannot tolerate an undefeated enemy in our back. Thus it is your mission to capture key Yugoslav towns to make them surrender, and additionally aid Italian troops in their hapless fight against Greek and English adversaries." next { major = crete minor = barbarossa defeat = barbarossa } debriefings { major = "The quick and decisive blow you delivered to both Yugoslavia and Greece enabled High Command to prepare an airborne invasion of Crete. You have served the country well, and are awarded command over the operation." minor = "With Yugoslavia and Greece having surrendered, nothing can stop our upcoming invasion of Russia." defeat = "With Yugoslavia and Greece partially undefeated, we had to spare additional troops for the defence lines that will be missing on the Russian front." } } crete { scenario = pg/Crete title = "20th May 1941" briefing = "Crete has been captured by the English in 1940 as a reaction on Italy's invasion of Albania. Since then, the English have erected air and naval bases which are likely to interfere with our upcoming operations against Soviet Russia. It is your order to take the island, capture the strategic bases, and drive the English troops into the sea. This is the largest airborne operation seen in this war." next { major = barbarossa minor = barbarossa defeat = barbarossa } debriefings { major = "Excellent! Despite heavy resistence, the suppremacy over the Mediterranean Sea is ours. Nothing can stop our operations in Russia now." minor = "You have done well. Despite heavy resistence, the suppremacy over the Mediterranean Sea is ours. Nothing can stop our operations in Russia now." defeat = "Resistence was much heavier than anticipated from reconnaissance flights. Thus our troops faced heavy losses, and we had to retreat to the continent. Crete will pose a latent danger for the ongoing operations on the Eastern front." } } [***** Eastern Branch *****] barbarossa_XE { scenario = pg/Barbarossa title = "@barbarossa" briefing = "@barbarossa" next { major = barbarossa_XE_selection minor = kiev_XE defeat = gameover } debriefings { defeat = "@barbarossa" } } barbarossa { scenario = pg/Barbarossa title = "22nd June 1941" briefing = "Eventually, time has come for operation Barbarossa, the long-term planned invasion of Soviet Russia. You are in charge of Army Group Center, and you have to conduct the main thrust through Soviet defences and keep them running. In order to prevent the enemy from establishing a front line and mobilise reserves from the rear, you have to capture Smolensk and all other objectives before the 7th of September." next { major = barbarossa_selection minor = kiev defeat = gameover } debriefings { defeat = "Russian reserves eventually stopped our slow advance and built up momentum to drive our troops back into the Reich." } } barbarossa_XE_selection { briefing = "@barbarossa_selection" next { moscow = earlymoscow_XE kiev = kiev_XE } options { moscow = "@barbarossa_selection" kiev = "@barbarossa_selection" } coretransfer = "allowed" } barbarossa_selection { briefing = "High Command was impressed to such an extent by your excellent skills that we decided to delegate the decision of a critical strategic question to you.##General staff is divided into two camps. The first is proposing the opportunity to pocket and destroy a large amount of Soviet forces near Kiev before we proceed on our march towards Moscow. The second is proposing to leave aside Kiev and directly head towards Moscow before Autumn weather will slow down our advance.##Herr General, which strategy shall we pursue?" next { moscow = earlymoscow kiev = kiev } options { moscow = "We take the early route towards Moscow." kiev = "Let us battle the Soviet forces around Kiev." } coretransfer = "allowed" } kiev_XE { scenario = pg/Kiev title = "@kiev" briefing = "@kiev" next { major = moscow41_XE minor = moscow41_XE defeat = sevastapol_XE } debriefings { major = "@kiev" minor = "@kiev" defeat = "@kiev" } coretransfer = "allowed" } kiev { scenario = pg/Kiev title = "23rd August 1941" briefing = "There has risen an opportunity to terminally cripple Russian forces. Around Kiev we have encountered a large amount of Russian troops. Using blitzkrieg tactics to their fullest extent, you are ordered to pocket and annihilate Soviet resistence in Kiev and surrounding towns. In order to continue our advance towards moscow, it is imperative that you capture all of your objective by no later than the 20th of September." next { major = moscow41 minor = moscow41 defeat = sevastapol } debriefings { major = "After your stunning victory over Soviet resistence, we expect Russia's reserves of men an material to be depleted." minor = "After your victory over Soviet resistence, we expect Russia's reserves of men an material to be depleted." defeat = "Your failure to decimate Russian troops in time enabled them to assemble and perform a counter-strike against our lines. Thus for 1941, all of our operations on the Eastern front had to cease." } coretransfer = "from:pg/Barbarossa" } earlymoscow_XE { scenario = pg/EarlyMoscow title = "@earlymoscow" briefing = "@earlymoscow" next { major = washington_prep minor = sevastapol_XE defeat = sevastapol_XE } debriefings { major = "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have achieved what Napoleon only dreamed of. All of Russia has been put under German administration, and we have already begun exploiting its vast resources. Your decision to take the early route towards Moscow was right, and therefore you get awarded the highest order medal of the Reich, the Knight's Cross with Oak Leaves and Swords." minor = "@earlymoscow" defeat = "@earlymoscow" } coretransfer = "allowed" } earlymoscow { scenario = pg/EarlyMoscow title = "8th September 1941" briefing = "Moscow, capital and industrial, and logistical center of Russia, is the ultimate objective you have to strive for on the Eastern front. You have to capture Moscow and all other objectives by the 16th of November at the latest. Yet to prevent autumn weather to halt our advance, you should finish your mission several weeks earlier." next { major = sealion43_XR minor = moscow41_selection defeat = sevastapol } debriefings { major = "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have achieved what Napoleon only dreamed of. All of Russia has been put under German administration, and we have already begun exploiting its vast resources. Your decision to take the early route towards Moscow was right, and therefore you get awarded one of the highest order medals of the Reich, the Iron Cross with Oak Leaves and Swords." minor = "@moscow41" defeat = "@moscow41" } coretransfer = "allowed" } moscow41_XE { scenario = pg/Moscow41 title = "@moscow41" briefing = "@moscow41" next { major = washington_prep minor = sevastapol_XE defeat = sevastapol_XE } debriefings { major = "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have achieved what Napoleon only dreamed of. All of Russia has been put under German administration, and we have already begun exploiting its vast resources. For your leadership skills, you get awarded the highest order medal of the Reich, the Knight's Cross with Oak Leaves and Swords." minor = "@moscow41" defeat = "@moscow41" } coretransfer = "allowed" } moscow41 { scenario = pg/Moscow41 title = "2nd October 1941" briefing = "Moscow, capital and industrial, and logistical center of Russia, is the ultimate objective you have to strive for on the Eastern front. You have to capture Moscow and all other objectives by the 4th of December at the latest. Yet to prevent autumn weather to slow down our advance, you should finish your mission several weeks earlier." next { major = sealion43_XR minor = moscow41_selection defeat = sevastapol } debriefings { major = "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have achieved what Napoleon only dreamed of. All of Russia has been put under German administration, and we have already begun exploiting its vast resources. For your leadership skills, you get awarded one of the highest order medals of the Reich, the Iron Cross with Oak Leaves and Swords." minor = "Your initial capture of Moscow let arise hope that Russia would surrender. Unfortunately, fresh Siberian reserves started a counter-attack and expelled our exhausted and worn down spearheads out of the capital. While we managed to establish a stable front line again, we could not attempt another advance in 1941." defeat = "Not capturing Moscow in time gave the Russian adversaries plenty of opportunity to mobilise troops from Siberia and perform a counterattack. While we managed to establish a stable front line again, we could not attempt another advance in 1941." } coretransfer = "allowed" } moscow41_selection { briefing = "To prove your skills in another theater, High Command offers to you leadership over the Africa Corps fighting at El Alamein.##Herr General, do you wish to be transferred to Africa, or do you want to stay on the Eastern front?" next { south = elalamein east = sevastapol } options { south = "El Alamein" east = "Eastern front" } } [nooooooooooo! it is called sevast*o*pol, but for compatibility reasons, we cannot fix it anymore ] sevastapol_XE { scenario = pg/Sevastapol title = "@sevastapol" briefing = "@sevastapol" next { major = stalingrad_XE minor = stalingrad_XE defeat = minordef } debriefings { major = "@sevastapol" minor = "@sevastapol" defeat = "@sevastapol" } } sevastapol { scenario = pg/Sevastapol title = "7th June 1942" briefing = "We now set our sights on Army Group South which has besieged the Black Sea port of Sevastopol for nearly one year. The time is ripe for an eventual assault on Sevastopol, and you are ordered to conduct it. You have to force your way through the town of Sevastopol and capture all objectives by no later than the 23rd of June. After the Moscow desaster last year, we cannot allow for another defeat." next { major = stalingrad minor = stalingrad defeat = gameover } debriefings { major = "Excellent! By taking Sevastopol and the Krim peninsula early, we could annihilate the Russian Black Sea fleet. There will be no more interference on our ongoing advance to the East." minor = "By your taking of Sevastopol and the Krim peninsula in time, we could annihilate the Russian Black Sea fleet. There will be no more interference on our ongoing advance to the East." defeat = "Losing two battles in a row cannot be accepted." } } stalingrad_XE { scenario = pg/Stalingrad title = "@stalingrad" briefing = "@stalingrad" next { major = moscow42_XE minor = kharkov defeat = kharkov } debriefings { major = "@stalingrad" minor = "@stalingrad" defeat = "@stalingrad" } } stalingrad { scenario = pg/Stalingrad title = "25th June 1942" briefing = "Your next order is to lead the advance towards the industrial center of Stalingrad. Taking Stalingrad will cripple Russia's war industry, and cut supply lines over the Volga river. Thus, you must capture Stalingrad and all other objectives by the 22nd of November at the latest. Keep in mind that if we want to get another chance to advance towards Moscow this year, you have to finish your mission before October. Do not underestimate the vast distances of the steppe, and the supply shortage resulting thereof." next { major = moscow42 minor = kharkov defeat = kharkov } debriefings { major = "Stalin's town lies down in ruins, and German troops control the traffic on the Volga river, preventing the Russians to build up a force for a counter-attack. Thus, you can lead the advance towards Moscow without interference from the rear." minor = "Although you managed to capture and destroy Stalingrad, shortages in supplies, and winter weather have exhausted our troops. This allowed the Russians to cut off large parts of the 6th Army in Stalingrad and annihilate them, and drive back the Eastern front." defeat = "Your inability to reach Stalingrad as well as shortages in supplies allowed the Russians to break through the thin defense lines of our exhausted troops, and to cut off large parts of the 6th Army in Stalingrad and annihilate them, and drive back the Eastern front." } } moscow43_XE { scenario = pg/Moscow43 title = "9th October 1943" briefing = "@moscow43" next { major = washington_prep minor = byelorussia_XE defeat = byelorussia_XE } debriefings { major = "@moscow41_XE" minor = "@moscow43" defeat = "@moscow43" } } moscow43 { scenario = pg/Moscow43 title = "9th October 1943" briefing = "For this year, we have gained another chance to advance towards Moscow, the logistical and industrial center of Russia. It is imperative that you take Moscow and all other objectives by no later than the 28th of December before winter weather will bring our advance to a halt. However, to garrison the city against russian counterattacks, you should finish your mission several weeks earlier. This is the ultimate chance to end the war in the East." next { major = dday_XR minor = moscow43_selection defeat = byelorussia } debriefings { major = "@moscow41" minor = "Your initial capture of Moscow let arise hope that Russia would surrender. Unfortunately, the combination of bad weather and Russian reserves did not enable our exhausted troops to sustain any longer. While we managed to establish a stable front line again, the possibility for another advance towards Moscow has gone for good." defeat = "Not capturing Moscow in time gave the Russian adversaries plenty of opportunity to mobilise troops from Siberia and perform a counterattack. While we managed to establish a stable front line again, our hopes to capture Moscow are now gone for good." } } moscow43_selection { briefing = "Now there are two opportunities to prove your skills against mighty odds. In the east, the Russians prepare their first summer offensive against Army Group Center, while in the west, the Allied prepare their invasion of france.##Which theater do you want to take leadership of?" next { east = byelorussia west = dday } options { east = "Byelorussia" west = "D-Day" } } moscow42_XE { scenario = pg/Moscow42 title = "@moscow42" briefing = "@moscow42" next { major = washington_prep minor = kharkov_XE defeat = kharkov_XE } debriefings { major = "@moscow41_XE" minor = "@moscow42" defeat = "@moscow42" } } moscow42 { scenario = pg/Moscow42 title = "1st October 1942" briefing = "We have now another chance to advance towards Moscow and end the war in the East. However, the Soviet defenders are much better prepared this time. Therefore, it is imperative that you capture Moscow and a multitude of other objectives by the 28th of December at the latest. However, to make the Russians actually surrender, it is necessary to finish your mission several weeks earlier." next { major = sealion43_XR minor = kharkov defeat = kharkov } debriefings { major = "@moscow41" minor = "Your initial capture of Moscow let arise hope that Russia would surrender. Unfortunately, fresh Siberian reserves started a counter-attack and expelled our exhausted and worn down spearheads out of the capital. While we managed to establish a stable front line again, we could not attempt another advance in 1942." defeat = "Not capturing Moscow in time gave the Russian adversaries plenty of opportunity to mobilise troops from Siberia and perform a counterattack. While we managed to establish a stable front line again, we could not attempt another advance in 1942." } } kharkov_XE { scenario = pg/Kharkov title = "@kharkov" briefing = "@kharkov" next { major = moscow43_XE minor = kursk_XE defeat = byelorussia_XE } debriefings { major = "@kharkov" minor = "@kharkov" defeat = "@kharkov" } coretransfer = "from:pg/Stalingrad" } kharkov { scenario = pg/Kharkov title = "11th February 1943" briefing = "As a result of their winter offensive, Russian troops are spread thin in the area of Kharkov. This is an excellent opportunity to start a counter-attack, annihilate the Soviet strike forces, and retake Kharkov. If you take Kharkov and all other objectives by at least the 4th of March, we may continue our advance in 1943. To undertake the necessary preparations for an attack of Moscow, it is imperative that you finish your mission much earlier." next { major = moscow43 minor = kursk defeat = byelorussia } debriefings { major = "With Kharkov retaken, and the Soviet strike force terminally beaten, we were able to thrust into the steppe directly towards Moscow." minor = "You bravely haltet the Russian winter offensive and managed to establish a stable front line." defeat = "Your failure at this mission forced the Reich to take back the front lines to compensate for German casualties faced in the battle." } coretransfer = "from:pg/Stalingrad" } kursk_XE { scenario = pg/Kursk title = "@kursk" briefing = "@kursk" next { major = moscow43_XE minor = byelorussia_XE defeat = byelorussia_XE } debriefings { major = "@kursk" minor = "@kursk" defeat = "@kursk" } } kursk { scenario = pg/Kursk title = "5th July 1943" briefing = "Since the front lines have stabilised, there is a pocket of Russian defenders around Kursk. Our strategy is to break through Soviet defenses from the North and South, and cut off and terminate all adversaries. Be aware that the Soviets have no doubt about our intentions, and have prepared their defenses well. You must take Kursk at any rate. Taking all other objectives by no later than the 24th of July will enable High Command to prepare for another assault on Moscow in 1943." next { major = moscow43 minor = kursk_selection defeat = byelorussia } debriefings { major = "Your performance was outstanding! Despite heavy resistence, you were able to crush the enemy and successfully secure the pocket of Kursk. Thanks to this masterpiece, we can attempt another assault on Moscow." minor = "You were able to take Kursk, but the Soviets launched a counter-attack against the Germain pocket around Orel. Therefore, we had to retreat and divert divisions to aid against this massive attack. We have lost the initiative on the Eastern front and cannot allow for another attack in this year." defeat = "While you were running against stiff resistence, the Soviets launched a counter-attack against the Germain pocket around Orel. Therefore, we had to retreat and divert divisions to aid against this massive attack. We have lost the initiative on the Eastern front and cannot allow for another attack in this year." } } kursk_selection { briefing = "In this situation, High Command offers you to contribute your experience in another theater, Italy.##Herr General, do you want to continue fighting in Russia, or do you like to be transferred to Anzio?" next { east = byelorussia south = anzio } options { east = "Byelorussia" south = "Anzio" } } byelorussia_XE { scenario = pg/Byelorussia title = "@byelorussia" briefing = "@byelorussia" next { major = budapest_XW minor = budapest_XW defeat = berlineast } debriefings { major = "Thanks to your great achievements, the Soviet summer offensive has been halted, and enabled us to prepare further operations." minor = "Holding Warsaw temporarily relieved us from pressure on the Eastern front, and enabled us to prepare further operations." } } byelorussia { scenario = pg/Byelorussia title = "22nd June 1944" briefing = "Soviet Russia has eventually launched its long expected summer offensive of 1944, ironically on the self same day we initiated operation Barbarossa three years ago. You are in charge of Army Group Center, and you must stop the Russian attack at any rate, and retake all objectives to turn the tides. If the odds are too strong, hold at least Warsaw until the 27th of August." next { major = ardennes minor = ardennes defeat = berlin } debriefings { major = "Thanks to your great achievements, the Soviet summer offensive has been halted. Unfortunately, much pressure has accumulated on the Western front, so High Command decided to transfer you there to relieve the situation." minor = "Holding Warsaw temporarily relieves us from pressure on the Eastern front, thus allowing High Command to transfer you to the Western Front." } } budapest_XW { scenario = pg/Budapest title = "@budapest" briefing = "@budapest" next { major = minorvic minor = berlineast defeat = berlineast } debriefings { major = "Your decisive victory in the battle of Budapest has made the Russians sign a favourable peace treaty. Combined with your earlier victory over England, we have won the war on both fronts. You are herewith promoted to Generalfeldmarschall as an acknowledgement of your brave achievements for the Reich during the war." minor = "@budapest" defeat = "@budapest" } } budapest { scenario = pg/Budapest title = "6th March 1945" briefing = "We have gathered all strike forces for the ultimate offensive on the Eastern front. You have to take Budapest and all other objectives by no later than the 25th of March. To ensure that the Russians will not recover from the offensive, and sign a favourable peace treaty, you should capture all objectives several days earlier." next { major = berlinwest minor = berlin defeat = berlin } debriefings { major = "Herr General, you fared excellent! Russia has signed a peace treaty, and we can fully throw our forces against the Allied." minor = "While you managed to capture all objectives, the Russian offensive gained momentum too fast and drove us back to the Eastern limits of the Reich." defeat = "The russian offensive was too strong to overcome which forced us to retreat to the limits of the Reich." } } [***** Western Branch *****] sealion43_XR { scenario = pg/Sealion43 title = "@sealion43" briefing = "@sealion43" next { major = washington_prep minor = anzio_XR defeat = anzio_XR } debriefings { major = "Your early capturing of Southern England enabled us to prepare defenses against the landing of the American reinforcements, and to decisively beat them. Consequentially, England has surrendered! It is to be attributed to your talent and to the high morale of your troops that you achieved an unprecedented victory over the British Empire. England, Scotland, Ireland, and the oversea dependencies are now governed by German administration. You are herewith awarded the highest order medal of the Reich, the Knight's Cross with Oak Leaves, and Swords." minor = "Your brave efforts lead to the capturing of all Southern England. Unfortunately, the landing of American reinforcements and their counter-attack forced High Command to retract all troops back to the continent." defeat = "Your failure to conquer England in time before American reinforcements arrived has given the enemy the strength to strike back, and force our troops back to the continent." } } sealion43 { scenario = pg/Sealion43 title = "15th June 1943" briefing = "High Command has prepared an invasion of England this summer, and you are to lead the forces. This is the ultimate chance to knock England out of the war, and we have to succeed this time. As the English have established an alliance with the Americans, expect some US expeditionary forces aiding in the defense of England. You are ordered to take London and all other objectives by 13th of July at the latest, when strong American reinforcements are expected to arrive. In order to consolidate our defenses, you should finish your mission earlier." next { major = moscow43_XE minor = moscow43 defeat = anzio } debriefings { major = "Your early capturing of Southern England enabled us to prepare defenses against the landing of the American reinforcements, and to decisively beat them. Consequentially, England has surrendered! It is to be attributed to your talent and to the high morale of your troops that you achieved an unprecedented victory over the British Empire. England, Scotland, Ireland, and the oversea dependencies are now governed by German administration. You are herewith awarded one of the highest order medals of the Reich, the Iron Cross with Oak Leaves, and Swords." minor = "Your brave efforts lead to the capturing of all Southern England. Unfortunately, the landing of American reinforcements and their counter-attack forced High Command to retract all troops back to the continent. You have been called to the Eastern front to prove that you are a worthy Panzer General nonetheless." defeat = "Your failure to conquer England in time before American reinforcements arrived has given the enemy the strength to strike back, and force our troops back to the continent." } } anzio_XR { scenario = pg/Anzio title = "@anzio" briefing = "@anzio" next { major = dday_XR minor = dday_XR defeat = minordef } debriefings { major = "@anzio" minor = "@anzio" defeat = "The mission was a disaster. Not sustaining allowed the Allies to invade Germany from the South. Thanks to your earlier victory over Russia, quickly established war industries allowed us to fend off the capturing of Germany, allowing us to negotiate a peace treaty at minor disadvantages." } } anzio { scenario = pg/Anzio title = "22nd January 1944" briefing = "The Allies have fought up all their way from Sicily to the center of Italy. While we halted their advance at the Gustav line, the Allies performed a massive landing operation at the beachhead of Anzio-Nettuno. To prevent detriment to the Reich, it is imperative that you fend off this massive onslaught at all costs. You have to hold at least Rome and two other objectives to turn the battle into a more favourable direction." next { major = anzio_selection minor = dday defeat = majordef } debriefings { major = "High Command is stunned about your audacious counter-attack in Italy. With scarce resources, you managed not only to drive back the Anzio-beachhead into the sea, you also retook Italian towns of the South." minor = "Holding Rome has kept the Allied from invading our heartlands from the South." defeat = "The mission was a disaster. Not sustaining allowed the Allies to invade Germany from the South, forces upon us an unfavourable peace treaty like the one in 1918." } coretransfer = "from:pg/Husky" } anzio_selection { briefing = "Due to your exceptional leadership skills, you are offered command over Army Group Center in Russia.##Herr General, do you want to defend the Reich against Soviet forces in Byelorussia, or fight against the upcoming invasion of France?" next { west = dday east = byelorussia } options { west = "D-Day" east = "Byelorussia" } } dday_XR { scenario = pg/D-Day title = "@dday" briefing = "@dday" next { major = anvil_XR minor = cobra_XR defeat = cobra_XR } debriefings { major = "@dday" minor = "@dday" defeat = "@dday" } } dday { scenario = pg/D-Day title = "6th June 1944" briefing = "In Normandy, the expected landings of Allied forces have commenced. The is the biggest invasion even seen by man, and you must stop it. You have to hold all your objectives to inflict a defeat to the Allied operations." next { major = anvil minor = cobra defeat = cobra } debriefings { major = "Congratulations on your effective victory over the Allied invasion of Normandy. The enemy has been driven back into the sea." minor = "While fighting bravely against tremendous odds, the Allies could establish a beachhead on the Norman coast." defeat = "Your troops were outnumbered on any scale, enabling the Allies to establish and extend their beachheads in Normandy." } } anvil_XR { scenario = pg/Anvil title = "@anvil" briefing = "@anvil" next { major = ardennes_XR minor = marketgarden_XR defeat = marketgarden_XR } debriefings { major = "@anvil" minor = "@anvil" defeat = "@anvil" } } anvil { scenario = pg/Anvil title = "6th August 1944" briefing = "After their bloody repulse in Normandy, the Allies attempt a second invasion in Southern France. Hold all objectives until the 28th of August to make this invasion a disaster to the Allies again. Otherwise, hold at least two objectives to slow down the Allied advance." next { major = ardennes minor = marketgarden defeat = marketgarden } debriefings { major = "Contrary to what the odds have made us expect, you drove the Allied attack back into the sea. Whereas you freed France again from enemy influence, the Allied increased their bombing raids against vital German war industries as well as our supply lines in France. Not being able to reliably deliver reinforcements and material to France, the Allies established another beachhead, and drove our forces back to the Rhine." minor = "You fighted bravely against odds, but in vain. The Allied army drove our troops back to the Netherlands." defeat = "The Allied army easily drove our troops back to the Netherlands." } } cobra_XR { scenario = pg/Cobra title = "@cobra" briefing = "@cobra" next { major = ardennes_XR minor = marketgarden_XR defeat = marketgarden_XR } debriefings { major = "@cobra" minor = "@cobra" defeat = "@cobra" } coretransfer = "allowed" } cobra { scenario = pg/Cobra title = "25th July 1944" briefing = "The Allies extended their beachheads in Normandy and have built up considerable strength. With our troops scattered and exhausted, you face a hopeless battle against overwhelming forces. Your order is to hold all objectives as well as to retake Cherbourg, Carentan, and Caen. If not feasible, hold at least three objectives until the 18th of August." next { major = ardennes minor = marketgarden defeat = marketgarden } debriefings { major = "This is impressing! While General Staff internally knew that the order was infeasible given the scarce resources available, you managed to achieve the impossible and drove the Allied army back into the sea. As a reaction, the Allied increased the bombing raids against vital German war industries and our supply lines in France, putting your victory at stake. Exploiting the resource shortage, the Allies performed another landing, and drove our forces back to the Rhine." minor = "You sustained long enough to allow High Command to build up defenses in the rear." defeat = "The Allied landings have been outright successful, and France is now definitely lost." } coretransfer = "allowed" } ardennes_XR { scenario = pg/Ardennes title = "@ardennes" briefing = "@ardennes" next { major = minorvic minor = berlinwest defeat = berlinwest } debriefings { major = "Herr General, your outstanding performance left a lasting impression to the Allied leader, enabling our Administration to sign a favourable peace treaty. Combined with your earlier victory over the Soviet Union, you have ended the war, and are herewith promoted to Generalfeldmarschall." minor = "@ardennes" defeat = "@ardennes" } coretransfer = "from:pg/MarketGarden" } ardennes { scenario = pg/Ardennes title = "16th December 1944" briefing = "We have entrenched ourselves at the Siegfried line and have observed Allied spearheads to slow down considerably. Thus, we prepared a strike force for a counter-attack, called operation Wacht am Rhein, in an attempt to precipitate a decision in the West. If you capture all objectives until the 31st of December, we are in a strong position to negotiate a peace treaty." next { major = budapest_XW minor = berlin defeat = berlin } debriefings { major = "Herr General, your outstanding performance left a lasting impression to the Allied leader, enabling our Administration to sign a favourable peace treaty. The war in the West is now over." minor = "Despite your initial success in the Ardennes, the Allies denied our peace offering. With reinforcements arrived, they managed to drive us back to the limits of the Reich." defeat = "Wacht am Rhein was an utter failure. Massive Allied reinforcements drove our troops back to the limits of the Reich." } coretransfer = "from:pg/MarketGarden" } marketgarden_XR { scenario = pg/MarketGarden title = "@marketgarden" briefing = "@marketgarden" next { major = ardennes_XR minor = ardennes_XR defeat = berlinwest } debriefings { major = "@marketgarden" minor = "@marketgarden" defeat = "@marketgarden" } } marketgarden { scenario = pg/MarketGarden title = "17th September 1944" briefing = "The Allies have launched a surprise airborne attack at Arnhem to capture a bridge across the Rhine. Yet, their slow outbreak from Normandy gave us plenty of time to establish potent defenses. Your order is to capture and hold the city of Arnhem until the 25th of September, and clean the area from paratroop landings before Allied reinforcements arrive." next { major = ardennes minor = ardennes defeat = berlin } debriefings { major = "Congratulations on your outstanding and brave counter-attack. Yet, bombing raids against our supply lines, and Allied reinforcements forced us to eventually abandon the Arnhem area, and to pull back behind the Rhine." minor = "You managed to take and hold Arnhem. Yet, bombing raids against our supply lines, and Allied reinforcements forced us to eventually abandon the Arnhem area, and to pull back behind the Rhine." defeat = "Your inability to sustain against paratroopers allowed the Allied to exploit the Rhine crossing, and to thrust against the German heartlands without delay." } } [***** North Africa Branch *****] northafrica { scenario = pg/NorthAfrica title = "31st March 1941" briefing = "You are now in charge of the Africa Corps to aid Italian troops in their battle against English mediterranean dependencies in North Africa. Strategically, High Commands attempts to take Egypt, and then to proceed towards Persia to open up a new Southern front into Russia. You have to take all objectives until the 27th of June at the latest, but to allow us to garrison sufficiently against counter-attacks, you should finish the mission earlier." next { major = middleeast minor = northafrica_selection defeat = torch } debriefings { major = "Your glorious advance along the North African coast has expelled the English forces out of Egypt, and allowed our troops to cross the Suez canal." defeat = "Putting you in charge of the Africa Corps was an utter failure." } } northafrica_selection { briefing = "General staff is pleased with your success, and offers you the opportunity to lead the pocket operations around Kiev.##Herr General, would you like to stay in the desert, or participate in the Eastern theater?" next { south = elalamein east = kiev } options { south = "Staying in the desert" east = "Kiev" } } elalamein { scenario = pg/ElAlamein title = "26th May 1942" briefing = "We were eventually able to halt the English counter offensive, and are now ready to perform another attack. While we do not have to gain as much ground as last year, English restistence is expected to be much stronger. While the chance for invading the Middle East has been lost, we may be able to prepare another invasion of England if the North African chapter is closed in time. You have to take all objectives by no later than the 28th of September. Yet, in order to finish preparations for an invasion of England this year, you have to finish you mission several weeks earlier." next { major = sealion43 minor = torch defeat = torch } debriefings { major = "Excellent performance, Herr General! With the English expelled from Egypt, we could successfully prepare an invasion of England." minor = "Congratulations on your victory. Yet, supply shortages allowed the English to take the initiative, and expel the Africa Corps from Egypt and Libya." defeat = "Supply shortage and the ever increasing resistence of English troops enabled the English to take the initiative, and expel the Africa Corps from Egypt and Libya." } } middleeast { scenario = pg/MiddleEast title = "1st September 1941" briefing = "Your next order is to secure the Middle East and Mesopotamia in order to allow for a new Southern front into the Caucasus. Take all objectives by the 15th of November at the latest before autumn rainfalls will stop our advance in the mud." next { major = sealion43 minor = caucasus defeat = elalamein } debriefings { defeat = "Adverse weather and supply conditions forced our troops out of Mesopotamia, while English couter-attacks forced us out of Egypt. We basically have to start at the beginning now." } coretransfer = "allowed" } middleeast_selection { briefing = "Your decisive victory in Mesopotamia has terminally weakened the English forces. Thus, there is a big opportunity to prepare an invasion of England, and end the war in the West. On the other hand, you may choose to continue advancing towards the Caucasus.##Herr General, which operation do you want to take command of?" next { england = sealion43 caucasus = caucasus } options { england = "Sealion43" caucasus = "Caucasus" } } torch { scenario = pg/Torch title = "8th November 1942" briefing = "Meanwhile, the Africa Corps is facing another threat from the West. This is the initial landing of US expeditionary forces in Tunesia after their declaration of war against Germany. Though unexperienced, they outnumber our troops by far, and must not be underestimated. Your order is to force the American troops from the continent, taking all objectives. As a last resort, you have to hold at least Tunis and two other objectives to make the outcome favourable to us." next { major = torch_selection minor = husky defeat = husky } debriefings { major = "With all objectives taken, and the Americans expelled from Africa, you have proven your excellent leadership skills." minor = "Holding the key towns of Tunesia slowed down the advance of the Americans. However, we could not sustain the pressure, and thus were forced to rectract the Africa Corps back to Europe." defeat = "The American army made piecemeal out of the Africa Corps." } } torch_selection { briefing = "Your leadership skills are currently asked for at two places. You may choose to lead the upcoming Summer offensive in Russia against the pocket of Kursk, or to defend Italy against the expected invasion of allied troops.##Which battle do you want to participate in?" next { south = husky east = kursk } options { south = "Husky" east = "Kursk" } coretransfer = "allowed" } husky { scenario = pg/Husky title = "10th July 1943" briefing = "The British and American forces have begun invading Sicily, our ill-defended entrance gate to Southern Europe. Your orders are to hold all objectives. If this is not feasible, hold at least two objectives to slow down the Allied advance." next { major = husky_selection minor = anzio defeat = anzio } debriefings { minor = "You managed to score a victory. Yet, our former Ally, the Italians have surrendered, thus making your efforts crumble in vain." defeat = "The total defeat on the Southern front made Italy surrender to the Allies." } coretransfer = "allowed" } husky_selection { briefing = "Your exemplary victory in Sicily has considerably impressed General staff. Therefore, you are offered command over the strike force against Moscow.##Herr General, do you want to stay in Italy, or do you want to be transferred to the Eastern front?" next { south = anzio east = moscow43 } options { south = "Staying in Italy" east = "Moscow" } coretransfer = "allowed" } caucasus { scenario = pg/Caucasus title = "30th June 1942" briefing = "@stalingrad" next { major = moscow42 minor = kharkov defeat = kharkov } debriefings { major = "@stalingrad" minor = "@stalingrad" defeat = "@stalingrad" } } [***** Final Stands *****] washington_prep { [ This state is just for the debriefings of the last scenario, which are usually too long to be combined with the briefing of washington. ] briefing = "" next { next = washington } } washington { scenario = pg/Washington title = "1st June 1945" briefing = "With African and Russian resources, we heavily increased the output of our war industries, consequentially enabling us to gain hold onto American soil. Our troops have advanced to the gates of Washington, and your order is to capture it. Take Washington and all other objectives by the 3rd of August at the latest. Intelligence reports that the Americans are testing a secret weapon, which will be ready for mid-July. Hence, to reduce German casualties and to emphasise our strong position, you should finish your mission by then." next { major = majorvic minor = minorvic defeat = minordef } debriefings { major = "America has surrendered to the overwhelming might of the Wehrmacht, Luftwaffe, and Marine! The United States had to sign a peace treaty which grants German occupation of the most resourceful, and strategically most valuable American territories. You are heralded to be the greatest general on Earth without whom such a success would have never been achievable. Therefore, you are awarded the highest order medal, specially crafted for you, the Knight's Cross with Oak Leaves, Swords, and Brilliants, and you are promoted to Generalfeldmarschall. The war is over. Germany is the world, the world is Germany." minor = "Your taking of Washington was a masterpiece. However, the Americans revealed their secret weapon, called the Atomic Bomb, and inflicted heavy losses on our expeditionary forces. In order to reduce further casualties, we retreated from America, and signed a piece treaty. Though the America adventure did not work out, Germany rules all of Europe, Africa, and most parts of Asia. This overwhelming economical weight will enable us to carry on the war against America on another level. Now, the war is over, and for your heroic encouragement you are promoted to Generalfeldmarschall." defeat = "Fanatic resistence kept our troops from advancing fast enough before the Americans used their secret weapon, the Atomic Bomb. Thus, heavy losses forced us to retract our troops from the American continent. Your America adventure has been a disaster, but General Staff ows you acknowledgement for your earlier victories over Western and Eastern Europe." } } berlin { scenario = pg/Berlin title = "1st April 1945" briefing = "This is the last stand. You have to fight against tremendous odds at either side of the front. Hold Berlin at any rate. Losing is not an option." next { major = draw minor = minordef defeat = majordef } debriefings { major = "Not only halting the enemy onslaught at two front, but drive them back to the pre-war borders of the Reich is impressive. Therefore, we could achieve to sign a peace treaty that restored the status-quo from the 1st September 1939." minor = "You held Berlin, but that has put us into an uncomfortable situation. We had to accept a peace treaty that was even harsher than the hated one of 1918." defeat = "The former mighty Reich is reduced to rubbles. No authority is left to even sign a peace treaty. Germany has ceased to exist." } } berlineast { scenario = pg/BerlinEast title = "1st April 1945" briefing = "We are now facing a massive force in the East invading German soil. Your order is to hold Berlin and at least five other objectives to prevent further detriment to the Reich." next { major = minorvic minor = draw defeat = majordef } debriefings { major = "Pushing back the Russian onslaught to the pre-war borders of the Reich gave us, combined with your earlier victory over England, a strong position to negotiate a favourable peace treaty." minor = "You bravely fended off the Russian onslaught from the Reich's limits. Combined with your earlier victory over England allowed us to return to the pre-war status-quo in the East." defeat = "@berlin" } } berlinwest { scenario = pg/BerlinWest title = "1st April 1945" briefing = "We are now facing a massive force in the West invading German soil. Your order is to hold Berlin and at least five other objectives to prevent further detriment to the Reich." next { major = minorvic minor = draw defeat = majordef } debriefings { major = "Pushing back the Allied onslaught to the pre-war borders of the Reich gave us, combined with your earlier victory over Russia, a strong position to negotiate a favourable peace treaty." minor = "You bravely fended off the Allied onslaught from the Reich's limits. Combined with your earlier victory over Russia allowed us to return to the pre-war status-quo in the West." defeat = "@berlin" } coretransfer = "from:pg/Ardennes" } [***** Final Messages *****] gameover { briefing = "The german Reich has no need for incompetent untermenschen, Commander! Dismissed." } minordef { briefing = "You have failed us, Commander! The german reich suffered a minor defeat!" } majordef { briefing = "You have totally failed us, Commander! The german reich suffered a major defeat!" } draw { briefing = "We have only achieved a draw with the Allies." } minorvic { briefing = "You have achieved a minor victory for the german Reich, Commander! Well done." } majorvic { briefing = "You have achieved a major victory for the german Reich, Commander! Excellent!" } } [ kate: dynamic-word-wrap on; ] lgeneral-1.3.1/src/campaigns/Makefile.in0000664000175000017500000003617512643745056015056 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/campaigns DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(campaigndir)" DATA = $(campaign_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ campaigndir = $(inst_dir)/campaigns campaign_DATA = PG EXTRA_DIST = $(campaign_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/campaigns/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/campaigns/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-campaignDATA: $(campaign_DATA) @$(NORMAL_INSTALL) @list='$(campaign_DATA)'; test -n "$(campaigndir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(campaigndir)'"; \ $(MKDIR_P) "$(DESTDIR)$(campaigndir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(campaigndir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(campaigndir)" || exit $$?; \ done uninstall-campaignDATA: @$(NORMAL_UNINSTALL) @list='$(campaign_DATA)'; test -n "$(campaigndir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(campaigndir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(campaigndir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-campaignDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-campaignDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-campaignDATA \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-campaignDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/src/campaigns/Makefile.am0000664000175000017500000000012612140770453015017 00000000000000campaigndir = $(inst_dir)/campaigns campaign_DATA = PG EXTRA_DIST = $(campaign_DATA) lgeneral-1.3.1/src/image.c0000664000175000017500000003451612575246413012267 00000000000000/*************************************************************************** image.c - description ------------------- begin : Tue Mar 21 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include "lg-sdl.h" #include "image.h" /* ==================================================================== Create buffer of size w,h with default postion x,y in surf. SDL must have been initialized before calling this. ==================================================================== */ Buffer* buffer_create( int w, int h, SDL_Surface *surf, int x, int y ) { Buffer *buffer = 0; SDL_PixelFormat *format = 0; if ( SDL_GetVideoSurface() ) format = SDL_GetVideoSurface()->format; else { fprintf( stderr, "buffer_create: video display not available\n" ); return 0; } buffer = calloc( 1, sizeof( Buffer ) ); buffer->buf = SDL_CreateRGBSurface( SDL_SWSURFACE, w, h, format->BitsPerPixel, format->Rmask, format->Gmask, format->Bmask, format->Amask ); if ( buffer->buf == 0 ) { fprintf( stderr, "buffer_create: %s\n", SDL_GetError() ); free( buffer ); return 0; } SDL_SetColorKey( buffer->buf, 0, 0 ); buffer->buf_rect.w = buffer->surf_rect.w = buffer->old_rect.w = w; buffer->buf_rect.h = buffer->surf_rect.h = buffer->old_rect.h = h; buffer->buf_rect.x = buffer->buf_rect.y = 0; buffer->surf_rect.x = x; buffer->surf_rect.y = y; buffer->surf = surf; return buffer; } void buffer_delete( Buffer **buffer ) { if ( *buffer ) { if ( (*buffer)->buf ) SDL_FreeSurface( (*buffer)->buf ); free( *buffer ); *buffer = 0; } } /* ==================================================================== Hide this buffer from surface (no get/draw actions) ==================================================================== */ void buffer_hide( Buffer *buffer, int hide ) { buffer->hide = hide; buffer->recently_hidden = hide; } /* ==================================================================== Get buffer from buffer->surf. ==================================================================== */ void buffer_get( Buffer *buffer ) { SDL_Rect srect = buffer->surf_rect, drect = buffer->buf_rect; if ( !buffer->hide ) SDL_BlitSurface( buffer->surf, &srect, buffer->buf, &drect ); } /* ==================================================================== Draw buffer to buffer->surf. ==================================================================== */ void buffer_draw( Buffer *buffer ) { SDL_Rect drect = buffer->surf_rect, srect = buffer->buf_rect; if ( !buffer->hide ) SDL_BlitSurface( buffer->buf, &srect, buffer->surf, &drect ); } /* ==================================================================== Add refresh rects including movement and recent hide. ==================================================================== */ void buffer_add_refresh_rects( Buffer *buffer ) { if ( buffer->moved ) { add_refresh_rect( &buffer->old_rect ); buffer->moved = 0; } if ( !buffer->hide || buffer->recently_hidden ) { add_refresh_rect( &buffer->surf_rect ); buffer->recently_hidden = 0; } } /* ==================================================================== Modify the buffer settings. Does not include any get() or draw(). The maximum resize is given by buffers initial size. ==================================================================== */ void buffer_move( Buffer *buffer, int x, int y ) { if ( !buffer->moved ) { buffer->old_rect.x = buffer->surf_rect.x; buffer->old_rect.y = buffer->surf_rect.y; buffer->moved = 1; } buffer->surf_rect.x = x; buffer->surf_rect.y = y; } void buffer_resize( Buffer *buffer, int w, int h ) { if ( w > buffer->buf->w ) w = buffer->buf->w; if ( h > buffer->buf->h ) h = buffer->buf->h; buffer->buf_rect.w = buffer->surf_rect.w = w; buffer->buf_rect.h = buffer->surf_rect.h = h; } void buffer_set_surface( Buffer *buffer, SDL_Surface *surf ) { buffer->surf = surf; } void buffer_get_geometry(Buffer *buffer, int *x, int *y, int *w, int *h ) { *x = buffer->surf_rect.x; *y = buffer->surf_rect.y; *w = buffer->surf_rect.w; *h = buffer->surf_rect.h; } /* ==================================================================== Create an image. The image surface is deleted by image_delete(). The image region (that's actually drawn) is initiated to 0,0,buf_w,buf_h where buf_w or buw_h 0 means to use the whole image. The maximum region size is limited to the initial region size. The current draw position is x,y in 'surf'. ==================================================================== */ Image *image_create( SDL_Surface *img, int buf_w, int buf_h, SDL_Surface *surf, int x, int y ) { Image *image; if ( img == 0 ) { fprintf( stderr, "image_create: passed graphic is NULL: %s\n", SDL_GetError() ); return 0; } image = calloc( 1, sizeof( Image ) ); image->img = img; if ( buf_w == 0 || buf_h == 0 ) { buf_w = image->img->w; buf_h = image->img->h; } image->img_rect.w = buf_w; image->img_rect.h = buf_h; image->img_rect.x = image->img_rect.y = 0; if ( ( image->bkgnd = buffer_create( buf_w, buf_h, surf, x, y ) ) == 0 ) { SDL_FreeSurface( img ); free( image ); return 0; } SDL_SetColorKey( image->img, SDL_SRCCOLORKEY, 0x0 ); return image; } void image_delete( Image **image ) { if ( *image ) { if ( (*image)->img ) SDL_FreeSurface( (*image)->img ); buffer_delete( &(*image)->bkgnd ); free( *image ); *image = 0; } } /* ==================================================================== Draw current image region to current position. Stores the background first. Add the refresh_rects as needed including movement and hide refreshs. ==================================================================== */ void image_draw( Image *image ) { SDL_Rect srect = image->img_rect, drect = image->bkgnd->surf_rect; if ( !image->bkgnd->hide ) SDL_BlitSurface( image->img, &srect, image->bkgnd->surf, &drect ); buffer_add_refresh_rects( image->bkgnd ); } /* ==================================================================== Modify the image settings. Does not include any drawing (neither image nor background) but may resize the background if needed. ==================================================================== */ void image_set_region( Image *image, int x, int y, int w, int h ) { image->img_rect.x = x; image->img_rect.y = y; buffer_resize( image->bkgnd, w, h ); image->img_rect.w = image->bkgnd->buf_rect.w; image->img_rect.h = image->bkgnd->buf_rect.h; } /* ==================================================================== Create an animation. The animation surface is deleted by anim_delete(). The buffer size of each frame is frame_w, frame_h. The current draw position is x,y in 'surf'. Per default an animation is stopped. Animation is hidden per default. ==================================================================== */ Anim* anim_create( SDL_Surface *gfx, int speed, int frame_w, int frame_h, SDL_Surface *surf, int x, int y ) { Anim *anim = calloc( 1, sizeof( Anim ) ); if ( ( anim->img = image_create( gfx, frame_w, frame_h, surf, x, y ) ) == 0 ) { free( anim ); return 0; } anim->playing = anim->loop = 0; anim->speed = speed; anim->cur_time = 0; anim->img->bkgnd->hide = 1; return anim; } void anim_delete( Anim **anim ) { if ( *anim ) { image_delete( &(*anim)->img ); free( *anim ); *anim = 0; } } /* ==================================================================== Modify animation settings ==================================================================== */ void anim_set_speed( Anim *anim, int speed ) { anim->speed = speed; } void anim_set_row( Anim *anim, int id ) { image_set_region( anim->img, anim->img->img_rect.x, anim->img->bkgnd->surf_rect.h * id, anim->img->img_rect.w, anim->img->img_rect.h ); } void anim_set_frame( Anim *anim, int id ) { image_set_region( anim->img, anim->img->bkgnd->surf_rect.w * id, anim->img->img_rect.y, anim->img->bkgnd->surf_rect.w, anim->img->bkgnd->surf_rect.h ); } void anim_play( Anim *anim, int loop ) { anim->cur_time = 0; anim->playing = 1; anim->loop = loop; anim->img->bkgnd->hide = 0; } void anim_stop( Anim *anim ) { anim->playing = 0; anim_set_frame( anim, 0 ); anim->img->bkgnd->hide = 1; } void anim_update( Anim *anim, int ms ) { if ( anim->playing ) { anim->cur_time += ms; while ( anim->cur_time > anim->speed ) { anim->cur_time -= anim->speed; image_set_region( anim->img, anim->img->img_rect.x + anim->img->img_rect.w, anim->img->img_rect.y, anim->img->img_rect.w, anim->img->img_rect.h ); if ( anim->img->img_rect.x >= anim->img->img->w ) { if ( !anim->loop ) { anim_stop( anim ); break; } else image_set_region( anim->img, 0, anim->img->img_rect.y, anim->img->img_rect.w, anim->img->img_rect.h ); } } } } /* ==================================================================== Create a frame. If alpha > 0 the background is shadowed by using the shadow surface when drawing. The size of buffer, image and contents is specified by the measurements of the frame picture 'img'. The current draw position is x,y in 'surf'. ==================================================================== */ Frame *frame_create( SDL_Surface *img, int alpha, SDL_Surface *surf, int x, int y ) { SDL_Rect rect; SDL_Surface *empty_img; int w, h; Frame *frame = 0; SDL_PixelFormat *format = 0; if ( SDL_GetVideoSurface() ) format = SDL_GetVideoSurface()->format; else { fprintf( stderr, "buffer_create: video display not available\n" ); return 0; } frame = calloc( 1, sizeof( Frame ) ); /* frame */ if ( img == 0 ) { fprintf( stderr, "frame_create: passed graphic is NULL: %s\n", SDL_GetError() ); goto failure; } frame->frame = img; SDL_SetColorKey( frame->frame, SDL_SRCCOLORKEY, 0x0 ); w = frame->frame->w; h = frame->frame->h; /* contents */ frame->contents = SDL_CreateRGBSurface( SDL_SWSURFACE, w, h, format->BitsPerPixel, format->Rmask, format->Gmask, format->Bmask, format->Amask ); if ( frame->contents == 0 ) goto sdl_failure; SDL_SetColorKey( frame->contents, SDL_SRCCOLORKEY, 0x0 ); /* shadow if any transparency */ frame->alpha = alpha; if ( alpha > 0 ) { frame->shadow = SDL_CreateRGBSurface( SDL_SWSURFACE, w, h, format->BitsPerPixel, format->Rmask, format->Gmask, format->Bmask, format->Amask ); if ( frame->shadow == 0 ) goto sdl_failure; SDL_FillRect( frame->shadow, 0, 0x0 ); SDL_SetColorKey( frame->shadow, SDL_SRCCOLORKEY, 0x0 ); rect.x = 1; rect.y = 1; rect.w = frame->shadow->w - 2; rect.h = frame->shadow->h - 2; SDL_FillRect( frame->shadow, &rect, SDL_MapRGB( frame->shadow->format, 4, 4, 4 ) ); SDL_SetAlpha( frame->shadow, SDL_SRCALPHA, alpha ); } /* image (empty frame per default)*/ empty_img = SDL_CreateRGBSurface( SDL_SWSURFACE, w, h, format->BitsPerPixel, format->Rmask, format->Gmask, format->Bmask, format->Amask ); if ( empty_img == 0 ) goto sdl_failure; SDL_FillRect( empty_img, 0, 0x0 ); SDL_SetColorKey( empty_img, SDL_SRCCOLORKEY, 0x0 ); if ( ( frame->img = image_create( empty_img, 0, 0, surf, x, y ) ) == 0 ) goto failure; frame_apply( frame ); return frame; sdl_failure: fprintf( stderr, "frame_create: %s\n", SDL_GetError() ); failure: frame_delete( &frame ); return 0; } void frame_delete( Frame **frame ) { if ( *frame ) { if ( (*frame)->contents ) SDL_FreeSurface( (*frame)->contents ); if ( (*frame)->shadow ) SDL_FreeSurface( (*frame)->shadow ); if ( (*frame)->frame ) SDL_FreeSurface( (*frame)->frame ); image_delete( &(*frame)->img ); free( *frame ); *frame = 0; } } /* ==================================================================== Draw frame ==================================================================== */ void frame_hide( Frame *frame, int hide ) { image_hide( frame->img, hide ); } void frame_draw( Frame *frame ) { SDL_Rect drect = frame->img->bkgnd->surf_rect; if ( !frame->img->bkgnd->hide && frame->alpha < 255 ) SDL_BlitSurface( frame->shadow, 0, frame->img->bkgnd->surf, &drect ); image_draw( frame->img ); } /* ==================================================================== Modify frame settings ==================================================================== */ void frame_apply( Frame *frame ) { SDL_FillRect( frame->img->img, 0, 0x0 ); SDL_BlitSurface( frame->frame, 0, frame->img->img, 0 ); SDL_BlitSurface( frame->contents, 0, frame->img->img, 0 ); } lgeneral-1.3.1/src/purchase_dlg.c0000664000175000017500000006472312575246413013650 00000000000000/*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include "lgeneral.h" #include "lg-sdl.h" #include "date.h" #include "event.h" #include "image.h" #include "list.h" #include "windows.h" #include "unit.h" #include "purchase_dlg.h" #include "gui.h" #include "localize.h" #include "scenario.h" extern Sdl sdl; extern GUI *gui; extern SDL_Surface *gui_create_frame( int w, int h ); extern Nation *nations; extern int nation_count; extern int nation_flag_width, nation_flag_height; extern Unit_Class *unit_classes; extern int unit_class_count; extern Player *cur_player; extern List *unit_lib; extern Scen_Info *scen_info; extern SDL_Surface *nation_flags; extern Trgt_Type *trgt_types; extern int trgt_type_count; extern Mov_Type *mov_types; extern int mov_type_count; extern List *reinf; extern List *avail_units; extern List *units; extern int turn; extern int camp_loaded; /****** Private *****/ /** Render nation flag and name of nation @data to surface @buffer. */ static void render_lbox_nation( void *data, SDL_Surface *buffer ) { Nation *n = (Nation*)data; char name[10]; SDL_FillRect( buffer, 0, 0x0 ); gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_CENTER; nation_draw_flag( n, buffer, 2, 0, NATION_DRAW_FLAG_NORMAL ); snprintf(name,10,"%s",n->name); /* truncate name */ write_text( gui->font_std, buffer, 4 + nation_flags->w, buffer->h/2, name, 255 ); } /** Render name of unit class @data to surface @buffer. */ static void render_lbox_uclass( void *data, SDL_Surface *buffer ) { Unit_Class *c = (Unit_Class*)data; char name[13]; SDL_FillRect( buffer, 0, 0x0 ); gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_CENTER; snprintf(name,13,"%s",c->name); /* truncate name */ write_text( gui->font_std, buffer, 2, buffer->h/2, name, 255 ); } /** Render icon and name of unit lib entry @data to surface @buffer. */ static void render_lbox_unit( void *data, SDL_Surface *buffer ) { Unit_Lib_Entry *e = (Unit_Lib_Entry*)data; char name[13]; SDL_FillRect( buffer, 0, 0x0 ); gui->font_std->align = ALIGN_X_CENTER | ALIGN_Y_BOTTOM; DEST( buffer, (buffer->w - e->icon_w)/2, (buffer->h - e->icon_h)/2, e->icon_w, e->icon_h ); SOURCE( e->icon, 0, 0 ); blit_surf(); snprintf(name,13,"%s",e->name); /* truncate name */ write_text( gui->font_std, buffer, buffer->w / 2, buffer->h, name, 255 ); } /** Render icon and name of reinf unit @data to surface @buffer. */ static void render_lbox_reinf( void *data, SDL_Surface *buffer ) { Unit *u = (Unit*)data; render_lbox_unit(&u->prop, buffer); } /* Select those nations from which player may purchase units. * Return as new list with pointers to global nations (will not be deleted * on deleting list) */ List *get_purchase_nations( void ) { List *l = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); int i; if (l == NULL) { fprintf( stderr, tr("Out of memory\n") ); return NULL; } for (i = 0; i < cur_player->nation_count; i++) if (cur_player->nations[i]->no_purchase == 0) list_add( l, cur_player->nations[i] ); return l; } /* Select those unit classes from which units may be purchased. * Return as new list with pointers to global unit classes (will not be deleted * on deleting list) */ static List *get_purchase_unit_classes(void) { List *l = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); int i; if (l == NULL) { fprintf( stderr, tr("Out of memory\n") ); return NULL; } for (i = 0; i < unit_class_count; i++) if (unit_classes[i].purchase == UC_PT_NORMAL) list_add( l, &unit_classes[i] ); return l; } /** Return pointer to ground transporter unit class (purchasable for units with * flag GROUND_TRSP_OK). */ static Unit_Class *get_purchase_trsp_class() { int i; for (i = 0; i < unit_class_count; i++) if (unit_classes[i].purchase == UC_PT_TRSP) return &unit_classes[i]; return NULL; } /** Select those entries from unit library that match certain criteria: * @nationid: unit belongs to nation with this id string (if NULL any) * @uclassid: unit belongs to class with this id string (if NULL any) * @date: unit is still produced at this time (if NULL any) * Cost must be > 0. * * Return as new list with pointers to unit lib entries (will not be deleted * on deleting list) */ List *get_purchasable_unit_lib_entries( const char *nationid, const char *uclassid, const Date *date ) { List *l = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); Unit_Lib_Entry *e = NULL; if (l == NULL) { fprintf( stderr, tr("Out of memory\n") ); return NULL; } list_reset(unit_lib); while ((e = list_next(unit_lib))) { if (e->cost <= 0) continue; if (nationid && (e->nation == -1 || strcmp(nations[e->nation].id, nationid))) continue; if (uclassid && strcmp(unit_classes[e->class].id, uclassid)) continue; if (date ) { if (e->start_year > date->year) continue; if (e->start_year == date->year && e->start_month > date->month) continue; if (e->last_year && e->last_year < date->year) continue; } list_add(l,e); } return l; } /** Get all units from global reinf list which belong to current player. * Such units can be refunded. Units in global avail_units cannot be refunded * since already arrived and ready for deployment. * * Return as new list with pointers to global reinf list (will not be deleted * on deleting list) */ static List *get_reinf_units( void ) { List *l = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); Unit *u = NULL; if (l == NULL) { fprintf( stderr, tr("Out of memory\n") ); return NULL; } list_reset(reinf); while ((u = list_next(reinf))) if (u->player == cur_player) list_add( l, u ); return l; } /** Render purchase info for unit lib entry @entry to surface @buffer at * position @x, @y. */ static void render_unit_lib_entry_info( Unit_Lib_Entry *entry, SDL_Surface *buffer, int x, int y ) { char str[128]; int i, start_y = y; gui->font_std->align = ALIGN_X_LEFT | ALIGN_Y_TOP; /* first column: name, type, ammo, fuel, spot, mov, ini, range */ write_line( buffer, gui->font_std, entry->name, x, &y ); write_line( buffer, gui->font_std, unit_classes[entry->class].name, x, &y ); y += 5; sprintf( str, tr("Cost: %3i"), entry->cost ); write_line( buffer, gui->font_std, str, x, &y ); if ( entry->ammo == 0 ) sprintf( str, tr("Ammo: --") ); else sprintf( str, tr("Ammo: %2i"), entry->ammo ); write_line( buffer, gui->font_std, str, x, &y ); if ( entry->fuel == 0 ) sprintf( str, tr("Fuel: --") ); else sprintf( str, tr("Fuel: %2i"), entry->fuel ); write_line( buffer, gui->font_std, str, x, &y ); y += 5; sprintf( str, tr("Spotting: %2i"), entry->spt ); write_line( buffer, gui->font_std, str, x, &y ); sprintf( str, tr("Movement: %2i"), entry->mov ); write_line( buffer, gui->font_std, str, x, &y ); sprintf( str, tr("Initiative: %2i"), entry->ini ); write_line( buffer, gui->font_std, str, x, &y ); sprintf( str, tr("Range: %2i"), entry->rng ); write_line( buffer, gui->font_std, str, x, &y ); /* second column: move type, target type, attack, defense */ y = start_y; x += 135; sprintf( str, tr("%s Movement"), mov_types[entry->mov_type].name ); write_line( buffer, gui->font_std, str, x, &y ); sprintf( str, tr("%s Target"), trgt_types[entry->trgt_type].name ); write_line( buffer, gui->font_std, str, x, &y ); y += 5; for ( i = 0; i < trgt_type_count; i++ ) { char valstr[8]; int j; sprintf( str, tr("%s Attack:"), trgt_types[i].name ); for (j = strlen(str); j < 14; j++) strcat( str, " " ); if ( entry->atks[i] < 0 ) snprintf( valstr, 8, "[%2i]", -entry->atks[i] ); else snprintf( valstr, 8, " %2i", entry->atks[i] ); strcat(str, valstr); write_line( buffer, gui->font_std, str, x, &y ); } y += 5; sprintf( str, tr("Ground Defense: %2i"), entry->def_grnd ); write_line( buffer, gui->font_std, str, x, &y ); sprintf( str, tr("Air Defense: %2i"), entry->def_air ); write_line( buffer, gui->font_std, str, x, &y ); sprintf( str, tr("Close Defense: %2i"), entry->def_cls ); write_line( buffer, gui->font_std, str, x, &y ); } /** Calculate how many units player may purchase: Unit limit - placed units - * ordered units - deployable units. Return number or -1 if no limit. * If pointers set return core/aux detailled values. * Not static as used in ai.c */ int player_get_purchase_unit_limit( Player *player, int *core_limit, int *aux_limit ) { int cl = player->core_unit_limit; int al = player->unit_limit - player->core_unit_limit; Unit *u = NULL; /* if no campaign loaded there are only aux units. * for proper calculation shift core limit to aux */ if (!camp_loaded) { al += cl; cl = 0; } if (player->unit_limit == 0) { /* no limit */ if (core_limit) *core_limit = -1; if (aux_limit) *aux_limit = -1; return -1; } /* units placed on map */ list_reset( units ); while ((u = list_next( units ))) if (u->player == player && u->killed == 0) { if (u->core) cl--; else al--; } /* units ordered, not yet arrived */ list_reset( reinf ); while ((u = list_next( reinf ))) if (u->player == player) { if (u->core) cl--; else al--; } /* units arrived, not yet placed */ list_reset( avail_units ); while ((u = list_next( avail_units ))) { if (u->core) cl--; else al--; } if (cl < 0) cl = 0; if (al < 0) al = 0; if (core_limit) *core_limit = cl; if (aux_limit) *aux_limit = al; return cl + al; } /** Check whether player @p can purchase unit lib entry @unit with * transporter @trsp (if not NULL) regarding available prestige and unit * capacity. Return 1 if purchase okay, 0 otherwise. * It is not checked whether @unit may really have @trsp as transporter, * this has to be asserted before calling this function. */ int player_can_purchase_unit( Player *p, Unit_Lib_Entry *unit, Unit_Lib_Entry *trsp) { int cost = unit->cost + ((trsp)?trsp->cost:0); if (player_get_purchase_unit_limit(p,0,0) == 0) return 0; if (p->cur_prestige < cost) return 0; return 1; } /** Render info of selected unit (unit, transporter, total cost, ... ) * and enable/disable purchase button depending on whether enough prestige * and capacity. */ static void update_unit_purchase_info( PurchaseDlg *pdlg ) { int total_cost = 0; SDL_Surface *contents = pdlg->main_group->frame->contents; Unit_Lib_Entry *unit_entry = NULL, *trsp_entry = NULL; Unit *reinf_unit = NULL; SDL_FillRect( contents, 0, 0x0 ); /* get selected objects */ reinf_unit = lbox_get_selected_item( pdlg->reinf_lbox ); if (reinf_unit) { unit_entry = &reinf_unit->prop; if (reinf_unit->trsp_prop.id) trsp_entry = &reinf_unit->trsp_prop; } else { unit_entry = lbox_get_selected_item( pdlg->unit_lbox ); trsp_entry = lbox_get_selected_item( pdlg->trsp_lbox ); } /* unit info */ if (unit_entry) { render_unit_lib_entry_info( unit_entry, contents, 10, 10 ); total_cost += unit_entry->cost; /* if no transporter allowed clear transporter list. if allowed * but list empty, fill it. */ if (reinf_unit) ; /* unit/trsp has been cleared already */ else if(!(unit_entry->flags & GROUND_TRSP_OK)) { lbox_clear_items(pdlg->trsp_lbox); trsp_entry = NULL; } else if (lbox_is_empty(pdlg->trsp_lbox) && pdlg->trsp_uclass) lbox_set_items(pdlg->trsp_lbox, get_purchasable_unit_lib_entries( pdlg->cur_nation->id, pdlg->trsp_uclass->id, (const Date*)&scen_info->start_date)); } /* transporter info */ if (trsp_entry) { render_unit_lib_entry_info( trsp_entry, contents, 10, 155 ); total_cost += trsp_entry->cost; } /* show cost if any selection; mark red if not purchasable */ if ( total_cost > 0 ) { char str[128]; Font *font = gui->font_std; int y = group_get_height( pdlg->main_group ) - 10; snprintf( str, 128, tr("Total Cost: %d"), total_cost ); if (!reinf_unit && !player_can_purchase_unit(cur_player, unit_entry, trsp_entry)) { font = gui->font_error; total_cost = 0; /* indicates "not purchasable" here */ } font->align = ALIGN_X_LEFT | ALIGN_Y_BOTTOM; write_text( font, contents, 10, y, str, 255 ); if (total_cost > 0) { font->align = ALIGN_X_RIGHT | ALIGN_Y_BOTTOM; write_text( font, contents, group_get_width( pdlg->main_group ) - 62, y, reinf_unit?tr("REFUND?"):tr("REQUEST?"), 255 ); } } /* if total cost is set, purchase is possible */ if (total_cost > 0) group_set_active( pdlg->main_group, ID_PURCHASE_OK, 1 ); else group_set_active( pdlg->main_group, ID_PURCHASE_OK, 0 ); /* apply rendered contents */ frame_apply( pdlg->main_group->frame ); } /** Modify @pdlg's current unit limit by adding @add and render unit * limit. If core is set add to core count otherwise auxiliary count. */ static void update_purchase_unit_limit( PurchaseDlg *pdlg, int add, int core ) { SDL_Surface *contents = pdlg->ulimit_frame->contents; char str[16]; int y = 7; if (core) { if (pdlg->cur_core_limit != -1) { pdlg->cur_core_limit += add; if (pdlg->cur_core_limit < 0) pdlg->cur_core_limit = 0; } } else if (pdlg->cur_aux_limit != -1) { pdlg->cur_aux_limit += add; if (pdlg->cur_aux_limit < 0) pdlg->cur_aux_limit = 0; } SDL_FillRect( contents, 0, 0x0 ); gui->font_std->align = ALIGN_X_CENTER | ALIGN_Y_TOP; write_line(contents, gui->font_std, tr("Available:"), contents->w/2, &y ); if (pdlg->cur_core_limit == -1 && pdlg->cur_aux_limit == -1) strcpy( str, "---" ); else if (pdlg->cur_core_limit == 0 && pdlg->cur_aux_limit == 0) strcpy( str, tr("None") ); else { if (camp_loaded) snprintf(str, 16, "%d / %d", pdlg->cur_core_limit, pdlg->cur_aux_limit); else snprintf(str, 16, "%d", pdlg->cur_aux_limit); } write_line( contents, gui->font_std, str, contents->w/2, &y ); frame_apply( pdlg->ulimit_frame ); } /** Update listboxes (and clear current selection) for unit and transporter * according to current settings in @pdlg. */ static void update_purchasable_units( PurchaseDlg *pdlg ) { lbox_set_items(pdlg->unit_lbox, get_purchasable_unit_lib_entries( pdlg->cur_nation->id, pdlg->cur_uclass->id, (const Date*)&scen_info->start_date)); lbox_clear_items(pdlg->trsp_lbox); update_unit_purchase_info(pdlg); /* clear info */ } /** Purchase unit for player @player. @nation is nation of unit (should match * with list of player but is not checked), @unit_prop and @trsp_prop are the * unit lib entries (trsp_prop may be NULL for no transporter). */ void player_purchase_unit( Player *player, Nation *nation, int core, Unit_Lib_Entry *unit_prop, Unit_Lib_Entry *trsp_prop ) { Unit *unit = NULL, unit_base; /* build unit base info */ memset( &unit_base, 0, sizeof( Unit ) ); unit_base.nation = nation; unit_base.player = player; unit_base.core = core; /* FIXME: no global counter to number unit so use plain name */ snprintf(unit_base.name, sizeof(unit_base.name), "%s", unit_prop->name); unit_base.delay = turn + 1; /* available next turn */ unit_base.str = 10; unit_base.orient = cur_player->orient; /* create unit and push to reinf list */ if ((unit = unit_create( unit_prop, trsp_prop, &unit_base )) == NULL) { fprintf( stderr, tr("Out of memory\n") ); return; } list_add( reinf, unit ); /* pay for it */ player->cur_prestige -= unit_prop->cost; if (trsp_prop) player->cur_prestige -= trsp_prop->cost; } /** Search for unit @u in reinforcements list. If found, delete it and refund * prestige to player. */ static void player_refund_unit( Player *p, Unit *u ) { Unit *e; list_reset(reinf); while ((e = list_next(reinf))) { if (e != u) continue; p->cur_prestige += u->prop.cost; if (u->trsp_prop.id) p->cur_prestige += u->trsp_prop.cost; list_delete_current(reinf); return; } } /** Handle click on purchase button: Purchase unit according to settings in * @pdlg and update info and reinf. It is not checked whether current player * may really purchase this unit. This has to be asserted before calling this * function. */ static void handle_purchase_button( PurchaseDlg *pdlg ) { int core; Nation *nation = lbox_get_selected_item( pdlg->nation_lbox ); Unit_Lib_Entry *unit_prop = lbox_get_selected_item( pdlg->unit_lbox ); Unit_Lib_Entry *trsp_prop = lbox_get_selected_item( pdlg->trsp_lbox ); Unit *reinf_unit = lbox_get_selected_item( pdlg->reinf_lbox ); if (reinf_unit == NULL) { core = (pdlg->cur_core_limit > 0)?1:0; player_purchase_unit( cur_player, nation, core, unit_prop, trsp_prop ); update_purchase_unit_limit( pdlg, -1, core); } else { core = reinf_unit->core; player_refund_unit( cur_player, reinf_unit ); update_purchase_unit_limit( pdlg, 1, core ); } lbox_set_items( pdlg->reinf_lbox, get_reinf_units() ); update_unit_purchase_info( pdlg ); } /****** Public *****/ /** Create and return pointer to purchase dialogue. Use graphics from theme * path @theme_path. */ PurchaseDlg *purchase_dlg_create( const char *theme_path ) { PurchaseDlg *pdlg = NULL; char path[512]; int sx, sy; pdlg = calloc( 1, sizeof(PurchaseDlg) ); if (pdlg == NULL) return NULL; /* create main group (= main window) */ snprintf( path, 512, "%s/confirm_buttons.bmp", theme_path ); pdlg->main_group = group_create( gui_create_frame( 300, 320 ), 160, load_surf( path, SDL_SWSURFACE ), 20, 20, 2, ID_PURCHASE_OK, gui->label, sdl.screen, 0, 0 ); if (pdlg->main_group == NULL) goto failure; sx = group_get_width( pdlg->main_group ) - 60; sy = group_get_height( pdlg->main_group ) - 25; group_add_button( pdlg->main_group, ID_PURCHASE_OK, sx, sy, 0, tr("Ok") ); group_add_button( pdlg->main_group, ID_PURCHASE_EXIT, sx + 30, sy, 0, tr("Exit") ); /* create unit limit info frame */ pdlg->ulimit_frame = frame_create( gui_create_frame( 112, 40 ), 160, sdl.screen, 0, 0); if (pdlg->ulimit_frame == NULL) goto failure; /* create nation listbox */ snprintf( path, 512, "%s/scroll_buttons.bmp", theme_path ); pdlg->nation_lbox = lbox_create( gui_create_frame( 112, 74 ), 160, 6, load_surf( path, SDL_SWSURFACE ), 24, 24, gui->label, 3, 1, 100, 12, 1, 0x0000ff, render_lbox_nation, sdl.screen, 0, 0); if (pdlg->nation_lbox == NULL) goto failure; /* create class listbox */ snprintf( path, 512, "%s/scroll_buttons.bmp", theme_path ); pdlg->uclass_lbox = lbox_create( gui_create_frame( 112, 166 ), 160, 6, load_surf( path, SDL_SWSURFACE ), 24, 24, gui->label, 10, 2, 100, 12, 1, 0x0000ff, render_lbox_uclass, sdl.screen, 0, 0); if (pdlg->uclass_lbox == NULL) goto failure; /* create units listbox */ snprintf( path, 512, "%s/scroll_buttons.bmp", theme_path ); pdlg->unit_lbox = lbox_create( gui_create_frame( 112, 200 ), 160, 6, load_surf( path, SDL_SWSURFACE ), 24, 24, gui->label, 4, 3, 100, 40, 1, 0x0000ff, render_lbox_unit, sdl.screen, 0, 0); if (pdlg->unit_lbox == NULL) goto failure; /* create transporters listbox */ snprintf( path, 512, "%s/scroll_buttons.bmp", theme_path ); pdlg->trsp_lbox = lbox_create( gui_create_frame( 112, 120 ), 160, 6, load_surf( path, SDL_SWSURFACE ), 24, 24, gui->label, 2, 1, 100, 40, 1, 0x0000ff, render_lbox_unit, sdl.screen, 0, 0); if (pdlg->trsp_lbox == NULL) goto failure; /* create reinforcements listbox */ snprintf( path, 512, "%s/scroll_buttons.bmp", theme_path ); pdlg->reinf_lbox = lbox_create( gui_create_frame( 112, 280 ), 160, 6, load_surf( path, SDL_SWSURFACE ), 24, 24, gui->label, 6, 3, 100, 40, 1, 0x0000ff, render_lbox_reinf, sdl.screen, 0, 0); if (pdlg->reinf_lbox == NULL) goto failure; return pdlg; failure: fprintf(stderr, tr("Failed to create purchase dialogue\n")); purchase_dlg_delete(&pdlg); return NULL; } void purchase_dlg_delete( PurchaseDlg **pdlg ) { if (*pdlg) { PurchaseDlg *ptr = *pdlg; group_delete( &ptr->main_group ); frame_delete( &ptr->ulimit_frame ); lbox_delete( &ptr->nation_lbox ); lbox_delete( &ptr->uclass_lbox ); lbox_delete( &ptr->unit_lbox ); lbox_delete( &ptr->trsp_lbox ); lbox_delete( &ptr->reinf_lbox ); free( ptr ); } *pdlg = NULL; } /** Return width of purchase dialogue @pdlg by adding up all components. */ int purchase_dlg_get_width(PurchaseDlg *pdlg) { return lbox_get_width( pdlg->nation_lbox ) + lbox_get_width( pdlg->unit_lbox ) + group_get_width( pdlg->main_group ) + lbox_get_width( pdlg->reinf_lbox ); } /** Return height of purchase dialogue @pdlg by adding up all components. */ int purchase_dlg_get_height(PurchaseDlg *pdlg) { return group_get_height( pdlg->main_group ); } /** Move purchase dialogue @pdlg to position @px, @py by moving all separate * components. */ void purchase_dlg_move( PurchaseDlg *pdlg, int px, int py) { int sx = px, sy = py; int ulimit_offset = (group_get_height( pdlg->main_group ) - frame_get_height( pdlg->ulimit_frame ) - lbox_get_height( pdlg->nation_lbox ) - lbox_get_height( pdlg->uclass_lbox )) / 2; int reinf_offset = (group_get_height( pdlg->main_group ) - lbox_get_height( pdlg->reinf_lbox )) / 2; frame_move( pdlg->ulimit_frame, sx, sy + ulimit_offset); sy += frame_get_height( pdlg->ulimit_frame ); lbox_move(pdlg->nation_lbox, sx, sy + ulimit_offset); sy += lbox_get_height( pdlg->nation_lbox ); lbox_move(pdlg->uclass_lbox, sx, sy + ulimit_offset); sx += lbox_get_width( pdlg->nation_lbox ); sy = py; lbox_move(pdlg->unit_lbox, sx, sy ); sy += lbox_get_height( pdlg->unit_lbox ); lbox_move(pdlg->trsp_lbox, sx, sy ); sx += lbox_get_width( pdlg->unit_lbox ); sy = py; group_move(pdlg->main_group, sx, sy); sx += group_get_width( pdlg->main_group ); lbox_move(pdlg->reinf_lbox, sx, sy + reinf_offset ); } /* Hide, draw, draw background, get background for purchase dialogue @pdlg by * applying action to all separate components. */ void purchase_dlg_hide( PurchaseDlg *pdlg, int value) { group_hide(pdlg->main_group, value); frame_hide(pdlg->ulimit_frame, value); lbox_hide(pdlg->nation_lbox, value); lbox_hide(pdlg->uclass_lbox, value); lbox_hide(pdlg->unit_lbox, value); lbox_hide(pdlg->trsp_lbox, value); lbox_hide(pdlg->reinf_lbox, value); } void purchase_dlg_draw( PurchaseDlg *pdlg) { group_draw(pdlg->main_group); frame_draw(pdlg->ulimit_frame); lbox_draw(pdlg->nation_lbox); lbox_draw(pdlg->uclass_lbox); lbox_draw(pdlg->unit_lbox); lbox_draw(pdlg->trsp_lbox); lbox_draw(pdlg->reinf_lbox); } void purchase_dlg_draw_bkgnd( PurchaseDlg *pdlg) { group_draw_bkgnd(pdlg->main_group); frame_draw_bkgnd(pdlg->ulimit_frame); lbox_draw_bkgnd(pdlg->nation_lbox); lbox_draw_bkgnd(pdlg->uclass_lbox); lbox_draw_bkgnd(pdlg->unit_lbox); lbox_draw_bkgnd(pdlg->trsp_lbox); lbox_draw_bkgnd(pdlg->reinf_lbox); } void purchase_dlg_get_bkgnd( PurchaseDlg *pdlg) { group_get_bkgnd(pdlg->main_group); frame_get_bkgnd(pdlg->ulimit_frame); lbox_get_bkgnd(pdlg->nation_lbox); lbox_get_bkgnd(pdlg->uclass_lbox); lbox_get_bkgnd(pdlg->unit_lbox); lbox_get_bkgnd(pdlg->trsp_lbox); lbox_get_bkgnd(pdlg->reinf_lbox); } /** Handle mouse motion for purchase dialogue @pdlg by checking all components. * @cx, @cy is absolute mouse position in screen. Return 1 if action has been * handled by some window, 0 otherwise. */ int purchase_dlg_handle_motion( PurchaseDlg *pdlg, int cx, int cy) { int ret = 1; void *item = NULL; if (!group_handle_motion(pdlg->main_group,cx,cy)) if (!lbox_handle_motion(pdlg->nation_lbox,cx,cy,&item)) if (!lbox_handle_motion(pdlg->uclass_lbox,cx,cy,&item)) if (!lbox_handle_motion(pdlg->unit_lbox,cx,cy,&item)) if (!lbox_handle_motion(pdlg->trsp_lbox,cx,cy,&item)) if (!lbox_handle_motion(pdlg->reinf_lbox,cx,cy,&item)) ret = 0; return ret; } /** Handle mouse click to screen position @cx,@cy with button @bid. * Return 1 if a button was clicked that needs upstream processing (e.g., to * close dialogue) and set @pbtn then. Otherwise process event internally and * return 0. */ int purchase_dlg_handle_button( PurchaseDlg *pdlg, int bid, int cx, int cy, Button **pbtn ) { void *item = NULL; if (group_handle_button(pdlg->main_group,bid,cx,cy,pbtn)) { /* catch and handle purchase button internally */ if ((*pbtn)->id == ID_PURCHASE_OK) { handle_purchase_button( pdlg ); return 0; } return 1; } if (lbox_handle_button(pdlg->nation_lbox,bid,cx,cy,pbtn,&item)) { if ( item && item != pdlg->cur_nation ) { pdlg->cur_nation = (Nation*)item; update_purchasable_units(pdlg); } return 0; } if (lbox_handle_button(pdlg->uclass_lbox,bid,cx,cy,pbtn,&item)) { if ( item && item != pdlg->cur_uclass ) { pdlg->cur_uclass = (Unit_Class*)item; update_purchasable_units(pdlg); } return 0; } if (lbox_handle_button(pdlg->unit_lbox,bid,cx,cy,pbtn,&item)) { if (item) { /* clear reinf selection since we share info window */ lbox_clear_selected_item( pdlg->reinf_lbox ); update_unit_purchase_info( pdlg ); } return 0; } if (lbox_handle_button(pdlg->trsp_lbox,bid,cx,cy,pbtn,&item)) { if (item) { if (bid == BUTTON_RIGHT) /* deselect entry */ lbox_clear_selected_item( pdlg->trsp_lbox ); /* clear reinf selection since we share info window */ lbox_clear_selected_item( pdlg->reinf_lbox ); update_unit_purchase_info( pdlg ); } return 0; } if (lbox_handle_button(pdlg->reinf_lbox,bid,cx,cy,pbtn,&item)) { if (item) { /* clear unit selection since we share info window */ lbox_clear_selected_item( pdlg->unit_lbox ); lbox_clear_items( pdlg->trsp_lbox ); update_unit_purchase_info( pdlg ); } return 0; } return 0; } /** Reset purchase dialogue settings for global @cur_player */ void purchase_dlg_reset( PurchaseDlg *pdlg ) { lbox_set_items( pdlg->nation_lbox, get_purchase_nations() ); lbox_set_items( pdlg->uclass_lbox, get_purchase_unit_classes() ); pdlg->cur_nation = lbox_select_first_item( pdlg->nation_lbox ); if (pdlg->cur_nation == NULL) /* list box empty */ pdlg->cur_nation = cur_player->nations[0]; pdlg->cur_uclass = lbox_select_first_item( pdlg->uclass_lbox ); if (pdlg->cur_uclass == NULL) /* list box empty */ pdlg->cur_uclass = &unit_classes[0]; pdlg->trsp_uclass = get_purchase_trsp_class(); player_get_purchase_unit_limit( cur_player, &pdlg->cur_core_limit, &pdlg->cur_aux_limit); lbox_set_items( pdlg->reinf_lbox, get_reinf_units() ); update_purchasable_units(pdlg); update_purchase_unit_limit(pdlg, 0, 0); } lgeneral-1.3.1/src/gui.h0000664000175000017500000003652012472342664011774 00000000000000/*************************************************************************** gui.h - description ------------------- begin : Sun Mar 31 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * 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. * * * ***************************************************************************/ #ifndef __GUI_H #define __GUI_H #include "unit.h" #include "windows.h" struct _List; /* ==================================================================== Button ids ==================================================================== */ enum { ID_INTERN_UP = -1000, ID_INTERN_DOWN, ID_MENU = 0, ID_SCEN_INFO, ID_AIR_MODE, ID_UNIT_LIST, ID_DEPLOY, ID_STRAT_MAP, ID_END_TURN, ID_CONDITIONS, ID_PURCHASE, ID_OK, ID_CANCEL, ID_SUPPLY, ID_EMBARK_AIR, ID_MERGE, ID_UNDO, ID_RENAME, ID_DISBAND, ID_SPLIT, ID_SPLIT_1, ID_SPLIT_2, ID_SPLIT_3, ID_SPLIT_4, ID_SPLIT_5, ID_SPLIT_6, ID_SPLIT_7, ID_SPLIT_8, ID_SPLIT_9, ID_SPLIT_10, ID_APPLY_DEPLOY, ID_CANCEL_DEPLOY, ID_DEPLOY_UP, ID_DEPLOY_DOWN, ID_SAVE, ID_LOAD, ID_RESTART, ID_CAMP, ID_SCEN, ID_OPTIONS, ID_QUIT, ID_LOAD_0, ID_LOAD_1, ID_LOAD_2, ID_LOAD_3, ID_LOAD_4, ID_LOAD_5, ID_LOAD_6, ID_LOAD_7, ID_LOAD_8, ID_LOAD_9, ID_LOAD_10, ID_SAVE_0, ID_SAVE_1, ID_SAVE_2, ID_SAVE_3, ID_SAVE_4, ID_SAVE_5, ID_SAVE_6, ID_SAVE_7, ID_SAVE_8, ID_SAVE_9, ID_SAVE_10, ID_C_SUPPLY, ID_C_WEATHER, ID_C_SHOW_CPU, ID_C_SHOW_STRENGTH, ID_C_SOUND, ID_C_SOUND_INC, ID_C_SOUND_DEC, ID_C_MUSIC, ID_C_GRID, ID_C_VMODE, ID_SCEN_OK, ID_SCEN_CANCEL, ID_SCEN_SETUP, ID_CAMP_OK, ID_CAMP_CANCEL, ID_SETUP_OK, ID_SETUP_FOG, ID_SETUP_SUPPLY, ID_SETUP_WEATHER, ID_SETUP_DEPLOYTURN, ID_SETUP_PURCHASE, ID_SETUP_CTRL, ID_SETUP_MODULE, ID_MODULE_OK, ID_MODULE_CANCEL, ID_PURCHASE_OK, ID_PURCHASE_EXIT, ID_PURCHASE_REFUND, ID_VMODE_OK, ID_VMODE_CANCEL }; /* ==================================================================== GUI graphics, fonts and windows. ==================================================================== */ typedef struct { char *name; /* directory name of gui */ Font *font_std; Font *font_status; Font *font_error; Font *font_turn_info; Font *font_brief; Image *cursors; Label *label, *label2; Frame *qinfo1, *qinfo2; /* unit quick infos */ Frame *finfo; /* full unit info */ Frame *sinfo; /* scenario information */ Frame *unit_list; Group *unit_buttons; /* unit action buttons */ Group *split_menu; /* menu of number of units to split up */ Group *confirm; /* confirmation window */ PurchaseDlg *purchase_dlg; Group *deploy_window; Edit *edit; Group *base_menu; /* basic menu (switch airmode, deploy, end turn, menu ...) */ Group *main_menu; /* main game menu */ Group *opt_menu; /* options */ Group *load_menu; Group *save_menu; SelectDlg *vmode_dlg; FDlg *scen_dlg; /* scenario selection */ FDlg *camp_dlg; /* campaign selection */ SDlg *setup; /* scenario setup (controls and ai modules) */ FDlg *module_dlg; /* ai module selection */ /* frame tiles */ SDL_Surface *fr_luc, *fr_llc, *fr_ruc, *fr_rlc, *fr_hori, *fr_vert; SDL_Surface *brief_frame; /* briefing window */ SDL_Surface *bkgnd; /* background for briefing window and main menu */ SDL_Surface *wallpaper; /* wallpaper used if background doesn't fill the whole screen */ SDL_Surface *folder_icon; /* folder icon for file list */ /* sounds */ #ifdef WITH_SOUND Wav *wav_click; Wav *wav_edit; #endif /* misc */ int mirror_asymm; /* mirror asymmetric windows to look behind */ } GUI; struct MessagePane; /* ==================================================================== Create the gui and use the graphics in gfx/themes/path ==================================================================== */ int gui_load( const char *path ); void gui_delete(); /* ==================================================================== Move all windows to there proper position according to screen's measurements. ==================================================================== */ void gui_adjust(); /* ==================================================================== Change all GUI graphics to the one found in gfx/theme/path. ==================================================================== */ int gui_change( const char *path ); /* ==================================================================== Hide/draw from/to screen or get backgrounds ==================================================================== */ void gui_get_bkgnds(); void gui_draw_bkgnds(); void gui_draw(); /* ==================================================================== Set cursor. ==================================================================== */ enum { CURSOR_STD = 0, CURSOR_SELECT, CURSOR_ATTACK, CURSOR_MOVE, CURSOR_MOUNT, CURSOR_DEBARK, CURSOR_EMBARK, CURSOR_MERGE, CURSOR_DEPLOY, CURSOR_UNDEPLOY, CURSOR_UP, CURSOR_DOWN, CURSOR_LEFT, CURSOR_RIGHT, CURSOR_COUNT }; void gui_set_cursor( int type ); /* ==================================================================== Handle events. ==================================================================== */ int gui_handle_motion( int cx, int cy ); int gui_handle_button( int button_id, int cx, int cy, Button **button ); void gui_update( int ms ); /* ==================================================================== Set quick info frame with information on this unit and set hide = 0. ==================================================================== */ void gui_show_quick_info( Frame *qinfo, Unit *unit ); /* ==================================================================== Draw the expected losses to the label. ==================================================================== */ void gui_show_expected_losses( Unit *att, Unit *def, int att_dam, int def_dam ); /* ==================================================================== Draw the actual losses to the label. ==================================================================== */ void gui_show_actual_losses( Unit *att, Unit *def, int att_suppr, int att_dam, int def_suppr, int def_dam ); /* ==================================================================== Draw the given unit's strength or suppression to the given label ==================================================================== */ void gui_show_unit_results( Unit *unit, Label *label, int is_str, int dam ); /* ==================================================================== Show full info window. ==================================================================== */ void gui_show_full_info( Unit *unit ); /* ==================================================================== Show scenario info window. ==================================================================== */ void gui_show_scen_info(); /* ==================================================================== Show explicit victory conditions and use scenario info window for this. ==================================================================== */ void gui_show_conds(); /* ==================================================================== Show confirmation window. ==================================================================== */ void gui_show_confirm( const char *text ); /* ==================================================================== Show unit buttons at screen x,y (does not include the button check) ==================================================================== */ void gui_show_unit_buttons( int x, int y ); /** Show unit purchase dialogue. */ void gui_show_purchase_window(); /* ==================================================================== Show deploy window and select first unit as 'deploy_unit'. ==================================================================== */ void gui_show_deploy_window(); /* ==================================================================== Handle deploy window. gui_handle_deploy_motion: 'unit' is the unit the cursor is currently above gui_handle_deploy_click: 'new_unit' is set True if a new unit was selected (which is 'deploy_unit' ) else False return True if something happended ==================================================================== */ int gui_handle_deploy_click( int button, int cx, int cy ); void gui_handle_deploy_motion( int cx, int cy, Unit **unit ); /* ==================================================================== Scroll deploy list up/down. ==================================================================== */ void gui_scroll_deploy_up(); void gui_scroll_deploy_down(); /* ==================================================================== Update deploy list. Unit is either removed or added to left_deploy_units and the deploy window is updated. ==================================================================== */ void gui_remove_deploy_unit( Unit *unit ); void gui_add_deploy_unit( Unit *unit ); /* ==================================================================== Show base menu at screen x,y (does not include the button check) ==================================================================== */ void gui_show_menu( int x, int y ); /* ==================================================================== Update save slot names. ==================================================================== */ void gui_update_slot_tooltips(); /* ==================================================================== Render the file name to surface. (directories start with an asteriks) ==================================================================== */ void gui_render_file_name( void *item, SDL_Surface *buffer ); /* ==================================================================== Handle the selection of a scenario file (display info and load scen_info from full path) ==================================================================== */ void gui_render_scen_info( const char *path, SDL_Surface *buffer ); /* ==================================================================== Handle the selection of a campaign file (display info and load scen_info from full path) ==================================================================== */ void gui_render_camp_info( const char *path, SDL_Surface *buffer ); /* ==================================================================== Creates a new message pane structure. ==================================================================== */ struct MessagePane *gui_create_message_pane(); /* ==================================================================== Deletes the given message pane structure. ==================================================================== */ void gui_delete_message_pane(struct MessagePane *pane); /* ==================================================================== Sets the text for the message pane. ==================================================================== */ void gui_set_message_pane_text( struct MessagePane *pane, const char *text ); /* ==================================================================== Sets the default id for the message pane. ==================================================================== */ void gui_set_message_pane_default( struct MessagePane *pane, const char *default_id ); /* ==================================================================== Returns the currently selected id or 0 if nothing is selected. ==================================================================== */ const char *gui_get_message_pane_selection( struct MessagePane *pane ); /* ==================================================================== Fills in options for the given message pane. ids const char * list of ids descs const char * list of textual description being mapped to ids. ==================================================================== */ void gui_set_message_pane_options( struct MessagePane *pane, struct _List *ids, struct _List *descs ); /* ==================================================================== Draws and fills with text the message pane. ==================================================================== */ void gui_draw_message_pane( struct MessagePane *pane ); /* ==================================================================== Handles events on the message pane. pane - message pane data mx, my - screen coordinates of mouse button - mouse button pressed - 1 if mouse button was pressed, 0 if released (undefined if button is BUTTON_NONE) ==================================================================== */ void gui_handle_message_pane_event( struct MessagePane *pane, int mx, int my, int button, int pressed ); /* ==================================================================== Open scenario setup and set first player as selected. ==================================================================== */ void gui_open_scen_setup(); /* ==================================================================== Render the player name in the scenario setup ==================================================================== */ void gui_render_player_name( void *item, SDL_Surface *buffer ); /* ==================================================================== Handle the selection of a player in setup. ==================================================================== */ void gui_handle_player_select( void *item ); /* ==================================================================== Load a module's info ==================================================================== */ void gui_render_module_info( const char *path, SDL_Surface *buffer ); /* ==================================================================== Mirror position of asymmetric windows. ==================================================================== */ void gui_mirror_asymm_windows(); /** Show video mode selection */ void gui_vmode_dlg_show(); /* ==================================================================== Unit list stuff TODO: use a proper list for displaying and scrolling through units XXX: gui_unit_list_unit_clicked doubles the code from gui_render_unit_list XXX: in some functions tags is now character array, that's more simple than list but that may cause stack smashing ==================================================================== */ SDL_Surface * gui_prepare_unit_list(); void gui_show_unit_list(); void gui_hide_unit_list(); void gui_render_unit_list(SDL_Surface * contents,List * units); void gui_scroll_unit_list_up(List * units); void gui_scroll_unit_list_down(List * units); Unit *gui_unit_list_unit_clicked(List * units,int cx,int cy); #endif lgeneral-1.3.1/src/date.c0000664000175000017500000000714112555411670012111 00000000000000/*************************************************************************** date.c - description ------------------- begin : Sat Jan 20 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include #include "date.h" #include "misc.h" #include "localize.h" /* length of month */ int month_length[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; /* full month names */ const char full_month_names[][10] = { TR_NOOP("January"), TR_NOOP("February"), TR_NOOP("March"), TR_NOOP("April"), TR_NOOP("May_long"), TR_NOOP("June"), TR_NOOP("July"), TR_NOOP("August"), TR_NOOP("September"), TR_NOOP("October"), TR_NOOP("November"), TR_NOOP("December") }; /* short month names */ const char short_month_names[][4] = { TR_NOOP("Jan"), TR_NOOP("Feb"), TR_NOOP("Mar"), TR_NOOP("Apr"), TR_NOOP("May"), TR_NOOP("Jun"), TR_NOOP("Jul"), TR_NOOP("Aug"), TR_NOOP("Sep"), TR_NOOP("Oct"), TR_NOOP("Nov"), TR_NOOP("Dec") }; /* converts a string to date */ void str_to_date( Date *date, char *str ) { int i; char aux_str[12]; memset( aux_str, 0, sizeof( char ) * 12 ); // day for ( i = 0; i < strlen( str ); i++ ) if ( str[i] == '.' ) { strncpy( aux_str, str, i); date->day = atoi( aux_str ); break; } str = str + i + 1; // month for ( i = 0; i < strlen( str ); i++ ) if ( str[i] == '.' ) { strncpy( aux_str, str, i); date->month = atoi( aux_str ); break; } str = str + i + 1; // year date->year = atoi( str ); } /* converts a date to a string */ void date_to_str( char *str, Date date, int type ) { switch ( type ) { case DIGIT_DATE: sprintf(str, "%i.%i.%i", date.day, date.month, date.year ); break; case FULL_NAME_DATE: sprintf(str, "%i. %s %i", date.day, tr(full_month_names[date.month-1]), date.year ); break; case SHORT_NAME_DATE: sprintf(str, "%i. %s %i", date.day, tr(short_month_names[date.month-1]), date.year ); break; } } /* add number of days to date and adjust it */ void date_add_days( Date *date, int days ) { /* poor-man's day adder. Add only the lowest amount of days to ensure * that no more than one month wraparound occurs per pass. */ for (; days > 0; days -= 28) { date->day += MINIMUM(days, 28); if ( date->day > month_length[date->month] ) { date->day = date->day - month_length[date->month]; date->month++; if ( date->month == 13 ) { date->month = 1; date->year++; } } } } lgeneral-1.3.1/src/player.h0000664000175000017500000001275412555427342012506 00000000000000/*************************************************************************** player.h - description ------------------- begin : Fri Jan 19 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __PLAYER_H #define __PLAYER_H /* ==================================================================== Player info. The players are created by scenario but managed by this module. ==================================================================== */ enum { PLAYER_CTRL_NOBODY = 0, PLAYER_CTRL_HUMAN, PLAYER_CTRL_CPU }; typedef struct { char *id; /* identification */ char *name; /* real name */ int ctrl; /* controlled by human or CPU */ char *ai_fname; /* dll with AI routines */ int strat; /* strategy: -2 very defensive to 2 very aggressive */ Nation **nations; /* list of pointers to nations controlled by this player */ int nation_count; /* number of nations controlled */ List *allies; /* list of the player's allies */ int unit_limit; /* max number of units (placed + ordered) */ int core_unit_limit; /* max number of core units (placed + ordered) */ int air_trsp_count; /* number of air transporters */ int sea_trsp_count; /* number of sea transporters */ Unit_Lib_Entry *air_trsp; /* default air transporter */ Unit_Lib_Entry *sea_trsp; /* default sea transporter */ int air_trsp_used; /* number of air transporters in use */ int sea_trsp_used; /* dito */ int orient; /* initial orientation */ int cur_prestige; /* current amount of prestige */ int *prestige_per_turn; /* amount added in the beginning of each turn */ int no_init_deploy; /* whether current scenario provided any initial hex tiles where deployment is okay */ /* ai callbacks loaded from module ai_fname */ void (*ai_init)(void); void (*ai_run)(void); void (*ai_finalize)(void); #ifdef USE_DL void *ai_mod_handle; /* handle to the ai module */ #endif } Player; /* ==================================================================== Add player to player list. ==================================================================== */ void player_add( Player *player ); /* ==================================================================== Delete player entry. Pass as void* for compatibility with list_delete ==================================================================== */ void player_delete( void *ptr ); /* ==================================================================== Delete all players. ==================================================================== */ void players_delete(); /* ==================================================================== Get very first player. ==================================================================== */ Player* players_get_first(); /* ==================================================================== Get next player in the cycle and also set new_turn true if all players have finished their turn action and it's time for a new turn. ==================================================================== */ Player *players_get_next( int *new_turn ); /* ==================================================================== Check who would be the next player but do not choose him. ==================================================================== */ Player *players_test_next(); /* ==================================================================== Set and get player as current by index. ==================================================================== */ Player *players_set_current( int index ); /* ==================================================================== Check if these two players are allies. ==================================================================== */ int player_is_ally( Player *player, Player *second ); /* ==================================================================== Get the player who controls nation ==================================================================== */ Player *player_get_by_nation( Nation *nation ); /* ==================================================================== Get player with this id string. ==================================================================== */ Player *player_get_by_id( char *id ); /* ==================================================================== Get player with this index ==================================================================== */ Player *player_get_by_index( int index ); /* ==================================================================== Get player index in list ==================================================================== */ int player_get_index( Player *player ); #endif lgeneral-1.3.1/src/ai_tools.h0000664000175000017500000000311112140770455013002 00000000000000/*************************************************************************** ai_tools.h - description ------------------- begin : Sat Oct 5 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __AI_TOOLS_H #define __AI_TOOLS_H #define AI_DEBUG( loglev, ... ) \ do { if (loglev <= config.ai_debug) printf(__VA_ARGS__); } while (0) /* ==================================================================== Check the surrounding of a tile and apply the eval function to it. Results may be stored in the context. If 'eval_func' returns False the evaluation is broken up. ==================================================================== */ typedef struct { int x, y; } AI_Pos; void ai_eval_hexes( int x, int y, int range, int(*eval_func)(int,int,void*), void *ctx ); #endif lgeneral-1.3.1/src/player.c0000664000175000017500000001535212140770455012472 00000000000000/*************************************************************************** player.c - description ------------------- begin : Fri Jan 19 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifdef USE_DL #include #endif #include "lgeneral.h" #include "list.h" #include "nation.h" #include "unit_lib.h" #include "player.h" /* ==================================================================== Player stuff ==================================================================== */ List *players = 0; int cur_player_id = 0; extern int deploy_turn; /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== Add player to player list. ==================================================================== */ void player_add( Player *player ) { if ( players == 0 ) players = list_create( LIST_AUTO_DELETE, player_delete ); list_add( players, player ); } /* ==================================================================== Delete player entry. Pass as void* for compatibility with list_delete ==================================================================== */ void player_delete( void *ptr ) { Player *player = (Player*)ptr; if ( player == 0 ) return; if ( player->id ) free( player->id ); if ( player->name ) free( player->name ); if ( player->ai_fname ) free( player->ai_fname ); #ifdef USE_DL if ( player->ai_mod_handle ) dlclose( player->ai_mod_handle ); #endif if ( player->nations ) free( player->nations ); if ( player->allies ) list_delete( player->allies ); if ( player->prestige_per_turn ) free( player->prestige_per_turn ); free( player ); } /* ==================================================================== Delete all players. ==================================================================== */ void players_delete() { if ( players ) { list_delete( players ); players = 0; } } /* ==================================================================== Get very first player. ==================================================================== */ Player* players_get_first() { int dummy; cur_player_id = -1; return players_get_next(&dummy); } /* ==================================================================== Get next player in the cycle and also set new_turn true if all players have finished their turn action and it's time for a new turn. ==================================================================== */ Player *players_get_next( int *new_turn ) { Player *player; *new_turn = 0; do { cur_player_id++; if ( cur_player_id == players->count ) { if (deploy_turn) deploy_turn = 0; else *new_turn = 1; cur_player_id = 0; } player = list_get( players, cur_player_id ); //printf("Pl: %s,%d\n",player->name,player->no_init_deploy); } while (deploy_turn&&player->no_init_deploy); return player; } /* ==================================================================== Check who would be the next player but do not choose him. ==================================================================== */ Player *players_test_next() { if ( cur_player_id + 1 == players->count ) return list_get( players, 0 ); return list_get( players, cur_player_id + 1 ); } /* ==================================================================== Set and get player as current by index. ==================================================================== */ Player *players_set_current( int index ) { if ( index < 0 ) index = 0; if ( index > players->count ) index = 0; cur_player_id = index; return list_get( players, cur_player_id ); } /* ==================================================================== Check if these two players are allies. ==================================================================== */ int player_is_ally( Player *player, Player *second ) { Player *ally; if ( player == second || player == 0 ) return 1; list_reset( player->allies ); while ( ( ally = list_next( player->allies ) ) ) if ( ally == second ) return 1; return 0; } /* ==================================================================== Get the player who controls nation ==================================================================== */ Player *player_get_by_nation( Nation *nation ) { int i; Player *player; list_reset( players ); while ( ( player = list_next( players ) ) ) { for ( i = 0; i < player->nation_count; i++ ) if ( nation == player->nations[i] ) return player; } return 0; } /* ==================================================================== Get player with this id string. ==================================================================== */ Player *player_get_by_id( char *id ) { Player *player; list_reset( players ); while ( ( player = list_next( players ) ) ) { if ( STRCMP( player->id, id ) ) return player; } return 0; } /* ==================================================================== Get player with this index ==================================================================== */ Player *player_get_by_index( int index ) { return list_get( players, index ); } /* ==================================================================== Get player index in list ==================================================================== */ int player_get_index( Player *player ) { Player *entry; int i = 0; list_reset( players ); while ( ( entry = list_next( players ) ) ) { if ( player == entry ) return i; i++; } return 0; } lgeneral-1.3.1/src/ai_group.h0000664000175000017500000000514712140770455013011 00000000000000/*************************************************************************** ai_tools.h - description ------------------- begin : Sun Jul 14 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __AI_GROUP_H #define __AI_GROUP_H /* ==================================================================== AI army group ==================================================================== */ enum { GS_ART_FIRE = 0, GS_MOVE }; typedef struct { List *units; int order; /* -2: defend position by all means -1: defend position 0: proceed to position 1: attack position 2: attack position by all means */ int x, y; /* position that is this group's center of interest */ int state; /* state as listed above */ /* counters for sorted unit list */ int ground_count, aircraft_count, bomber_count; } AI_Group; /* ==================================================================== Create/Delete a group ==================================================================== */ AI_Group *ai_group_create( int order, int x, int y ); void ai_group_add_unit( AI_Group *group, Unit *unit ); void ai_group_delete_unit( AI_Group *group, Unit *unit ); void ai_group_delete( void *ptr ); /* ==================================================================== Handle next unit of a group to follow order. Stores all nescessary unit actions. If group is completely handled it returns False. ==================================================================== */ int ai_group_handle_next_unit( AI_Group *group ); /* HACK - this is usually located in ai.c but must be put here as we temporarily use it in ai_groups.c */ enum { AI_FIND_DEPOT, AI_FIND_OWN_TOWN, AI_FIND_ENEMY_TOWN, AI_FIND_OWN_OBJ, AI_FIND_ENEMY_OBJ }; #endif lgeneral-1.3.1/compile0000775000175000017500000000717312140770461011620 00000000000000#! /bin/sh # Wrapper for compilers which do not understand `-c -o'. scriptversion=2005-05-14.22 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand `-c -o'. Remove `-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file `INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; esac ofile= cfile= eat= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as `compile cc -o foo foo.c'. # So we strip `-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no `-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # `.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` # Create the lock directory. # Note: use `[/.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: lgeneral-1.3.1/config.guess0000775000175000017500000012516012140770461012557 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. timestamp='2004-08-11' # This file 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. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_MACHINE}" in i?86) test -z "$VENDOR" && VENDOR=pc ;; *) test -z "$VENDOR" && VENDOR=unknown ;; esac test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; amd64:OpenBSD:*:*) echo x86_64-unknown-openbsd${UNAME_RELEASE} exit 0 ;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; arc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; cats:OpenBSD:*:*) echo arm-unknown-openbsd${UNAME_RELEASE} exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; luna88k:OpenBSD:*:*) echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; macppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme88k:OpenBSD:*:*) echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvmeppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; pmax:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sgi:OpenBSD:*:*) echo mipseb-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sun3:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; wgrisc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit 0 ;; macppc:MirBSD:*:*) echo powerppc-unknown-mirbsd${UNAME_RELEASE} exit 0 ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit 0 ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit 0 ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit 0;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit 0 ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit 0 ;; *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; *:OS400:*:*) echo powerpc-ibm-os400 exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit 0 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit 0 ;; DRS?6000:UNIX_SV:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7 && exit 0 ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit 0 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit 0 ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit 0 ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit 0 ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c \ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ && exit 0 echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit 0 ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit 0 ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit 0 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit 0 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit 0 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit 0 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit 0 ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit 0 ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit 0 ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit 0 ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:*:*) echo rs6000-ibm-aix exit 0 ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit 0 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit 0 ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit 0 ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then # avoid double evaluation of $set_cc_for_build test -n "$CC_FOR_BUILD" || eval $set_cc_for_build if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit 0 ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit 0 ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit 0 ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit 0 ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit 0 ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit 0 ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit 0 ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit 0 ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit 0 ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit 0 ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; x86:Interix*:[34]*) echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' exit 0 ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux exit 0 ;; cris:Linux:*:*) echo cris-axis-linux exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux exit 0 ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux exit 0 ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && echo "${CPU}-${VENDOR}-linux" && exit 0 ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` test x"${CPU}" != x && echo "${CPU}-${VENDOR}-linux" && exit 0 ;; ppc:Linux:*:*) echo powerpc-${VENDOR}-linux exit 0 ;; ppc64:Linux:*:*) echo powerpc64-${VENDOR}-linux exit 0 ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="-libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-${VENDOR}-linux${LIBC} exit 0 ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-${VENDOR}-linux ;; PA8*) echo hppa2.0-${VENDOR}-linux ;; *) echo hppa-${VENDOR}-linux ;; esac exit 0 ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-${VENDOR}-linux exit 0 ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit 0 ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux exit 0 ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux exit 0 ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux exit 0 ;; x86_64:Linux:*:*) echo x86_64-${VENDOR}-linux exit 0 ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-${VENDOR}-linux" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-${VENDOR}-linuxaout" exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-${VENDOR}-linuxcoff" exit 0 ;; "") # Either a pre-BFD a.out linker (linuxoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-${VENDOR}-linuxoldld" exit 0 ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #ifdef __INTEL_COMPILER LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}" | sed 's/linux-gnu/linux/' && exit 0 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit 0 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit 0 ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit 0 ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit 0 ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit 0 ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit 0 ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit 0 ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit 0 ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit 0 ;; i*86:*:5:[78]*) case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit 0 ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit 0 ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit 0 ;; paragon:*:*:*) echo i860-intel-osf1 exit 0 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit 0 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit 0 ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit 0 ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit 0 ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4.3${OS_REL} && exit 0 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4 && exit 0 ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit 0 ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit 0 ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit 0 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit 0 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit 0 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit 0 ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit 0 ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit 0 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit 0 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit 0 ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit 0 ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit 0 ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit 0 ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in *86) UNAME_PROCESSOR=i686 ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit 0 ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit 0 ;; *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit 0 ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit 0 ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit 0 ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit 0 ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit 0 ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit 0 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit 0 ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit 0 ;; *:ITS:*:*) echo pdp10-unknown-its exit 0 ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit 0 ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms && exit 0 ;; I*) echo ia64-dec-vms && exit 0 ;; V*) echo vax-dec-vms && exit 0 ;; esac esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit 0 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; c34*) echo c34-convex-bsd exit 0 ;; c38*) echo c38-convex-bsd exit 0 ;; c4*) echo c4-convex-bsd exit 0 ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: lgeneral-1.3.1/lgeneral-redit/0000775000175000017500000000000012420446217013210 500000000000000lgeneral-1.3.1/lgeneral-redit/README0000664000175000017500000001055012140770456014015 00000000000000 GTK-based Reinforcements Editor for LGC-PG. by Michael Speck released under GNU GPL To use this editor you will need the original Panzer General (DOS) data as this program does not modify the scenarios but the input for converting the scenarios when using lgc-pg. For the following I assume that you have copied either the contents of the pg-data package (from http://lgames.sf.net) or the contents of the dat directory (from your PG CD) to ~/tmp/dat and that you have put the lgeneral source to a directory ~/sources/lgeneral-X.X.X and that you are now in ~/sources/lgeneral-X.X.X/lgeneral-redit Starting from the this very directory do: > configure; make; > cd .. > configure --disable-install; make clean; make First we have to compile lgeneral-redit, lgeneral and lgc-pg so, that it runs from the source directory. While lgeneral-redit always runs from the source directory lgeneral and lgc-pg require --disable-install for this. The make process of lgeneral-redit is separate as it requires GTK which is an unnescessary dependancy for LGeneral itself. > cd lgc-pg > lgc-pg -s ~/tmp/dat -d ~/sources/lgeneral-X.X.X/src lgeneral-redit requires pg.udb, thus we have to run the converter a first time. lgeneral-redit looks for pg.udb in ../../src/units which is a relative path. Don't rename or move anything! BTW doing this without 'make install' saves us trouble with the permissions in /usr. > cd ../lgeneral-redit/src > lgeneral-redit Now, whatever you change will be saved in reinf.rc from which you can load again. Some information on the interface is given further below. Let's assume you defined some nice reinforcements, then hit the Build button from the menu. This will modify the file ../../lgc-pg/convdata/reinf which is again a relative path, so don't rename or move anything! > cd ../../lgc-pg > lgc-pg -s ~/tmp/dat -d ~/sources/lgeneral-X.X.X/src Every time the converter is run, the delayed units for all scenarios are added according to the information in data/reinf. > cd ../src > lgeneral Now, you can test the scenario. If something is not okay, you can re-run lgeneral-redit, do a Build in it, run lgc-pg and then lgeneral again. It sounds more complicated than it actually is. It is best to use a multiterminal to be present in all three directories: src, lgc-pg and lgeneral-redit/src. *** INTERFACE HINTS *** The layout is very simple and quite self-explanatory. If you select a scenario SCENARIO, the label at the top right will change to 'Add Unit For SCENARIO'. This way you always know, for which scenario you currently edit the reinforcements. Then you select the side (Axis,Allies), the unit category (Infantry, Tank ...) and the unit itself. Note, that all units from this category will be displayed, no matter of the time of the scenario! Thus it is possible to deploy a Tiger for the Axis in Poland and equip it with an Opel transporter. Which you should not do, of course. 'Delay' is the number of turns after which the unit will be available for deployment. 'Strength' is the unit strength which may range from 5-15 and 'Experience' is the experience ranging from 0 to 5 stars. If you select a unit from the lower right-hand side box you can either remove it or replace it with the current settings you have made. Replacing is the same as simply removing the old unit and then adding the new one. This is useful when changing a property for a delayed unit: for instance, if you added a tank that should appear after 2 turns but that should appear now after 4 turns. Then you select the unit, simply change the delay from 2 to 4 and hit replace. There is no undo function, so save and load on a regular base. When you feel like the reinforcements for a scenario are ready to be tested, hit the 'Build' button in the menu. This will, as explained above, generate the reinf file in lgc-pg. Then re-running lgc-pg allows to test the reinforcements in LGeneral. *** CONTRIBUTIONS *** If you want to contribute to LGeneral please create reasonable reinforcements for a scenario of your choice. (thus no Tiger2 in Poland or stuff!) The reinforcements should be roughly within the historical contexts of the scenario and not to excessive. Please, tell me in advance if you want to build reinforcements. Just to prevent unnescessary work, in case someone else is already going for it. Reinforcements contributions will be listed in the AUTHORS file. lgeneral-1.3.1/lgeneral-redit/stamp-h.in0000664000175000017500000000001212140770456015026 00000000000000timestamp lgeneral-1.3.1/lgeneral-redit/editor.glade0000664000175000017500000004706412140770456015433 00000000000000 Reinf Editor editor src pixmaps C False False GtkWindow window destroy on_window_destroy Thu, 03 Oct 2002 08:12:03 GMT Reinforcements Editor GTK_WINDOW_TOPLEVEL GTK_WIN_POS_NONE False 400 300 False True False GtkVBox vbox3 False 0 GtkMenuBar menu GTK_SHADOW_OUT 0 False False GtkMenuItem file activate on_file_activate Wed, 02 Oct 2002 10:53:17 GMT False GtkMenu file_menu GtkMenuItem load activate on_load_activate Wed, 02 Oct 2002 13:47:43 GMT False GtkMenuItem save activate on_save_activate Wed, 02 Oct 2002 13:47:43 GMT False GtkMenuItem build activate on_build_activate Wed, 02 Oct 2002 13:47:43 GMT False GtkMenuItem trennlinie2 False GtkMenuItem quit activate on_quit_activate Wed, 02 Oct 2002 13:47:43 GMT False GtkHBox hbox1 4 False 5 0 True True GtkVBox vbox4 False 0 0 True True GtkScrolledWindow scrolledwindow2 GTK_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC GTK_UPDATE_CONTINUOUS GTK_UPDATE_CONTINUOUS 0 True True GtkCList scenarios 2 130 True select_row on_scenarios_select_row Wed, 02 Oct 2002 17:42:54 GMT 1 80 GTK_SELECTION_SINGLE True GTK_SHADOW_IN GtkLabel CList:title label18 GTK_JUSTIFY_CENTER False 0.5 0.5 0 0 GtkVBox vbox5 False 0 0 True True GtkVBox vbox6 False 0 0 True True GtkHBox hbox2 False 0 0 True True GtkVBox vbox7 False 0 0 True True GtkLabel add_label GTK_JUSTIFY_CENTER False 0.5 0.5 0 0 0 False False GtkHBox hbox3 2 False 2 0 True True GtkVBox vbox8 False 0 0 True True GtkCombo players False True False True False Axis Allies 0 False False GtkEntry GtkCombo:entry players-entry True changed on_players_changed Wed, 02 Oct 2002 17:43:53 GMT False True 0 Axis GtkCombo classes False True False True False Infantry Tank Recon Anti-Tank Artillery Anti-Aircraft Air-Defense Fighter Tactical Bomber Level Bomber Submarine Destroyer Capital Ship Aircraft Carrier 0 False False GtkEntry GtkCombo:entry classes-entry True changed on_classes_changed Wed, 02 Oct 2002 17:43:59 GMT False True 0 Infantry GtkScrolledWindow scrolledwindow4 GTK_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC GTK_UPDATE_CONTINUOUS GTK_UPDATE_CONTINUOUS 0 True True GtkCList units 2 140 160 True select_row on_units_select_row Wed, 02 Oct 2002 17:44:18 GMT 1 80 GTK_SELECTION_SINGLE True GTK_SHADOW_IN GtkLabel CList:title label21 GTK_JUSTIFY_CENTER False 0.5 0.5 0 0 GtkScrolledWindow scrolledwindow5 GTK_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC GTK_UPDATE_CONTINUOUS GTK_UPDATE_CONTINUOUS 0 True True GtkCList transporters 2 140 130 True select_row on_transporters_select_row Wed, 02 Oct 2002 17:44:28 GMT 1 80 GTK_SELECTION_SINGLE True GTK_SHADOW_IN GtkLabel CList:title label22 GTK_JUSTIFY_CENTER False 0.5 0.5 0 0 GtkVBox vbox9 False 0 0 True True GtkTable table1 2 3 2 True 2 2 0 True True GtkLabel label23 GTK_JUSTIFY_CENTER False 0 0.5 0 0 0 1 0 1 0 0 False False False False True False GtkLabel label24 GTK_JUSTIFY_CENTER False 0 0.5 0 0 0 1 1 2 0 0 False False False False True False GtkLabel label25 GTK_JUSTIFY_CENTER False 0 0.5 0 0 0 1 2 3 0 0 False False False False True False GtkCombo exp False True False True False 0 1 2 3 4 5 1 2 2 3 0 0 True False False False True False GtkEntry GtkCombo:entry exp-entry True False True 0 0 GtkCombo strength False True False True False 5 8 10 12 15 1 2 1 2 0 0 True False False False True False GtkEntry GtkCombo:entry strength-entry True True True 0 10 GtkSpinButton delay True 1 0 True GTK_UPDATE_ALWAYS False False 1 1 100 1 10 10 1 2 0 1 0 0 True False False False True False GtkButton add 5 True clicked on_add_clicked Wed, 02 Oct 2002 17:44:53 GMT GTK_RELIEF_NORMAL 0 False False GtkButton replace 5 True clicked on_replace_clicked Thu, 03 Oct 2002 07:53:04 GMT GTK_RELIEF_NORMAL 0 False False GtkButton remove 5 True clicked on_remove_clicked Thu, 03 Oct 2002 07:53:09 GMT GTK_RELIEF_NORMAL 0 False False GtkCList reinforcements 150 True select_row on_reinforcements_select_row Wed, 02 Oct 2002 21:03:29 GMT key_press_event on_reinforcements_key_press_event Thu, 03 Oct 2002 07:40:33 GMT 1 80 GTK_SELECTION_SINGLE True GTK_SHADOW_IN 0 True True GtkLabel CList:title label19 GTK_JUSTIFY_CENTER False 0.5 0.5 0 0 lgeneral-1.3.1/lgeneral-redit/mkinstalldirs0000775000175000017500000000132612140770456015744 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.4 2005/09/28 13:55:09 leo Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" 1>&2 mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here lgeneral-1.3.1/lgeneral-redit/INSTALL0000664000175000017500000000000012140770456014153 00000000000000lgeneral-1.3.1/lgeneral-redit/COPYING0000664000175000017500000000000012140770456014155 00000000000000lgeneral-1.3.1/lgeneral-redit/macros/0000775000175000017500000000000012420446217014474 500000000000000lgeneral-1.3.1/lgeneral-redit/macros/gnome-common.m40000664000175000017500000000037512140770456017262 00000000000000# gnome-common.m4 # # This only for packages that are not in the GNOME CVS tree. dnl GNOME_COMMON_INIT AC_DEFUN([GNOME_COMMON_INIT], [ GNOME_ACLOCAL_DIR="$GNOME_COMMON_MACROS_DIR" AC_SUBST(GNOME_ACLOCAL_DIR) ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" ]) lgeneral-1.3.1/lgeneral-redit/macros/gnome-ghttp-check.m40000664000175000017500000000072312140770456020170 00000000000000AC_DEFUN([GNOME_GHTTP_CHECK],[ AC_REQUIRE([GNOME_INIT_HOOK]) GHTTP_LIB= AC_CHECK_FUNC(connect,,[ AC_CHECK_LIB(socket,connect, GHTTP_LIB="-lsocket $GHTTP_LIB",,$GHTTP_LIB)]) AC_CHECK_FUNC(gethostbyname,,[ AC_CHECK_LIB(nsl,gethostbyname, GHTTP_LIB="-lnsl $GHTTP_LIB",,$GHTTP_LIB)]) AC_CHECK_LIB(ghttp, ghttp_request_new, GHTTP_LIB="-lghttp $GHTTP_LIB",GHTTP_LIB="",-L$gnome_prefix $GHTTP_LIB) AC_SUBST(GHTTP_LIB) AC_PROVIDE([GNOME_GHTTP_CHECK]) ]) lgeneral-1.3.1/lgeneral-redit/macros/gnome-print-check.m40000664000175000017500000000420512140770456020175 00000000000000# Configure paths for GNOME-PRINT # Chris Lahey 99-2-5 # stolen from Manish Singh again # stolen back from Frank Belew # stolen from Manish Singh # Shamelessly stolen from Owen Taylor dnl AM_PATH_GNOME_PRINT([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Test for GNOME-PRINT, and define GNOME_PRINT_CFLAGS and GNOME_PRINT_LIBS dnl AC_DEFUN([AM_PATH_GNOME_PRINT], [ min_version=ifelse([$1],,0.21,$1) gnome_print_ok="" AC_PATH_PROG(GNOME_CONFIG, gnome-config, no) if test "$GNOME_CONFIG" = "no" ; then AC_MSG_RESULT(gnome-config is missing, check your gnome installation) else AC_MSG_CHECKING(for GNOME-PRINT - version >= $min_version) if `$GNOME_CONFIG --libs print > /dev/null 2>&1`; then rqmajor=$(echo "$1" | sed -e 's/cvs-//' | sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/') rqminor=$(echo "$1" | sed -e 's/cvs-//' | sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/') major=$($GNOME_CONFIG --modversion print | sed -e 's/gnome-print-//' | sed -e 's/cvs-//' | sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/') minor=$($GNOME_CONFIG --modversion print | sed -e 's/gnome-print-//' | sed -e 's/cvs-//' | sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/') if test "$major" -ge "$rqmajor"; then if test "$major" -gt "$rqmajor"; then AC_MSG_RESULT("found $major.$minor") gnome_print_ok="yes" else if test "$minor" -ge "$rqminor"; then AC_MSG_RESULT("found $major.$minor") gnome_print_ok="yes" else AC_MSG_RESULT("you have $major.$minor") fi fi else AC_MSG_RESULT("you have $major.$minor") fi else AC_MSG_RESULT("did not find any version") fi fi if test "x$gnome_print_ok" != "x" ; then GNOME_PRINT_CFLAGS=`$GNOME_CONFIG --cflags print` GNOME_PRINT_LIBS=`$GNOME_CONFIG --libs print` ifelse([$2], , :, [$2]) else GNOME_PRINT_CFLAGS="" GNOME_PRINT_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(GNOME_PRINT_CFLAGS) AC_SUBST(GNOME_PRINT_LIBS) ]) AC_DEFUN([GNOME_PRINT_CHECK], [ AM_PATH_GNOME_PRINT($1,,[AC_MSG_ERROR(GNOME-PRINT not found or wrong version)]) ]) lgeneral-1.3.1/lgeneral-redit/macros/need-declaration.m40000664000175000017500000000213312140770456020057 00000000000000dnl See whether we need a declaration for a function. dnl GCC_NEED_DECLARATION(FUNCTION [, EXTRA-HEADER-FILES]) AC_DEFUN([GCC_NEED_DECLARATION], [AC_MSG_CHECKING([whether $1 must be declared]) AC_CACHE_VAL(gcc_cv_decl_needed_$1, [AC_TRY_COMPILE([ #include #ifdef HAVE_STRING_H #include #else #ifdef HAVE_STRINGS_H #include #endif #endif #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_UNISTD_H #include #endif $2], [char *(*pfn) = (char *(*)) $1], eval "gcc_cv_decl_needed_$1=no", eval "gcc_cv_decl_needed_$1=yes")]) if eval "test \"`echo '$gcc_cv_decl_needed_'$1`\" = yes"; then AC_MSG_RESULT(yes) gcc_need_declarations="$gcc_need_declarations $1" gcc_tr_decl=NEED_DECLARATION_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` AC_DEFINE_UNQUOTED($gcc_tr_decl) else AC_MSG_RESULT(no) fi ])dnl dnl Check multiple functions to see whether each needs a declaration. dnl GCC_NEED_DECLARATIONS(FUNCTION... [, EXTRA-HEADER-FILES]) AC_DEFUN([GCC_NEED_DECLARATIONS], [for ac_func in $1 do GCC_NEED_DECLARATION($ac_func, $2) done ] ) lgeneral-1.3.1/lgeneral-redit/macros/gnome-pthread-check.m40000664000175000017500000000062512140770456020472 00000000000000dnl dnl And better, use gthreads instead... dnl AC_DEFUN([GNOME_PTHREAD_CHECK],[ PTHREAD_LIB="" AC_CHECK_LIB(pthread, pthread_create, PTHREAD_LIB="-lpthread", [AC_CHECK_LIB(pthreads, pthread_create, PTHREAD_LIB="-lpthreads", [AC_CHECK_LIB(c_r, pthread_create, PTHREAD_LIB="-lc_r", [AC_CHECK_FUNC(pthread_create)] )] )] ) AC_SUBST(PTHREAD_LIB) AC_PROVIDE([GNOME_PTHREAD_CHECK]) ]) lgeneral-1.3.1/lgeneral-redit/macros/aclocal-include.m40000664000175000017500000000056412140770456017706 00000000000000# aclocal-include.m4 # # This macro adds the name macrodir to the set of directories # that `aclocal' searches for macros. # serial 1 dnl AM_ACLOCAL_INCLUDE(macrodir) AC_DEFUN([AM_ACLOCAL_INCLUDE], [ AM_CONDITIONAL(INSIDE_GNOME_COMMON, test x = y) test -n "$ACLOCAL_FLAGS" && ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" for k in $1 ; do ACLOCAL="$ACLOCAL -I $k" ; done ]) lgeneral-1.3.1/lgeneral-redit/macros/gnome-bonobo-check.m40000664000175000017500000001300612140770456020316 00000000000000# Configure paths for Bonobo # Miguel de Icaza, 99-04-12 # Stolen from Chris Lahey 99-2-5 # stolen from Manish Singh again # stolen back from Frank Belew # stolen from Manish Singh # Shamelessly stolen from Owen Taylor dnl AM_PATH_BONOBO ([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Test for Bonobo, and define BONOBO_CFLAGS and BONOBO_LIBS dnl AC_DEFUN([AM_PATH_BONOBO], [ dnl dnl Get the cflags and libraries from the gnome-config script dnl AC_ARG_WITH(bonobo-prefix,[ --with-bonobo-prefix=PFX Prefix where Bonobo is installed (optional)], bonobo_prefix="$withval", bonobo_prefix="") AC_ARG_WITH(bonobo-exec-prefix,[ --with-bonobo-exec-prefix=PFX Exec prefix where Bonobo is installed (optional)], bonobo_exec_prefix="$withval", bonobo_exec_prefix="") AC_ARG_ENABLE(bonobotest, [ --disable-bonobotest Do not try to compile and run a test Bonobo program], , enable_bonobotest=yes) if test x$bonobo_exec_prefix != x ; then bonobo_args="$bonobo_args --exec-prefix=$bonobo_exec_prefix" if test x${GNOME_CONFIG+set} != xset ; then GNOME_CONFIG=$bonobo_exec_prefix/bin/gnome-config fi fi if test x$bonobo_prefix != x ; then bonobo_args="$bonobo_args --prefix=$bonobo_prefix" if test x${GNOME_CONFIG+set} != xset ; then GNOME_CONFIG=$bonobo_prefix/bin/gnome-config fi fi AC_PATH_PROG(GNOME_CONFIG, gnome-config, no) min_bonobo_version=ifelse([$1], ,0.1.0,$1) AC_MSG_CHECKING(for BONOBO - version >= $min_bonobo_version) no_bonobo="" if test "$GNOME_CONFIG" = "no" ; then no_bonobo=yes else BONOBO_CFLAGS=`$GNOME_CONFIG $bonoboconf_args --cflags bonobo bonobox` BONOBO_LIBS=`$GNOME_CONFIG $bonoboconf_args --libs bonobo bonobox` bonobo_major_version=`$GNOME_CONFIG $bonobo_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` bonobo_minor_version=`$GNOME_CONFIG $bonobo_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` bonobo_micro_version=`$GNOME_CONFIG $bonobo_config_args --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_bonobotest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $BONOBO_CFLAGS" LIBS="$LIBS $BONOBO_LIBS" dnl dnl Now check if the installed BONOBO is sufficiently new. (Also sanity dnl checks the results of gnome-config to some extent dnl rm -f conf.bonobotest AC_TRY_RUN([ #include #include #include #include static char* my_strdup (char *str) { char *new_str; if (str) { new_str = malloc ((strlen (str) + 1) * sizeof(char)); strcpy (new_str, str); } else new_str = NULL; return new_str; } int main () { int major, minor, micro; char *tmp_version; system ("touch conf.bonobotest"); bonobo_object_get_type (); return 0; } ],, no_bonobo=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_bonobo" = x ; then AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$GNOME_CONFIG" = "no" ; then echo "*** The gnome-config script installed by GNOME-LIBS could not be found" echo "*** If BONOBO was installed in PREFIX, make sure PREFIX/bin is in" echo "*** your path, or set the GNOME_CONFIG environment variable to the" echo "*** full path to gnome-config." else if test -f conf.bonobotest ; then : else echo "*** Could not run BONOBO test program, checking why..." CFLAGS="$CFLAGS $BONOBO_CFLAGS" LIBS="$LIBS $BONOBO_LIBS" AC_TRY_LINK([ #include #include ], [ return 0; ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding BONOBO or finding the wrong" echo "*** version of BONOBO. If it is not finding BONOBO, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means BONOBO was incorrectly installed" echo "*** or that you have moved BONOBO since it was installed. In the latter case, you" echo "*** may want to edit the gnome-config script: $GNOME_CONFIG" ]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi BONOBO_CFLAGS="" BONOBO_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(BONOBO_CFLAGS) AC_SUBST(BONOBO_LIBS) rm -f conf.bonobotest ]) AC_DEFUN([BONOBO_CHECK], [ AM_PATH_BONOBO(0.1.0,,[AC_MSG_ERROR(BONOBO not found)]) ]) AC_DEFUN([AM_BONOBO_USES_OAF], [ AC_REQUIRE([AM_PATH_BONOBO]) AC_MSG_CHECKING(if Bonobo uses OAF) if ( gnome-config --libs bonobo | grep oaf ) > /dev/null 2>&1 ; then using_oaf="yes" AC_DEFINE(BONOBO_USES_OAF) else using_oaf="no" fi AC_MSG_RESULT("$using_oaf") AM_CONDITIONAL(BONOBO_USES_OAF, test x"using_oaf" = "xyes") ]) lgeneral-1.3.1/lgeneral-redit/macros/gnome-xml-check.m40000664000175000017500000000142712140770456017644 00000000000000dnl dnl GNOME_XML_HOOK (script-if-xml-found, failflag) dnl dnl If failflag is "failure", script aborts due to lack of XML dnl dnl Check for availability of the libxml library dnl the XML parser uses libz if available too dnl AC_DEFUN([GNOME_XML_HOOK],[ AC_PATH_PROG(GNOME_CONFIG,gnome-config,no) if test "$GNOME_CONFIG" = no; then if test x$2 = xfailure; then AC_MSG_ERROR(Could not find gnome-config) fi fi GNOME_XML_CFLAGS=`$GNOME_CONFIG --cflags xml` AC_SUBST(GNOME_XML_CFLAGS) AC_CHECK_LIB(xml, xmlNewDoc, [ $1 GNOME_XML_LIB=`$GNOME_CONFIG --libs xml` ], [ if test x$2 = xfailure; then AC_MSG_ERROR(Could not link sample xml program) fi ], `$GNOME_CONFIG --libs xml`) AC_SUBST(GNOME_XML_LIB) ]) AC_DEFUN([GNOME_XML_CHECK], [ GNOME_XML_HOOK([],failure) ]) lgeneral-1.3.1/lgeneral-redit/macros/gnome-guile-checks.m40000664000175000017500000000572512140770456020341 00000000000000dnl dnl GNOME_CHECK_GUILE (failflag) dnl dnl if failflag is "fail" then GNOME_CHECK_GUILE will abort if guile is not found. dnl AC_DEFUN([GNOME_CHECK_GUILE], [ saved_ldflags="$LDFLAGS" saved_cppflags="$CPPFLAGS" LDFLAGS="$LDFLAGS $GNOME_LIBDIR" AC_CHECK_LIB(qthreads,qt_null,[ QTTHREADS_LIB="-lqthreads" ],[ AC_CHECK_LIB(qt, qt_null, QTTHREADS_LIB="-lqt") ],$LIBS) AC_SUBST(QTTHREADS_LIB) AC_CHECK_LIB(termcap,main,TERMCAP_LIB="-ltermcap") AC_CHECK_LIB(readline,main,READLINE_LIB="-lreadline",,$TERMCAP_LIB) AC_SUBST(TERMCAP_LIB) AC_SUBST(READLINE_LIB) if test "x$cross_compiling" = "xyes" ; then name_build_guile="$target_alias-guile-config" else name_build_guile="guile-config" fi AC_CHECK_PROG(BUILD_GUILE, $name_build_guile, yes, no) if test "x$BUILD_GUILE" = "xyes"; then AC_MSG_CHECKING(whether $name_build_guile works) if test x`$name_build_guile --version >/dev/null 2>&1 || \ echo no` = xno; then BUILD_GUILE=no fi AC_MSG_RESULT($BUILD_GUILE) else if test "x$cross_compiling" = "xyes" ; then name_build_guile="$target_alias-build-guile" else name_build_guile="build-guile" fi AC_CHECK_PROG(BUILD_GUILE, $name_build_guile, yes, no) if test "x$BUILD_GUILE" = "xyes"; then AC_MSG_CHECKING(whether $name_build_guile works) if test x`$name_build_guile --version >/dev/null 2>&1 || \ echo no` = xno; then BUILD_GUILE=no fi AC_MSG_RESULT($BUILD_GUILE) fi fi AC_CHECK_LIB(m, sin) if test "x$BUILD_GUILE" = "xyes"; then AC_MSG_CHECKING(for guile libraries) GUILE_LIBS="`$name_build_guile link`" AC_MSG_RESULT($GUILE_LIBS) AC_MSG_CHECKING(for guile headers) GUILE_INCS="`$name_build_guile compile`" AC_MSG_RESULT($GUILE_INCS) else GUILE_LIBS="$GNOME_LIBDIR" GUILE_INCS="$GNOME_INCLUDEDIR" AC_CHECK_LIB(rx, main, GUILE_LIBS="-lrx $GUILE_LIBS") AC_CHECK_LIB(qt, qt_null, GUILE_LIBS="-lqt $GUILE_LIBS") AC_CHECK_LIB(dl, dlopen, GUILE_LIBS="-ldl $GUILE_LIBS") AC_CHECK_LIB(nsl, t_accept, GUILE_LIBS="$GUILE_LIBS -lnsl") AC_CHECK_LIB(socket, socket, GUILE_LIBS="$GUILE_LIBS -lsocket") GUILE_LIBS="-lguile $GUILE_LIBS $QTTHREADS_LIB $READLINE_LIB $TERMCAP_LIB" fi AC_SUBST(GUILE_LIBS) AC_SUBST(GUILE_INCS) saved_LIBS="$LIBS" LIBS="$LIBS $GUILE_LIBS" CPPFLAGS="$saved_cppflags $GUILE_INCS" AC_MSG_CHECKING(whether guile works) AC_TRY_LINK([ #include #include ],[ gh_eval_str("(newline)"); scm_boot_guile(0,NULL,NULL,NULL); ],[ ac_cv_guile_found=yes AC_DEFINE(HAVE_GUILE) ],[ ac_cv_guile_found=no ]) AC_MSG_RESULT($ac_cv_guile_found) if test x$ac_cv_guile_found = xno ; then if test x$1 = xfail ; then AC_MSG_ERROR(Can not find Guile on this system) else AC_MSG_WARN(Can not find Guile on this system) fi ac_cv_guile_found=no GUILE_LIBS= GUILE_INCS= fi LIBS="$saved_LIBS" LDFLAGS="$saved_ldflags" CPPFLAGS="$saved_cppflags" AC_SUBST(GUILE_LIBS) AM_CONDITIONAL(GUILE, test x$ac_cv_guile_found = xyes) ]) lgeneral-1.3.1/lgeneral-redit/macros/gnome-x-checks.m40000664000175000017500000000465312140770456017502 00000000000000dnl GNOME_X_CHECKS dnl dnl Basic X11 related checks for X11. At the end, the following will be dnl defined/changed: dnl GTK_{CFLAGS,LIBS} From AM_PATH_GTK dnl CPPFLAGS Will include $X_CFLAGS dnl GNOME_HAVE_SM `true' or `false' depending on whether session dnl management is available. It is available if dnl both -lSM and X11/SM/SMlib.h exist. (Some dnl Solaris boxes have the library but not the header) dnl XPM_LIBS -lXpm if Xpm library is present, otherwise "" dnl dnl The following configure cache variables are defined (but not used): dnl gnome_cv_passdown_{x_libs,X_LIBS,X_CFLAGS} dnl AC_DEFUN([GNOME_X_CHECKS], [ AM_PATH_GTK(1.2.0,,AC_MSG_ERROR(GTK not installed, or gtk-config not in path)) dnl Hope that GTK_CFLAGS have only -I and -D. Otherwise, we could dnl test -z "$x_includes" || CPPFLAGS="$CPPFLAGS -I$x_includes" dnl dnl Use CPPFLAGS instead of CFLAGS because AC_CHECK_HEADERS uses dnl CPPFLAGS, not CFLAGS CPPFLAGS="$CPPFLAGS $GTK_CFLAGS" saved_ldflags="$LDFLAGS" LDFLAGS="$LDFLAGS $GTK_LIBS" gnome_cv_passdown_x_libs="$GTK_LIBS" gnome_cv_passdown_X_LIBS="$GTK_LIBS" gnome_cv_passdown_X_CFLAGS="$GTK_CFLAGS" gnome_cv_passdown_GTK_LIBS="$GTK_LIBS" LDFLAGS="$saved_ldflags $GTK_LIBS" dnl We are requiring GTK >= 1.1.1, which means this will be fine anyhow. USE_DEVGTK=true dnl AC_MSG_CHECKING([whether to use features from (unstable) GTK+ 1.1.x]) dnl AC_EGREP_CPP(answer_affirmatively, dnl [#include dnl #ifdef GTK_HAVE_FEATURES_1_1_0 dnl answer_affirmatively dnl #endif dnl ], dev_gtk=yes, dev_gtk=no) dnl if test "$dev_gtk" = "yes"; then dnl USE_DEVGTK=true dnl fi dnl AC_MSG_RESULT("$dev_gtk") GNOME_HAVE_SM=true case "$GTK_LIBS" in *-lSM*) dnl Already found it. ;; *) dnl Assume that if we have -lSM then we also have -lICE. AC_CHECK_LIB(SM, SmcSaveYourselfDone, [GTK_LIBS="-lSM -lICE $GTK_LIBS"],GNOME_HAVE_SM=false, $x_libs -lICE) ;; esac if test "$GNOME_HAVE_SM" = true; then AC_CHECK_HEADERS(X11/SM/SMlib.h,,GNOME_HAVE_SM=false) fi if test "$GNOME_HAVE_SM" = true; then AC_DEFINE(HAVE_LIBSM) fi XPM_LIBS="" AC_CHECK_LIB(Xpm, XpmFreeXpmImage, [XPM_LIBS="-lXpm"], , $x_libs) AC_SUBST(XPM_LIBS) AC_REQUIRE([GNOME_PTHREAD_CHECK]) LDFLAGS="$saved_ldflags" AC_PROVIDE([GNOME_X_CHECKS]) ]) lgeneral-1.3.1/lgeneral-redit/macros/gnome-vfs.m40000664000175000017500000000563512140770456016574 00000000000000dnl GNOME_VFS_CHECKS dnl Check for various functions needed by libvfs. dnl This has various effects: dnl Sets GNOME_VFS_LIBS to libraries required dnl Sets termnet to true or false depending on whether it is required. dnl If yes, defines USE_TERMNET. dnl Sets vfs_flags to "pretty" list of vfs implementations we include. dnl Sets shell variable use_vfs to yes (default, --with-vfs) or dnl "no" (--without-vfs). dnl Calls AC_SUBST(mcserv), which is either empty or "mcserv". dnl Private define AC_DEFUN([GNOME_WITH_VFS],[ dnl FIXME: network checks should probably be in their own macro. AC_CHECK_LIB(nsl, t_accept) AC_CHECK_LIB(socket, socket) have_socket=no AC_CHECK_FUNCS(socket, have_socket=yes) if test $have_socket = no; then # socket is not in the default libraries. See if it's in some other. for lib in bsd socket inet; do AC_CHECK_LIB($lib, socket, [ LIBS="$LIBS -l$lib" have_socket=yes AC_DEFINE(HAVE_SOCKET) break]) done fi have_gethostbyname=no AC_CHECK_FUNC(gethostbyname, have_gethostbyname=yes) if test $have_gethostbyname = no; then # gethostbyname is not in the default libraries. See if it's in some other. for lib in bsd socket inet; do AC_CHECK_LIB($lib, gethostbyname, [LIBS="$LIBS -l$lib"; have_gethostbyname=yes; break]) done fi vfs_flags="tarfs" use_net_code=false if test $have_socket = yes; then AC_STRUCT_LINGER AC_CHECK_FUNCS(pmap_set, , [ AC_CHECK_LIB(rpc, pmap_set, [ LIBS="-lrpc $LIBS" AC_DEFINE(HAVE_PMAP_SET) ])]) AC_CHECK_FUNCS(pmap_getport pmap_getmaps rresvport) dnl add for source routing support setsockopt AC_CHECK_HEADERS(rpc/pmap_clnt.h) vfs_flags="$vfs_flags, mcfs, ftpfs, fish" use_net_code=true fi dnl dnl Samba support dnl smbfs="" SAMBAFILES="" AC_ARG_WITH(samba, [--with-samba Support smb virtual file system],[ if test "x$withval" != "xno"; then AC_DEFINE(WITH_SMBFS) vfs_flags="$vfs_flags, smbfs" smbfs="smbfs.o" SAMBAFILES="\$(SAMBAFILES)" fi ]) AC_SUBST(smbfs) AC_SUBST(SAMBAFILES) dnl dnl The termnet support dnl termnet=false AC_ARG_WITH(termnet, [--with-termnet If you want a termified net support],[ if test x$withval = xyes; then AC_DEFINE(USE_TERMNET) termnet=true fi ]) TERMNET="" AC_DEFINE(USE_VFS) if $use_net_code; then AC_DEFINE(USE_NETCODE) fi mcserv= if test $have_socket = yes; then mcserv="mcserv" if $termnet; then TERMNET="-ltermnet" fi fi AC_SUBST(TERMNET) AC_SUBST(mcserv) dnl FIXME: dnl GNOME_VFS_LIBS= ]) AC_DEFUN([GNOME_VFS_CHECKS],[ use_vfs=yes AC_ARG_WITH(vfs, [--with-vfs Compile with the VFS code], use_vfs=$withval ) case $use_vfs in yes) GNOME_WITH_VFS;; no) use_vfs=no;; *) use_vfs=no;; dnl Should we issue a warning? esac ]) lgeneral-1.3.1/lgeneral-redit/macros/gnome-orbit-check.m40000664000175000017500000000161512140770456020162 00000000000000dnl dnl GNOME_ORBIT_HOOK (script-if-orbit-found, failflag) dnl dnl if failflag is "failure" it aborts if orbit is not found. dnl AC_DEFUN([GNOME_ORBIT_HOOK],[ AC_PATH_PROG(ORBIT_CONFIG,orbit-config,no) AC_PATH_PROG(ORBIT_IDL,orbit-idl,no) AC_CACHE_CHECK([for working ORBit environment],gnome_cv_orbit_found,[ if test x$ORBIT_CONFIG = xno -o x$ORBIT_IDL = xno; then gnome_cv_orbit_found=no else gnome_cv_orbit_found=yes fi ]) AM_CONDITIONAL(HAVE_ORBIT, test x$gnome_cv_orbit_found = xyes) if test x$gnome_cv_orbit_found = xyes; then $1 ORBIT_CFLAGS=`orbit-config --cflags client server` ORBIT_LIBS=`orbit-config --use-service=name --libs client server` AC_SUBST(ORBIT_CFLAGS) AC_SUBST(ORBIT_LIBS) else if test x$2 = xfailure; then AC_MSG_ERROR(ORBit not installed or installation problem) fi fi ]) AC_DEFUN([GNOME_ORBIT_CHECK], [ GNOME_ORBIT_HOOK([],failure) ]) lgeneral-1.3.1/lgeneral-redit/macros/linger.m40000664000175000017500000000064612140770456016150 00000000000000dnl dnl Check for struct linger dnl AC_DEFUN([AC_STRUCT_LINGER], [ av_struct_linger=no AC_MSG_CHECKING(struct linger is available) AC_TRY_RUN([ #include #include struct linger li; main () { li.l_onoff = 1; li.l_linger = 120; exit (0); } ],[ AC_DEFINE(HAVE_STRUCT_LINGER) av_struct_linger=yes ],[ av_struct_linger=no ],[ av_struct_linger=no ]) AC_MSG_RESULT($av_struct_linger) ]) lgeneral-1.3.1/lgeneral-redit/macros/gnome-gnorba-check.m40000664000175000017500000000173412140770456020315 00000000000000dnl dnl GNOME_GNORBA_HOOK (script-if-gnorba-found, failflag) dnl dnl if failflag is "failure" it aborts if gnorba is not found. dnl AC_DEFUN([GNOME_GNORBA_HOOK],[ GNOME_ORBIT_HOOK([],$2) AC_CACHE_CHECK([for gnorba libraries],gnome_cv_gnorba_found,[ gnome_cv_gnorba_found=no if test x$gnome_cv_orbit_found = xyes; then GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`" GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`" if test -n "$GNORBA_LIBS"; then gnome_cv_gnorba_found=yes fi fi ]) AM_CONDITIONAL(HAVE_GNORBA, test x$gnome_cv_gnorba_found = xyes) if test x$gnome_cv_orbit_found = xyes; then $1 GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`" GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`" AC_SUBST(GNORBA_CFLAGS) AC_SUBST(GNORBA_LIBS) else if test x$2 = xfailure; then AC_MSG_ERROR(gnorba library not installed or installation problem) fi fi ]) AC_DEFUN([GNOME_GNORBA_CHECK], [ GNOME_GNORBA_HOOK([],failure) ]) lgeneral-1.3.1/lgeneral-redit/macros/gnome.m40000664000175000017500000000704212140770456015772 00000000000000dnl dnl GNOME_INIT_HOOK (script-if-gnome-enabled, [failflag], [additional-inits]) dnl dnl if failflag is "fail" then GNOME_INIT_HOOK will abort if gnomeConf.sh dnl is not found. dnl AC_DEFUN([GNOME_INIT_HOOK],[ AC_SUBST(GNOME_LIBS) AC_SUBST(GNOMEUI_LIBS) AC_SUBST(GNOMEGNORBA_LIBS) AC_SUBST(GTKXMHTML_LIBS) AC_SUBST(ZVT_LIBS) AC_SUBST(GNOME_LIBDIR) AC_SUBST(GNOME_INCLUDEDIR) AC_ARG_WITH(gnome-includes, [ --with-gnome-includes Specify location of GNOME headers],[ CFLAGS="$CFLAGS -I$withval" ]) AC_ARG_WITH(gnome-libs, [ --with-gnome-libs Specify location of GNOME libs],[ LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval ]) AC_ARG_WITH(gnome, [ --with-gnome Specify prefix for GNOME files], if test x$withval = xyes; then want_gnome=yes dnl Note that an empty true branch is not dnl valid sh syntax. ifelse([$1], [], :, [$1]) else if test "x$withval" = xno; then want_gnome=no else want_gnome=yes LDFLAGS="$LDFLAGS -L$withval/lib" CFLAGS="$CFLAGS -I$withval/include" gnome_prefix=$withval/lib fi fi, want_gnome=yes) if test "x$want_gnome" = xyes; then AC_PATH_PROG(GNOME_CONFIG,gnome-config,no) if test "$GNOME_CONFIG" = "no"; then no_gnome_config="yes" else AC_MSG_CHECKING(if $GNOME_CONFIG works) if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then AC_MSG_RESULT(yes) GNOME_GNORBA_HOOK([],$2) GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome`" GNOMEUI_LIBS="`$GNOME_CONFIG --libs-only-l gnomeui`" GNOMEGNORBA_LIBS="`$GNOME_CONFIG --libs-only-l gnorba gnomeui`" GTKXMHTML_LIBS="`$GNOME_CONFIG --libs-only-l gtkxmhtml`" ZVT_LIBS="`$GNOME_CONFIG --libs-only-l zvt`" GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`" GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`" $1 else AC_MSG_RESULT(no) no_gnome_config="yes" fi fi if test x$exec_prefix = xNONE; then if test x$prefix = xNONE; then gnome_prefix=$ac_default_prefix/lib else gnome_prefix=$prefix/lib fi else gnome_prefix=`eval echo \`echo $libdir\`` fi if test "$no_gnome_config" = "yes"; then AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix) if test -f $gnome_prefix/gnomeConf.sh; then AC_MSG_RESULT(found) echo "loading gnome configuration from" \ "$gnome_prefix/gnomeConf.sh" . $gnome_prefix/gnomeConf.sh $1 else AC_MSG_RESULT(not found) if test x$2 = xfail; then AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install) fi fi fi fi if test -n "$3"; then n="$3" for i in $n; do AC_MSG_CHECKING(extra library \"$i\") case $i in applets) AC_SUBST(GNOME_APPLETS_LIBS) GNOME_APPLETS_LIBS=`$GNOME_CONFIG --libs-only-l applets` AC_MSG_RESULT($GNOME_APPLETS_LIBS);; docklets) AC_SUBST(GNOME_DOCKLETS_LIBS) GNOME_DOCKLETS_LIBS=`$GNOME_CONFIG --libs-only-l docklets` AC_MSG_RESULT($GNOME_DOCKLETS_LIBS);; capplet) AC_SUBST(GNOME_CAPPLET_LIBS) GNOME_CAPPLET_LIBS=`$GNOME_CONFIG --libs-only-l capplet` AC_MSG_RESULT($GNOME_CAPPLET_LIBS);; *) AC_MSG_RESULT(unknown library) esac done fi ]) dnl dnl GNOME_INIT ([additional-inits]) dnl AC_DEFUN([GNOME_INIT],[ GNOME_INIT_HOOK([],fail,$1) ]) lgeneral-1.3.1/lgeneral-redit/macros/Makefile.am0000664000175000017500000000212712140770456016456 00000000000000## Please update this variable if any new macros are created MACROS= \ aclocal-include.m4 \ compiler-flags.m4 \ curses.m4 \ gnome-bonobo-check.m4 \ gnome-fileutils.m4 \ gnome-ghttp-check.m4 \ gnome-gnorba-check.m4 \ gnome-guile-checks.m4 \ gnome-libgtop-check.m4 \ gnome-objc-checks.m4 \ gnome-orbit-check.m4 \ gnome-print-check.m4 \ gnome-pthread-check.m4 \ gnome-support.m4 \ gnome-undelfs.m4 \ gnome-vfs.m4 \ gnome-x-checks.m4 \ gnome-xml-check.m4 \ gnome.m4 \ gperf-check.m4 \ linger.m4 \ need-declaration.m4 EXTRA_DIST=$(MACROS) gnome-common.m4 gnome-gettext.m4 autogen.sh MAINTAINERCLEANFILES=macros.dep @MAINT@macros.dep: Makefile.am @MAINT@ @echo '$$(top_srcdir)/aclocal.m4: $(MACROS:%=macros/%)' > $@ if INSIDE_GNOME_COMMON gnome_aclocaldir = $(datadir)/aclocal/gnome-macros gnome-macros.dep: Makefile.am @echo '$$(top_srcdir)/aclocal.m4: $(MACROS:%=$(gnome_aclocaldir)/%)' > $@ gnome_aclocal_DATA = $(MACROS) gnome-macros.dep gnome-common.m4 \ gnome-gettext.m4 autogen.sh endif lgeneral-1.3.1/lgeneral-redit/macros/gnome-fileutils.m40000664000175000017500000002522312140770456017771 00000000000000dnl dnl GNOME_FILEUTILS_CHECKS dnl dnl checks that are needed for the diskusage applet. dnl AC_DEFUN([GNOME_FILEUTILS_CHECKS], [ AC_CHECK_HEADERS(fcntl.h sys/param.h sys/statfs.h sys/fstyp.h \ mnttab.h mntent.h sys/statvfs.h sys/vfs.h sys/mount.h \ sys/filsys.h sys/fs_types.h sys/fs/s5param.h) AC_CHECK_FUNCS(bcopy endgrent endpwent fchdir ftime ftruncate \ getcwd getmntinfo gettimeofday isascii lchown \ listmntent memcpy mkfifo strchr strerror strrchr vprintf) dnl Set some defaults when cross-compiling if test x$cross_compiling = xyes ; then case "$host_os" in linux*) fu_cv_sys_mounted_getmntent1=yes fu_cv_sys_stat_statfs2_bsize=yes ;; sunos*) fu_cv_sys_stat_statfs4=yes ;; freebsd*) fu_cv_sys_stat_statfs2_bsize=yes ;; osf*) fu_cv_sys_stat_statfs3_osf1=yes ;; esac fi # Determine how to get the list of mounted filesystems. list_mounted_fs= # If the getmntent function is available but not in the standard library, # make sure LIBS contains -lsun (on Irix4) or -lseq (on PTX). AC_FUNC_GETMNTENT # This test must precede the ones for getmntent because Unicos-9 is # reported to have the getmntent function, but its support is incompatible # with other getmntent implementations. # NOTE: Normally, I wouldn't use a check for system type as I've done for # `CRAY' below since that goes against the whole autoconf philosophy. But # I think there is too great a chance that some non-Cray system has a # function named listmntent to risk the false positive. if test -z "$list_mounted_fs"; then # Cray UNICOS 9 AC_MSG_CHECKING([for listmntent of Cray/Unicos-9]) AC_CACHE_VAL(fu_cv_sys_mounted_cray_listmntent, [fu_cv_sys_mounted_cray_listmntent=no AC_EGREP_CPP(yes, [#ifdef _CRAY yes #endif ], [test $ac_cv_func_listmntent = yes \ && fu_cv_sys_mounted_cray_listmntent=yes] ) ] ) AC_MSG_RESULT($fu_cv_sys_mounted_cray_listmntent) if test $fu_cv_sys_mounted_cray_listmntent = yes; then list_mounted_fs=found AC_DEFINE(MOUNTED_LISTMNTENT) fi fi if test $ac_cv_func_getmntent = yes; then # This system has the getmntent function. # Determine whether it's the one-argument variant or the two-argument one. if test -z "$list_mounted_fs"; then # 4.3BSD, SunOS, HP-UX, Dynix, Irix AC_MSG_CHECKING([for one-argument getmntent function]) AC_CACHE_VAL(fu_cv_sys_mounted_getmntent1, [test $ac_cv_header_mntent_h = yes \ && fu_cv_sys_mounted_getmntent1=yes \ || fu_cv_sys_mounted_getmntent1=no]) AC_MSG_RESULT($fu_cv_sys_mounted_getmntent1) if test $fu_cv_sys_mounted_getmntent1 = yes; then list_mounted_fs=found AC_DEFINE(MOUNTED_GETMNTENT1) fi fi if test -z "$list_mounted_fs"; then # SVR4 AC_MSG_CHECKING([for two-argument getmntent function]) AC_CACHE_VAL(fu_cv_sys_mounted_getmntent2, [AC_EGREP_HEADER(getmntent, sys/mnttab.h, fu_cv_sys_mounted_getmntent2=yes, fu_cv_sys_mounted_getmntent2=no)]) AC_MSG_RESULT($fu_cv_sys_mounted_getmntent2) if test $fu_cv_sys_mounted_getmntent2 = yes; then list_mounted_fs=found AC_DEFINE(MOUNTED_GETMNTENT2) fi fi if test -z "$list_mounted_fs"; then AC_MSG_ERROR([could not determine how to read list of mounted filesystems]) fi fi if test -z "$list_mounted_fs"; then # DEC Alpha running OSF/1. AC_MSG_CHECKING([for getfsstat function]) AC_CACHE_VAL(fu_cv_sys_mounted_getsstat, [AC_TRY_LINK([ #include #include #include ], [struct statfs *stats; int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT); ], fu_cv_sys_mounted_getsstat=yes, fu_cv_sys_mounted_getsstat=no)]) AC_MSG_RESULT($fu_cv_sys_mounted_getsstat) if test $fu_cv_sys_mounted_getsstat = yes; then list_mounted_fs=found AC_DEFINE(MOUNTED_GETFSSTAT) fi fi if test -z "$list_mounted_fs"; then # AIX. AC_MSG_CHECKING([for mntctl function and struct vmount]) AC_CACHE_VAL(fu_cv_sys_mounted_vmount, [AC_TRY_CPP([#include ], fu_cv_sys_mounted_vmount=yes, fu_cv_sys_mounted_vmount=no)]) AC_MSG_RESULT($fu_cv_sys_mounted_vmount) if test $fu_cv_sys_mounted_vmount = yes; then list_mounted_fs=found AC_DEFINE(MOUNTED_VMOUNT) fi fi if test -z "$list_mounted_fs"; then # SVR3 AC_MSG_CHECKING([for FIXME existence of three headers]) AC_CACHE_VAL(fu_cv_sys_mounted_fread_fstyp, [AC_TRY_CPP([ #include #include #include ], fu_cv_sys_mounted_fread_fstyp=yes, fu_cv_sys_mounted_fread_fstyp=no)]) AC_MSG_RESULT($fu_cv_sys_mounted_fread_fstyp) if test $fu_cv_sys_mounted_fread_fstyp = yes; then list_mounted_fs=found AC_DEFINE(MOUNTED_FREAD_FSTYP) fi fi if test -z "$list_mounted_fs"; then # 4.4BSD and DEC OSF/1. AC_MSG_CHECKING([for getmntinfo function]) AC_CACHE_VAL(fu_cv_sys_mounted_getmntinfo, [ ok= if test $ac_cv_func_getmntinfo = yes; then AC_EGREP_HEADER(f_type;, sys/mount.h, ok=yes) fi test -n "$ok" \ && fu_cv_sys_mounted_getmntinfo=yes \ || fu_cv_sys_mounted_getmntinfo=no ]) AC_MSG_RESULT($fu_cv_sys_mounted_getmntinfo) if test $fu_cv_sys_mounted_getmntinfo = yes; then list_mounted_fs=found AC_DEFINE(MOUNTED_GETMNTINFO) fi fi # FIXME: add a test for netbsd-1.1 here if test -z "$list_mounted_fs"; then # Ultrix AC_MSG_CHECKING([for getmnt function]) AC_CACHE_VAL(fu_cv_sys_mounted_getmnt, [AC_TRY_CPP([ #include #include ], fu_cv_sys_mounted_getmnt=yes, fu_cv_sys_mounted_getmnt=no)]) AC_MSG_RESULT($fu_cv_sys_mounted_getmnt) if test $fu_cv_sys_mounted_getmnt = yes; then list_mounted_fs=found AC_DEFINE(MOUNTED_GETMNT) fi fi if test -z "$list_mounted_fs"; then # SVR2 AC_MSG_CHECKING([whether it is possible to resort to fread on /etc/mnttab]) AC_CACHE_VAL(fu_cv_sys_mounted_fread, [AC_TRY_CPP([#include ], fu_cv_sys_mounted_fread=yes, fu_cv_sys_mounted_fread=no)]) AC_MSG_RESULT($fu_cv_sys_mounted_fread) if test $fu_cv_sys_mounted_fread = yes; then list_mounted_fs=found AC_DEFINE(MOUNTED_FREAD) fi fi if test -z "$list_mounted_fs"; then AC_MSG_ERROR([could not determine how to read list of mounted filesystems]) # FIXME -- no need to abort building the whole package # Can't build mountlist.c or anything that needs its functions fi AC_CHECKING(how to get filesystem space usage) space=no # Perform only the link test since it seems there are no variants of the # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs) # because that got a false positive on SCO OSR5. Adding the declaration # of a `struct statvfs' causes this test to fail (as it should) on such # systems. That system is reported to work fine with STAT_STATFS4 which # is what it gets when this test fails. if test $space = no; then # SVR4 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs, [AC_TRY_LINK([#include #include ], [struct statvfs fsd; statvfs (0, &fsd);], fu_cv_sys_stat_statvfs=yes, fu_cv_sys_stat_statvfs=no)]) if test $fu_cv_sys_stat_statvfs = yes; then space=yes AC_DEFINE(STAT_STATVFS) fi fi if test $space = no; then # DEC Alpha running OSF/1 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)]) AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1, [AC_TRY_RUN([ #include #include #include main () { struct statfs fsd; fsd.f_fsize = 0; exit (statfs (".", &fsd, sizeof (struct statfs))); }], fu_cv_sys_stat_statfs3_osf1=yes, fu_cv_sys_stat_statfs3_osf1=no, fu_cv_sys_stat_statfs3_osf1=no)]) AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1) if test $fu_cv_sys_stat_statfs3_osf1 = yes; then space=yes AC_DEFINE(STAT_STATFS3_OSF1) fi fi if test $space = no; then # AIX AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl member (AIX, 4.3BSD)]) AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize, [AC_TRY_RUN([ #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif #ifdef HAVE_SYS_VFS_H #include #endif main () { struct statfs fsd; fsd.f_bsize = 0; exit (statfs (".", &fsd)); }], fu_cv_sys_stat_statfs2_bsize=yes, fu_cv_sys_stat_statfs2_bsize=no, fu_cv_sys_stat_statfs2_bsize=no)]) AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize) if test $fu_cv_sys_stat_statfs2_bsize = yes; then space=yes AC_DEFINE(STAT_STATFS2_BSIZE) fi fi if test $space = no; then # SVR3 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)]) AC_CACHE_VAL(fu_cv_sys_stat_statfs4, [AC_TRY_RUN([#include #include main () { struct statfs fsd; exit (statfs (".", &fsd, sizeof fsd, 0)); }], fu_cv_sys_stat_statfs4=yes, fu_cv_sys_stat_statfs4=no, fu_cv_sys_stat_statfs4=no)]) AC_MSG_RESULT($fu_cv_sys_stat_statfs4) if test $fu_cv_sys_stat_statfs4 = yes; then space=yes AC_DEFINE(STAT_STATFS4) fi fi if test $space = no; then # 4.4BSD and NetBSD AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl member (4.4BSD and NetBSD)]) AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize, [AC_TRY_RUN([#include #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif main () { struct statfs fsd; fsd.f_fsize = 0; exit (statfs (".", &fsd)); }], fu_cv_sys_stat_statfs2_fsize=yes, fu_cv_sys_stat_statfs2_fsize=no, fu_cv_sys_stat_statfs2_fsize=no)]) AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize) if test $fu_cv_sys_stat_statfs2_fsize = yes; then space=yes AC_DEFINE(STAT_STATFS2_FSIZE) fi fi if test $space = no; then # Ultrix AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)]) AC_CACHE_VAL(fu_cv_sys_stat_fs_data, [AC_TRY_RUN([#include #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif #ifdef HAVE_SYS_FS_TYPES_H #include #endif main () { struct fs_data fsd; /* Ultrix's statfs returns 1 for success, 0 for not mounted, -1 for failure. */ exit (statfs (".", &fsd) != 1); }], fu_cv_sys_stat_fs_data=yes, fu_cv_sys_stat_fs_data=no, fu_cv_sys_stat_fs_data=no)]) AC_MSG_RESULT($fu_cv_sys_stat_fs_data) if test $fu_cv_sys_stat_fs_data = yes; then space=yes AC_DEFINE(STAT_STATFS2_FS_DATA) fi fi if test $space = no; then # SVR2 AC_TRY_CPP([#include ], AC_DEFINE(STAT_READ_FILSYS) space=yes) fi if test -n "$list_mounted_fs" && test $space != no; then DF_PROG="df" # LIBOBJS="$LIBOBJS fsusage.o" # LIBOBJS="$LIBOBJS mountlist.o" fi # Check for SunOS statfs brokenness wrt partitions 2GB and larger. # If exists and struct statfs has a member named f_spare, # enable the work-around code in fsusage.c. AC_MSG_CHECKING([for statfs that truncates block counts]) AC_CACHE_VAL(fu_cv_sys_truncating_statfs, [AC_TRY_COMPILE([ #if !defined(sun) && !defined(__sun) choke -- this is a workaround for a Sun-specific problem #endif #include #include ], [struct statfs t; long c = *(t.f_spare);], fu_cv_sys_truncating_statfs=yes, fu_cv_sys_truncating_statfs=no, )]) if test $fu_cv_sys_truncating_statfs = yes; then AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS) fi AC_MSG_RESULT($fu_cv_sys_truncating_statfs) AC_CHECKING(for AFS) test -d /afs && AC_DEFINE(AFS) ]) lgeneral-1.3.1/lgeneral-redit/macros/gperf-check.m40000664000175000017500000000350512140770456017043 00000000000000dnl dnl AC_PROG_GPERF (MINIMUM-VERSION) dnl dnl Check for availability of gperf. dnl Abort if not found or if current version is not up to par. dnl AC_DEFUN([AC_PROG_GPERF],[ AC_PATH_PROG(GPERF, gperf, no) if test "$GPERF" = no; then AC_MSG_ERROR(Could not find gperf) fi min_gperf_version=ifelse([$1], ,2.7,$1) AC_MSG_CHECKING(for gperf - version >= $min_gperf_version) gperf_major_version=`$GPERF --version | \ sed 's/GNU gperf \([[0-9]]*\).\([[0-9]]*\)/\1/'` gperf_minor_version=`$GPERF --version | \ sed 's/GNU gperf \([[0-9]]*\).\([[0-9]]*\)/\2/'` no_gperf="" dnl dnl Now check if the installed gperf is sufficiently new. dnl AC_TRY_RUN([ #include #include #include static char* my_strdup (char *str) { char *new_str; if (str) { new_str = malloc ((strlen (str) + 1) * sizeof(char)); strcpy (new_str, str); } else new_str = NULL; return new_str; } int main () { char *tmp_version; int major; int minor; /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = my_strdup("$min_gperf_version"); if (sscanf(tmp_version, "%d.%d", &major, &minor) != 2) { printf ("%s, bad version string\n", "$min_gperf_version"); exit (1); } if (($gperf_major_version > major) || (($gperf_major_version == major) && ($gperf_minor_version >= minor))) { return 0; } else { printf ("\n"); printf ("*** An old version of gperf ($gperf_major_version.$gperf_minor_version) was found.\n"); printf ("*** You need a version of gperf newer than %d.%d.%d. The latest version of\n", major, minor); printf ("*** gperf is always available from ftp://ftp.gnu.org.\n"); printf ("***\n"); return 1; } } ],,no_gperf=yes,[/bin/true]) if test "x$no_gperf" = x ; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi ]) lgeneral-1.3.1/lgeneral-redit/macros/gnome-libgtop-check.m40000664000175000017500000001635712140770456020514 00000000000000dnl dnl LIBGTOP_CHECK_TYPE dnl dnl Improved version of AC_CHECK_TYPE which takes into account dnl that we need to #include some other header files on some dnl systems to get some types. dnl AC_LIBGTOP_CHECK_TYPE(TYPE, DEFAULT) AC_DEFUN([AC_LIBGTOP_CHECK_TYPE], [AC_REQUIRE([AC_HEADER_STDC])dnl AC_MSG_CHECKING(for $1) AC_CACHE_VAL(ac_cv_type_$1, [AC_EGREP_CPP(dnl changequote(<<,>>)dnl <<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl changequote([,]), [#include #if STDC_HEADERS #include #include #endif /* For Tru64 */ #ifdef HAVE_SYS_BITYPES_H #include #endif ], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl AC_MSG_RESULT($ac_cv_type_$1) if test $ac_cv_type_$1 = no; then AC_DEFINE($1, $2) fi ]) dnl dnl GNOME_LIBGTOP_TYPES dnl dnl some typechecks for libgtop. dnl AC_DEFUN([GNOME_LIBGTOP_TYPES], [ AC_CHECK_HEADERS(sys/bitypes.h) AC_LIBGTOP_CHECK_TYPE(u_int64_t, unsigned long long int) AC_LIBGTOP_CHECK_TYPE(int64_t, signed long long int) ]) dnl dnl GNOME_LIBGTOP_HOOK (minversion, script-if-libgtop-enabled, failflag) dnl dnl if failflag is "fail" then GNOME_LIBGTOP_HOOK will abort if LibGTop dnl is not found. dnl AC_DEFUN([GNOME_LIBGTOP_HOOK], [ AC_REQUIRE([GNOME_LIBGTOP_TYPES]) AC_SUBST(LIBGTOP_LIBDIR) AC_SUBST(LIBGTOP_INCLUDEDIR) AC_SUBST(LIBGTOP_EXTRA_LIBS) AC_SUBST(LIBGTOP_LIBS) AC_SUBST(LIBGTOP_INCS) AC_SUBST(LIBGTOP_NAMES_LIBS) AC_SUBST(LIBGTOP_NAMES_INCS) AC_SUBST(LIBGTOP_MAJOR_VERSION) AC_SUBST(LIBGTOP_MINOR_VERSION) AC_SUBST(LIBGTOP_MICRO_VERSION) AC_SUBST(LIBGTOP_VERSION) AC_SUBST(LIBGTOP_VERSION_CODE) AC_SUBST(LIBGTOP_SERVER_VERSION) AC_SUBST(LIBGTOP_INTERFACE_AGE) AC_SUBST(LIBGTOP_BINARY_AGE) AC_SUBST(LIBGTOP_BINDIR) AC_SUBST(LIBGTOP_SERVER) dnl Get the cflags and libraries from the libgtop-config script dnl AC_ARG_WITH(libgtop, [ --with-libgtop=PFX Prefix where LIBGTOP is installed (optional)], libgtop_config_prefix="$withval", libgtop_config_prefix="") AC_ARG_WITH(libgtop-exec, [ --with-libgtop-exec=PFX Exec prefix where LIBGTOP is installed (optional)], libgtop_config_exec_prefix="$withval", libgtop_config_exec_prefix="") if test x$libgtop_config_exec_prefix != x ; then libgtop_config_args="$libgtop_config_args --exec-prefix=$libgtop_config_exec_prefix" if test x${LIBGTOP_CONFIG+set} != xset ; then LIBGTOP_CONFIG=$libgtop_config_exec_prefix/bin/libgtop-config fi fi if test x$libgtop_config_prefix != x ; then libgtop_config_args="$libgtop_config_args --prefix=$libgtop_config_prefix" if test x${LIBGTOP_CONFIG+set} != xset ; then LIBGTOP_CONFIG=$libgtop_config_prefix/bin/libgtop-config fi fi AC_PATH_PROG(LIBGTOP_CONFIG, libgtop-config, no) dnl IMPORTANT NOTICE: dnl If you increase this number here, this means that *ALL* dnl modules will require the new version, even if they explicitly dnl give a lower number in their `configure.in' !!! real_min_libgtop_version=1.0.0 min_libgtop_version=ifelse([$1], ,$real_min_libgtop_version,$1) dnl I know, the following code looks really ugly, but if you want dnl to make changes, please test it with a brain-dead /bin/sh and dnl with a brain-dead /bin/test (not all shells/tests support the dnl `<' operator to compare strings, that's why I convert everything dnl into numbers and test them). min_libgtop_major=`echo $min_libgtop_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` min_libgtop_minor=`echo $min_libgtop_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` min_libgtop_micro=`echo $min_libgtop_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` test x$min_libgtop_micro = x && min_libgtop_micro=0 real_min_libgtop_major=`echo $real_min_libgtop_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` real_min_libgtop_minor=`echo $real_min_libgtop_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` real_min_libgtop_micro=`echo $real_min_libgtop_version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` test x$real_min_libgtop_micro = x && real_min_libgtop_micro=0 dnl You cannot require a version less then $real_min_libgtop_version, dnl so you don't need to update each `configure.in' when it's increased. if test $real_min_libgtop_major -gt $min_libgtop_major ; then min_libgtop_major=$real_min_libgtop_major min_libgtop_minor=$real_min_libgtop_minor min_libgtop_micro=$real_min_libgtop_micro elif test $real_min_libgtop_major = $min_libgtop_major ; then if test $real_min_libgtop_minor -gt $min_libgtop_minor ; then min_libgtop_minor=$real_min_libgtop_minor min_libgtop_micro=$real_min_libgtop_micro elif test $real_min_libgtop_minor = $min_libgtop_minor ; then if test $real_min_libgtop_micro -gt $min_libgtop_micro ; then min_libgtop_micro=$real_min_libgtop_micro fi fi fi min_libgtop_version="$min_libgtop_major.$min_libgtop_minor.$min_libgtop_micro" AC_MSG_CHECKING(for libgtop - version >= $min_libgtop_version) no_libgtop="" if test "$LIBGTOP_CONFIG" = "no" ; then no_libgtop=yes else configfile=`$LIBGTOP_CONFIG --config` libgtop_major_version=`$LIBGTOP_CONFIG --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` libgtop_minor_version=`$LIBGTOP_CONFIG --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` libgtop_micro_version=`$LIBGTOP_CONFIG --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test $libgtop_major_version != $min_libgtop_major ; then no_libgtop=mismatch else test $libgtop_minor_version -lt $min_libgtop_minor && no_libgtop=yes if test $libgtop_minor_version = $min_libgtop_minor ; then test $libgtop_micro_version -lt $min_libgtop_micro && no_libgtop=yes fi fi . $configfile fi if test x$no_libgtop = x ; then AC_DEFINE(HAVE_LIBGTOP) AC_DEFINE_UNQUOTED(LIBGTOP_VERSION, "$LIBGTOP_VERSION") AC_DEFINE_UNQUOTED(LIBGTOP_VERSION_CODE, $LIBGTOP_VERSION_CODE) AC_DEFINE_UNQUOTED(LIBGTOP_MAJOR_VERSION, $LIBGTOP_MAJOR_VERSION) AC_DEFINE_UNQUOTED(LIBGTOP_MINOR_VERSION, $LIBGTOP_MINOR_VERSION) AC_DEFINE_UNQUOTED(LIBGTOP_MICRO_VERSION, $LIBGTOP_MICRO_VERSION) AC_DEFINE_UNQUOTED(LIBGTOP_SERVER_VERSION, $LIBGTOP_SERVER_VERSION) AC_MSG_RESULT(yes) dnl Note that an empty true branch is not valid sh syntax. ifelse([$2], [], :, [$2]) else AC_MSG_RESULT(no) if test "$no_libgtop"x = mismatchx; then AC_MSG_ERROR(LibGTop major version mismatch $libgtop_major_version != $min_libgtop_major) fi if test "x$3" = "xfail"; then AC_MSG_ERROR(LibGTop >= $min_libgtop_version not found) else AC_MSG_WARN(LibGTop >= $min_libgtop_version not found) fi fi AM_CONDITIONAL(HAVE_LIBGTOP, test x$no_libgtop != xyes) ]) AC_DEFUN([GNOME_INIT_LIBGTOP],[ GNOME_LIBGTOP_HOOK($1,[ifelse([$3], [], :, [$3])],$2) ]) dnl dnl GNOME_LIBGTOP_DOCU dnl dnl checks whether the documentation of LibGTop is installed dnl AC_DEFUN([GNOME_LIBGTOP_DOCU], [ AC_REQUIRE([GNOME_LIBGTOP_HOOK]) helpdir="$LIBGTOP_DATADIR/gnome/help/libgtop" AC_MSG_CHECKING(whether you have the LibGTop Documentation) if test -f "$helpdir/C/topic.dat" ; then have_libgtop_docu=yes AC_DEFINE(HAVE_LIBGTOP_DOCU) else have_libgtop_docu=no fi AC_MSG_RESULT($have_libgtop_docu) AM_CONDITIONAL(HAVE_LIBGTOP_DOCU, test x$have_libgtop_docu = xyes) ]) lgeneral-1.3.1/lgeneral-redit/macros/autogen.sh0000664000175000017500000001415412140770456016423 00000000000000#!/bin/sh # Run this to generate all the initial makefiles, etc. DIE=0 if [ -n "$GNOME2_PATH" ]; then ACLOCAL_FLAGS="-I $GNOME2_PATH/share/aclocal $ACLOCAL_FLAGS" PATH="$GNOME2_PATH/bin:$PATH" export PATH fi (autoconf --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`autoconf' installed to compile Gnome." echo "Download the appropriate package for your distribution," echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" DIE=1 } (grep "^AM_PROG_XML_I18N_TOOLS" $srcdir/configure.in >/dev/null) && { (xml-i18n-toolize --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`xml-i18n-toolize' installed to compile Gnome." echo "Get ftp://ftp.gnome.org/pub/GNOME/stable/sources/xml-i18n-tools/xml-i18n-tools-0.6.tar.gz" echo "(or a newer version if it is available)" DIE=1 } } (grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && { (libtool --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`libtool' installed to compile Gnome." echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz" echo "(or a newer version if it is available)" DIE=1 } } #grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && { # grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ # (gettext --version) < /dev/null > /dev/null 2>&1 || { # echo # echo "**Error**: You must have \`gettext' installed to compile Gnome." # echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" # echo "(or a newer version if it is available)" # DIE=1 # } #} #grep "^AM_GNOME_GETTEXT" $srcdir/configure.in >/dev/null && { # grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ # (gettext --version) < /dev/null > /dev/null 2>&1 || { # echo # echo "**Error**: You must have \`gettext' installed to compile Gnome." # echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" # echo "(or a newer version if it is available)" # DIE=1 # } #} (automake --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`automake' installed to compile Gnome." echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" echo "(or a newer version if it is available)" DIE=1 NO_AUTOMAKE=yes } # if no automake, don't bother testing for aclocal test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: Missing \`aclocal'. The version of \`automake'" echo "installed doesn't appear recent enough." echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" echo "(or a newer version if it is available)" DIE=1 } if test "$DIE" -eq 1; then exit 1 fi if test -z "$*"; then echo "**Warning**: I am going to run \`configure' with no arguments." echo "If you wish to pass any to it, please specify them on the" echo \`$0\'" command line." echo fi case $CC in xlc ) am_opt=--include-deps;; esac for coin in `find $srcdir -name configure.in -print` do dr=`dirname $coin` if test -f $dr/NO-AUTO-GEN; then echo skipping $dr -- flagged as no auto-gen else echo processing $dr macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin` ( cd $dr macrosdir=`find . -name macros -print` for i in $macrodirs; do if test -f $i/gnome-gettext.m4; then DELETEFILES="$DELETEFILES $i/gnome-gettext.m4" fi done echo "deletefiles is $DELETEFILES" aclocalinclude="$ACLOCAL_FLAGS" for k in $aclocalinclude; do if test -d $k; then if [ -f $k/gnome.m4 -a "$GNOME_INTERFACE_VERSION" = "1" ]; then rm -f $DELETEFILES fi fi done for k in $macrodirs; do if test -d $k; then aclocalinclude="$aclocalinclude -I $k" if [ -f $k/gnome.m4 -a "$GNOME_INTERFACE_VERSION" = "1" ]; then rm -f $DELETEFILES fi fi done if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then if grep "sed.*POTFILES" configure.in >/dev/null; then : do nothing -- we still have an old unmodified configure.in else echo "Creating $dr/aclocal.m4 ..." test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 echo "Running gettextize... Ignore non-fatal messages." echo "no" | gettextize --force --copy echo "Making $dr/aclocal.m4 writable ..." test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 fi fi if grep "^AM_GNOME_GETTEXT" configure.in >/dev/null; then echo "Creating $dr/aclocal.m4 ..." test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 echo "Running gettextize... Ignore non-fatal messages." echo "no" | gettextize --force --copy echo "Making $dr/aclocal.m4 writable ..." test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 fi if grep "^AM_PROG_XML_I18N_TOOLS" configure.in >/dev/null; then echo "Running xml-i18n-toolize... Ignore non-fatal messages." xml-i18n-toolize --copy --force --automake fi if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then if test -z "$NO_LIBTOOLIZE" ; then echo "Running libtoolize..." libtoolize --force --copy fi fi echo "Running aclocal $aclocalinclude ..." aclocal $aclocalinclude || { echo echo "**Error**: aclocal failed. This may mean that you have not" echo "installed all of the packages you need, or you may need to" echo "set ACLOCAL_FLAGS to include \"-I \$prefix/share/aclocal\"" echo "for the prefix where you installed the packages whose" echo "macros were not found" exit 1 } if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then echo "Running autoheader..." autoheader || { echo "**Error**: autoheader failed."; exit 1; } fi echo "Running automake --gnu $am_opt ..." automake --add-missing --gnu $am_opt || { echo "**Error**: automake failed."; exit 1; } echo "Running autoconf ..." autoconf || { echo "**Error**: autoconf failed."; exit 1; } ) || exit 1 fi done conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c if test x$NOCONFIGURE = x; then echo Running $srcdir/configure $conf_flags "$@" ... $srcdir/configure $conf_flags "$@" \ && echo Now type \`make\' to compile $PKG_NAME || exit 1 else echo Skipping configure process. fi lgeneral-1.3.1/lgeneral-redit/macros/gnome-undelfs.m40000664000175000017500000000112512140770456017424 00000000000000dnl GNOME_UNDELFS_CHECKS dnl Check for ext2fs undel support. dnl Set shell variable ext2fs_undel to "yes" if we have it, dnl "no" otherwise. May define USE_EXT2FSLIB for cpp. dnl Will set EXT2FS_UNDEL_LIBS to required libraries. AC_DEFUN([GNOME_UNDELFS_CHECKS], [ AC_CHECK_HEADERS(ext2fs/ext2fs.h linux/ext2_fs.h) ext2fs_undel=no EXT2FS_UNDEL_LIBS= if test x$ac_cv_header_ext2fs_ext2fs_h = xyes then if test x$ac_cv_header_linux_ext2_fs_h = xyes then AC_DEFINE(USE_EXT2FSLIB) ext2fs_undel=yes EXT2FS_UNDEL_LIBS="-lext2fs -lcom_err" fi fi ]) lgeneral-1.3.1/lgeneral-redit/macros/gnome-objc-checks.m40000664000175000017500000000421412140770456020141 00000000000000AC_DEFUN([GNOME_CHECK_OBJC], [ dnl Look for an ObjC compiler. dnl FIXME: extend list of possible names of ObjC compilers. AC_CHECK_PROGS(OBJC, $OBJC egcs, "") if test "x$OBJC" = "x" ; then AC_CHECK_PROGS(OBJC, $OBJC egcc, "") if test "x$OBJC" = "x" ; then AC_CHECK_PROGS(OBJC, $OBJC gcc, "") fi fi AC_REQUIRE([GNOME_PTHREAD_CHECK]) OBJC_LIBS="-lobjc $PTHREAD_LIB" AC_CHECK_FUNC(sched_yield,,[ AC_CHECK_LIB(rt,sched_yield, OBJC_LIBS="$OBJC_LIBS -lrt",[ AC_CHECK_LIB(posix4,sched_yield, OBJC_LIBS="$OBJC_LIBS -lposix4",, $OBJC_LIBS)], $OBJC_LIBS)]) AC_SUBST(OBJC_LIBS) AC_CACHE_CHECK([if Objective C compiler ($OBJC) works], ac_cv_prog_objc_works, [ if test -n "$OBJC"; then cat > conftest.m < @interface myRandomObj : Object { } @end @implementation myRandomObj @end int main () { /* No, you are not seeing double. Remember that square brackets are the autoconf m4 quotes. */ id myid = [[myRandomObj alloc]]; [[myid free]]; return 0; } EOF $OBJC $CFLAGS -o conftest $LDFLAGS conftest.m $OBJC_LIBS 1>&AC_FD_CC 2>&1 result=$? rm -f conftest* if test $result -eq 0; then ac_cv_prog_objc_works=yes fi else ac_cv_prog_objc_works=no fi ]) AM_CONDITIONAL(OBJECTIVE_C, test x$ac_cv_prog_objc_works = xyes) dnl Also set the shell variable OBJECTIVE_C to "yes" or "no". OBJECTIVE_C=$ac_cv_prog_objc_works ]) AC_DEFUN([GNOME_INIT_OBJC], [ AC_MSG_CHECKING(for an obGnomeConf.sh) my_gnome_libdir=`$GNOME_CONFIG --libdir` if test -f $my_gnome_libdir/obGnomeConf.sh; then . $my_gnome_libdir/obGnomeConf.sh AC_MSG_RESULT(found $my_gnome_libdir) ac_cv_have_gnome_objc=yes else AC_MSG_RESULT(not found) AC_MSG_WARN(Could not find the obGnomeConf.sh file that is generated by gnome-objc install) ac_cv_have_gnome_objc=no fi dnl Add a conditional on whether or not we have gnome-objc AM_CONDITIONAL(HAVE_GNOME_OBJC, test x$ac_cv_have_gnome_objc = xyes) HAVE_GNOME_OBJC=$ac_cv_have_gnome_objc AC_SUBST(OBGNOME_INCLUDEDIR) AC_SUBST(OBGNOME_LIBS) AC_SUBST(OBGTK_LIBS) ]) lgeneral-1.3.1/lgeneral-redit/macros/curses.m40000664000175000017500000002135412140770456016173 00000000000000dnl Curses detection: Munged from Midnight Commander's configure.in dnl dnl What it does: dnl ============= dnl dnl - Determine which version of curses is installed on your system dnl and set the -I/-L/-l compiler entries and add a few preprocessor dnl symbols dnl - Do an AC_SUBST on the CURSES_INCLUDEDIR and CURSES_LIBS so that dnl @CURSES_INCLUDEDIR@ and @CURSES_LIBS@ will be available in dnl Makefile.in's dnl - Modify the following configure variables (these are the only dnl curses.m4 variables you can access from within configure.in) dnl CURSES_INCLUDEDIR - contains -I's and possibly -DRENAMED_CURSES if dnl an ncurses.h that's been renamed to curses.h dnl is found. dnl CURSES_LIBS - sets -L and -l's appropriately dnl CFLAGS - if --with-sco, add -D_SVID3 dnl has_curses - exports result of tests to rest of configure dnl dnl Usage: dnl ====== dnl 1) Add lines indicated below to acconfig.h dnl 2) call AC_CHECK_CURSES after AC_PROG_CC in your configure.in dnl 3) Instead of #include you should use the following to dnl properly locate ncurses or curses header file dnl dnl #if defined(USE_NCURSES) && !defined(RENAMED_NCURSES) dnl #include dnl #else dnl #include dnl #endif dnl dnl 4) Make sure to add @CURSES_INCLUDEDIR@ to your preprocessor flags dnl 5) Make sure to add @CURSES_LIBS@ to your linker flags or LIBS dnl dnl Notes with automake: dnl - call AM_CONDITIONAL(HAS_CURSES, test "$has_curses" = true) from dnl configure.in dnl - your Makefile.am can look something like this dnl ----------------------------------------------- dnl INCLUDES= blah blah blah $(CURSES_INCLUDEDIR) dnl if HAS_CURSES dnl CURSES_TARGETS=name_of_curses_prog dnl endif dnl bin_PROGRAMS = other_programs $(CURSES_TARGETS) dnl other_programs_SOURCES = blah blah blah dnl name_of_curses_prog_SOURCES = blah blah blah dnl other_programs_LDADD = blah dnl name_of_curses_prog_LDADD = blah $(CURSES_LIBS) dnl ----------------------------------------------- dnl dnl dnl The following lines should be added to acconfig.h: dnl ================================================== dnl dnl /*=== Curses version detection defines ===*/ dnl /* Found some version of curses that we're going to use */ dnl #undef HAS_CURSES dnl dnl /* Use SunOS SysV curses? */ dnl #undef USE_SUNOS_CURSES dnl dnl /* Use old BSD curses - not used right now */ dnl #undef USE_BSD_CURSES dnl dnl /* Use SystemV curses? */ dnl #undef USE_SYSV_CURSES dnl dnl /* Use Ncurses? */ dnl #undef USE_NCURSES dnl dnl /* If you Curses does not have color define this one */ dnl #undef NO_COLOR_CURSES dnl dnl /* Define if you want to turn on SCO-specific code */ dnl #undef SCO_FLAVOR dnl dnl /* Set to reflect version of ncurses * dnl * 0 = version 1.* dnl * 1 = version 1.9.9g dnl * 2 = version 4.0/4.1 */ dnl #undef NCURSES_970530 dnl dnl /*=== End new stuff for acconfig.h ===*/ dnl AC_DEFUN([AC_CHECK_CURSES],[ search_ncurses=true screen_manager="" has_curses=false CFLAGS=${CFLAGS--O} AC_SUBST(CURSES_LIBS) AC_SUBST(CURSES_INCLUDEDIR) AC_ARG_WITH(sco, [ --with-sco Use this to turn on SCO-specific code],[ if test x$withval = xyes; then AC_DEFINE(SCO_FLAVOR) CFLAGS="$CFLAGS -D_SVID3" fi ]) AC_ARG_WITH(sunos-curses, [ --with-sunos-curses Used to force SunOS 4.x curses],[ if test x$withval = xyes; then AC_USE_SUNOS_CURSES fi ]) AC_ARG_WITH(osf1-curses, [ --with-osf1-curses Used to force OSF/1 curses],[ if test x$withval = xyes; then AC_USE_OSF1_CURSES fi ]) AC_ARG_WITH(vcurses, [ --with-vcurses[=incdir] Used to force SysV curses], if test x$withval != xyes; then CURSES_INCLUDEDIR="-I$withval" fi AC_USE_SYSV_CURSES ) AC_ARG_WITH(ncurses, [ --with-ncurses[=dir] Compile with ncurses/locate base dir], if test x$withval = xno ; then search_ncurses=false elif test x$withval != xyes ; then CURSES_LIBS="$LIBS -L$withval/lib -lncurses" CURSES_INCLUDEDIR="-I$withval/include" search_ncurses=false screen_manager="ncurses" AC_DEFINE(USE_NCURSES) AC_DEFINE(HAS_CURSES) has_curses=true fi ) if $search_ncurses then AC_SEARCH_NCURSES() fi ]) AC_DEFUN([AC_USE_SUNOS_CURSES], [ search_ncurses=false screen_manager="SunOS 4.x /usr/5include curses" AC_MSG_RESULT(Using SunOS 4.x /usr/5include curses) AC_DEFINE(USE_SUNOS_CURSES) AC_DEFINE(HAS_CURSES) has_curses=true AC_DEFINE(NO_COLOR_CURSES) AC_DEFINE(USE_SYSV_CURSES) CURSES_INCLUDEDIR="-I/usr/5include" CURSES_LIBS="/usr/5lib/libcurses.a /usr/5lib/libtermcap.a" AC_MSG_RESULT(Please note that some screen refreshs may fail) ]) AC_DEFUN([AC_USE_OSF1_CURSES], [ AC_MSG_RESULT(Using OSF1 curses) search_ncurses=false screen_manager="OSF1 curses" AC_DEFINE(HAS_CURSES) has_curses=true AC_DEFINE(NO_COLOR_CURSES) AC_DEFINE(USE_SYSV_CURSES) CURSES_LIBS="-lcurses" ]) AC_DEFUN([AC_USE_SYSV_CURSES], [ AC_MSG_RESULT(Using SysV curses) AC_DEFINE(HAS_CURSES) has_curses=true AC_DEFINE(USE_SYSV_CURSES) search_ncurses=false screen_manager="SysV/curses" CURSES_LIBS="-lcurses" ]) dnl AC_ARG_WITH(bsd-curses, dnl [--with-bsd-curses Used to compile with bsd curses, not very fancy], dnl search_ncurses=false dnl screen_manager="Ultrix/cursesX" dnl if test $system = ULTRIX dnl then dnl THIS_CURSES=cursesX dnl else dnl THIS_CURSES=curses dnl fi dnl dnl CURSES_LIBS="-l$THIS_CURSES -ltermcap" dnl AC_DEFINE(HAS_CURSES) dnl has_curses=true dnl AC_DEFINE(USE_BSD_CURSES) dnl AC_MSG_RESULT(Please note that some screen refreshs may fail) dnl AC_MSG_WARN(Use of the bsdcurses extension has some) dnl AC_MSG_WARN(display/input problems.) dnl AC_MSG_WARN(Reconsider using xcurses) dnl) dnl dnl Parameters: directory filename cureses_LIBS curses_INCLUDEDIR nicename dnl AC_DEFUN([AC_NCURSES], [ if $search_ncurses then if test -f $1/$2 then AC_MSG_RESULT(Found ncurses on $1/$2) CURSES_LIBS="$3" CURSES_INCLUDEDIR="$4" search_ncurses=false screen_manager=$5 AC_DEFINE(HAS_CURSES) has_curses=true AC_DEFINE(USE_NCURSES) fi fi ]) AC_DEFUN([AC_SEARCH_NCURSES], [ AC_CHECKING("location of ncurses.h file") AC_NCURSES(/usr/include, ncurses.h, -lncurses,, "ncurses on /usr/include") AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses, "ncurses on /usr/include/ncurses") AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include, "ncurses on /usr/local") AC_NCURSES(/usr/local/include/ncurses, ncurses.h, -L/usr/local/lib -L/usr/local/lib/ncurses -lncurses, -I/usr/local/include/ncurses, "ncurses on /usr/local/include/ncurses") AC_NCURSES(/usr/local/include/ncurses, curses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/local/.../ncurses") AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses") dnl dnl We couldn't find ncurses, try SysV curses dnl if $search_ncurses then AC_EGREP_HEADER(init_color, /usr/include/curses.h, AC_USE_SYSV_CURSES) AC_EGREP_CPP(USE_NCURSES,[ #include #ifdef __NCURSES_H #undef USE_NCURSES USE_NCURSES #endif ],[ CURSES_INCLUDEDIR="$CURSES_INCLUDEDIR -DRENAMED_NCURSES" AC_DEFINE(HAS_CURSES) has_curses=true AC_DEFINE(USE_NCURSES) search_ncurses=false screen_manager="ncurses installed as curses" ]) fi dnl dnl Try SunOS 4.x /usr/5{lib,include} ncurses dnl The flags USE_SUNOS_CURSES, USE_BSD_CURSES and BUGGY_CURSES dnl should be replaced by a more fine grained selection routine dnl if $search_ncurses then if test -f /usr/5include/curses.h then AC_USE_SUNOS_CURSES fi else # check for ncurses version, to properly ifdef mouse-fix AC_MSG_CHECKING(for ncurses version) ncurses_version=unknown cat > conftest.$ac_ext < #else #include #endif #undef VERSION VERSION:NCURSES_VERSION EOF if (eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC | egrep "VERSION:" >conftest.out 2>&1; then changequote(,)dnl ncurses_version=`cat conftest.out|sed -e 's/^[^"]*"//' -e 's/".*//'` changequote([,])dnl fi rm -rf conftest* AC_MSG_RESULT($ncurses_version) case "$ncurses_version" in changequote(,)dnl 4.[01]) changequote([,])dnl AC_DEFINE(NCURSES_970530,2) ;; 1.9.9g) AC_DEFINE(NCURSES_970530,1) ;; 1*) AC_DEFINE(NCURSES_970530,0) ;; esac fi ]) lgeneral-1.3.1/lgeneral-redit/macros/compiler-flags.m40000664000175000017500000000626712140770456017601 00000000000000dnl GNOME_COMPILE_WARNINGS dnl Turn on many useful compiler warnings dnl For now, only works on GCC AC_DEFUN([GNOME_COMPILE_WARNINGS],[ AC_ARG_ENABLE(compile-warnings, [ --enable-compile-warnings=[no/minimum/yes] Turn on compiler warnings.],,enable_compile_warnings=minimum) AC_MSG_CHECKING(what warning flags to pass to the C compiler) warnCFLAGS= if test "x$GCC" != xyes; then enable_compile_warnings=no fi if test "x$enable_compile_warnings" != "xno"; then if test "x$GCC" = "xyes"; then case " $CFLAGS " in *[\ \ ]-Wall[\ \ ]*) ;; *) warnCFLAGS="-Wall -Wunused" ;; esac ## -W is not all that useful. And it cannot be controlled ## with individual -Wno-xxx flags, unlike -Wall if test "x$enable_compile_warnings" = "xyes"; then warnCFLAGS="$warnCFLAGS -Wmissing-prototypes -Wmissing-declarations" fi fi fi AC_MSG_RESULT($warnCFLAGS) AC_ARG_ENABLE(iso-c, [ --enable-iso-c Try to warn if code is not ISO C ],, enable_iso_c=no) AC_MSG_CHECKING(what language compliance flags to pass to the C compiler) complCFLAGS= if test "x$enable_iso_c" != "xno"; then if test "x$GCC" = "xyes"; then case " $CFLAGS " in *[\ \ ]-ansi[\ \ ]*) ;; *) complCFLAGS="$complCFLAGS -ansi" ;; esac case " $CFLAGS " in *[\ \ ]-pedantic[\ \ ]*) ;; *) complCFLAGS="$complCFLAGS -pedantic" ;; esac fi fi AC_MSG_RESULT($complCFLAGS) if test "x$cflags_set" != "xyes"; then CFLAGS="$CFLAGS $warnCFLAGS $complCFLAGS" cflags_set=yes AC_SUBST(cflags_set) fi ]) dnl For C++, do basically the same thing. AC_DEFUN([GNOME_CXX_WARNINGS],[ AC_ARG_ENABLE(cxx-warnings, [ --enable-cxx-warnings=[no/minimum/yes] Turn on compiler warnings.],,enable_cxx_warnings=minimum) AC_MSG_CHECKING(what warning flags to pass to the C++ compiler) warnCXXFLAGS= if test "x$GCC" != xyes; then enable_compile_warnings=no fi if test "x$enable_cxx_warnings" != "xno"; then if test "x$GCC" = "xyes"; then case " $CXXFLAGS " in *[\ \ ]-Wall[\ \ ]*) ;; *) warnCXXFLAGS="-Wall -Wno-unused" ;; esac ## -W is not all that useful. And it cannot be controlled ## with individual -Wno-xxx flags, unlike -Wall if test "x$enable_cxx_warnings" = "xyes"; then warnCXXFLAGS="$warnCXXFLAGS -Wmissing-prototypes -Wmissing-declarations -Wshadow -Woverloaded-virtual" fi fi fi AC_MSG_RESULT($warnCXXFLAGS) AC_ARG_ENABLE(iso-cxx, [ --enable-iso-cxx Try to warn if code is not ISO C++ ],, enable_iso_cxx=no) AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler) complCXXFLAGS= if test "x$enable_iso_cxx" != "xno"; then if test "x$GCC" = "xyes"; then case " $CXXFLAGS " in *[\ \ ]-ansi[\ \ ]*) ;; *) complCXXFLAGS="$complCXXFLAGS -ansi" ;; esac case " $CXXFLAGS " in *[\ \ ]-pedantic[\ \ ]*) ;; *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;; esac fi fi AC_MSG_RESULT($complCXXFLAGS) if test "x$cxxflags_set" != "xyes"; then CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS" cxxflags_set=yes AC_SUBST(cxxflags_set) fi ]) lgeneral-1.3.1/lgeneral-redit/macros/gnome-support.m40000664000175000017500000000434012140770456017502 00000000000000dnl GNOME_SUPPORT_CHECKS dnl Check for various support functions needed by the standard dnl Gnome libraries. Sets LIBOBJS, might define some macros. dnl This should only be used when building the Gnome libs; dnl Gnome clients should not need this macro. AC_DEFUN([GNOME_SUPPORT_CHECKS],[ # we need an `awk' to build `gnomesupport.h' AC_REQUIRE([AC_PROG_AWK]) # this should go away soon need_gnome_support=yes save_LIBOBJS="$LIBOBJS" LIBOBJS= AC_CHECK_FUNCS(getopt_long,,LIBOBJS="$LIBOBJS getopt.o getopt1.o") # for `scandir' AC_HEADER_DIRENT # copied from `configure.in' of `libiberty' vars="program_invocation_short_name program_invocation_name sys_errlist" for v in $vars; do AC_MSG_CHECKING([for $v]) AC_CACHE_VAL(gnome_cv_var_$v, [AC_TRY_LINK([int *p;], [extern int $v; p = &$v;], [eval "gnome_cv_var_$v=yes"], [eval "gnome_cv_var_$v=no"])]) if eval "test \"`echo '$gnome_cv_var_'$v`\" = yes"; then AC_MSG_RESULT(yes) n=HAVE_`echo $v | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` AC_DEFINE_UNQUOTED($n) else AC_MSG_RESULT(no) fi done AC_REPLACE_FUNCS(memmove mkstemp scandir strcasecmp strerror strndup strnlen) AC_REPLACE_FUNCS(strtok_r strtod strtol strtoul vasprintf vsnprintf) AC_CHECK_FUNCS(realpath,,LIBOBJS="$LIBOBJS canonicalize.o") # to include `error.c' error.c has some HAVE_* checks AC_CHECK_FUNCS(vprintf doprnt strerror_r) AM_FUNC_ERROR_AT_LINE # This is required if we declare setreuid () and setregid (). AC_TYPE_UID_T # see if we need to declare some functions. Solaris is notorious for # putting functions into the `libc' but not listing them in the headers AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h dirent.h) GCC_NEED_DECLARATIONS(gethostname setreuid setregid getpagesize) GCC_NEED_DECLARATION(scandir,[ #ifdef HAVE_DIRENT_H #include #endif ]) # Turn our LIBOBJS into libtool objects. This is gross, but it # requires changes to autoconf before it goes away. LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/.lo/g'` AC_SUBST(need_gnome_support) AC_SUBST(LTLIBOBJS) LIBOBJS="$save_LIBOBJS" AM_CONDITIONAL(BUILD_GNOME_SUPPORT, test "$need_gnome_support" = yes) ]) lgeneral-1.3.1/lgeneral-redit/missing0000664000175000017500000001420212140770456014527 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997 Free Software Foundation, Inc. # Franc,ois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing - GNU libit 0.0" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`configure.in'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER([^):]*:\([^)]*\)).*/\1/p' configure.in` if test -z "$files"; then files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^):]*\)).*/\1/p' configure.in` test -z "$files" || files="$files.in" else files=`echo "$files" | sed -e 's/:/ /g'` fi test -z "$files" && files="config.h.in" touch $files ;; automake) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print \ | sed 's/^\(.*\).am$/touch \1.in/' \ | sh ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 lgeneral-1.3.1/lgeneral-redit/Makefile.am0000664000175000017500000000015112140770456015165 00000000000000SUBDIRS = src EXTRA_DIST = \ autogen.sh \ README INSTALL COPYING TODO AUTHORS \ editor.glade README lgeneral-1.3.1/lgeneral-redit/acconfig.h0000664000175000017500000000030312140770456015052 00000000000000#undef ENABLE_NLS #undef HAVE_CATGETS #undef HAVE_GETTEXT #undef HAVE_LC_MESSAGES #undef HAVE_STPCPY #undef HAVE_LIBSM #undef PACKAGE_LOCALE_DIR #undef PACKAGE_DATA_DIR #undef PACKAGE_SOURCE_DIR lgeneral-1.3.1/lgeneral-redit/AUTHORS0000664000175000017500000000004012140770456014176 00000000000000Michael Speck lgeneral-1.3.1/lgeneral-redit/configure.in0000664000175000017500000000156512140770456015454 00000000000000dnl Process this file with autoconf to produce a configure script. AC_INIT(Makefile.am) AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE(lgeneral-redit, 0.1) dnl Checks for programs. AC_PROG_CC AC_PROG_RANLIB dnl various CFLAGS CFLAGS="-g" CFLAGS="$CFLAGS -Wall" AM_PATH_GTK(1.2.0, , AC_MSG_ERROR(Cannot find GTK: Is gtk-config in path?)) dnl Set PACKAGE_DATA_DIR in config.h. if test "x${datadir}" = 'x${prefix}/share'; then if test "x${prefix}" = "xNONE"; then AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${ac_default_prefix}/share/${PACKAGE}") else AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${prefix}/share/${PACKAGE}") fi else AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${datadir}/${PACKAGE}") fi dnl Set PACKAGE_SOURCE_DIR in config.h. packagesrcdir=`cd $srcdir && pwd` AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, "${packagesrcdir}") AC_OUTPUT([Makefile src/Makefile]) lgeneral-1.3.1/lgeneral-redit/config.h.in0000664000175000017500000000136012140770456015157 00000000000000/* config.h.in. Generated from configure.in by autoheader. */ #undef ENABLE_NLS #undef HAVE_CATGETS #undef HAVE_GETTEXT #undef HAVE_LC_MESSAGES #undef HAVE_STPCPY #undef HAVE_LIBSM #undef PACKAGE_LOCALE_DIR #undef PACKAGE_DATA_DIR #undef PACKAGE_SOURCE_DIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Version number of package */ #undef VERSION lgeneral-1.3.1/lgeneral-redit/ChangeLog0000664000175000017500000000012112140770456014700 00000000000000Any changes are listed in the lgeneral package Changelog one directory level up. lgeneral-1.3.1/lgeneral-redit/autogen.sh0000775000175000017500000001062312140770456015137 00000000000000#!/bin/sh # Run this to generate all the initial makefiles, etc. srcdir=`dirname $0` PKG_NAME="the package." DIE=0 (autoconf --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`autoconf' installed to." echo "Download the appropriate package for your distribution," echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" DIE=1 } (grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && { (libtool --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`libtool' installed." echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz" echo "(or a newer version if it is available)" DIE=1 } } grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && { grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ (gettext --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`gettext' installed." echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" echo "(or a newer version if it is available)" DIE=1 } } grep "^AM_GNOME_GETTEXT" $srcdir/configure.in >/dev/null && { grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ (gettext --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`gettext' installed." echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" echo "(or a newer version if it is available)" DIE=1 } } (automake --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: You must have \`automake' installed." echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" echo "(or a newer version if it is available)" DIE=1 NO_AUTOMAKE=yes } # if no automake, don't bother testing for aclocal test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || { echo echo "**Error**: Missing \`aclocal'. The version of \`automake'" echo "installed doesn't appear recent enough." echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" echo "(or a newer version if it is available)" DIE=1 } if test "$DIE" -eq 1; then exit 1 fi if test -z "$*"; then echo "**Warning**: I am going to run \`configure' with no arguments." echo "If you wish to pass any to it, please specify them on the" echo \`$0\'" command line." echo fi case $CC in xlc ) am_opt=--include-deps;; esac for coin in `find $srcdir -name configure.in -print` do dr=`dirname $coin` if test -f $dr/NO-AUTO-GEN; then echo skipping $dr -- flagged as no auto-gen else echo processing $dr macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin` ( cd $dr aclocalinclude="$ACLOCAL_FLAGS" for k in $macrodirs; do if test -d $k; then aclocalinclude="$aclocalinclude -I $k" ##else ## echo "**Warning**: No such directory \`$k'. Ignored." fi done if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then if grep "sed.*POTFILES" configure.in >/dev/null; then : do nothing -- we still have an old unmodified configure.in else echo "Creating $dr/aclocal.m4 ..." test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 echo "Running gettextize... Ignore non-fatal messages." echo "no" | gettextize --force --copy echo "Making $dr/aclocal.m4 writable ..." test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 fi fi if grep "^AM_GNOME_GETTEXT" configure.in >/dev/null; then echo "Creating $dr/aclocal.m4 ..." test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 echo "Running gettextize... Ignore non-fatal messages." echo "no" | gettextize --force --copy echo "Making $dr/aclocal.m4 writable ..." test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 fi if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then echo "Running libtoolize..." libtoolize --force --copy fi echo "Running aclocal $aclocalinclude ..." aclocal $aclocalinclude if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then echo "Running autoheader..." autoheader fi echo "Running automake --gnu $am_opt ..." automake --add-missing --gnu $am_opt echo "Running autoconf ..." autoconf ) fi done #conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c if test x$NOCONFIGURE = x; then echo Running $srcdir/configure $conf_flags "$@" ... $srcdir/configure $conf_flags "$@" \ && echo Now type \`make\' to compile $PKG_NAME else echo Skipping configure process. fi lgeneral-1.3.1/lgeneral-redit/TODO0000664000175000017500000000000012140770456013612 00000000000000lgeneral-1.3.1/lgeneral-redit/src/0000775000175000017500000000000012575247507014013 500000000000000lgeneral-1.3.1/lgeneral-redit/src/interface.h0000664000175000017500000000013612140770456016034 00000000000000/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ GtkWidget* create_window (void); lgeneral-1.3.1/lgeneral-redit/src/misc.h0000664000175000017500000001353212140770456015033 00000000000000#ifndef __MISC_H #define __MISC_H #include "list.h" #include /* compare strings */ #define STRCMP( str1, str2 ) ( strlen( str1 ) == strlen( str2 ) && !strncmp( str1, str2, strlen( str1 ) ) ) #define AXIS 0 #define ALLIES 1 #ifdef CMDLINE_ONLY # define CLASS_COUNT 18 #else # define CLASS_COUNT 14 #endif #define SCEN_COUNT 38 /* unitlib entry */ typedef struct { char id[8]; char name[24]; int side; /* either axis(0) or allies(1) determined from mirror index list which are the allied units */ int nid; /* the same as id, but stored as an integer */ #ifdef CMDLINE_ONLY int tgttype; int class; int nation; int start_year, start_month; int last_year; #endif } UnitLib_Entry; /* reinforcement */ typedef struct { int pin; /* PIN to identify unit when removing */ int uid; /* numerical unit id */ char id[8]; /* unit id */ int tid; /* numerical transport id */ char trp[8]; /* transporter id */ char info[128]; /* info string */ int delay; int str; int exp; int nation; /* nation id */ UnitLib_Entry *entry, *trp_entry; /* to reselect unit properties from reinf list */ int class_id; int unit_id; int trp_id; } Unit; /* ==================================================================== Load/save reinforcement resources ==================================================================== */ int load_reinf(); int save_reinf(); /* ==================================================================== Build LGC-PG reinforcements file. ==================================================================== */ void build_reinf(); /* ==================================================================== Inititate application and load resources. ==================================================================== */ void init(); /* ==================================================================== Cleanup ==================================================================== */ void finalize(); /* ==================================================================== Copy source to dest and at maximum limit chars. Terminate with 0. ==================================================================== */ void strcpy_lt( char *dest, char *src, int limit ); /* ==================================================================== Convert string to scenario id. Returns -1 if invalid. ==================================================================== */ int to_scenario(const char *str); /* ==================================================================== Convert string to side id. Returns -1 if invalid. ==================================================================== */ int to_side(const char *str); /* ==================================================================== Convert string to nation id. Returns -1 if invalid. ==================================================================== */ int to_nation(const char *str); /* ==================================================================== Convert string to unit class id. Returns -1 if invalid. ==================================================================== */ int to_unit_class(const char *str); /* ==================================================================== Convert string to target type id. Returns -1 if invalid. ==================================================================== */ int to_target_type(const char *str); /* ==================================================================== Returns the side this nation typically belongs to. 0 is axis, 1 is allied. ==================================================================== */ int nation_to_side(int nation); /* ==================================================================== Returns the total count of units. ==================================================================== */ int unit_count(); /* ==================================================================== Returns the unit with the given id or 0 if not found. Don't call this while iterating all units by iterate_units_next() ==================================================================== */ UnitLib_Entry *find_unit_by_id(int id); /* ==================================================================== Starts iterating the unit database. ==================================================================== */ void iterate_units_begin(void); /* ==================================================================== Returns the next unit or 0 if end reached. ==================================================================== */ UnitLib_Entry *iterate_units_next(void); #ifndef CMDLINE_ONLY /* ==================================================================== Update unit/transporters/reinf list ==================================================================== */ void update_unit_list( int player, int unit_class ); void update_trp_list( int player ); void update_reinf_list( int scen, int player ); #endif /* ==================================================================== Read all lines from file. ==================================================================== */ List* file_read_lines( FILE *file ); /* ==================================================================== Build units info string. ==================================================================== */ void build_unit_info( Unit *unit, int player ); /* ==================================================================== Insert a new reinforcement unit into the reinforcements array. ==================================================================== */ void insert_reinf_unit( Unit *unit, int player, int scenario ); #ifdef CMDLINE_ONLY /* ==================================================================== Return the directory the game data is installed under. ==================================================================== */ const char *get_gamedir(void); #endif #endif lgeneral-1.3.1/lgeneral-redit/src/misc.c0000664000175000017500000006224512575247507015043 00000000000000#ifndef CMDLINE_ONLY # include #endif #include #include #ifndef CMDLINE_ONLY # include "support.h" #endif #include "parser.h" #include "misc.h" #ifdef CMDLINE_ONLY extern const char *unitdb; extern const char *reinfrc; extern const char *reinf_output; #else /* !CMDLINE_ONLY */ extern GtkWidget *window; const char unitdb[] = "../../src/units/pg.udb"; const char reinfrc[] = "reinf.rc"; const char reinf_output[] = "../../lgc-pg/convdata/reinf"; #endif /* !CMDLINE_ONLY */ const char *unit_classes[] = { "inf", "Infantry", "tank", "Tank", "recon", "Recon", "antitank", "Anti-Tank", "art", "Artillery", "antiair", "Anti-Aircraft", "airdef", "Air-Defense", #ifdef CMDLINE_ONLY "fort", "Fortification", #endif "fighter", "Fighter", "tacbomb", "Tactical Bomber", "levbomb", "Level Bomber", "sub", "Submarine", "dest", "Destroyer", "cap", "Capital Ship", "carrier", "Aircraft Carrier", #ifdef CMDLINE_ONLY "landtrp", "Land Transport", "airtrp", "Air Transport", "seatrp", "Sea Transport", #else /* landtrp is supportive to classes listed above */ #endif }; #define NUM_UNIT_CLASSES (sizeof unit_classes/sizeof unit_classes[0]) const int num_unit_classes = NUM_UNIT_CLASSES; const char *target_types[] = { "soft", "Soft Target", "hard", "Hard Target", "air", "Air Target", "naval", "Naval Target", }; #define NUM_TARGET_TYPES (sizeof target_types/sizeof target_types[0]) const int num_target_types = NUM_TARGET_TYPES; const char *sides[] = { "axis", "Axis Forces", "allied", "Allied Forces", }; #define NUM_SIDES (sizeof sides/sizeof sides[0]) const int num_sides = NUM_SIDES; const char *nation_table[] = { "aus", "Austria", "bel", "Belgia", "bul", "Bulgaria", "lux", "Luxemburg", "den", "Denmark", "fin", "Finnland", "fra", "France", "ger", "Germany", "gre", "Greece", "usa", "USA", "hun", "Hungary", "tur", "Turkey", "it", "Italy", "net", "Netherlands", "nor", "Norway", "pol", "Poland", "por", "Portugal", "rum", "Rumania", "esp", "Spain", "so", "Sovjetunion", "swe", "Sweden", "swi", "Switzerland", "eng", "Great Britain", "yug", "Yugoslavia", }; #define NUM_NATION_TABLE (sizeof nation_table/sizeof nation_table[0]) const int num_nation_table = NUM_NATION_TABLE; const char *scenarios[] = { "Poland", "Warsaw", "Norway", "LowCountries", "France", "Sealion40", "NorthAfrica", "MiddleEast", "ElAlamein", "Caucasus", "Sealion43", "Torch", "Husky", "Anzio", "D-Day", "Anvil", "Ardennes", "Cobra", "MarketGarden", "BerlinWest", "Balkans", "Crete", "Barbarossa", "Kiev", "Moscow41", "Sevastapol", "Moscow42", "Stalingrad", "Kharkov", "Kursk", "Moscow43", "Byelorussia", "Budapest", "BerlinEast", "Berlin", "Washington", "EarlyMoscow", "SealionPlus" }; /* while axis reinforcements are always supplied to Germany the Allied side depends on the scenario */ const char *nations[] = { "pol", "pol", "eng", "eng", "fra", "eng", "eng", "eng", "eng", "so", "eng", "usa", "usa", "usa", "usa", "usa", "usa", "usa", "usa", "usa", "eng", "eng", "so", "so", "so", "so", "so", "so", "so", "so", "so", "so", "so", "so", "usa", "usa", "so", "eng" }; /* ==================================================================== Icon indices that must be mirrored terminated by -1 ==================================================================== */ int mirror_ids[] = { 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181 ,182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 221, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 250, -1 }; /* ==================================================================== UnitLib entries separated to their classes (axis/allies) ==================================================================== */ List *unitlib[2][CLASS_COUNT]; List *trplib[2]; /* transporters */ /* ==================================================================== Reinforcements for each scenario (axis/allies) ==================================================================== */ List *reinf[2][SCEN_COUNT]; /* ==================================================================== Current selections ==================================================================== */ int cur_scen = 0, cur_player = AXIS, cur_class = 0; int cur_unit = -1, cur_trp = -1, cur_pin = 1; int cur_reinf = -1; /* row selection id */ /* ==================================================================== Load/save reinforcement resources ==================================================================== */ int load_reinf() { char *line; Unit *unit; int i, j, k, count; FILE *file = fopen( reinfrc, "rb" ); List *list, *args; if ( file ) list = file_read_lines( file ); else return 0; fclose( file ); cur_pin = 1; for ( i = 0; i < SCEN_COUNT; i++ ) { line = list_next( list ); for ( j = 0; j < 2; j++ ) { list_clear( reinf[j][i] ); count = atoi( list_next( list ) ); for ( k = 0; k < count; k++ ) { line = list_next( list ); if ( ( args = parser_explode_string( line, ',' ) ) ) { if ( ( unit = calloc( 1, sizeof( Unit ) ) ) ) { const char *arg; unit->pin = cur_pin++; unit->delay = atoi( list_next( args ) ); strcpy_lt( unit->id, list_next( args ), 7 ); unit->uid = atoi( unit->id ); strcpy_lt( unit->trp, list_next( args ), 7 ); unit->tid = strcmp( unit->trp, "none" ) == 0 ? -1 : atoi( unit->trp ); unit->str = atoi( list_next( args ) ); unit->exp = atoi( list_next( args ) ); unit->class_id = atoi( list_next( args ) ); unit->unit_id = atoi( list_next( args ) ); unit->trp_id = atoi( list_next( args ) ); if ( (arg = list_next( args )) ) unit->nation = atoi( arg ); else unit->nation = -1; build_unit_info( unit, j ); list_add( reinf[j][i], unit ); } list_delete( args ); } } } } list_delete( list ); #ifndef CMDLINE_ONLY /* update */ update_reinf_list( cur_scen, cur_player ); #endif return 1; } int save_reinf() { Unit *unit; int i, j; FILE *file = fopen( reinfrc, "wb" ); if ( file == 0 ) return 0; for ( i = 0; i < SCEN_COUNT; i++ ) { fprintf( file, "%s\n", scenarios[i] ); for ( j = 0; j < 2; j++ ) { fprintf( file, "%i\n", reinf[j][i]->count ); list_reset( reinf[j][i] ); while ( ( unit = list_next( reinf[j][i] ) ) ) fprintf( file, "%i,%s,%s,%i,%i,%i,%i,%i,%i\n", unit->delay, unit->id, unit->trp, unit->str, unit->exp, unit->class_id, unit->unit_id, unit->trp_id, unit->nation ); } } fclose( file ); printf( "Reinforcements saved to %s\n", reinfrc ); return 1; } char *get_nation_id_by_table_id( int id ) { static char nat[4]; strcpy(nat,"---"); if (id<0||id>=num_nation_table/2) return nat; else { snprintf(nat,4,"%s",nation_table[id*2]); return nat; } } int determine_nation_for_unit(const UnitLib_Entry *entry); /* ==================================================================== Build LGC-PG reinforcements file in ../../src/convdata ==================================================================== */ void build_reinf() { Unit *unit; int i, j, nat; FILE *file = fopen( reinf_output, "wb" ); if ( file ) { for ( i = 0; i < SCEN_COUNT; i++ ) { if ( reinf[AXIS][i]->count == 0 ) if ( reinf[ALLIES][i]->count == 0 ) continue; fprintf( file, "%s {\n", scenarios[i] ); for ( j = 0; j < 2; j++ ) { if ( reinf[j][i]->count == 0 ) continue; list_reset( reinf[j][i] ); while ( ( unit = list_next( reinf[j][i] ) ) ) { nat = unit->nation; if (nat==-1) { UnitLib_Entry *entry = find_unit_by_id( unit->uid ); nat = determine_nation_for_unit(entry); } fprintf( file, " unit { nation = %s id = %s trsp = %s " "delay = %i str = %i " "exp = %i }\n", get_nation_id_by_table_id(nat), unit->id, unit->trp, unit->delay, unit->str, unit->exp ); } } fprintf( file, "}\n\n" ); } fclose( file ); printf( "Reinforcements built to %s\n", reinf_output ); } else printf( "%s not found!\n", reinf_output ); } /* ==================================================================== Convert string to scenario id. Returns -1 if invalid. ==================================================================== */ int to_scenario(const char *str) { int i = SCEN_COUNT; for (; i > 0; ) { i--; if (strcasecmp(str, scenarios[i]) == 0) return i; } return -1; } /* ==================================================================== Convert string to side id. Returns -1 if invalid. ==================================================================== */ int to_side(const char *str) { int i = NUM_SIDES; for (; i > 0; ) { i -= 2; if (strcasecmp(str, sides[i]) == 0) return i >> 1; } return -1; } /* ==================================================================== Convert string to nation id. Returns -1 if invalid. ==================================================================== */ int to_nation(const char *str) { int i = NUM_NATION_TABLE; for (; i > 0; ) { i -= 2; if (strcasecmp(str, nation_table[i]) == 0) return i >> 1; } return -1; } /* ==================================================================== Convert string to target type id. Returns -1 if invalid. ==================================================================== */ int to_target_type(const char *str) { int i = NUM_TARGET_TYPES; for (; i > 0; ) { i -= 2; if (strcasecmp(str, target_types[i]) == 0) return i >> 1; } return -1; } /* ==================================================================== Convert string to unit class id. Returns -1 if invalid. ==================================================================== */ int to_unit_class(const char *str) { int i = NUM_UNIT_CLASSES; for (; i > 0; ) { i -= 2; if (strcasecmp(str, unit_classes[i]) == 0) return i >> 1; } return -1; } /* ==================================================================== Returns the side this nation typically belongs to. 0 is axis, 1 is allied. ==================================================================== */ int nation_to_side(int nation) { switch (nation) { case 0: case 2: case 4: case 5: case 7: case 10: case 11: case 12: case 20: case 21: return 0; default: return 1; } } /* ==================================================================== Returns the total count of units. ==================================================================== */ int unit_count() { int cnt = 0; int side, cls; for (side = 0; side < 2; side++) { for (cls = 0; cls < CLASS_COUNT; cls++) { cnt += unitlib[side][cls]->count; } cnt += trplib[side]->count; } return cnt; } /* ==================================================================== Determines the nation the given unit belongs to. Returns -1 if no nation could be determined. ==================================================================== */ int determine_nation_for_unit(const UnitLib_Entry *entry) { static const struct { const char * const prefix; const char nat[4]; } prefix_xlate[] = { { "ST ", "so" }, { "US ", "usa" }, { "GB ", "eng" }, { "FR ", "fra" }, { "FFR ", "fra" }, { "FPO ", "pol" }, { "IT ", "it" }, { "PO ", "pol" }, { "NOR ", "nor" }, { "LC ", "?" }, { "AF ", "?" }, { "AD ", "?" }, { "Rumanian ", "rum" }, { "Bulgarian ", "bul" }, { "Hungarian ", "hun" }, { "Greek ", "gre" }, { "Yugoslav ", "yug" }, }; int i; const char *nat = 0; for (i = 0; i < sizeof prefix_xlate/sizeof prefix_xlate[0]; i++) { int prefix_len = strlen(prefix_xlate[i].prefix); if (strncmp(entry->name, prefix_xlate[i].prefix, prefix_len) == 0) { nat = prefix_xlate[i].nat; break; } } /* the Stalinorgeln miss their ST prefix */ if (entry->nid == 422 || entry->nid == 423) nat = "so"; else if (!nat) nat = "ger"; /* everything else is German */ return to_nation(nat); } /* ==================================================================== Returns the unit with the given id or 0 if not found. Don't call this while iterating all units by iterate_units_next() ==================================================================== */ UnitLib_Entry *find_unit_by_id(int id) { UnitLib_Entry *entry; iterate_units_begin(); while ((entry = iterate_units_next())) { if (entry->nid == id) return entry; } return 0; } /** opaque data structure for maintaining iterator state */ struct UdbIteratorState { enum { AxisSide, AlliedSide, SidesTraversed } side; enum { UnitArray, TransportArray, ArraysTraversed } ary; int cls; struct UnitLib_Entry *cur; } udb_it; /* ==================================================================== Starts iterating the unit database. ==================================================================== */ void iterate_units_begin(void) { udb_it.side = AxisSide; udb_it.ary = UnitArray; udb_it.cls = 0; list_reset(unitlib[udb_it.side][udb_it.cls]); } /* ==================================================================== Returns the next unit or 0 if end reached. ==================================================================== */ UnitLib_Entry *iterate_units_next(void) { List *lst = udb_it.ary == UnitArray ? unitlib[udb_it.side][udb_it.cls] : trplib[udb_it.side]; UnitLib_Entry *item = list_next(lst); if (item) return item; switch (udb_it.ary) { case UnitArray: udb_it.cls++; if (udb_it.cls == CLASS_COUNT) { udb_it.ary++; list_reset(trplib[udb_it.side]); } else list_reset(unitlib[udb_it.side][udb_it.cls]); item = iterate_units_next(); break; case TransportArray: udb_it.ary++; /* fall through */ case ArraysTraversed: udb_it.side++; if (udb_it.side < SidesTraversed) { udb_it.ary = UnitArray; udb_it.cls = 0; list_reset(unitlib[udb_it.side][udb_it.cls]); item = iterate_units_next(); } } return item; } /* ==================================================================== Inititate application and load resources. ==================================================================== */ void init() { #ifndef CMDLINE_ONLY gchar *row[1]; GtkWidget *clist = 0; #endif UnitLib_Entry *entry = 0; PData *pd = 0, *units = 0, *unit = 0; int i, j; char *str; /* create lists */ for ( j = 0; j < 2; j++ ) { for ( i = 0; i < CLASS_COUNT; i++ ) unitlib[j][i] = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); trplib[j] = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); if ( ( entry = calloc( 1, sizeof( UnitLib_Entry ) ) ) ) { strcpy( entry->name, "NONE" ); list_add( trplib[j], entry ); } for ( i = 0; i < SCEN_COUNT; i++ ) reinf[j][i] = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); } /* load unit lib */ if ( ( pd = parser_read_file( "unitlib", unitdb ) ) == 0 ) goto failure; if ( !parser_get_pdata( pd, "unit_lib", &units ) ) goto failure; /* load and categorize unit entries */ list_reset( units->entries ); while ( ( unit = list_next( units->entries ) ) ) { /* id, name and side */ if ( ( entry = calloc( 1, sizeof( UnitLib_Entry ) ) ) == 0 ) goto failure; strcpy_lt( entry->id, unit->name, 7 ); entry->nid = atoi(entry->id); if ( parser_get_value( unit, "name", &str, 0 ) ) strcpy_lt( entry->name, str, 23 ); if ( parser_get_value( unit, "icon_id", &str, 0 ) ) j = atoi( str ); i = 0; entry->side = 0; while ( 1 ) { if ( mirror_ids[i++] == j ) { entry->side = 1; break; } if ( mirror_ids[i] == -1 ) break; } /* get class and add to list */ if ( parser_get_value( unit, "class", &str, 0 ) ) { int class_id = to_unit_class(str); #ifdef CMDLINE_ONLY entry->class = class_id; #endif if ( STRCMP( "landtrp", str ) ) /* ground transporters are special */ list_add( trplib[entry->side], entry ); else if (class_id >= 0) list_add( unitlib[entry->side][class_id], entry ); } #ifdef CMDLINE_ONLY if ( parser_get_value( unit, "target_type", &str, 0 ) ) entry->tgttype = to_target_type( str ); if ( parser_get_value( unit, "start_year", &str, 0 ) ) entry->start_year = atoi( str ); if ( parser_get_value( unit, "start_month", &str, 0 ) ) entry->start_month = atoi( str ); if ( parser_get_value( unit, "last_year", &str, 0 ) ) entry->last_year = atoi( str ); entry->nation = determine_nation_for_unit(entry); #endif } /* load reinforcements */ load_reinf(); #ifndef CMDLINE_ONLY /* add scenarios to list l_scenarios */ if ( ( clist = lookup_widget( window, "scenarios" ) ) ) { for ( i = 0; i < SCEN_COUNT; i++ ) { row[0] = (char *)scenarios[i]; gtk_clist_append( GTK_CLIST (clist), row ); } } /* show unit list */ update_unit_list( cur_player, cur_class ); update_trp_list( cur_player ); #endif /* we're done */ parser_free( &pd ); return; failure: parser_free( &pd ); finalize(); fprintf( stderr, "Aborted: %s\n", parser_get_error() ); exit( 1 ); } /* ==================================================================== Cleanup ==================================================================== */ void finalize() { int i, j; for ( j = 0; j < 2; j++ ) { for ( i = 0; i < CLASS_COUNT; i++ ) if ( unitlib[j][i] ) list_delete( unitlib[j][i] ); if ( trplib[j] ) list_delete( trplib[j] ); for ( i = 0; i < SCEN_COUNT; i++ ) if ( reinf[j][i] ) list_delete( reinf[j][i] ); } } /* ==================================================================== Copy source to dest and at maximum limit chars. Terminate with 0. ==================================================================== */ void strcpy_lt( char *dest, char *src, int limit ) { int len = strlen( src ); if ( len > limit ) { strncpy( dest, src, limit ); dest[limit] = 0; } else strcpy( dest, src ); } #ifndef CMDLINE_ONLY /* ==================================================================== Update unit/transporters list ==================================================================== */ void update_unit_list( int player, int unit_class ) { UnitLib_Entry *entry; gchar *row[1]; GtkWidget *clist; if ( ( clist = lookup_widget( window, "units" ) ) ) { gtk_clist_clear( GTK_CLIST(clist) ); list_reset( unitlib[player][unit_class] ); while ( ( entry = list_next( unitlib[player][unit_class] ) ) ) { row[0] = entry->name; gtk_clist_append( GTK_CLIST(clist), row ); } } } void update_trp_list( int player ) { UnitLib_Entry *entry; gchar *row[1]; GtkWidget *clist; if ( ( clist = lookup_widget( window, "transporters" ) ) ) { gtk_clist_clear( GTK_CLIST(clist) ); list_reset( trplib[player] ); while ( ( entry = list_next( trplib[player] ) ) ) { row[0] = entry->name; gtk_clist_append( GTK_CLIST(clist), row ); } } } void update_reinf_list( int scen, int player ) { Unit *entry; gchar *row[1]; GtkWidget *clist; if ( ( clist = lookup_widget( window, "reinforcements" ) ) ) { gtk_clist_clear( GTK_CLIST(clist) ); list_reset( reinf[player][scen] ); while ( ( entry = list_next( reinf[player][scen] ) ) ) { row[0] = entry->info; gtk_clist_append( GTK_CLIST(clist), row ); } gtk_clist_sort( GTK_CLIST(clist) ); } } #endif /* ==================================================================== Read all lines from file. ==================================================================== */ List* file_read_lines( FILE *file ) { List *list; char buffer[1024]; if ( !file ) return 0; list = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); /* read lines */ while( !feof( file ) ) { if ( !fgets( buffer, 1023, file ) ) break; if ( buffer[0] == 10 ) continue; /* empty line */ buffer[strlen( buffer ) - 1] = 0; /* cancel newline */ list_add( list, strdup( buffer ) ); } return list; } /* ==================================================================== Build unit's info string. ==================================================================== */ void build_unit_info( Unit *unit, int player ) { UnitLib_Entry *entry = find_unit_by_id( unit->uid ); UnitLib_Entry *trp_entry = find_unit_by_id( unit->tid ); #ifndef CMDLINE_ONLY if ( trp_entry ) { snprintf( unit->info, sizeof unit->info, "T %02i: '%s' (Strength: %i, Exp: %i, Nation: %s) [%s] #%i", unit->delay + 1, entry ? entry->name : "", unit->str, unit->exp, (unit->nation==-1)?"auto":get_nation_id_by_table_id(unit->nation), trp_entry->name, unit->pin ); } else snprintf( unit->info, sizeof unit->info, "T %02i: '%s' (Strength: %i, Exp: %i, Nation: %s) #%i", unit->delay + 1, entry ? entry->name : "", unit->str, unit->exp, (unit->nation==-1)?"auto":get_nation_id_by_table_id(unit->nation), unit->pin ); #endif unit->entry = entry; unit->trp_entry = trp_entry; } /* ==================================================================== Insert a new reinforcement unit into the reinforcements array. ==================================================================== */ void insert_reinf_unit( Unit *unit, int player, int scenario ) { /* insert into list, but grouped by nation */ { Unit *item; int i = 0; list_reset( reinf[player][scenario] ); for (i = 0; (item = list_next( reinf[player][scenario] )); i++) { if ( unit->nation == item->nation ) break; } list_insert( reinf[player][scenario], unit, i ); } } #ifdef CMDLINE_ONLY #include "util/paths.h" /* ==================================================================== Return the directory the game data is installed under. ==================================================================== */ const char *get_gamedir(void) { #ifdef DISABLE_INSTALL return "."; #else const char *prefix; static char *gamedir; static const char suffix[] = "/share/games/lgeneral"; unsigned len; if (gamedir) return gamedir; prefix = paths_prefix(); len = strlen(prefix); gamedir = malloc(len + sizeof suffix); strcpy(gamedir, prefix); strcpy(gamedir + len, suffix); return gamedir; #endif } #endif lgeneral-1.3.1/lgeneral-redit/src/parser.h0000664000175000017500000001413612140770456015375 00000000000000/*************************************************************************** parser.h - description ------------------- begin : Sat Mar 9 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __PARSER_H #define __PARSER_H #include "list.h" #include /* ==================================================================== This module provides functions to parse ASCII data from strings and files. Synopsis: groupname entry1 .. entryX variable value A group entry may either be a variable or a group (interlacing). A variable value may either be a single token or a list of tokens enclosed by . Text enclosed by ".." is counted as a single token. ==================================================================== */ /* ==================================================================== Symbols. Note: These symbols are ignored when found in a token "" as they belong to this token then. PARSER_GROUP_BEGIN: PARSER_GROUP_END: PARSER_SET: PARSER_LIST_BEGIN: PARSER_LIST_END: PARSER_COMMENT_BEGIN: PARSER_COMMENT_END: PARSER_SYMBOLS: List of all symbols + whitespace used to split strings and tokens. PARSER_SKIP_SYMBOLS: text bewteen these two symbols is handled as comment and therefore completely ignored ==================================================================== */ #define PARSER_GROUP_BEGIN '{' #define PARSER_GROUP_END '}' #define PARSER_SET '=' #define PARSER_LIST_BEGIN '(' #define PARSER_LIST_END ')' #define PARSER_COMMENT_BEGIN '[' #define PARSER_COMMENT_END ']' #define PARSER_SYMBOLS " =(){}[]" #define PARSER_SKIP_SYMBOLS "[]" /* ==================================================================== An input string is converted into a PData tree struct. The name identifies this entry and it's the token that is searched for when reading this entry. Either 'values' or 'entries' is set. If 'entries' is not NULL the PData is a group and 'entries' contains pointers to other groups or lists. If 'values' is not NULL the PData is a list and 'values' contains a list of value strings associated with 'name'. ==================================================================== */ typedef struct { char *name; List *values; List *entries; } PData; /* ==================================================================== This function splits a string into tokens using the characters found in symbols as breakpoints. If the first symbol is ' ' all whitespaces are used as breakpoints though NOT added as a token (thus removed from string). ==================================================================== */ List* parser_split_string( char *string, char *symbols ); /* ==================================================================== This is the light version of parser_split_string which checks for just one character and does not add this glue characters to the list. It's about 2% faster. Wow. ==================================================================== */ List *parser_explode_string( char *string, char c ); /* ==================================================================== This function reads in a whole file and converts it into a PData tree struct. If an error occurs NULL is returned and parser_error is set. 'tree_name' is the name of the PData tree. ==================================================================== */ PData* parser_read_file( const char *tree_name, const char *fname ); /* ==================================================================== This function frees a PData tree struct. ==================================================================== */ void parser_free( PData **pdata ); /* ==================================================================== Functions to access a PData tree. 'name' is the pass within tree 'pd' where subtrees are separated by '/' (e.g.: name = 'config/graphics/animations') parser_get_pdata : get pdata entry associated with 'name' parser_get_entries : get list of subtrees (PData structs) in 'name' parser_get_values : get value list of 'name' parser_get_value : get a single value from value list of 'name' parser_get_int : get first value of 'name' converted to integer parser_get_double : get first value of 'name' converted to double parser_get_string : get first value of 'name' _duplicated_ If an error occurs result is set NULL, False is returned and parse_error is set. ==================================================================== */ int parser_get_pdata ( PData *pd, char *name, PData **result ); int parser_get_entries( PData *pd, char *name, List **result ); int parser_get_values ( PData *pd, char *name, List **result ); int parser_get_value ( PData *pd, char *name, char **result, int index ); int parser_get_int ( PData *pd, char *name, int *result ); int parser_get_double ( PData *pd, char *name, double *result ); int parser_get_string ( PData *pd, char *name, char **result ); /* ==================================================================== If an error occurred you can query the message with this function. ==================================================================== */ char* parser_get_error( void ); #endif lgeneral-1.3.1/lgeneral-redit/src/parser.c0000664000175000017500000005712712575247507015407 00000000000000/*************************************************************************** parser.c - description ------------------- begin : Sat Mar 9 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include "parser.h" #include "misc.h" /* ==================================================================== Error string. ==================================================================== */ static char parser_sub_error[1024]; static char parser_error[1024]; /* ==================================================================== This buffer is used to fully load resource files when the compact format is used. ==================================================================== */ enum { CBUFFER_SIZE = 131072 }; /* 128 KB */ static char cbuffer[CBUFFER_SIZE]; static char* cbuffer_pos = 0; /* position in cbuffer */ /* ==================================================================== As we need constant strings sometimes we have to define a maximum length for tokens. ==================================================================== */ enum { PARSER_MAX_TOKEN_LENGTH = 1024 }; /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Macro to shorten the fread call for a single character. ==================================================================== */ /** Macro wrapper to read data from file with (very) simple error handling. * Only to be used as standalone command, not in conditions. */ #define _fread(ptr,size,nmemb,stream) \ do { int _freadretval = fread(ptr,size,nmemb,stream); if (_freadretval != nmemb && !feof(stream)) fprintf(stderr, "%s: %d: _fread error\n",__FILE__,__LINE__);} while (0) #define FILE_READCHAR( file, c ) _fread( &c, sizeof( char ), 1, file ) /* ==================================================================== Find next newline in cbuffer and replace it with \0 and return the pointer to the current line. ==================================================================== */ static char* parser_get_next_line() { char *line = cbuffer_pos; char *newpos; if ( cbuffer_pos[0] == 0 ) return 0; /* completely read. no more lines. */ if ( ( newpos = strchr( cbuffer_pos, 10 ) ) == 0 ) cbuffer_pos += strlen( cbuffer_pos ); /* last line */ else { cbuffer_pos = newpos + 1; /* set pointer to next line */ newpos[0] = 0; /* terminate current line */ } return line; } /* ==================================================================== Set parse error string: "file:line: error" ==================================================================== */ static void parser_set_parse_error( const char *fname, FILE *file, const char *error ) { int end, pos; int line_count = 1; char c; end = ftell( file ); pos = 0; fseek( file, 0, SEEK_SET ); while ( pos < end ) { FILE_READCHAR( file, c ); pos++; if ( c == 10 ) line_count++; } sprintf( parser_error, "%s: %i: %s", fname, line_count, error ); } /* ==================================================================== Check if the given character occurs in the symbol list. If the first symbol is ' ' it is used as wildcard for all white-spaces. ==================================================================== */ static int is_symbol( int c, char *symbols ) { int i = 0; if ( symbols[0] == ' ' && c <= 32 ) return 1; while ( symbols[i] != 0 ) if ( c == symbols[i++] ) return 1; return 0; } /* ==================================================================== Move file position forward until reading in the given character. If stop is ' ' whitespaces will be ignored. ==================================================================== */ static void file_skip( FILE *file, char stop ) { char c = 0; FILE_READCHAR( file, c ); while ( ( ( stop == ' ' && c <= 32 ) || ( stop != ' ' && c != stop ) ) && !feof( file ) ) FILE_READCHAR( file, c ); if ( !feof( file ) ) fseek( file, -1, SEEK_CUR ); } /* ==================================================================== Read next token from current file position where symbols is a list of characters used to break up the tokens. The symbols themself are returned as tokens. If ' ' occurs in the symbol list it will be ignored and whitespaces are removed automatically. The token does not exceed PARSER_MAX_TOKEN_LENGTH. Enclosing ".." are kept at the token. Use file_compare_token() to test it's contents. Returns False on EoF. ==================================================================== */ static int file_read_token_intern( FILE *file, char *symbols, char *token ) { int pos = 0; char c; token[0] = 0; file_skip( file, ' ' ); FILE_READCHAR( file, c ); if ( feof( file ) ) { sprintf( parser_sub_error, "unexpected end of file" ); return 0; } /* string? */ if ( c == '"' ) { token[pos++] = '"'; FILE_READCHAR( file, c ); while ( ( !feof( file ) && c != '"' ) ) { token[pos++] = c; if ( pos == PARSER_MAX_TOKEN_LENGTH - 2 ) { token[pos++] = '"'; token[pos] = 0; sprintf( parser_sub_error, "token exceeds limit" ); return 0; } FILE_READCHAR( file, c ); } token[pos++] = '"'; token[pos] = 0; if ( feof( file ) ) { sprintf( parser_sub_error, "unexpected end of file" ); token[0] = 0; return 0; } return 1; } /* symbol? */ if ( is_symbol( c, symbols ) ) { token[0] = c; token[1] = 0; return 1; } /* other token */ while ( !is_symbol( c, symbols ) && !feof( file ) ) { token[pos++] = c; if ( pos == PARSER_MAX_TOKEN_LENGTH - 1 ) { token[pos] = 0; sprintf( parser_sub_error, "token exceeds limit" ); return 0; } FILE_READCHAR( file, c ); } token[pos] = 0; if ( feof( file ) ) return 1; fseek( file, -1, SEEK_CUR ); return 1; } /* ==================================================================== Skip all tokens until one begins with character 'stop'. This token is also ignored. ==================================================================== */ static void file_skip_section( FILE *file, char stop ) { char token[PARSER_MAX_TOKEN_LENGTH]; do { file_read_token_intern( file, PARSER_SYMBOLS, token ); } while ( !feof( file ) && token[0] != stop ); } /* ==================================================================== Read next token and skip comments enclosed in tokens skip[0], skip[1] (if skip is not NULL). Return 0 if EoF. ==================================================================== */ static int file_read_token( FILE *file, char *symbols, char *skip, char *token ) { while ( 1 ) { if ( !file_read_token_intern( file, symbols, token ) ) return 0; if ( skip ) { if ( token[0] == skip[0] ) file_skip_section( file, skip[1] ); else break; } else break; } return 1; } /* ==================================================================== Remove quotes if any and return result as newly allocated string. ==================================================================== */ static char* parser_remove_quotes( char *string ) { char *new; if ( string[0] != '"' ) return strdup( string ); new = calloc( strlen( string ) - 1, sizeof( char ) ); strncpy( new, string + 1, strlen( string ) - 2 ); new[strlen( string ) - 2] = 0; return new; } /* ==================================================================== Proceed in the given string until it ends or non-whitespace occurs and return the new position. ==================================================================== */ static char* string_ignore_whitespace( char *string ) { int i = 0; while ( string[i] != 0 && string[i] <= 32 ) i++; return string + i; } /* ==================================================================== This function searches file from the current position for the next pdata entry. ==================================================================== */ static PData* parser_parse_file( FILE *file ) { char token[PARSER_MAX_TOKEN_LENGTH]; PData *pd = 0, *sub = 0; /* get name */ if ( !file_read_token( file, PARSER_SYMBOLS, PARSER_SKIP_SYMBOLS, token ) ) return 0; if ( is_symbol( token[0], PARSER_SYMBOLS ) ) { sprintf( parser_sub_error, "parse error before '%s'", token ); return 0; } pd = calloc( 1, sizeof( PData ) ); pd->name = parser_remove_quotes( token ); /* check type */ if ( !file_read_token( file, PARSER_SYMBOLS, PARSER_SKIP_SYMBOLS, token ) ) goto failure; switch ( token[0] ) { case PARSER_SET: /* assign single value or list */ pd->values = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); if ( !file_read_token( file, PARSER_SYMBOLS, PARSER_SKIP_SYMBOLS, token ) ) goto failure; if ( token[0] != PARSER_LIST_BEGIN ) { if ( is_symbol( token[0], PARSER_SYMBOLS ) ) { sprintf( parser_sub_error, "parse error before '%s'", token ); goto failure; } else list_add( pd->values, parser_remove_quotes( token ) ); } else { if ( !file_read_token( file, PARSER_SYMBOLS, PARSER_SKIP_SYMBOLS, token ) ) goto failure; while ( token[0] != PARSER_LIST_END ) { if ( is_symbol( token[0], PARSER_SYMBOLS ) ) { sprintf( parser_sub_error, "parse error before '%s'", token ); goto failure; } else list_add( pd->values, parser_remove_quotes( token ) ); if ( !file_read_token( file, PARSER_SYMBOLS, PARSER_SKIP_SYMBOLS, token ) ) goto failure; } } break; case PARSER_GROUP_BEGIN: /* check all entries until PARSER_GROUP_END */ pd->entries = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); while ( 1 ) { if ( !file_read_token( file, PARSER_SYMBOLS, PARSER_SKIP_SYMBOLS, token ) ) goto failure; if ( token[0] == PARSER_GROUP_END ) break; fseek( file, -strlen( token ), SEEK_CUR ); sub = parser_parse_file( file ); if ( sub ) list_add( pd->entries, sub ); else goto failure; } break; default: sprintf( parser_sub_error, "parse error before '%s'", token ); goto failure; } return pd; failure: parser_free( &pd ); return 0; } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== This function splits a string into tokens using the characters found in symbols as breakpoints. If the first symbol is ' ' all whitespaces are used as breakpoints though NOT added as a token (thus removed from string). ==================================================================== */ List* parser_split_string( char *string, char *symbols ) { int pos; char *token = 0; List *list = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); while ( string[0] != 0 ) { if ( symbols[0] == ' ' ) string = string_ignore_whitespace( string ); if ( string[0] == 0 ) break; pos = 1; /* 'read in' first character */ while ( string[pos - 1] != 0 && !is_symbol( string[pos - 1], symbols ) && string[pos - 1] != '"' ) pos++; if ( pos > 1 ) pos--; else if ( string[pos - 1] == '"' ) { /* read a string */ string = string + 1; pos = 0; while ( string[pos] != 0 && string[pos] != '"' ) pos++; token = calloc( pos + 1, sizeof( char ) ); strncpy( token, string, pos ); token[pos] = 0; list_add( list, token ); string = string + pos + (string[pos] != 0); continue; } token = calloc( pos + 1, sizeof( char ) ); strncpy( token, string, pos); token[pos] = 0; list_add( list, token ); string = string + pos; } return list; } /* ==================================================================== This is the light version of parser_split_string which checks for just one character and does not add this glue characters to the list. It's about 2% faster. Wow. ==================================================================== */ List *parser_explode_string( char *string, char c ) { List *list = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); char *next_slash = 0; char buffer[64]; while ( string[0] != 0 && ( next_slash = strchr( string, c ) ) != 0 ) { if ( next_slash != string ) { strcpy_lt( buffer, string, (next_slash-string>63)?63:(next_slash-string) ); list_add( list, strdup( buffer ) ); } string += next_slash - string + 1; } if ( string[0] != 0 ) list_add( list, strdup( string ) ); return list; } /* ==================================================================== This function reads in a whole file and converts it into a PData tree struct. If an error occurs NULL is returned and parser_error is set. ==================================================================== */ static int parser_read_file_full( FILE *file, PData *top ) { PData *sub = 0; char token[1024]; /* parse file */ while ( !feof( file ) ) { if ( ( sub = parser_parse_file( file ) ) != 0 ) list_add( top->entries, sub ); else return 0; /* skip comments and whitespaces */ if ( !file_read_token( file, PARSER_SYMBOLS, PARSER_SKIP_SYMBOLS, token ) ) { if ( token[0] != 0 ) return 0; break; } else fseek( file, -strlen( token ), SEEK_CUR ); } return 1; } static int parser_read_file_compact( PData *section ) { /* section is the parent pdata that needs some entries */ PData *pd = 0; char *line, *cur; while ( ( line = parser_get_next_line() ) ) { switch ( line[0] ) { case '>': /* this section is finished */ return 1; case '<': /* add a whole subsection */ pd = calloc( 1, sizeof( PData ) ); pd->name = strdup( line + 1 ); pd->entries = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); parser_read_file_compact( pd ); /* add to section */ list_add( section->entries, pd ); break; default: /* read values as subsection */ pd = calloc( 1, sizeof( PData ) ); /* check name */ if ( ( cur = strchr( line, '»' ) ) == 0 ) { sprintf( parser_sub_error, "parse error: use '»' for assignment or '<' for section" ); return 0; } cur[0] = 0; cur++; pd->name = strdup( line ); /* get values */ pd->values = parser_explode_string( cur, '°' ); /* add to section */ list_add( section->entries, pd ); break; } } return 1; } PData* parser_read_file( const char *tree_name, const char *fname ) { int size; char magic = 0; FILE *file = 0; PData *top = 0; /* open file */ if ( ( file = fopen( fname, "rb" ) ) == 0 ) { sprintf( parser_error, "%s: file not found", fname ); return 0; } /* create top level pdata */ top = calloc( 1, sizeof( PData ) ); top->name = strdup( tree_name ); top->entries = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); /* parse */ FILE_READCHAR( file, magic ); if ( magic == '@' ) { /* get the whole contents -- 1 and CBUFFER_SIZE are switched */ fseek( file, 0, SEEK_END ); size = ftell( file ) - 2; if ( size >= CBUFFER_SIZE ) { fprintf( stderr, "%s: file's too big to fit the compact buffer (128KB)\n", fname ); size = CBUFFER_SIZE - 1; } fseek( file, 2, SEEK_SET ); _fread( cbuffer, 1, size, file ); cbuffer[size] = 0; /* set indicator to beginning of text */ cbuffer_pos = cbuffer; /* parse cbuffer */ if ( !parser_read_file_compact( top ) ) { parser_set_parse_error( fname, file, parser_sub_error ); goto failure; } } else { fseek( file, 0, SEEK_SET ); if ( !parser_read_file_full( file, top ) ) { parser_set_parse_error( fname, file, parser_sub_error ); goto failure; } } /* finalize */ fclose( file ); return top; failure: fclose( file ); parser_free( &top ); return 0; } /* ==================================================================== This function frees a PData tree struct. ==================================================================== */ void parser_free( PData **pdata ) { PData *entry = 0; if ( (*pdata) == 0 ) return; if ( (*pdata)->name ) free( (*pdata)->name ); if ( (*pdata)->values ) list_delete( (*pdata)->values ); if ( (*pdata)->entries ) { list_reset( (*pdata)->entries ); while ( ( entry = list_next( (*pdata)->entries ) ) ) parser_free( &entry ); list_delete( (*pdata)->entries ); } free( *pdata ); *pdata = 0; } /* ==================================================================== Functions to access a PData tree. 'name' is the pass within tree 'pd' where subtrees are separated by '/' (e.g.: name = 'config/graphics/animations') parser_get_pdata : get pdata entry associated with 'name' parser_get_entries : get list of subtrees (PData structs) in 'name' parser_get_values : get value list of 'name' parser_get_value : get a single value from value list of 'name' parser_get_int : get first value of 'name' converted to integer parser_get_double : get first value of 'name' converted to double parser_get_string : get first value of 'name' _duplicated_ If an error occurs result is set NULL, False is returned and parse_error is set. ==================================================================== */ int parser_get_pdata ( PData *pd, char *name, PData **result ) { int i, found; PData *pd_next = pd; PData *entry = 0; char *sub = 0; List *path = parser_explode_string( name, '/' ); for ( i = 0, list_reset( path ); i < path->count; i++ ) { sub = list_next( path ); if ( !pd_next->entries ) { sprintf( parser_sub_error, "%s: no subtrees", pd_next->name ); goto failure; } list_reset( pd_next->entries ); found = 0; while ( ( entry = list_next( pd_next->entries ) ) ) if ( strlen( entry->name ) == strlen( sub ) && !strncmp( entry->name, sub, strlen( sub ) ) ) { pd_next = entry; found = 1; break; } if ( !found ) { sprintf( parser_sub_error, "%s: subtree '%s' not found", pd_next->name, sub ); goto failure; } } list_delete( path ); *result = pd_next; return 1; failure: sprintf( parser_error, "parser_get_pdata: %s/%s: %s", pd->name, name, parser_sub_error ); list_delete( path ); *result = 0; return 0; } int parser_get_entries( PData *pd, char *name, List **result ) { PData *entry; *result = 0; if ( !parser_get_pdata( pd, name, &entry ) ) { sprintf( parser_sub_error, "parser_get_entries:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } if ( !entry->entries || entry->entries->count == 0 ) { sprintf( parser_error, "parser_get_entries: %s/%s: no subtrees", pd->name, name ); return 0; } *result = entry->entries; return 1; } int parser_get_values ( PData *pd, char *name, List **result ) { PData *entry; *result = 0; if ( !parser_get_pdata( pd, name, &entry ) ) { sprintf( parser_sub_error, "parser_get_values:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } if ( !entry->values || entry->values->count == 0 ) { sprintf( parser_error, "parser_get_values: %s/%s: no values", pd->name, name ); return 0; } *result = entry->values; return 1; } int parser_get_value ( PData *pd, char *name, char **result, int index ) { List *values; if ( !parser_get_values( pd, name, &values ) ) { sprintf( parser_sub_error, "parser_get_value:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } if ( index >= values->count ) { sprintf( parser_error, "parser_get_value: %s/%s: index %i out of range (%i elements)", pd->name, name, index, values->count ); return 0; } *result = list_get( values, index ); return 1; } int parser_get_int ( PData *pd, char *name, int *result ) { char *value; if ( !parser_get_value( pd, name, &value, 0 ) ) { sprintf( parser_sub_error, "parser_get_int:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } *result = atoi( value ); return 1; } int parser_get_double ( PData *pd, char *name, double *result ) { char *value; if ( !parser_get_value( pd, name, &value, 0 ) ) { sprintf( parser_sub_error, "parser_get_double:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } *result = strtod( value, 0 ); return 1; } int parser_get_string ( PData *pd, char *name, char **result ) { char *value; if ( !parser_get_value( pd, name, &value, 0 ) ) { sprintf( parser_sub_error, "parser_get_string:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } *result = strdup( value ); return 1; } /* ==================================================================== If an error occurred you can query the reason with this function. ==================================================================== */ char* parser_get_error( void ) { return parser_error; } lgeneral-1.3.1/lgeneral-redit/src/support.h0000664000175000017500000000176512140770456015621 00000000000000/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #ifdef HAVE_CONFIG_H # include #endif #include /* * Public Functions. */ /* * This function returns a widget in a component created by Glade. * Call it with the toplevel widget in the component (i.e. a window/dialog), * or alternatively any widget in the component, and the name of the widget * you want returned. */ GtkWidget* lookup_widget (GtkWidget *widget, const gchar *widget_name); /* get_widget() is deprecated. Use lookup_widget instead. */ #define get_widget lookup_widget /* Use this function to set the directory containing installed pixmaps. */ void add_pixmap_directory (const gchar *directory); /* * Private Functions. */ /* This is used to create the pixmaps in the interface. */ GtkWidget* create_pixmap (GtkWidget *widget, const gchar *filename); lgeneral-1.3.1/lgeneral-redit/src/list.c0000664000175000017500000002662312140770456015053 00000000000000/*************************************************************************** list.c - description ------------------- begin : Sun Sep 2 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include "list.h" /* ==================================================================== Create a new list auto_delete: Free memory of data pointer when deleting entry callback: Use this callback to free memory of data including the data pointer itself. Return Value: List pointer ==================================================================== */ List *list_create( int auto_delete, void (*callback)(void*) ) { List *list = calloc( 1, sizeof( List ) ); list->head.next = &list->tail; list->head.prev = &list->head; list->tail.next = &list->tail; list->tail.prev = &list->head; list->auto_delete = auto_delete; list->callback = callback; list->cur_entry = &list->head; return list; } /* ==================================================================== Delete list and entries. ==================================================================== */ void list_delete( List *list ) { list_clear( list ); free( list ); } /* ==================================================================== Delete all entries but keep the list. Reset current_entry to head pointer. ==================================================================== */ void list_clear( List *list ) { while( !list_empty( list ) ) list_delete_pos( list, 0 ); } /* ==================================================================== Insert new item at position. Return Value: True if successful else False. ==================================================================== */ int list_insert( List *list, void *item, int pos ) { int i; List_Entry *cur = &list->head; List_Entry *new_entry = 0; /* check if insertion possible */ if ( pos < 0 || pos > list->count ) return 0; if ( item == 0 ) return 0; /* get to previous entry */ for (i = 0; i < pos; i++) cur = cur->next; /* create and anchor new entry */ new_entry = calloc( 1, sizeof( List_Entry ) ); new_entry->item = item; new_entry->next = cur->next; new_entry->prev = cur; cur->next->prev = new_entry; cur->next = new_entry; list->count++; return 1; } /* ==================================================================== Add new item at the end of the list. ==================================================================== */ int list_add( List *list, void *item ) { List_Entry *new_entry = 0; /* check if insertion possible */ if ( item == 0 ) return 0; /* create and anchor new entry */ new_entry = calloc( 1, sizeof( List_Entry ) ); new_entry->item = item; new_entry->next = &list->tail; new_entry->prev = list->tail.prev; list->tail.prev->next = new_entry; list->tail.prev = new_entry; list->count++; return 1; } /* ==================================================================== Delete item at position. If this was the current entry update current_entry to valid previous pointer. Return Value: True if successful else False. ==================================================================== */ int list_delete_pos( List *list, int pos ) { int i; List_Entry *cur = &list->head; /* check if deletion possbile */ if ( list_empty( list ) ) return 0; if ( pos < 0 || pos >= list->count ) return 0; /* get to correct entry */ for ( i = 0; i <= pos; i++ ) cur = cur->next; /* modify anchors */ cur->next->prev = cur->prev; cur->prev->next = cur->next; /* decrease counter */ list->count--; /* check current_entry */ if ( list->cur_entry == cur ) list->cur_entry = list->cur_entry->prev; /* free memory */ if ( list->auto_delete ) { if ( list->callback ) (list->callback)( cur->item ); else free( cur->item ); } free( cur ); return 1; } /* ==================================================================== Delete item if in list. If this was the current entry update current_entry to valid previous pointer. Return Value: True if successful else False. ==================================================================== */ int list_delete_item( List *list, void *item ) { return list->cur_entry->item == item ? list_delete_current( list ) : list_delete_pos( list, list_check( list, item ) ); } /* ==================================================================== Delete entry. Return Value: True if successful else False. ==================================================================== */ int list_delete_entry( List *list, List_Entry *entry ) { /* delete possible? */ if ( entry == 0 ) return 0; if ( list->count == 0 ) return 0; if ( entry == &list->head || entry == &list->tail ) return 0; /* adjust anchor and counter */ entry->prev->next = entry->next; entry->next->prev = entry->prev; list->count--; /* check current_entry */ if ( list->cur_entry == entry ) list->cur_entry = list->cur_entry->prev; /* free memory */ if ( list->auto_delete ) { if ( list->callback ) (list->callback)( entry->item ); else free( entry->item ); } free( entry ); return 1; } /* ==================================================================== Get item from position if in list. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_get( List *list, int pos ) { int i; List_Entry *cur = &list->head; if ( pos < 0 || pos >= list->count ) return 0; for ( i = 0; i <= pos; i++ ) cur = cur->next; return cur->item; } /* ==================================================================== Check if item's in list. Return Value: Position of item else -1. ==================================================================== */ int list_check( List *list, void *item ) { int pos = -1; List_Entry *cur = list->head.next; while ( cur != &list->tail ) { pos++; if ( cur->item == item ) break; cur = cur->next; } return pos; } /* ==================================================================== Return first item stored in list and set current_entry to this entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_first( List *list ) { list->cur_entry = list->head.next; return list->head.next->item; } /* ==================================================================== Return last item stored in list and set current_entry to this entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_last( List *list ) { list->cur_entry = list->tail.prev; return list->tail.prev->item; } /* ==================================================================== Return item in current_entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_current( List *list ) { return list->cur_entry->item; } /* ==================================================================== Reset current_entry to head of list. ==================================================================== */ void list_reset( List *list ) { list->cur_entry = &list->head; } /* ==================================================================== Get next item and update current_entry (reset if tail reached) Return Value: Item pointer if found else Null (if tail of list). ==================================================================== */ void* list_next( List *list ) { list->cur_entry = list->cur_entry->next; if ( list->cur_entry == &list->tail ) list_reset( list ); return list->cur_entry->item; } /* ==================================================================== Get previous item and update current_entry. Return Value: Item pointer if found else Null (if head of list). ==================================================================== */ void* list_prev( List *list ) { list->cur_entry = list->cur_entry->prev; return list->cur_entry->item; } /* ==================================================================== Delete the current entry if not tail or head. This is the entry that contains the last returned item by list_next/prev(). Return Value: True if it was a valid deleteable entry. ==================================================================== */ int list_delete_current( List *list ) { if ( list->cur_entry == 0 || list->cur_entry == &list->head || list->cur_entry == &list->tail ) return 0; list_delete_entry( list, list->cur_entry ); return 1; } /* ==================================================================== Check if list is empty. Return Value: True if list counter is 0 else False. ==================================================================== */ int list_empty( List *list ) { return list->count == 0; } /* ==================================================================== Return entry containing the passed item. Return Value: True if entry found else False. ==================================================================== */ List_Entry *list_entry( List *list, void *item ) { List_Entry *entry = list->head.next; while ( entry != &list->tail ) { if ( entry->item == item ) return entry; entry = entry->next; } return 0; } /* ==================================================================== Transfer an entry from one list to another list by removing from 'source' and adding to 'dest' thus if source does not contain the item this is equvalent to list_add( dest, item ). ==================================================================== */ void list_transfer( List *source, List *dest, void *item ) { int old_auto_flag; /* add to destination */ list_add( dest, item ); /* as the pointer is added to dest without changes only the empty entry must be deleted in source */ old_auto_flag = source->auto_delete; source->auto_delete = LIST_NO_AUTO_DELETE; list_delete_item( source, item ); source->auto_delete = old_auto_flag; } /* ==================================================================== Deqeue the first list entry. (must not use auto_delete therefore) ==================================================================== */ void *list_dequeue( List *list ) { void *item; if ( list->count > 0 ) { item = list->head.next->item; list_delete_pos( list, 0 ); return item; } else return 0; } lgeneral-1.3.1/lgeneral-redit/src/callbacks.h0000664000175000017500000000657412140770456016027 00000000000000#include void on_file_activate (GtkMenuItem *menuitem, gpointer user_data); void on_load_activate (GtkMenuItem *menuitem, gpointer user_data); void on_save_activate (GtkMenuItem *menuitem, gpointer user_data); void on_build_activate (GtkMenuItem *menuitem, gpointer user_data); void on_quit_activate (GtkMenuItem *menuitem, gpointer user_data); void on_scenarios_select_row (GtkCList *clist, gint row, gint column, GdkEvent *event, gpointer user_data); void on_players_changed (GtkEditable *editable, gpointer user_data); void on_classes_changed (GtkEditable *editable, gpointer user_data); void on_units_select_row (GtkCList *clist, gint row, gint column, GdkEvent *event, gpointer user_data); void on_transporters_select_row (GtkCList *clist, gint row, gint column, GdkEvent *event, gpointer user_data); void on_add_clicked (GtkButton *button, gpointer user_data); void on_remove_clicked (GtkButton *button, gpointer user_data); void on_reinforcements_select_row (GtkCList *clist, gint row, gint column, GdkEvent *event, gpointer user_data); gboolean on_reinforcements_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data); gboolean on_reinforcements_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data); void on_replace_clicked (GtkButton *button, gpointer user_data); void on_remove_clicked (GtkButton *button, gpointer user_data); void on_window_destroy (GtkObject *object, gpointer user_data); lgeneral-1.3.1/lgeneral-redit/src/callbacks.c0000664000175000017500000002205412140770456016011 00000000000000#ifdef HAVE_CONFIG_H # include #endif #include #include #include #include "callbacks.h" #include "interface.h" #include "support.h" #include "parser.h" #include "misc.h" extern GtkWidget *window; extern List *unitlib[2][CLASS_COUNT]; extern List *trplib[2]; extern List *reinf[2][SCEN_COUNT]; extern int cur_scen, cur_player, cur_class, cur_unit, cur_trp; extern int cur_pin, cur_reinf; extern char *unit_classes[]; extern char *scenarios[]; void on_file_activate (GtkMenuItem *menuitem, gpointer user_data) { } void on_load_activate (GtkMenuItem *menuitem, gpointer user_data) { load_reinf(); } void on_save_activate (GtkMenuItem *menuitem, gpointer user_data) { save_reinf(); } void on_build_activate (GtkMenuItem *menuitem, gpointer user_data) { save_reinf(); build_reinf(); } void on_quit_activate (GtkMenuItem *menuitem, gpointer user_data) { finalize(); gtk_exit( 0 ); } void on_scenarios_select_row (GtkCList *clist, gint row, gint column, GdkEvent *event, gpointer user_data) { gchar aux[64]; GtkWidget *widget = lookup_widget( window, "add_label" ); if ( widget ) { snprintf( aux, 64, "Add Unit For %s", scenarios[row] ); gtk_label_set_text( GTK_LABEL(widget), aux ); } cur_scen = row; cur_reinf = -1; update_reinf_list( cur_scen, cur_player ); } void on_players_changed (GtkEditable *editable, gpointer user_data) { gchar *text = gtk_editable_get_chars( editable, 0, -1 ); if ( STRCMP( text, "Axis" ) ) cur_player = AXIS; else cur_player = ALLIES; cur_reinf = -1; cur_unit = -1; cur_trp = -1; update_unit_list( cur_player, cur_class ); update_trp_list( cur_player ); update_reinf_list( cur_scen, cur_player ); g_free( text ); } void on_classes_changed (GtkEditable *editable, gpointer user_data) { int i; gchar *text = gtk_editable_get_chars( editable, 0, -1 ); for ( i = 0; i < CLASS_COUNT; i++ ) if ( STRCMP( text, unit_classes[i * 2 + 1] ) ) { cur_class = i; cur_unit = -1; update_unit_list( cur_player, cur_class ); } g_free( text ); } void on_units_select_row (GtkCList *clist, gint row, gint column, GdkEvent *event, gpointer user_data) { cur_unit = row; } void on_transporters_select_row (GtkCList *clist, gint row, gint column, GdkEvent *event, gpointer user_data) { cur_trp = row; } void on_add_clicked (GtkButton *button, gpointer user_data) { GtkWidget *widget; GtkEditable *editable; gchar *text; UnitLib_Entry *entry, *trp_entry = 0; Unit *unit; if ( cur_unit == -1 ) return; unit = calloc( 1, sizeof( Unit ) ); if ( unit ) { unit->delay = 1; unit->str = 10; unit->exp = 0; /* pin */ unit->pin = cur_pin++; /* id */ entry = list_get( unitlib[cur_player][cur_class], cur_unit ); unit->uid = entry->nid; strcpy_lt( unit->id, entry->id, 7 ); /* trsp id */ if ( cur_trp > 0 ) { trp_entry = list_get( trplib[cur_player], cur_trp ); unit->tid = trp_entry->nid; strcpy_lt( unit->trp, trp_entry->id, 7 ); } else { unit->tid = -1; strcpy( unit->trp, "none" ); } /* delay */ if ( ( widget = lookup_widget( window, "delay" ) ) ) unit->delay = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( widget ) ); /* strength */ if ( ( widget = lookup_widget( window, "strength" ) ) ) { editable = GTK_EDITABLE( GTK_COMBO(widget)->entry ); text = gtk_editable_get_chars( editable, 0, -1 ); unit->str = atoi( text ); g_free( text ); } /* experience */ if ( ( widget = lookup_widget( window, "exp" ) ) ) { editable = GTK_EDITABLE( GTK_COMBO(widget)->entry ); text = gtk_editable_get_chars( editable, 0, -1 ); unit->exp = atoi( text ); g_free( text ); } /* nation (-1 == auto) */ unit->nation = -1; /* build info string */ build_unit_info( unit, cur_player ); /* save list settings to restore from reinf list */ unit->class_id = cur_class; unit->unit_id = cur_unit; unit->trp_id = cur_trp; /* add */ insert_reinf_unit( unit, cur_player, cur_scen ); update_reinf_list( cur_scen, cur_player ); } } void on_remove_clicked (GtkButton *button, gpointer user_data) { if ( cur_reinf == -1 ) return; list_delete_pos( reinf[cur_player][cur_scen], cur_reinf ); update_reinf_list( cur_scen, cur_player ); cur_reinf = -1; } void on_reinforcements_select_row (GtkCList *clist, gint row, gint column, GdkEvent *event, gpointer user_data) { GtkWidget *widget; Unit *unit; int pin, i; gchar *text, *hash; gchar aux[16]; gtk_clist_get_text( clist, row, 0, &text ); hash = strrchr( text, '#' ); hash++; pin = atoi( hash ); i = 0; cur_reinf = -1; list_reset( reinf[cur_player][cur_scen] ); while ( ( unit = list_next( reinf[cur_player][cur_scen] ) ) ) { if ( unit->pin == pin ) { cur_reinf = i; /* set unit class */ if ( ( widget = lookup_widget( window, "classes" ) ) ) { cur_class = unit->class_id; gtk_entry_set_text( GTK_ENTRY( GTK_COMBO(widget)->entry ), unit_classes[unit->class_id * 2 + 1] ); update_unit_list( cur_player, cur_class ); } /* set unit type */ if ( ( widget = lookup_widget( window, "units" ) ) ) gtk_clist_select_row( GTK_CLIST(widget), unit->unit_id, 0 ); /* set transporter type */ if ( unit->trp_id == -1 ) unit->trp_id = 0; if ( ( widget = lookup_widget( window, "transporters" ) ) ) gtk_clist_select_row( GTK_CLIST(widget), unit->trp_id, 0 ); /* set delay, strength ,experience */ if ( ( widget = lookup_widget( window, "delay" ) ) ) { gtk_spin_button_set_value( GTK_SPIN_BUTTON(widget), unit->delay ); } if ( ( widget = lookup_widget( window, "strength" ) ) ) { sprintf( aux, "%i", unit->str ); gtk_entry_set_text( GTK_ENTRY( GTK_COMBO(widget)->entry ), aux ); } if ( ( widget = lookup_widget( window, "exp" ) ) ) { sprintf( aux, "%i", unit->exp ); gtk_entry_set_text( GTK_ENTRY( GTK_COMBO(widget)->entry ), aux ); } break; } i++; } } gboolean on_reinforcements_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data) { if ( cur_reinf == -1 ) return FALSE; list_delete_pos( reinf[cur_player][cur_scen], cur_reinf ); update_reinf_list( cur_scen, cur_player ); cur_reinf = -1; return FALSE; } void on_replace_clicked (GtkButton *button, gpointer user_data) { if ( cur_reinf == -1 ) return; list_delete_pos( reinf[cur_player][cur_scen], cur_reinf ); on_add_clicked( 0, 0 ); update_reinf_list( cur_scen, cur_player ); cur_reinf = -1; } void on_window_destroy (GtkObject *object, gpointer user_data) { finalize(); gtk_exit( 0 ); } lgeneral-1.3.1/lgeneral-redit/src/Makefile.am0000664000175000017500000000044012140770456015755 00000000000000INCLUDES = @GTK_CFLAGS@ bin_PROGRAMS = lgeneral-redit lgeneral_redit_SOURCES = \ main.c \ support.c support.h \ interface.c interface.h \ callbacks.c callbacks.h \ misc.h misc.c parser.h parser.c list.h list.c \ reinf.rc lgeneral_redit_LDADD = @GTK_LIBS@ lgeneral-1.3.1/lgeneral-redit/src/list.h0000664000175000017500000001704012140770456015051 00000000000000/*************************************************************************** list.h - description ------------------- begin : Sun Sep 2 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __LIST_H #define __LIST_H #ifdef __cplusplus extern "C" { #endif /* ==================================================================== Dynamic list handling data as void pointers. ==================================================================== */ typedef struct _List_Entry { struct _List_Entry *next; struct _List_Entry *prev; void *item; } List_Entry; typedef struct { int auto_delete; int count; List_Entry head; List_Entry tail; void (*callback)(void*); List_Entry *cur_entry; } List; /* ==================================================================== Create a new list auto_delete: Free memory of data pointer when deleting entry callback: Use this callback to free memory of data including the data pointer itself. Return Value: List pointer ==================================================================== */ enum { LIST_NO_AUTO_DELETE = 0, LIST_AUTO_DELETE }; enum { LIST_NO_CALLBACK = 0 }; List *list_create( int auto_delete, void (*callback)(void*) ); /* ==================================================================== Delete list and entries. ==================================================================== */ void list_delete( List *list ); /* ==================================================================== Delete all entries but keep the list. Reset current_entry to head pointer. ==================================================================== */ void list_clear( List *list ); /* ==================================================================== Insert new item at position. Return Value: True if successful else False. ==================================================================== */ int list_insert( List *list, void *item, int pos ); /* ==================================================================== Add new item at the end of the list. ==================================================================== */ int list_add( List *list, void *item ); /* ==================================================================== Delete item at pos. If this was the current entry update current_entry to valid previous pointer. Return Value: True if successful else False. ==================================================================== */ int list_delete_pos( List *list, int pos ); /* ==================================================================== Delete item if in list. If this was the current entry update current_entry to valid previous pointer. Return Value: True if successful else False. ==================================================================== */ int list_delete_item( List *list, void *item ); /* ==================================================================== Delete entry. ==================================================================== */ int list_delete_entry( List *list, List_Entry *entry ); /* ==================================================================== Get item from position if in list. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_get( List *list, int pos ); /* ==================================================================== Check if item's in list. Return Value: Position of item else -1. ==================================================================== */ int list_check( List *list, void *item ); /* ==================================================================== Return first item stored in list and set current_entry to this entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_first( List *list ); /* ==================================================================== Return last item stored in list and set current_entry to this entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_last( List *list ); /* ==================================================================== Return item in current_entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_current( List *list ); /* ==================================================================== Reset current_entry to head of list. ==================================================================== */ void list_reset( List *list ); /* ==================================================================== Get next item and update current_entry (reset if tail reached). Return Value: Item pointer if found else Null (if tail of list). ==================================================================== */ void* list_next( List *list ); /* ==================================================================== Get previous item and update current_entry. Return Value: Item pointer if found else Null (if head of list). ==================================================================== */ void* list_prev( List *list ); /* ==================================================================== Delete the current entry if not tail or head. This is the entry that contains the last returned item by list_next/prev(). Return Value: True if it was a valid deleteable entry. ==================================================================== */ int list_delete_current( List *list ); /* ==================================================================== Check if list is empty. Return Value: True if list counter is 0 else False. ==================================================================== */ int list_empty( List *list ); /* ==================================================================== Return entry containing the passed item. Return Value: True if entry found else False. ==================================================================== */ List_Entry *list_entry( List *list, void *item ); /* ==================================================================== Transfer an entry from one list to another list by removing from 'source' and adding to 'dest' thus if source does not contain the item this is equvalent to list_add( dest, item ). ==================================================================== */ void list_transfer( List *source, List *dest, void *item ); /* ==================================================================== Deqeue the first list entry. (must not use auto_delete therefore) ==================================================================== */ void *list_dequeue( List *list ); #ifdef __cplusplus }; #endif #endif lgeneral-1.3.1/lgeneral-redit/src/main.c0000664000175000017500000000157412140770456015022 00000000000000/* * Anfängliche Datei main.c, erzeugt durch Glade. Bearbeiten Sie * Sie, wie Sie wollen. Glade wird diese Datei nicht überschreiben. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include "interface.h" #include "support.h" #include "list.h" #include "misc.h" GtkWidget *window; int main (int argc, char *argv[]) { gtk_set_locale (); gtk_init (&argc, &argv); add_pixmap_directory (PACKAGE_DATA_DIR "/pixmaps"); add_pixmap_directory (PACKAGE_SOURCE_DIR "/pixmaps"); /* * The following code was added by Glade to create one of each component * (except popup menus), just so that you see something after building * the project. Delete any components that you don't want shown initially. */ window = create_window (); init(); gtk_widget_show (window); gtk_main (); return 0; } lgeneral-1.3.1/lgeneral-redit/src/reinf.rc0000664000175000017500000000744112140770456015362 00000000000000Poland 0 1 3,118,none,10,0,0,0,-1,15 Warsaw 3 1,11,none,10,0,8,0,0,7 1,38,none,10,1,1,6,0,7 1,0,none,10,0,7,0,0,7 3 2,118,none,10,0,0,0,-1,15 3,118,none,10,0,0,0,-1,15 5,118,none,10,0,0,0,-1,15 Norway 2 1,0,none,10,1,7,0,-1,7 1,11,none,10,0,8,0,-1,7 2 3,149,none,10,0,0,5,-1,-1 3,149,none,10,0,0,5,-1,-1 LowCountries 13 1,0,none,10,0,7,0,0,7 1,0,none,10,0,7,0,0,7 1,0,none,10,0,7,0,0,7 1,0,none,10,0,7,0,0,7 2,19,none,10,0,8,8,0,7 2,19,none,10,0,8,8,0,7 2,11,none,10,0,8,0,0,7 6,104,none,10,0,0,1,0,7 6,104,none,10,0,0,1,0,7 7,104,none,10,0,0,1,0,7 7,104,none,10,0,0,1,0,7 8,104,none,10,0,0,1,0,7 8,104,none,10,0,0,1,0,7 0 France 10 1,0,none,10,1,7,0,0,7 1,11,none,10,1,8,0,0,7 2,19,none,10,1,8,8,0,7 2,0,none,10,1,7,0,0,7 2,47,86,10,1,0,0,2,7 3,104,none,10,0,0,1,0,7 3,104,none,10,0,0,1,0,7 3,104,none,10,0,0,1,0,7 3,104,none,10,0,0,1,0,7 2,38,none,10,1,1,6,0,7 0 Sealion40 0 0 NorthAfrica 0 0 MiddleEast 0 0 ElAlamein 0 0 Caucasus 0 0 Sealion43 0 0 Torch 0 0 Husky 0 0 Anzio 0 0 D-Day 0 0 Anvil 0 0 Ardennes 0 53 16,379,354,10,2,0,21,7,9 16,379,354,10,2,0,21,7,9 16,386,354,10,2,0,28,7,9 16,371,none,10,2,4,21,0,9 16,376,none,10,2,1,56,0,9 16,355,none,10,2,1,46,0,9 16,377,none,10,2,3,19,0,9 16,363,none,10,2,1,52,0,9 16,367,none,10,2,4,19,0,9 3,393,none,12,3,4,24,0,9 2,393,none,12,3,4,24,0,9 2,390,none,13,3,3,22,0,9 16,339,none,10,3,7,31,0,9 16,343,none,10,3,7,35,0,9 16,347,none,10,3,8,17,0,9 16,347,none,10,3,8,17,0,9 16,346,none,10,3,8,16,0,9 16,346,none,10,3,8,16,0,9 18,377,none,12,3,3,19,0,9 18,364,none,10,3,1,53,0,9 18,364,none,10,3,1,53,0,9 18,363,none,10,3,1,52,0,9 18,363,none,10,3,1,52,0,9 18,376,none,10,3,1,56,0,9 18,376,none,10,3,1,56,0,9 18,371,none,10,3,4,21,0,9 18,368,none,10,3,4,20,0,9 18,368,none,10,3,4,20,0,9 18,384,354,12,3,0,26,7,9 18,386,354,12,3,0,28,7,9 18,386,354,12,3,0,28,7,9 18,386,354,12,3,0,28,7,9 18,383,354,12,3,0,25,7,9 18,383,354,12,3,0,25,7,9 24,213,210,13,3,0,8,4,22 24,213,210,13,3,0,8,4,22 24,226,210,10,3,0,11,4,22 24,202,none,10,3,4,7,0,22 24,202,none,10,3,4,7,0,22 24,192,none,10,3,1,23,0,22 24,192,none,10,3,1,23,0,22 24,198,none,10,3,1,29,0,22 24,198,none,10,3,1,29,0,22 24,189,none,10,3,1,20,0,22 24,199,none,13,3,3,4,7,22 24,199,none,13,3,3,4,7,22 24,200,none,13,3,3,5,7,22 16,212,209,10,2,0,7,3,22 16,212,209,10,2,0,7,3,22 16,198,none,10,2,1,29,0,22 16,191,none,10,2,1,22,0,22 16,201,none,10,2,4,6,0,22 16,202,none,10,2,4,7,0,22 Cobra 0 0 MarketGarden 0 0 BerlinWest 0 0 Balkans 0 0 Crete 6 3,0,none,10,1,7,0,0,7 3,0,none,10,2,7,0,0,7 3,25,none,10,2,9,3,0,7 3,25,none,10,2,9,3,0,7 4,21,none,10,2,8,10,0,7 4,21,none,10,2,8,10,0,7 0 Barbarossa 9 1,1,none,10,2,7,1,0,7 1,1,none,10,1,7,1,0,7 2,12,none,10,2,8,1,0,7 2,21,none,10,2,8,10,-1,7 12,48,none,10,1,1,14,0,-1 7,44,none,10,1,1,11,0,-1 7,104,85,10,1,0,1,1,-1 12,104,85,10,1,0,1,1,-1 2,1,none,10,2,7,1,0,-1 8 13,273,none,10,0,0,14,0,-1 21,273,none,10,0,0,14,-1,-1 21,273,none,10,0,0,14,-1,-1 19,273,none,10,0,0,14,-1,-1 17,273,none,10,0,0,14,-1,-1 15,273,none,10,0,0,14,-1,-1 13,273,none,10,0,0,14,-1,-1 13,273,none,10,0,0,14,0,-1 Kiev 7 18,104,86,10,1,0,1,2,-1 18,104,86,10,1,0,1,2,-1 18,48,none,10,1,1,14,0,-1 18,45,none,10,2,1,12,0,-1 1,104,none,10,0,0,1,-1,-1 1,104,none,10,0,0,1,-1,-1 1,104,none,10,0,0,1,-1,-1 12 22,250,none,10,1,1,33,0,-1 19,250,none,10,0,1,33,0,-1 19,273,none,10,0,0,14,0,-1 19,273,none,10,0,0,14,0,-1 11,272,none,10,0,0,13,0,-1 11,273,none,10,0,0,14,0,-1 8,273,none,10,0,0,14,0,-1 8,278,none,10,0,3,16,0,-1 6,273,none,10,0,0,14,0,-1 6,278,none,10,0,3,16,0,-1 4,273,none,10,0,0,14,0,-1 4,273,none,10,0,0,14,0,-1 Moscow41 0 0 Sevastapol 6 8,76,none,11,3,4,4,0,7 8,76,none,11,3,4,4,0,7 8,100,87,11,3,4,11,3,7 8,100,87,11,3,4,11,3,7 8,100,87,12,3,4,11,3,7 8,100,87,12,3,4,11,3,7 0 Moscow42 0 0 Stalingrad 0 0 Kharkov 0 0 Kursk 0 0 Moscow43 0 0 Byelorussia 0 0 Budapest 0 0 BerlinEast 0 0 Berlin 0 0 Washington 0 0 EarlyMoscow 0 0 SealionPlus 0 0 lgeneral-1.3.1/lgeneral-redit/src/support.c0000664000175000017500000001073012140770456015604 00000000000000/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include "support.h" /* This is an internally used function to check if a pixmap file exists. */ static gchar* check_file_exists (const gchar *directory, const gchar *filename); /* This is an internally used function to create pixmaps. */ static GtkWidget* create_dummy_pixmap (GtkWidget *widget); GtkWidget* lookup_widget (GtkWidget *widget, const gchar *widget_name) { GtkWidget *parent, *found_widget; for (;;) { if (GTK_IS_MENU (widget)) parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); else parent = widget->parent; if (parent == NULL) break; widget = parent; } found_widget = (GtkWidget*) gtk_object_get_data (GTK_OBJECT (widget), widget_name); if (!found_widget) g_warning ("Widget not found: %s", widget_name); return found_widget; } /* This is a dummy pixmap we use when a pixmap can't be found. */ static char *dummy_pixmap_xpm[] = { /* columns rows colors chars-per-pixel */ "1 1 1 1", " c None", /* pixels */ " " }; /* This is an internally used function to create pixmaps. */ static GtkWidget* create_dummy_pixmap (GtkWidget *widget) { GdkColormap *colormap; GdkPixmap *gdkpixmap; GdkBitmap *mask; GtkWidget *pixmap; colormap = gtk_widget_get_colormap (widget); gdkpixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &mask, NULL, dummy_pixmap_xpm); if (gdkpixmap == NULL) g_error ("Couldn't create replacement pixmap."); pixmap = gtk_pixmap_new (gdkpixmap, mask); gdk_pixmap_unref (gdkpixmap); gdk_bitmap_unref (mask); return pixmap; } static GList *pixmaps_directories = NULL; /* Use this function to set the directory containing installed pixmaps. */ void add_pixmap_directory (const gchar *directory) { pixmaps_directories = g_list_prepend (pixmaps_directories, g_strdup (directory)); } /* This is an internally used function to create pixmaps. */ GtkWidget* create_pixmap (GtkWidget *widget, const gchar *filename) { gchar *found_filename = NULL; GdkColormap *colormap; GdkPixmap *gdkpixmap; GdkBitmap *mask; GtkWidget *pixmap; GList *elem; if (!filename || !filename[0]) return create_dummy_pixmap (widget); /* We first try any pixmaps directories set by the application. */ elem = pixmaps_directories; while (elem) { found_filename = check_file_exists ((gchar*)elem->data, filename); if (found_filename) break; elem = elem->next; } /* If we haven't found the pixmap, try the source directory. */ if (!found_filename) { found_filename = check_file_exists ("../pixmaps", filename); } if (!found_filename) { g_warning ("Couldn't find pixmap file: %s", filename); return create_dummy_pixmap (widget); } colormap = gtk_widget_get_colormap (widget); gdkpixmap = gdk_pixmap_colormap_create_from_xpm (NULL, colormap, &mask, NULL, found_filename); if (gdkpixmap == NULL) { g_warning ("Error loading pixmap file: %s", found_filename); g_free (found_filename); return create_dummy_pixmap (widget); } g_free (found_filename); pixmap = gtk_pixmap_new (gdkpixmap, mask); gdk_pixmap_unref (gdkpixmap); gdk_bitmap_unref (mask); return pixmap; } /* This is an internally used function to check if a pixmap file exists. */ gchar* check_file_exists (const gchar *directory, const gchar *filename) { gchar *full_filename; struct stat s; gint status; full_filename = (gchar*) g_malloc (strlen (directory) + 1 + strlen (filename) + 1); strcpy (full_filename, directory); strcat (full_filename, G_DIR_SEPARATOR_S); strcat (full_filename, filename); status = stat (full_filename, &s); if (status == 0 && S_ISREG (s.st_mode)) return full_filename; g_free (full_filename); return NULL; } lgeneral-1.3.1/lgeneral-redit/src/interface.c0000664000175000017500000005504212140770456016035 00000000000000/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include "callbacks.h" #include "interface.h" #include "support.h" GtkWidget* create_window (void) { GtkWidget *window; GtkWidget *vbox3; GtkWidget *menu; GtkWidget *file; GtkWidget *file_menu; GtkAccelGroup *file_menu_accels; GtkWidget *load; GtkWidget *save; GtkWidget *build; GtkWidget *trennlinie2; GtkWidget *quit; GtkWidget *hbox1; GtkWidget *vbox4; GtkWidget *scrolledwindow2; GtkWidget *scenarios; GtkWidget *label18; GtkWidget *vbox5; GtkWidget *vbox6; GtkWidget *hbox2; GtkWidget *vbox7; GtkWidget *add_label; GtkWidget *hbox3; GtkWidget *vbox8; GtkWidget *players; GList *players_items = NULL; GtkWidget *players_entry; GtkWidget *classes; GList *classes_items = NULL; GtkWidget *classes_entry; GtkWidget *scrolledwindow4; GtkWidget *units; GtkWidget *label21; GtkWidget *scrolledwindow5; GtkWidget *transporters; GtkWidget *label22; GtkWidget *vbox9; GtkWidget *table1; GtkWidget *label23; GtkWidget *label24; GtkWidget *label25; GtkWidget *exp; GList *exp_items = NULL; GtkWidget *exp_entry; GtkWidget *strength; GList *strength_items = NULL; GtkWidget *strength_entry; GtkObject *delay_adj; GtkWidget *delay; GtkWidget *add; GtkWidget *replace; GtkWidget *remove; GtkWidget *reinforcements; GtkWidget *label19; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_object_set_data (GTK_OBJECT (window), "window", window); gtk_window_set_title (GTK_WINDOW (window), "Reinforcements Editor"); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); vbox3 = gtk_vbox_new (FALSE, 0); gtk_widget_ref (vbox3); gtk_object_set_data_full (GTK_OBJECT (window), "vbox3", vbox3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox3); gtk_container_add (GTK_CONTAINER (window), vbox3); menu = gtk_menu_bar_new (); gtk_widget_ref (menu); gtk_object_set_data_full (GTK_OBJECT (window), "menu", menu, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (menu); gtk_box_pack_start (GTK_BOX (vbox3), menu, FALSE, FALSE, 0); file = gtk_menu_item_new_with_label ("File"); gtk_widget_ref (file); gtk_object_set_data_full (GTK_OBJECT (window), "file", file, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (file); gtk_container_add (GTK_CONTAINER (menu), file); file_menu = gtk_menu_new (); gtk_widget_ref (file_menu); gtk_object_set_data_full (GTK_OBJECT (window), "file_menu", file_menu, (GtkDestroyNotify) gtk_widget_unref); gtk_menu_item_set_submenu (GTK_MENU_ITEM (file), file_menu); file_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (file_menu)); load = gtk_menu_item_new_with_label ("Load"); gtk_widget_ref (load); gtk_object_set_data_full (GTK_OBJECT (window), "load", load, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (load); gtk_container_add (GTK_CONTAINER (file_menu), load); save = gtk_menu_item_new_with_label ("Save"); gtk_widget_ref (save); gtk_object_set_data_full (GTK_OBJECT (window), "save", save, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (save); gtk_container_add (GTK_CONTAINER (file_menu), save); build = gtk_menu_item_new_with_label ("Build"); gtk_widget_ref (build); gtk_object_set_data_full (GTK_OBJECT (window), "build", build, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (build); gtk_container_add (GTK_CONTAINER (file_menu), build); trennlinie2 = gtk_menu_item_new (); gtk_widget_ref (trennlinie2); gtk_object_set_data_full (GTK_OBJECT (window), "trennlinie2", trennlinie2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (trennlinie2); gtk_container_add (GTK_CONTAINER (file_menu), trennlinie2); gtk_widget_set_sensitive (trennlinie2, FALSE); quit = gtk_menu_item_new_with_label ("Quit"); gtk_widget_ref (quit); gtk_object_set_data_full (GTK_OBJECT (window), "quit", quit, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (quit); gtk_container_add (GTK_CONTAINER (file_menu), quit); hbox1 = gtk_hbox_new (FALSE, 5); gtk_widget_ref (hbox1); gtk_object_set_data_full (GTK_OBJECT (window), "hbox1", hbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox3), hbox1, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox1), 4); vbox4 = gtk_vbox_new (FALSE, 0); gtk_widget_ref (vbox4); gtk_object_set_data_full (GTK_OBJECT (window), "vbox4", vbox4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox4); gtk_box_pack_start (GTK_BOX (hbox1), vbox4, TRUE, TRUE, 0); scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_ref (scrolledwindow2); gtk_object_set_data_full (GTK_OBJECT (window), "scrolledwindow2", scrolledwindow2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scrolledwindow2); gtk_box_pack_start (GTK_BOX (vbox4), scrolledwindow2, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); scenarios = gtk_clist_new (1); gtk_widget_ref (scenarios); gtk_object_set_data_full (GTK_OBJECT (window), "scenarios", scenarios, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scenarios); gtk_container_add (GTK_CONTAINER (scrolledwindow2), scenarios); gtk_widget_set_usize (scenarios, 130, -2); gtk_container_set_border_width (GTK_CONTAINER (scenarios), 2); gtk_clist_set_column_width (GTK_CLIST (scenarios), 0, 80); gtk_clist_column_titles_show (GTK_CLIST (scenarios)); label18 = gtk_label_new ("Scenario"); gtk_widget_ref (label18); gtk_object_set_data_full (GTK_OBJECT (window), "label18", label18, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label18); gtk_clist_set_column_widget (GTK_CLIST (scenarios), 0, label18); vbox5 = gtk_vbox_new (FALSE, 0); gtk_widget_ref (vbox5); gtk_object_set_data_full (GTK_OBJECT (window), "vbox5", vbox5, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox5); gtk_box_pack_start (GTK_BOX (hbox1), vbox5, TRUE, TRUE, 0); vbox6 = gtk_vbox_new (FALSE, 0); gtk_widget_ref (vbox6); gtk_object_set_data_full (GTK_OBJECT (window), "vbox6", vbox6, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox6); gtk_box_pack_start (GTK_BOX (vbox5), vbox6, TRUE, TRUE, 0); hbox2 = gtk_hbox_new (FALSE, 0); gtk_widget_ref (hbox2); gtk_object_set_data_full (GTK_OBJECT (window), "hbox2", hbox2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox2); gtk_box_pack_start (GTK_BOX (vbox6), hbox2, TRUE, TRUE, 0); vbox7 = gtk_vbox_new (FALSE, 0); gtk_widget_ref (vbox7); gtk_object_set_data_full (GTK_OBJECT (window), "vbox7", vbox7, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox7); gtk_box_pack_start (GTK_BOX (hbox2), vbox7, TRUE, TRUE, 0); add_label = gtk_label_new ("Add Unit For Poland"); gtk_widget_ref (add_label); gtk_object_set_data_full (GTK_OBJECT (window), "add_label", add_label, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (add_label); gtk_box_pack_start (GTK_BOX (vbox7), add_label, FALSE, FALSE, 0); hbox3 = gtk_hbox_new (FALSE, 2); gtk_widget_ref (hbox3); gtk_object_set_data_full (GTK_OBJECT (window), "hbox3", hbox3, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox3); gtk_box_pack_start (GTK_BOX (vbox7), hbox3, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox3), 2); vbox8 = gtk_vbox_new (FALSE, 0); gtk_widget_ref (vbox8); gtk_object_set_data_full (GTK_OBJECT (window), "vbox8", vbox8, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox8); gtk_box_pack_start (GTK_BOX (hbox3), vbox8, TRUE, TRUE, 0); players = gtk_combo_new (); gtk_widget_ref (players); gtk_object_set_data_full (GTK_OBJECT (window), "players", players, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (players); gtk_box_pack_start (GTK_BOX (vbox8), players, FALSE, FALSE, 0); players_items = g_list_append (players_items, (gpointer) "Axis"); players_items = g_list_append (players_items, (gpointer) "Allies"); gtk_combo_set_popdown_strings (GTK_COMBO (players), players_items); g_list_free (players_items); players_entry = GTK_COMBO (players)->entry; gtk_widget_ref (players_entry); gtk_object_set_data_full (GTK_OBJECT (window), "players_entry", players_entry, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (players_entry); gtk_entry_set_editable (GTK_ENTRY (players_entry), FALSE); gtk_entry_set_text (GTK_ENTRY (players_entry), "Axis"); classes = gtk_combo_new (); gtk_widget_ref (classes); gtk_object_set_data_full (GTK_OBJECT (window), "classes", classes, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (classes); gtk_box_pack_start (GTK_BOX (vbox8), classes, FALSE, FALSE, 0); classes_items = g_list_append (classes_items, (gpointer) "Infantry"); classes_items = g_list_append (classes_items, (gpointer) "Tank"); classes_items = g_list_append (classes_items, (gpointer) "Recon"); classes_items = g_list_append (classes_items, (gpointer) "Anti-Tank"); classes_items = g_list_append (classes_items, (gpointer) "Artillery"); classes_items = g_list_append (classes_items, (gpointer) "Anti-Aircraft"); classes_items = g_list_append (classes_items, (gpointer) "Air-Defense"); classes_items = g_list_append (classes_items, (gpointer) "Fighter"); classes_items = g_list_append (classes_items, (gpointer) "Tactical Bomber"); classes_items = g_list_append (classes_items, (gpointer) "Level Bomber"); classes_items = g_list_append (classes_items, (gpointer) "Submarine"); classes_items = g_list_append (classes_items, (gpointer) "Destroyer"); classes_items = g_list_append (classes_items, (gpointer) "Capital Ship"); classes_items = g_list_append (classes_items, (gpointer) "Aircraft Carrier"); gtk_combo_set_popdown_strings (GTK_COMBO (classes), classes_items); g_list_free (classes_items); classes_entry = GTK_COMBO (classes)->entry; gtk_widget_ref (classes_entry); gtk_object_set_data_full (GTK_OBJECT (window), "classes_entry", classes_entry, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (classes_entry); gtk_entry_set_editable (GTK_ENTRY (classes_entry), FALSE); gtk_entry_set_text (GTK_ENTRY (classes_entry), "Infantry"); scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_ref (scrolledwindow4); gtk_object_set_data_full (GTK_OBJECT (window), "scrolledwindow4", scrolledwindow4, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scrolledwindow4); gtk_box_pack_start (GTK_BOX (vbox8), scrolledwindow4, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); units = gtk_clist_new (1); gtk_widget_ref (units); gtk_object_set_data_full (GTK_OBJECT (window), "units", units, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (units); gtk_container_add (GTK_CONTAINER (scrolledwindow4), units); gtk_widget_set_usize (units, 140, 160); gtk_container_set_border_width (GTK_CONTAINER (units), 2); gtk_clist_set_column_width (GTK_CLIST (units), 0, 80); gtk_clist_column_titles_show (GTK_CLIST (units)); label21 = gtk_label_new ("Unit"); gtk_widget_ref (label21); gtk_object_set_data_full (GTK_OBJECT (window), "label21", label21, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label21); gtk_clist_set_column_widget (GTK_CLIST (units), 0, label21); scrolledwindow5 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_ref (scrolledwindow5); gtk_object_set_data_full (GTK_OBJECT (window), "scrolledwindow5", scrolledwindow5, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scrolledwindow5); gtk_box_pack_start (GTK_BOX (vbox8), scrolledwindow5, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow5), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); transporters = gtk_clist_new (1); gtk_widget_ref (transporters); gtk_object_set_data_full (GTK_OBJECT (window), "transporters", transporters, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (transporters); gtk_container_add (GTK_CONTAINER (scrolledwindow5), transporters); gtk_widget_set_usize (transporters, 140, 130); gtk_container_set_border_width (GTK_CONTAINER (transporters), 2); gtk_clist_set_column_width (GTK_CLIST (transporters), 0, 80); gtk_clist_column_titles_show (GTK_CLIST (transporters)); label22 = gtk_label_new ("Transporter"); gtk_widget_ref (label22); gtk_object_set_data_full (GTK_OBJECT (window), "label22", label22, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label22); gtk_clist_set_column_widget (GTK_CLIST (transporters), 0, label22); vbox9 = gtk_vbox_new (FALSE, 0); gtk_widget_ref (vbox9); gtk_object_set_data_full (GTK_OBJECT (window), "vbox9", vbox9, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox9); gtk_box_pack_start (GTK_BOX (hbox3), vbox9, TRUE, TRUE, 0); table1 = gtk_table_new (3, 2, TRUE); gtk_widget_ref (table1); gtk_object_set_data_full (GTK_OBJECT (window), "table1", table1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table1); gtk_box_pack_start (GTK_BOX (vbox9), table1, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (table1), 2); gtk_table_set_row_spacings (GTK_TABLE (table1), 2); gtk_table_set_col_spacings (GTK_TABLE (table1), 2); label23 = gtk_label_new ("Delay:"); gtk_widget_ref (label23); gtk_object_set_data_full (GTK_OBJECT (window), "label23", label23, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label23); gtk_table_attach (GTK_TABLE (table1), label23, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label23), 0, 0.5); label24 = gtk_label_new ("Strength:"); gtk_widget_ref (label24); gtk_object_set_data_full (GTK_OBJECT (window), "label24", label24, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label24); gtk_table_attach (GTK_TABLE (table1), label24, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label24), 0, 0.5); label25 = gtk_label_new ("Experience:"); gtk_widget_ref (label25); gtk_object_set_data_full (GTK_OBJECT (window), "label25", label25, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label25); gtk_table_attach (GTK_TABLE (table1), label25, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label25), 0, 0.5); exp = gtk_combo_new (); gtk_widget_ref (exp); gtk_object_set_data_full (GTK_OBJECT (window), "exp", exp, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (exp); gtk_table_attach (GTK_TABLE (table1), exp, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); exp_items = g_list_append (exp_items, (gpointer) "0"); exp_items = g_list_append (exp_items, (gpointer) "1"); exp_items = g_list_append (exp_items, (gpointer) "2"); exp_items = g_list_append (exp_items, (gpointer) "3"); exp_items = g_list_append (exp_items, (gpointer) "4"); exp_items = g_list_append (exp_items, (gpointer) "5"); gtk_combo_set_popdown_strings (GTK_COMBO (exp), exp_items); g_list_free (exp_items); exp_entry = GTK_COMBO (exp)->entry; gtk_widget_ref (exp_entry); gtk_object_set_data_full (GTK_OBJECT (window), "exp_entry", exp_entry, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (exp_entry); gtk_entry_set_editable (GTK_ENTRY (exp_entry), FALSE); gtk_entry_set_text (GTK_ENTRY (exp_entry), "0"); strength = gtk_combo_new (); gtk_widget_ref (strength); gtk_object_set_data_full (GTK_OBJECT (window), "strength", strength, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (strength); gtk_table_attach (GTK_TABLE (table1), strength, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); strength_items = g_list_append (strength_items, (gpointer) "5"); strength_items = g_list_append (strength_items, (gpointer) "8"); strength_items = g_list_append (strength_items, (gpointer) "10"); strength_items = g_list_append (strength_items, (gpointer) "12"); strength_items = g_list_append (strength_items, (gpointer) "15"); gtk_combo_set_popdown_strings (GTK_COMBO (strength), strength_items); g_list_free (strength_items); strength_entry = GTK_COMBO (strength)->entry; gtk_widget_ref (strength_entry); gtk_object_set_data_full (GTK_OBJECT (window), "strength_entry", strength_entry, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (strength_entry); gtk_entry_set_text (GTK_ENTRY (strength_entry), "10"); delay_adj = gtk_adjustment_new (1, 1, 100, 1, 10, 10); delay = gtk_spin_button_new (GTK_ADJUSTMENT (delay_adj), 1, 0); gtk_widget_ref (delay); gtk_object_set_data_full (GTK_OBJECT (window), "delay", delay, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (delay); gtk_table_attach (GTK_TABLE (table1), delay, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (delay), TRUE); add = gtk_button_new_with_label ("Add Unit"); gtk_widget_ref (add); gtk_object_set_data_full (GTK_OBJECT (window), "add", add, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (add); gtk_box_pack_start (GTK_BOX (vbox9), add, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (add), 5); replace = gtk_button_new_with_label ("ReplaceUnit"); gtk_widget_ref (replace); gtk_object_set_data_full (GTK_OBJECT (window), "replace", replace, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (replace); gtk_box_pack_start (GTK_BOX (vbox9), replace, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (replace), 5); remove = gtk_button_new_with_label ("Remove Unit"); gtk_widget_ref (remove); gtk_object_set_data_full (GTK_OBJECT (window), "remove", remove, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (remove); gtk_box_pack_start (GTK_BOX (vbox9), remove, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (remove), 5); reinforcements = gtk_clist_new (1); gtk_widget_ref (reinforcements); gtk_object_set_data_full (GTK_OBJECT (window), "reinforcements", reinforcements, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (reinforcements); gtk_box_pack_start (GTK_BOX (vbox9), reinforcements, TRUE, TRUE, 0); gtk_widget_set_usize (reinforcements, -2, 150); gtk_clist_set_column_width (GTK_CLIST (reinforcements), 0, 80); gtk_clist_column_titles_show (GTK_CLIST (reinforcements)); label19 = gtk_label_new ("Reinforcements"); gtk_widget_ref (label19); gtk_object_set_data_full (GTK_OBJECT (window), "label19", label19, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (label19); gtk_clist_set_column_widget (GTK_CLIST (reinforcements), 0, label19); gtk_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC (on_window_destroy), NULL); gtk_signal_connect (GTK_OBJECT (file), "activate", GTK_SIGNAL_FUNC (on_file_activate), NULL); gtk_signal_connect (GTK_OBJECT (load), "activate", GTK_SIGNAL_FUNC (on_load_activate), NULL); gtk_signal_connect (GTK_OBJECT (save), "activate", GTK_SIGNAL_FUNC (on_save_activate), NULL); gtk_signal_connect (GTK_OBJECT (build), "activate", GTK_SIGNAL_FUNC (on_build_activate), NULL); gtk_signal_connect (GTK_OBJECT (quit), "activate", GTK_SIGNAL_FUNC (on_quit_activate), NULL); gtk_signal_connect (GTK_OBJECT (scenarios), "select_row", GTK_SIGNAL_FUNC (on_scenarios_select_row), NULL); gtk_signal_connect (GTK_OBJECT (players_entry), "changed", GTK_SIGNAL_FUNC (on_players_changed), NULL); gtk_signal_connect (GTK_OBJECT (classes_entry), "changed", GTK_SIGNAL_FUNC (on_classes_changed), NULL); gtk_signal_connect (GTK_OBJECT (units), "select_row", GTK_SIGNAL_FUNC (on_units_select_row), NULL); gtk_signal_connect (GTK_OBJECT (transporters), "select_row", GTK_SIGNAL_FUNC (on_transporters_select_row), NULL); gtk_signal_connect (GTK_OBJECT (add), "clicked", GTK_SIGNAL_FUNC (on_add_clicked), NULL); gtk_signal_connect (GTK_OBJECT (replace), "clicked", GTK_SIGNAL_FUNC (on_replace_clicked), NULL); gtk_signal_connect (GTK_OBJECT (remove), "clicked", GTK_SIGNAL_FUNC (on_remove_clicked), NULL); gtk_signal_connect (GTK_OBJECT (reinforcements), "select_row", GTK_SIGNAL_FUNC (on_reinforcements_select_row), NULL); gtk_signal_connect (GTK_OBJECT (reinforcements), "key_press_event", GTK_SIGNAL_FUNC (on_reinforcements_key_press_event), NULL); return window; } lgeneral-1.3.1/lgeneral-redit/depcomp0000775000175000017500000003554512140770456014525 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2004-05-31.23 # Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit 0 ;; -v | --v*) echo "depcomp $scriptversion" exit 0 ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # Dependencies are output in .lo.d with libtool 1.4. # With libtool 1.5 they are output both in $dir.libs/$base.o.d # and in $dir.libs/$base.o.d and $dir$base.o.d. We process the # latter, because the former will be cleaned when $dir.libs is # erased. tmpdepfile1="$dir.libs/$base.lo.d" tmpdepfile2="$dir$base.o.d" tmpdepfile3="$dir.libs/$base.d" "$@" -Wc,-MD else tmpdepfile1="$dir$base.o.d" tmpdepfile2="$dir$base.d" tmpdepfile3="$dir$base.d" "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" elif test -f "$tmpdepfile2"; then tmpdepfile="$tmpdepfile2" else tmpdepfile="$tmpdepfile3" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: lgeneral-1.3.1/lgeneral-redit/NEWS0000664000175000017500000000000012140770456013621 00000000000000lgeneral-1.3.1/lgeneral-redit/install-sh0000775000175000017500000001272012140770456015142 00000000000000#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 lgeneral-1.3.1/lgc-pg/0000775000175000017500000000000012643745100011463 500000000000000lgeneral-1.3.1/lgc-pg/lgc-pg.10000644000175000017500000000440012555200207012626 00000000000000.\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH LGC-PG 1 "October 07, 2012" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME lgc-pg \- Converter Tool for original Panzer General\*R Data Files .SH SYNOPSIS .B lgc-pg [\-s SOURCE] [\-d DEST] [\-\-defpal] [\-\-custom] [\-n NAME] [\-i ID] [\-t TACICONS] .br .SH DESCRIPTION LGC-PG is a simple tool to convert the original Panzer General\*R Data into LGeneral Data Files. It requires a graphical desktop environment for the conversion. .SH OPTIONS .TP .B \-s You always need to specify the source directory (which contains the original data or a custom scenario). .TP .B \-d This specifies the destination path that contains the LGeneral data struct. (usually /usr/share/games/lgeneral) .TP .B \-\-defpal This one is optional and forces all PG graphics to use the default palette. Usually you won't need this but if a custom scenario you converted offers some strange graphics it might be due to a corrupted palette and the default one may provide better results. .TP .B \-\-custom If you convert a custom scenario you should add this and the following options. .TP .B \-n This is the scenario's file name and default title. .TP .B \-i This is the in the source file name (game.scn). If you do not specify an ID the default is O. .TP .B \-t If custom tactical icons are involved (scenario offers a TACICONS.SHP)this is the name of the graphical file. If this option is not provided it defaults to .bmp. .SH EXAMPLES .TP 1) Converts all data from CD-ROM .TP lgc-pg \-s /mnt/windows/DAT \-d /usr/share/games/lgeneral .TP 2) Converts a custom scenario .TP lgc-pg \-s /home/jones/newstuff/dunk \-d /usr/share/games/lgeneral \-\-custom \-n Dunkirk \-i 44 lgeneral-1.3.1/lgc-pg/misc.h0000664000175000017500000001343412501307760012513 00000000000000/*************************************************************************** tools.h - description ------------------- begin : Fri Jan 19 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __MISC_H #define __MISC_H #include "config.h" #include /* check if number is odd or even */ #define ODD( x ) ( x & 1 ) #define EVEN( x ) ( !( x & 1 ) ) /* free with a check */ #define FREE( ptr ) { if ( ptr ) free( ptr ); ptr = 0; } /* check if a serious of flags is set in source */ #define CHECK_FLAGS( source, flags ) ( source & (flags) ) /* return random value between ( and including ) upper,lower limit */ #define RANDOM( lower, upper ) ( ( rand() % ( ( upper ) - ( lower ) + 1 ) ) + ( lower ) ) /* check if within this rect */ #define FOCUS( cx, cy, rx, ry, rw, rh ) ( cx >= rx && cy >= ry && cx < rx + rw && cy < ry + rh ) /* compare strings */ #define STRCMP( str1, str2 ) ( strlen( str1 ) == strlen( str2 ) && !strncmp( str1, str2, strlen( str1 ) ) ) /* return minimum */ #define MINIMUM( a, b ) ((a #include #include #include #include #include #include "shp.h" #include "units.h" #include "misc.h" /* ==================================================================== Externals ==================================================================== */ extern char *source_path; extern char *dest_path; extern char target_name[128]; extern int single_scen; extern int apply_unit_mods; extern int unit_entry_used[UDB_LIMIT]; extern int nation_count; extern char *nations[]; /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Write a line to file. ==================================================================== */ #define WRITE( file, line ) fprintf( file, "%s\n", line ) #define DWRITE( line ) fprintf( file, "%s\n", line ) /* ==================================================================== Icon indices that must be mirrored terminated by -1 ==================================================================== */ int mirror_ids[] = { 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181 ,182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 221, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 250, -1 }; /* ==================================================================== Unit entries are saved to this struct. ==================================================================== */ typedef struct { char name[20]; int class; int atk_soft; int atk_hard; int atk_air; int atk_naval; int def_ground; int def_air; int def_close; int target_type; int aaf; /* air attack flag */ int init; int range; int spot; int agf; /* air ground flag */ int move_type; int move; int fuel; int ammo; int cost; int pic_id; int month; int year; int last_year; int nation; } PG_UnitEntry; /* ==================================================================== Panzer General Definitions. ==================================================================== */ #define TARGET_TYPE_COUNT 4 char *target_types[] = { "soft", "Soft", "hard", "Hard", "air", "Air", "naval", "Naval" }; enum { INFANTRY = 0, TANK, RECON, ANTI_TANK, ARTILLERY, ANTI_AIRCRAFT, AIR_DEFENSE, FORT, FIGHTER, TACBOMBER, LEVBOMBER, SUBMARINE, DESTROYER, CAPITAL, CARRIER, LAND_TRANS, AIR_TRANS, SEA_TRANS, UNIT_CLASS_COUNT }; char *unit_classes[] = { "inf", "Infantry", "infantry", "tank", "Tank", "low_entr_rate°tank", "recon", "Recon", "recon°tank", "antitank", "Anti-Tank", "anti_tank", "art", "Artillery", "artillery°suppr_fire°attack_first", "antiair", "Anti-Aircraft", "low_entr_rate", "airdef", "Air-Defense", "air_defense°attack_first", "fort", "Fortification", "low_entr_rate°suppr_fire", "fighter", "Fighter", "interceptor°carrier_ok°flying", "tacbomb", "Tactical Bomber", "bomber°carrier_ok°flying", "levbomb", "Level Bomber", "flying°suppr_fire°turn_suppr°carpet_bombing", "sub", "Submarine", "swimming°diving", "dest", "Destroyer", "destroyer°swimming°suppr_fire", "cap", "Capital Ship", "swimming°suppr_fire", "carrier", "Aircraft Carrier", "carrier°swimming", "landtrp", "Land Transport", "transporter", "airtrp", "Air Transport", "transporter°flying", "seatrp", "Sea Transport", "transporter°swimming", }; int move_type_count = 8; char *move_types[] = { "tracked", "Tracked", "pg/tracked.wav", "halftracked", "Halftracked", "pg/tracked.wav", "wheeled", "Wheeled", "pg/wheeled.wav", "leg", "Leg", "pg/leg.wav", "towed", "Towed", "pg/leg.wav", "air", "Air", "pg/air.wav", "naval", "Naval", "pg/sea.wav", "allterrain", "All Terrain", "pg/wheeled.wav" }; /* ==================================================================== Additional flags for special units. ==================================================================== */ char *add_flags[] = { "6", "jet", "7", "jet", "9", "jet", "47", "ignore_entr", "108", "parachute", "109", "parachute", "168", "jet", "214", "bridge_eng°ignore_entr", "215", "parachute", "226", "parachute", "270", "parachute", "275", "bridge_eng°ignore_entr", "329", "bridge_eng°ignore_entr", "382", "parachute", "383", "parachute", "385", "ignore_entr", "386", "ignore_entr", "387", "bridge_eng°ignore_entr", "415", "parachute", "X" }; /** Try to figure out nation from unit entry name. No field in PG * unit entry seems to hold the nation index. Bytes 30, 39, 40, 43 * and 45 are just the same for all entries. 44 (what means ANI???) * seems to group certain units somehow according to class but it is * very jumpy and certainly not the nation id. Byte 49 varies * less but seems to have some other meaning, too. Pictures are also * not very sorted, so trying the unit name seems to be the easiest * approach for now: * Captions of non-german units start with 2-3 capital letters * indicating either the nation (GB, US, IT, ...) or allied usage * (AF,AD,...). Check for the "big" nation ids and map to * nation number. Generic allied units will be used by different * nations in scenarios but are not available for purchase (as it * seems that they equal some unit of the major nations). * Return index in global nations or -1 if no match. */ static int get_nation_from_unit_name( const char *uname ) { struct { const char *id; /* first term in name */ int idx; /* index in global nations */ } id_map[] = { { "PO ", 15 }, { "GB ", 22 }, { "FR ", 6 }, { "NOR ", 14 }, { "LC ", 1 }, /* assign low country units to belgia */ { "ST ", 19 }, { "IT ", 12 }, { "Bulgarian ", 2 }, { "Hungarian ", 10 }, { "Rumanian ", 17 }, { "Greek ", 8 }, { "Yugoslav ", 23 }, { "US ", 9 }, { "Finn", 5}, /* codes for Finnland ... */ { "FIN", 5}, /* ... not used in pg but some other campaigns */ { "AF ", -1 }, { "AD ", -1 }, { "FFR ", 6 }, { "FPO ", 15 }, { "Katyusha ", 19 }, /* here ST is missing */ { "x", } }; int nation_idx = 7; /* germany */ int i = 0; /* only guess for PG unit database */ if ( !apply_unit_mods ) return -1; while (id_map[i].id[0] != 'x') { if (strncmp(id_map[i].id, uname, strlen(id_map[i].id)) == 0) { nation_idx = id_map[i].idx; break; } i++; } return nation_idx; } /* ==================================================================== Load PG unit entry from file position. DOS entry format (50 bytes): NAME 0 CLASS 20 SA 21 HA 22 AA 23 NA 24 GD 25 AD 26 CD 27 TT 28 AAF 29 ??? 30 INI 31 RNG 32 SPT 33 GAF 34 MOV_TYPE 35 MOV 36 FUEL 37 AMMO 38 ??? 39 ??? 40 COST 41 BMP 42 ??? 43 ANI 44 ??? 45 MON 46 YR 47 LAST_YEAR 48 ??? 49 ==================================================================== */ static int units_read_entry( FILE *file, PG_UnitEntry *entry ) { unsigned char dummy[8]; if ( feof( file ) ) return 0; _fread( entry->name, 1, 20, file ); _fread( &entry->class, 1, 1, file ); _fread( &entry->atk_soft, 1, 1, file ); _fread( &entry->atk_hard, 1, 1, file ); _fread( &entry->atk_air, 1, 1, file ); _fread( &entry->atk_naval, 1, 1, file ); _fread( &entry->def_ground, 1, 1, file ); _fread( &entry->def_air, 1, 1, file ); _fread( &entry->def_close, 1, 1, file ); _fread( &entry->target_type,1, 1, file ); _fread( &entry->aaf, 1, 1, file ); _fread( &dummy[0], 1, 1, file ); _fread( &entry->init, 1, 1, file ); _fread( &entry->range, 1, 1, file ); _fread( &entry->spot, 1, 1, file ); _fread( &entry->agf, 1, 1, file ); _fread( &entry->move_type, 1, 1, file ); _fread( &entry->move, 1, 1, file ); _fread( &entry->fuel, 1, 1, file ); _fread( &entry->ammo, 1, 1, file ); _fread( &dummy[1], 2, 1, file ); _fread( &entry->cost, 1, 1, file ); entry->cost = (entry->cost * 120) / 10; _fread( &entry->pic_id, 1, 1, file ); _fread( &dummy[3], 3, 1, file ); _fread( &entry->month, 1, 1, file ); _fread( &entry->year, 1, 1, file ); _fread( &entry->last_year, 1, 1, file ); _fread( &dummy[6], 1, 1, file ); entry->nation = get_nation_from_unit_name( entry->name ); return 1; } /* ==================================================================== Replace a " with Inches and return the new string in buf. ==================================================================== */ void string_replace_quote( char *source, char *buf ) { int i; int length = strlen( source ); for ( i = 0; i < length; i++ ) if ( source[i] == '"' ) { source[i] = 0; sprintf( buf, "%s Inches%s", source, source + i + 1 ); return; } strcpy( buf, source ); } /* ==================================================================== Fix spelling mistakes in unit names. ==================================================================== */ static void fix_spelling_mistakes( char *name ) { /* replace "Jadg" with "Jagd" in unit name. Btw, this reminds me of a "Schinzel Wiener" in some Greek menu ;-) */ char *pos = strstr( name, "Jadg" ); if ( pos ) { printf("%s: ", name); memcpy( pos, "Jagd", 4 ); printf("correct spelling to %s\n", name); } } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== Check if 'source_path' contains a file PANZEQUP.EQP ==================================================================== */ int units_find_panzequp() { FILE *file; char path[MAXPATHLEN]; snprintf( path, MAXPATHLEN, "%s/panzequp.eqp", source_path ); if ( ( file = fopen_ic( path, "rb" ) ) ) { fclose( file ); return 1; } return 0; } /* ==================================================================== Check if 'source_path' contains a file TACICONS.SHP ==================================================================== */ int units_find_tacicons() { FILE *file; char path[MAXPATHLEN]; snprintf( path, MAXPATHLEN, "%s/tacicons.shp", source_path ); if ( ( file = fopen_ic( path, "rb" ) ) ) { fclose( file ); return 1; } return 0; } /* ==================================================================== Write unitclasses, target types, movement types to file. ==================================================================== */ void units_write_classes( FILE *file ) { int i; fprintf( file, "\n", target_types[i * 2], target_types[i * 2 + 1] ); fprintf( file, ">\n" ); fprintf( file, "\n", move_types[i * 3], move_types[i * 3 + 1], move_types[i * 3 + 2] ); fprintf( file, ">\n" ); /* write unit classes, add purchase info */ fprintf( file, "\n" ); } fprintf( file, ">\n" ); } /* ==================================================================== Convert unit database either as a new file for a campaign or appended to single scenario. 'tac_icons' is the file name of the tactical icons. ==================================================================== */ int units_convert_database( char *tac_icons ) { int id = 0, ini_bonus; short entry_count; char path[MAXPATHLEN]; char flags[512]; char buf[256]; int i; PG_UnitEntry entry; FILE *source_file = 0, *dest_file = 0; printf( "Unit data base...\n" ); /* open dest file */ if ( single_scen ) snprintf( path, MAXPATHLEN, "%s/scenarios/%s", dest_path, target_name ); else snprintf( path, MAXPATHLEN, "%s/units/%s.udb", dest_path, target_name ); if ( ( dest_file = fopen( path, single_scen?"ab":"wb" ) ) == 0 ) { fprintf( stderr, "%s: write access denied\n", path ); goto failure; } /* open file 'panzequp.eqp' */ snprintf( path, MAXPATHLEN, "%s/panzequp.eqp", source_path ); if ( ( source_file = fopen_ic( path, "rb" ) ) == NULL ) { fprintf( stderr, "%s: can't open file\n", path ); goto failure; } /* DOS format: * count ( 2 bytes ) * entries ( 50 bytes each ) */ _fread( &entry_count, 2, 1, source_file ); entry_count = SDL_SwapLE16(entry_count); if ( !single_scen ) fprintf( dest_file, "@\n" ); /* only a new file needs this magic */ /* domain */ fprintf( dest_file, "domain»pg\n" ); fprintf( dest_file, "icons»%s\nicon_type»%s\n", tac_icons, apply_unit_mods?"single":"fixed"); fprintf( dest_file, "strength_icons»pg_strength.bmp\n" ); fprintf( dest_file, "strength_icon_width»16\nstrength_icon_height»12\n" ); fprintf( dest_file, "attack_icon»pg_attack.bmp\n" ); fprintf( dest_file, "move_icon»pg_move.bmp\n" ); fprintf( dest_file, "guard_icon»pg_guard.bmp\n" ); units_write_classes( dest_file ); fprintf( dest_file, " 0 ) { memset( &entry, 0, sizeof( PG_UnitEntry ) ); if ( !units_read_entry( source_file, &entry ) ) { fprintf( stderr, "%s: unexpected end of file\n", path ); goto failure; } /* sometimes a unit class seems to be screwed */ if ( entry.class >= UNIT_CLASS_COUNT ) entry.class = 0; /* adjust attack values according to unit class (add - for defense only) */ switch ( entry.class ) { case INFANTRY: case TANK: case RECON: case ANTI_TANK: case ARTILLERY: case FORT: case SUBMARINE: case DESTROYER: case CAPITAL: case CARRIER: entry.atk_air = -entry.atk_air; break; case AIR_DEFENSE: entry.atk_soft = -entry.atk_soft; entry.atk_hard = -entry.atk_hard; entry.atk_naval = -entry.atk_naval; break; case TACBOMBER: case LEVBOMBER: if ( entry.aaf ) entry.atk_air = -entry.atk_air; break; } /* all russian tanks get an initiative bonus */ if ( apply_unit_mods ) { ini_bonus = 2; if ( entry.class == 1 && strncmp( entry.name, "ST ", 3 ) == 0 ) { entry.init += ini_bonus; printf( "%s: initiative bonus +%i\n", entry.name, ini_bonus ); } } /* get flags */ sprintf( flags, "%s", unit_classes[entry.class * 3 + 2] ); if ( apply_unit_mods ) { i = 0; while ( add_flags[i*2][0] != 'X' ) { if ( atoi( add_flags[i * 2] ) == id ) { strcat( flags, "°" ); strcat( flags, add_flags[i * 2 + 1] ); i = -1; break; } i++; } } /* whatever is legged or towed may use ground/air transporter */ if ( entry.move > 0 && (entry.move_type == 3 || entry.move_type == 4) ) strcat( flags, "°air_trsp_ok°ground_trsp_ok" ); /* all artillery with range 1 has no attack_first */ if (entry.class==4&&entry.range==1) { sprintf( flags, "artillery°suppr_fire" ); printf( "%s: overwrite flags to: artillery,suppr_fire\n", entry.name); } /* write entry */ fprintf( dest_file, "<%i\n", id++ ); string_replace_quote( entry.name, buf ); if ( apply_unit_mods ) fix_spelling_mistakes( buf ); fprintf( dest_file, "name»%s\n", buf ); fprintf( dest_file, "nation»%s\n", (entry.nation==-1)?"none": nations[entry.nation * 3] ); fprintf( dest_file, "class»%s\n", unit_classes[entry.class * 3] ); fprintf( dest_file, "target_type»%s\n", target_types[entry.target_type * 2] ); fprintf( dest_file, "initiative»%i\n", entry.init ); fprintf( dest_file, "spotting»%i\n", entry.spot ); fprintf( dest_file, "movement»%i\n", entry.move ); fprintf( dest_file, "move_type»%s\n", move_types[entry.move_type * 3] ); fprintf( dest_file, "fuel»%i\n", entry.fuel ); fprintf( dest_file, "range»%i\n", entry.range ); fprintf( dest_file, "ammo»%i\n", entry.ammo ); fprintf( dest_file, "\n", entry.atk_soft, entry.atk_hard, entry.atk_air, entry.atk_naval ); fprintf( dest_file, "def_ground»%i\n", entry.def_ground ); fprintf( dest_file, "def_air»%i\n", entry.def_air ); fprintf( dest_file, "def_close»%i\n", entry.def_close ); fprintf( dest_file, "flags»%s\n", flags ); fprintf( dest_file, "icon_id»%i\n", entry.pic_id ); if ( strstr( flags, "°jet" ) ) fprintf( dest_file, "move_sound»%s\n", "pg/air2.wav" ); fprintf( dest_file, "cost»%i\n", entry.cost ); fprintf( dest_file, "start_year»19%i\n", entry.year ); fprintf( dest_file, "start_month»%i\n", entry.month ); fprintf( dest_file, "last_year»19%i\n", entry.last_year ); fprintf( dest_file, ">\n" ); } fprintf( dest_file, ">\n" ); fclose( source_file ); fclose( dest_file ); return 1; failure: if ( source_file ) fclose( source_file ); if ( dest_file ) fclose( dest_file ); return 0; } /* ==================================================================== Convert unit graphics. 'tac_icons' is file name of the tactical icons. ==================================================================== */ int units_convert_graphics( char *tac_icons ) { int mirror; char path[MAXPATHLEN], path2[MAXPATHLEN]; int i, height = 0, j; SDL_Rect srect, drect; PG_Shp *shp = 0; SDL_Surface *surf = 0; Uint32 ckey = MAPRGB( CKEY_RED, CKEY_GREEN, CKEY_BLUE ); /* transparency key */ Uint32 mkey = MAPRGB( 0x0, 0xc3, 0xff ); /* size measurement key */ printf( "Unit graphics...\n" ); /* load tac icons */ if ( ( shp = shp_load( "TACICONS.SHP" ) ) == 0 ) return 0; /* create new surface */ for ( i = 0; i < shp->count; i++ ) if ( shp->headers[i].valid ) height += shp->headers[i].actual_height + 2; else height += 10; surf = SDL_CreateRGBSurface( SDL_SWSURFACE, shp->surf->w, height, shp->surf->format->BitsPerPixel, shp->surf->format->Rmask, shp->surf->format->Gmask, shp->surf->format->Bmask, shp->surf->format->Amask ); if ( surf == 0 ) { fprintf( stderr, "error creating surface: %s\n", SDL_GetError() ); goto failure; } SDL_FillRect( surf, 0, ckey ); height = 0; for ( i = 0; i < shp->count; i++ ) { if ( !shp->headers[i].valid ) { set_pixel( surf, 0, height, mkey ); set_pixel( surf, 9, height, mkey ); set_pixel( surf, 0, height + 9, mkey ); height += 10; continue; } srect.x = shp->headers[i].x1; srect.w = shp->headers[i].actual_width; srect.y = shp->headers[i].y1 + shp->offsets[i]; srect.h = shp->headers[i].actual_height; drect.x = 0; drect.w = shp->headers[i].actual_width; drect.y = height + 1; drect.h = shp->headers[i].actual_height; mirror = 0; if ( apply_unit_mods ) { j = 0; while ( mirror_ids[j] != -1 ) { if ( mirror_ids[j] == i ) mirror = 1; j++; } } if ( mirror ) copy_surf_mirrored( shp->surf, &srect, surf, &drect ); else SDL_BlitSurface( shp->surf, &srect, surf, &drect ); set_pixel( surf, drect.x, drect.y - 1, mkey ); set_pixel( surf, drect.x + ( drect.w - 1 ), drect.y - 1, mkey ); set_pixel( surf, drect.x, drect.y + drect.h, mkey ); height += shp->headers[i].actual_height + 2; } snprintf( path, MAXPATHLEN, "%s/gfx/units/%s", dest_path, tac_icons ); if ( SDL_SaveBMP( surf, path ) != 0 ) { fprintf( stderr, "%s: %s\n", path, SDL_GetError() ); goto failure; } SDL_FreeSurface( surf ); shp_free( &shp ); if (!copy_pg_bmp("strength.bmp","pg_strength.bmp")) goto failure; if (!copy_pg_bmp("attack.bmp","pg_attack.bmp")) goto failure; if (!copy_pg_bmp("move.bmp","pg_move.bmp")) goto failure; if (!copy_pg_bmp("guard.bmp","pg_guard.bmp")) goto failure; /* sounds */ snprintf( path, MAXPATHLEN, "%s/sounds/pg", dest_path ); mkdir( path, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH ); snprintf( path, MAXPATHLEN, "%s/convdata/air2.wav", get_gamedir() ); snprintf( path2, MAXPATHLEN, "%s/sounds/pg/air2.wav", dest_path ); copy( path, path2 ); snprintf( path, MAXPATHLEN, "%s/convdata/air.wav", get_gamedir() ); snprintf( path2, MAXPATHLEN, "%s/sounds/pg/air.wav", dest_path ); copy( path, path2 ); snprintf( path, MAXPATHLEN, "%s/convdata/battle.wav", get_gamedir() ); snprintf( path2, MAXPATHLEN, "%s/sounds/pg/explosion.wav", dest_path ); copy( path, path2 ); snprintf( path, MAXPATHLEN, "%s/convdata/leg.wav", get_gamedir() ); snprintf( path2, MAXPATHLEN, "%s/sounds/pg/leg.wav", dest_path ); copy( path, path2 ); snprintf( path, MAXPATHLEN, "%s/convdata/sea.wav", get_gamedir() ); snprintf( path2, MAXPATHLEN, "%s/sounds/pg/sea.wav", dest_path ); copy( path, path2 ); snprintf( path, MAXPATHLEN, "%s/convdata/select.wav", get_gamedir() ); snprintf( path2, MAXPATHLEN, "%s/sounds/pg/select.wav", dest_path ); copy( path, path2 ); snprintf( path, MAXPATHLEN, "%s/convdata/tracked.wav", get_gamedir() ); snprintf( path2, MAXPATHLEN, "%s/sounds/pg/tracked.wav", dest_path ); copy( path, path2 ); snprintf( path, MAXPATHLEN, "%s/convdata/wheeled.wav", get_gamedir() ); snprintf( path2, MAXPATHLEN, "%s/sounds/pg/wheeled.wav", dest_path ); copy( path, path2 ); return 1; failure: if ( surf ) SDL_FreeSurface( surf ); if ( shp ) shp_free( &shp ); return 0; } lgeneral-1.3.1/lgc-pg/misc.c0000664000175000017500000003134012575247507012517 00000000000000/*************************************************************************** tools.c - description ------------------- begin : Fri Jan 19 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include #include #include "misc.h" #include "shp.h" #include "util/paths.h" extern char *source_path; extern char *dest_path; /* compares to strings and returns true if their first strlen(str1) chars are equal */ inline int equal_str( char *str1, char *str2 ) { if ( strlen( str1 ) != strlen( str2 ) ) return 0; return ( !strncmp( str1, str2, strlen( str1 ) ) ); } /* set delay to ms milliseconds */ inline void set_delay( Delay *delay, int ms ) { delay->limit = ms; delay->cur = 0; } /* reset delay ( cur = 0 )*/ inline void reset_delay( Delay *delay ) { delay->cur = 0; } /* check if times out and reset */ inline int timed_out( Delay *delay, int ms ) { delay->cur += ms; if ( delay->cur >= delay->limit ) { delay->cur = 0; return 1; } return 0; } inline void goto_tile( int *x, int *y, int d ) { /* 0 -up, clockwise, 5 - left up */ switch ( d ) { case 1: if ( !( (*x) & 1 ) ) (*y)--; (*x)++; break; case 2: if ( (*x) & 1 ) (*y)++; (*x)++; break; case 4: if ( (*x) & 1 ) (*y)++; (*x)--; break; case 5: if ( !( (*x) & 1 ) ) (*y)--; (*x)--; break; } } /* return distance between to map positions */ int get_dist( int x1, int y1, int x2, int y2 ) { int range = 0; while ( x1 != x2 || y1 != y2 ) { /* approach to x2,y2 */ /* 0 -up, clockwise, 5 - left up */ if ( y1 < y2 ) { if ( x1 < x2 ) goto_tile( &x1, &y1, 2 ); else if ( x1 > x2 ) goto_tile( &x1, &y1, 4 ); else y1++; } else if ( y1 > y2 ) { if ( x1 < x2 ) goto_tile( &x1, &y1, 1 ); else if ( x1 > x2 ) goto_tile( &x1, &y1, 5 ); else y1--; } else { if ( x1 < x2 ) x1++; else if ( x1 > x2 ) x1--; } range++; } return range; } /* init random seed by using ftime */ void set_random_seed() { srand( (unsigned int)time( 0 ) ); } /* get coordinates from string */ void get_coord( char *str, int *x, int *y ) { int i; char *cur_arg = 0; *x = *y = 0; /* get position of comma */ for ( i = 0; i < strlen( str ); i++ ) if ( str[i] == ',' ) break; if ( i == strlen( str ) ) { fprintf( stderr, "get_coord: no comma found in pair of coordinates '%s'\n", str ); return; /* no comma found */ } /* y */ cur_arg = str + i + 1; if ( cur_arg[0] == 0 ) fprintf( stderr, "get_coord: warning: y-coordinate is empty (maybe you left a space between x and comma?)\n" ); *y = atoi( cur_arg ); /* x */ cur_arg = strdup( str ); cur_arg[i] = 0; *x = atoi( cur_arg ); FREE( cur_arg ); } /* replace new_lines with spaces in text */ void repl_new_lines( char *text ) { int i; for ( i = 0; i < strlen( text ); i++ ) if ( text[i] < 32 ) text[i] = 32; } // convert a str into text ( for listbox ) // // char width is the width of a line in characters // Text* create_text( char *orig_str, int char_width ) { int i, j; int pos; int last_space; int new_line; Text *text = 0; char *str = 0; text = calloc ( 1, sizeof( Text ) ); // maybe orig_str is a constant expression; duplicate for safety // str = strdup( orig_str ); // replace original new_lines with spaces // repl_new_lines( str ); /* change some spaces to new_lines, so that the new text fits the wanted line_length */ /* NOTE: '#' means new_line ! */ /* if character with is 0 it's just a single line */ if ( char_width > 0 ) { pos = 0; while ( pos < strlen( str ) ) { last_space = 0; new_line = 0; i = 0; while ( !new_line && i < char_width && i + pos < strlen( str ) ) { switch ( str[pos + i] ) { case '#': new_line = 1; case 32: last_space = i; break; } i++; } if ( i + pos >= strlen( str ) ) break; if ( last_space == 0 ) { /* uhh... much to long, we'll have to cut a word into pieces ... */ last_space = char_width / 2; } str[pos + last_space] = 10; pos += last_space; } } /* count lines */ if ( char_width > 0 ) { for ( i = 0; i < strlen( str ); i++ ) if ( str[i] == 10 ) text->count++; /* maybe one unfinished line */ if ( str[strlen( str ) - 1] != 10 ) text->count++; } else text->count = 1; /* get mem */ text->lines = calloc( text->count, sizeof( char* ) ); pos = 0; /* get all lines */ for ( j = 0; j < text->count; j++ ) { i = 0; while ( pos + i < strlen( str ) && str[pos + i] != 10 ) i++; text->lines[j] = calloc( i + 1, sizeof( char ) ); strncpy( text->lines[j], str + pos, i ); text->lines[j][i] = 0; pos += i; pos++; } if ( text->count == 0 ) fprintf( stderr, "conv_to_text: warning: line_count is 0\n" ); free( str ); return text; } // delete text // void delete_text( Text *text ) { int i; if ( text == 0 ) return; if ( text->lines ) { for ( i = 0; i < text->count; i++ ) if ( text->lines[i] ) free( text->lines[i] ); free( text->lines ); } free( text ); } /* ==================================================================== Delete an array of strings and set it and counter 0. ==================================================================== */ void delete_string_list( char ***list, int *count ) { int i; if ( *list == 0 ) return; for ( i = 0; i < *count; i++ ) if ( (*list)[i] ) free( (*list)[i] ); free( *list ); *list = 0; *count = 0; } /* ==================================================================== This function checks if 'name' occurs in fct and return the flag or 0 if not found. ==================================================================== */ int check_flag( char *name, StrToFlag *fct ) { /* get flags */ int i = 0; while ( fct[i].string[0] != 'X' ) { if ( STRCMP( fct[i].string, name ) ) return fct[i].flag; i++; } if ( !STRCMP( "none", name ) ) fprintf( stderr, "%s: unknown flag\n", name ); return 0; } /* ==================================================================== Copy source to dest and at maximum limit chars. Terminate with 0. ==================================================================== */ void strcpy_lt( char *dest, char *src, int limit ) { int len = strlen( src ); if ( len > limit ) { strncpy( dest, src, limit ); dest[limit] = 0; } else strcpy( dest, src ); } /* ==================================================================== Return (pointer to static duplicate) string as lowercase. ==================================================================== */ char *strlower( const char *str ) { int i = strlen(str); static char lstr[512]; if (i>=512) i = 511; /* truncate to size of static buffer */ lstr[i] = 0; for ( ; i > 0; ) { i--; lstr[i] = str[i]; if ( str[i] >= 'A' && str[i] <= 'Z' ) lstr[i] = str[i] + 32; } return lstr; } /* ==================================================================== Copy file (copy_ic ignores case of @sname) ==================================================================== */ void copy_ic( char *sname, char *dname ) { int size; char *buffer; FILE *source, *dest; if ( ( source = fopen_ic( sname, "rb" ) ) == 0 ){ fprintf( stderr, "%s: file not found\n", sname ); return; } if ( ( dest = fopen( dname, "wb" ) ) == 0 ) { fprintf( stderr, "%s: write access denied\n", dname ); return; } fseek( source, 0, SEEK_END ); size = ftell( source ); fseek( source, 0, SEEK_SET ); buffer = calloc( size, sizeof( char ) ); _fread( buffer, sizeof( char ), size, source ); fwrite( buffer, sizeof( char ), size, dest ); free( buffer ); fclose( source ); fclose( dest ); } void copy( char *sname, char *dname ) { int size; char *buffer; FILE *source, *dest; if ( ( source = fopen( sname, "rb" ) ) == 0 ){ fprintf( stderr, "%s: file not found\n", sname ); return; } if ( ( dest = fopen( dname, "wb" ) ) == 0 ) { fprintf( stderr, "%s: write access denied\n", dname ); return; } fseek( source, 0, SEEK_END ); size = ftell( source ); fseek( source, 0, SEEK_SET ); buffer = calloc( size, sizeof( char ) ); _fread( buffer, sizeof( char ), size, source ); fwrite( buffer, sizeof( char ), size, dest ); free( buffer ); fclose( source ); fclose( dest ); } int copy_pg_bmp( char *src, char *dest ) { SDL_Surface *surf = 0; char path[MAXPATHLEN]; snprintf( path, MAXPATHLEN, "%s/convdata/%s", get_gamedir(), src ); if ( ( surf = SDL_LoadBMP( path ) ) == 0 ) { fprintf( stderr, "%s: %s\n", path, SDL_GetError() ); return 0; } snprintf( path, MAXPATHLEN, "%s/gfx/units/%s", dest_path, dest ); if ( SDL_SaveBMP( surf, path ) != 0 ) { fprintf( stderr, "%s: %s\n", path, SDL_GetError() ); return 0; } SDL_FreeSurface( surf ); return 1; } /* ==================================================================== Return path of installation directory as static string (not thread safe). ==================================================================== */ const char *get_gamedir(void) { #ifndef INSTALLDIR return "."; #else static char gamedir[MAXPATHLEN]; snprintf( gamedir, MAXPATHLEN, "%s", INSTALLDIR ); return gamedir; #endif } /** Try to open file with lowercase name, then with uppercase name. * If both fails return NULL. Path itself is considered to be in * correct case, only the name after last '/' is modified. */ FILE *fopen_ic( const char *_path, const char *mode ) { FILE *file = NULL; char path[strlen(_path)+1], *start, *ptr; strcpy(path,_path); /* we need to copy since we modify it */ /* start behind file separator */ if ((start = strrchr(path,'/')) == NULL) /* Linux */ start = strrchr(path,'\\'); /* Windows */ if (start) start++; else start = path; /* only a file name */ /* try all lower case */ for (ptr = start; *ptr != 0; ptr++) *ptr = tolower(*ptr); if ((file = fopen(path,mode))) return file; /* try first upper case */ start[0] = toupper(start[0]); if ((file = fopen(path,mode))) return file; /* try all upper case */ for (ptr = start + 1; *ptr != 0; ptr++) *ptr = toupper(*ptr); if ((file = fopen(path,mode))) return file; return NULL; } /* ==================================================================== Copy to dest from source horizontally mirrored. ==================================================================== */ void copy_surf_mirrored( SDL_Surface *source, SDL_Rect *srect, SDL_Surface *dest, SDL_Rect *drect ) { int mirror_i, i, j; for ( j = 0; j < srect->h; j++ ) for ( i = 0, mirror_i = drect->x + drect->w - 1; i < srect->w; i++, mirror_i-- ) set_pixel( dest, mirror_i, j + drect->y, get_pixel( source, i + srect->x, j + srect->y ) ); } lgeneral-1.3.1/lgc-pg/parser.h0000664000175000017500000001412212140770460013047 00000000000000/*************************************************************************** parser.h - description ------------------- begin : Sat Mar 9 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __PARSER_H #define __PARSER_H #include "list.h" #include /* ==================================================================== This module provides functions to parse ASCII data from strings and files. Synopsis: groupname entry1 .. entryX variable value A group entry may either be a variable or a group (interlacing). A variable value may either be a single token or a list of tokens enclosed by . Text enclosed by ".." is counted as a single token. ==================================================================== */ /* ==================================================================== Symbols. Note: These symbols are ignored when found in a token "" as they belong to this token then. PARSER_GROUP_BEGIN: PARSER_GROUP_END: PARSER_SET: PARSER_LIST_BEGIN: PARSER_LIST_END: PARSER_COMMENT_BEGIN: PARSER_COMMENT_END: PARSER_SYMBOLS: List of all symbols + whitespace used to split strings and tokens. PARSER_SKIP_SYMBOLS: text bewteen these two symbols is handled as comment and therefore completely ignored ==================================================================== */ #define PARSER_GROUP_BEGIN '{' #define PARSER_GROUP_END '}' #define PARSER_SET '=' #define PARSER_LIST_BEGIN '(' #define PARSER_LIST_END ')' #define PARSER_COMMENT_BEGIN '[' #define PARSER_COMMENT_END ']' #define PARSER_SYMBOLS " =(){}[]" #define PARSER_SKIP_SYMBOLS "[]" /* ==================================================================== An input string is converted into a PData tree struct. The name identifies this entry and it's the token that is searched for when reading this entry. Either 'values' or 'entries' is set. If 'entries' is not NULL the PData is a group and 'entries' contains pointers to other groups or lists. If 'values' is not NULL the PData is a list and 'values' contains a list of value strings associated with 'name'. ==================================================================== */ typedef struct { char *name; List *values; List *entries; } PData; /* ==================================================================== This function splits a string into tokens using the characters found in symbols as breakpoints. If the first symbol is ' ' all whitespaces are used as breakpoints though NOT added as a token (thus removed from string). ==================================================================== */ List* parser_split_string( char *string, char *symbols ); /* ==================================================================== This is the light version of parser_split_string which checks for just one character and does not add this glue characters to the list. It's about 2% faster. Wow. ==================================================================== */ List *parser_explode_string( char *string, char c ); /* ==================================================================== This function reads in a whole file and converts it into a PData tree struct. If an error occurs NULL is returned and parser_error is set. 'tree_name' is the name of the PData tree. ==================================================================== */ PData* parser_read_file( char *tree_name, char *fname ); /* ==================================================================== This function frees a PData tree struct. ==================================================================== */ void parser_free( PData **pdata ); /* ==================================================================== Functions to access a PData tree. 'name' is the pass within tree 'pd' where subtrees are separated by '/' (e.g.: name = 'config/graphics/animations') parser_get_pdata : get pdata entry associated with 'name' parser_get_entries : get list of subtrees (PData structs) in 'name' parser_get_values : get value list of 'name' parser_get_value : get a single value from value list of 'name' parser_get_int : get first value of 'name' converted to integer parser_get_double : get first value of 'name' converted to double parser_get_string : get first value of 'name' _duplicated_ If an error occurs result is set NULL, False is returned and parse_error is set. ==================================================================== */ int parser_get_pdata ( PData *pd, char *name, PData **result ); int parser_get_entries( PData *pd, char *name, List **result ); int parser_get_values ( PData *pd, char *name, List **result ); int parser_get_value ( PData *pd, char *name, char **result, int index ); int parser_get_int ( PData *pd, char *name, int *result ); int parser_get_double ( PData *pd, char *name, double *result ); int parser_get_string ( PData *pd, char *name, char **result ); /* ==================================================================== If an error occurred you can query the message with this function. ==================================================================== */ char* parser_get_error( void ); #endif lgeneral-1.3.1/lgc-pg/parser.c0000664000175000017500000005633712575247507013075 00000000000000/*************************************************************************** parser.c - description ------------------- begin : Sat Mar 9 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include "parser.h" #include "misc.h" /* ==================================================================== Error string. ==================================================================== */ static char parser_sub_error[1024]; static char parser_error[1024]; /* ==================================================================== This buffer is used to fully load resource files when the compact format is used. ==================================================================== */ enum { CBUFFER_SIZE = 131072 }; /* 128 KB */ static char cbuffer[CBUFFER_SIZE]; static char* cbuffer_pos = 0; /* position in cbuffer */ /* ==================================================================== As we need constant strings sometimes we have to define a maximum length for tokens. ==================================================================== */ enum { PARSER_MAX_TOKEN_LENGTH = 1024 }; /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Macro to shorten the fread call for a single character. ==================================================================== */ #define FILE_READCHAR( file, c ) _fread( &c, sizeof( char ), 1, file ) /* ==================================================================== Find next newline in cbuffer and replace it with \0 and return the pointer to the current line. ==================================================================== */ static char* parser_get_next_line() { char *line = cbuffer_pos; char *newpos; if ( cbuffer_pos[0] == 0 ) return 0; /* completely read. no more lines. */ if ( ( newpos = strchr( cbuffer_pos, 10 ) ) == 0 ) cbuffer_pos += strlen( cbuffer_pos ); /* last line */ else { cbuffer_pos = newpos + 1; /* set pointer to next line */ newpos[0] = 0; /* terminate current line */ } return line; } /* ==================================================================== Set parse error string: "file:line: error" ==================================================================== */ static void parser_set_parse_error( char *fname, FILE *file, char *error ) { int end, pos; int line_count = 1; char c; end = ftell( file ); pos = 0; fseek( file, 0, SEEK_SET ); while ( pos < end ) { FILE_READCHAR( file, c ); pos++; if ( c == 10 ) line_count++; } sprintf( parser_error, "%s: %i: %s", fname, line_count, error ); } /* ==================================================================== Check if the given character occurs in the symbol list. If the first symbol is ' ' it is used as wildcard for all white-spaces. ==================================================================== */ static int is_symbol( int c, char *symbols ) { int i = 0; if ( symbols[0] == ' ' && c <= 32 ) return 1; while ( symbols[i] != 0 ) if ( c == symbols[i++] ) return 1; return 0; } /* ==================================================================== Move file position forward until reading in the given character. If stop is ' ' whitespaces will be ignored. ==================================================================== */ static void file_skip( FILE *file, char stop ) { char c = 0; FILE_READCHAR( file, c ); while ( ( ( stop == ' ' && c <= 32 ) || ( stop != ' ' && c != stop ) ) && !feof( file ) ) FILE_READCHAR( file, c ); if ( !feof( file ) ) fseek( file, -1, SEEK_CUR ); } /* ==================================================================== Read next token from current file position where symbols is a list of characters used to break up the tokens. The symbols themself are returned as tokens. If ' ' occurs in the symbol list it will be ignored and whitespaces are removed automatically. The token does not exceed PARSER_MAX_TOKEN_LENGTH. Enclosing ".." are kept at the token. Use file_compare_token() to test it's contents. Returns False on EoF. ==================================================================== */ static int file_read_token_intern( FILE *file, char *symbols, char *token ) { int pos = 0; char c; token[0] = 0; file_skip( file, ' ' ); FILE_READCHAR( file, c ); if ( feof( file ) ) { sprintf( parser_sub_error, "unexpected end of file" ); return 0; } /* string? */ if ( c == '"' ) { token[pos++] = '"'; FILE_READCHAR( file, c ); while ( ( !feof( file ) && c != '"' ) ) { token[pos++] = c; if ( pos == PARSER_MAX_TOKEN_LENGTH - 2 ) { token[pos++] = '"'; token[pos] = 0; sprintf( parser_sub_error, "token exceeds limit" ); return 0; } FILE_READCHAR( file, c ); } token[pos++] = '"'; token[pos] = 0; if ( feof( file ) ) { sprintf( parser_sub_error, "unexpected end of file" ); token[0] = 0; return 0; } return 1; } /* symbol? */ if ( is_symbol( c, symbols ) ) { token[0] = c; token[1] = 0; return 1; } /* other token */ while ( !is_symbol( c, symbols ) && !feof( file ) ) { token[pos++] = c; if ( pos == PARSER_MAX_TOKEN_LENGTH - 1 ) { token[pos] = 0; sprintf( parser_sub_error, "token exceeds limit" ); return 0; } FILE_READCHAR( file, c ); } token[pos] = 0; if ( feof( file ) ) return 1; fseek( file, -1, SEEK_CUR ); return 1; } /* ==================================================================== Skip all tokens until one begins with character 'stop'. This token is also ignored. ==================================================================== */ static void file_skip_section( FILE *file, char stop ) { char token[PARSER_MAX_TOKEN_LENGTH]; do { file_read_token_intern( file, PARSER_SYMBOLS, token ); } while ( !feof( file ) && token[0] != stop ); } /* ==================================================================== Read next token and skip comments enclosed in tokens skip[0], skip[1] (if skip is not NULL). Return 0 if EoF. ==================================================================== */ static int file_read_token( FILE *file, char *symbols, char *skip, char *token ) { while ( 1 ) { if ( !file_read_token_intern( file, symbols, token ) ) return 0; if ( skip ) { if ( token[0] == skip[0] ) file_skip_section( file, skip[1] ); else break; } else break; } return 1; } /* ==================================================================== Remove quotes if any and return result as newly allocated string. ==================================================================== */ static char* parser_remove_quotes( char *string ) { char *new; if ( string[0] != '"' ) return strdup( string ); new = calloc( strlen( string ) - 1, sizeof( char ) ); strncpy( new, string + 1, strlen( string ) - 2 ); new[strlen( string ) - 2] = 0; return new; } /* ==================================================================== Proceed in the given string until it ends or non-whitespace occurs and return the new position. ==================================================================== */ static char* string_ignore_whitespace( char *string ) { int i = 0; while ( string[i] != 0 && string[i] <= 32 ) i++; return string + i; } /* ==================================================================== This function searches file from the current position for the next pdata entry. ==================================================================== */ static PData* parser_parse_file( FILE *file ) { char token[PARSER_MAX_TOKEN_LENGTH]; PData *pd = 0, *sub = 0; /* get name */ if ( !file_read_token( file, PARSER_SYMBOLS, PARSER_SKIP_SYMBOLS, token ) ) return 0; if ( is_symbol( token[0], PARSER_SYMBOLS ) ) { sprintf( parser_sub_error, "parse error before '%s'", token ); return 0; } pd = calloc( 1, sizeof( PData ) ); pd->name = parser_remove_quotes( token ); /* check type */ if ( !file_read_token( file, PARSER_SYMBOLS, PARSER_SKIP_SYMBOLS, token ) ) goto failure; switch ( token[0] ) { case PARSER_SET: /* assign single value or list */ pd->values = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); if ( !file_read_token( file, PARSER_SYMBOLS, PARSER_SKIP_SYMBOLS, token ) ) goto failure; if ( token[0] != PARSER_LIST_BEGIN ) { if ( is_symbol( token[0], PARSER_SYMBOLS ) ) { sprintf( parser_sub_error, "parse error before '%s'", token ); goto failure; } else list_add( pd->values, parser_remove_quotes( token ) ); } else { if ( !file_read_token( file, PARSER_SYMBOLS, PARSER_SKIP_SYMBOLS, token ) ) goto failure; while ( token[0] != PARSER_LIST_END ) { if ( is_symbol( token[0], PARSER_SYMBOLS ) ) { sprintf( parser_sub_error, "parse error before '%s'", token ); goto failure; } else list_add( pd->values, parser_remove_quotes( token ) ); if ( !file_read_token( file, PARSER_SYMBOLS, PARSER_SKIP_SYMBOLS, token ) ) goto failure; } } break; case PARSER_GROUP_BEGIN: /* check all entries until PARSER_GROUP_END */ pd->entries = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); while ( 1 ) { if ( !file_read_token( file, PARSER_SYMBOLS, PARSER_SKIP_SYMBOLS, token ) ) goto failure; if ( token[0] == PARSER_GROUP_END ) break; fseek( file, -strlen( token ), SEEK_CUR ); sub = parser_parse_file( file ); if ( sub ) list_add( pd->entries, sub ); else goto failure; } break; default: sprintf( parser_sub_error, "parse error before '%s'", token ); goto failure; } return pd; failure: parser_free( &pd ); return 0; } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== This function splits a string into tokens using the characters found in symbols as breakpoints. If the first symbol is ' ' all whitespaces are used as breakpoints though NOT added as a token (thus removed from string). ==================================================================== */ List* parser_split_string( char *string, char *symbols ) { int pos; char *token = 0; List *list = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); while ( string[0] != 0 ) { if ( symbols[0] == ' ' ) string = string_ignore_whitespace( string ); if ( string[0] == 0 ) break; pos = 1; /* 'read in' first character */ while ( string[pos - 1] != 0 && !is_symbol( string[pos - 1], symbols ) && string[pos - 1] != '"' ) pos++; if ( pos > 1 ) pos--; else if ( string[pos - 1] == '"' ) { /* read a string */ string = string + 1; pos = 0; while ( string[pos] != 0 && string[pos] != '"' ) pos++; token = calloc( pos + 1, sizeof( char ) ); strncpy( token, string, pos ); token[pos] = 0; list_add( list, token ); string = string + pos + (string[pos] != 0); continue; } token = calloc( pos + 1, sizeof( char ) ); strncpy( token, string, pos); token[pos] = 0; list_add( list, token ); string = string + pos; } return list; } /* ==================================================================== This is the light version of parser_split_string which checks for just one character and does not add this glue characters to the list. It's about 2% faster. Wow. ==================================================================== */ List *parser_explode_string( char *string, char c ) { List *list = list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK ); char *next_slash = 0; char buffer[64]; while ( string[0] != 0 && ( next_slash = strchr( string, c ) ) != 0 ) { if ( next_slash != string ) { strcpy_lt( buffer, string, (next_slash-string>63)?63:(next_slash-string) ); list_add( list, strdup( buffer ) ); } string += next_slash - string + 1; } if ( string[0] != 0 ) list_add( list, strdup( string ) ); return list; } /* ==================================================================== This function reads in a whole file and converts it into a PData tree struct. If an error occurs NULL is returned and parser_error is set. ==================================================================== */ static int parser_read_file_full( FILE *file, PData *top ) { PData *sub = 0; char token[1024]; /* parse file */ while ( !feof( file ) ) { if ( ( sub = parser_parse_file( file ) ) != 0 ) list_add( top->entries, sub ); else return 0; /* skip comments and whitespaces */ if ( !file_read_token( file, PARSER_SYMBOLS, PARSER_SKIP_SYMBOLS, token ) ) { if ( token[0] != 0 ) return 0; break; } else fseek( file, -strlen( token ), SEEK_CUR ); } return 1; } static int parser_read_file_compact( PData *section ) { /* section is the parent pdata that needs some entries */ PData *pd = 0; char *line, *cur; while ( ( line = parser_get_next_line() ) ) { switch ( line[0] ) { case '>': /* this section is finished */ return 1; case '<': /* add a whole subsection */ pd = calloc( 1, sizeof( PData ) ); pd->name = strdup( line + 1 ); pd->entries = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); parser_read_file_compact( pd ); /* add to section */ list_add( section->entries, pd ); break; default: /* read values as subsection */ pd = calloc( 1, sizeof( PData ) ); /* check name */ if ( ( cur = strchr( line, '»' ) ) == 0 ) { sprintf( parser_sub_error, "parse error: use '»' for assignment or '<' for section" ); return 0; } cur[0] = 0; cur++; pd->name = strdup( line ); /* get values */ pd->values = parser_explode_string( cur, '°' ); /* add to section */ list_add( section->entries, pd ); break; } } return 1; } PData* parser_read_file( char *tree_name, char *fname ) { int size; char magic = 0; FILE *file = 0; PData *top = 0; /* open file */ if ( ( file = fopen( fname, "rb" ) ) == 0 ) { sprintf( parser_error, "%s: file not found", fname ); return 0; } /* create top level pdata */ top = calloc( 1, sizeof( PData ) ); top->name = strdup( tree_name ); top->entries = list_create( LIST_NO_AUTO_DELETE, LIST_NO_CALLBACK ); /* parse */ FILE_READCHAR( file, magic ); if ( magic == '@' ) { /* get the whole contents -- 1 and CBUFFER_SIZE are switched */ fseek( file, 0, SEEK_END ); size = ftell( file ) - 2; if ( size >= CBUFFER_SIZE ) { fprintf( stderr, "%s: file's too big to fit the compact buffer (128KB)\n", fname ); size = CBUFFER_SIZE - 1; } fseek( file, 2, SEEK_SET ); _fread( cbuffer, 1, size, file ); cbuffer[size] = 0; /* set indicator to beginning of text */ cbuffer_pos = cbuffer; /* parse cbuffer */ if ( !parser_read_file_compact( top ) ) { parser_set_parse_error( fname, file, parser_sub_error ); goto failure; } } else { fseek( file, 0, SEEK_SET ); if ( !parser_read_file_full( file, top ) ) { parser_set_parse_error( fname, file, parser_sub_error ); goto failure; } } /* finalize */ fclose( file ); return top; failure: fclose( file ); parser_free( &top ); return 0; } /* ==================================================================== This function frees a PData tree struct. ==================================================================== */ void parser_free( PData **pdata ) { PData *entry = 0; if ( (*pdata) == 0 ) return; if ( (*pdata)->name ) free( (*pdata)->name ); if ( (*pdata)->values ) list_delete( (*pdata)->values ); if ( (*pdata)->entries ) { list_reset( (*pdata)->entries ); while ( ( entry = list_next( (*pdata)->entries ) ) ) parser_free( &entry ); list_delete( (*pdata)->entries ); } free( *pdata ); *pdata = 0; } /* ==================================================================== Functions to access a PData tree. 'name' is the pass within tree 'pd' where subtrees are separated by '/' (e.g.: name = 'config/graphics/animations') parser_get_pdata : get pdata entry associated with 'name' parser_get_entries : get list of subtrees (PData structs) in 'name' parser_get_values : get value list of 'name' parser_get_value : get a single value from value list of 'name' parser_get_int : get first value of 'name' converted to integer parser_get_double : get first value of 'name' converted to double parser_get_string : get first value of 'name' _duplicated_ If an error occurs result is set NULL, False is returned and parse_error is set. ==================================================================== */ int parser_get_pdata ( PData *pd, char *name, PData **result ) { int i, found; PData *pd_next = pd; PData *entry = 0; char *sub = 0; List *path = parser_explode_string( name, '/' ); for ( i = 0, list_reset( path ); i < path->count; i++ ) { sub = list_next( path ); if ( !pd_next->entries ) { sprintf( parser_sub_error, "%s: no subtrees", pd_next->name ); goto failure; } list_reset( pd_next->entries ); found = 0; while ( ( entry = list_next( pd_next->entries ) ) ) if ( strlen( entry->name ) == strlen( sub ) && !strncmp( entry->name, sub, strlen( sub ) ) ) { pd_next = entry; found = 1; break; } if ( !found ) { sprintf( parser_sub_error, "%s: subtree '%s' not found", pd_next->name, sub ); goto failure; } } list_delete( path ); *result = pd_next; return 1; failure: sprintf( parser_error, "parser_get_pdata: %s/%s: %s", pd->name, name, parser_sub_error ); list_delete( path ); *result = 0; return 0; } int parser_get_entries( PData *pd, char *name, List **result ) { PData *entry; *result = 0; if ( !parser_get_pdata( pd, name, &entry ) ) { sprintf( parser_sub_error, "parser_get_entries:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } if ( !entry->entries || entry->entries->count == 0 ) { sprintf( parser_error, "parser_get_entries: %s/%s: no subtrees", pd->name, name ); return 0; } *result = entry->entries; return 1; } int parser_get_values ( PData *pd, char *name, List **result ) { PData *entry; *result = 0; if ( !parser_get_pdata( pd, name, &entry ) ) { sprintf( parser_sub_error, "parser_get_values:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } if ( !entry->values || entry->values->count == 0 ) { sprintf( parser_error, "parser_get_values: %s/%s: no values", pd->name, name ); return 0; } *result = entry->values; return 1; } int parser_get_value ( PData *pd, char *name, char **result, int index ) { List *values; if ( !parser_get_values( pd, name, &values ) ) { sprintf( parser_sub_error, "parser_get_value:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } if ( index >= values->count ) { sprintf( parser_error, "parser_get_value: %s/%s: index %i out of range (%i elements)", pd->name, name, index, values->count ); return 0; } *result = list_get( values, index ); return 1; } int parser_get_int ( PData *pd, char *name, int *result ) { char *value; if ( !parser_get_value( pd, name, &value, 0 ) ) { sprintf( parser_sub_error, "parser_get_int:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } *result = atoi( value ); return 1; } int parser_get_double ( PData *pd, char *name, double *result ) { char *value; if ( !parser_get_value( pd, name, &value, 0 ) ) { sprintf( parser_sub_error, "parser_get_double:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } *result = strtod( value, 0 ); return 1; } int parser_get_string ( PData *pd, char *name, char **result ) { char *value; if ( !parser_get_value( pd, name, &value, 0 ) ) { sprintf( parser_sub_error, "parser_get_string:\n %s", parser_error ); strcpy( parser_error, parser_sub_error ); return 0; } *result = strdup( value ); return 1; } /* ==================================================================== If an error occurred you can query the reason with this function. ==================================================================== */ char* parser_get_error( void ) { return parser_error; } lgeneral-1.3.1/lgc-pg/maps.c0000664000175000017500000001650712575247507012534 00000000000000/*************************************************************************** maps.c - description ------------------- begin : Tue Mar 12 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include #include #include #include #include "maps.h" #include "misc.h" #include "terrain.h" /* ==================================================================== Externals ==================================================================== */ extern char *source_path; extern char *dest_path; extern char target_name[128]; extern int map_or_scen_files_missing; extern int terrain_tile_count; extern char tile_type[]; /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Convert a tile_id in the PG image into a map tile string terrain_type_char+tile_id ==================================================================== */ static void tile_get_id_string( int id, char *string ) { char type; int i; int sub_id = 0; type = tile_type[id]; for ( i = 0; i < id; i++ ) if ( tile_type[i] == type ) sub_id++; sprintf( string, "%c%i", type, sub_id ); } /* ==================================================================== Read map tile name with that id to buf ==================================================================== */ static void tile_get_name( FILE *file, int id, char *buf ) { memset( buf, 0, 21 ); fseek( file, 2 + id * 20, SEEK_SET ); if ( feof( file ) ) sprintf( buf, "none" ); else _fread( buf, 20, 1, file ); } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== If map_id is -1 convert all maps found in 'source_path'. If map_id is >= 0 this is a single custom map with the data in the current directory. ==================================================================== */ int maps_convert( int map_id ) { int i, start, end; char path[MAXPATHLEN]; FILE *dest_file, *source_file, *name_file; int width, height; int tile_id; char map_tile_str[8]; char name_buf[24]; int x, y, ibuf; if (map_id == -1) { snprintf( path, MAXPATHLEN, "%s/maps/%s", dest_path, target_name ); mkdir( path, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH ); } /* if converting pg campaign, copy mapnames as fallback * not required: mapnames is provided in package again if (strcmp(target_name,"pg") == 0) { char spath[MAXPATHLEN], dpath[MAXPATHLEN]; snprintf(spath,MAXPATHLEN,"%s/mapnames.str",source_path); snprintf(dpath,MAXPATHLEN,"%s/convdata/mapnames", get_gamedir() ); copy_ic(spath,dpath); } */ printf( "Maps...\n" ); /* name file (try the one in lgc-pg as fallback) */ snprintf( path, MAXPATHLEN, "%s/mapnames.str", source_path ); if ( (name_file = fopen_ic( path, "rb" )) == NULL ) { fprintf( stderr, "ERROR: mapnames not found in %s?\n", source_path); return 0; } /* set loop range */ if ( map_id == -1 ) { start = 1; end = 38; } else { start = end = map_id; } for ( i = start; i <=end; i++ ) { /* open set file */ snprintf( path, MAXPATHLEN, "%s/map%02d.set", source_path, i ); if (( source_file = fopen_ic( path, "rb" ) ) == NULL) { fprintf( stderr, "%s: file not found\n", path ); /* for custom campaign not all maps/scenarios may be present so * don't consider this fatal, just continue */ if (map_id == -1 && strcmp(target_name,"pg")) { map_or_scen_files_missing = 1; continue; } else return 0; } /* open dest file */ if ( map_id == -1 ) snprintf( path, MAXPATHLEN, "%s/maps/%s/map%02d", dest_path, target_name, i ); else snprintf( path, MAXPATHLEN, "%s/scenarios/%s", dest_path, target_name ); if ( ( dest_file = fopen( path, (map_id==-1)?"wb":"ab" ) ) == NULL ) { fprintf( stderr, "%s: access denied\n", path ); fclose( source_file ); return 0; } /* magic for new file */ if ( map_id == -1 ) fprintf( dest_file, "@\n" ); /* terrain types */ if (map_id == -1) fprintf( dest_file, "terrain_db»%s.tdb\n", target_name ); else fprintf( dest_file, "terrain_db»pg.tdb\n" ); /* domain */ fprintf( dest_file, "domain»pg\n" ); /* read/write map size */ width = height = 0; fseek( source_file, 101, SEEK_SET ); _fread( &width, 2, 1, source_file ); width = SDL_SwapLE16( width ); fseek( source_file, 103, SEEK_SET ); _fread( &height, 2, 1, source_file ); height = SDL_SwapLE16( height ); width++; height++; fprintf( dest_file, "width»%i\nheight»%i\n", width, height ); /* picture ids */ fseek( source_file, 123 + 5 * width * height, SEEK_SET ); fprintf( dest_file, "tiles»" ); for ( y = 0; y < height; y++ ) { for ( x = 0; x < width; x++ ) { tile_id = 0; _fread( &tile_id, 2, 1, source_file ); tile_id = SDL_SwapLE16( tile_id ); tile_get_id_string( tile_id, map_tile_str ); fprintf( dest_file, "%s", map_tile_str ); if ( y < height - 1 || x < width - 1 ) fprintf( dest_file, "°" ); } } fprintf( dest_file, "\n" ); fprintf( dest_file, "names»" ); fseek( source_file, 123, SEEK_SET ); for ( y = 0; y < height; y++ ) { for ( x = 0; x < width; x++ ) { ibuf = 0; _fread( &ibuf, 2, 1, source_file ); ibuf = SDL_SwapLE16( ibuf ); tile_get_name( name_file, ibuf, name_buf ); fprintf( dest_file, "%s", name_buf ); if ( y < height - 1 || x < width - 1 ) fprintf( dest_file, "°" ); } } fprintf( dest_file, "\n" ); fclose( source_file ); fclose( dest_file ); } fclose( name_file ); return 1; } lgeneral-1.3.1/lgc-pg/list.c0000664000175000017500000002650512140770460012531 00000000000000/*************************************************************************** list.c - description ------------------- begin : Sun Sep 2 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include "list.h" /* ==================================================================== Create a new list auto_delete: Free memory of data pointer when deleting entry callback: Use this callback to free memory of data including the data pointer itself. Return Value: List pointer ==================================================================== */ List *list_create( int auto_delete, void (*callback)(void*) ) { List *list = calloc( 1, sizeof( List ) ); list->head.next = &list->tail; list->head.prev = &list->head; list->tail.next = &list->tail; list->tail.prev = &list->head; list->auto_delete = auto_delete; list->callback = callback; list->cur_entry = &list->head; return list; } /* ==================================================================== Delete list and entries. ==================================================================== */ void list_delete( List *list ) { list_clear( list ); free( list ); } /* ==================================================================== Delete all entries but keep the list. Reset current_entry to head pointer. ==================================================================== */ void list_clear( List *list ) { while( !list_empty( list ) ) list_delete_pos( list, 0 ); } /* ==================================================================== Insert new item at position. Return Value: True if successful else False. ==================================================================== */ int list_insert( List *list, void *item, int pos ) { int i; List_Entry *cur = &list->head; List_Entry *new_entry = 0; /* check if insertion possible */ if ( pos < 0 || pos > list->count ) return 0; if ( item == 0 ) return 0; /* get to previous entry */ for (i = 0; i < pos; i++) cur = cur->next; /* create and anchor new entry */ new_entry = calloc( 1, sizeof( List_Entry ) ); new_entry->item = item; new_entry->next = cur->next; new_entry->prev = cur; cur->next->prev = new_entry; cur->next = new_entry; list->count++; return 1; } /* ==================================================================== Add new item at the end of the list. ==================================================================== */ int list_add( List *list, void *item ) { List_Entry *new_entry = 0; /* check if insertion possible */ if ( item == 0 ) return 0; /* create and anchor new entry */ new_entry = calloc( 1, sizeof( List_Entry ) ); new_entry->item = item; new_entry->next = &list->tail; new_entry->prev = list->tail.prev; list->tail.prev->next = new_entry; list->tail.prev = new_entry; list->count++; return 1; } /* ==================================================================== Delete item at position. If this was the current entry update current_entry to valid previous pointer. Return Value: True if successful else False. ==================================================================== */ int list_delete_pos( List *list, int pos ) { int i; List_Entry *cur = &list->head; /* check if deletion possbile */ if ( list_empty( list ) ) return 0; if ( pos < 0 || pos >= list->count ) return 0; /* get to correct entry */ for ( i = 0; i <= pos; i++ ) cur = cur->next; /* modify anchors */ cur->next->prev = cur->prev; cur->prev->next = cur->next; /* decrease counter */ list->count--; /* check current_entry */ if ( list->cur_entry == cur ) list->cur_entry = list->cur_entry->prev; /* free memory */ if ( list->auto_delete ) { if ( list->callback ) (list->callback)( cur->item ); else free( cur->item ); } free( cur ); return 1; } /* ==================================================================== Delete item if in list. If this was the current entry update current_entry to valid previous pointer. Return Value: True if successful else False. ==================================================================== */ int list_delete_item( List *list, void *item ) { return list_delete_pos( list, list_check( list, item ) ); } /* ==================================================================== Delete entry. Return Value: True if successful else False. ==================================================================== */ int list_delete_entry( List *list, List_Entry *entry ) { /* delete possible? */ if ( entry == 0 ) return 0; if ( list->count == 0 ) return 0; if ( entry == &list->head || entry == &list->tail ) return 0; /* adjust anchor and counter */ entry->prev->next = entry->next; entry->next->prev = entry->prev; list->count--; /* check current_entry */ if ( list->cur_entry == entry ) list->cur_entry = list->cur_entry->prev; /* free memory */ if ( list->auto_delete ) { if ( list->callback ) (list->callback)( entry->item ); else free( entry->item ); } free( entry ); return 1; } /* ==================================================================== Get item from position if in list. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_get( List *list, int pos ) { int i; List_Entry *cur = &list->head; if ( pos < 0 || pos >= list->count ) return 0; for ( i = 0; i <= pos; i++ ) cur = cur->next; return cur->item; } /* ==================================================================== Check if item's in list. Return Value: Position of item else -1. ==================================================================== */ int list_check( List *list, void *item ) { int pos = -1; List_Entry *cur = list->head.next; while ( cur != &list->tail ) { pos++; if ( cur->item == item ) break; cur = cur->next; } return pos; } /* ==================================================================== Return first item stored in list and set current_entry to this entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_first( List *list ) { list->cur_entry = list->head.next; return list->head.next->item; } /* ==================================================================== Return last item stored in list and set current_entry to this entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_last( List *list ) { list->cur_entry = list->tail.prev; return list->tail.prev->item; } /* ==================================================================== Return item in current_entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_current( List *list ) { return list->cur_entry->item; } /* ==================================================================== Reset current_entry to head of list. ==================================================================== */ void list_reset( List *list ) { list->cur_entry = &list->head; } /* ==================================================================== Get next item and update current_entry (reset if tail reached) Return Value: Item pointer if found else Null (if tail of list). ==================================================================== */ void* list_next( List *list ) { list->cur_entry = list->cur_entry->next; if ( list->cur_entry == &list->tail ) list_reset( list ); return list->cur_entry->item; } /* ==================================================================== Get previous item and update current_entry. Return Value: Item pointer if found else Null (if head of list). ==================================================================== */ void* list_prev( List *list ) { list->cur_entry = list->cur_entry->prev; return list->cur_entry->item; } /* ==================================================================== Delete the current entry if not tail or head. This is the entry that contains the last returned item by list_next/prev(). Return Value: True if it was a valid deleteable entry. ==================================================================== */ int list_delete_current( List *list ) { if ( list->cur_entry == 0 || list->cur_entry == &list->head || list->cur_entry == &list->tail ) return 0; list_delete_entry( list, list->cur_entry ); return 1; } /* ==================================================================== Check if list is empty. Return Value: True if list counter is 0 else False. ==================================================================== */ int list_empty( List *list ) { return list->count == 0; } /* ==================================================================== Return entry containing the passed item. Return Value: True if entry found else False. ==================================================================== */ List_Entry *list_entry( List *list, void *item ) { List_Entry *entry = list->head.next; while ( entry != &list->tail ) { if ( entry->item == item ) return entry; entry = entry->next; } return 0; } /* ==================================================================== Transfer an entry from one list to another list by removing from 'source' and adding to 'dest' thus if source does not contain the item this is equvalent to list_add( dest, item ). ==================================================================== */ void list_transfer( List *source, List *dest, void *item ) { int old_auto_flag; /* add to destination */ list_add( dest, item ); /* as the pointer is added to dest without changes only the empty entry must be deleted in source */ old_auto_flag = source->auto_delete; source->auto_delete = LIST_NO_AUTO_DELETE; list_delete_item( source, item ); source->auto_delete = old_auto_flag; } /* ==================================================================== Deqeue the first list entry. (must not use auto_delete therefore) ==================================================================== */ void *list_dequeue( List *list ) { void *item; if ( list->count > 0 ) { item = list->head.next->item; list_delete_pos( list, 0 ); return item; } else return 0; } lgeneral-1.3.1/lgc-pg/terrain.c0000664000175000017500000004403512643743565013236 00000000000000/*************************************************************************** terrain.c - description ------------------- begin : Tue Mar 12 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include #include #include #include "shp.h" #include "terrain.h" #include "misc.h" /* ==================================================================== Externals ==================================================================== */ extern char *source_path; extern char *dest_path; extern char target_name[128]; extern char *move_types[]; extern int move_type_count; extern int separate_bridges; /* ==================================================================== Weather types. ==================================================================== */ #define NUM_WEATHER_TYPES 12 struct { char *id, *name; int ground; char *flags, *set_ext; } weatherTypes[NUM_WEATHER_TYPES] = { { "fair", "Fair(Dry)", 0, "none", "" }, /* f */ { "clouds", "Overcast(Dry)", 0, "none", "" }, /* o */ { "r", "Raining(Dry)", 0, "no_air_attack°bad_sight", "" }, { "s", "Snowing(Dry)", 0, "no_air_attack°bad_sight", "" }, { "m", "Fair(Mud)", 1, "none", "_rain" }, { "M", "Overcast(Mud)", 1, "none", "_rain" }, { "rain", "Raining(Mud)", 1, "no_air_attack°bad_sight", "_rain" }, /* R */ { "x", "Snowing(Mud)", 1, "no_air_attack°bad_sight", "_rain" }, { "i", "Fair(Ice)", 2, "double_fuel_cost", "_snow" }, { "I", "Overcast(Ice)", 2, "double_fuel_cost", "_snow" }, { "X", "Raining(Ice)", 2, "double_fuel_cost°no_air_attack°bad_sight", "_snow" }, { "snow", "Snowing(Ice)", 2, "double_fuel_cost°no_air_attack°bad_sight", "_snow" } /* S */ }; /* ==================================================================== Terrain definitions. ==================================================================== */ #define NUM_TERRAIN_TYPES 16 struct { char id, *name, *set_name; int min_entr, max_entr, max_ini; char *spot_costs, *move_costs[3]; char *flags[3]; } terrainTypes[NUM_TERRAIN_TYPES] = { { 'c', "Clear", "clear", 0, 5, 99, "112211221122", { "1121A1X1", "2331A1X2", "1221A1X2" }, { "none","none","none" } }, { 'r', "Road", "road", 0, 5, 99, "112211221122", { "1111A1X1", "1121A1X1", "1121A1X1" }, { "none","none","none" } }, { 'b', "Bridge", "bridge", 0, 5, 99, "112211221122", { "1111A1X1", "1121A1X1", "1121A1X1" }, { "none","none","none" } }, { '#', "Fields", "fields", 0, 5, 3, "112211221122", { "4AA2A1X3", "AAA2A1XA", "AAA2A1X3" }, { "none","none","none" } }, { '~', "Rough", "rough", 1, 6, 5, "112211221122", { "2242A1X3", "34A2A1XA", "23A3A1X3" }, { "none","none","none" } }, { 'R', "River", "river", 0, 5, 99, "112211221122", { "AAAAA1XA", "XXXAA1XX", "2232A1X2" }, { "river","river","none" } }, { 'f', "Forest", "forest", 2, 7, 3, "222222222222", { "2232A1X3", "33A2A1X4", "22A2A1X4" }, { "inf_close_def","inf_close_def","inf_close_def" } }, { 'F', "Fortification", "fort", 2, 7, 3, "112211221122", { "1121A1X1", "2241A1X3", "1131A1X2" }, { "inf_close_def","inf_close_def","inf_close_def" } }, { 'a', "Airfield", "airfield", 2, 7, 99, "112211221122", { "1111A1X1", "1121A1X1", "1121A1X1" }, { "supply_air°supply_ground","supply_air°supply_ground","supply_air°supply_ground"} }, { 't', "Town", "town", 3, 8, 1, "222222222222", { "1111A1X1", "1121A1X1", "1121A1X1" }, { "inf_close_def°supply_ground","inf_close_def°supply_ground","inf_close_def°supply_ground"} }, { 'o', "Ocean", "ocean", 0, 0, 99, "112211221122", { "XXXXX11X", "XXXXX11X", "XXXXX11X" }, { "none","none","none" } }, { 'm', "Mountain", "mountain", 1, 6, 8, "222222222222", { "AAAAA1XA", "AAAAA1XA", "AAAAA1XA" }, { "inf_close_def","inf_close_def","inf_close_def" } }, { 's', "Swamp", "swamp", 0, 3, 4, "112211221122", { "44A2X1XA", "XXXAX1XX", "2231X1X3" }, { "swamp","swamp","none" } }, { 'd', "Desert", "desert", 0, 5, 99, "112211221122", { "1132A1X2", "1132A1X2", "1132A1X2" }, { "none","none","none" } }, { 'D', "Rough Desert", "rough_desert", 1, 6, 99, "112211221122", { "2242A1X3", "34A2A1X3", "23A3A1X3" }, { "none","none","none" } }, { 'h', "Harbor", "harbor", 3, 8, 5, "112211221122", { "1111A111", "1121A111", "1121A111" }, { "inf_close_def°supply_ground°supply_ships", "inf_close_def°supply_ground°supply_ships", "inf_close_def°supply_ground°supply_ships"} } }; /* ==================================================================== Terrain tile types. ==================================================================== */ int terrain_tile_count = 237; char tile_type[] = { 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'c', 'c', 'o', 'o', 'o', 'h', 'h', 'h', 'h', 'b', 'o', 'b', 'c', 'c', 'c', 'c', 'r', 'c', 'c', 'b', 'b', 'o', 'c', 'c', 'c', 'c', 'r', 'r', 'r', 'o', 'o', 'R', 'R', 'R', 'R', 'r', 'r', 'r', 'r', 'b', 'R', 'R', 'R', 'R', 'R', 'r', 'r', 'r', 'r', 'b', 'R', 'R', 'o', 'r', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 's', 't', 't', 't', 'a', 'c', 'c', '~', '~', 's', 's', 'f', 'f', 'f', 'f', 'c', '~', '~', '~', '~', 's', 'f', 'f', 'f', 'c', 'c', 'c', 'F', 'F', 'F', 'r', 'r', 'r', '#', 'F', 'F', 'F', 'F', 'R', 'F', 'r', 'R', 'r', '#', 'F', 'F', 'F', 'F', 'F', 'F', 'r', 'r', 'r', '#', 'F', 'F', 'F', 'm', 'm', 'd', 'm', 'm', 'd', 'm', 'm', 'm', 'd', 'm', 'm', 'm', 'd', 'd', 'm', 'm', 'm', 'm', 'D', 'D', 'D', 'D', 'D', 't', 'F', /* ??? -- really mountains ??? */ 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', 'm', /* ??? */ 'b', 'b', 'b', 'b', 'R', 'R', 'R', 'c', 'h', 'h', 'd', 'd', 'd', 'd' }; /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Convert map tiles belonging to terrain type 'id' from TACMAP.SHP into one bitmap called 'fname'. ==================================================================== */ static int terrain_convert_tiles( char id, PG_Shp *shp, char *fname ) { Uint32 grass_pixel, snow_pixel, mud_pixel; int i, j, pos; SDL_Rect srect, drect; SDL_Surface *surf; char path[MAXPATHLEN]; int count = 0; int broken_pos = 0; /* count occurence */ for ( i = 0; i < terrain_tile_count; i++ ) if ( tile_type[i] == id ) count++; /* create surface */ surf = SDL_CreateRGBSurface( SDL_SWSURFACE, 60 * count, 50, shp->surf->format->BitsPerPixel, shp->surf->format->Rmask, shp->surf->format->Gmask, shp->surf->format->Bmask, shp->surf->format->Amask ); if ( surf == 0 ) { fprintf( stderr, "error creating surface: %s\n", SDL_GetError() ); goto failure; } /* modified colors */ grass_pixel = SDL_MapRGB( surf->format, 192, 192, 112 ); snow_pixel = SDL_MapRGB( surf->format, 229, 229, 229 ); mud_pixel = SDL_MapRGB( surf->format, 206, 176, 101 ); /* copy pics */ srect.w = drect.w = 60; srect.h = drect.h = 50; srect.x = drect.y = 0; pos = 0; count = 0; for ( i = 0; i < terrain_tile_count; i++ ) if ( tile_type[i] == id ) { /* road tile #37 is buggy ... */ if (i != 37) { srect.y = i * 50; drect.x = pos; SDL_BlitSurface( shp->surf, &srect, surf, &drect ); } else broken_pos = pos; /* ... but can be repaired by mirroring tile #49 */ if (i == 49) { srect.y = i * 50; drect.x = broken_pos; copy_surf_mirrored(shp->surf, &srect, surf, &drect); } pos += 60; count++; } /* default terrain */ snprintf( path, MAXPATHLEN, "%s/gfx/terrain/%s/%s.bmp", dest_path, target_name, fname ); if ( SDL_SaveBMP( surf, path ) != 0 ) { fprintf( stderr, "%s: %s\n", path, SDL_GetError() ); goto failure; } /* snow terrain */ for ( j = 0; j < surf->h; j++ ) for ( i = 0; i < surf->w; i++ ) if ( grass_pixel == get_pixel( surf, i, j ) ) set_pixel( surf, i, j, snow_pixel ); snprintf( path, MAXPATHLEN, "%s/gfx/terrain/%s/%s_snow.bmp", dest_path, target_name, fname ); if ( SDL_SaveBMP( surf, path ) != 0 ) { fprintf( stderr, "%s: %s\n", path, SDL_GetError() ); goto failure; } /* rain terrain */ for ( j = 0; j < surf->h; j++ ) for ( i = 0; i < surf->w; i++ ) if ( snow_pixel == get_pixel( surf, i, j ) ) set_pixel( surf, i, j, mud_pixel ); snprintf( path, MAXPATHLEN, "%s/gfx/terrain/%s/%s_rain.bmp", dest_path, target_name, fname ); if ( SDL_SaveBMP( surf, path ) != 0 ) { fprintf( stderr, "%s: %s\n", path, SDL_GetError() ); goto failure; } SDL_FreeSurface( surf ); return 1; failure: if ( surf ) SDL_FreeSurface( surf ); return 0; } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== Convert terrain database. ==================================================================== */ int terrain_convert_database( void ) { int i, j, k; FILE *file = 0; char path[MAXPATHLEN]; printf( "Terrain database...\n" ); snprintf( path, MAXPATHLEN, "%s/maps/%s.tdb", dest_path, target_name ); if ( ( file = fopen( path, "wb" ) ) == 0 ) { fprintf( stderr, "%s: access denied\n", path ); return 0; } /* weather types */ fprintf( file, "@\n" ); fprintf( file, "\n", weatherTypes[i].id, weatherTypes[i].name, weatherTypes[i].flags ); fprintf( file, ">\n" ); /* domain */ fprintf( file, "domain»pg\n" ); /* additional graphics and sounds */ fprintf( file, "hex_width»60\nhex_height»50\nhex_x_offset»45\nhex_y_offset»25\n" ); fprintf( file, "fog»pg/fog.bmp\ndanger»pg/danger.bmp\ngrid»pg/grid.bmp\nframe»pg/select_frame.bmp\n" ); fprintf( file, "crosshair»pg/crosshair.bmp\nexplosion»pg/explosion.bmp\ndamage_bar»pg/damage_bars.bmp\n" ); fprintf( file, "explosion_sound»pg/explosion.wav\nselect_sound»pg/select.wav\n" ); /* terrain types */ fprintf( file, "\n" ); fprintf( file, "\n" ); fprintf( file, "\n" ); } fprintf( file, ">\n" ); fprintf( file, "min_entr»%d\nmax_entr»%d\n", terrainTypes[i].min_entr,terrainTypes[i].max_entr); fprintf( file, "max_init»%d\n", terrainTypes[i].max_ini ); fprintf( file, "\n" ); fprintf( file, ">\n" ); } fprintf( file, ">" ); fclose( file ); return 1; } /* ==================================================================== Convert terrain graphics ==================================================================== */ int terrain_convert_graphics( void ) { int i; SDL_Rect srect, drect; PG_Shp *shp; char path[MAXPATHLEN], path2[MAXPATHLEN]; SDL_Surface *surf; /* if target name differs from create pg directory as well; the standard * images just copy from converter are the same for all campaigns and not * duplicated. */ snprintf( path, MAXPATHLEN, "%s/gfx/terrain/%s", dest_path, target_name ); mkdir( path, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH ); if (strcmp(target_name, "pg")) { snprintf( path, MAXPATHLEN, "%s/gfx/terrain/pg", dest_path ); mkdir( path, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH ); } printf( "Terrain graphics...\n" ); /* explosion */ if ( ( shp = shp_load( "EXPLODE.SHP" ) ) == 0 ) return 0; surf = SDL_CreateRGBSurface( SDL_SWSURFACE, 60 * 5, 50, shp->surf->format->BitsPerPixel, shp->surf->format->Rmask, shp->surf->format->Gmask, shp->surf->format->Bmask, shp->surf->format->Amask ); if ( surf == 0 ) { fprintf( stderr, "error creating surface: %s\n", SDL_GetError() ); goto failure; } srect.w = drect.w = 60; srect.h = drect.h = 50; srect.x = drect.y = 0; for ( i = 0; i < 5; i++ ) { srect.y = i * srect.h; drect.x = i * srect.w; SDL_BlitSurface( shp->surf, &srect, surf, &drect ); } snprintf( path, MAXPATHLEN, "%s/gfx/terrain/pg/explosion.bmp", dest_path ); if ( SDL_SaveBMP( surf, path ) != 0 ) { fprintf( stderr, "%s: %s\n", path, SDL_GetError() ); goto failure; } SDL_FreeSurface( surf ); shp_free(&shp); /* fog */ snprintf( path, MAXPATHLEN, "%s/convdata/fog.bmp", get_gamedir() ); snprintf( path2, MAXPATHLEN, "%s/gfx/terrain/pg/fog.bmp", dest_path ); copy( path, path2 ); /* danger */ snprintf( path, MAXPATHLEN, "%s/convdata/danger.bmp", get_gamedir() ); snprintf( path2, MAXPATHLEN, "%s/gfx/terrain/pg/danger.bmp", dest_path ); copy( path, path2 ); /* grid */ snprintf( path, MAXPATHLEN, "%s/convdata/grid.bmp", get_gamedir() ); snprintf( path2, MAXPATHLEN, "%s/gfx/terrain/pg/grid.bmp", dest_path ); copy( path, path2 ); /* select frame */ snprintf( path, MAXPATHLEN, "%s/convdata/select_frame.bmp", get_gamedir() ); snprintf( path2, MAXPATHLEN, "%s/gfx/terrain/pg/select_frame.bmp", dest_path ); copy( path, path2 ); /* crosshair */ snprintf( path, MAXPATHLEN, "%s/convdata/crosshair.bmp", get_gamedir() ); snprintf( path2, MAXPATHLEN, "%s/gfx/terrain/pg/crosshair.bmp", dest_path ); copy( path, path2 ); /* damage bars */ snprintf( path, MAXPATHLEN, "%s/convdata/damage_bars.bmp", get_gamedir() ); snprintf( path2, MAXPATHLEN, "%s/gfx/terrain/pg/damage_bars.bmp", dest_path ); copy( path, path2 ); /* terrain graphics */ if ( ( shp = shp_load( "TACMAP.SHP" ) ) == 0 ) goto failure; if ( !terrain_convert_tiles( 'c', shp, "clear" ) ) goto failure; if ( !terrain_convert_tiles( 'r', shp, "road" ) ) goto failure; if (separate_bridges) /* if not, it's replaced with r ids */ if ( !terrain_convert_tiles( 'b', shp, "bridge" ) ) goto failure; if ( !terrain_convert_tiles( '#', shp, "fields" ) ) goto failure; if ( !terrain_convert_tiles( '~', shp, "rough" ) ) goto failure; if ( !terrain_convert_tiles( 'R', shp, "river" ) ) goto failure; if ( !terrain_convert_tiles( 'f', shp, "forest" ) ) goto failure; if ( !terrain_convert_tiles( 'F', shp, "fort" ) ) goto failure; if ( !terrain_convert_tiles( 'a', shp, "airfield" ) ) goto failure; if ( !terrain_convert_tiles( 't', shp, "town" ) ) goto failure; if ( !terrain_convert_tiles( 'o', shp, "ocean" ) ) goto failure; if ( !terrain_convert_tiles( 'm', shp, "mountain" ) ) goto failure; if ( !terrain_convert_tiles( 's', shp, "swamp" ) ) goto failure; if ( !terrain_convert_tiles( 'd', shp, "desert" ) ) goto failure; if ( !terrain_convert_tiles( 'D', shp, "rough_desert" ) ) goto failure; if ( !terrain_convert_tiles( 'h', shp, "harbor" ) ) goto failure; shp_free(&shp); return 1; failure: if ( surf ) SDL_FreeSurface( surf ); if ( shp ) shp_free( &shp ); return 0; } lgeneral-1.3.1/lgc-pg/Makefile.in0000664000175000017500000014337512643745055013476 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = lgc-pg$(EXEEXT) shptool$(EXEEXT) subdir = lgc-pg DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" PROGRAMS = $(bin_PROGRAMS) am_lgc_pg_OBJECTS = lgc_pg-main.$(OBJEXT) lgc_pg-units.$(OBJEXT) \ lgc_pg-shp.$(OBJEXT) lgc_pg-nations.$(OBJEXT) \ lgc_pg-terrain.$(OBJEXT) lgc_pg-maps.$(OBJEXT) \ lgc_pg-scenarios.$(OBJEXT) lgc_pg-list.$(OBJEXT) \ lgc_pg-misc.$(OBJEXT) lgc_pg-parser.$(OBJEXT) lgc_pg_OBJECTS = $(am_lgc_pg_OBJECTS) lgc_pg_LDADD = $(LDADD) lgc_pg_LINK = $(CCLD) $(lgc_pg_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ am_shptool_OBJECTS = shptool-shptool.$(OBJEXT) shptool-misc.$(OBJEXT) \ shptool-shp.$(OBJEXT) shptool_OBJECTS = $(am_shptool_OBJECTS) shptool_LDADD = $(LDADD) shptool_LINK = $(CCLD) $(shptool_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(lgc_pg_SOURCES) $(shptool_SOURCES) DIST_SOURCES = $(lgc_pg_SOURCES) $(shptool_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ @inst_flag@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = $(top_builddir)/util/libutil.a @SDL_LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ lgc_pg_SOURCES = main.c units.c shp.c nations.c terrain.c maps.c scenarios.c \ list.c misc.c parser.c lgc-pg.1 lgc_pg_CFLAGS = @SDL_CFLAGS@ INCLUDES = -I$(top_srcdir) shptool_SOURCES = shptool.c misc.c shp.c shptool_CFLAGS = -DSHPTOOL @SDL_CFLAGS@ man_MANS = lgc-pg.1 EXTRA_DIST = units.h shp.h nations.h terrain.h maps.h scenarios.h \ list.h misc.h parser.h shptool.c SUBDIRS = convdata all: all-recursive .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lgc-pg/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign lgc-pg/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) lgc-pg$(EXEEXT): $(lgc_pg_OBJECTS) $(lgc_pg_DEPENDENCIES) $(EXTRA_lgc_pg_DEPENDENCIES) @rm -f lgc-pg$(EXEEXT) $(AM_V_CCLD)$(lgc_pg_LINK) $(lgc_pg_OBJECTS) $(lgc_pg_LDADD) $(LIBS) shptool$(EXEEXT): $(shptool_OBJECTS) $(shptool_DEPENDENCIES) $(EXTRA_shptool_DEPENDENCIES) @rm -f shptool$(EXEEXT) $(AM_V_CCLD)$(shptool_LINK) $(shptool_OBJECTS) $(shptool_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgc_pg-list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgc_pg-main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgc_pg-maps.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgc_pg-misc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgc_pg-nations.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgc_pg-parser.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgc_pg-scenarios.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgc_pg-shp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgc_pg-terrain.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lgc_pg-units.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shptool-misc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shptool-shp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shptool-shptool.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` lgc_pg-main.o: main.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-main.o -MD -MP -MF $(DEPDIR)/lgc_pg-main.Tpo -c -o lgc_pg-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-main.Tpo $(DEPDIR)/lgc_pg-main.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='lgc_pg-main.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c lgc_pg-main.obj: main.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-main.obj -MD -MP -MF $(DEPDIR)/lgc_pg-main.Tpo -c -o lgc_pg-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-main.Tpo $(DEPDIR)/lgc_pg-main.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='lgc_pg-main.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` lgc_pg-units.o: units.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-units.o -MD -MP -MF $(DEPDIR)/lgc_pg-units.Tpo -c -o lgc_pg-units.o `test -f 'units.c' || echo '$(srcdir)/'`units.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-units.Tpo $(DEPDIR)/lgc_pg-units.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='units.c' object='lgc_pg-units.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-units.o `test -f 'units.c' || echo '$(srcdir)/'`units.c lgc_pg-units.obj: units.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-units.obj -MD -MP -MF $(DEPDIR)/lgc_pg-units.Tpo -c -o lgc_pg-units.obj `if test -f 'units.c'; then $(CYGPATH_W) 'units.c'; else $(CYGPATH_W) '$(srcdir)/units.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-units.Tpo $(DEPDIR)/lgc_pg-units.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='units.c' object='lgc_pg-units.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-units.obj `if test -f 'units.c'; then $(CYGPATH_W) 'units.c'; else $(CYGPATH_W) '$(srcdir)/units.c'; fi` lgc_pg-shp.o: shp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-shp.o -MD -MP -MF $(DEPDIR)/lgc_pg-shp.Tpo -c -o lgc_pg-shp.o `test -f 'shp.c' || echo '$(srcdir)/'`shp.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-shp.Tpo $(DEPDIR)/lgc_pg-shp.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shp.c' object='lgc_pg-shp.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-shp.o `test -f 'shp.c' || echo '$(srcdir)/'`shp.c lgc_pg-shp.obj: shp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-shp.obj -MD -MP -MF $(DEPDIR)/lgc_pg-shp.Tpo -c -o lgc_pg-shp.obj `if test -f 'shp.c'; then $(CYGPATH_W) 'shp.c'; else $(CYGPATH_W) '$(srcdir)/shp.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-shp.Tpo $(DEPDIR)/lgc_pg-shp.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shp.c' object='lgc_pg-shp.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-shp.obj `if test -f 'shp.c'; then $(CYGPATH_W) 'shp.c'; else $(CYGPATH_W) '$(srcdir)/shp.c'; fi` lgc_pg-nations.o: nations.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-nations.o -MD -MP -MF $(DEPDIR)/lgc_pg-nations.Tpo -c -o lgc_pg-nations.o `test -f 'nations.c' || echo '$(srcdir)/'`nations.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-nations.Tpo $(DEPDIR)/lgc_pg-nations.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nations.c' object='lgc_pg-nations.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-nations.o `test -f 'nations.c' || echo '$(srcdir)/'`nations.c lgc_pg-nations.obj: nations.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-nations.obj -MD -MP -MF $(DEPDIR)/lgc_pg-nations.Tpo -c -o lgc_pg-nations.obj `if test -f 'nations.c'; then $(CYGPATH_W) 'nations.c'; else $(CYGPATH_W) '$(srcdir)/nations.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-nations.Tpo $(DEPDIR)/lgc_pg-nations.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='nations.c' object='lgc_pg-nations.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-nations.obj `if test -f 'nations.c'; then $(CYGPATH_W) 'nations.c'; else $(CYGPATH_W) '$(srcdir)/nations.c'; fi` lgc_pg-terrain.o: terrain.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-terrain.o -MD -MP -MF $(DEPDIR)/lgc_pg-terrain.Tpo -c -o lgc_pg-terrain.o `test -f 'terrain.c' || echo '$(srcdir)/'`terrain.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-terrain.Tpo $(DEPDIR)/lgc_pg-terrain.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='terrain.c' object='lgc_pg-terrain.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-terrain.o `test -f 'terrain.c' || echo '$(srcdir)/'`terrain.c lgc_pg-terrain.obj: terrain.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-terrain.obj -MD -MP -MF $(DEPDIR)/lgc_pg-terrain.Tpo -c -o lgc_pg-terrain.obj `if test -f 'terrain.c'; then $(CYGPATH_W) 'terrain.c'; else $(CYGPATH_W) '$(srcdir)/terrain.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-terrain.Tpo $(DEPDIR)/lgc_pg-terrain.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='terrain.c' object='lgc_pg-terrain.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-terrain.obj `if test -f 'terrain.c'; then $(CYGPATH_W) 'terrain.c'; else $(CYGPATH_W) '$(srcdir)/terrain.c'; fi` lgc_pg-maps.o: maps.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-maps.o -MD -MP -MF $(DEPDIR)/lgc_pg-maps.Tpo -c -o lgc_pg-maps.o `test -f 'maps.c' || echo '$(srcdir)/'`maps.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-maps.Tpo $(DEPDIR)/lgc_pg-maps.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='maps.c' object='lgc_pg-maps.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-maps.o `test -f 'maps.c' || echo '$(srcdir)/'`maps.c lgc_pg-maps.obj: maps.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-maps.obj -MD -MP -MF $(DEPDIR)/lgc_pg-maps.Tpo -c -o lgc_pg-maps.obj `if test -f 'maps.c'; then $(CYGPATH_W) 'maps.c'; else $(CYGPATH_W) '$(srcdir)/maps.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-maps.Tpo $(DEPDIR)/lgc_pg-maps.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='maps.c' object='lgc_pg-maps.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-maps.obj `if test -f 'maps.c'; then $(CYGPATH_W) 'maps.c'; else $(CYGPATH_W) '$(srcdir)/maps.c'; fi` lgc_pg-scenarios.o: scenarios.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-scenarios.o -MD -MP -MF $(DEPDIR)/lgc_pg-scenarios.Tpo -c -o lgc_pg-scenarios.o `test -f 'scenarios.c' || echo '$(srcdir)/'`scenarios.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-scenarios.Tpo $(DEPDIR)/lgc_pg-scenarios.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scenarios.c' object='lgc_pg-scenarios.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-scenarios.o `test -f 'scenarios.c' || echo '$(srcdir)/'`scenarios.c lgc_pg-scenarios.obj: scenarios.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-scenarios.obj -MD -MP -MF $(DEPDIR)/lgc_pg-scenarios.Tpo -c -o lgc_pg-scenarios.obj `if test -f 'scenarios.c'; then $(CYGPATH_W) 'scenarios.c'; else $(CYGPATH_W) '$(srcdir)/scenarios.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-scenarios.Tpo $(DEPDIR)/lgc_pg-scenarios.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='scenarios.c' object='lgc_pg-scenarios.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-scenarios.obj `if test -f 'scenarios.c'; then $(CYGPATH_W) 'scenarios.c'; else $(CYGPATH_W) '$(srcdir)/scenarios.c'; fi` lgc_pg-list.o: list.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-list.o -MD -MP -MF $(DEPDIR)/lgc_pg-list.Tpo -c -o lgc_pg-list.o `test -f 'list.c' || echo '$(srcdir)/'`list.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-list.Tpo $(DEPDIR)/lgc_pg-list.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='list.c' object='lgc_pg-list.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-list.o `test -f 'list.c' || echo '$(srcdir)/'`list.c lgc_pg-list.obj: list.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-list.obj -MD -MP -MF $(DEPDIR)/lgc_pg-list.Tpo -c -o lgc_pg-list.obj `if test -f 'list.c'; then $(CYGPATH_W) 'list.c'; else $(CYGPATH_W) '$(srcdir)/list.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-list.Tpo $(DEPDIR)/lgc_pg-list.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='list.c' object='lgc_pg-list.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-list.obj `if test -f 'list.c'; then $(CYGPATH_W) 'list.c'; else $(CYGPATH_W) '$(srcdir)/list.c'; fi` lgc_pg-misc.o: misc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-misc.o -MD -MP -MF $(DEPDIR)/lgc_pg-misc.Tpo -c -o lgc_pg-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-misc.Tpo $(DEPDIR)/lgc_pg-misc.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc.c' object='lgc_pg-misc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c lgc_pg-misc.obj: misc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-misc.obj -MD -MP -MF $(DEPDIR)/lgc_pg-misc.Tpo -c -o lgc_pg-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-misc.Tpo $(DEPDIR)/lgc_pg-misc.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc.c' object='lgc_pg-misc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi` lgc_pg-parser.o: parser.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-parser.o -MD -MP -MF $(DEPDIR)/lgc_pg-parser.Tpo -c -o lgc_pg-parser.o `test -f 'parser.c' || echo '$(srcdir)/'`parser.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-parser.Tpo $(DEPDIR)/lgc_pg-parser.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parser.c' object='lgc_pg-parser.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-parser.o `test -f 'parser.c' || echo '$(srcdir)/'`parser.c lgc_pg-parser.obj: parser.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -MT lgc_pg-parser.obj -MD -MP -MF $(DEPDIR)/lgc_pg-parser.Tpo -c -o lgc_pg-parser.obj `if test -f 'parser.c'; then $(CYGPATH_W) 'parser.c'; else $(CYGPATH_W) '$(srcdir)/parser.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lgc_pg-parser.Tpo $(DEPDIR)/lgc_pg-parser.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='parser.c' object='lgc_pg-parser.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lgc_pg_CFLAGS) $(CFLAGS) -c -o lgc_pg-parser.obj `if test -f 'parser.c'; then $(CYGPATH_W) 'parser.c'; else $(CYGPATH_W) '$(srcdir)/parser.c'; fi` shptool-shptool.o: shptool.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shptool_CFLAGS) $(CFLAGS) -MT shptool-shptool.o -MD -MP -MF $(DEPDIR)/shptool-shptool.Tpo -c -o shptool-shptool.o `test -f 'shptool.c' || echo '$(srcdir)/'`shptool.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shptool-shptool.Tpo $(DEPDIR)/shptool-shptool.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shptool.c' object='shptool-shptool.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shptool_CFLAGS) $(CFLAGS) -c -o shptool-shptool.o `test -f 'shptool.c' || echo '$(srcdir)/'`shptool.c shptool-shptool.obj: shptool.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shptool_CFLAGS) $(CFLAGS) -MT shptool-shptool.obj -MD -MP -MF $(DEPDIR)/shptool-shptool.Tpo -c -o shptool-shptool.obj `if test -f 'shptool.c'; then $(CYGPATH_W) 'shptool.c'; else $(CYGPATH_W) '$(srcdir)/shptool.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shptool-shptool.Tpo $(DEPDIR)/shptool-shptool.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shptool.c' object='shptool-shptool.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shptool_CFLAGS) $(CFLAGS) -c -o shptool-shptool.obj `if test -f 'shptool.c'; then $(CYGPATH_W) 'shptool.c'; else $(CYGPATH_W) '$(srcdir)/shptool.c'; fi` shptool-misc.o: misc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shptool_CFLAGS) $(CFLAGS) -MT shptool-misc.o -MD -MP -MF $(DEPDIR)/shptool-misc.Tpo -c -o shptool-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shptool-misc.Tpo $(DEPDIR)/shptool-misc.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc.c' object='shptool-misc.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shptool_CFLAGS) $(CFLAGS) -c -o shptool-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c shptool-misc.obj: misc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shptool_CFLAGS) $(CFLAGS) -MT shptool-misc.obj -MD -MP -MF $(DEPDIR)/shptool-misc.Tpo -c -o shptool-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shptool-misc.Tpo $(DEPDIR)/shptool-misc.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='misc.c' object='shptool-misc.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shptool_CFLAGS) $(CFLAGS) -c -o shptool-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi` shptool-shp.o: shp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shptool_CFLAGS) $(CFLAGS) -MT shptool-shp.o -MD -MP -MF $(DEPDIR)/shptool-shp.Tpo -c -o shptool-shp.o `test -f 'shp.c' || echo '$(srcdir)/'`shp.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shptool-shp.Tpo $(DEPDIR)/shptool-shp.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shp.c' object='shptool-shp.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shptool_CFLAGS) $(CFLAGS) -c -o shptool-shp.o `test -f 'shp.c' || echo '$(srcdir)/'`shp.c shptool-shp.obj: shp.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shptool_CFLAGS) $(CFLAGS) -MT shptool-shp.obj -MD -MP -MF $(DEPDIR)/shptool-shp.Tpo -c -o shptool-shp.obj `if test -f 'shp.c'; then $(CYGPATH_W) 'shp.c'; else $(CYGPATH_W) '$(srcdir)/shp.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/shptool-shp.Tpo $(DEPDIR)/shptool-shp.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='shp.c' object='shptool-shp.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(shptool_CFLAGS) $(CFLAGS) -c -o shptool-shp.obj `if test -f 'shp.c'; then $(CYGPATH_W) 'shp.c'; else $(CYGPATH_W) '$(srcdir)/shp.c'; fi` install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) $(MANS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-man install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-man1 install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-man uninstall-man: uninstall-man1 .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-binPROGRAMS clean-generic cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-binPROGRAMS install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-man1 install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-man uninstall-man1 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/lgc-pg/terrain.h0000664000175000017500000000271012140770460013217 00000000000000/*************************************************************************** terrain.h - description ------------------- begin : Tue Mar 12 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __TERRAIN_H #define __TERRAIN_H /* ==================================================================== Convert terrain database. ==================================================================== */ int terrain_convert_database( void ); /* ==================================================================== Convert terrain graphics ==================================================================== */ int terrain_convert_graphics( void ); #endif lgeneral-1.3.1/lgc-pg/nations.c0000664000175000017500000001217212575247507013241 00000000000000/*************************************************************************** nations.h - description ------------------- begin : Tue Mar 12 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include #include "misc.h" #include "shp.h" #include "nations.h" /* ==================================================================== Externals ==================================================================== */ extern char *source_path; extern char *dest_path; extern char target_name[128]; /* ==================================================================== Nations. ==================================================================== */ int nation_count = 24; char *nations[] = { "aus", "Austria", "0", "bel", "Belgia", "1", "bul", "Bulgaria", "2", "lux", "Luxemburg", "3", "den", "Denmark", "4", "fin", "Finnland", "5", "fra", "France", "6", "ger", "Germany", "7", "gre", "Greece", "8", "usa", "USA", "9", "hun", "Hungary", "10", "tur", "Turkey", "11", "it", "Italy", "12", "net", "Netherlands", "13", "nor", "Norway", "14", "pol", "Poland", "15", "por", "Portugal", "16", "rum", "Rumania", "17", "esp", "Spain", "18", "so", "Sovjetunion", "19", "swe", "Sweden", "20", "swi", "Switzerland", "21", "eng", "Great Britain", "22", "yug", "Yugoslavia", "23" }; /* ==================================================================== Create nations database and convert graphics. Only called when converting full campaign. For custom campaigns only flags may differ as nation definitions are hardcoded in converter to PG nations. ==================================================================== */ int nations_convert( void ) { int i, height = 0; FILE *file; char path[MAXPATHLEN]; SDL_Rect srect, drect; PG_Shp *shp =0; SDL_Surface *surf = 0; Uint32 ckey = MAPRGB( CKEY_RED, CKEY_GREEN, CKEY_BLUE ); /* transparency key */ /* nation database */ printf( "Nation database...\n" ); snprintf( path, MAXPATHLEN, "%s/nations/%s.ndb", dest_path, target_name ); if ( ( file = fopen( path, "wb" ) ) == 0 ) { fprintf( stderr, "%s: access denied\n", path ); return 0; } fprintf( file, "@\n" ); fprintf( file, "icons»%s.bmp\n", target_name ); fprintf( file, "icon_width»20\nicon_height»13\n" ); /* domain */ fprintf( file, "domain»pg\n" ); fprintf( file, "\n", nations[i * 3], nations[i * 3 + 1], nations[i * 3 + 2] ); fprintf( file, ">\n" ); fclose( file ); /* nation graphics */ printf( "Nation flag graphics...\n" ); /* create new surface */ if ( ( shp = shp_load( "FLAGS.SHP" ) ) == 0 ) return 0; for ( i = 0; i < nation_count; i++ ) if ( shp->headers[i].valid ) height += shp->headers[i].actual_height; surf = SDL_CreateRGBSurface( SDL_SWSURFACE, shp->headers[0].actual_width, height, shp->surf->format->BitsPerPixel, shp->surf->format->Rmask, shp->surf->format->Gmask, shp->surf->format->Bmask, shp->surf->format->Amask ); if ( surf == 0 ) { fprintf( stderr, "error creating surface: %s\n", SDL_GetError() ); goto failure; } SDL_FillRect( surf, 0, ckey ); /* copy flags */ srect.w = drect.w = shp->headers[0].actual_width; srect.h = drect.h = shp->headers[0].actual_height; height = 0; for ( i = 0; i < nation_count; i++ ) { srect.x = shp->headers[i].x1; srect.y = shp->headers[i].y1 + shp->offsets[i]; drect.x = 0; drect.y = height; SDL_BlitSurface( shp->surf, &srect, surf, &drect ); height += shp->headers[i].actual_height; } snprintf( path, MAXPATHLEN, "%s/gfx/flags/%s.bmp", dest_path, target_name ); if ( SDL_SaveBMP( surf, path ) ) { fprintf( stderr, "%s: %s\n", path, SDL_GetError() ); goto failure; } SDL_FreeSurface( surf ); shp_free( &shp ); return 1; failure: if ( surf ) SDL_FreeSurface( surf ); if ( shp ) shp_free( &shp ); return 0; } lgeneral-1.3.1/lgc-pg/Makefile.am0000664000175000017500000000076212140770460013443 00000000000000bin_PROGRAMS = lgc-pg shptool lgc_pg_SOURCES = main.c units.c shp.c nations.c terrain.c maps.c scenarios.c \ list.c misc.c parser.c lgc-pg.1 lgc_pg_CFLAGS = @SDL_CFLAGS@ LIBS = $(top_builddir)/util/libutil.a @SDL_LIBS@ DEFS = @DEFS@ @inst_flag@ INCLUDES = -I$(top_srcdir) shptool_SOURCES = shptool.c misc.c shp.c shptool_CFLAGS = -DSHPTOOL @SDL_CFLAGS@ man_MANS = lgc-pg.1 EXTRA_DIST = units.h shp.h nations.h terrain.h maps.h scenarios.h \ list.h misc.h parser.h shptool.c SUBDIRS = convdata lgeneral-1.3.1/lgc-pg/scenarios.h0000664000175000017500000000255312140770460013546 00000000000000/*************************************************************************** scenarios.h - description ------------------- begin : Tue Mar 12 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __SCENARIOS_H #define __SCENARIOS_H /* ==================================================================== If scen_id == -1 convert all scenarios found in 'source_path'. If scen_id >= 0 convert single scenario from current working directory. ==================================================================== */ int scenarios_convert( int scen_id ); #endif lgeneral-1.3.1/lgc-pg/shp.h0000664000175000017500000000746612140770460012362 00000000000000/*************************************************************************** shp.h - description ------------------- begin : Tue Mar 12 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __SHP_H #define __SHP_H #include /* ==================================================================== SHP file format: magic (4 byte) icon_count (4 byte) offset_list: icon_offset (4 byte) icon_palette_offset (4 byte) Icon format: header (24 byte) raw data ==================================================================== */ /* ==================================================================== Icon header. height: height of icon - 1 width: width of icon - 1 cx, cy: center_x, center_y ??? x1,x2,y1,y2: position and size of actual icon actual_width: actual_height: size of rect (x1,y1,x2,y2) valid: do x1,x2,y1,y2 make sense? ==================================================================== */ typedef struct { int height; int width; int cx, cy; int x1, y1, x2, y2; int actual_width; int actual_height; int valid; } Icon_Header; /* ==================================================================== SHP icon file is converted to this structure. surf: surface with icons listed vertically headers: information on each icon listed offsets: y offset where icon starts count: number of icons listed ==================================================================== */ typedef struct { SDL_Surface *surf; Icon_Header *headers; int *offsets; int count; } PG_Shp; /* ==================================================================== Get SDL pixel from R,G,B values ==================================================================== */ #define MAPRGB( red, green, blue ) SDL_MapRGB( SDL_GetVideoSurface()->format, red, green, blue ) /* ==================================================================== Transparency color key. ==================================================================== */ #define CKEY_RED 0x0 #define CKEY_GREEN 0x0 #define CKEY_BLUE 0x0 /* ==================================================================== Draw/get a pixel at x,y in surf. ==================================================================== */ void set_pixel( SDL_Surface *surf, int x, int y, int pixel ); Uint32 get_pixel( SDL_Surface *surf, int x, int y ); /* ==================================================================== Load a SHP file to a PG_Shp struct. ==================================================================== */ PG_Shp *shp_load( const char *fname ); /* ==================================================================== Free a PG_Shp struct. ==================================================================== */ void shp_free( PG_Shp **shp ); /* ==================================================================== Read all SHP files in source directory and save to directory '.view' in dest directory. ==================================================================== */ int shp_all_to_bmp( void ); #endif lgeneral-1.3.1/lgc-pg/scenarios.c0000664000175000017500000013131412575247507013554 00000000000000/*************************************************************************** scenarios.c - description ------------------- begin : Tue Mar 12 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include #include #include #include #include "units.h" #include "misc.h" #include "scenarios.h" #include "parser.h" /* ==================================================================== Externals ==================================================================== */ extern char *source_path; extern char *dest_path; extern char target_name[128]; extern int map_or_scen_files_missing; extern int nation_count; extern char *nations[]; /* unofficial options */ extern const char *axis_name, *allies_name; extern const char *axis_nations, *allies_nations; int unit_entry_used[UDB_LIMIT]; /* ==================================================================== The scenario result is determined by a list of conditions. If any of the conditions turn out to be true the scenario ends, the message is displayed and result is returned (for campaign). If there is no result after the LAST turn result and message of the else struct are used. A condition has two test fields: one is linked with an logical AND the other is linkes with an logical OR. Both fields must return True if the condition is supposed to be fullfilled. An empty field does always return True. Struct: result { check = every_turn | last_turn cond { and { test .. testX } or { test .. testY } result = ... message = ... } cond { ... } else { result = ... message = ... } } Tests: control_hex { player x = ... y = ... } :: control a special victory hex control_any_hex { player count = ... } :: control this number of victory hexes control_all_hexes { player } :: conquer everything important on the map turns_left { count = ... } :: at least so many turns are left ==================================================================== */ /* ==================================================================== Scenario file names ==================================================================== */ char *fnames[] = { "Poland", "Warsaw", "Norway", "LowCountries", "France", "Sealion40", "NorthAfrica", "MiddleEast", "ElAlamein", "Caucasus", "Sealion43", "Torch", "Husky", "Anzio", "D-Day", "Anvil", "Ardennes", "Cobra", "MarketGarden", "BerlinWest", "Balkans", "Crete", "Barbarossa", "Kiev", "Moscow41", "Sevastapol", "Moscow42", "Stalingrad", "Kharkov", "Kursk", "Moscow43", "Byelorussia", "Budapest", "BerlinEast", "Berlin", "Washington", "EarlyMoscow", "SealionPlus" }; /* ==================================================================== AI modules names ==================================================================== */ char *ai_modules[] = { /* axis, allied -- scenarios as listed above */ "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default", "default" }; /* ==================================================================== Per-turn prestige ==================================================================== */ int prestige_per_turn[] = { /* axis, allied -- scenarios as listed above */ 0, 20, 0, 20, 0, 40, 0, 48, 0, 45, 0, 84, 0, 45, 0, 70, 0, 63, 0, 85, 0, 103, 0, 0, 71, 0, 47, 0, 70, 0, 48, 0, 0, 75, 48, 0, 61, 0, 70, 0, 0, 101, 0, 45, 0, 60, 0, 80, 0, 115, 0, 63, 0, 105, 0, 95, 0, 55, 0, 115, 0, 122, 47, 0, 0, 0, 70, 0, 82, 0, 0, 115, 0, 135, 0, 85 }; /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Random generator ==================================================================== */ int seed; void random_seed( int _seed ) { seed = _seed; } int random_get( int low, int high ) { int p1 = 1103515245; int p2 = 12345; seed = ( seed * p1 + p2 ) % 2147483647; return ( ( abs( seed ) / 3 ) % ( high - low + 1 ) ) + low; } /* ==================================================================== Read all flags from MAP%i.SET and add them to dest_file. We need the scenario file as well as the victory hex positions are saved there. ==================================================================== */ int scen_add_flags( FILE *dest_file, FILE *scen_file, int id ) { FILE *map_file; char path[MAXPATHLEN]; int width, height, ibuf; int x, y, i, obj; int vic_hexes[40]; /* maximum if 20 hexes in PG - terminated with -1 */ int obj_count = 0; /* read victory hexes from scen_file */ memset( vic_hexes, 0, sizeof(int) * 40 ); fseek( scen_file, 37, SEEK_SET ); for ( i = 0; i < 20; i++ ) { _fread( &vic_hexes[i * 2], 2, 1, scen_file ); vic_hexes[i * 2] = SDL_SwapLE16(vic_hexes[i * 2]); _fread( &vic_hexes[i * 2 + 1], 2, 1, scen_file ); vic_hexes[i * 2 + 1] = SDL_SwapLE16(vic_hexes[i * 2 + 1]); if ( vic_hexes[i * 2] >= 1000 || vic_hexes[i * 2] < 0 ) break; obj_count++; } /* open set file */ snprintf( path, MAXPATHLEN, "%s/map%02i.set", source_path, id ); if ( ( map_file = fopen_ic( path, "rb" ) ) == 0 ) { fprintf( stderr, "%s: file not found\n", path ); return 0; } /* read/write map size */ width = height = 0; fseek( map_file, 101, SEEK_SET ); _fread( &width, 2, 1, map_file ); width = SDL_SwapLE16(width); fseek( map_file, 103, SEEK_SET ); _fread( &height, 2, 1, map_file ); height = SDL_SwapLE16(height); width++; height++; /* owner info */ fseek( map_file, 123 + 3 * width * height, SEEK_SET ); for ( y = 0; y < height; y++ ) { for ( x = 0; x < width; x++ ) { ibuf = 0; _fread( &ibuf, 1, 1, map_file ); if ( ibuf > 0 ) { obj = 0; for ( i = 0; i < obj_count; i++ ) if ( vic_hexes[i * 2] == x && vic_hexes[i * 2 + 1] == y ) { obj = 1; break; } fprintf( dest_file, "\n", x, y, nations[(ibuf - 1) * 3], obj ); } } } return 1; } /* ==================================================================== Panzer General offers two values: weather condition and weather region which are used to determine the weather throughout the scenario. As the historical battle did only occur once the weather may not change from game to game so we compute the weather of a scenario depending on three values: inital condition, weather region, month Initial Condition: 1 clear 0 rain/snow Regions: 0 Desert 1 Mediterranean 2 Northern Europe 3 Eastern Europe This routine does only use Fair(Dry), Overcast(Dry), Rain(Mud) and Snow(Ice), so there is no delay between ground and air conditions. ==================================================================== */ void scen_create_random_weather( FILE *dest_file, FILE *scen_file, int month, int turns ) { float month_mod[13] = { 0, 1.7, 1.6, 1.0, 2.0, 1.2, 0.7, 0.5, 0.6, 1.4, 1.7, 2.2, 1.7 }; int med_weather[4] = { 0, 16, 24, 36 }; int bad_weather[4] = { 0, 8, 12, 18 }; int i, result; int init_cond = 0, region = 0; int weather[turns]; memset( weather, 0, sizeof( int ) * turns ); /* get condition and region */ fseek( scen_file, 16, SEEK_SET ); _fread( &init_cond, 1, 1, scen_file ); _fread( ®ion, 1, 1, scen_file ); /* compute the weather */ random_seed( month * turns + ( region + 1 ) * ( init_cond + 1 ) ); for ( i = 0; i < turns; i++ ) { result = random_get( 1, 100 ); if ( result <= (int)( month_mod[month] * bad_weather[region] ) ) weather[i] = 2; else if ( result <= (int)( month_mod[month] * med_weather[region] ) ) weather[i] = 1; } /* initial condition */ weather[0] = (init_cond==1)?0:2; /* from december to february turn 2 (rain) into 3 (snow) */ if ( month < 3 || month == 12 ) { for ( i = 0; i < turns; i++ ) if ( weather[i] == 2 ) weather[i]++; } /* write weather */ fprintf( dest_file, "weather»" ); i = 0; while ( i < turns ) { fprintf( dest_file, "%s", weather[i]==0?"fair":weather[i]==1?"clouds":weather[i]==2?"rain":"snow" ); if ( i < turns - 1 ) fprintf( dest_file, "°" ); i++; } fprintf( dest_file, "\n" ); } /* ==================================================================== Use fixed weather obtained from a run of PG for scen_id!=-1. If -1 use old algorithm for random weather. ==================================================================== */ void scen_create_pg_weather( FILE *dest_file, int scen_id, FILE *scen_file, int turns ) { /* HACK: use weather type id's directly with shortcut f=fair,o=clouds,R=rain,S=snow */ char *weathers[] = { "fffffroRff", "ffffffffffffrooorRff", "fffforRRRmfffforRROffffff", "fffffffrROooffffffffffooroffff", "ffffffffffffoorfffffffffff", "ffffffooorfffff", "", "", "", "ffffffffffffffrooooofffsoSISSi", "fffffffffffffoo", "", "ffffffffooorRffffffff", "fffforofffffff", "", "ooofffffffforRoffffffff", "SISSSSSSSIISISSiffsSSSSISSSISSII", "ffffffffffffffrooffffffff", "fffffroRooffffff", "ffroorfffffff", "ffffffffffforooffffffffoo", "fffffffffroRR", "ffffffffoorofffffffffff", "fffffffffoorofffffffffffrooo", "fffffsooSSSiffffsSffff", "ffffffffffforofff", "fffooooosSfffsoSIffffoo", "ffffffffffffforoooffffffffffffo", "ffsoSSiffroooroRffffsS", "fffffffffffffoorofff", "ffffooosfffffosSSSIif", "ffffffffffffffrooffffff", "fffffoorRRRmffffosSf", "ffffoosofffoo", "fffroRofffrRM", "fffffffffffffrffffffff", "ffffffffffsooofffffoosos", "ffffffroforofff" }; int i; char w[32]; if (strlen(weathers[scen_id])>0&&strlen(weathers[scen_id])!=turns) fprintf(stderr,"ERROR: scen %d: mismatch in length of weather (%d) and turn number (%d)\n", scen_id,strlen(weathers[scen_id]),turns); /* write weather */ fprintf( dest_file, "weather»" ); i = 0; while ( i < turns ) { if (weathers[0]==0) strcpy(w,"fair"); else { w[0] = weathers[scen_id][i]; w[1] = 0; if (w[0]=='f') strcpy(w,"fair"); else if (w[0]=='o') strcpy(w,"clouds"); else if (w[0]=='R') strcpy(w,"rain"); else if (w[0]=='S') strcpy(w,"snow"); } fprintf( dest_file, "%s", w ); if ( i < turns - 1 ) fprintf( dest_file, "°" ); i++; } fprintf( dest_file, "\n" ); } /* ==================================================================== Read unit data from scen_file, convert and write it to dest_file. ==================================================================== */ void scen_create_unit( int scen_id, FILE *dest_file, FILE *scen_file, int is_core_unit ) { int id = 0, nation = 0, x = 0, y = 0, str = 0, entr = 0, exp = 0, trsp_id = 0, org_trsp_id = 0; /* read unit -- 14 bytes */ /* icon id */ _fread( &id, 2, 1, scen_file ); /* icon id */ id = SDL_SwapLE16(id); _fread( &org_trsp_id, 2, 1, scen_file ); /* transporter of organic unit */ org_trsp_id = SDL_SwapLE16(org_trsp_id); _fread( &nation, 1, 1, scen_file ); nation--; /* nation + 1 */ _fread( &trsp_id, 2, 1, scen_file ); /* sea/air transport */ trsp_id = SDL_SwapLE16(trsp_id); _fread( &x, 2, 1, scen_file ); /* x */ x = SDL_SwapLE16(x); _fread( &y, 2, 1, scen_file ); /* y */ y = SDL_SwapLE16(y); _fread( &str, 1, 1, scen_file ); /* strength */ _fread( &entr, 1, 1, scen_file ); /* entrenchment */ _fread( &exp, 1, 1, scen_file ); /* experience */ /* FIX: give transporters to artillery in Kiev */ if (scen_id==23) { if (x==7&&y==14) trsp_id = 86; if (x==8&&y==23) trsp_id = 86; } /* mark id */ unit_entry_used[id - 1] = 1; if ( trsp_id ) unit_entry_used[trsp_id - 1] = 1; else if ( org_trsp_id ) unit_entry_used[org_trsp_id - 1] = 1; /* write unit */ fprintf( dest_file, "\n" ); } /* ==================================================================== Add the victory conditions ==================================================================== */ int major_limits[] = { /* if an entry is not -1 it's a default axis offensive and this is the turn number that must remain for a major victory when all flags where captured */ -1, /* UNUSED */ 3, /* POLAND */ 7, /* WARSAW */ 5, /* NORWAY */ 6, /* LOWCOUNRTIES */ 13, /* FRANCE */ 3, /* SEALION 40 */ 4, /* NORTH AFRICA */ 5, /* MIDDLE EAST */ 3, /* EL ALAMEIN */ 12, /* CAUCASUS */ 3, /* SEALION 43 */ -1, /* TORCH */ -1, /* HUSKY */ -1, /* ANZIO */ -1, /* D-DAY */ -1, /* ANVIL */ -1, /* ARDENNES */ -1, /* COBRA */ -1, /* MARKETGARDEN */ -1, /* BERLIN WEST */ 3, /* BALKANS */ 2, /* CRETE */ 10, /* BARBAROSSA */ 8, /* KIEV */ 4, /* MOSCOW 41 */ 3, /* SEVASTAPOL */ 6, /* MOSCOW 42 */ 13, /*STALINGRAD */ 4, /* KHARKOV */ -1, /*KURSK */ 5, /* MOSCOW 43*/ -1, /* BYELORUSSIA */ 5, /* BUDAPEST */ -1, /* BERLIN EAST */ -1, /* BERLIN */ 7, /* WASHINGTON */ 5, /* EARLY MOSCOW */ 3, /* SEALION PLUS */ }; #define COND_BEGIN fprintf( file, "\n" ) #define COND_RESULT( str ) fprintf( file, "result»%s\n", str ) #define COND_MESSAGE( str ) fprintf( file, "message»%s\n", str ) void scen_add_vic_conds( FILE *file, int id ) { /* for panzer general the check is usually run every turn. * exceptions: * ardennes: major/minor victory depends on whether bruessel * can be taken * d-day: axis must hold its initial three objectives until * the end * anvil: axis must hold its initial five objectives until * the end */ if ( id == 15 || id == 16 || id == 17 ) fprintf( file, "\n\n>\n", major_limits[id] ); COND_RESULT( "major" ); COND_MESSAGE( "Axis Major Victory" ); COND_END; COND_BEGIN; fprintf( file, "\n>\n" ); COND_RESULT( "minor" ); COND_MESSAGE( "Axis Minor Victory" ); COND_END; fprintf( file, "\n"\ "\n"\ "\n"\ "\n"\ "\n"\ "\n"\ "\n"\ ">\n" ); COND_RESULT( "minor" ); COND_MESSAGE( "Axis Minor Victory" ); COND_END; /* major victory */ COND_BEGIN; fprintf( file, "\n>\n" ); COND_RESULT( "major" ); COND_MESSAGE( "Axis Major Victory" ); COND_END; /* defeat otherwise */ fprintf( file, "\n\n>\n" ); break; case 13: /* HUSKY */ fprintf( file, "\n>\n" ); break; case 14: /* ANZIO */ fprintf( file, "\n\n>\n" ); break; case 15: /* D-DAY */ fprintf( file, "\n>\n" ); break; case 16: /* ANVIL */ fprintf( file, "\n>\n" ); break; case 18: /* COBRA */ fprintf( file, "\n>\n" ); break; case 19: /* MARKET-GARDEN */ fprintf( file, "\n>\n" ); break; case 20: /* BERLIN WEST */ fprintf( file, "\n\n>\n" ); break; case 30: /* KURSK */ fprintf( file, "\n>\n" ); break; case 32: /* BYELORUSSIA */ fprintf( file, "\n>\n" ); break; case 34: /* BERLIN EAST */ fprintf( file, "\n\n>\n" ); break; case 35: /* BERLIN */ fprintf( file, "\n>\n" ); break; } COND_RESULT( "defeat" ); COND_MESSAGE( "Axis Defeat" ); COND_END; /* axis major victory condition */ COND_BEGIN; if ( id == 15 ) { /* D-DAY */ fprintf( file, "\n"\ "\n"\ "\n"\ ">\n" ); } else if ( id == 16 ) { /* ANVIL */ fprintf( file, "\n"\ "\n"\ "\n"\ "\n"\ "\n"\ ">\n" ); } else { /* capture all */ fprintf( file, "\n>\n" ); } COND_RESULT( "major" ); COND_MESSAGE( "Axis Major Victory" ); COND_END; fprintf( file, "\n" ); } /** Read @num bytes into @buf from @file at position @offset. Return * number of bytes read or -1 on error. * Note: File position indicator is not reset. */ int freadat( FILE *file, int offset, unsigned char *buf, int num) { if (fseek( file, offset, SEEK_SET ) < 0) return -1; return fread( buf, 1, num, file ); } /** Read prestige info from open file handle @file and store it to @pi_axis * and @pi_allies respectively. * Return -1 on error (prestige info may be incomplete), 0 on success. */ struct prestige_info { int start; int bucket; int interval; }; int read_prestige_info( FILE *file, struct prestige_info *pi_axis, struct prestige_info *pi_allies ) { /* Offsets in scenario buffer as taken from FPGE: * axis start prestige: scnbuf[0x75]*4+0x77 * allies start prestige: scnbuf[0x75]*4+0x77 + 2 * axis prestige bucket: 27 * allies prestige bucket: 29 * axis prestige interval: 31 * allies prestige interval: 32 */ unsigned char c, buf[6]; int idx; memset(pi_axis,0,sizeof(struct prestige_info)); memset(pi_allies,0,sizeof(struct prestige_info)); if (freadat(file, 0x75, &c, 1) < 1) return -1; idx = ((int)c) * 4 + 0x77; /* start prestige */ if (freadat(file, idx, buf, 4) < 4) return -1; pi_axis->start = buf[0] + 256 * buf[1]; pi_allies->start = buf[2] + 256 * buf[3]; /* bucket + interval */ if (freadat(file, 27, buf, 6) < 6) return -1; pi_axis->bucket = buf[0] + 256 * buf[1]; pi_allies->bucket = buf[2] + 256 * buf[3]; pi_axis->interval = buf[4]; pi_allies->interval = buf[5]; return 0; } /** Convert PG prestige info into fixed prestige per turn values. * @sid: PG scenario id (starting at 0, or -1 if custom) * @pid: player id (0=axis, 1=allies) * @pi: PG prestige info (start prestige, bucket and interval) * @strat: player strategy * @nturns: number of scenario turns * @ppt: pointer to prestige per turn output array */ void convert_prestige_info(int sid, int pid, const struct prestige_info *pi, int strat, int nturns, int *ppt) { int i, val; /* PG seems to behave as follows: * Attacker gets start prestige and that's it. No per turn prestige * is added. Defender gets constant prestige per turn and in first * turn also a bonus of two times the turn prestige added to start * prestige. * Loosing/capturing victory objectives does not change the amount * of per turn prestige for defender/attacker (on capturing fixed * amount of prestige is given to player once, no loss for other * player). * * FIXME: Per turn value seems to be related to number of turns and * bucket value, while interval does not seem to be used at all. But * since I could not figure out the formula use hardcoded per turn * values (as observed in PG). Try bucket/nturns as formula for * custom scenarios. */ if (sid == -1) val = pi->bucket / nturns; else val = prestige_per_turn[sid*2 + pid]; /* Clear output array */ memset(ppt, 0, sizeof(int) * nturns); /* Set start prestige */ ppt[0] = pi->start; /* Add bonus if strategy is defensive */ if (strat < 0) ppt[0] += 2 * val; /* Set remaining per turn prestige */ if (strat <= 0) /* if both are even in strength both get prestige */ for (i = 1; i < nturns; i++) ppt[i] = val; } /** Write prestige per turn list to @file. */ int write_prestige_info( FILE *file, int turns, int *ppt ) { int i; fprintf( file, "prestige»" ); for (i = 0; i < turns; i++) fprintf( file, "%d%c", ppt[i], (i < turns - 1) ? '°' : '\n'); return 0; } /** Read axis/allies max unit count from file handle @file. * Return -1 on error (values incomplete then) or 0 on success. */ int read_unit_limit( FILE *file, int *axis_ulimit, int *axis_core_ulimit, int *allies_ulimit ) { unsigned char buf[3]; *axis_ulimit = *axis_core_ulimit = *allies_ulimit = 0; if (freadat(file, 18, buf, 3) < 3) return -1; *axis_ulimit = buf[0] + buf[1]; /* core + aux */ *axis_core_ulimit = buf[0]; *allies_ulimit = buf[2]; return 0; } /** Get a decent file name from scenario title: Change to lower case, * remove blanks and special characters. Return as pointer to static * string. */ static char *scentitle_to_filename( const char *title ) { static char fname[32]; int i, j; snprintf(fname, 32, "%s", title); for (i = 0; i < strlen(fname); i++) { /* adjust case (first character of word is upper case) */ if (i == 0 || fname[i - 1] == ' ') fname[i] = toupper(fname[i]); else fname[i] = tolower(fname[i]); /* only allow alphanumerical chars */ if ((fname[i] >= 'A' && fname[i] <= 'Z') || (fname[i] >= 'a' && fname[i] <= 'z') || (fname[i] >= '0' && fname[i] <= '9') || fname[i] == '-' || fname[i] == '_') ; /* is okay, do nothing */ else fname[i] = ' '; } /* remove all blanks */ for (i = 0; fname[i] != 0; i++) { if (fname[i] != ' ') continue; for (j = i; fname[j] != 0; j++) fname[j] = fname[j + 1]; i--; /* re-check if we just shifted a blank */ } return fname; } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== If scen_id == -1 convert all scenarios found in 'source_path'. If scen_id >= 0 convert single scenario from current working directory. ==================================================================== */ int scenarios_convert( int scen_id ) { int i, j, start, end; char dummy[256]; int day, month, year, turns, turns_per_day, days_per_turn, ibuf; int unit_offset, unit_count; int axis_orient, axis_strat, allied_strat; int deploy_fields_count; struct prestige_info pi_axis, pi_allies; char path[MAXPATHLEN]; FILE *dest_file = 0, *scen_file = 0, *aux_file = 0, *scenstat_file = 0; PData *pd = 0, *reinf, *unit; int def_str, def_exp; char *str; int axis_ulimit = 0, axis_core_ulimit = 0, allies_ulimit = 0; char scen_title[16], scen_desc[160], scen_author[32]; int core_unit_count = 0; printf( "Scenarios...\n" ); if ( scen_id == -1 ) { snprintf( path, MAXPATHLEN, "%s/scenarios/%s", dest_path, target_name ); mkdir( path, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH ); if (strcmp(target_name, "pg") == 0) { /* write out order of preferred listing */ snprintf( path, MAXPATHLEN, "%s/scenarios/pg/.order", dest_path ); aux_file = fopen( path, "wb" ); if ( aux_file ) { for (i = 0; i < sizeof fnames/sizeof fnames[0]; i++) fprintf( aux_file, "%s\n", fnames[i] ); fclose( aux_file ); } else fprintf( stderr, "Could not write sort order to %s\n", path ); } /* get the reinforcements which are used later */ snprintf( path, MAXPATHLEN, "%s/convdata/reinf", get_gamedir() ); if ( ( pd = parser_read_file( "reinforcements", path ) ) == 0 ) { fprintf( stderr, "%s\n", parser_get_error() ); goto failure; } } /* set loop range */ if ( scen_id == -1 ) { start = 1; end = 38; } else { start = end = scen_id; } /* open scen stat file containing scenario names and descriptions */ if ( scen_id == -1 ) { snprintf( path, MAXPATHLEN, "%s/scenstat.bin", source_path ); if ((scenstat_file = fopen_ic(path, "rb")) == NULL) goto failure; } /* go */ for ( i = start; i <=end; i++ ) { /* open scenario file */ snprintf( path, MAXPATHLEN, "%s/game%03d.scn", source_path, i ); if ((scen_file = fopen_ic(path, "rb")) == NULL) { fprintf( stderr, "%s: file not found\n", path ); if (scen_id == -1 && strcmp(target_name,"pg")) { map_or_scen_files_missing = 1; continue; } else goto failure; } /* read title and description from scenstat file for campaign */ if ( scen_id == -1 ) { fseek( scenstat_file, 40 + (i - 1) * 14, SEEK_SET ); _fread( dummy, 14, 1, scenstat_file ); snprintf( scen_title, sizeof(scen_title), "%s", dummy); fseek( scenstat_file, 600 + (i - 1) * 160 , SEEK_SET ); _fread( dummy, 160, 1, scenstat_file ); snprintf( scen_desc, sizeof(scen_desc), "%s", dummy); if (strcmp(target_name,"pg") == 0) snprintf( scen_author, sizeof(scen_author), "SSI" ); else snprintf( scen_author, sizeof(scen_author), "unknown" ); } else { snprintf( scen_title, sizeof(scen_title), "%s", target_name ); snprintf( scen_desc, sizeof(scen_desc), "none" ); snprintf( scen_author, sizeof(scen_author), "unknown" ); } /* open dest file */ if ( scen_id == -1 ) { if (strcmp(target_name,"pg") == 0) snprintf( path, MAXPATHLEN, "%s/scenarios/pg/%s", dest_path, fnames[i - 1] ); else { char fname[32]; snprintf(fname, 32, "%s", scentitle_to_filename(scen_title)); if (fname[0] == 0) { /* bad scenario name so use a default name */ snprintf(fname, 32, "scn%02d", i); fprintf(stderr, "Using %s as filename for scenario %d as " "title '%s' is not suitable\n", fname, i, scen_title); } snprintf( path, MAXPATHLEN, "%s/scenarios/%s/%s", dest_path, target_name, fname); } } else snprintf( path, MAXPATHLEN, "%s/scenarios/%s", dest_path, target_name ); if ( ( dest_file = fopen( path, "wb" ) ) == 0 ) { fprintf( stderr, "%s: access denied\n", path ); goto failure; } /* file magic */ fprintf( dest_file, "@\n" ); /* scenario name and description */ fprintf( dest_file, "name»%s\n", scen_title ); fprintf( dest_file, "desc»%s\n", scen_desc ); fprintf( dest_file, "authors»%s\n", scen_author ); /* date */ fseek( scen_file, 22, SEEK_SET ); day = 0; _fread( &day, 1, 1, scen_file ); month = 0; _fread( &month, 1, 1, scen_file ); year = 0; _fread( &year, 1, 1, scen_file ); fprintf( dest_file, "date»%02i.%02i.19%i\n", day, month, year ); /* turn limit */ fseek( scen_file, 21, SEEK_SET ); turns = 0; _fread( &turns, 1, 1, scen_file ); fprintf( dest_file, "turns»%i\n", turns ); fseek( scen_file, 25, SEEK_SET ); turns_per_day = 0; _fread( &turns_per_day, 1, 1, scen_file ); fprintf( dest_file, "turns_per_day»%i\n", turns_per_day ); days_per_turn = 0; _fread( &days_per_turn, 1, 1, scen_file ); if ( turns_per_day == 0 && days_per_turn == 0 ) days_per_turn = 1; fprintf( dest_file, "days_per_turn»%i\n", days_per_turn ); /* domain */ fprintf( dest_file, "domain»pg\n" ); /* nations */ if ( scen_id == -1 ) fprintf( dest_file, "nation_db»%s.ndb\n", target_name ); else fprintf( dest_file, "nation_db»pg.ndb\n" ); /* units */ if ( scen_id == -1 ) fprintf( dest_file, "\n", target_name ); else if (!units_find_panzequp()) fprintf( dest_file, "\n"); /* if there modified units they are added to the scenario file. lgeneral loads from the scenario file if no unit_db was specified. */ /* map: a custom scenario will have the map added to the same file which will be checked when no map was specified. */ if ( scen_id == -1 ) fprintf( dest_file, "map»%s/map%02d\n", target_name, i ); /* weather */ if (scen_id == -1 && strcmp(target_name,"pg") == 0) scen_create_pg_weather( dest_file, i-1, scen_file, turns ); else scen_create_random_weather( dest_file, scen_file, month, turns ); /* flags */ fprintf( dest_file, "\n" ); /* get unit offset */ fseek( scen_file, 117, SEEK_SET ); ibuf = 0; _fread( &ibuf, 1, 1, scen_file ); unit_offset = ibuf * 4 + 135; /* get prestige data for axis and allies */ read_prestige_info(scen_file, &pi_axis, &pi_allies ); /* get unit limits for axis and allies */ read_unit_limit( scen_file, &axis_ulimit, &axis_core_ulimit, &allies_ulimit ); /* players */ fprintf( dest_file, "\n", ibuf - 1 ); /* sea */ fseek( scen_file, unit_offset - 4, SEEK_SET ); ibuf = 0; _fread( &ibuf, 2, 1, scen_file ); ibuf = SDL_SwapLE16(ibuf); if ( ibuf ) fprintf( dest_file, "\n", ibuf - 1 ); fprintf( dest_file, ">\n" ); fprintf( dest_file, ">\n" ); /* allies */ if ( axis_orient == 1 ) sprintf( dummy, "left" ); else sprintf( dummy, "right" ); if ( axis_strat == 1 ) allied_strat = -1; else allied_strat = 1; if (allies_name) fprintf( dest_file, "\n", ibuf - 1 ); /* sea */ fseek( scen_file, unit_offset - 2, SEEK_SET ); ibuf = 0; _fread( &ibuf, 2, 1, scen_file ); ibuf = SDL_SwapLE16(ibuf); if ( ibuf ) fprintf( dest_file, "\n", ibuf - 1 ); fprintf( dest_file, ">\n" ); fprintf( dest_file, ">\n" ); fprintf( dest_file, ">\n" ); /* victory conditions */ if ( scen_id == -1 && strcmp(target_name,"pg") == 0 ) scen_add_vic_conds( dest_file, i ); else { /* and the default is that the attacker must capture all targets */ fprintf( dest_file, "\n>\n", (axis_strat > 0) ? "axis" : "allies" ); fprintf( dest_file, "result»victory\n" ); fprintf( dest_file, "message»%s\n", (axis_strat > 0) ? "Axis Victory" : "Allied Victory" ); fprintf( dest_file, ">\n" ); fprintf( dest_file, " 0) ? "Axis Defeat" : "Allied Defeat" ); fprintf( dest_file, ">\n" ); fprintf( dest_file, ">\n" ); } /* deployment fields */ fseek( scen_file, 117, SEEK_SET ); ibuf = 0; _fread( &ibuf, 2, 1, scen_file ); deploy_fields_count = SDL_SwapLE16(ibuf); fprintf( dest_file, "\n" ); if (scen_id == -1 && strcmp(target_name,"pg") == 0 && i == 19) /* MarketGarden's Allies may not deploy freely */ fprintf( dest_file, "\n" ); else fprintf( dest_file, "\n" ); fprintf( dest_file, ">\n" ); /* units */ /* mark all id's that will be used from PANZEQUP.EQP for modified unit database */ memset( unit_entry_used, 0, sizeof( unit_entry_used ) ); /* count them */ fseek( scen_file, 33, SEEK_SET ); ibuf = 0; _fread( &ibuf, 1, 1, scen_file ); unit_count = ibuf; /* core */ core_unit_count = unit_count; /* needed for core flag */ ibuf = 0; _fread( &ibuf, 1, 1, scen_file ); unit_count += ibuf; /* allies */ ibuf = 0; _fread( &ibuf, 1, 1, scen_file ); unit_count += ibuf; /* auxiliary */ /* build them */ fseek( scen_file, unit_offset, SEEK_SET ); fprintf( dest_file, "entries ); while ( ( unit = list_next( reinf->entries ) ) ) if ( !strcmp( "unit", unit->name ) ) { /* add unit */ fprintf( dest_file, "\n" ); } } } fprintf( dest_file, ">\n" ); fclose( scen_file ); fclose( dest_file ); } if ( scenstat_file ) fclose( scenstat_file ); parser_free( &pd ); return 1; failure: parser_free( &pd ); if ( scenstat_file ) fclose( scenstat_file ); if ( aux_file ) fclose( aux_file ); if ( scen_file ) fclose( scen_file ); if ( dest_file ) fclose( dest_file ); return 0; } lgeneral-1.3.1/lgc-pg/maps.h0000664000175000017500000000273312140770460012520 00000000000000/*************************************************************************** maps.h - description ------------------- begin : Tue Mar 12 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __MAPS_H #define __MAPS_H /* ==================================================================== If map_id is -1 convert all maps found in 'source_path'. If map_id is >= 0 this is a single custom map with the data in the current directory. If MAPNAMES.STR is not provided in the current working directory it is looked up in 'source_path' thus the defaults are used. ==================================================================== */ int maps_convert( int map_id ); #endif lgeneral-1.3.1/lgc-pg/list.h0000664000175000017500000001704012140770460012530 00000000000000/*************************************************************************** list.h - description ------------------- begin : Sun Sep 2 2001 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __LIST_H #define __LIST_H #ifdef __cplusplus extern "C" { #endif /* ==================================================================== Dynamic list handling data as void pointers. ==================================================================== */ typedef struct _List_Entry { struct _List_Entry *next; struct _List_Entry *prev; void *item; } List_Entry; typedef struct { int auto_delete; int count; List_Entry head; List_Entry tail; void (*callback)(void*); List_Entry *cur_entry; } List; /* ==================================================================== Create a new list auto_delete: Free memory of data pointer when deleting entry callback: Use this callback to free memory of data including the data pointer itself. Return Value: List pointer ==================================================================== */ enum { LIST_NO_AUTO_DELETE = 0, LIST_AUTO_DELETE }; enum { LIST_NO_CALLBACK = 0 }; List *list_create( int auto_delete, void (*callback)(void*) ); /* ==================================================================== Delete list and entries. ==================================================================== */ void list_delete( List *list ); /* ==================================================================== Delete all entries but keep the list. Reset current_entry to head pointer. ==================================================================== */ void list_clear( List *list ); /* ==================================================================== Insert new item at position. Return Value: True if successful else False. ==================================================================== */ int list_insert( List *list, void *item, int pos ); /* ==================================================================== Add new item at the end of the list. ==================================================================== */ int list_add( List *list, void *item ); /* ==================================================================== Delete item at pos. If this was the current entry update current_entry to valid previous pointer. Return Value: True if successful else False. ==================================================================== */ int list_delete_pos( List *list, int pos ); /* ==================================================================== Delete item if in list. If this was the current entry update current_entry to valid previous pointer. Return Value: True if successful else False. ==================================================================== */ int list_delete_item( List *list, void *item ); /* ==================================================================== Delete entry. ==================================================================== */ int list_delete_entry( List *list, List_Entry *entry ); /* ==================================================================== Get item from position if in list. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_get( List *list, int pos ); /* ==================================================================== Check if item's in list. Return Value: Position of item else -1. ==================================================================== */ int list_check( List *list, void *item ); /* ==================================================================== Return first item stored in list and set current_entry to this entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_first( List *list ); /* ==================================================================== Return last item stored in list and set current_entry to this entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_last( List *list ); /* ==================================================================== Return item in current_entry. Return Value: Item pointer if found else Null pointer. ==================================================================== */ void* list_current( List *list ); /* ==================================================================== Reset current_entry to head of list. ==================================================================== */ void list_reset( List *list ); /* ==================================================================== Get next item and update current_entry (reset if tail reached). Return Value: Item pointer if found else Null (if tail of list). ==================================================================== */ void* list_next( List *list ); /* ==================================================================== Get previous item and update current_entry. Return Value: Item pointer if found else Null (if head of list). ==================================================================== */ void* list_prev( List *list ); /* ==================================================================== Delete the current entry if not tail or head. This is the entry that contains the last returned item by list_next/prev(). Return Value: True if it was a valid deleteable entry. ==================================================================== */ int list_delete_current( List *list ); /* ==================================================================== Check if list is empty. Return Value: True if list counter is 0 else False. ==================================================================== */ int list_empty( List *list ); /* ==================================================================== Return entry containing the passed item. Return Value: True if entry found else False. ==================================================================== */ List_Entry *list_entry( List *list, void *item ); /* ==================================================================== Transfer an entry from one list to another list by removing from 'source' and adding to 'dest' thus if source does not contain the item this is equvalent to list_add( dest, item ). ==================================================================== */ void list_transfer( List *source, List *dest, void *item ); /* ==================================================================== Deqeue the first list entry. (must not use auto_delete therefore) ==================================================================== */ void *list_dequeue( List *list ); #ifdef __cplusplus }; #endif #endif lgeneral-1.3.1/lgc-pg/main.c0000644000175000017500000002342212643740711012477 00000000000000/*************************************************************************** main.c - description ------------------- begin : Tue Mar 12 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifdef HAVE_CONFIG_H #include "../config.h" #endif #include #include #include #include "misc.h" #include "units.h" #include "shp.h" #include "nations.h" #include "terrain.h" #include "maps.h" #include "scenarios.h" const char *source_path = 0; /* source DAT directory with PG data */ const char *dest_path = 0; /* root of lgeneral installation */ char target_name[128]; /* name of campaign or single scenario */ char tacicons_name[128]; /* name of tac icons file for single scenario */ int single_scen = 0; /* convert a single scenario instead of full campaign */ int single_scen_id = 0; /* id of single scenario which is converted */ int use_def_pal = 0; /* always use default PG palette regardless of whether SHP icon is associated with another one */ int map_or_scen_files_missing = 0; /* some map/scenario files were missing */ int apply_unit_mods = 0; /* apply PG specific modifications (e.g., determine nation by name, mirror images, correct spelling) */ int separate_bridges = 0; /* split of bridges into separate terrain type */ /* unofficial options */ const char *axis_name = 0, *allies_name = 0; const char *axis_nations = 0, *allies_nations = 0; /* comma-separated */ extern int terrain_tile_count; extern char tile_type[]; void print_help() { printf( "Usage:\n lgc-pg options\n"\ "Options:\n"\ " -s source directory with Panzer General data\n"\ " -d destination root directory (default: installation path)\n"\ " -n name of campaign or scenario (default: pg)\n"\ " -i id of a single scenario to be converted; if not specified\n"\ " full campaign is converted\n"\ " -t name of tactical icons destination file (default:\n"\ " TARGETNAME.bmp)\n"\ " --defpal overwrite any individual palette with default PG palette\n"\ " --applyunitmods apply PG specific unit modifications for a single scenario\n"\ " or custom campaign assuming it uses the PG unit database\n"\ " (maybe slightly changed) \n"\ " --help this help\n"\ " --separate-bridges split bridges and roads into two terrain types\n" \ "Example:\n lgc-pg -s /mnt/cdrom/DAT\n"\ "See README.lgc-pg for more information.\n" ); exit( 0 ); } /* parse command line. if all options are okay return True else False */ int parse_args( int argc, char **argv ) { int i; for ( i = 1; i < argc; i++ ) { if ( !strcmp( "-s", argv[i] ) ) source_path = argv[i + 1]; if ( !strcmp( "-d", argv[i] ) ) dest_path = argv[i + 1]; if ( !strcmp( "-n", argv[i] ) ) snprintf(target_name, 128, "%s", argv[i + 1]); if ( !strcmp( "-i", argv[i] ) ) { single_scen = 1; single_scen_id = atoi( argv[i + 1] ); } if ( !strcmp( "-t", argv[i] ) ) snprintf(tacicons_name, 128, "%s", argv[i + 1]); if ( !strcmp( "--defpal", argv[i] ) ) use_def_pal = 1; if ( !strcmp( "--applyunitmods", argv[i] ) ) apply_unit_mods = 1; if ( !strcmp( "-h", argv[i] ) || !strcmp( "--help", argv[i] ) ) print_help(); /* will exit */ if ( !strcmp( "--separate-bridges", argv[i] ) ) separate_bridges = 1; /* unoffical options */ if ( !strcmp( "--axis_name", argv[i] ) ) axis_name = argv[i + 1]; if ( !strcmp( "--allies_name", argv[i] ) ) allies_name = argv[i + 1]; if ( !strcmp( "--axis_nations", argv[i] ) ) axis_nations = argv[i + 1]; if ( !strcmp( "--allies_nations", argv[i] ) ) allies_nations = argv[i + 1]; } if ( source_path == 0 ) { fprintf( stderr, "ERROR: You must specifiy the source directory which " "contains either a custom\nscenario or the original" "data.\n" ); return 0; } if ( dest_path == 0 ) { #ifdef INSTALLDIR dest_path = get_gamedir(); /* use installation path */ #else fprintf( stderr, "ERROR: You must specify the destination path which " "provides the LGeneral\ndirectory struct.\n" ); return 0; #endif } if ( single_scen ) { if (target_name[0] == 0) { fprintf( stderr, "ERROR: You must specify the target name of the " "custom scenario.\n" ); return 0; } } else if (target_name[0] == 0) strcpy(target_name, "pg"); /* default campaign to be converted */ if ( !single_scen && strcmp(target_name,"pg") == 0 ) apply_unit_mods = 1; /* always for PG campaign of course */ if (tacicons_name[0] == 0) sprintf( tacicons_name, "%s.bmp", target_name ); if (separate_bridges == 0) { /* b -> r */ for (i = 0; i < terrain_tile_count; i++) if (tile_type[i] == 'b') tile_type[i] = 'r'; } printf( "Settings:\n" ); printf( " Source: %s\n", source_path ); printf( " Destination: %s\n", dest_path ); printf( " Target: %s\n", target_name ); if (single_scen) { printf( " Single Scenario (from game%03i.scn)\n", single_scen_id ); if (units_find_tacicons()) printf( " Target Tactical Icons: %s\n", tacicons_name ); } else printf(" Full Campaign\n"); if ( use_def_pal ) printf( " Use Default Palette\n" ); else printf( " Use Individual Palettes\n" ); if ( apply_unit_mods ) printf( " Apply PG unit modifications\n" ); if (separate_bridges) printf( " Have separate terrain type 'bridge'\n"); return 1; } int main( int argc, char **argv ) { char path[MAXPATHLEN]; SDL_Surface *title_image = NULL; /* info */ printf( "LGeneral Converter for Panzer General (DOS version) v%s\n" "Copyright 2002-2012 Michael Speck\n" "Released under GNU GPL\n---\n", VERSION ); /* parse options */ if ( !parse_args( argc, argv ) ) { print_help(); exit( 1 ); } /* SDL required for graphical conversion */ if (SDL_Init( SDL_INIT_VIDEO | SDL_INIT_TIMER ) < 0) { printf( "lgc-pg requires a running graphical desktop environment. \n"); exit( 1 ); } SDL_SetVideoMode( 320, 240, 16, SDL_SWSURFACE ); atexit( SDL_Quit ); /* show nice image */ snprintf( path, MAXPATHLEN, "%s/convdata/title.bmp", get_gamedir() ); if ((title_image = SDL_LoadBMP( path ))) { SDL_Surface *screen = SDL_GetVideoSurface(); SDL_BlitSurface( title_image, NULL, screen, NULL); SDL_UpdateRect( screen, 0, 0, screen->w, screen->h ); } SDL_WM_SetCaption( "lgc-pg", NULL ); printf( "Converting:\n" ); if ( single_scen ) { if ( !scenarios_convert( single_scen_id ) ) return 1; if ( !maps_convert( single_scen_id ) ) return 1; if ( units_find_panzequp() ) { if ( units_find_tacicons() ) { if ( !units_convert_graphics( tacicons_name ) ) return 1; if ( !units_convert_database( tacicons_name ) ) return 1; } else if ( !units_convert_database( "pg.bmp" ) ) return 1; } printf( "\nNOTE: You must set various things manually (e.g., victory " "conditions). Please\nsee README.lgc-pg for more details.\n" ); } else { /* convert all data */ if ( !nations_convert() ) return 1; if ( !units_convert_database( tacicons_name ) ) return 1; if ( !units_convert_graphics( tacicons_name ) ) return 1; if ( !terrain_convert_database() ) return 1; if ( !terrain_convert_graphics() ) return 1; if ( !maps_convert( -1 ) ) return 1; if ( !scenarios_convert( -1 ) ) return 1; /* for unofficial campaigns there are no victory conditions and campaign * tree is unknown; only databases and scenarios were converted */ if (strcmp(target_name, "pg")) printf( "\nNOTE: You must set various things manually (e.g., victory " "conditions). Please\nsee README.lgc-pg for more details.\n" ); if (map_or_scen_files_missing) printf("\nWARNING: Some scenario or map files were missing! As this is a custom campaign\n" "it may be that not all scenarios are used. In that case ids of missing map and\n" "scenario files should match. If they don't this might be an error.\n"); } printf( "\nDone!\n" ); if (title_image) SDL_FreeSurface(title_image); return 0; } lgeneral-1.3.1/lgc-pg/units.h0000664000175000017500000000407112140770460012717 00000000000000/*************************************************************************** units.h - description ------------------- begin : Tue Mar 12 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __UNITS_H #define __UNITS_H /* PANZEQUP may have up to this number of units */ #define UDB_LIMIT 1000 /* ==================================================================== Check if 'source_path' contains a file PANZEQUP.EQP ==================================================================== */ int units_find_panzequp(); /* ==================================================================== Check if 'source_path' contains a file TACICONS.SHP ==================================================================== */ int units_find_tacicons(); /* ==================================================================== Convert unit database. 'tac_icons' is file name of the tactical icons. ==================================================================== */ int units_convert_database( char *tac_icons ); /* ==================================================================== Convert unit graphics. 'tac_icons' is file name of the tactical icons. ==================================================================== */ int units_convert_graphics( char *tac_icons ); #endif lgeneral-1.3.1/lgc-pg/shp.c0000664000175000017500000004442412575247507012365 00000000000000/*************************************************************************** shp.c - description ------------------- begin : Tue Mar 12 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include #include #include #include #include #include #include "misc.h" #include "shp.h" /* ==================================================================== Externals ==================================================================== */ extern char *source_path; extern char *dest_path; extern int use_def_pal; /* ==================================================================== Default palette. Used if icon is not associated with a palette. ==================================================================== */ typedef struct { int r; int g; int b; } RGB_Entry; RGB_Entry def_pal[256] = { { 0, 0, 0},{ 0, 0, 171},{ 0, 171, 0}, // 0-2 { 0, 171, 171},{ 171, 0, 0},{ 171, 0, 171}, // 3-5 { 171, 87, 0},{ 171, 171, 171},{ 87, 87, 87}, // 6-8 { 87, 87, 255},{ 87, 255, 87},{ 87, 255, 255}, // 9-11 { 255, 87, 87},{ 255, 87, 255},{ 255, 255, 87}, // 12-14 { 255, 255, 255},{ 79, 0, 0},{ 107, 0, 0}, // 15-17 { 135, 0, 0},{ 167, 7, 0},{ 195, 11, 0}, // 18-20 { 223, 19, 0},{ 255, 0, 0},{ 255, 83, 19}, // 21-23 { 255, 131, 39},{ 255, 175, 59},{ 255, 211, 79}, // 24-26 { 255, 243, 99},{ 243, 255, 123},{ 255, 255, 255}, // 27-29 { 223, 235, 223},{ 195, 211, 195},{ 167, 191, 167}, // 30-32 { 139, 171, 139},{ 119, 151, 119},{ 95, 131, 95}, // 33-35 { 75, 111, 75},{ 59, 91, 59},{ 43, 71, 43}, // 36-38 { 255, 255, 255},{ 227, 231, 243},{ 215, 219, 235}, // 39-41 { 203, 211, 231},{ 191, 199, 227},{ 183, 191, 223}, // 42-44 { 171, 183, 219},{ 163, 175, 211},{ 151, 163, 207}, // 45-47 { 139, 155, 203},{ 131, 147, 199},{ 123, 139, 191}, // 48-50 { 115, 131, 187},{ 107, 123, 183},{ 99, 119, 179}, // 51-53 { 91, 111, 175},{ 255, 255, 255},{ 231, 239, 239}, // 54-56 { 211, 219, 219},{ 191, 203, 203},{ 171, 187, 187}, // 57-59 { 151, 171, 171},{ 135, 155, 155},{ 119, 139, 139}, // 60-62 { 99, 123, 123},{ 87, 107, 107},{ 71, 91, 91}, // 63-65 { 55, 75, 75},{ 43, 59, 59},{ 31, 43, 43}, // 66-68 { 15, 27, 27},{ 7, 11, 11},{ 255, 243, 143}, // 69-71 { 247, 231, 135},{ 239, 219, 127},{ 231, 211, 123}, // 72-74 { 227, 199, 119},{ 219, 191, 111},{ 211, 179, 107}, // 75-77 { 207, 171, 103},{ 187, 195, 39},{ 251, 243, 167}, // 78-80 { 239, 235, 163},{ 227, 227, 159},{ 215, 215, 151}, // 81-83 { 199, 203, 147},{ 187, 191, 143},{ 175, 179, 135}, // 84-86 { 159, 167, 131},{ 147, 155, 123},{ 135, 143, 115}, // 87-89 { 223, 219, 123},{ 207, 207, 119},{ 195, 195, 119}, // 90-92 { 179, 179, 115},{ 163, 167, 111},{ 151, 155, 107}, // 93-95 { 139, 143, 103},{ 127, 131, 95},{ 115, 119, 91}, // 96-98 { 195, 195, 119},{ 51, 39, 27},{ 55, 43, 31}, // 99-101 { 63, 47, 35},{ 71, 55, 39},{ 75, 59, 43}, // 102-104 { 83, 67, 43},{ 91, 71, 51},{ 95, 79, 55}, // 105-107 { 103, 83, 59},{ 111, 91, 63},{ 191, 131, 47}, // 108-110 { 254, 254, 254},{ 255, 255, 151},{ 255, 87, 255}, // 111-113 111=blink white // 112= blink gold { 111, 91, 63},{ 115, 95, 67},{ 123, 103, 71}, // 114-116 { 131, 111, 75},{ 139, 119, 83},{ 255, 255, 87}, // 117-119 { 0, 171, 0},{ 87, 87, 255},{ 0, 0, 171}, // 120-122 { 135, 143, 115},{ 159, 167, 131},{ 95, 223, 255}, // 123-125 { 203, 211, 231},{ 231, 211, 171},{ 59, 0, 0}, // 126-128 { 83, 0, 0},{ 103, 0, 0},{ 127, 7, 0}, // 129-131 { 147, 11, 0},{ 167, 15, 0},{ 191, 0, 0}, // 132-134 { 191, 63, 15},{ 191, 99, 31},{ 191, 131, 47}, // 135-137 { 191, 159, 59},{ 191, 183, 75},{ 183, 191, 95}, // 138-140 { 191, 191, 191},{ 167, 179, 167},{ 147, 159, 147}, // 141-143 { 127, 143, 127},{ 107, 131, 107},{ 91, 115, 91}, // 144-146 { 71, 99, 71},{ 59, 83, 59},{ 47, 71, 47}, // 147-149 { 35, 55, 35},{ 191, 191, 191},{ 171, 175, 183}, // 150-152 { 163, 167, 179},{ 155, 159, 175},{ 143, 151, 171}, // 153-155 { 139, 143, 167},{ 131, 139, 167},{ 123, 131, 159}, // 156-158 { 115, 123, 155},{ 107, 119, 155},{ 99, 111, 151}, // 159-161 { 95, 107, 143},{ 87, 99, 143},{ 83, 95, 139}, // 162-164 { 75, 91, 135},{ 71, 83, 131},{ 191, 191, 191}, // 165-167 { 175, 179, 179},{ 159, 167, 167},{ 143, 155, 155}, // 168-170 { 131, 143, 143},{ 115, 131, 131},{ 103, 119, 119}, // 171-173 { 91, 107, 107},{ 75, 95, 95},{ 67, 83, 83}, // 174-176 { 55, 71, 71},{ 43, 59, 59},{ 35, 47, 47}, // 177-179 { 23, 35, 35},{ 11, 23, 23},{ 7, 11, 11}, // 180-182 { 191, 183, 107},{ 187, 175, 103},{ 179, 167, 95}, // 183-185 { 175, 159, 95},{ 171, 151, 91},{ 167, 143, 83}, // 186-188 { 159, 135, 83},{ 155, 131, 79},{ 143, 147, 31}, // 189-191 { 191, 183, 127},{ 179, 179, 123},{ 171, 171, 119}, // 192-194 { 163, 163, 115},{ 151, 155, 111},{ 143, 143, 107}, // 195-197 { 131, 135, 103},{ 119, 127, 99},{ 111, 119, 95}, // 198-200 { 103, 107, 87},{ 167, 167, 95},{ 155, 155, 91}, // 201-203 { 147, 147, 91},{ 135, 135, 87},{ 123, 127, 83}, // 204-206 { 115, 119, 83},{ 107, 107, 79},{ 95, 99, 71}, // 207-209 { 87, 91, 71},{ 147, 147, 91},{ 147, 127, 87}, // 210-212 { 155, 135, 91},{ 163, 143, 95},{ 171, 151, 103}, // 213-215 { 179, 155, 107},{ 187, 167, 115},{ 195, 175, 119}, // 216-218 { 203, 183, 127},{ 211, 191, 131},{ 219, 199, 139}, // 219-221 { 143, 91, 31},{ 255, 87, 255},{ 191, 191, 115}, // 222-224 224=blink dark { 255, 87, 255},{ 223, 207, 143},{ 231, 215, 147}, // 225-227 { 239, 223, 155},{ 247, 231, 163},{ 255, 239, 171}, // 228-230 { 191, 191, 67},{ 0, 131, 0},{ 67, 67, 191}, // 231-233 { 0, 0, 131},{ 103, 107, 87},{ 119, 127, 99}, // 234-236 { 71, 167, 191},{ 155, 159, 175},{ 175, 159, 131}, // 237-239 { 135, 143, 115},{ 159, 167, 131},{ 255, 35, 35}, // 240-242 { 43, 199, 183},{ 43, 171, 199},{ 43, 127, 199}, // 243-245 { 43, 83, 199},{ 47, 43, 199},{ 91, 43, 199}, // 246-248 { 135, 43, 199},{ 179, 43, 199},{ 199, 43, 175}, // 249-251 { 199, 43, 131},{ 199, 43, 87},{ 199, 43, 43}, // 252-254 { 255, 119, 123}}; // 255 /* ==================================================================== Locals ==================================================================== */ /* ==================================================================== Read icon header from file pos. ==================================================================== */ static void shp_read_icon_header( FILE *file, Icon_Header *header ) { memset( header, 0, sizeof( Icon_Header ) ); _fread( &header->height, 2, 1, file ); header->height = SDL_SwapLE16(header->height); header->height++; /* if y1 == y2 it is at least one line anyway */ _fread( &header->width, 2, 1, file ); header->width = SDL_SwapLE16(header->width); header->width++; _fread( &header->cx, 2, 1, file ); header->cx = SDL_SwapLE16(header->cx); _fread( &header->cy, 2, 1, file ); header->cy = SDL_SwapLE16(header->cy); _fread( &header->x1, 4, 1, file ); header->x1 = SDL_SwapLE32(header->x1); _fread( &header->y1, 4, 1, file ); header->y1 = SDL_SwapLE32(header->y1); _fread( &header->x2, 4, 1, file ); header->x2 = SDL_SwapLE32(header->x2); _fread( &header->y2, 4, 1, file ); header->y2 = SDL_SwapLE32(header->y2); header->valid = 1; if ( header->x1 >= header->width || header->x2 >= header->width ) header->valid = 0; if ( header->y1 >= header->height || header->y2 >= header->height ) header->valid = 0; if ( header->x1 < 0 ) { header->x1 = 0; header->actual_width = header->x2; } else header->actual_width = header->x2 - header->x1 + 1; if ( header->y1 < 0 ) { header->y1 = 0; header->actual_height = abs( header->y1 ) + header->y2 + 1; } else header->actual_height = header->y2 - header->y1 + 1; } /* ==================================================================== Read palette from file pos. ==================================================================== */ static void shp_read_palette( FILE *file, RGB_Entry *pal ) { int i; int count = 0; int id; int part; memset( pal, 0, sizeof( RGB_Entry ) * 256 ); _fread( &count, 4, 1, file ); count = SDL_SwapLE32(count); for ( i = 0; i < count; i++ ) { id = 0; _fread( &id, 1, 1, file ); if ( id >= 256 ) id = 255; part = 0; _fread( &part, 1, 1, file ); pal[id].r = part * 4; part = 0; _fread( &part, 1, 1, file ); pal[id].g = part * 4; part = 0; _fread( &part, 1, 1, file ); pal[id].b = part * 4; } } /* ==================================================================== Read raw SHP icon data from file and draw it to 'surf' at 'y' interpreting the indices of the icon as palette entry indices. ==================================================================== */ static void shp_read_icon( FILE *file, SDL_Surface *surf, int y, RGB_Entry *pal, Icon_Header *header ) { int bytes, flag; int x = 0, i, y1 = header->y1; Uint8 buf; Uint32 ckey = MAPRGB( CKEY_RED, CKEY_GREEN, CKEY_BLUE ); /* transparent color key */ /* read */ while ( y1 <= header->y2 ) { buf = 0; _fread( &buf, 1, 1, file ); flag = buf % 2; bytes = buf / 2; if ( bytes == 0 && flag == 1 ) { /* transparency */ buf = 0; _fread( &buf, 1, 1, file ); for ( i = 0; i < buf; i++ ) set_pixel( surf, x++ + header->x1, y + y1, ckey ); } else if ( bytes == 0 ) { /* end of line */ y1++; x = 0; } else if ( flag == 0 ) { /* byte row */ buf = 0; _fread( &buf, 1, 1, file ); for ( i = 0; i < bytes; i++ ) set_pixel( surf, x++ + header->x1, y + y1, MAPRGB( pal[buf].r, pal[buf].g, pal[buf].b ) ); } else { /* bytes != 0 && flag == 1: read next bytes uncompressed */ for ( i = 0; i < bytes; i++ ) { buf = 0; _fread( &buf, 1, 1, file ); set_pixel( surf, x++ + header->x1, y + y1, MAPRGB( pal[buf].r, pal[buf].g, pal[buf].b ) ); } } } } /* ==================================================================== Publics ==================================================================== */ /* ==================================================================== Draw a pixel at x,y in surf. ==================================================================== */ void set_pixel( SDL_Surface *surf, int x, int y, int pixel ) { int pos = 0; pos = y * surf->pitch + x * surf->format->BytesPerPixel; memcpy( surf->pixels + pos, &pixel, surf->format->BytesPerPixel ); } Uint32 get_pixel( SDL_Surface *surf, int x, int y ) { int pos = 0; Uint32 pixel = 0; pos = y * surf->pitch + x * surf->format->BytesPerPixel; memcpy( &pixel, surf->pixels + pos, surf->format->BytesPerPixel ); return pixel; } /* ==================================================================== Load a SHP file to a PG_Shp struct. Since SHP files are only found in source path (=original PG data), for simplicity this function only gets the file name and the source_path is always prepended for opening the file. ==================================================================== */ PG_Shp *shp_load( const char *fname ) { int i; FILE *file = 0; char path[MAXPATHLEN]; int dummy; int width = 0, height = 0; int old_pos, pos, pal_pos; PG_Shp *shp = 0; SDL_PixelFormat *pf = SDL_GetVideoSurface()->format; Uint32 ckey = MAPRGB( CKEY_RED, CKEY_GREEN, CKEY_BLUE ); /* transparent color key */ Icon_Header header; RGB_Entry pal[256]; RGB_Entry *actual_pal = 0; int icon_maxw = 60, icon_maxh = 50; snprintf( path, MAXPATHLEN, "%s/%s", source_path, fname ); if ( ( file = fopen_ic( path, "rb" ) ) == NULL ) { printf("Could not open file %s\n",path); return NULL; } /* magic */ _fread( &dummy, 4, 1, file ); /* shp struct */ shp = calloc( 1, sizeof( PG_Shp ) ); /* icon count */ _fread( &shp->count, 4, 1, file ); shp->count = SDL_SwapLE32(shp->count); if ( shp->count == 0 ) { fprintf( stderr, "%s: no icons found\n", path ); goto failure; } /* create surface (measure size first) */ for ( i = 0; i < shp->count; i++ ) { /* read file position of actual data and palette */ _fread( &pos, 4, 1, file ); pos = SDL_SwapLE32(pos); _fread( &dummy, 4, 1, file ); old_pos = ftell( file ); /* read header */ fseek( file, pos, SEEK_SET ); shp_read_icon_header( file, &header ); /* XXX if icon is too large, ignore it and replace with an empty * icon of maximum size; use hardcoded limit which is basically okay * as we convert PG data and can assume the icons have size of map * tile at maximum. */ if ( header.width > icon_maxw || header.height > icon_maxh ) { fprintf( stderr, "Icon %d in %s is too large (%dx%d), replacing " "with empty icon\n", i, fname, header.width,header.height ); header.width = icon_maxw; header.height = icon_maxh; header.valid = 0; } if ( header.width > width ) width = header.width; height += header.height; fseek( file, old_pos, SEEK_SET ); } shp->surf = SDL_CreateRGBSurface( SDL_SWSURFACE, width, height, pf->BitsPerPixel, pf->Rmask, pf->Gmask, pf->Bmask, pf->Amask ); if ( shp->surf == 0 ) { fprintf( stderr, "error creating surface: %s\n", SDL_GetError() ); goto failure; } SDL_FillRect( shp->surf, 0, ckey ); /* read icons */ shp->offsets = calloc( shp->count, sizeof( int ) ); shp->headers = calloc( shp->count, sizeof( Icon_Header ) ); fseek( file, 8, SEEK_SET ); for ( i = 0; i < shp->count; i++ ) { /* read position of data and palette */ pos = pal_pos = 0; _fread( &pos, 4, 1, file ); pos = SDL_SwapLE32(pos); _fread( &pal_pos, 4, 1, file ); pal_pos = SDL_SwapLE32(pal_pos); old_pos = ftell( file ); /* read palette */ if ( !use_def_pal && pal_pos > 0 ) { fseek( file, pal_pos, SEEK_SET ); shp_read_palette( file, pal ); actual_pal = pal; } else actual_pal = def_pal; /* read header */ fseek( file, pos, SEEK_SET ); shp_read_icon_header( file, &header ); /* see comment in measure loop above; have empty icon if too large */ if ( header.width > icon_maxw || header.height > icon_maxh ) { /* error message already given in measure loop */ header.width = icon_maxw; header.height = icon_maxh; header.valid = 0; } if ( header.valid ) shp_read_icon( file, shp->surf, shp->offsets[i], actual_pal, &header ); if ( i < shp->count - 1 ) shp->offsets[i + 1] = shp->offsets[i] + header.height; memcpy( &shp->headers[i], &header, sizeof( Icon_Header ) ); fseek( file, old_pos, SEEK_SET ); } fclose( file ); return shp; failure: if ( file ) fclose( file ); if ( shp ) shp_free( &shp ); return 0; } /* ==================================================================== Free a PG_Shp struct. ==================================================================== */ void shp_free( PG_Shp **shp ) { if ( *shp == 0 ) return; if ( (*shp)->headers ) free( (*shp)->headers ); if ( (*shp)->offsets ) free( (*shp)->offsets ); if ( (*shp)->surf ) SDL_FreeSurface( (*shp)->surf ); free( *shp ); *shp = 0; } /* ==================================================================== Read all SHP files in source directory and save to directory '.view' in dest directory. ==================================================================== */ int shp_all_to_bmp( void ) { char path[MAXPATHLEN]; int length; DIR *dir = 0; PG_Shp *shp; struct dirent *dirent = 0; /* open directory */ if ( ( dir = opendir( source_path ) ) == 0 ) { fprintf( stderr, "%s: can't open directory\n", source_path ); return 0; } while ( ( dirent = readdir( dir ) ) != 0 ) { if ( dirent->d_name[0] == '.' ) continue; if ( !strncmp( "tacally.shp", strlower( dirent->d_name ), 11 ) ) continue; if ( !strncmp( "tacgerm.shp", strlower( dirent->d_name ), 11 ) ) continue; if ( !strncmp( "a_", strlower( dirent->d_name ), 2 ) ) continue; length = strlen( dirent->d_name ); if ( (dirent->d_name[length - 1] != 'P' || dirent->d_name[length - 2] != 'H' || dirent->d_name[length - 3] != 'S') && (dirent->d_name[length - 1] != 'p' || dirent->d_name[length - 2] != 'h' || dirent->d_name[length - 3] != 's') ) continue; printf( "%s...\n", dirent->d_name ); if ( ( shp = shp_load( dirent->d_name ) ) == 0 ) continue; snprintf( path, MAXPATHLEN, "%s/.view/%s.bmp", dest_path, dirent->d_name ); SDL_SaveBMP( shp->surf, path ); shp_free( &shp ); } closedir( dir ); return 1; } lgeneral-1.3.1/lgc-pg/nations.h0000664000175000017500000000240312140770460013225 00000000000000/*************************************************************************** nations.h - description ------------------- begin : Tue Mar 12 2002 copyright : (C) 2001 by Michael Speck email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __NATIONS_H #define __NATIONS_H /* ==================================================================== Create nations database and convert graphics. ==================================================================== */ int nations_convert( void ); #endif lgeneral-1.3.1/lgc-pg/convdata/0000775000175000017500000000000012643745100013262 500000000000000lgeneral-1.3.1/lgc-pg/convdata/guard.bmp0000664000175000017500000000206212140770460015003 00000000000000BM2zl¸  BGRsåååååååååååååååååååååÿÿÿÿÿÿÿÿååååååÿÿÿÿÿÿÿÿååååååÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿåååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååålgeneral-1.3.1/lgc-pg/convdata/sea.wav0000664000175000017500000026565612140770460014514 00000000000000RIFF¦kWAVEfmt D¬D¬LIST6INFOINAMseaIARTMarkus KoschanyICRD2012dataDk‚„‡‡†„ƒƒƒ‚~~~|}~€€ƒ„…„€€€~‚~|~ƒƒ€€€‚ƒ„„…‚€‚…†…„„ƒ~||||}~~}{}}{zz{}~~~‚†††„……†…††…†„ƒ„„ƒ|{|~‚ƒƒ~||~€~~…ˆ‰Š‰†…ƒ‚€~‚‚€€€‚ƒ…„„ƒ|wstwz|~‚………‚‚‚ƒ„~~~~~€‚„ƒ‚€‚„…ƒ€~|{|{zxxxxwvyz||{|~€€{z{~€}|z{}ƒ†„€}||~ƒ„ƒ€€~|~}||{}~~}|{{}€~{}~}~€€€‚ƒ„……†‡‡†…„……‚‚‚‚ƒ„„„ƒ€}z{z{|zz{ywvvvwyyz||{{zxxyxxxz||~€}|}}}~~‚ƒƒ‚‚ƒ„…„‚‚‚‚‚ƒ„…ƒƒ…†„ƒ‚‚‚}|zyzz}‚‚ƒ„„ƒ‚‚‚‚€€€~ƒ‚ƒƒ‚€}zvxyy{||~€€}{zyy{~‚†‰‹‹ŠŒŒŠ‡†ƒ€€€€~zzz{}}~‚‚ƒƒ|}}{~€~|||{{yz{|~€‚‚ƒ„„„ƒ……„††ˆŠŠ‡ƒ€€‚ƒƒƒ„……………†…ƒ~||||~€€}}|zyyzz{{yxz~…‡‡‡††„ƒ‚€~}{}€€€€~€‚|yyxwz}}}~~‚„„‚‚€}|zz{|~~~}{{|}~€~~}z|~‚‚‚‚……ƒƒ„„zwy|~{ywvxvvz~~{xy}€€~~~€‚‚ƒƒ„†‡ˆˆˆ‡‡…€‚ƒƒ{yy|‚‚€~}|}~€ƒƒ}||zz{~€€€„„„ƒ‚€~zxy|~€‚„‰‹‹Œ‹Œ‹ŠŠˆ„}}||}€€ƒƒ|zzxyyyz|||€„ˆˆ„~zy{}}~‚€|{}~€}|}€}€€~€„††……†„‚|zzzxxxzzy{zyxy|}}|{|zxwwxvy~€~„ˆˆ‡…‚|||zzzxz|‚ƒ†‰‰‹‹Š‡„„„………†ˆ‰‡†…‚‚‚‚„ƒƒ‚€ƒƒ~~~}yxyz{|~|}ƒ‚‚ƒ„„„…ˆ‡††‚~|~€ƒ„„‚|{}~‚€~~}~€~€‚ƒ€~|}|}}~|yxx{~‚ƒ…‡†ƒ€~}}}|}}{zz{€~||||~‚ƒ€}|}~}}{vvz|}{y{~‚„ƒ{xx{~€‚„†‡‡ˆ‰‹ŽŒŠ‰‡……„‚~~}|zxwvvx}ƒ€‚„……†‡„€~|{z|‚‚ƒ„„„„……„ƒ„„…„ƒ|~€„…‚‚‚‚‚‚€€€€‚~}€€~||}„……„ƒ‚€~{zzzy{~ƒ†‡‡†…‚€~}{yyyzzxxxwz}~}|||~€€~}}~}}€€€~~~€ƒ‚ƒƒƒ‚‚‚}z{€€}||xutuy{~‚„„‚‚„†…„„ƒƒ‚‚ƒ„~||€ƒ„‚|{|}€€~}|}zutw|‚ƒ}}{{}~€‚††‡†ƒ€~{wxy{{}~~ƒ„„ƒ‚}€€€~~|z|}||}€|yyzzzy{z{|{|‚‡‡†…‡Š‹ŠŠˆ„‚~}~||}}ywsquz}‚„‚‚|{xvuux{~€ƒƒ‚€ƒƒ€}}€‚„„„„ƒ€‰ˆ€‚…„‡ˆ‰Ž‹‰ˆ‰‰‰‰‡„‚ƒƒ~}}}~}}~||‚‚€}{zyy{~‚„„ƒ~~€ƒ„„‚€}}‚‚‚€~}~„‚‚ƒƒƒ„††††„ƒ‚€ƒ„ƒ~~~€€|~|y|}~}ywwvvxz|€‚…ˆˆ‰‰…ƒ~~€~|}~}~€€€€€€€ƒ„‚€~‚……„„‚€€‚ƒ‚|yzyxy{|~€|||}~{wvvy}€‚„„„‚‚‚„ƒ‚‚…†‡…ƒƒ†ˆˆ…ƒ„‡‰ˆ…‚‚„…„‚|}€‚€~}||~€€~}||~~~~}||€~}}ƒ„ƒ‚€~‚„††„‚€}|}|}€‚‚€~}}~}|€~|zxxxy{}ƒ„‚}}~€‚…„„…„€€€€|z{}}|}~~}‚ƒ…ƒ~|{|}{{|zwx~€€€‚ƒ‚€‚„„……‚}}‚}}}}~|}}}~}~~{zz{zz{~€„‡‡…€}{||{}|{|}{z{}‚„…‡ˆˆ‰ˆˆˆ†…ƒ€||yyyyyz€ƒ…ƒƒ„‚ƒ}{z{zz|~ƒƒ‚‚}z|~ƒƒ€€~‚„‚}|{yz{yz~|z{|ƒƒƒ†ƒ€~~„…ƒƒ~~€|ywxy{€†„„†ƒ‚…†‚€|}€‚„ƒƒ„‚‚†……‚€~|ƒ}}{z~~y{ƒƒzxy|~~}}|||}}‚††‰Šˆˆ†…‡Š‰‡‡…ƒ€~{ywwxwttwyz{}~}{zyz||||{|}}~‚††…„‚ƒƒ‚€~}yy|~€€~}}€€}~€€~€€€„‚ƒ…ˆ‹Š†€€ƒƒ„‚€~‚~xuvx{‚…ƒ‚‚„ƒ€‚€€~}}ƒƒƒƒ€€~~}}{wvvy~€€ƒ€€~}{yy{~|}ƒ‚„……†‰‹ŒŠ†……‡ˆ‡†„ƒ…‡……††ˆ‡……ƒ€€„††„€ƒ‚€€|{zxwxz|}{zxwwxz||}~}||~}{{|}~‚€€€€~€~}~€~~~|{{€€€€€~~ƒ„„ƒ€~€‚ƒ‚€~~€€‚‚ƒ„‚|zyz}~~~~~€€}~}|}{{z{~‚ƒƒ‚~}€{zywy{z{~}{{‚‚‚€~€‚ƒ……„……ƒ„„ƒ€~}~~~€€}{ƒ„††…„ƒƒ„……„ƒ€‚ƒƒ‚}€ƒƒƒ‚€€€€€ƒƒ€‚€~}}~€€}zyy{||‚€~~‚…ƒ}|‚…†…‚€€€€ƒ…†……††…‚€~}~……ƒ~€„…‚}{zyyyxxz}|{zzz{zyy{~€~{zz{{{{z|~‚…„ƒ……‡‰‡††…ƒ€€€‚‚ƒ‚~~€€~||~|zxwwy|}}~}}~€€}yz|z{{}€ƒ„…„ƒƒƒƒ‚}}~€‚€‚ƒƒ€ƒ††††……ƒƒ‚‚€‚‚……„„ƒƒ‚„†…ƒ‚‚‚‚}yx|~}}}~~€‚‚€~€€~{{{{|zz{zy{~€‚„‚€||€€„…ƒ}}{|‚ƒ‚~|zz{zxvxz|~€ƒ††‡‡ƒ€€‚€~}~~~|}}~~|zxwxyyzz|}}~}||{|€‚‚„………‡‹ŒŒŒ‹‹ŒŒŠˆˆ‰Š‡†††…ƒ~€€€{x{~|{}~}|~}zy{€~||}}|{zyxyz{||ƒ‡‡…†‡……ƒ}{{zzyz}~€€~~|zxxyz{{}~}~~€€~zxvtstuyzz|~‚…ˆˆ†„„}{zzz}~€‚‚ƒ‚€„‡‹‹ŠŠŠ‡……ƒ~yuvyz}€‚†ˆˆŠ‹‡„‚~|||~~€ƒƒ€€ƒ„„†‰Šˆ‡†……‚€‚„…†…ƒ€‚„„…„‚zyyz{||{|‚‚€~~}{yzz{|||}}~~~‚‚ƒ|ywvwz}‚€€€|z~€‚‚}}}€~|{z|~‚ƒƒƒ‚~zyz{}}||{zwuvwxz{~€€‚ƒ€~€€‚‚}}{z}~}}|{z~~}|~€‚‚}~€„„ƒ‡‹†~~~|}{zxx}€~€…‰‹ŒŠˆ…‚„†‰Šˆ‡…„„…†‡ˆ†‚€€€…†„€}~zz~€ƒ„€€~}|zusuuuwxxz{{yz€‚‚€~|zzxutvvuuwwxyxwvwx{zy|€|{~ƒ‡†‚‚„„ƒƒ‡ˆ…‡‡‡‰†ƒ‚ƒ‚€‚ƒƒ†‡‚}{~…ЋЋ‹ˆ‰Š†‚~ywvy}€}xsswz}|zyxyy{}€€|yxvx}€ƒ††ƒ€€€ƒƒ€€|xvxz{}‚‚~ysrvx{|zxx{|}‚†‰‰‡ƒ}…ˆ‰ˆ†„„‚}yz|~„ƒ€~}}~|{zwwyxw{}}}€€}zz~€„ˆ‰‡ƒ„…†‡‰‰‰ŽŒ‰…€€‚„ƒ€€€ƒ…†‰Š‰†ƒ‚€‚‚€€‚„†‡‡‡†ƒ€}{zzyy{zx{|~~~~~{{}€€‚„‚}|{|~~€}zzx{~‚…‚}{z~‚‚‚~yvvuvv{€‚€~|zyxxxzzxxvwz{…‰ˆ……ƒ„ˆ……„€|}~~~€€€€~}{wwx}ƒ…‡†„„}}‚}}}}}}}~||}}€ƒƒ€‚~|{y{~}yxvvy}€ƒ„|{‚„†ƒ}zz{|}€‚ƒ………„~ywwwxyxwvvzz|†‹Œ‰‡†‡‡‰…„†…~|„Љ‡†…ƒ€€€}yy€ƒ~€|y}€~}‰ƒ€|z|€yvwttrruwz|€„„‡ˆŠ‰‚~}~€|{ƒ†„€~}~‚†ˆ‰‡„„†Š‰‡‡€}}}~zyvwz}€„…„‚ƒ‚‚…ˆˆ†„€{ywspprvy{{yxxyzxy{}~€„‡‡ƒ~}€‚ƒ€}}€†‰ˆŠ‡‚€‚ƒ„„~}{{}€}{ywtw~ƒ…‚€€€‚ƒ„|zx{‚ˆ‰ˆ„€~{z|…ˆ†‚~„†‡†„|{z|{||zyx|}yy{{yy|{zxx|~††…„€~yvxz{|~}}„…~}{}~|z{}€}zyxwyyz{€„…††…}}‚„„‚}z~ƒ†‡„|{|{yz{z{|z{~‚†‡ƒ€€†ˆ†ƒ€€ƒ‚~}}~}{|~€‚ƒ………„‚‚€€}z{~€‚‚€€€€ƒ‚€‚}|z|ƒ‚ƒƒ„~{|{{~‚€||‚ƒƒ‚|z{|}}z|€ƒ…ƒ~|€~|z{|}|{|~€ƒƒ‚„…„‚€…‰Š‹‹Š†‚~|{|}~€„ƒ‚~}zxx|~}|zwuuvvtstw}‚……ƒƒˆ‰‰Š‰ˆ‡††…„ƒ„†…ƒƒƒƒ‚„……‚€}yx„„‚‚‚ƒƒ}{z{~€€ƒ„„ƒ‚ƒƒ‚„…‚}}}||‚…‚€}{~|wƒ|{„…‚„„|vpmruqv{wxy{yy}~€}€„†‰‹‹‹ŒŠˆ„~xuyyuqrutvwrrw{€…ˆˆˆŠ‹†ƒ…„†‰‡…‚}{|}~~€~|}~~~|{xy|ƒ„{y{|~‚‡ŒŠ„€‚‚†ˆ‰…ƒ„ƒ„…ƒ„„}}zzxwx{}~ƒ„„„„ƒ„…€yxxxwuux{~€€}|||zyyzyxyxx{{|~‚‚€‚‚„ˆŠ‰†‚~{}€~ztrroosvvvvuw{~€€€€€€ƒ…ˆ‰ˆ†…†…ƒ…‰‰ŠŠŠˆ‰‰‰‡„†‡ˆ‡†…ƒ€~|zzz}‚„…‡ŠŠˆ„€~~|{{yxvuvxz}}{y|~~…†…~}|}~{z||~~€„…‚€„…†ˆˆ‰‰‡„‚yyxyxtuxxz|||z}ƒ‡‡†ˆ‰…‚‚€~~~{yyxz}‚ƒ‡‰‡‡„€€~zuruy{zyyyyy{~€‚„‡…‡‰„‚ƒƒ†‰‰ŠŠŠ‹‰…€}{€„‚~vx…†|xz|zuswwvyyy}€ƒˆŒ„}}€€€ƒ‚„„†„‚~~|~~}|xx{|~„„ƒ†…€€‚…„…ˆŠ‰‡†‚}}|}€€€~|€ƒ‰Š‡ƒ€~}}}|{{z}€zyxuxyyywqptxz€‰‹‰…ƒ„…†…‚€€„††…‚‚|xvy||~ƒ‚€}€€~~ƒ}|€ˆ‡‚~€‚ƒ…‡‡……„„{wy|{}~~€€~}‚ƒ„‡‰‹…€~~‚ƒ‚‚}yzwrtx{}‚…ƒ‚‚…‡†††…ƒ€€|zzzwxxy}€~{yz‚„„‚€|z|ƒ„…‡ˆˆˆ‡†††…|zvtrpnlmruuwvwz|}€‡ŠŠ‰ˆ††‡†††ƒ|}~‚…ŠŽ‘ŽŠ„}xx|€~€‚ƒ„€~z|‚……ƒ„‚|ywttswz|‚ƒ‚‡‰†‚ƒ…ƒ€||€}z{{zz{{‰Ž†ywzƒƒ}{|{zy‚…ƒ}~„…~}|……€||z{~~{|‚„ƒ‡‹‡‡‡„‡‡‚‚ƒ~‚}{xsqvywz}ƒ„‡Šˆ…ƒ„…†††„{yz{}€~}z{}~ƒ…„…‚ƒ†…‚~~~{vronqvwutv|}{y€„…‡†…„ˆˆ†‚}€~‚„‡‡†††‹Šˆ‚zvswy}€‚„……†„€{{zwwy}…Šˆ…ƒƒ„„‚€‚…‰‰…‡†„‚€{tqsw|„ŽŠ……‹ˆˆ‰‰ˆ†„{yvwxvtsrtux||}€€‚„ƒ……„…††…‚ƒ„„ƒ|yx{„ƒ€ƒ†††‡~‚€‚yuww~|€ƒ‚{{}{zxrns}€~xt}‰Œ†ƒ††}€|vqqv|zvvw|‚‚~z……ƒ€}€‚‡ˆ~|ƒ„|‡—œ“…~}„‡„}~„‚€~ƒ†„‡€}ŠŒ†‚ƒ…‡ˆ†„‚€~ywzyvw{„ŠŠ‹Š„~wprvz€…‡†‚|wx|zuu{~}|ywwvutvxy{|€‚„…yxyz~€‚‚}{€„„‡ˆ‰‡†ˆŒ‰†ŒŒ‡„‚€~~}~‚|…ˆ‡~€€~zyxtvxty€{trtstru~ƒ‚zwy{ƒƒ‚€zuw~ƒ„‚ƒƒ|utw€‰‹†ƒ€‚„‚‚ƒ‚||}{vvvuz„‰ˆ„…ˆŒŒˆ‡„€~€‡‰ƒ~}~}|‚|{||€|yvy{y|ƒ€||~‚€‚‚~}|||€…‚}{zwwx|~€‚}z{|}}}~|}„…ˆ‰„€‚ƒ„……}z{€„‡…†‰†€~ƒ…‡Š†€€‚…„~~~}|zxvv{}‡‡…„……††ƒ‚ƒƒ‚€}~|zy{~~~~~}zz}‚‚~yy|}‚ƒ‚~{{|€†ˆ‡ˆŠ‹‰†„„~…‡{{€€€‡‡ƒ…„}xwwwxy{yx|‚~„ˆ‰‰Š‹‰‡|xwz{z{}yz|€„…„ƒƒ||}|xyzwwz|}€ƒ~z{|~…‡……„‚ƒƒƒƒ…‡ƒ€€~{xz}ƒ„‚‚}}}‚‚‚‚‚‚~~}~€„„‚ƒ„……„ƒƒƒ‚}~}yvy{}~{{|||{}}|}~}{yyzz|‚„„‚{{~ƒ„‚~}}{yz|€‚€€ƒ‚}||zzy}‚}{~{|~{}ƒƒ||…‰‡„ƒ{{~‚ƒ……†ˆŠ‹Š‡ƒ€€€€|z}‚„„†„~yxxz~‚……„ƒƒ„ƒƒ‚‚‚‚„…‚~|~‚……‚~‚‚‚ƒ€€€ƒ}z{||{z|}|{{€‚ƒƒ‚‚~|}|z|‚~{{zxy{yvvx{|€ƒƒ‚‚‚ƒ€€ƒƒ‚ƒƒ„……†‡†„‚~{xxz|}~€}yzyvtrsz~}||€‚ƒ}|€ƒ‚ƒ‚~}~€‚‚‚€€||||}}~‚ƒ……ƒ‚ƒ…†‡††…„……ƒ€€|}|xvvvy|z{€‚€}€‚}|~}zwwyz|}~~~€€~}€€‚€~ywutux|~}}††‚~~€€~{y}€~}~ƒ‚€ƒ…ƒ}{zz~€}~~}€~|€ƒ‡†‚}}|~€‚~~€ƒ†……†ƒ‚‚…†‡†ˆ‡…†„‚‚‚‚‚ƒ‚‚„…ƒ‚ƒ†‰ˆ†„€~}ywvx|‚†‡…‚‚€~|||}}yxy{„……„ƒƒ„‚€€}{zz}~~~€~}|{{zyz||~€€€‚„„…††…‚€€}|yuvuv|}~€€€€‚‚„†…‚€~{|||}‚……ƒ‚ƒ…ˆŠ‹ŠŒ‹Š‹‹Š‰‡……††‚€€~€}|zwvwxwvvx|€|zz|‚„ƒ€~||}€zuutw}‚€}~}{{|||}{{z{~€€}~€~}~||}}€~ƒƒƒ‚||y{~{z{zy}ƒ‚„…†‰ŒŠ‡†„‚‚ƒ…‡††…~~€‚‚|z‚}|}ƒ„…‚€ƒƒƒƒƒ‚„…„~|}~~~~}}~}{}€ƒƒ…†ˆ‹‹ŠŠ‡ƒ€|yzzzzxxvvxzzyy|‚~|~‚‚€€€|wwz~€‚„………†‡‡‡†„€„‡†„ƒ€~}|‚‚~|{{~~~€~€€}~}}€€€~€„…†ˆ‰‰‡„‚ƒƒƒ|xvvy{}~|}€€€~|}€ƒ~}~|{z{~{xxy~‚~~€‚ƒ€‚„ƒ}xxz|}}~€‚…‡ˆ‡‚|xuwzwtstwyz{{|~‚‚‚‚ƒ‚ƒ…†…‡ˆ…|yxxyywvvwxwxzxxvuvwz|}€ƒƒ‚~{z~‚……|wuwz~‚€‚„„……‚€~}}|{yvvx~‚„‚|wtuuuz~€€~|{z{~~€€ƒ†‡„ƒ‚€}|‚‡ˆ‡†„€}{zyy{}}}xw}„…ƒ‚€€‚‚‚‚ƒ‚}z{}‚…„ƒƒ„…‚ƒ……ƒ„ˆ‹‹Š‡„…†„€{xy{{y{~€ƒ‚|}~~{z{{|}yvursuwz}€~‚……ƒ~ƒƒ…‡…ƒ„„…„……ˆ‰Š‡„ƒ€‚ƒ|{z{‚‚}€€€€‚‚ƒ€…‡‡‡……†………ˆ‹Œˆ„€€ƒ†‡††‚}yxz}}~~~‚ƒƒ„„„ƒ††‚€€‚ƒ‚€}~~|||{}‚ƒƒƒƒ€€€€~~~}~~{zxz~‚ƒ„‡‡„€||~}{|~‚…‚|yyyxttxz}€~|~€}|}€}{zyz~€~}€ƒ…ƒ†…‚…†„……‚€~||~€‚ƒ€~€€~}~~}}{|~€}}{{|zwuuwyzzyxyyxyz|€‚ƒ~|}{yy|€~~€~~~‚ƒ„„ƒ€~}€‚‚„…ƒ‚‚€~|zy{‚„ƒ€}{z{}€…ˆ‡‡„~{yxz|}~~}}~~}}€€~|{~‚ƒ…‡‰‰‡„€€‚ƒ†‡‡†…„„…„€{z}€„‚€€~}{……ƒƒƒ‚‚}|}~}zxy{~~|}~~€€‚‚‚„†ƒ~|z|}|~}|}~~|~}|{zyz~€€~|}~€€}}~~}}}€‚ƒ„„‡ˆ‡„~zz{}€„‡‡…‚€~„……„~{|zwy{yy{~‚„ƒ„……†…„€}|{{|{||}‚€~ƒƒ†ŠŠˆ†…‡‡‡‰‡††‡†‚…†ƒ€€‚‚„ƒƒ…ƒ€|{{}~}{{|~|{zz€€|{}}}|y{€€€yx{wxvqoqux|~€‚‚€€‚ƒ…„}{y|~€€ƒˆ‹ŒŠ‡ƒ~~||zyywy}€‚‚„†…„„„……„ƒ}}}~~}}}||}~‚‚„„ƒ€|y}€~~€€}{{}ƒ„…‚~€‚~ywvuuwyzxwy{~~~€ƒ‡ˆ‡†„ƒ„„„………‚{xvw{{{~€€}{|{z|~}zxy|‚‡…‚‚‚‚‚€~||}‚……‚€€€ƒ‚€ƒƒƒƒƒ„‚€~~‚‚‚‚~|z{€‚‚‚€~}€€€‚€…ˆ†„„……††‚~}}{yy{~€}z}‚€~}€€‚…‡†ƒƒ‚€‚€~‚‚{yxz|{xwx{€„„‚€‚„}y{‚„ƒ€„€‚ƒƒ†‡ˆ„€~zy|€ƒ€|xvurtvvy||wtrrvz}€ƒ„†‡ˆ‡†…„„„‚„…†…ƒ‚‚‚‚„…ƒ}||||zwvy}‚…„…‡‡ˆˆ††‡ˆ‰ˆ…ƒ‚‚„…†ˆŠ‹Šˆ…ƒ………ƒ€||}€||zwxuvurruywqqsx‰ŒŽŒ|fUi”©µ¡a;Sˆ°²›„skm}‰„u|‹‹~vqpy‚€…†tnrzyrqsuy†€{€ˆ†€xu~‡Š…„‡‰…‚}zywx{}~|{{{ƒ€|zwvy~~zxy|}~€€~|{{‚…„‚}zz~€€}|z}€‚€|yuty‡‡†‚„Š‹ŒŠˆ…ƒ…ˆŒ‹ˆ‡†„„…†…ƒƒ„†‡‡ƒ}wuwxz|||}}}|zywwz|~ƒ‚|yx{}|}ƒ€}{|}yy}‚‡‡†ˆŠ‰…ƒ…ƒ‚„ƒ‚€€‚}z{|}~{vurruy}‚†„|{|€‚ƒ…††„‚€€€€~}}…†ƒ~}}|ƒƒ|zz|~}{||}€ƒƒ‚ƒ„‚|x{ƒ†ƒzz{}~‚€|{~~~‚†‡††……††…‰Š„‚‚~|~{{{yz||{z|~ƒ„‚‚€~|xwz}ƒ‚ƒ†ƒƒ‡ˆ††„‚‚‚‚€~|}~}€ƒ„……†ˆ‡ƒ€€€~xsqrvz~ƒ‚„…ƒ‚|{{zy{€|yz|}‚„…†ˆ‡„„€€€‚‚€}|y{|„‡„€~~~€~}||~~€~}|}‚†‡……ƒƒ„ƒ‚€€‚~}~€€€}~|{{}~€~~‚~{yz{yvvusuusqrwzy{~‚ƒˆŒ‰‡‰‰‰‰ˆ‡‡‡„ƒ‚€}ywyz|~€‚ƒ‚„‡‡‰ŒŒŠ‡„ƒ…ƒ‚„|ywwyy{zyxvwy{~€‚‚‚‚€€€€~}~}{||€…ˆŠ‰ˆ…~‚€}~€~€ƒƒƒƒ~}{|~|{{}|}€‚ƒ€~|z{}{y}„„‚‚„…„‚€€~}|{{}|{}||‚…‡†„ƒ€‚„„€„„‚‚†‡…„†…ƒ€}~€‚ƒ~|}€‚~|{yyz|~€€~~}|}€‚ƒƒ‚ƒƒ‚„…………‚~|}~~€}zywx|€€}}}}}}zywxz|~}{z{z{|~„‡ˆˆ‡‡ˆˆ†ƒ‚‚ƒ€~|{y{}€‚‚‚‚€~}€„‡‡‡†„„…ƒ~~~{yzyy|€€‚ƒ„……„‚~}}~~~‚€}~€ƒƒ€~~}~}~€~~‚„ƒ‚ƒ‚~„…„„……ƒ‚‚‚ƒƒƒƒ‚€~}~}{yy{}†‰‡{|{|~~||€€|zz}~~~~}}}{{|€€{yyz|€‚‚‚‚€€~||}~{yyyxvwy|€ƒƒ€~~~‚ƒ„„ƒ‚‚ƒƒ„„„„y{‚„†††ˆ‡ƒ†Šˆ‚€‚~{{xwvvwyxwxzz{{yz}€|}~‚„„„€‚ƒ‚…ˆ‰‰ˆ„ƒ€~}‚ƒ‚}|{||z|€ƒ‚„ˆˆ‚}{zxz€‚€€ƒƒ„‡†‚~€~€{x|€|z{}~€~„„ƒ‚€€}|{|€€}~‚„‚€}~„„„…€{z}~|zyyz€‚}|~€ƒ‚€~{~…‰ˆ‚€„„‚€€‚‚‚}zy{}}~}yusvwxz{{}ƒ†‡†‚€…„€ƒˆ†…‡‡‰‹Š…{z}€€}|{|{xxz}‚€|vvz……„€~}€„…‡ˆ††„ƒ‚…†„{vttwz{xwy{~‚…‡ŠŠ…‚~€ƒ„‚~}}}|yxz}}{}}~}|€„„€|wv~€yx}}}~|yz}€€ƒ‡Š‹Š†}{|€„…†…ƒ‚„„„†‡‡…‚ƒ††…„ƒ€}zy{{yy~€}~ƒƒ€€€~}}{€ƒ…†ˆ‰‡†„|}~‚ƒ‚}{{{|zxwvtsty~‚€€~€‚„„…ˆˆ†‚~ƒ~{y{~‚„††ƒ€€‚‚~|yyzyz|}ƒ}}~ƒƒ‚ƒ‚€~€‚ƒ…‚|yyz{}‚{xz|‚}}}~‚ƒ€€€‚‚~}}{|~ƒƒ€~|}€‚„‚~{|}~~~~~~~†‡„ƒ…†ˆ‰‡„‚‚…†ƒ€‚„‚€€ƒƒ‚€~€~|{xxyyyyyxzzz{|~‚ƒ‚‚€~|}€‚€~|{{||zywx{…„€‚}{z{~‚€}‚ƒ€}}~~‚„ƒ€~~€ƒ†‡†ƒ€……„„‚ƒ‡‡‡†ƒ€€~‚}|{z{}~~€ƒ…ƒƒ„ƒ‚‚‚~{|}€‚ƒƒ…ˆ‰†„€‚‚€}}{{}~€€~}~}zz}{{~‚ƒ€~~€€‚†‡‡„€}{|{yxwwxzzz|{}~}~€~~}}~|{|zz|}~~€||}~€€~|~€‚ƒ…†„ƒ€~}}}~€~{yzƒ……„ƒƒ‚‚‚ƒ…†„€~}}€}y{€€€€€‚†‡ˆŠ‹Šˆ†‚€€‚‚€}~€€~~}z|~~}}}z|‚‡‰†~yz~€€€|z{{}€‚‚††„„„‚€€ƒ…‡„|xvwyy{}yxw{}}~||{yyy{ƒ„{xz~„„}{||{yuttuxxy|}|{{}{xz}€‚„†ˆ†…„‡‰††††ˆŠŒ‰„ƒƒ„†…ƒ~}‚{z|„ˆ‡‚€€€€{ywuuwz|~||€„ƒ€‚‚~{{}€~}~€‚ƒ‚{z|{yxxz~~}€~zyxz|{z{}€‚…„‚„„ƒ„……‚}|}ƒŠ‹Œ‰…†…ƒ€€‚€~|}€‚‚‚ƒ€€€ƒƒ€ƒ†ˆ†‚€€‚ƒƒ‚‚}zww{}|yvtsstttv}}}~|xwwz~}}~|zxwy|||||€ƒˆŠŽŽŠ‹‡€…„†Œ‡…‰‰‡††|‚‚„‰‡yvsquyz|{{ywzƒ……ˆ‰‡……‡ˆ‰Š‰…~~}||zvvz}}~}~~~~€~~|vtw{~€€|{z|€ƒ…†„„„„‡Œ‹ˆ„‚}||zxxwuvxzyz}ƒ‚ƒ„ƒ„„~}ƒ‡‹ŒŠ‰Š‰ˆˆŠ‰‡†„€~~‚…ƒ}}€|{…‰Š†‚€ƒ„†‡„ƒ‚‚}}€…†ƒ~|{{||zzz||zvwxxx{||{zy{}~ƒ‚€}zyyy{{{}€†Š‰…‚€€~zvttwy}~€€€‚‚}|€}€ƒ~~‚„„‚~}~~~}}‚ƒ}ƒƒ‚}}}}}}|}~~{|}}}}~‚†‡‡ˆˆ†„†„€‚}~‚€|z~}}~}}~~~~~~|x{€‚„‚€ƒƒƒ‚‚…†‚}|}|{{z{€{y|‚ƒ‚||}{wsuz}~{yywwuutuy|{y|€ƒ††€|y|ƒƒƒzz|z}}~‚‚„ƒƒ„ƒƒ„„†ˆ‰‰ˆ…€{|}€‚‚…ˆ†„…††ˆ‡‡‰Š‰‰ˆ„€‚€€€}}||}|{|~€€}{yxy{}}}|~ƒ„ƒ‚{zzz|‡ŠŒŒ‹Š‰ˆ‰‰‡„€‚‚€ƒƒ‚‚}€‡‹Š‹Œ‹ˆ†…ƒ„ƒ€€~{{zz|}~}}zywwz{}~€~{{|}}~~€ƒƒ‚ƒ‚{}€~{|{{|{{xy~~~~~~||~‚€|ywuuvuuwzz{~~~~€…ˆ…‚€‚…ˆ‰†ƒƒ‚~|y{}~~‚€€|{|~‚ƒ…†ƒƒ„‚…‰†ƒ~€‚~~~yy{x{‚‚…‚†‡……~‚ƒ…‚‚ƒ‚…„‚‚ƒƒ„„ƒƒƒƒƒ…„ƒ…„ƒ‚~|{~€ƒ‚|yz}~€}|{}~~}|}~~|{zz}}}{z}~}{y{}~~‚‡‰ŠŒŒ‹Šˆ††…„ƒƒ|yvvspprsvwwxz|||~~|ƒ„„‚~|~‚ƒ€~}{|~€€~}€ƒ„‚ƒ‚€€ƒ„‚}~‚}}}|{{{zzzxvwy{|{yvtstvwz{{|€‚€{xxy|‚ˆŠ‹Š‰‰ˆ†††‚}|~~{}ƒ‚„…ƒ€‚„…†‰‰ˆ‡†††„……ƒ€||€‚}}||€‚„‡‡ˆ‡„‚‚ƒ…‡‡„‚‚…ˆˆˆ†‡‡††††„ƒ„‚€‚ƒzy{|{z{|{y{}~‚|y|}|}~}}|‚€{wustvxyz|ƒ‚~||€‚}yuuutuy}}|~~||}„„~}}}|z{€„…„€~}{{zxtrtwz~‚†Š‹Šˆ‚‚‚„‚€{xwxz{zywvvwyz{|}}|{~‚‚~xy€„‰ˆ…ƒ€}„ƒ}{z|~~||‡‡ˆ‰Š‹ˆƒƒ„‚~~ƒ……ˆ‡‚€ƒ„†‰……ŒŒ‡„|}{zxz~„ˆ…ƒƒ€‚„‚‚…ƒ~{yxxyz{z{zx{€ƒ…†…ƒ‚„…†ˆ†~€€‚„‚~~~~~€{||}|€~|}|{yz{xwwxzyvvyzyyz|€‚ƒ…ƒƒƒ‚‚‚‚}zywvwvx{z{|{zz|~|}~‚ƒƒ‚~~~~€€ƒ…ˆˆ‹ŒŠŒŽŒ‡ƒƒ„†…‚‚ƒƒ‚ƒƒ‚‚€‚ƒƒ}}‚…††„ƒ„„€~|{}ƒ‚~|}{z{{}~~~€~||}ƒ…ˆˆ†…ƒ€~||}|||xvvy~„…„‚~|{ywwxz|}{||}€|xwx}€|xwz|}~~|}‚ƒ}zyx|~ƒ‚ƒƒƒ„„ƒ„†‡ˆ‡€}€ˆˆ‡‹Œ‰~‰‚wy~x}…‡ˆ††††„€€……‚„……~~€††…„€{wvx{ƒ~|}…†ˆ†„‡Šˆ…w€|v{vxuzzyxuvyyyyz}}~„‚ƒƒ‚…ˆˆˆˆ„ƒ„††„„„„‚€~~~{yyyxvvxz}~€|wuw{€~}}}}zxxyywxxy{yzzwz€~~~€~}}€ƒ€~}€„…„‚‚‚‚ƒ‡‡ƒƒ€„…†„†„zxwx{}ƒ†…}}‚…ˆ‰„~†ŒŽ†|uv}‚ƒ}wtsvz|~~~~~€‚‚ƒ………ƒ‚€€€‚„‡‡ˆ†„„€‚„„ƒ‚‚ƒ‚€€ƒƒ‚ƒ‚~}|{{{{yxxwvx{}}yuy||}‚‚ƒ„„}}||z|‚„†„€|zxxyywwz{zz{|‚†ˆ‡„}~~~€‚‚€€ƒ…†ƒ‚ƒ„‚€‚}xx|zy‚€~{y{~€‚~~}yy{wy{}{{~„ˆ„|†„„ƒ€ƒŠŒˆ~|{~‚‚|zz{{€…€~~zwy}~}|y{‚„†‡†‡‰Œ‹†ƒ‚}yz|‚†„‚€~{{~}}€„…ƒ€~{{~ƒ„‚~‚‚…‰ˆ……„‚ƒ…„ƒ‚‚‚~}|yyyz{zyxwy}ƒ‚‚ƒ„ƒ……‚zvtx||{}€„†‡ƒƒ„‚~~zz€ƒ‚€ƒƒ‚€€‚‚‚ƒ……ƒ€}|~€„‡†ƒ„…†‡†ƒ~}}{wswstwsuwy|‚†‰‰„ƒƒ~~…‡…ˆ†ƒ‚‚„†„}~€~~~}|{{}}|zwwz}†ˆ†€‚ˆ‡†ƒ‚ƒ„‡‡‡†‡ˆ‡ŠŒ†ƒ‚€~€€}}}}zy}{uuwx{~~}zyvvvuxwwz~€€ƒ‡…ƒ„€~€‚‚‚‚|{~€€{{€~€‚}{wxyyy{}{xyyxxsnqvyxxwvwy|~‚„„„ƒ‚……ƒƒ‡ˆ„~~€‚ƒ~††„ƒ~{wwx|€ƒƒ~{}~{z{}|zz}}|~‚ƒ€€€…†‚‚ƒ„…„‚‚ƒ„…†ŠŽŠ‡…€€‚ƒ…‡†‚€€~~~€~}~|}€ƒ„„~~‚…†„‚|{{wuwy{yy|}€„‚‚ƒxuw|€‚„‰Šˆ…~zz|}~€ƒƒ~€€~}}}}~~~‚ƒƒ„†††‡„€}{xy}~‚€}„…‚‚~|}~‚‚‚‚ƒ„†ˆ‡„€€ƒ†…ƒƒ€€ƒ„„……‚~€{xvwyzxwyz|{z|~€‚zwyz}}}„†…‚~|}€‚€€~~€€…ˆˆˆ…‚€||}~‚„€~|yz}}{|€„…‡‹Œ‡€~}}€ƒ„„ƒ}}}~ƒ„€„‰Œˆ‚‚€ƒ„€~zyyy|€|{yvy~€~{{‚„„€~}€€}€…ƒ}{|zz}}{xy|}~€€€„‰‰„‚||~€€|ƒ„†‡‡‡‡††…ƒ‚€~{xyyyxx{}~~}~‚}{}€~~€~zxxz}~~~~zy{‚ƒ……ƒƒ~~„ˆŠŠ†‡†ƒƒ~zxvvy}}……„‚€~†‰‹‹‰†ƒ€‚‚~€}~†ˆˆ…ƒ„‚ƒ‡ˆ‡…x|‚~‚€yz€€„…„|xxy{~~|{||}ƒ‡‚€{vv}€{|}€€|xvy}~||{z|}|{||xqosyz}‚‚€€„Іƒ}ƒ‰…~{~‚…„|wz}}}|yx{{utxyww{€€}~€€„‡‰†ƒƒ†ƒ~€†‰ŒŽ‰……zp~Š„|zvv}ƒ€|}|~‚{‚†„„ƒ‚‚ywxvw}~€{y{~~€‚„……„ƒ~ƒ‚ƒ‡ƒ€~||}|yxxyzƒƒƒ€}}‚„ƒ€~|zyyywsstuwyzz{{zwvy|~~~ƒ‚ƒ‚~€ƒ†ˆ†„ƒ…‰‰‡ˆˆŠ‹‰ˆˆ‡‰‹Ž‹ƒ‚€‚ƒ‚~}€‚€~~|}€€ƒ……ƒ…‡ˆ‡‚€ƒ…††‰Š‡‡‡ƒ}}ƒ‡ƒ~z{|{yxxvuy~€……‚€‚…‡…‚„‚€€|{|{}||€‚‚€}|~€€‚€~‚€}z}}|{}}}}}}}~|||yxwwy}…‰‡„€|{}„‡††……„‡ˆˆ†‚}~~€~~|zxz†Š†‚€€€~~~}}€€|ywz~€€~~„…‡‡„ƒ€|z|{z|ƒŒŽˆ…ƒ€}}{~ƒ{wuwyy|~~{xwxy{|€‚ƒ}}}„‡‰ŒŠ‰‡„‚‚…‡„~~€€€€~|{{|{wuvuvz}{{{y{~~†‡ˆ‡…„‡ˆ‰‰‡„‚~‚„„„||{yxyxywvwy{„„}yxxzxvvz€ƒ„€}ƒ…„‚„†…‚|xxyy{~‚‡ƒ~{†‰Š‰ˆƒ~€„†…€}yustw}‡Š‰Š‡„ƒ…„||}{zz||}zxz}‚€€~ƒ„‚ƒ‚€{z~‚ƒ€~€„||{y{}~‚…„‚{|~}|zz|‚‚€„ˆˆ…„„…‡ˆ‡ƒ€‚}}|}€€|yxz}~|z{zwttw{}||‚‚~‚„~‚„…ƒ€‚‚……~€ƒ…ƒ~}~ƒ…‚xw{~„†„}ywwxx{}€€‚€ƒ…†‰Š‰ˆ†„ƒ‚€|wvz‚‚‚€|vtx{z}~~€…‚~€€~}|}€~}}||}~…‹ˆ…|y}~€~}zz}„„‚ƒ„„ƒƒƒƒƒƒ‚…„}{{}„‡…„„‚}{z|~€‚€~~€„†‚€‚‡‹ˆƒ€|xz}|ƒ…‚~xvxxuuw}†ŠŠŠŒŽŽŒ‹†ƒ|{€~z{~yy|yv|‚„‚†€|~|}}z}}|ywz~‚……†ˆ‰ˆŠ‰……‡…‚|}„ƒ…‹‹ƒ}~€~{xsru~‡Š†€~zy}€ƒ„‚}yxz~}{||€‡†ƒ„ƒƒƒƒ€€€…†~|{z|‚‚€‚ƒ‚}€€‚„†‡‡…†‡ƒƒ†ˆ‰Š‹‰…}vuy„ƒ€zx|}}zx|~~~€ƒ‡„{z€ƒ‚€ƒ‡ˆŒŽ‰€{|}~~‚‚‚ƒ~|xuuy|}€ƒƒƒ„„zutz~~}{}|xux|ztqqx|~‚~~„ƒ}|€~{zxqox„†„~}{yy|~}„‡ŒŒƒ|{{~}z}€}}zz|~~zwwvutvyz{~‚†‹Œˆ‡‰‹ŽŒ‡‚„…ƒ‚}|zxxyx|}{yz}z}zpsslu}ƒ‚‚€zxy‚~}…Љ‡‡„‚……‚€€„„‚}{yz{|}zz|~€‚€ƒ……‡‡„ƒ……‡‡„‚€}{zvrsttux}‚„„~{xyyz}ƒ…ƒ€„ˆ†…„„†‡‰ˆ…„€xvy|}}{ux||……„†‡„~|~ƒƒ„ƒ‚}}€ƒ…‚~‚‚ƒƒ€~‚……„zyx|„ˆ‡ˆ†{{{zz„…€}|€‚„€€~~}||}xwyz|€~|{~}|€„‡‡…„†ˆˆƒ|}€€‚€€€}|{{~€€…††‚~€„ˆŒ‡zy}„„„~{utw}‚‚ƒ{y~}{z|‚‚‚|z~{zˆ‡…‚~~‚†€~}}~|z}‚„…„…ŠŠ‡‚|xwz~†‰ƒwpu€„„}ƒ††xy…‘Š}wqw„ƒ}zz€„‡†ƒ€{z‚}~ƒ…ƒ‚‚††{{~}~€~€€~}‚„€||‚‚€}z|„‹Œ‰vtw{‚†ŠŒ‡ut{~|}„‚zuvy{€„‚~|yz~‚†Š‡~€Œ…~€|xturnwzw~†‚‚yw~‰‹‚xy…ˆ|rpsw}‚yy}ƒ…„……ˆ„}~‚ƒ…†„„†ˆ‡†{y|zw€†x|}z}„ƒƒ~~~€ƒƒ…‡ŒŒ‰…‚„†‰‰‡ƒ~~€€‚yuvvvz}€„„}}~€ƒƒ…†‚€}xzzz~…‡}}}~~~}yxz{~‚xtwƒzz€…„‡‡†ˆƒ|{}|zyz|xuvxzzz|{zzyxxz}‡Š‡‚{z~…ŒŒ†ƒƒ…‡ˆ†……††‚‚…ˆ‡…„‚|y{~€~zz€ƒ…‡„€~}y{~zz~~|}~ƒƒ‚ƒ‚€€„‡…~zy|}†ˆƒ}xvvz~}|zuu{}|voqw||uvyzz{~‚‚€~€…‰Š‡„ƒ„…„…„€€}y|‚‚~€…‰‹‰‰Š‰†|€„„~ƒƒ‚‚€{wy~€‚……„…††„‚‚‚€€‚}{y|~~|}|xtrsy|||}}}€‚€‚…†„…|ƒ„„‡„zvv{{ywwyxx{„‡„~}~}€„‚€€‚€ƒ}„‚€|~‚|xuuyyvvx~€~~€‚‚‚‡‰„„…ˆ‡„}~}|{z{yx}€ƒ…„„††€‚€~~ƒ‚‚ƒ‚‚€~€ƒƒ‚|{}ƒ……ƒ~~€‚ƒ‚ƒ€||}~~|€|vuuy}€‡ŒŒŠ…ƒ‚„„}„„„}}€€‚†…„ƒ€€€~~{{}~}{wuy|}|zy{€„‡Š‹‰†ˆ…‚‚ƒƒ€|zzyz}{zwrru{}}€‚ƒƒˆˆƒ€~~€ƒ‚€~€†~}€~w}€}‚}y|~ƒ„€xtvwz~ƒ††‡†…ƒ‚€ƒ†‚}zwuvwvw{{xvx{~~~{|}zxyxz€€|{|{{zyz~€€€…†…ƒ‚„{{~€ƒ‚}~„†‰ŒŽ‹†ƒ‚†‡„‚€{xxsqtvx|}yzzwz‚‚|xz|}{{||~}z}‚†‡„}|{~}~ƒˆ…‚€~}|}}‡‰‰ˆ‡ˆ‹‰†‚ƒ…ˆ‡‰‡„‚€€…ˆˆ…„ƒ‚„„…†ˆŠ…|yxy|{xvw{|yzzx{}{y{~ƒƒ‚}|‚……ƒ~{xy€ƒ„„ƒ‚€ƒ‚ƒ‰†€}{yz~‚‚„ˆ‰ƒ…‰‡ƒ{{~~~yy}}{}€‚„‰‰……‡‡†ƒƒ€„‚†ˆ†ƒ‚~||{{||{zxwvy€„…}|~€…„ƒ‚~……„~||zuooqw}~~{z|z}{z{z|z{„ƒ‚‚ƒ„„‡…„…‡Š‹‡…||‚€~~‚ƒ†‰‰…{z{€†‡„€~}}~~~}ƒƒ‚‚‚ƒ…†‡„~xy}~|xwwx}}|}{xxy~‚‚}y{}|yxxy|}}ƒˆ‡ƒ€€|z{{~€‚„„{xwy€‡‰ŠŠ‡…„‡ŒŒŠ„zxyzzy||zzz~‚‚‚ƒ‹Žˆƒ‚}~‚€xvzƒƒ‚„„|usv{|}}{{{wuuswz~ƒ‡ˆ†‡‡…‚~~~‚„‚ƒ„€€ƒ€‚‚€~yv{}zxyyxxyzz|~zx{€„„‚…‡ˆ†…‰‰‰†‚„ƒƒ‚}zzyyz}~zvvwtuvwvx{}~zwy{|zwzƒ‡ˆ‡†‚}~|wwwz||{~€€ƒƒ†ˆŠŠˆˆŠ‹‰†…}{vsuyz{|}€‚ƒ€€‚„ƒƒ„‚~‚ƒ€„…‚€||{vtvyz{zz{}|z{}}€‚{{~€„ƒ‚€{y|‚‚}|}|}‡‹‹‹Œˆ…………ˆ‰ˆŒŽŠ…~‚€€}|zwy}}|€~€}{|{}ƒ‚|€…|zwvutyzz}}}~ƒ„‚€{zywy}€}}…Ї…}€ƒ‚€{z|{z€„€€€†‰ˆ…~}{|}{zzyyzzywy~‚„††…ƒ„††„„ƒƒ„‡Œ‰‚}|ƒ…}{{}~~{yy€~~€…‡‡…ƒ‚‚€zxy|ƒˆ‡†‚|wttw}„†ƒ„„ƒ†‡††‡‰‹…~{z~}|yy|‚†Š‰ˆŠŒ‰‚‚wswz}„ˆ„€‚„ƒ„~}zz||~~‚„†…€€€€ƒ„‚ƒ‚~zyywwz||{|‚‚„€{z|}{z|{|~|}ƒ…ˆ‡‚€‚ƒ€€ƒyuvyy{|{{xx{€‚ƒ…†‚€|yyzxtsuy†„~|~}|||{…‡…‡ˆ‚}{yy|€ƒ…ˆ‡ƒ~}~‚†„‚„}}wuz{{|{zy|„…ƒƒƒƒƒ‚{xzwvzz{ƒƒ‚„}ty‡ˆzlrŠ’ƒxljy„„|‚‡…‡’‘‹‰€|‚‚‚|ojptuz~}€…„}{yx|||{}}{xx}{~|sv‰ˆ‡††‡‡‰Š‰…€„ˆŽŒ„yw{‚†ƒ|{€ƒ„‚€~|{{yyx{~|xvy|€€€€{xz€…ˆ‰‡†ƒ‚‚~{wvwy}…†……yvz|xvyz{~‚…†…€€„…†Š‹‹Š‰ˆ…‚‚…ˆ†ƒ„„~|zwtsuwutux{€ƒ€{xxxuyz}ƒ‰Š…ƒ€xxvs|€€„ˆ†„„€|wsqu||~‚}|{z{zy|‚€€€~vv€„ƒ~xx€‰Š†ˆŠ‰‰ƒ{y|zx{€…Œˆ…„……„ƒ{zx|€‚†ƒ{|~zx{{uomrz„‡‹Œ†€~|{yx{…ƒ€|uqqssv{||€„„‡Š„~……„…ƒ~|~}{y{}ƒ{{~„†„‚‚‚ƒ‚€|y{‚„ˆŠ‰†…ƒ|{€ƒ‡‡~}€~}~…‰ŽŠ‡…‚‚{w{€€}xxywx{}…‡„‚ƒƒ||ywywx€ƒ€|yyvv||{xx~‡‰ƒ€}~‚~xuy~‡Šˆ„ƒ}yx‚„‡‚}{}}y|~||{~~z}„†ƒ„‡†„…‡†€~†‰ˆ‰‡‚}vtvy}}{{z|†ŠŠŒŒ„~…‰Ž‰ƒ‚ƒ‚ƒ……ˆŠˆ‚|vx|yqprtx~‚{{}}€€‚…ƒƒƒƒ„ƒƒ††‡‡…ˆŽŽ‹‡…‚€|zyvyxvvz€ˆ‹‰†}}|wrsuwyvsqosw|~€„†ˆ‰‹Œ‹‰‡‡†…ƒ‚||‚‚€€…ˆ‡ƒ„zz~€zsqtz~~~{x{||~€~€€ƒƒ€‚€ƒ‚|yxw|€ƒ~xxz{{~„†‡…ƒ‚~€‚€‚†…€ƒ€€€…†ƒ{yvtx}zvtux{}‚‚‚‚††„|€‚zv{}zvtx~€~~ƒ…ˆ‰ˆˆ†……†…„‚‚xx|€|zzy}€€~xw{{z~‚‚€~…‡‰ˆ‡‡‚ƒ†„}‚…„…„}vwzzywvvxz|~€~xx{|€†…ƒ†„€~yxzxts|€……„‚}{€‡Œ‰ˆˆƒƒ‡ˆ‚‚ƒ‚€}yvxzz~~|‚†~{ƒ‡‡„|vy‚€ƒ„„…‰Ž‡~xxyyxv{ƒ‡†‚~|||zxwz~}{xvstvwwwwuwz|yuuy{}|{||~…‹‹‹Ž„}wrrrsswwx|€„ˆ…ƒ„ƒ‡ŠŠ‰|}|~€}{z|‚}z{‚…„€~…‹‰†„‚‚‚„‡Œ‘Šƒƒƒ|tsx~…Œ‡|{}€€zx{ƒ†ˆ†€|xqqpns}‚‚„ƒ~xrnr}‚~~zutz‚…‡ˆ…€€~Гއ‚ƒ…†ˆ‹ŒŒ‡ƒ~~‡ŽŒ„|sqw|‚‹‡‚}‡Šˆ„‚~„ƒ}{{z}…‹†~torvz}‚†‰Š‰…|}€~~…ˆ‡ˆ‡€~}†‡ƒ‚ƒ€€€„‚|ywy~„ˆ‹‰ƒ{uplsvz€}xy„…‰†|yy}ƒ„~yroqx‚}wz~}}|y|€……‚†‹Œ‡€}{z~€zz~~€„‰Šˆˆ‹ŠŒŽŠ‰Š‰†|{zz~~z|}}}€‡†~xsqrrqttsutrqptxxz{{|€‡‹‰‡††ˆŒ‹†…‡‡………‡‡ƒ‚†‰‹‡„€|yvuw{~zwy„…‚{~€„‡‹ˆ€{wwx|~yx{xqpsvz}{€€~~|xux{|„ˆŠ…„…‚~}}xuuv}~€†‰‹Š‡{yyzxx|ƒ…ƒ‚~xxwwxz}€~|}zyy{{‰ˆ‡ƒ|wwxxx|ƒˆ‹‰‡ƒ~zww~€…‹Ž‹‹‡€~{{xtu}~„ƒ}{|z~ƒ€}€ˆˆ„„z€ŒŒ‡†‡Š‹‡‚‚ˆ‰„ƒ„‚}vu{zwyzqoy„‰ˆ‚xrrvz}zwy{„„‚~~ƒ„†‹„zz}„‘މˆ‡ƒ}{}„Œˆ„€†‹Šzww|€ƒ…ƒ|{‚„„†Š‰†Œ“”“‰†…€z}„‰ˆ„|xz}ƒ†€ztsy|{xtrwz}}||~„ƒ€|{{yuvvrx€€}}‚„ƒ†Šˆƒ~€…ˆ†|srw„‡…~‚‡‡‚}vtx~……zsv~„†ƒ}yxy~ƒ„ƒzx{„€}~{xzzy}€ƒˆ‰†‚‚‚‚†Š…~}}}„„‚|yz€‚~yvuwy}€€„„„€||{}„‰„|{yy{{y{|{„ˆŒ‰‡†ƒ~|‰ŒŒ€zrnv‚ˆ‡‹Šƒ|snqx‚‚{{||}~}|yxzyvwz|}€~~‚…†{rpu{ƒƒ}zx{zvrsx|€„}wx‡ˆ‚zuuy„†‰‡…ˆ‰‡‰ˆƒ~~€‡‹ŠŽŽ‰ƒ~{{‚‰ˆŠŒˆˆ‰†|x{~~}€|zxtwz{~}y{}slqst|€yor{~…ŽŽ‡ƒ~}‚‚‰‹…xswz{}ƒ†…‚€~xvz}~{z|}{y|€€‚‡‹‰ˆ‡‰…†Š‡}€‚ƒƒƒ„…„€zwupr}„„……„„……€~wu{yz€}{|wy‡ˆ~x~€‚‡ˆusz|~€zxƒ‚‚€€~wv}}|zu|…ˆ‰‡}{†‹‡‰‰|}„~„wx~~‚‰‹‹Ž‹‰Š††‡‡ƒ}‚„‰‰‚}|€{yz|}{|rmnpstuwyyvssx~€ˆ‹y|‚€|€‡ˆ‡‡ƒ„…vx{xz~|vv{yx|}|~~}‚|tx†…ƒ††„ˆ‹wvx~†Ž‡‚€„‡ˆˆŒˆ„‡ˆ†ˆ‡ƒ…‡„‚€{y|~|ww|~{{|‚„zrpstusv~}}~~|{„„‚‚‚}zvwz{yz{~‚€ƒƒ„„„ˆ‰††‰‹‹‹…ƒƒƒ†Š‰†xx€ŠŠƒ„†ˆ‹ˆxruz~‚ƒ‚{vssrpuz€{xvrqv|„tquz}zw|€‡‡ˆ‹ŒŠ‡~w~ˆ‰‡†„……ˆ……†ƒ}ut}†Œ‹„€„‡‰‹†€~€„…}|z|ƒˆ€spty{{umlqvy|{{„„€†…}z}‚‚€|}†ƒyvvrr|~z~~{}zw{„‰„zy|yw|†‰„…‚~~ww}ƒˆŒŠ}y}}†‰…~xy{vw|~‡“……„}xwxy{‡‰†ƒ~zˆ‹…‚†‹Š„{royƒ‡}~‚‚€‚‚{wtv~…Š‹†€ƒ‚€€{wvx{ywx{ysv|~~}~€ƒ…‰ˆŠŒŠ€z†ˆŠ‡€}~|vphdl}ˆ‹ˆvuzy~‡ˆ†‡ˆ‰‰‚zutvy||{xy}…‰Š…xnkr‹•—‘Œ‰‡{ˆ„€‚z~€yttpmsxxxwz„‘’އ„…„}€ƒƒ|{|‡…{srtv}†‹ŒŽŽ‰‚„‰†‚„†……wstw~†‹‡€}|‚ˆ†‚ƒ€|z|{rnsuootv{{~€~}‚‹Š‰†€‚„ƒ}x|ylmmx„…†€ˆŽ‰‚‚…†……‡ƒ|{{{{~††zy„„‡‰Š‹ƒzwsststuuv~ƒ„‡‡…€}}|y|ƒ„…Ž’Œ„zonq{ˆŽ‹ˆ‡ƒ}}€ƒ‹Š……‚‚‚…‰…‚{z|‚‚}~}{{{|{~{wwvvz€~|…ކ}utvxy|wqv|‚~~€€„„„„„„}€‚‚~zyxy|ƒ‚~yz~ˆ‰„…ƒ€‡€vxzz|€~{~‚†‰Šƒ~}ƒ†€{srw{|…†~{~}yy~{wxzz{‚…ƒ„ŒŽ‚†{v|}€ƒ‡ŽŽ‘…~€€‚„…І~ysrnlqw|~€ƒ…„ƒ…ˆ‚{yvvvz}yx}€zyy|€…ŒŒ‡ƒ††‡Š…„ŠŽ‡‚ƒ†„„‚}tx€ƒ‚wx~wwspomvƒƒ‚€Œ‰ƒ„…‚ƒ…~xwru|‡ŽŠ†{mku{~|z~zzy|ƒ‚‚‡‰ˆ‚x{…‰…€€‚„„~xvv}‚ƒƒ‚‚yttx†„€‚~w{Ž‘‚x„‹Š‹ˆ„ƒ…ƒ‰Œ‰‚~{spvz€…ƒƒ†ƒ‡‰„Š”•—Ž|„ƒ{xm`bsxqnuwsvvnjp{~xtz‡‰~€‹}~„}‚††‚ƒupx‚†‡}€„…€||ŠŒ‰ƒuxŠ‹zw‚zvxxstthZ\uŒ—žœ“‹…€ƒ™š•Œzxz}„‡‰‰€vk`ckpx„‹†}yytu{…„ƒ…†‡š¡¢›‘Œ„€‰’އƒ€~ysoprqtspnpvzyx|†‚{tr~‹’˜˜““•“‰•’‘‡{pf`_binsvrsz~†ˆ†‡Šˆ{ƒ}|…ŠŠˆŒ‰ƒ€}}}|vnhflqv}}v{‚‚…‡„‰—–”–ˆ„~‚ŽŽƒ{y{€‚‚‡‰}}wrwx|‚xtxz~…‰Š‰ƒyx~ƒ‹Ž‰‡„{y|€€zx|ytrrrvy||}ytx|‚ƒys}‹Œ‰„|{‚†„{y{~wlr~zvvx|‚ƒ‚{y|€‚†‡}zƒ‚„„~zvrsvyw}ƒ€zqqx~…†~‚ŠŠŠ†~}ˆ‹Œ…{ŠŒŠ†‚ƒ‡‰‰‰‰‰ƒ‚ƒ~{vpoy~‚ƒ€‚„ƒxvux|{}…†‡ˆ€yvuqqx{|{xx{}yyƒ…{tpkkrz~}‚…Œ‰|z|~yru~€}…„ƒ†ƒ€„‰‰ƒ‚€€~|zz€„ŽŽ‰†}~€{qmquz„’rsux€†„€|{„yt}ŠŒƒ…‹Ž‘Œ‡‚‰‹‹ŒŒ‹‰…}yy|„ŠŽ‰†‚}wy€~…‰‚~vux„yw}ƒ‡ˆz€‰†€„€vrsnmwwspej}}ŠŒ‹…€zuz}}{‚‡‰‹ˆƒƒ‡ƒ€‚ƒ…†…€trz{{xz}xy~{{„‰‡…„„„|yy€}~{zz{yz€}~ƒ„|‰~}†y{~~‚ƒƒƒ€ƒˆ‹‰††‡‹Ž†vpnq{†ˆ„Š„€€„ˆ‹—˜‘‰€{{ˆ‹†~{ww{…†ˆ„ƒ‚~|{yrnx~€}vpnrqtpmturqxvu}{txyou„„‡|~|}€ƒ|sxƒ|w}xv}‡ˆ}ƒ„‰ŽŠ†„ˆ‰†ˆ…‚Š”–Œ‚ˆŠ††ˆŒŠ…{x|yz~‚}yzw{ˆ‡zz}{„ЋЄ{y€†ŒŽŠ‡„„…€x{ƒ}u{}ts|‚{uoqsuvwxww~†‡„‚„‚‚‚€}{z{~‚‡„€{~ˆ‹‰yxzx|‚„ƒ†ˆ†„‚}{yww{~ƒ…‚~€}vr{…‰‡ƒ~~ƒŠ„xwz{z€€‚ƒ~ywpsx{„‹‰€…‹…€yv†€ƒƒyuvw{}}…‰…wpwŒ‘Œ‹ŠŽŽ…„Љzz|…ƒ}~|yƒƒ|}}yx}|z}ƒ…‡€sonlhglv~ƒ†„€„|uvŠ‹‡{z}„„…‰‰‰„}yx||z{„|xv†~z€€{x}…†‡ˆ‡‚€„{xv}‚|yy~„ƒ€€|‚†‡‹Œˆ|{}‚ŒŽ†‚~}‚yz}‚†}{„†„zxx{‡‹…ƒ~~ƒ…ƒƒyp|‡„|y{{€‰‹Š‡ƒ{y}„ˆ…{togl~Œ‡}uv‚Ž…„ƒ‚}sqvŒ‘‚tmkq|†‘…tqru|}~„…~|}ŠŽŽ‡y{„„……~|€ƒŠ‹ƒ…zz‰‡Œ‰„}|…Œ‹‡ƒztt{Ž˜’‡ƒƒƒ€ztopmowz{~~}}ƒ††‡†~z|{z‚Œ‡…}wvy|{‰‹Š‚€€€…ˆ†…„…‰…~~~ƒ„€†Š‡ƒ~ƒ„„zplq}ˆŒ‚utrx}…Š…~vjktuzwtvvz}{}zwz„ƒ‚€z}}‚…€y{‚‰ˆƒ€ƒ‚‡„~~€|}€~‚‹ŒŠ‰ˆƒ|xqsx|„ƒ~x{}}€„‡ˆ…‚…‰ˆ†…‰ŒŠ†‡‚‚‚{tnrz|{}€„€xmjlryyz{€‡ƒ~~~„…~zƒ††€}|yuqtsotzwx{x|€{}zuywty}~}z|}€|zvt{{{|zxtqsv|ƒ†‡Š{rrv„‹†„~{‚„…›”ŠŠŽ‹‰€xutvzzz{|}‚‚‹’‘‰ƒƒ‡““‹‹†€€{z€ƒ…‚‰ˆ„‚zvsvxy}|ˆ‹ƒ~wqw‡‰‰‡…ˆ‹…€~yuw|xsz|‡†…„†‰‰ŒŽ‡{yxwxwz€…†}w{}~„}plmox}‚€zy…Šˆƒ„†Š‹ƒ{vy}|ˆ…ƒ…€|‚‚xuxz†ˆ~||zwuvz€}€ŠŒƒx‰‹‰……‡†…~tnxƒ‰‹‰†€{y|ƒŠŒˆ€|{~‚€|}€€}}€‚…†Ž”އ}wy„’”Šxuwv{wwwsuy|utpou~†vsptwxyxwu{ƒ€ƒ‰Ž‘–“Œƒ†‘“‰„€{€Š‰~wmhlv}„„ypptwxss~wtttx|~}‰†…‹‹‡ƒ„„}yvpqx|ƒˆzxwuy†“ƒyw|€‚€~€~}€{tx{xx€xuyxvw~’‰‚€~{{zx}†‹‚~~|z~ƒ}uov…ƒ}xswx|…†ƒzy|‚‡Žxkrz†‹‡‰‹Šƒwry„‰„{rqy‚‰Œ‡€„„ˆŒ„ˆ’“ŽŠ‚ƒrpw~€ƒ{tw||vrw}€~|}}|xphfjs|}zz|€…‰‰†‡†„…‹ˆ€€ƒ†‰„zz‡‹ŽŒˆ†„€~€€ƒ†„†ŒŒ‡‡yv{‚‰‹‡„‚……{mhopls{vpiadhowz}}vrv„ŠŒ†|…“”‘„wru{…‡ƒ‡…ztsw‡Šˆ‚}…Œ‘Œ„„Š‹†yy~‡Ž‰€~zvu{…‰‚xw{‚†„}uomtƒŠ‡uqyƒ„ƒysms‰Š…xqtw}‚†ˆˆ‡„‡‰…~~…ˆ‚yprx~xonkms}ƒƒ‹„yy{w€ˆƒƒƒ‚€xr}ƒyuts}‡ˆ†ƒ‚‰’‘†‰†€ƒˆ‚|~|{z{}‚„ƒ}‚‚†‡ˆ‹Ž…{tv|~}xuttojqvw{xnlrw€˜˜“‰|uv†ƒ|z€€zru…‘‡‚…ƒzz~ˆŠ†Œƒ|~„Œ““‰}tuyzuokjqz‡‡}ps{xy~€‚†‚|vuurv~ƒ‚€†‡…ˆˆ†…|zz‹Œ…€{uqu|~{rnnu{|†Šˆ……„‡‹†ˆ‡–wx|‚}ut{†‰‡~rr|~y{{yywpnu~‡Ž‡xpz‚}xvy‡†{rprx‡˜¢Ÿ’ƒ|yz„‹Š„}uloru}z~‚‚‚„†€ƒ‡†ƒ‚ƒƒ„…‚xuut}…‘…‰””‰ƒ€{ww{ƒ†„xskjs{}||}|ywz{w~‡†„„†‹zzz|x}~}ƒynos‹Šxls}„ƒ|xvy‡ˆƒ|~І‚…‰ŒŠ‰‡€~ƒˆ‘Œ…ƒ…˜—‹€…ˆ„|€‚ww~„Љ}uwwpjlu~……€}z}„‰‰‡„{pms|„ˆŠ‹…‚„€†ŒŒ…€}}{|€„Ž“~t{‚}vxyrq}ŠŠ|kjv€wunpxxuw~ƒ„ƒ{tsrx‚Ž–—„ve`jtz‡‰‰‚{xtx„‡‚{tolpx„ˆˆ„‚„ˆ†ƒvy…‰“Ž–xs|‡Šˆ‡|x„‘“““‹|stwzzz~†Œ‹ƒ€}rsuliu„…ƒ‹ˆ{€uz€}‡‡ƒ„|ru€‚~}„‡…„€€†‰…‚yqqwyv{wh`bq“‡}sjoy|~zxy€ŒŒ‰ˆ~~†ˆ–†€}}„’—“‰tglxƒŽ–“‹…ynpx‚‡…{vwwst{€ƒ€€}np}†”Š{{xuz}ƒŒ‰…}€„‚ƒ„„„„|x{|ƒ„‰Ž‡‡‡ƒ~~†‰ŒŠ„‚„{~}ursqy€~†…|w}€{tow††{ŠŠ‰Šz…ˆ~uwx~…|xwz~‡Š€povxƒ€‚€~|wv}„…‰ŒŒ‹ŒŠƒ‹Œ‘‡}†‡ƒƒ}rt€†Ž‡~{zx{‚†„‡ˆ}xupmpnjosvyrjpz€……yryŠ’—“Žˆ…€|z{yz„†|sq{ƒ†„yjgpy„ˆ€}ywx|…‹ˆ‡‚„……‡€z}€…†~tpuz‚†…|y€ƒ‡‘–•މ…zwwvrtxzˆŽŒ…‚†‹Œ‹ˆ…}y}ƒwvvuˆŒŒŠˆ{ti`bhmsxz{}€ƒ‚„‡–•ƒztokkkfemsu‡‰‚|{~…†……‡‹ŒŒ‚„…~}vz€‚ƒ„teadgknw‡ˆ‡Œ‘’Љ‡‹‘’—šœ–†€|vz‡‰‡‰‰upolq}|yndfhmx~zurv„…‡…„†‰‹…‚……ƒ€~†Ž‹Žˆ†‰ƒ…Žˆ‚‡‹Œ‚trsz†‡~zz~xt{€„І~ƒ‡Š…„‚‚uqprvxut|€€‚„†‡†ŠŽ‹Š…}}u{…ŠŒŠŒ‹ƒ†‰ƒ|wwsqtx€~uqpouƒ‘™™‘Œ‰‚ˆ‡‰Šy{wy€}}ˆsrw|xtuz€}yqijs‚ƒ~~vonu}ŠŒ†~~‚~ƒŒ‹‹ˆ„‰„ƒ†ŠŒˆ}{y{{{wrvsnmptsmhn{‰‘Œ„‡€sv|}†Ž‡„„†‘‡‚‰Ž‰…ƒ„†€z|~„”’••‘Žˆƒ‚‚}€ƒ†‰ƒ~wrru}‡†{tty}zxyvtrpy…ƒ~ƒ‘Œ„~x|†Š‹Š‡‰‹‚}~slnu|zqlwƒ‹“—~g\^hz‰‰rdipv„…„ysvz„‹Ž{hghp€†ˆ’”ކВ‘Œ‡ˆ„~|{}~{yxwskls|‚ƒ€€ƒ€{uv||{…‹ˆ†ˆˆ‡Š‘‰…†‹…xxzu}“’‰~{‚}ut}ŠŒˆ‹‡}z{vs~‡rn{rlsrqsvtq|ˆ‰…xnx‚ˆŽŠ‚}wmjo{~uqy~xpw€}‚ˆˆˆ~yyqv}}{xvyrpvy‚ŠŽˆ~„ƒ}€‘Šƒ„‡ˆˆ†‚~|ˆ”ƒy{‰“€u€…ƒ†ƒ……‚{}|}†‡}sost|„…‡~x‚zyupu—¢¥œ™‘wr|…ƒ„ƒ‚‡~omjlu‚‚‚{qlpwx~~zwwyojeepŠŠƒyxy}‚~wkgjs€‹Ž‰}xvmgnpqw†”–—~{††…“’——…}w|ˆŒ‡‡‹Œ‡ƒ€|‹Šyzwsu‹‡„“’‰{’Œž¨Žr‚ƒ}”•„}~xz…~‡ˆ~qtx}…wzŒ“‹€‚…‚yw€†Š‰|qkhlqqpkfg``kwzzvldagr‡š™ˆshjt€xs|}{}~†ŽŠ|mhoy‡‰zyzyyzyuuvuqox‚ˆ‘˜’…‚w‹ƒ|‹—–‘…wz„‰‰Šˆ‰…x|Ž‘‡‚~xƒ’’‘“‰|y€Œ–œ™‘…ƒ…‚zvxuqqv~„Љ‚}ytporpt€’˜Ž‹…{|€„ˆpkw‰‡zxtnsuqsvy€vqlffju~~zsx{u{‡‰ŠŽ…}‚…ystt{…Œ‘Œƒzplommnt}xrxˆŽˆzr|ŠŒŒ‰ƒ~ƒˆŒŽŒŠ‰Žˆ{x~}‚|{~ƒ†{t{‰”–‰…~{}ˆ‡€€~}{yy}…‹ŒwpsŠˆ|{†Œˆƒ{y|{umovonx~}y|‡“„‚……~z{~ˆ‹ˆŠ†„„‚†‡z{|zyy~„‡…€ytw}ƒŠŽ„zrkowzŠŒŠƒ|}~„ˆ„…„~ztmlktyy}{}„}zzxy|‰–˜“~rqp{“–”†vw…ˆ€}}~xsplw‚ŽƒujaYbry‚ˆ{{~ˆƒ{€ƒ}‚‰‘”‡…~‚‰Ž†€~wtvuqqw…ŽŒ}tyˆŽ‰†„‚|~ƒ€unou€‚€o_bnvx}€{vz‚……ˆ†€x|ˆ‘•’”—‘„zz…‡Š‹‰€xuy†Š„zuyyz|~{}|ˆ’“”’‚xxvwŒ–š—•ŽŠˆ„xsz„‰ŒŒ‰€uv{{z}‚siglrsx€~yg\dry~„}~|‚~x|€}~|ussx{†…‰Ž‡xgerˆ‡‹‹„‚…„†Š•Ÿ˜‹„}uns{‚ˆ…~wzƒˆ…|sjp}…І~|€‚|rswnmyˆ†}tpx…‹Š‰…}zxvwzxtwx}„ƒ€ˆ‘Ž‹ˆ„zrlmsuwumipsnmow|€||€…Ž„|yvv{„‡Œ—˜Ž‚z{}‚‚†ˆuoou}{{†‹ŒŽŒŒ‹‹“‡}yŒ‘•’‰|xqjr‘Ž€vw~……€~~{}„‚{yy{}~~„ˆŽŽ‹†|pq†ƒ‰„{wswvigfhx€„…~{|‡Žˆƒ~z{€ƒ~}|xstyzy|~}ƒ‡‡{‚†Œ‘ކ‚yw‚‡‚‚‘ššš‰‰•”Žsoorsuyvrrleir{~siiegqwxy…ŽŽ“|}~ƒ~usuxvy~€~y|~~‡‰|y‹”‘ˆ€†‘ˆˆƒ‚Œ–~{xslht|~{{|ywij‚މ|xy…‘‘Š„~~€Š“–‡„ƒ‚‹ŽˆˆŒŠ‹Ž‹ungfmu||zŽ˜š–Š€w~‹Š€y}z~xrv}†‡„xmlt‚ˆ~rloy„•™ˆwzzyrnpt€‹‰zw‚‹‹‚„„{nilozyqvˆŽ‡€z}ƒ„Š„ytq|‹„x€…ƒ‚„~{„Œ‡}x{z}~‚€zyz~|vl_evƒ„~wpr|}yuy}€…‰Ž”–—“ŽŒ‡|‚ˆˆ‡‹†{y|xsstxsnuxtsx|}zwz|~}|…Ž‹„yz~„„{xvsux‚’–‘‰…€‚ˆ‹‡ƒ…„ƒˆŽ‰‡~‰‹‡€zwzxxz}~‚’…}~{qrŠ”‹ŒŒ†ƒ‡…}~„‡…„…ƒ„Š‘‡|uqmifkopx€}}zxzwvz}‚€†Š‘‘Œ„}uw€Š›”ƒtjghtˆ‰phimt|~y{~…‰‹‘œ•ˆ|v|„ƒ†ŽŽ…}wr{Ї€}pjpt‹•—†wkpz{yzz†’‘Š}g\htt~‚y‰pk`Xdz‹––Œ}{ssƒ‰~y{‚Š“•–Œzqv~ŸŸ—‚jm‚”–ˆvuwx€‹••˜œ›—…uoqu‡†ˆ„ync[blu|wrjckxz€‡†€uu‰‹ˆƒ~‚…‡Œ‰‚xor€’’†yxxt|„ˆŽ‡}|…’‡you›’„|€€wtsyƒy{€‚‚‚‰€qlmrv|}„‚yy‘¦¥“mPFLi—«{›š™—‹Š‹ƒƒz~‚~{yzypuulm‚†yuv€‰‚ww}‚zjbdejsƒ’‹~zy…Ž’„nly‚‡ƒwrnlw}t”’sow}|uvƒ–£Ÿ‰v‚œœ‡tffouyriknnu~‹”€{yˆœ§šzm|”š™›ƒmrx’—“‡sfepy€Œ„zx…™£¥š‚fY`pzwjlih{™š‚tl\V^m‚˜¦¬£{{qn~ŽŒˆ†uyˆˆ~xŠ–“…{y†œ‡{ryy€Œ~jinv‚ŒŽ“—¡®§‰rns…Œ’wi„‰ƒ}wk^kzŽ«¢‰yhfxƒˆ™Ÿ„pv‚|iaiqnqmjˆ˜’ž›y€}ulhjx“§­‘yrhjŒŸŒ‚{gdjkq…{vkciu|‹—”ŽŠs{‹ššŽ‚€€ztuofjw€wj]Wguyxxvt{†‘˜€€ƒ„|y|„…yst~Ž’‡ƒ€‰’„€€|ssw€‹“‹upn_^kow†ƒuv‚}z†Ž‰ze`t‰‹Ž•‘Œ‰~z‚ƒ‡„„ys|Š’œ–†ˆ…zqt„Ї€mdx‚†|ywsv{ƒyv‚‡‹’‹ƒwgbejo~ˆ„ˆŽ‹ŒŠ}slny…“‡…Ž–Žxqtx‰”—€xoejx‰”‚zx€|uƒ“•Šwnu„€tns{z}„‘› wotƒ•’nhzŸ´«—naU[ow|‹vmjemz„~xŠ’‰xyzy|„xp†›œ™›”Š{shjc`illtƒ‰“އ€xmm‹”‰lbzŽŒ}f`y–š‹ˆš’ƒzv~…“Œ€}zx|„ƒ„Œ‡‚~v}ƒ~……|||€€~ƒ†„~~‹†wignrrpjit€Žšš‚}tntz{ytqw€yx~ˆ’•‹ƒ‡‡ŠŠz|…‰‚vqry…€qhfn|†Œ~uuw€Š‹„}w}ˆ‰‚tkmsu‰€{zqmx~{‚„„‚‹’ŒŠˆ…Ž‘—ƒpm‰œ¯°~dbdefhqps|ƒŠ‰‚vv„Šˆƒ„ƒ„„€xuvwthgpvw„‹Œ‹†zrxwwxw{ƒ‡ˆ}}€„ƒyx”މx…|rlnw{y||v‚’’•—„€{yuy~Žƒuhky…Š€vrz„†‚~„ŠŠ‡xuw}‚‡‹†xv†‡Š‰€xtvx|€ƒ„‚yt‚’›š‹}|†‚‚†‹Ž’Ž…‚{vnnuŒ‘…sfn{{y{{xzvno’ŠŒ’™”†{x}xqecv„Œ†‚‡‹Šysu{~Š…yvuy‚‚vjny…‡zty‹‚sqt|‚}k_gt|}‚„€|zwx…ކvr{‹–‹‹…‚ur~Œ¡§–ˆ~su††ƒ|pkt‚ˆƒ†Š…€|oir‡‘Žƒzz~zwpv‚|ƒ‰“‰yz}†…€wwxswttvy{†Š‹‘–—ŒŠ„‚…ˆƒxx†{pw|yvtuywmjmw†‹‡€zpedq{||}‚~z‰‘Œ‡zmnmjpw}unqsv}›˜”‘ƒvnedjt†‘‚mfp~“‰€}…‰’ž•xlstxƒ†ƒ„‰ˆŠ‰{~‹Š{tyƒ‡thq†„ƒ‰†skoyšœweex…„}xsyŠž§mnn|ˆ…‚ˆŒŠ~qelw{xp|…ƒ{snx…~u|€†‹”˜Š€x}‚‹”†phmwˆ“†tmiix~ƒ…ynhcjifmsxyz}……‚‚{x}Š”’‹……‰“–ƒ{z|}‡”–…{rmlrz~~}}}†Š‡ƒ{pt~z}‚ˆŒƒsfl‹Œ…~€€…‡€|‚ŠŒ‰†t{†‹ˆ€|ru{z{tmpu„’˜¡—‚wwwt‰‡{tv|‚‹Ž†xlio€”˜Œ|vptzŒ”Œy}ƒˆŠŽ„yl`Y[jz‰“•’‡ujhenˆ˜šž™‹vfi{Š˜Ÿ—ƒk\^eow||pjuŒ— ž•–Š…‡— ¥™}e[l‰meeghpyt|•¤¤ŸŠ‚’˜‹zonoy„zqx„Š~lnpnl}‹Ž˜¥¢œ™ŒuuvupdcgrzˆŒ‡‚ƒ}~†ˆˆ~‚zxu{~…„…†‡zoqpv‰š ¡¥£”‡‡‹’Ž‘•‹yld_aquknz…‘‡yz~„‡“•“†woqrslcd^^`[[^cjvzwv—¡œ’‡…–”‡…„~|z|~}|}wommnsz{tt{~}‚vhbgmosx„‡‚yoho‘›™‡…‚€ƒ{w|pinwŒ‰€…•ž“ˆwu†~sputv|xyst~‡ŒŽŽ€pr‡„vi^T[ky~z~„’ŠŒ—˜š•–†‘“‘–‘ƒ‚„{ooyws~…‚‡ˆ~wlp{{tj_X_dhux~ƒ‡Š†•‘Œ‘’’…|Œ›¦¢~ˆ‹ˆŠ€qw|{yw…ˆƒ‡‚qr…{pip{€‚€Œ–‘„wutz‰†„Š}‡‰ƒ{vsokm{…†ˆŠŠ‘‹™™Ž‰…€„†ƒ~zyxwnejqvyzx{„‘””—•Šƒ‚ƒ‚€ƒ…ƒ€}zxqqvv|ˆŒ‡‚||}{|ƒˆˆ…rs~ƒ…‚~‚‡„yqv…Œ‚w~†Œ“’„xpcao}}{z{}yˆŽ—š’‚rmsvw{†Šƒ|€………ˆ†~{…Ž’•“…yx|††ƒulpw†‰ˆ„‚€€…†…„„‰‰†€yvwtppsxvhaep€‹Šy‹“rs}……„}wywurry||vgdr~€zy‚‚shy„…”„lfghq…–•އ|{v†–Šƒ†}z‡”š”‹wvu}œ•‹‡€zƒ€ƒ„|„“žŸ—•ƒyvw|‚yssw„‘ŒŠ‚wofi}ˆ–“ˆ‚}tqrsysz‰†ƒ€|yqhcdl`Yjz{vvnddfbUXhv„„‚€}y|‡‘£ª •‡ƒ€|zw}€{ˆ‡€„’‹……„‰‹Œ„{t–˜– ˜†}…‡ŠŽ’•’Šˆ‡‡ŒŒŠ‡€}y|‚‚Ž—’’†{t|‰ŒŠ…ƒˆ†xtqhknljje_^^[_dfv‰”™š’‰‡†ˆ‡}rnmigpvwzy{vlr€ˆŒ†…‚rkku}xnmnmv‚‹‚{|z„‡|vy†ˆŠ——ŽŽŽ‹ˆ~{}€‹Š|w|z~†‡†„ƒ…‰‰Šƒˆšš—˜‡…ƒvnry‚‘”‘އ||ƒzusomy‡…ƒ‰‡‚†‰„|x}…‡{kb]ew€Š’‰…ƒ~€yogkq{†‰‚xm^Uerqssmfpvu{€~|†‘¢£ƒ}zv{wuxyxx‚ˆƒ~yxwuss||p_W\jvyz~xu‘›Ÿ¤©®¨œŒ~ˆ‹Š{{‚ƒƒ~y{~zxrpxyx€ˆ‹ˆ~~‰ŽŽŒ†…Œ’Žˆ„‹Œ‚‚‚„„|zxsv}vvw~ˆ‰…‚€~„ˆ‹’™¡ ‘‰„zuˆŽ“’››‰ƒ~usyyvx„Œˆ{vw|rZRX`iqsp{ƒ}|„Š‚wspx†Š‰‘ˆ„Œ‘““ˆzrqx~€ƒ„€|vuxz„Ž…~|yy~‡…~€ŠŒyzxwmownpz}xqout~€|ˆ‘’ކ†‰„~‚}|†‰‹“–’€vsrussuz}ƒ{ebt~€{z€€†…ok{‚…Š…x|€w“™”“š“„yw|xojd_eogcmqptxut{|x„‰{x}tltvpu}||}zxxƒ‹‚€„~{|‡—˜˜œ‰}€~yyjmuqpz|}ƒ†‚‡Œ‘–™™Ž„ˆ…€„‰†‚„~tpw||ƒˆ~xˆ”Œƒ†’š–‰ƒ€ŒžŸ˜—•–’‘“‚xw€ˆ†…„zttuojoqlpt{„†‡…ufelt{†€~…y‚†~y~€‘ˆxz€†Š„‚yshbhrxx}}xuuupmklqnmx~z{yngozƒˆˆ†„‹‰…Œ”‘–™˜”’“‘…xnnuw‰€qmlu†ŽŠ…{Š’“Љ‘’Ž”–‰‹€|ƒ‡‹‡…ŠŽŠ…‡€vqw‚ytpeajry{wv{€‡Š…zrkfbi{……‰Ž“‰‚||~wx€ƒ|qqh`hxxopmp‚wz{zvnophisty€…ŠŠ‰‡ˆ„{|„…‡Œ‹ŽŽ‘”ŽŒ“މ‚…–ž¡•}rty|„‚~~~€‡˜ž›˜‹{vzzxyqrv{ŠŽŒ…zz‹“Ž„~qgefr€€ƒ…ŠŽŒslccit€…zcWZes~€zuz~†˜”ˆ‚ƒ€z€†|twsr{u†|„‡…{rs{„€ss„~ww}†“‡{xwx|€€‚ŽŽ‚wv||w‡‘ŽŽ‡‡‘“’Œyzz‰Š‘””‡€y{‰—”…„€ƒ†w|ˆ‰|uouups~€}|xЇ~€„ˆ‡€vlnvx|‚€{}‡’”‰ƒƒˆ•”Š…‹vw|ˆ™¢‘†}~„‰„}piidiqomhgqxyxqpy…ŒŒ}y…ŒŽ€oh`cu‚†|egrqy‡‚~€}wvxz}vprx}€y}€xuw†…‰‘™˜…‚Œ˜ž˜…vonjam~~‚އt~˜œŠ‚Œ‚ji}†{z‡‹„Š’’•šž—„|€zw~€€~wpu|{{ƒ…}{yogclu€Œ‹Žˆ~†…€ƒ€ujrxz€zz†‹ˆ|leo‹‹ƒ…‚xnfm|€…„„„ŠŠƒ|zxzƒ‰Œ’“’–“‡|j`ejr|…}pkgacn{~{|zwwzxssvvrmy…ˆ†xropvvx}ƒˆŠ‹‹ˆŠ‹‰ŽŒ†|ljmntz{zysnw‰“——‡~‚„†w~}vrpq}‡„}qklz‰…€ˆ•™š™—›œž¤žŽŒ•›œžŸ™Ž˜›•Ž‘“—¢¬¥™‰‰‰‡~sqx}xomlgo€†‚ƒ…‚}tpqnmrsmnz‚xru‚~uihryvu}}|ysmlojjos{}xriiy|€Œ‰}|}{w€’••’†Ž’‰ŠŠ„‡ŽŽ„z„‚††}xy~ƒ…~xy€„‚€ƒ‚Їxxxtstnq~vqvxtuxwwtpnnr|‚~†ˆ†ˆ‡ˆ‰‹ŒŒŠˆ…€yvtpopnt‹‘Œ„~‚‹’“‡ƒ„€yvroprsxƒŽ—™Ÿ¤˜‹‡‚ƒ‰‚tkgr€‡„vjckzƒ†‚{y}‚‡†~utvru{~‚~uknnoxurssrmrxvw|~zstuЇ‰‹qr{‚†‚wv|‰Šƒtq}ŠŽ‘—ˆytnrŠŽ„z€„…‰ŠŒŠyz~~€Œ‡umnqw‚‰…}||„‰ˆ‹‹…vu€Œ•”„~{qnq{‡Ž‹†Œ““˜—Œˆ••…‡‰ƒ{vnegikx}tkfbZ`r€Š~jkjfjruu|€zxxtrz„ˆ•¥§˜…{~…‘šŸœš˜„xkiqz~…Œ†‚„„wkgecgpllu{~~zx€rmqoqvrov|yu~Ž”’•“Š{pt€‚Œ—‘“žŸ˜ˆzsx~€‰‹“ž—…yx{„Š’›¡¥}tw}€…‘–”•˜› “ŒŠŠŽ‡‚€|sqoeeek}†€zxrushksqv…ˆ‰††ˆ}{uv}}|sjjmz…ˆ€zvrstx||‚‘•Œ’–’‡yv}}z€„wvwuw…{tolnw|~€zob^_ep{wosw{|wrnlsts€Ž˜’‡ƒ}{trtyƒ„ˆ†~|„†‹’“Œ‰–˜’Š‚ƒ†‹‹†ysru{€‚€‚‹Š‚{snu}|~€|wtu}}{{tvyspqsx†ˆƒƒƒ„†‰‹†‚‚‚yrt|€…‚wvvnjgkt„Œƒ{y~vqqqvwrmgjz€xlkovzz…’ŒŒŽ‘••vv|‚zng`]dk`QS_bfr~‰ŽŒŒ……v}‰„|„€o|}v{™”–Ž”•ŠŽ—žž‘vsw{…‘”•——Œˆ‡‚{|‚€€‡†}wtomuxrnt‘–˜•…‚ƒ‹—˜‰‰‘—œ–‹~vv‚ކ†~|}z{„‰’’’†wx{}ƒ„……€|zyz{†’’ƒsjfk‚ŽŒ’…‡„‚ˆ‡‰{hpzzvja^[f}Ї€}vnmo}ŒŽ‰…€}€slu‚˜’Š„ƒ„„€xpoqx„†sjmrqonquy…‰……‚‡Ž‹‰ƒxtxyuuqt†‘Š‘Ž†ŠŽ‹~‚Š”™Žyy{}|xuqsutsmkqttrqtonqoqw~ulmenplh`chqrqnko{ˆ‡––‘Ž•¤’ƒ{wvxrwwoprsonnnt~‘‹ˆ}~}xvpkjv†”“”’ƒxp~—–’އŒƒ‡ƒnqxxune_fo}‘£¥™—”ƒy}z}zrz„„|txy|}zy…‘›Ÿ˜‰‚|x€}x{yy„„‚„‡†‚‰ŒŽ‰tmqwxx}€€wsz€†yvxyswzuy€’™Š‡Ž‹‰|usls{~……vsqkrw|xiiit‰ˆŠŠƒ†‘š™›‘‰ŽŽ‡}|~ˆŠŠƒƒƒ~Œ™¥¡„‡„†ƒ‰„‚|ssopyupmn|‰”Ÿ“~}‚}smjagvxtxyvxvz{{}ouˆ…‚~rgt‡‹~x€ˆˆxoz……†ƒvljgfmv“š•Œ€tmz…†„xpx€€{~€{{‚€~„ˆ‡‚ƒ„}‚‡ŒŽ‡zuwv|~~{x~†ƒpmt{Œ„ƒ„†„vjyŠ”œ‘~q™£«ª—‡ˆŽ‹‡”‰„|ncXUi|vpqvy{…ˆ„|{†’ޑЋ‘”–˜”Œ†~~xvx{~ƒwxphilr|Š“Œƒ}Š”˜–…yz}|yspln†ytvxzumer{‰›™vego…’’‡|yu‰‡‡‚vnvvq{wh\SSbkt€{vxzx|„‡…wz}‚ŒŽ‹‡€ztpouƒ†‡†{nfag}Š‹…€…Šˆ„žŸŸ šŽ‚}ƒ‘–˜‡‚zogp|ƒ‚xu‚•–“x}ƒ‘”‘ŒŠ’š“„~ztu€‰‡rgnwzxvv|~~wn`Zcaa_\bjrwy{wmrzy~‡‡~{€}~ƒ…‰‹ˆzqsvstpnx{}~vlinmncX_ly{x}‡•“Š~}~‚ŠŸªªŸŒzoiijr€„{w|€yoa^`ejddm~‘“ˆ‹Œ‹™—ˆ||ƒ…{w~{y|wiiry~‚‹Ž“ž©°²¨ ›Œ‡ˆ„†–——•”’Š~mu‡”Œˆ†€|yvtty„‰‹ŽŽ‡znis€ˆ†|vvwzyneeehkpz€ƒƒ‚|vtt|‡Ž”™››”†ƒƒ„Љ‡ƒzqrw{†Œ‹ˆ…zwy}|xyu}€ƒzz|Š™Ÿ–‹…‘±¶ž”“–‚‚ulo~{tvusxƒˆŠƒ{vrwuqhdowu|…‚}vssw‡†ƒ}~{…‹‘ŽŠ• –‰ŠŒƒtpkjnpsvpenrqsttu}{vpyˆ…}toolr€…†ƒ†|s|‡ˆƒ†‘…wsshhnjq~ysqlknpsw}{{ƒˆ~~wssy}‚Љ„…ƒ{rrz€Š˜¡¥Ÿ–Š‚€}wsqrx€zsjdcdnx}‡’Œ‰†‡Œ‰ƒ}ƒ‡‰ˆ€vprw|…‹’”‹vphhja_honrwqr}€{z~‚‚‚†Š‰‡|pfj}‡ˆ„{vx€Š”šš–ŽŒŠ’¢Ÿ“ˆŒ“Œ„€…†ˆ„‚‚sflstsqv†ƒ€~vv‹’—’‡†Š•𔋉””’ŒŠ‹Š€ƒŒ……zxwu~zuwvpstort|€z…‚}ytpnv‚‚ƒˆ†€~‚ˆ‡ˆˆ‚ƒ‹‘‡xt{~{xtnputr}‰‘”Œ{rj_]`hu{‡‚~…ŒŠ‰„ƒ…ŠŽ‡€†ŠŒ†{‚}yke`_gkryxphgksxtonmko€“•ƒzz€•—‘“‹‡ˆ…}wwwy{|{wy{}‡ˆ}rou€‚†{€{{~wv}…Œ— š”‰ˆ†~€€}ˆŽŒŠ‡‚‰‹‰‘Œƒ{omrqq{|yxqfh|‰’•‘ˆ|zv|ˆˆrqy‘•Œ†~‚ŒŒ‰Šˆ}qny‚‰Š‡ƒzrqpow{utpjjlnqw}„“Š‚€~ˆ‘Ž‹†ƒ‚‚‚||zzz}}zuoidchqutvvvu{††ƒƒ†Š‘”ŒŠ‹Œ‰}utpmtˆ†~yy‚ŠŽˆvonqy‡ŒˆŠ‹ŒŒŒ†yrvy|ƒ…}nfjz‡‹ƒxtsprzˆ˜šŠ|„‰Štrvuttpicbjv|€~wtywy‡‹Žž¡ž¢Š‘“‰~z‡†{~}opoqz†wp{jkpƒ‹‚‚rrxnkttjp„‹‰ˆu€ˆƒ{vz{†‡€„‰ˆŠ€y‚‚}€ŽŽ‡ƒ}|‚ƒ€xnwƒˆ“Œ‡„}tvƒ…‚‡ŠŒ‡‰ˆ}xyy‚Š~orxz„Œ‹„{}–‰‰’”˜“„|ˆˆ„ƒ‡‰wmjqw€‹ˆ{ˆŠˆ–˜Ÿ¨ª¥Ÿž”‘‹€ƒ…ƒxkktyrqsorw~|wurrprzxme`\]]_hpx€—’ŒŠŒŒ†yvrr{‡ˆ„„€zrptuyxy|xwqgkuy€€ztrwyy|ˆ™§¢Žxqru…‰€v{‚‰ŽŽ‹}gcn|ˆŒ‰…Œ˜™““›–‹‡ˆŠˆƒ{{ƒ„…‡ˆzqc\_dktxvnmsw~ˆŒˆ|}‚—˜Œ|ruŠˆ{}}|†„rjhknqy~{utqqwws|‰Š†znnu}…Š‹‹”›“‹ŒŠ‰ŒŽŽŒ‡ƒƒ|pqrlnw{xz|€€‚††„Š‘“‰Ž‘“~‡ŒŽˆ††~ƒˆ†„‡‚||…Šˆ€}xw{xvvooy‚…‡ƒƒ~{zsryz€‹‚…‚}‚uojd\_mu~‚|qjiegnuxz€‚{|„ƒ€~~‚‡‹‹‚xqxxsv{}zz{yvuqfhqzyso{Š‚y{|‡‰„„†ˆˆˆˆŽ€x~ƒ……††‚‡“‰‹‹‘ŽŒ‡ˆŽ’‰‰ˆzrrmty}x|}tmooopruxzwtqoqprwzwqs|}wxtu}…†‰‹‹’—“˜¡¦§¨¦š˜™–—˜–’’™›——ˆˆ†~„ƒ|njiksz|{{rpuqq{ƒ„ƒzz~‚‰ˆ‚†‰Š””ŒŽƒ}|~{pnortsj]Y^eeffdenwyzrmqwwww}‰Œˆ†ƒ‚‚~€{~Š”£ —‘І„ˆˆ‚‡…uw{rx|vv|yw~‚|u|‚ŠŽ‰…ƒ†…{yzsqv€•”Š‚}}’œ‘‚|ˆ’…|~{}||zuxƒŒ‰„~yvsrkmvwxz|yqimy…‡‚|~…ŒŒ‰‡„‡‘“ˆƒ‚wry‚‡„zrsЇ„y|‡’Œƒz{xmho†~tjds‹’…}€‡‹‡€wvzzvrqnnspkp{‚Œ“‰€w‚ŒŽ‘”‡yy{{|ƒˆŒ†|{v|†‰ˆ‡ˆ‹’š”Šˆ‚}ƒŒŽŠ~uz€ƒ‰ŒŽŽ…zuqx~~……ƒ‡‚ƒ„‰‹†…’˜“Œˆ€vy„Œ“‡‚xxsp|ytof`^benrlcdnvyz}}yusuzyu‚vpoy…wsw{ƒ‘•‚‚{ruvtqrty‚zndbhoqlqŠŽŒ‡€‚|{žœŒ}sqsy‚„€‡‹ŽŽƒ‰ˆŒ”ЅЉ…|srrv|}ƒz…އxutru|‚Œ†~€‡ŽŠ†˜œŸ£ œ–ˆƒƒƒ‡ˆˆ†xzƒ‚ƒƒypljkomjltz}‹’‘“‘Œ‹ˆwmea^^dkquvpjijrxqkpu|‡ˆ€ŠŒŠ‹†…“ˆ‡’‘Ž„€uox‚‚ˆŒ„ymkotz‚‚‚ƒ‚{z„Œ—›”‰vrw|yz€znmv€†Š„{~ƒ‹ˆ{y|‚ˆ”’’‹†…Š”‘Œ„€}|†‡‡‰‡ŠŠ‰†~zxx}|qjpstv{}‚…|€ˆ‹Š‰‡‰Šˆƒ~}‚‚yurtww{|ysswx}{vqqvrjfhhgrwv|~{|‚††ƒ~ƒ–œ•Š‹ŠŽ‘‘’–š˜Š„„‡†scet‚ƒwvuuz„‰‡…„†Œ—“ŠŒŒ‡‚~}€zuvxsiaadflzƒ‡‰nn}„ˆ†€xomqrw„ŠŽ‹…†ˆ‰‰„…‡…“—Œ‘—•Ž‚z|…Ž’Š€}wu{„ŠŒŽ‹††ŠŠ‡{t}†‡|xvqswyw|‹—˜”‘‰~zvtutmggijieiu|{…~yz€†‰Š‚zwu‚‹Ž•‘†wmo~ŒŽŒŠƒtlrvpjknv}€€|€‚‚‚zpmmoqibcbcehmlcdjopntwyxrkafzŒŽ†‚}€…‹•“‘–š˜Š‹–ކ…}’ž™‹‰‚……}z}‚ƒ†‹„€‹‘‡ƒƒ†…zxxƒ€{t~š˜‹~yz}‚Œ‚ƒ‰Ž–›•Šƒ€ww€‡Š‡~l``fhhjksxz„ƒ~zu|‰”˜—‘…€|xrqqkgo‚ot}}€ƒ|smlipvwy€ˆ‡ƒ€|…‘‡z}ƒ†~vsuz~}uvŠŠ„~rijsz”ohbq‚Š‘‰||€~„‹ŒŒŽ‹Œ•™–”•’Žˆ†‘–‰ƒwmks}‡ˆwrw‘—‰umtŠˆ…ƒ…‘™˜Ž„{rv|‚Š…‚…„{y{w{††‡Š…x{}z‚|qpwz…‹‹‡„‹‰shbbhryxwsngjprvyrklsplpqrqwxupkuskw‰›¦§˜†ypjgorpvˆ”Ž€l_[bmvxz‡“‹€„„€‡–¡›ŒŽ‘–“‡|z€ˆŒˆ……€}wwˆˆŠ““ˆ|{‡’™–ŠŠ†}|„†‚}yvtv{‡ssvx|~vpqy‹™š|vzŒ—–‹xi`enov……‚††€€‡†…‚’ ‘ˆ†…‰“‘‚nq|qddihnzxlksqla]hu€ˆŠz}‰“𠍍¢ ˜‰†ƒ……„ƒ{rklv‚ƒˆŽŒˆ|mdhsvz„ˆŠŠŠˆˆ–œ—„€ƒ†Šˆ‡‰…„……€{†‹Šupmqx{…~z}xwyytqssyƒ~yvorxxvtv„Œ…ƒƒ…ysqqrwrhmtpomcbo~…„‡}qov‰šŸwms†—¤™{v|„“™k`dzŽ‹€soroqvkbhusz†ˆ„~„Ž‘‘‰„ƒˆˆ„…|z€†Š‰†{ztzƒ„|}xz}vtƒ‡ƒ…}uz‚‡…‡‡ƒ‚…ˆ‡†Š…‚‡‰ˆ„‹–™˜‹€…Œƒ}z{~zrpqqqijjktvsnspinrs|}puzy€~|uxˆ‹‰…‚}€‚€„„yqr{xb\djkjimqu|€††‚…Ž’’Ÿ•——””‰†Š•“Œ‡|}‡„}{xzƒ˜˜“ŽŒ‹‰…~yusz€st‚‡‘“Ž…}ywzˆ••‹‡‹Œ‰Šˆˆ‹Œ„zywv}€ƒ€~}z‚Ž’“Šˆ…†€~|wwwuqoi`h{zrtrorngn{{‡‚†‹‡…‡‡Štox{{{y}||{y{|{vu{‚„ƒ}sjgjjfenˆ„Іz}‚…„„‡ˆ„{twž¥ž–‡~…„}{ytssqrsx€zmeov€ˆ„„‰‘މޗ‘†ˆ‹†‰ŽŒ‘‹‚{uor}‡ŠŠ†€xvpfhnuy{wsrry‡Œƒvjccq~{yz}~}€€}€‹“’ƒ{unv€ˆ‘–’Š€|wy†–˜“Œ‹‚xy{{‚Ž‹‰‡„‚~ztqrkho|‡‹…{x|{uty~|rmlp€ƒupptxsjgehroow{~„ˆ†uq‚˜Œ€ƒ††ƒ‡ŒŒŒ‡‚ƒ†Ž†ƒ‰‹…ƒ…pmz‚†…|uoppsuus{€z|„ˆŠ†ˆŠƒ‹•‘”œš”–Ž|z}„‚ytxy‹ŒŒŒƒxyy€…‚}}ysru~…ŠŒŒ…€€ˆŽ†‚ƒz}ƒ‚„‘“ˆ…ŒŽ‹vtsz‚ƒ~z{€‡ˆƒwsutoow|€…ƒ‚ŠŽ•š™˜”‰„~‚…‡ƒye]dgkkidaflojjuy|‚~{xlmz~|{yy™™™{v{‹”‘„w|z||utzƒˆ€ttpmuzsryƒzus~†ˆŽ“‹ˆ‘—œ—Ž‘‰‚„†‡†ˆŒŠ†‚~€Š•”†}‚ŽŽ†€€|vsl`aa_]Zasyrokiouvz„„„ˆ„{}‚vr}}~wkjlklh`_emu}ƒ‹Œ‡}|zvqrt|„††ƒˆ’•„€†Š‹‡ƒ…„{vx‚‘Šƒ…ˆ‚~~{z}|xvsow~yz{wstuuxtjjoqrplkmory||~ƒ…|tutxˆ‘•‰ˆ†ˆŽ•“ŒŽŽƒ€~rtƒ‹Œ†|wzŒ™–‰ŒŒ‹‹„}|‡…‡ˆ‚|{xrs{}|ƒˆˆ‡€~†‘‘‹†ˆŒŒ‰Œuw……‚ƒ„‰‡‚€‚{|‚€z{yy…‰„‚€ƒ‡†ƒ}xxwx|†…ƒ„~uqqx‡‹†wh^V_p…’Žƒ}|„Œ‹…~‚‡‹ƒˆŽ“ ®­ž“ŒŽ‹‡ƒ†Œ€wmmwurvz†Œ…}unijs{„‡†wv|ˆ…vou|ƒŒŒ‹ˆ‚€~‹’Љކytoio{€}ups{~~€~uv}vm__hikleZ[agnqwss{~†‰ŒŒ…‡•››™–Œpgecgqso}‰…‹‘“‘‹‚|‰’‘Š€xtnprlkwƒƒ~€xtspnpuvoottt}‚„‰‹…xquzxtrrvwssuvqmoqpqsrnosutsorlkss†‹•–ŒŠ‡‹‘—–˜›¡¦š“‰„ƒˆ{wos€‚ˆ•Œ‹Œ‡{wnjnqxzywqnt„„‚{ttv{ƒ‰Œ……ups{ŒŽ‰Œ‘˜™–”‡zz†ŠŒ‘’Š‹”‰}z~‚ƒ€zrpow„‰ˆ€ƒ†ƒƒ†~uyztnow„‹ˆ„„‡‰†ƒ‡ŒŽŒŠˆŠ†ystvwvuy€}x{€|y}ƒ„€{xqnkksz|uqsnjmoppqsvtqx~‚†„„y‚…Žƒ{€…‚z{€|{~ƒŒ‰Œ‘Ž‚zy{wv}„ˆƒ…ކ…„~~{vrngjrnoqv~„ƒ†ŒŠ„|xwssv{‚††„„ŠŽŽ’’‡|wxƒ‹’ˆ…‚~‰•…xrrw|zzwwŠ˜Ÿ›‘‰†€wqqw„‹„ugcjpuzxwx€†ƒƒ‚}|wwz…“‰™šŽ–š™–‘‘”–Œ‡{yx{}rjknkmpohfopx††~svƒ‰Š‹‰ˆ‡ƒ‡“˜‡yiegow„}vpmlikt{{{~€{yxpu}xx~ƒƒˆŠŠ‡zsnmkheejnprqmnotx•¨®¡™—’‘’‘ŽŒ‰|uqw}ˆ„€ƒ„}zulrzz|‰‰€zn`Z[bnw€ywttrlkkqw{|ocbiox€{slijgfkw„‹Š‡†Œ”¢§ž—’ˆˆ‹‹‹ŽŽŒ•› –Žˆ„„ƒ}|~ƒƒ{x„~}xuz€†‡‰‹ˆ†‚~z{ƒŠŽ‘Œƒ‚‡–š¡•ˆ…€~†Ž”—‹ynmsŒ•–‘“‘”’‰„††ˆ}ƒ†ˆ‰‚{qoz~xsrv}€€zurfev~€€ƒ‡‰‰…„‚€ƒ‚†…‚„†„~spsttrpqz€{wunnqlfbgliighow{ƒƒƒ„„…”¢¢¢—‰„€€ƒŒ‹Ž‡ŠŒˆ‡…~smjcacdfke]_`]`aafmsuw{{sx|yrowzvld^Z^fs~…‰‹‰‰Ž’—™“‰‹‘˜ž™•–šœ˜•–››”ŽŠŠ’‘Œ‰‚ƒƒ„€}|wxpnvwstsko|}lege]``Zfqyvjlpv|~€††Š’’‹…Œ‹Ž†xzƒ„Š”€…‚€‚€~~wqw€„„€‡ˆ|zx{‰’“›š”““”•–œš—››‘Ž•”ˆ…‹‹‘”Œ„zz}{sv~}ƒ„~zy~€zvxypihov|{spuslqqow‹’Š„„‚‚ˆŠ‹—¢Ÿ”ޑހ{†Œˆ†ƒ‚}wu}‚„‚}yzzpknqw‚†‚}xu~„€ƒƒ€vwzsu{{wsmmswtophhnjb[[]^XWWVY\_bkuupkhipˆ‰†…ƒ~{|}y~~z|ƒ†„~{|€|Љ‡–šž›œšš™ž£¢¤¡œ›•‹Šƒ{ros€ŒŒ‹‹ˆ‰…|wvx|zx}„‡‹ŽŽŠ…ƒ‡‘—–—˜•””“‹”š›“ŒŽŽ’••Œ…{|€€ƒ‡Š‰‚yuz‚†‰‰‰‰‘‹€vleb^ZVV\hle_]YW^a_[\^_`cgd][^dmv|}…Šwwru‚‡ŠŽ”˜š¡¤¦§¢˜“‘†…„~wsnjloqv|{}~xwz‚Š”šŸ¦¨£š–˜”‘†zskijpsrrw{umifbdjqz}z|‚‚…‰…|„ˆŠ‘‹‡‚ƒ‡Š‘˜˜•›–‡yutuƒ‚…ƒ€}||„‹‰|}~~vonotzunpnmpszxqpihu„ƒ~zx{‚†}qosutpmnzŠ–”‘†ƒ€„‡Š‰…„~||yvwwy€‚‹‘Šƒ~ogo{~‚…xsrpz„………}xvwtq{wxwu{€†…ƒ…‡ˆ†‚ƒ‚ƒ‰‹Œ‰ˆ‹‘’”Š™ ¡¡Ÿžš’‘” «§œ†…ŒŒ“•“Šyplu~ƒ‰ŽŽŽ†||xokd\^egkrtootwzƒ‡ƒ‡ˆ…‹Œ…ŒŽ‡ƒyttuwzyuyyxxsnffmolijkmt~€{qmnq{†’‰…€x{€‚ƒ‹“†…‡‡„ƒ…„„ƒ„wkotƒ‘‘ƒ}ˆ“›™y{‚Š“› Ÿ˜Œ†ˆ‘–|mimt‡‹‹„}ysjlmow~sh_\cdb`akrrsuy•”’™•ˆ~|||}~zyyuogjsoknutonq}„ˆ…}€€‚Šˆ‚}~ŠŒŠ…y{ƒŠ“‘‰ylkpw|tlpv„ˆ‹”†Š‘™˜˜—››•Ž„ƒ~|ws{}xustvrmnrwyrf_\]_cgjnpustzzz€‚€|z}‚ŒŽ‘‘Š…~sikmq|ƒƒ€„ˆ‹ˆˆ•Ÿ¥¤£¢œ–’ŽŽ’”’ŒŽ“š––¡ª­±«£¢ž›¡¨¦›“ŽŽŠ‚zuuwzvlgfchpj\WWZ]\[YZXSRQY`dfegilnrojlv„ƒ}‚†~yywy~ƒ†‚|wtqgflsvuwy|~{ugZahq{‚‡’˜”ˆ†’”•”—œž ž“މƒ|‚އ‚ŒŸ¨¢—‹|„Œ‰‚†Šqikok`at}odfjghmrxtpq|yrspjphelomfjt{†‡ys‚‘——‹•™žž›¢¦ž’ŒŠ„€†xwx||…‹†„……‡‰†|€‚ˆ’‰†ƒƒ€|}~€€~}|{vusq}Š‹‰‰Œˆxr|{xxvtty}ywuy|ywtruvvwpkikjozxsy}~…‰Œ•˜‘‡„•‘…ƒ™¡£—‡ƒzry{}zuzƒ„zpidfkjjt‚ˆŠ…|tmmt|‚‰‘––ƒvttˆ‹‰€{€˜—ŽŠŒ‘—š’…‚‚„‰‡ƒƒˆ”ƒ€|vomiecc_eruz}|xoid`jzƒƒ€}{tommjmx|‡‡}tuy€…Ž‘ˆ€shiptv}€‡–˜’‘‘•“‹…†‘› ž™•”“”™›š ›ŽŒŒ‰‰ŽŽ“’Š„|yxvxuihijrsqmgjjittw~y|~{wtz~‚‡yqlmnnopkjnkf`bhhlnqsonoqigkqvƒ“’‹„~€‹”‰‡‘˜–”„~|yz€†‹ƒ~}ƒ‚}xz~|~znmprxyrjiiox€€‚|{‚ƒ~z}yrmgjidc^WWbd`bekt…’’‘”šž¤®²¬ª©¢ £¦©¥ž•’•”“––™–Ž‹‰‹Š†„†ŽŒ’•†{qv†‹ƒ{‡‹‘„mfjlnz„†Š„yŠ“™—~„‡ˆŒ}l`ipvypijw„~wwspqpv{~ƒxpj]YXZbm‰ˆxvot€———™™™–Šww€‡ŠŒ’Œ‚~ƒ‰ŠŠ†ƒ||€€~~€€{k_WT^ccbhou€€‚‰‡yy€Š™£ ˜ §¥¡œš™ž—’ž¥¡—–™•‘•”Œ‰~sspnrttkghpy~yjYQZ\agcdaY^i`amkiu{Šˆ……€zuyus}ˆ’‡‡‹‰…Ž•“Œ‘Š„…Žˆ‚}ƒŠ„ƒˆ}{zxz{…Š{trebff\RGIVcosrkdab`a`blka_gma_js~‡ŒŽŠ„‡‘˜—‘•”ŒŽŒ‘•””‹}}ˆ”™ƒvnq}Š˜—Œx|‰”™™ž —’–  —‘–Ÿ¢¢¢™Œƒ…‘‘•˜‘ƒ||zulgimtyywvx{ƒ‚{|~}|y{ƒˆ…ƒ‡‰‡„Š‹~wsoov|z|€…ˆˆŽ”•—އ›¡¡š™“”“†|xtkcbgknligge`ZSOKMQWYYYM@4:KNRV\[UOJMQ[ekv|yx„Š‘‘‹†|uu“˜œ ©¥¡«´ºÆËÇÈľ¹±ª¢””šš™£¤–‘———’”’Š„†–¡š‹†…Ž‹‰Š‹‰Š‘’„zwqnprvstuuzviehiisslpqni_UY^]`_^[RJIIPVXajprmhf_djgehjpxxvvrw~}{|‡„yoms}€„ŠŠˆŽ‘Œˆ|{}‚†”—Š…‚wmm|ˆŸª«¤•‡Œ“•£¢“‘‰›š˜¢¤¢ž–ˆŒ“‘Œ†€yy}Œ“’‹zhajs„––‘‡€€}|~{|}xxx~‚~reabfpzƒŒŽˆŠŽŽ‰‚‚~ztux{~}}„‡ƒ}|{~…‰Œ‰‚yx}~zsrrdbs{yxvsrmkh_[]dgjf\Zaltvlaagkmquunfb`cdenxyvrs‚’–‹‹Š‡†Ž••”ŽŠŒ‘”ŠŒ„}„‹“‘ŽŒv€‰Ž”–œŸœ ¡”Ž˜¤£ £ ™—˜¡¦ž›š—™œ¡›”Œ‰Š€|}…“š“ŒŠ‰{pnnrrqlaWUVW^__]dha[W_kllijpkc^cnw|||…„„‚ƒƒ‡ˆ†’’“ƒ€…Ž’ˆ„~z~…†{solmt~zwƒŒ‡„‚zvwu}zu|tqsrsx{|€€‚Š’Ž…}‚‰‡{sz~|Œ”“ˆ{}†ƒwxrt€„ˆŠŠ–‘ƒ}ˆŠ–‘ŒŽ‘Œ‚}~€‚}€~~…”ˆ‰’—˜’Љ…„†|rstvyyxƒŽ„†‚†„qisstvp]U^`bkor{‚{wtsv~~zuqwz~ƒ„|ieknw‚‰ˆ‡Œ’–›œ›™‹ŒŽ’”‹Š…}}z~|yy|€‚zyyncdjieZW^^`fkqijw~€€†„|xvsy„~rqlbentrpmfflpsw|}~€~€…Šˆ‚‡”–‡…ˆŽ‘–—‡‰ƒ{|„‡ˆ‹‘•˜œ—‘†…ŠŒ–œ“‘‹‹ŒŽ“”’™™‰{pny‚‰Œƒtorz|rmfhqy€„‡Ž’’•’’‘‹‰Œ’—˜˜–‘‹ƒxuz‚…„€xpka\dkolpttqlrti_RHJNMHAAKOKHIIGT`^erz~€€‡’”œ¥¬·»µ°¯­¤›™œ›“’Šš›š”‰…ƒ„‘˜—š•„~~„‚„•‡‰‘‘““‹‡‰†|pmfeknmt|xqlllqtoi`]_\\dnxuu}ƒ‰‡{ˆ•˜˜wrv|„‹Ž’Š|tqu€ƒ‚ˆ‰s_[bdVNV`iw‚€~wndfw‡”™œž”Œ’•’‘Œ˜”•›Žysw‡†€€xl\Xgpv~Š˜”ƒpm{‚‡‡€ƒ„yopsvrfjps|wmhhry‚†uvŽ”““•–‹Ž”Žy„¢¤š“𠥍¦¡›–Œ‡Š‹‰”†u|ƒ~ƒ†‡~xx|‚xcew‚‚|upkbZYbrxqlntz{yutwu|Œ“Žwuogjlhq~tsqnmpkcchvyz}ƒ‘’™œœ¢¥Ÿ—“ŠŒˆŠ}‡†…‚rkitƒ‡ƒ„Š‹†€„„‹‡|wrnjqŽš™†„‡–Ÿ£¥ž’ŠŒ–‘ˆ}uvyŠŒ‰sqkZXbmsstof_agig`^\X\ktroonhipy}}}}€}z|wsu‚“‘ˆ„…‡’œ›‡Ž••˜–“—•މ‰Šˆ‰ˆŠŒŠŒŽ‹‚vurkoqtuquzv}…}~†…}{ytxzvqhacdlx}}|zuuutv|zwyvwwwxxvqkoty€…ˆŒŽ‘““‡†„„€yrqruyxxwvx‚‚z€‚{tu‚‹Œˆzw}„Š–—””‹‚~}ƒƒzz}|~ƒ…†‡‚{yzxz}tquz~„‡Š‰†|†Šˆ‚“ “€|y}‡‘Ž‹ˆ€x||wsx}{‚…‚„‰ˆ…‹•𙕋€z„•™”‹}{~‰‹ŠŒ‹‡|u{ƒ‹‘‹ŠŒ–šš•“–˜ªµ·³¢•Š‹˜ žŠyyyupmhf`X`lfcb`jtxsox|xwzuw|{}zwupkq|†Œ‰‰…~y{ztpuzvssolqvz|…ˆ‡rgaghehgiikqqmouuspps|‡ŠŒŒŒ”•‘Š„‚Žž¨ª¬£–‘Žˆ‡ŠŽ†xshguzzwyyojf]Zfkknnqvtuuvy~}|„ŒŽƒx„Š€xt{‚†‰„‹ŽŽˆ}xsv|‚}Š˜Žˆ‰}„‰Ž‹‰‡Ž†€ŒŠƒ|xy†Ž‹Œ…yuv{wkoibiuytstrsutrnr‚†{{{pwŒ”•“’Ž’—’ˆˆ›œ—”ˆvkir~ƒŠ‡ƒ…„ƒ}z‚†~{xw€ŠŽ’š›˜•“’ŽŒ„||wvrpwz|vuz|€„|qifgj€…uy„zljihgkqy~yzyv{vqos~ˆˆ‚xpr{~€ƒyuukhls|y}„‚}|zvpu€yqtstqmx€}zwrt~…•™›‘‡€„ƒ‚{u‚ˆ‰„wtv~‡•—–š’ŒŽ–—”’’–“‘“’‘‘Š}v~ƒyw„‘˜“‡{~„‹‰sw†‡€{~‹•ƒzoimgXYbp|ufcgkolc^[bmyƒ„‚ˆ…~„‘‰‚ŠŒ“x~Š——Œ‚ƒƒƒ‘—ŒŠŠ„|}ˆ”–”’„{tvƒ—™Žxfgmu~{sf_`acnwˆvkmyywzwu{‚ˆ‹†…‹ˆ€ypmu~€{usrvuxˆŒ‚{w{{w~zmt‡Ž’‘ŽŒ‰’˜”’“‹Š}ppy||{xvyvwy}|wqr}‹˜•ŽŠ‘‘‘Љ’Ž‹Œ„}{€„Œ”‹~{uw}zusrmkqvyz„‰ˆ…ƒ†€|wopuwwurpibdp†‘Š…xks€„…‹‘Œze_kq{wopsq~Œ‹’”‰ˆƒ„…~|vspmu|€…„vnvƒ‰ˆ||ƒ‡…ƒyhju}~†zuyusuv}ƒ„{v€†Ž•Ž„ƒz‘‹ytv‚„€{ww{yxzvstrqwwyˆ–›“ƒuhgw˜™—ˆ‰‡ˆŠ‹‘”’„€}}€‡–’‰‡…|{€„ˆˆ~vvx‡“Ž…‚zx~ƒ‹‰Œ‹~xnmx€€‡Œ…‚††ƒŠˆ‰…‰™¢š‹}xuqyvonv‚†„kTSXYcvtlni\bssq~~ˆ‘…hš“Ÿ§ž•‹€~~z}†ŠŠ‹€xxxxy€†ƒ‡†‚~{…†Š’‡~rpƒŽ‰…‹Œˆuxwv|tp{~…†€‚ˆ‰‰ˆ„‡Ž‰€z{‰—–†|uu~‚„‡Š‡yjfluvnlihtw}Іzomtwww{€xjcgkkourjkrmicY`s€{tmpx‚‚|~{xtwxqx†ˆ~ƒ‡‡‡ŠŽŽ””}r|€‚ˆ‡‚‚{xŠ•ƒ„Ž‘—Ÿ™—”Ž“––‘†„‡Š‹Œ” ›‰okvtlkolgjhiuzƒˆzt~†}wtv}nflrz~~zzŒ—‘Š‹ŽŒ‰Š€xz|~‚„~€|~ˆ‡†‰ŠŠƒ{upux|w}}€}|‡ˆ††…‚~‚ˆ‹Šƒ‚‰Œ‡€vealwwqlijpy|uqqu{zt|†—’Š{olp{‹”Œ~€…‚}xlffly‰†„ulir‚Ž—š’„zut~‹‘Œ€||‰ŒŒ•šŽ{ps|zrjiv~…•š–“‹‚“”“ˆ|wz„•މ”†„…„†‹Ž…{vnx€}}usvzxpjmy‰‹‚usxy||sfYTWbpu|€yvutw‘}iVSZel{’‘Š|‚ywxwklˆˆƒ‰†‚{~”Š‹–š¡¡¡£›”“””•˜žšŽ‚€zyy|~~‚}tz{ssoqxuw€ˆ„~…‰‹Šˆ• ™‹…€}qjmjiry|{€…†’š—’’Š……xoqrz€wnmq}‡Ž–•‡yrgehiqvmb_`bdnoloqt|ƒˆŒ„€}~€zw|†ŒŽŽ‰ƒww€€†‡}{ƒ‰Œ…‘““™ž›–†‚zuosz…•Ž‚zxxy€‚‹ƒukms}ŒŒxpg`]gprruxsx…Œ†yqjjlr‰€uv}ˆˆ„†ŒŽ’•ŽŒ”Œƒ…Š‘–“ŽŽ“І|suƒƒ€yklpv„‹–šš—›šŸ–ˆƒ‚ws‚Ї†|ngmƒ†pezƒ{xsqgcdjtvv{|ws{ƒ‡†ytwwwvpy‡th__oˆ”“‡ukpy{}ƒˆƒ}„‹‚wm\Yl…™™–‡ˆ‘—‘Œ‘‰}‚…‡–’Š€tjqy~††ƒ{srxxuvus{‚€yryxg`hr{‡{nu|~€€€‰ƒ{†‚}ƒ~|{pjnp‘‹„”‘‰‡‰”Žzkmxˆ•™“•—ŽŽ‹ˆ„ŠŠƒŠ‹‚–‘ˆz‹ŽŒ€k^\bo|xmifgdjhhuxyxxy}ˆ…{vmkvƒqgkkjjgikosnr‚•¤«¤ŠƒŽ‰ƒ‹ž¯¨›˜“†uffdmx€z€Œ•œ ™™š”…{yy~Žxhq~zqnc^kz€ƒ‚‡‹za[iqopt€…~„qjpy|}‚ˆ…‚‡ˆrqy|€……tkhjoekz|}~‚ƒtnz…†ˆ‹‰†ƒ‚†‡‚}‹Œƒ|{y}†’¢¨–ƒxvz†Œ‚zulorvvuvrqmfu†Œ•¡¢Œ|wkdl}ˆŽ’…|rpˆ—…ƒ…Š‹ƒˆ‰ˆŠ‹’†£Ÿ¤ª©®¯¶³¥˜ˆ}ŽŽ„qgp†Ž‰ˆ}x€€~yomv|zzyx‰…{tou‚ˆ‚{vupinrnopjqwpibeiiostsf^fx†Š‘”ˆ€ˆˆƒ…„‚„††‡€rdaiompzzvxtonkcQHN`pvxx}‚‚††„‡€„Œž ¤¦ž‘x}zw€‚€~z}{|€|wrrre[_hptyyr{‚‚ŠŠˆŽ–œž¡¦£œ©©˜‘““•ž¢Ÿ™’‡|rmlkr‚Œ‹‰”Œ†‰‹‚z}‚‡ŠŒŠ†~ƒ‚yslmkbccd_Yar{vqnt‰Ž‚tks}†Ž‘›œˆ|‚†‡„ud`[V_hlqoeejmqv‚ywqhmxˆ–¥«£œ|pz†}‹‘{s‚‚jg€}†ƒ……Ž~ledikpu|‚„~{ˆŠ˜–‰}…ކƒ‹—•‰Š‹Œ‹{kjovqtvxonncaahx„‡—‘rt}€…Ž‘š™•˜›“ˆy^QWblrrtwtuvw‹•𔋅…‰”¡£—…‚zsŽ•›”ŠŒz}o\X_itwtpnkfkx…“˜ ›Š††šŸ—‘Š„Œ’…|tw|sh[Zbix†„zueT[l…Œ‡‚‡‰‰ƒŠ‘“ œ“›¡¥¤™Š‚~}ƒ‚€pkjclrqprypnvuy|z{‚……Œ–•˜š…ƒ€‡‰z~ƒ‚„„}vrsromotpnpqryzxxxx€‚{v|‰’™š”’”’‰ƒ|xyx‚Š˜¥­ž‹ƒ„†€zwqmw}xy…Ї‚}}yx~ƒ…ƒ…ˆ‚‚ƒƒƒˆˆ‰‰…yrs~ˆ…yqvtjkllqiee[\hjgnwrsƒ“”˜¡¬º²£žƒ†‘Œ„ƒ‡€pcX\hrzxpou{{}‚}qhefmwwpjhinx~ƒvuy}‰”™š™–”“ދދ…~~‚‡†}z|‚‚ƒ‚}}zyz|}‚އ†{w†‹“ ž‘‡Œ‘Œ}oicr‚„„„ƒxxwnt~~tjipw|uz‚†„ƒˆš”…„vuoiox†ˆ‰†}z„– –‹Œ‡ƒvtqmkd[dpuy}ƒ€ˆ•“„y~ˆŒ˜¡ž€qkgcju~€„„ƒ€znhkijqsqqnt‚€}ytry„‹†~†‘‘Š„~…›¨£•Œ‹“‘Œ‚‡…ƒ|xutw{…“•vv}‹••‹Š„xjcggfehjhfda]YVWanojiikopmdi|Š“—–••™œœ™“‰…{nlp{‰‰‰‘‡€‡Ž‡}ˆ‘œž™™‰y‚ˆŽ˜˜“–˜Žƒˆ“ž›™–¡§šŒ…‹™”za[hjXQ]psjkss}Ž€wyxw|€tgYIJUhuomprzŒ–˜‘„wu†’•”ƒttz‚ˆ…y}’—™––‚z‚’šŽ~}…‡zsnfeiuz}‚}zˆ“—™ˆ|u|zuuqnlqk^kvtldt……€ztsv~…€Œ’‹‡Ž˜šŸ–Œ†Œ—œ™‰wfafjp{ˆ‘–—››‘‰†Œ‡Š‰ƒ€zv~zvvwwxƒƒ„…€zznjltˆŠ€z{~…uppsuttrtzvv{„„€zmeaeebdmnpkded__abhkkgjurr}~‚„‡“š›œœž¢©®¨£¤¢œ•Œ“””˜™›ž¡œš¡¡˜‘“‘”˜œ“†ƒ‚xww}ˆˆ||vsyytw~…Žzyz{rororqd`efmqkghjc[\`dinha]Y^afp|ztskhccbbccglnrsn`Z\cov{€‰‘•˜¢£¢¡Ÿž›¤¦¤© –—¢£¥©©¥£¦¥¢Ÿ¡ š†ˆ‰ŠŠŒ„xuu||~}€zqea\X\cfkpllihmnoz‰•—–‘†{umhjsxvtusy…‹’š¤§œ„pmw{„‘‘“‹ƒ†…†Ž~srwƒpmhit€”ˆ~vswz‹‘‘“———’Š„†Œ†„Œ‘‘‘yjq|~ylforrw€‡‚ƒƒ……†‹‰ƒ„‚yƒŒŒ…yh[bp{zrqoddqy{ztme`\\elostkfox‚‹‡‚}srvz‡’–›—Žˆ„„Ž’šž™‘ƒwusvvv’—Ÿ ¥ ›™“„‡Œ‹•ƒ}}†—œ™ˆ‡Ž‰Ž”„yuy{|lc`dcciksuqtv}‚~zuojqyx|ˆŽŒ‰‰~z}„ˆ††‹‹‚scYW`imqtv}|usv~~xvqq|‡‹‘˜¡¢–’™œšˆ„~y}~vqjgfc`^[\^_^TKMWetxy}|ypmru}ƒ…‡„ƒz}†Š‘“ˆ‡˜”‹‚†‹‹‡‚ƒ†‘‘‰‹‰ƒ€~€‡Œšœ•ŠŠŽŒŒŠ†„…”š“€ytlid[ahdVLMU^ixzy…’˜Ÿ£¢£¨¦Ÿ™›˜‘–—–”Žœ¡‘‹ƒ~~„“•w~}‚†ŠŽ‡|qowttwpmmoqprx|uosqmiaZYioo‹’”“‘…yz}||xx„ˆ~os‚‡ˆ†‡ƒ{uqljlovyxqiedhnutsqimw{‚ƒuqolpjgtxw~€~‰Œ‰Œ‰ŠŠ‡€xt}ƒ…€x€†Šˆ„’ž¥£Ÿš†v{vt{†Ž…€…~rw~„ˆ‰‰…‚‚‡ŠŽ˜’|x€~|†‡‚~xwz‚ŒŠƒ…Іyninux€‹‹…|}ƒ•Ÿ™Ž‹Š†„€ƒ‹‘’„zŽšž™y}ˆˆ|rflyxqfc_bkx{|pbotpqlcgttz…€rlljr€€xw{vt|…Œ‹†ŠŠ†ƒ||‹™œ–‰„…“‡~ƒ~qkkjqy{…ŒŽŒŠŠ‹‡†‚|zpfeoodbk}Œ‹‰Œ‰‡„~z||y‚„…ƒ~vz…Ž—•’‹Ž”’ŒŠŠŒˆˆŒ†‚€€{pnpu~‡ˆ’¡£ ›“‹{w}€ƒ}spnlidchtz‚‰•šœž’‡†…ˆ‚xy{|simvttxs|ˆ“ Ÿ—Œ…zv{upy}‚||wlnsnd\VOSfqhZX_n‰…ˆ‘‹‘”…ƒ~~ypzŒ‘Œ‰†ˆŠˆymr{xmson}{{€†Œ†}upz‹—š‘€w{‚}|Œ•’‘“ˆwwxtsstz{~˜—Œ‚~Œ’ˆzunmnnuspqzxpswˆ‹‹~z‚—‘‹œ££§ š––’‰{tx}yzvsz„Ž‹Œ•™¥¢™Ž‡xv|~ƒ€sf_glotunaWTXYbt„”›—ˆ€{oooh^Y`o„”ŒvZDF^otow~rv|~‡”š†x{‹”–k~•˜oz…Ž™Ÿ™‘‰mH>DJZjmnrywpls‚{||hkw}v|†¥®°¯¬°¦›š˜š£œ‰…~ƒƒ‚…‘‘Ž…‚‡‡Šˆ„‡‘…‡ˆŽ””–” ¥›“‰‰‘”¢ª¡“suxt}{vrtzslouuvx}dOPM^kgg^NGKVgsjZJ?H^nuwtxƒ†‡‹˜Ÿ––ž¥§£˜‡‡ˆ…‚{~‰“•‹…„„}~…†xrwsg[R[ekt€‹—Ÿœ”ˆzv{yw}„ulv†“™”‰|‚—”މ‚ƒŒ€l]X_x~‚~ywthmz|“…toqmsz‡‚„†‡ŒŽ‹‡‚†ƒy{Š–’‹}wx“‹’‚‰‘•‘‘‘Š…„ƒ|€Œ£š†„yjdp…‚}~snmb__ceimw~vqlnruxod]aedc_fyƒŠ•Š—ž§®°­©©¨ž“І†‹ˆ~yw…„xjgioqlfeihbaipotx|€||„‘}f\Ue}~y€ŠŽ”¢¥¢ž”‘މƒ“››‚|tx€‰ˆ~xpiglnpz€‚ˆ–‘ŒŠ‡”¨µ³°¨¡–’—œ›‹yloqleWMFJ[q€ƒwzqa^X`qqknuwuupgcfkokk}†„Š“™—’Œ‹yvu~‚‰Ž’¤¨«¢™’‹““…ƒŠ~rsjYXbng^^_diuƒ}xz‡‹„€Š—œŸœ„€‘•ˆƒ€kgu}}zxxk\[cmsqp|znt‚ˆˆˆŠˆ„Œœ™ˆ‰š¦˜Ž”•—w^^pxyyvllns|ty‚”žœ˜œœˆvkp~–Š…ˆ€zl^[_ev‚†ŠŽ“™˜‰ƒm[O^{Œ†rnqquuƒ‘–𣥗‡„ƒ„ƒ|omlsz|zxr}†…ˆ}|y|€~rijy„~~wpni_az”–•“ŽŠˆ†„‰– ¡’~‚—š|jdflqw„†‚…wjamxsms€ƒ„ygYiˆ’––…vprickxxqv‡’‹ˆŽ–›Ÿœ–†‰’›–„{tnmox€{y†Š‡‹Œ„€……|xtjdhqz€ƒwpur‚‹‰†vkhida_lv†ˆ–  œ•ˆ~ƒ}zx|ˆŽ†vnv†‹Ž˜—Ž—¤­±³¬—ŒŠˆ‡Œ‡†…™——•ˆqdfgn€„~ztooimnXJHMUbq{s`edhkpvc\ekt‚}}‚‚‚yprndbiy†„„‡|’ž—˜˜–І‚¡ ˜ŒŒŽŒ„}|tho~‚‚†z˜œž™ž¡¢«²³ª‘}vx…‹‰ˆ…zjnvz~yuuplaXK@AM_bfp{yoryxqqorrrwyynjid]blmzŽ——‚~ˆ•™—”‡}ndiryvrs€—››™™“‘’““…ˆˆ~z’œ¢£˜”‡†‡€wy€ƒ~}sipv{ƒ†“Ž€{qmvš ›‘‰…““• ¦Ÿ“”‹umvpdgh]QT\ab`RLT^hv€}v}}‚‡ŒŽ€}‚~~{rjkssrvrkijnyˆ’”—š”–¢¬¦”Š„€…Œ”› Ÿ~zppvrvwpmmorprrrpc[ejnxy}}rnqrwtv‚†‡‹ˆ‡‰–ž””—•Œƒƒ~z‚‰‹Ž’~x}‰Ž‰Œ’‡|x~ƒŠŽ‰vklmg_blxz{}|†ƒŽž®®Ÿ’€ƒ“Ÿ ••®·ª•ƒ{{‡’š˜†xj_ewƒ…ƒ€tc]j‡Ÿ©§ž‰q_PThv‚‚yy€Œ‚wtƒ—•Œw…”’—–މxuwl^[_gfddbb_drtronu}‚|ohqtv{‡Šzr{vcSLXgy€~ymjf\[j|ˆ‹‹ˆ}‚‰ˆ˜—‘‰‡ˆ„„„|v|~zxxtmow‹‘’œ•‚w}~„‰ƒ}wxzytmfcjŽˆƒ€‡w|ˆŒ~w‹ ›”„ƒ‹‰Œ’Š…—•‘Ž|†}og`itІГŒŽ—ž¢—‹Ž–š—‚uqz‡‘‘‹ˆ„|r|‡s][d‚–—„w€‘’}lhpx|pmpwz€Ž’“˜ˆujak}‚{ruzynkvuohhkw|~qkugcdpsjk{ °œš‹|lcfdZ_t‹™”Œ‰€xz~…‹„}‡…‚’“£œ”‘“Ÿ¦œ–ˆxtoosmhec_V_\Xiqllc\gttyytkhw‹ƒ~ygbvtY]my†š¦‹‰‰†‚ƒz‚‡‰‹‹—’˜›Šˆ†‚|{}ˆ–‰{sswqjfnvz„‰‰‹}‡’•–…£­¼Ä·¡‰‹‘˜Ÿ£ª£ ¢¡›‘’‰…€yyvpnqqy‚…†Š†y~ˆ‹‚‚’“’‡vjhnssqpqlgjfbguƒ€vspkoyxtnbZVg|†„tmpy}sg^]i~||zpah~‹ƒw|Œž²¶¥‘|r{„”¡œ„sy…˜•~rnnxˆ‰thghegukYU\cqzsvnhrqhkpu|„ŠŽƒ‚†¤¨¥†s‡“}lq—ž’„o]_r||xrv{vv}‡™£œ•Š|z}{morlebmz†Š„“§®²®¦™‘ˆ€wsz‡‘ž¤™“•“ ª¬¤“’–˜¥¬–‹mi_`gisti]]hihnqn`c~“š™”—ŒŠˆvmuvttl\Ygx…ƒybMNQWairqeZZblrsz€{x“𕆅†xv|{wnqsszv„Љ†‰Š Ÿœ¢¤œŒŠ}‚yplhdc^anqqu}†ƒƒˆy†’–š˜‹wmw‡œ’‰qikagsy~„~vxyƒ{‡—ž‘†Š‡…Œ†…‡‚€v|ЋЇ„‡ˆ~wwvsoop}Œ—•€urxwr~†‹›¡›œ¢¬¯°³­›‡„{{ƒ†Š‚ƒœ¤¥™†qa\ZUV`iomszw‚Œ—˜•˜Ÿ•Š‘ƒnb[USadeioyxnnmbr}„‚Š“–žœ˜‚U:8Kcmloy„‡xw€ƒ‚{u‚‰‚~{€}milotqkkjik{¦¬Ÿ’‹~qr{€€€|w~‘¡«®¢’‘—“†ˆŽ‰wjt~ˆ›§©—”œ¦ž“Œ€h^`gqƒ…yxuw‚‚zmrkhkff_[`gls{~‡‘ˆ‰Š‰†ukxŒˆyolq}‡Œ–•‡‡ˆ‚ŠŽ‰’›”‹~wŠ—“…|vzƒshd]dpqnknsw{‚„‹œ¬±¡•–ކ†„}zpqwy£§¨›–‡‹‘‘”—¡¢™“„yvfZekfedjpprwy~t`XTXn†‰‚‡Œ‹ŽƒrYMTh{v|Š”Œo_efakjex‡‹‘•—¡¢¦­™“˜˜‘ƒxlegoplgiq™–‹Œ‡€‚†Ž“–•‡{z‡’–Žzkc[X_c`bmv}€…•¢ —‡‚~~}xtz€‚sgio‚“—ˆscar|‘ ”Žzy‡‡ˆŠ€|xhijhu{ƒˆ…‡|lgi€—¢«§œŒ‹’‹‰— ˜ˆƒ„ƒŽ‘“Ÿ¨¦ž‡‡„†ˆŽž š”€qpl]fu~‚pbbfion`[[]_WTWgtj]Xcqƒ“‡wjnƒ†ŠŽŒŽŽ†}~}Œ…th_fsrnuz€€‡’•–Žˆ†~‚Š““‹‰}w{zuy‡‘”‘rms‚Ž™’…z|ƒ”‘’‹€…†„{~‚‚ˆ”™”Ž‹‹ˆ††‚†}qjkwzvmmmda[SPVany{}€xiacir‚ˆŠ‹ˆ‚€‹™¢©¡–Šˆ…„~ts‚Š’œŸš—‰†‰”–ŒzgTMKFGYky†‡‚‡ˆ„…‡ŠŒ‰“œ‡uxynm{ƒxllsyvƒ”œ—’ˆ{€‹ƒ€„†ˆ‰‚€‰ˆ€zn_^jx„Ž““š–†}|{…””‹yqbbfkwƒ‹†wroklr…}rrz…‘››†…‡‘’—Ÿ¡Ÿ~ugehgipsojknu„†…”£ œœž¢£–‚€}‘–uttd]kzŒ‘Œ‡~ojgci}‡‚xffu{‚‰‚phfhu‰š£¨¡™‚‡¦œvt{~{vob[X_goy}{qeVRZblqle`deevƒ‚…‹“˜‡‚„”ŽŠƒ€…†‰‹Œ‡ƒŽ„ymifdckwuot{ƒˆ{kZ;0>Yov€ƒ’œœŽŽ˜¡£¨¢–Š~yu†ˆ~uolhv€‚…‰Ž…ŠŒœ ž—„zzwsuspnlrˆˆ‘™œž¡¡£¢–މ…†‚{y~‡ŽŠ~maahp|†Šˆƒ‡‹ˆ‡Ž”š•…|{vnlnf_[UXWW[frz}{wpqvyz~€‡‡…‹‡€ƒ‹‰}‚‰Œ•ž§§¡˜”Žx‡ƒzrv}ˆ‹‡}x{{wsqd^acjhkfVMGHUjx€Œœ¥©«£ŸšŠ€}y}‚zor””˜ Ÿ~}}|{z}€„Œ‡…ƒ„}zuow‰‡~}~€xty}}}}y‚†xz„ˆ„wrojmsx‚ŒŽ‡…‹Œˆ‚wuwŽ’— ¢›˜”…Œ–—›“ŒŽ‹Š••ˆyniq€†‹‘––qnŠŒ•–Œ‰w€uowxu€ƒ~yul`^a]_^e{{yƒ‚Š•—ŽŒ‡}{„…‚||€Œ…~‚|tutqicYWf|‹’–™˜…w|}tqmjlr}}vllpu‚ŽŽ…ƒpr€‚‹–œ{kkpyŠŒƒ{w|‚‚}trz~†••‰xqs„ŠsgZU[esƒ‹‘…{vsw{Šš•Š……„€~~{uplpx…ŽŠˆ†~oq|}~}}œ œŒ„•œšš–‘–•’‹€|sjlp|znd`gr}…†„rp€Œˆ|‚Œ‘ŽŽ‚u……ƒ‚‡Œ†tnnlhl{ƒzkny|{…„xun]Weo|„ˆ‡…‚ƒ–•”‹‚„‰‡…ŠŽ…xplhhmqoszuopmilv‚‰ˆŽŽz}y}…ˆ‰€ƒŽ‰ydepzˆqmpwzrdZV`ox{xz†‹‰‰‡ˆœ¯²ªŸ’‡‚yy‚Œ”››šš–›£¦£œ{~‡Š†‚‚}voqzŠ•œ œ•Œ‘“‰†…{x|„€u{ƒ‡–˜–‰ƒ‹—“Šƒ{yymelmkprrt€Œ‡yqiszy~sklppqtvtk]UXZ^hib^eqqusr}‚‰Œ‡zx~€„‡‹€w}zyxtkbakvzz€„†Š‡„€„ˆ“‘ŠŒˆyy…†ƒ‡ƒ|~{mh^]fhpw€‰‘”Š„¦°¡––“’‚||sksusmcen…ƒ‰Œ‘”Švp‰ž”Š‹’›¥¡˜•’𧬤ŸŸ•‡‹š˜‰‰€pu{}vnZ\g_e~[a„ƒpico‚…†vpnm_LN_rxvtpty‚†‘•™™’ކ}z{}ƒ‡”•ylr‚‘Žˆ–{khov{}xs~‰•¢Ÿ‚‰”˜—ŽˆˆˆŠ„€ˆ‡xosxtvvocbovx|wrsx|yrnfdo{†‹…ˆsrrmmtzwpmqv~ˆ‘’‹’އƒ}tttt{‰“–•”‘†|rs†ˆ{vxzt}„„€}‚‡Š‘‹ŒŽˆ†pg^UJNWYjˆ‰•އˆ‡˜”ƒqksƒ…ˆ‰††Œ °¬¨©˜…xtv‚“‰rtvv‚‡‘’Œ…~ˆ˜¥ž¨¤•zkknusjdhmmqwslmikv~{|ƒ€‡‘ŒŠ‰…€„~~{k\[^]ftylajtytomipuvv}‚~z|‡Œ†~yzxsy~„…‰Š‡‰„|{ƒ†ˆ„wsnjnomvve\oŠŒˆ„~‰›¢§œŠ‡€Š“’Žzw‰Ž‘‹ŒŒƒ…‡{y…€yyov‡‹{j\QQ]r‰ž£œ’kjx‡“™”Œˆšš—‰obeo|‹‡r`QNZgeivyrnr‘¥¯«¤›Ž…ˆ‹Ž‰‰–”‰ƒŠ˜™††™¥«§–“–˜–‰vhle[h~„„}jSJR`iv‰‘Š€zidv†Œ|ihhjqy„„wqv|…–˜–•ƒwxvolgelvoqlZ_bhoruz~|vvvyƒŠ…„‡–𣡖ƒpf`bp|{x}‚}wmpy|‹›š‘’—œ•‡€yyyx}…“œ›š“Š„††ˆ‰‹ˆ}~‚†‰ŒŽ‹‰‚{y}|ƒ‡‚xvw~€|uj`ds{~}wstvz‰‹‹‡{yŒ˜ ¡•’Œ—š‘}vnmmlpsx{sqmikottuvlw‹ƒ‡‡ƒŒœ˜ŽˆŒŒƒsa`l’‡~te]btƒŠ‹…€tkp~˜œ›€tmiq†••‡xpotzywux~ƒ‡ƒ{ƒ{o`Z\grtnlv…ƒ…ˆƒ~{z€ƒ‚„ˆ‹’™™’‹‘•››šœžœ›–„€ƒˆŽƒ{vjhnsy|ƒ„†ƒvurtrs€€~wqx~woggjs|~‚€yuz‡–˜Œ}y}€…ˆ†ƒ{uz|yyz‚††‡‹Š‡ƒ‡’–œŸ“މƒ€…†€{w|}}~{ywtqrspklx}zuqqwxsfchmnknibaafkv…‰|zyqlw„†€|ƒ€~„Ž’”“Œ„yv{‡’˜–‘Œƒ‚‚…ŠŽ’‰ˆ‘އ‚„†…ˆˆ‹Ž’”“†zwsnuz‚ƒ||~y|ƒ†Œ‹ŽŽƒ‚‚~vqlcikemqqlfr}†‰Œ‹†’‹yx|}€ƒ…ŒŒˆƒwwxv}~toljeilegpurpqqwz}„€yƒ‹…‰‹‡‰‚xv|…‡‚ƒˆ†ƒ†–”ŒŒŽŠ„}vtlnz{tz€ƒ„ˆŽ“‰ŒŒˆ„…ƒ€‚€„˜•Œ…}vv{uhemv€‚{rtqopoqqu|}xrrogipy|zz~‚†„wtuxx|‡‰‰…€€{spq{†ˆ‡‚yqqrjcacb[SWdounipyyv„†€ƒ†‹‹Œ‰’”‘‹‡–—‘ˆ…‡ˆ‡}}Œ‹‰‘—Š|…–™œ™‘˜Ÿ¥¥—‹ˆ†{xy}wih{†‚vorsxocZ^hkmnliox‚‹——•™–—–—™•˜œ–‘”“–‡‹ŒŽŠtoosusu|wvzz|w“‘‰vy‚zphgimrqx|||uolorsyƒ…€€„…‡Š‰€zz‰‹ˆ‡‰Š†‚ˆ‘••’”™š••—”‘‰ˆ”‰‚ytkc``begaWOLOPMKQZagfilc^diptpppsurwˆ‹‹Š€{yy‚ƒ•šœ—‘Ž•™£ªª§–˜™›—’— Ÿœž™“”Žˆƒ~qlsxysi`\j{€‚ƒ‡……‹‘‹xqpu|}yx{€‡‚~|qg_RT^fmptrrsw‚‰‹‹‰}mfp{‚~wquyzvomquuyzz‚~wyy|ƒ†¢£©£™•‚y}Ž—–‹„~spslhgfmmp{Š—œ›˜“ŒŽ“އ‚}yx{“’ˆ}}{{€™Ž„|uv{}|€‚}xŒ“‘„up|‡‘’‹xxx|„‰‡{v‰†zurlkjmqnmmv‚yeVVarvirˆ›ŸŽ”ˆ„Œ‘•›œ¢¨¦Ÿžž¢£“Œ‹‡ƒ|w‡ˆysrx€|upnou‚ƒ‚~ypjmtpiq€…‰‡yj`\Z[]ex…„|rg]ZXTQMQTQOLMRWTW_`bdjjgkr{‚ˆ‘ž¡œ ™——™žŸ¢²²§Ÿž–ŒŽ’—Ÿ¨¯²¹Á»´²ª¢˜Ž’›”‡„ˆŒ”‰‰“œ—‹€vtqmdcee`ejlrvvx}ƒ„yruurlmonk``a_bhotuz€{yyvphkr}‚ƒŽ’“Žsmlpvx€ƒ…„‚ƒ‘—ž ›‡”˜•¡®¨¥ª°£–š‘ƒ‰“’‰‚wyƒukligmqpjgmx}ytolpvtomehyyrqt…Œ…wrsxvwy{z{zwvvyyw|‚††ƒts‚†|qrrpr‚‰}vssw|{|{wuuwohju|~„†‚~ywslnmlruqeY_ilhb_acfm{†Ž•››•”‘’•˜¢¤¢š™–’šž–Œ‹ŒŠ£žœœšš¢ œ‘„{{†Œ“™™šŸ£œ‡}~|z|tljmry€xt|…‰‡…Š‹…€zv{‚‚yvstuusnghinqomknwyxvxxutof^WSUW[_chpv†„ƒ‚€uu~wyƒ{}Œ˜™”š ™ˆ|…‰‰…‡ˆƒ‹Ž”¥±´«¤šŒ„~zpd_enlpuruy}~ƒŠ‡~xxux}‡Œ‘––“Œ…ƒzyƒ‚€€‚ƒ~ywytu}~slje^^lruxutpffltyx|€~ƒ‡Š‘†…ƒztsyz{}wqgdifjpx{}~„„…†“““–˜—’„…‰†‚„‰‡„„„‡’™”ˆ„ˆ„ƒ‰ŠŠ’‡}ywywtpnqrrx~zz|}„‡„ˆˆƒˆ“–™—•–‹€~z{~{unlkopmljlooi`Y[akrv{xtqv‚ˆ‡|snjhku}‚„„xpkebels~Œ—žž››Ÿ˜‰€|y~‚‡‹Œ’™˜› ¢§¤™‰‹Œ‹ˆ‰Ž‰ƒ€„‡‹”šš’‰‚{xrjeedc^RS]ceaYOQ`kmkox}€€„‹’’މƒ~|tqsqorwyƒ‚ƒ‚…‘Ž–—–“Љ’› £¤¢Ÿœ›œš™œ—“š¤ª¥¡¨ª¦œ’Œˆ“}plkhaagnqtwrpnpnipy€z~zry€€}€~…ƒ€{okhhlkny~…——Ž€uljhcgihqy~~|||~vnnpy…{xuuqnrtpptvw{}ƒ€yok~…yyyx†‘”œ—’•˜˜›˜‡yqnpnhfksuvxwz}zz‚ˆ‹‘–}v|†ˆ…Œˆ…ˆ†‡‡Œ˜š”†xvuw|yx{z{‚†…Œ‘~{{vv|ƒ†ˆƒ€ƒ}€ˆ‰‹‰‰Œ‹†€ƒ„‡‹Š‚z{~xvvtv}ƒ‚ˆ–œ ¢œ–“‡ƒ‹ˆ‰…€}rhc`^ZY^fou{„„{z€‰•¡¤¡ •”•’“އ|vsmh`VZac`]dkntus|~|†ƒsr{zx|~~}‚x{|wz~~|z€ƒˆƒ|yyuw~‡Š‡‚~|~„‹–ž¢£˜‹ƒ~€ˆ‰…ƒƒ‚~xuopuyypeY]egnwurw{zsqvyzyƒ‘—™ ©¨Ÿœ”‰Ž–ž¦¦£’‹‰†ˆ‰|vslmplYJMUaimuwvwxwz~}€ƒ{vsor}€}‚…ƒ€„„…‰““•—”–™”‰womkhcfie``dbeoqpt}‚†Žvuz|xx‚€€…Œ–ž”‰{~}‡‡‡Š‰–˜Ž‰„~y{}„…}z}{upt}ƒ†‹’“Žˆ†‚‰“™›ž£¦–•“‹‡‰‚}vwyrs€Šˆ‚‚…Š‹‰‚ujgijf`o|vpnhccejib]WMMMMSW\ababq†‰…ƒ†Ž•–›–——–‘Ž„~‚†‚{y€Ž‘”•—šŸœ•Œƒ~z|Œœ•…~›žš›žš–‘’•“މx}ˆšš‘•ž•ކ}upni`mumuumkifbbdfnssoklh^ajqvupolheitƒˆ˜˜¢­«©¤š”’Šˆ}kihijhhecfid[X_owpky‰Š‰…}z†ŠˆŒ•›™””‘Š~{z|€ƒ{pruvwyuvzussx}€€„‡ˆŠ—˜—œ£ª¬¨¦~qmnnx{usolg_\[UMIPUY_hppqtokv…ŒŽŒŒ‡€†‹‡€{rpv…“™–ŒŠŠ‡…}~~ƒ‘””—™’‰ˆŠ‰•—•‹~yzƒƒz‰‹“’ˆ†‹†‡Œ‡Š‡Š‘‘“’’‘‰zyƒ‡‡Ž†vlcbkovyvvtnf`bgiif^Y]cjqttrrpu{yz|„‹ˆ‰’ŒŒŠŠƒ}ˆ’’Š€|x{xmideddijfejqrpru{‚‰’™ £®µ²³®¨­³±­«§ž–˜£¨£¡¡›˜›Ž†}ƒ‚xl_YXbjhif_acejd]^_eltuqnjllfcefotrwˆŽŠ…~~ƒ‡ŠŒŽ‰…„Š‹‡…„}…ƒ}€ysmlouy~„†}{yy|€~†ŽŠ…ƒ„‡†‚‚€tnsvyti_^eosw~ƒ†}vx}„”•„ƒ†‡‰‰‰ŠŽ•—‹ŠŒ…ƒ…‡†|pmov€‡‰†€y~€‡ŽŽ…vstvw€†‚~vrw~„†ƒ‚€†ŽŒ—Ÿ£™Ž’š˜—”‡zolliqy}wsyƒ~yuwyw€‹‹‰‡†ƒ~||}}ŠŽŒ…zvxtmpw~‚€zywv|€}|ƒ†{tonlqw€†‰upprnjfccegkuƒ‡‚€‚†„…‹Ž—–ˆzuy|€||€ƒŽ—¡¦¡™Š†ˆ‰ˆ„|~ƒ……ƒ}wqiijnu~ˆŠ‚}|wvursz}|{‚‰‡€yxxy{z‚…Š‹…{vxvpllpvy~}{‚ˆ‰”˜¡Ÿœ—•›•’•™¢£—‘ˆ‡‡…†„€~|yuopojkkifjrngjkhfa[]]duƒ„ƒ{}†„ˆ‰†‰‰Šug^_hlnt{~€~z€ˆŒŒ‰†‚ˆ‡ƒ„ƒ‚…‡‡†…Š’••‘ŠŠŠ„zsspquwxywpoqvy{}{{ƒ€wu|€~|}‚ŠŽŠ‡‹“‹ƒ|€ƒ„ƒ„„~„†ŒŽŒ‡‚Œ”—“Œ‹†„‡…{vyyz|…‡‰‡ƒ…††ˆ†‡‡€~‚Œ”—ŒŽ“”“Ž„~tkgike\VOLMOTX\`defjt€…„‚€‚‡‘‘Œˆ‡†‡’‘–šœœœ—Œƒƒ…ƒ‚€xuw€€xuxz||yxz††ƒ„}z~†ŠŽ‰~wqsz~~ˆ‰€vsyyu}voqx‚…ˆ…~}{y‚˜žœ—””—› ¡£¥Ž€uqvvx}€}||{|…†‚|xz}}~~wpqrstsldaWU[blsrlmmmpvwvtferkg}†ƒ‘‡ƒˆ‰„ˆŽƒ{y†Ž–œ Ÿ“’˜™š’ŽŠ‰Œ”–ˆ…‡‰„€„ysqqokeellhjpwz~……‡ˆŠŽ”Ÿ¢œ—››„umnmiif]YY_dntrkjow{zxx{€‚‚‚‡‰‡ƒ‚ŒŒ…‚„€zytsw~„{zy|‚†’“‚wrnp€‰„€}z‚…€wx~zy~‚{otzzwtz‚Љ}‰…~†ˆ{sjmy‚Š›Ÿ—Ž–œŸžœ“‹‹…{tklrz‚ƒ…”Ÿ£ž“„‚›˜Œ‰‰‹Šƒƒ‰Ž‹‰‚z~„‰ƒ}}{xkfioy}y|„…‡‡€|{{z||vv{wuurv{}€~tkgd`ervtromrww|‰‘“’™™‘ˆ‰Œ‡‹Š‰˜œ—‡{~~{zunigknqxrmmikqmhnkcbYRPNRW^krw~€~{zxwv{}~ƒˆ‹…ƒˆ“›˜–•‘ŽŒŠ…‚‚†‹ŒŽ‘“‡|‰‰‹‹ƒwlkox}ywyxyww}{y|}yyxpr~|pheabkx†‹ŒŒ„€}yw‚Œ‹„€ˆ’™›Ÿ£œ˜™—Œ…‚yppz„…}rmlszyˆ†‚xkcaekijt{ƒ†ƒ|x€‚‰—¢¤ š™˜“–™›£¬«¡š•“‹‹“‘†††€wv|~„’ŽŒ‰tqmijlmggpw‚Š’™˜˜“ˆ‚‡ŒŒ€oeff^\]befks{wmmjijoqx‡‹†††ƒ†‹‹ƒ„‡‚|}€ƒ††ˆ‹‰|xvpoquzuojfcktxsher‰•ˆ‡€zxxphjnnqx‚Œš—‘‰Š•’‡‡‚tpvwnmomm{ŠŒˆ„Ї…yœž–Š~voou}‡Š„~}€|vnigjnryƒ‚xxz›¢¢˜’ŒŒŠŠ„‚„€|{€„‡‡‚}wmbdheeeedbbiopzŠ”––Ž˜¡¦¤›”ŠŽŒŽ†xwnluwvkkkgiflt|‘–—–Ž—šŸ¡—’‹š™“‹ˆ„„ƒ{|wkhnnjd^dgk€wju}•’•™œš¤¤§ “‡{yz~„„…Ž™—Œ‡†|y~ywndb`dace`]cjmvuz€ˆŒŽ––Ž€{~~yxpknlpy€~~zqgdmpnpu}|y{qt€…ŠŽ”‘’˜‹‹“‹…‰ƒwv{†””ˆvv‰‹„Š„}offfhhdfkjhjlnokr~~ƒˆŸ£ ž™žœ–™‘‰…Š’‰„ˆŒ‹ŠŒ…zpjoot‡†‚†Ž’’“ˆ~ty~‹‡€‚ˆˆ}~ytrnlqpkmkkife\TZcjknyyroljlnsyy}}yxxysos~Š’•“‘‰‰ŠŒŒ“ŒŒ““”™’‘‘ŠŒ•——”މ„†‰‚„ЋЂz{„‹“–‘†‚†‰‹ˆ†€{wqsr{rou{|z†‹Œ‘˜£’‘Œ‚~„‚{ynki][bkmlstwƒync\chdgq}†{€„Žˆ„„„urptw{{ƒ‰yplp‚…}‰‘ކrv†‹‰ŽŠ~z„‘—”Š„‰‰‡…}tplljmmrxvqmptv€„ƒ}oedjqvunlnsyz‚‡…ˆ…€}yupqu€}upllhfhluy~ƒŠˆŠ‹Š•£ª®««±¨žŸ¥ªª§˜‡€~{zzvwz…Œ†‹˜“””–‰ysu˜–…|tpopwxpmnoy€~qpsr{~womxˆ’›ž‘‡zjouw€€…ˆ‡††Ž’‘‘‹…yrvupfinhachhgfa[_ovut}ŠŒ‹ˆ}tz…Œ‰}•›–‹‹Ž“˜ž§¨ ›˜ˆ…ˆ‹zy{ƒ††ƒ{p`TX_jrnmdVTX[gidityqotƒ„†„„Žš•އ†’–•€zx{„‰’”˜”‹ŠŽ–šŒƒy{‚†‡~‚‰Š„{vvvutsrpvƒ†‰’މ„|uhkv}~}y|…ƒztuuy€ˆ’™œ™€wz{ysopwxunbbdb`\]gry{|~|vtvvuqhir~ŠŠuw€…‹””’šžžš—’ˆ…ŠŽŠ‰‘˜š•‰|xvt~‡‘‡„xv{|vsonlhhotpnhioqtxrt}{rv~‚‡‹ŒŠ‡ˆ†}€vtux†ˆ‰‰€{zu{ˆ—˜‘Œ‰‹Œ‰ƒ†‘„~|‚‰‘†„}|zƒ|{tiiffiklhhot……Š•–Ž…{vz~…zrrz~„ƒ}vqw‹”™“Ž˜™ƒss|Œ“‰€…‹‡ˆ‘˜—’’Žƒrfefehi_[k}‚|pix‚q‰¡¯œkv„‰yrˆ†xe_pxrnwzrw‰qmddhn~“І„ƒŠŠ…ƒ…€{†—™‘„„ƒ‰“—˜‘uonswƒƒ{}{vmit|ˆ‹…‡‡ŽŽˆ…‡““І}wuu€Š‹‡‡{~}|‚‚{}|utshaggb_`fccmnkhffgnsw}zy’š“ˆ‹‰ŒŽŠƒ|vv…ŒŠ–—˜”ŽŒ„€€„…„}|}…Ž“Œ‰‚ƒƒ€|vwx‚€„„ŠŠ€wwxx{}}zx~„‡Ž™™–‹Ž‹…ƒ~y|€‰…|xsuvy~‰‰xmgaYY_ak~ŠŒ‰…|j^`blnjlmsw|||xpsspsz}{sifkuwwnjoorv{„އˆ‡Š—©¨š‘ˆ‚„ƒ€‚}y{z|€‚ƒ…†ˆ‘˜•ŽŒ‘›¥¡—–˜‹‹‡…‚~~{€‚~z~ƒ…‡…wqpuy|ƒ…ŠŒ‘““šŸ¡™Œ“—ŒŒˆ‡Œz€€„…ssywˆ}snqzzxz}|wx~xx}vi``iox€ƒˆŒŠ†ƒ~vpruoihfimrupmimtrstomnsx{ƒ„†‹‹†‡ˆ…ƒ‚†„~{zz|{x‡ŠŽŠ‰‹ˆŽ…|y„“’ŠŽ”’Œ‰‹‹Œ†€ƒ„xv}~|zywz…†„†‚{uqy~€‡Š†‚~~…Š}rifnmkolnpoqsrr{˜‘‰‚vqvwyx|„‰“–”˜–“—•“—™–‘“‰}yuzyspqqosyxrry}€ƒ‡ƒyqic`ahnooquqmstsvz|wutyƒ‚~„‡†…{…ˆ‰Œ™ ¨¨¤£™“ŠŠ‚„…€€‚€……ƒ€zyzy‰‰ˆ‚~yvxwttuwz{rsrpuu}‰‹Œ‡‚„€€‚„†ŠˆˆŠˆˆ‰“•”’“•Œ“™—’‡zolnpvwv~„‡‰‰ƒ€€€€‚wsuyƒ‰‹Šˆ…‚…‰‡‚|}~ww€€„„†ˆƒ…ƒ…‹ƒ{wsw€‚zokpusmow||{smtzvhY]hkou}~}‚yswwpd]_i{‡ˆ‰‹ˆŠ†‡ŽŒ‡‰‘’“’Ž–š‘”•“Ž…‚‚‡ŽŒƒxttqmquqqz|€ŠŠˆ†‚smtrpz|y{z~ƒ„}vu{†‡†…~{}|wtrx|~‚‚ƒ…ŒŒˆˆƒ|ytsy‚„„…~~„‹‘‰ƒ|}‚†•™–”…€}}}y{yxxwyz~†Œ‹z~}xstyzz|‚†‹‘–“‘“‹„‡ƒyoov|ƒˆŠ‡€}ysuyvtv{zx{ˆ…„ˆ…„†Œ”˜œxrmjlsuuvyzwtvyvspjgkmorw|ƒƒŠŒ‰’—••Ž‡ŽŒ‰‡{wtwwnjdelu‚…‡†…„~~xustty…ˆ„‚{Ž‹‡ˆŽ‡|wxqd`bekssnfeimty€†€zwxz|}|{unquuz~‚‰Œ–š—›Ÿœœ•ˆ~z{}„„}wuz|~‚„„‚ˆ’’Œ†€xzzy||}vovz…Š…ˆŠŽ“…oa^bmu|zywqnov€‹‹‡†……˜˜”Šˆ‰…€€†ŒŽ‘‡ƒ„ŠŠŠ‹‡ˆ†}€ƒ~|~ƒŠ‹ˆ‰†‚…philnkousrqrx|‚”•“—™˜“‡‹“—”‰‰~‰—”‡‰€}~txwqsz€‚€wlggnt|~wtwxwz|usrsx{vqtz†‚yy}uow€}vlhlmjlt}‡„‚‡–œ‘–•“˜˜…†‰…†‡zulhuwyyvtr~„‚wu|~„‰Œ†„†……ulnx~}yuqw€{‡‹‰…†…‹Š‹Œ……”˜Œ{vq{}yyqjd^eihlp}‡ˆ…„†}~~{|ƒ}xЇ†ˆ…„~‚‹ˆƒvd`hqokm|‰”šŸŸž‘yr}~…“ŽŒŠƒ~tou…„‰Œƒ|xs{}ˆ‰†„€z„ŒŒ•‘‹ŠŠ”‘‹‡‡‡†tuvkirssytr|€}zvvwvvy{~„ˆ†yxtrwyyzvqnho|‰Ž„zyrosyunip|vy…—•’–‹Š˜¡–‘‰ˆ„€‡‰}{†‰‰ƒ{uxƒŒŽ…†‰€yw}€‚…ƒ€zxz€‡ˆŠ†„†sqljgca``_`jntyvxwrqpupcis{{xƒƒŽ¡­°®¦¤¤¥¤ž’ƒ{{{€‚„††ƒ†’œ ™–Œ€}~{vvuw~‚†Š‹‹…|rtvy~…‡…‡Šohlhlu{~{roooqow{~€ywvurqusjhlqwy|‚ˆ„ƒ…ƒ†”š‡‰ˆ‹†}ƒŽ“—•Šƒ‡„yppwwof`agsvtvuwwrkpusxz|}zx€†…ˆˆ‚†‡ˆ‹‚}tsvswtpux~ˆŠ†ƒ|rx…‰Š‰‚‚…tw€‚ˆ‹Ž“Ž“‘Ž…~xomifhju€††…„‰‡}oiow‚‰›š•’‘˜œ›¦¡Š‰‹‰††„widdmsvzxty…„yxuw‚{xwvvwrkmyˆ˜œ“jely€‰’“”—››˜—“ŒŒ‰†…ƒ~…‚}~tls}‚‡†€~€Š””‡ŠŽ‹Šƒzsrvsnv„‹Œ‹Š‡‚…‡‰€{sjlwvt‡ƒ|misxwrsy{€{wz||}}|{x{{v{…†|smnoqsvwpnnpt{|†Š|upljllow}ƒ„‰ŒŒ“™›„|z~|z|}€‡Ž†~zsqv}~‚€vrsoffn{‚{rwŠŠˆ˜”ˆƒzqkkignuqc[\]^]epwxxwu~‡€v‚’‘•˜‰‡”“™™Ž‡‰Ž‹Ž—™˜—•‘”’Œ„}€…ƒƒƒ„ƒ‚{|}yxuw{|z{€‚€†ƒ€}tpopw|€~rnotz|„€€~‚†ƒ€ƒ‚ƒ‡xvttˆ‹‹‰‡€†Š–Ÿ–‰|{‚z{v‹”™’ˆwv€‰‹‡|yyz}ŒŽ‹‰ƒxqpuwyzxokklnlfhnw~vzxv|‚„‹“ˆƒ~‚‰’‘™ž™ni|ŽŒwgejvƒ‹ˆzƒ€yz~um~Ž|qx‚‰‘‘†{vqt|€…‡Šˆ{pt…ˆˆ’Žƒ|{sjqy{yywttxytpx|yzwr|Ž‘”‘„wwwy}…‚{€€‚‡ˆ“–‰„tq|…Œ†rdbisssz€}ƒƒwy‹Ž‹ƒ„|miq}‡‡„„ƒƒƒƒ”£ ‚z’›—ŒŠ”Žˆ„vokw{us{wfg~Š|qz}obdlmt}|xuz‡vpflt{xwyysl}ƒ‹“‚xg`r•š›Ÿ—‚†Ž…v~ˆˆŠ’Œ‚Šˆ‡Œ‡ˆ‡sy„xz~‚†ƒ…}pqx€…€}uw|„~ˆŽŠˆyrx|…†€ts}zwtmmv‚†|zˆ…xx||snvwqidfjw„†„€x{ƒ„ƒ‚€ˆ’•˜—™›•’Œ‹Ž’“„xvuuus}|yz|€|vroomlmijqnfdhv‡”œœ›™‘‹‚}|tw{w{zz€‚}ywoktzzysopt|}ƒƒ‡ŒŠˆŽ“ˆ…ˆ‹ŠˆŒ‘••””uknqqrnikgn|€~„Œ‡‚…uvvtvx}~ytnpv{„Ž’‘Ž‘†„„|wpmnpruuz}}tmryroqyƒ‡††‡‚ƒ„Ž›Ÿ™”Ž„}€‚„‚|ytsqnnty{{wosxlhmnpw|}xtpkprry}}}€‹‘‘šŸ™–•„{wy€~xzz|{yztnp}„‚†„ƒ‡Š‘›—’‹‹•’†‚„‚†’’““ŒŠŒ‹‡ƒ€{zyz‚€vmfddktt€Š‹‡€€€{wuuxxy€Š“•މ’Œ†zutplcdedlty‚„€~‚ƒ}y|}{}~ƒƒˆ‹ŽŒ‰…|uvwpoplhbcknr|ƒ~tt…„’‰„‚}xtw…Œ‰Œ‹‰‡{ƒƒ}~~~€ƒz|}y|ƒƒ{pmlpw†‚{w|~vqqy€¤¬«©£œ˜”—™–Ž……„„‡†€‚†Œ”–Ž„ƒ~xz|}}||~}xy~zwwy}~|~}vvwvvz{yummry‡Šztrqqpwƒ…ƒ„‡~l^^cgos‹†€ƒˆ„‚…„„‚}|„Ž’ŽŽ‰ƒ‡‹„}|‚„‰“ˆ|}‡„‚{uwЉ‘‹‰…Œ‹ˆ†~okf__iy‚ƒ„‡…zvwyˆ–•Œ‰‰…z~ˆ‰‚zwtortpryztqssw~{nddo{~†…}trpuuj†€{wtpsty€‡Œ‘–•’ƒtpuysuts|…„‚„„ƒ‚…ƒuosuuuv„•Š•˜ˆ{„ƒ–™–‡•”š–’šŸ¡Ÿ¥¥–‰ƒ‚‚}yqrywu{†‹“‹ƒ…Œƒyomqust}ve_^goptqkghtwrla`db`fnru~ƒ‚ƒ‚‰’‘•™“ŒŽ‹‡‡‹„€}z{}€~‚„„…‚Š’•›žš”ˆ€}€~…ƒxt‚}{|{xx|ynjkdWRZcgd_\]bbeightuv|~~|z}€|z~ˆ‘‘…|{†•‹Œ†‚}x|‚€yuuzˆ’†{xwuŠŒ€qq{}yu{“…€…‚{rjnuv}†‡tbc€˜š~uw„Ž…wmlr{…‰†ƒ‚ƒŠ– § •Ž“ž¢¦­«¦Ÿ—‹ƒz|‚Žœ¦§¢ž–”އ‹ˆ€y|‚ƒ€|{yyuqoknrlecabbflknqoopliglj``dowyussqu~„‚„†‡‡…”˜›šŽ‹ƒp{zisymniac`gryƒ’š§­¢¡ Ÿž‘Š‹‰€{|z{zuvz{{z{yz…‡ŠŒ‰…}€ƒŽ–މ„~ƒ‚}||wljkgck{…Љ‡…„…‡‰‹†€|ursqprsv€†€y€„ƒ„‡†ƒ‡†„~zˆ“–’Œ„~†ŠŒŽŒ’’““Šƒ~uje]]hq{ˆ†ƒvwy|‚€~†‰‡‚wljs…‘އvoqy‚|zxrw{{~€~z‘ŠƒvbZkvwvrplms€„}vsx|Œš›–’š¥¡˜”Š…ˆ‹‡{tpx|y}znqrt€‹’’‹ˆˆ‡‰‹Š‡~~†‡„}tqtvrquuw}€~{wtx€‚€ƒƒ‚„ƒ„†ƒƒŠ‰~xz{tqspf`[bkmo~ˆ~|{tsrv„“Žˆ‡†…ƒ‚…ˆŒˆ‚…‹‹ˆ€wswz{zz~~|umu€„ƒƒ‹‡‡…ˆ‰~suvuzztmlmlnjdggbhsu{„ŠŠ‹‹Š†|{…‹Œ‹ˆ‡ˆ…ˆ‰‰ˆzutru}‚…ˆ„|x{€‚ƒ‡‹Ž–y~ƒ…‹”“ˆ…~‰Ž’’Š~wz‚†‚xou}‚‚†ˆ†…‡„……Љ‰‹Šyux~}xuy}{{x|}qowyy~spt}wruywz~ƒ†‡‡ŒŽ‘Ž’•”‡…‹‡~„„„ˆ…~vnwvxsqz€yskjoz„‡‡€Ž•Š‚~rt{€„ylmla\ablqgdhrwtwwx{‡——’’‘Œ‰Ž”›šysoq|„‰…~|xyz€vmffp„——™žš“އƒ‰˜•‡…ˆŠ‡€}„ƒ…‰ŒŒˆ„ƒ†ˆ‹•𣡙•ˆ~{{}pfcddjmfbVT]_adioxuihotuz„‡Ž•“‡†Œ‡…ƒŠŽ‹„xtrruvrpv}vvwz‚††ˆŠ†‚ˆ“šš—’Ž†}{}„‰‹„ƒ…†…~„‰ŠŽ„wrqnd_`ZWa\[elps|~}€ƒ‚„„‚„vqtyz‚Ž“‘’ŽŠ‹…ƒ…yww{„‡€ƒ„…••–™›š˜Ÿ£¡—‰Œ–žš‘”—•‘‹ˆxksy‚†ƒuifqwz€ypot{€}xoda^_a]eoojlr~†…ƒ|{{~…‡‡{‚…„}rsusv{yyƒ‹†|ty€€„…„}|ztnoqqrsvyƒˆŒ– ¡™˜•’››—”Œ†}|zwxxyy{ƒ‰’‹ˆƒ}z}|wrlklow}€ƒ„†ŒŽ‹…ƒƒ{y|{x|~|yrprtvwwvqpqry~‹’’“Œ’”ŽŠ‚}vppw{y|~|‚†„ƒ~zvy€†ŒŒŠ„…†€~€ƒ€{|ˆŠ‹ˆ‡‡…‹‡ƒ€}€‚}ww~~~‚€~y{}{€‡ƒ|}{xyyutwxuniiihfgmsuqtz|€€zu~ƒ…‡ˆ…ƒ„‡Š‹“މxurmlosyzxxzxsrpmhit|€†Ž“’‹ˆŠ“”•““’‘‹ƒ~wqnmqxyw~……ƒ†„ƒ‡ˆ……‰‰†~~{}ˆŒŽ“”‘’‰‰’‰xv}†Ž“˜‘‰‰„}zzxututlmkaafmruyyyxssrrvyzxtx|yz{vsqnppiddf`dgmrtsnw‚Š’•——•˜š–˜›™–““•”‘’’••“Œ†~~}ˆŠ„xsnmoptpmqttmjlgckuy€‡†…€zy|‚„…‡……‚ƒƒƒ………ƒˆ‹‹‹ˆ~z~„‚‡Š– š‹ƒ}~ƒ‡‰Š‹Šˆ†…‡ˆƒƒƒ†‰„~xqonlnmsy|}{yuusv{}|vw{z~}ttw‡‡|w|~ypkry~€‡ˆ„|qu€„…Œ‘Œƒ{tsx€~}|~~‚†‰‹‰„…”–Ž‚{|†‡|sprw{{xy{slrx‚tssy~}‚–™›’Œ““ˆtmqstrsqpv}~{|}{vuz€‚ƒ…‰‡~z{‰Šˆ†ˆŒŒ‡‚~}€ˆ‰‡†ƒƒƒŠ„‚„‡†…‰”“ŽŒ‘Š€|€zxxyysnmrpmnt|€~zwtnrvxvuxutz~~tvtjim€y|~…‡zkosw€›–ŒŽ—ŸŸš–“•“‚xx†‰€unnqrohdbdmrstv{ˆŒ‹‘Šˆ‡„{€†‰…€{vqnklmmrvuqtxxxwwtolklov{„‘‹‰‰Œ”žŸ˜““š˜•œ˜Œ‡ƒ~~~†‚€€{{|vsuwˆˆ†|xtmot~ˆˆ„wqqlhhilrutvx{~xz……€„‰†„ŠŽˆ|rpr{„…€ywv{ƒ~spnwˆŒ‚|{…†‹Ž“–”Žˆ†‰ˆˆ†€zsmlmopossv||zxwtsx|||…‰‰‹‹ŠŒ‘—Ÿ§«®¦™–“‘ˆ„y{|{ypkmhdejlehmrz~}yz{~…‰‰‚~zz~‰‘Œ‘“•—Ž}||ˆ‹ˆ„‚~xu}||‰’–‰ŠŒ‹€wuwtqopsx{yvqmllqutv{rnprvxwy‚ƒ€„‰Œ„{{ƒ‹’—œ–Š„|wvwvtvxtrrw}}{uptuyyz‡Œ‹„‚„‡ŽŠƒ‚‚ƒ}vmihkvƒ†‡ƒ€„…†…†††ˆ†Š‡…†ƒz|„‡ˆ„xlhkw}xx{‡Œ’—› ™™š˜¡¢ž›˜’ŒŒ‹‹†~ulks{~~voqtttx}‚€wvyyyvvvvutwqlrs€Šˆ…{skjkry}„€}}|}xpty{{x|‚‰•“މ‰Ž‘‘Œˆ€}~{x{zuqpqt|‚‚{vvxyvnfcflrx~€€‚ƒ…‰ŠŠ‰ƒ}xqpx{€‹’“‹…‡‚x~Œ‘’‘Š„„…ŠŒŠŠˆˆ‡‚y}Œ‰…ƒƒ†Ž‰€~~}vttuxrsvvvxxy}{{‚ŠŠ‡Š‚††y||~ˆˆ„~vpmotwvwwob[dmwƒ…†ƒ„„„ˆ…ƒ†„…†‚€|ƒ‚‚€ƒ€‚~„}tx|„‡„…ˆŠ‹‰ƒƒ‰”™––ššˆ‚€‚€{wz~€|y‚€zqifinojgdegimmlllmu‡…‚†Ž–œ‘‹ŽŽ‡ˆŠˆ‰’“ŒŽŽŠ}ut~ˆŠ’’’ˆ~x~…‰Š„€zrmmjkmms{„Š‹ˆ††‡†€uopprvtqststy{vw|~ƒŠ‘—•Œ††…‚…„€}|}~…ˆ‰‰yvwuwƒ‰ŽŒŠ‰‡‡‹•˜’އƒ„‚‰‰†‰‰…zvz€„wnhjmklpkddklt€}sqŠŠ‰ƒ|y…„‚zsux}‚~€ƒzƒ‚‚‚€}{|‚“‘’—“ŽŽŠˆ„|}zv{€‚‚ƒ‚|sljklp|†yx|~€‡‡‰Š„ƒ}zxnfhfjw}y‡Œ‡‘‘Œ‹‹†ƒ…ŠŽ‡{€€†…‚‡†zkkhXPQU^hptonljnquspsvŠzxu€‹‹Œ‡‡“ž£ ™“Š‚ƒ…‹‘‡~x}|yƒ‹Ž‰‡~z‚Š“’•›œž Ÿ›žœ‘…yturpsndginppsqnmjmor~‚‚‚~€‚}vpomkkinpmpsnmry~{v|„†„‚‚„†‚{|ƒ†‡ˆ‚‚…„‚}}ˆ’“‰xuwy|€zutv~‚ˆ‹‹„†„…Œ’ޑކЂ„„‡Ž’’‰„‡‰Œ’–™›ŸŸ‘uquwx{}|€††„ƒ‚‡ˆ…}|}yz{zzz~€~~{xuspjid_dnrmnu}…‰Œ’–””—Š“”™¡¢ŸŸ˜”Œ…ƒvbUWTPRSX^_bfhmmljhdbht}†…€€ƒ„‚~…ˆ‰‹Ž•••–Š€yrtw{||‡’—˜˜œžŸ˜‹€…‡†ˆˆ…ƒ†‰†{riflu†Ž’މƒ|{{|{xvqkjmoqu€Š‹‡|vtqijtw~xs|‚…ŠŠˆ„€„‡‡†ƒ€}w|€‚…†€zzŠŒ–ƒ€}vx€ƒ‚…‚zvuqqy„‹‘𗉂vpuz~†“”ˆ~uqtqnmnpux{{~…}ywxqpsvzƒ{zˆŒ‡€€†ƒ}zwz}ƒƒ‚zusoqvuuwxƒˆ‹ˆ‚||‚…|shdjr{€„‰ƒ€|vy~{xyxy}‚†‡ˆŒ’™™—™”‘Œ‰…†‹Œ„‚‰ˆ~}~~~€„‹’“—˜”ŽŒ“‘ŽŠŠŒˆ‚}|xwrqtpkjmmjllqtjedcfjhiilv|xzztuvsvzw{‚…€ƒ‚~xmwˆzrwyƒtyŒœ™Š–‘ƒ{‚}~|~€„‰‡ˆ‹Š‰ˆ’ˆ‚€~uq{ƒ‰Œ†…ˆ„{x{€„‡‡ƒƒ€ƒ„†€~€€€}|‚‡‹‰‚†‚~|vy€zi_akr}€€wskbfgefpz}ƒ‹‘‘ˆ„„††…‡Šˆˆ†€~yuuyz~~wpnpnr~„‰…}xutsw‚‰‰‰†ŠŽ‰‰†yxx|~|„“ž¢££¢¢˜Š„‡Ž’…‚wsuuy‰‡{‚m`dnv{yxwfWVZbq~ƒ‚}yxwx…‰Š†„ƒ„„„Œ’““””Š…ƒ…ƒxy~yz‚ˆ…|||uv…‚}wxy{€||yty|ŠŽ‡€z€|€{yulgmwz{~…Š…}„ƒ‚Š–™•„ƒ‰‹}€xx‚‡Žƒ€„~no{†‹‡~{vvtps{~„‹‹‰‰„€{x|~~‰ŒŠˆ…~wvoiq{ƒ…}v|‚}wtw~‚}|xx{|ywwuupot}ƒ„˜•’™ƒ}}qpƒ‰‚uy„„~|yroqnmu…Œ‹ˆ‡ˆ‚ƒ‹ŽŽˆŠ‹ŽŒ…‡…„‡†‡ˆƒ}{{uwzuyvtsnjfl~††‰‡‚y}ywnfjo|„‘™–‡‚‚€ƒ†}|zvvwzz‚}xtw|€‰’™–‰yz‚‚…ŒŽŠ…‚}}‚€€‚†ˆ}vtxxprv}ˆŒ†{vtx„Œ‘‘“•Œ†~wtqw{}€ƒ…{wx„‡vqnv|yrosuz„‰‡ƒ{{„‹“Ž†ŠŠ‰ˆ‰wvwŠŽ‹‰‰ƒ€†€vrmlryz{xuu{€~}}ysrx{rliippozy|‰–—šœ“†}ˆ”•Š€yw}…~vpnv€ŠŠurnqƒ••†„ˆ‰‹Š‰™šƒ‚|w|„€uuˆŽˆ}xy{w{zyzpgkpptyxuroks|ƒwx}…„‹ˆy„‡€~|{y€‚„…‚†…~~}{†‘’Œ‹ŒŠŠŠŠŒŽˆƒ~wuxwogb[]hnqlow}†Œ’Š…Š‹‰ƒ~‚Ї€|‚~z{yrouz~}y|xpnrwxuv†|z{€Š‰‚}‚†‹Œ‘މ|wsmkkt~…}zx~{~~{|}|xz‰‹…†‹‘˜š›”ŽŒŽ‹†„ƒƒ„ƒ|w|yts{‚~xqpnptl_^eq~}xw|‡ŒŽ‹ˆ‚yplnv|{|†Ž–”‹€~„“”–”‘‘•”•™˜•Žƒzvyyvux‚„…„{vnhlortqpqqv~‡ŽŽŽ““‘Ž‹Œ„€|wvw|~~}zurrnfmv…}yw{€†“”‘Ї…‚‚~|uvwvsmlpvvpnqx{|}|ƒ‚‚‰Š‚€€~{{||}|‚|tpljilx~|{{~†–””¥«ª¤š•‘Š~†Ž…}…‹„~ƒˆ€~‚zmggigfpy„Š„ƒˆŽ—˜‡ˆˆƒƒ…ƒzzsltyxqnqtuslgdgo|ˆŒŒŒ‡‚}ƒ…€wuyyw|{tt}xrt{xijosurˆˆŽŒŠ~yy{{y€‚†‰„†Š‹‹˜•މˆvuonz~‚‚z|†Œ‚‡ˆ‡‡~|xy}€…‚€€…ŠŠŠŠŠƒˆˆŒŒ‰{unlpsutz}€„ŠŠˆ„||}{rkfbq{z‚ƒywtu}††‹’Ž„yuyvwz|€€…ŒƒƒˆŠ„„€~„†„yrv~‡‡ƒƒ~}ytqttttt~Š‘’Š‚yuuz‚„†~vv{ƒƒƒ~€‚‚„…€†vpptyxyyvwrswv{†’•‘ŽŠxu|‡‹Œ’””–™’„€€ˆ•›–ŽŠ‹Šˆ…ƒ{xtqwxx}xwvtxz}€~smv‚‡†‡Š‰ƒ}zwsqtqkrvuv|ƒ„~wuvtu|ƒƒ…ˆ†~|}|{zƒ||}xvtpliddoxwpjfjqvy{}y{…‚€„Љ‰Ž‘ŽŽ“•““•‘†€|vqorx~‚–…ƒˆ„…Œ††‹ŽŠ‰Œ‘••’ŠŒŠŠ”‹ŒŒ†|wtoqpmnuz{wtw{zvnmpjglkht€€|ƒ†zw~wv~vq~„ƒ„„‚{{…†}stupw{zzxtrtz}zwvusvuz„†‚†ƒ€€|y€ŠŠ‰ŒŽŽ‰…ˆŽ’’މ…†…„ƒ~}~{zwspr{‡~€‚…Љ€{y}~|}€‚…ˆ†ƒ…‚ƒ‡‹‹…}{{xz{{|wvz|y{ƒ‘‹ˆˆƒƒ„‚†ƒƒˆ‹Š‰Ž™—ˆ‚€vopqmlpmtulfbihhnpnmprvqpv{ƒˆŽŽ’—œ›š—Šƒ‡„…†„„€||‚…†’•“ˆ‡†€}xuqnqtqighecfkorvvuuu‰…‚…Ž“”“‡„~‚†Œ‡ƒ‚ƒ……ƒ‚ƒ††…‡†}vy~~|…|}„†ŠŽ‹Ž”š™—™—–”–˜œ›–‘‡…ƒ„xussv{}ƒ†{yuv~}wux}xrohfedhhknorsspmjiotuww|„ƒ}wzƒ…ˆ‰‰‡‡ˆˆ‰Ž“”•˜›’†ƒ|ty€ƒ‰†~‚‚}ƒ†}yyz{yqkptrntzz|{yxy~…Šˆ„„~mfb]`do{~{|yqko}†ŠŒ‹Ž”––”‘‘‰‰’””™–“ˆ~yusw€ƒƒ‚~€~~|z}€‚~‚||‚‚}wz‚Œ‹‡ŠˆˆŠŠŒˆ€|{~wigedmvrmmlnnigimryxrssrsv|€€‚‡‰Š‹ƒ}~…ŽŠ‰††ŽŽŒŒ†“”••’ŽŠ{‡‹Š‹ŒŠ…}xx{}~~~z~ˆ’”‘‹‹ˆŠŠ‡‡~‚ƒ„ˆ†||ƒ‰Šƒyuv}‰‰{yy|}}„‡„ƒ†Œ‰‚~~~}xtqiejheeeku~„ˆŠ‡‚|~}|~yutvpjnpvxwuoknsy}€yrqstvz{|~‚ƒ}z~|~ƒƒ…‡•‘Ž–•“——–”’ˆƒ‚„ƒ}wuuvwwwyuu„†…‡~{yqwx{†ˆ„ƒ‡‚}|vzz~„†‡‰†„‡ˆ‰ŠŠ‡‚€„‰Œˆ|ysonllpw‚…€{~…™š’‘ŽŠ††‚€‡Š…€{€‡ƒ€ƒ|z}~xvywvxzvnv…І€vqq{€………ƒ|x~~{zxwvtswzymgglutslloqy€~~|}~{zxy‚ˆ‹ŽŒ‡‚~v~Š‹ƒ||}|{xqouy}z|‚ƒzxwx|}}{tquz‚ŽŒ„yuruz|~„’Ž“™œ–’›Ÿœ“„||€wrv€Œ”‘‰ˆŽŽŒŒ‹Œ‰‚ztsyƒƒ~snou€ˆŠ„||„‹‰‹‡‚‚…ˆ‰ˆƒ‚ƒ‚ƒ‚{sqpnpz‚‡‹…wu{||x|‚{pnux}|vy~{xx}„†ˆƒzy}}|€}ƒ‚ƒ‡‰…ƒŠŽ…}wrpmqrx}…‚xx}}ƒ……†„€€„‡‰‡ƒ‚ƒ„‚…ƒ‡‹€xx}€{w~zs{ƒ|‚‰Š†yummz‚„ƒ„€~wx„€|{xty€„††††ƒˆŠ…}utxz}ƒŠ‹…|{{||vy|wx‡†„…Œ‘‘Œ‹ƒ{uphadedeihbb_]`epˆ…‡…„Š™›Œ‚|xz‚„ulqqnox„ŒŒŽ“”™ §¦¢¢¡˜Ž†‚ƒ…ŠŒ‹ˆ‡‰ˆ€}†Š†ˆŽ‘’Ž„~{yv}……|}|vrpjeb][_ktnmtxz|…‰Œ‘ŽŠ‚~~|{zyz|uqpt|ytsx|xzŠ‚|}}„zsw~„ŠŽ“Šzr{‚†Ž‹‡}~{„†Š„…€}~}ƒŠ‹‹„~…‡…zz}€…‰Š†‚~qs{z{y|„ƒƒŽ••—•‘ŽŠ‡ˆ†……‡Œ…‚‡ƒyy~„†€|qjfgkuvt€‡†‹‰zw{wssqkjmpuwty~ytssstywrvsohcfipuz~ƒ„‚ƒ†‡ˆ–œœ˜‘Œ‘ˆsry~ƒ€ˆ‹„„„ˆ„~€~€‚„††‚€€ƒ†ƒzusvrlsxxuquywsptz{~…ˆŠ…ƒ‚~~z|†‰‰ŽŒ‰‰‘‘Šˆ|ƒ„ƒ„ˆ…†‰‡‰ˆ}qlqutuvuvsnlr~…‰‰‡„€xutrx}zz}zvy†‹‹ˆ…}‚†‡ˆŠˆ„zsopqquy~€€€„„€€}wvzˆ‰…„„€yprxzvx|xz€€€~tqtsv}|~ƒ€‚„‚~ƒ‹ƒ~~~‚€‡‹‹…~}yw{€ƒ„†……Ž’”—•‘‹‡ˆ†‚{xz}…Ž‘†~xrnou€{tvwtusqmt„‘˜›ž˜Š{mhlni_YW[elruplw}{xlmtvƒ•…‡zw€†Š•Ÿš‘‘——“–ž¥¡”‹Š’š˜’‹‡‹“™‘€{‚…ЋЉŒ‚x{~‚yx~”“…zyvsr|‚‚~ƒ‚ƒ‚~wz~}~z{|z€†‰‰†‡‡ƒ†‡†‡‚vsz}{xtspquupnprtqruvyvsrx}||}|wpz~y}€}||xy}{ƒ~~|}‚}{zv’ £ ˜‹Œ„ujb_gjuzonojiqy‚‰‹’•†€}ttsy||zt„~Œ€ˆŠ†Œƒ†€x‚|ƒ|€…‰Ž|„ˆŽ˜™’“‘Œ’’——“ˆ…€zsrw{~yrnir{‚‰‚~zzz~€}xvy{zttvsu{„€|zvzynkkmsrs|{wpp{†‰‰Šˆ†ˆ‹ŽŽ‰††„…—–““ŠŒƒ‹‹‘”‘“‘Œ‰‡„†€…‡€ƒ~y{~~€†…|ywrqrlea^^`efca\^ac`gmotsrvu|†…~€…“›˜•‘‘ŽŽ‘–˜–“’–”’”“‹ƒyyy~…€{vssrqns{…‡‡„‚„ƒ~‚„ˆŒŽ…wqqoqz‚‰ŒŒ‹‹“‘Ž„}}{~}}}{wutptsnliowyzƒ†„„…€~„ˆ‹‰„{pnrz†‘…‚‡†‡„ƒ„}x|~ƒ€|{|~|unpv}~xwvuxvvvv}~ƒƒ€„Љzustrlgiqy}}}|{yz}†ˆ„}z}}€~€„„„‚‚†ŠŽŽŒŒˆ……€}yvssspoqtxyyzz~‚~}„ˆš ™ˆ}ƒŠ„€|urroqutv{‚ˆŠ‘”‘‘Ї†…„„ƒƒ„ƒ€xvwwy}}{{wtuwwyƒ€wtqnrzŠŒŒŽŒ”˜–Œˆƒ~~}xsokjjospqsx}|wsu{€…‰Š‰ˆ‰…†ˆˆ…ƒƒ‡‡ƒƒ€‡Š…ˆŠˆ‰Š„‚…uohfkkcdlquxy{|}€„‰‹ƒz}~ƒ’ŽŠ†ƒ…‹ŠŠ‰…„€||‚{usx|zywvvwrotŠŽŽ‰‚{~€}}€„‡‡‡†vv|†„ƒ„††€}~‚„„†„‰••‹ˆ‚}}}ztpnswxzvwspppvvz|‚……‚„’—žœ¦¡œ‹ŠŒ‹Š‰‡ƒzz~|tg_bidZYakpooqvyxwx~‚„‚€~|}…†‡‰‡„ƒ‚ˆ”—…~‚‚ƒ€€„‡‡‹Ž‰ƒƒ…ƒ„Š‘—”ކ‚……„ƒƒ„…„‚~ywrlgafmqw|€€{zyx{€ƒ„ˆˆ‹Ž‰ƒƒ€€€‚‚€€}}}|{zxolptz‰†}|ywuy~yxyz}}yuxxz|‚ˆ„€…‰‰Š‹Œ‰„~{„†ˆ‰…}x{zsqs}~|yzŒ“•‘‘ˆ‚{{yvxyz|zyy|€‡zqxzpn€ˆ„ˆ‹‡…‰‘’ˆƒ‚‚zyvmllu…ˆƒ…ƒ}y~…‰‹Š‰‹‘Œ‰‚‚vuyw{}}‚„‡…yvvvw|„І{svz†ˆŠŒ‰€trory||~}}}‚†~~|wz„~yssx|ƒ€…†„}{„‰ˆ‹‡†‹ŽŠ‡„†‹ˆ‹‰„€vnnhhplmgcklxˆ‰Š…}xspmqwx~„†‡zprsuw€Š‰††{‚Š‹ˆŠŒŒ“•”Œz~††€{{}€ƒ„‚|†ˆŽ‘””‘‰ˆŒ‹‡…‚ƒ‡†~€€†…}ytu{ƒ‹†€zvy„Š‚~€ƒ‚ztrw€€}{y{}„‡}}‚ƒ„‚xv~}{|yspmgkuwvqx€ƒ}„„„…{vvsrxyy~€zƒ„‡†‰†‰Š‚‚~€‚}zv|xtuutstqtvvzz|€…†„ƒ„‡‡‚~z~|xtnttpnkw„ŠŠ‰‰‡‚||€|y}ƒŒ‘•Š„……}}…†‡Ž’•˜‘ŠŽ‡|€„€ˆŒ…~zvtolhkpv}€„ŠŽ‹Œ’Ї‡…ƒƒ…Š‹…}tjhjfdgjjorrsv|ynlnry‚€ƒ‚}y|‚ŠŒ†x}†ˆ„“‡’•ŒŒ‰„pu|rtxro|zyz|†„ƒ~{xuvy{~„ˆˆ†„‚ƒ€{vty„ˆŠ‰}€~…Љ‡„|z}}}€„…‰Œ‡„ƒ}}~ƒ„ƒ}wux~‡’‰ˆ‡‚‚…Š“’’’‹‡‰‡‡‰‚xqryxy~}rmmoqv€‚ƒ†yz}zvposu{€‚‚|wwsssrw{~|~zxus|‚‚…†‡Š‹ˆ€}{usw{€„…‚}yz‚’Œ‹ˆ‚}}{|‡ŽŽŒŠŒ†}{…‰ˆƒ‚…†‡‰‰„„‡‡‚}zz{z{~||~}{xtsurptwz|}}‚€~~~‚……‚{wuvy|€ƒ‚ƒ€|vuv{ƒ†ˆ‡…{~€‚…††ˆ„~yyz}‚ƒ†……„|snlpttrrtvutx|…‰Œ‹Œ‰ˆŒŠ‰ˆ…‚ƒ„ƒ‚ƒƒ{y|€‚‚‚€ƒˆ„‚„„€}|xvxy}€‚‡ŠŒ†…ƒu}ŽŠ…€zvvzqmqv~€zvvx€„‡ƒ|xtsy€…Љ„€}z†…zlecfp{~||z{€…‚‚ˆ‹‘“‹ˆ…‚‚ƒ€ˆŠŠŠƒ‡‹vn€ƒ‰ˆ‚~„†~~xy{vvuwƒzsuz|{uv|‚‚„‰‡‰‰Œ„}trwyxvv|‚„‹Ž‘ŽŠˆƒ…ˆ‡ƒ}|{wxwxyw{‚ƒƒ†„‡‰‚||„„„Œ’““”—‚…ŽŽ‰…~~xuw|{y|€{vuroinwngkjecisz‚„‡‰}z}}‚ˆ“•ŽŒ…~ƒ„ƒ‚†Ž‹ˆƒ‚~‚…‰†~„ƒ€€~{yursrpnnmnryzsqu|‚‡Œ‰†…„}wtrslfgltuy{ywvz~…†‡ˆ‚{wx~ŠŒ…yx~‚†‹‹ŒŠŒ‹Ž–•”†††‚~~€…„zz~‚‡Š…{}~Š“‘ŒŒŽŠ…€€‚ˆŽˆ~tkd`_abfklmosx€„€€ƒ‰‘“––’Ž‹ˆˆ…~ƒ„ˆˆ‡‡{wqrwvtuxwsqrsrruuvyzzxrppw|{vuqoux}„ŠŒŽ‹‰ŠŒ‹Œ‰…ƒƒ‰‰‰‹†{vuurswxttsnnplqyxzxsx„‰††„‡•–’Œ‹ŽŒ‹Šˆ‰ˆˆƒ~zx}}}yurjhjmqstusko{|yyw|……†ˆ…‚‹Š‘ˆ„„‡‹‰…„‡‰„‡Œˆ†€}‚…‚|tlknqop|‚ƒ‚ˆ“‘‘Š…‚…‚ƒ†‚‚‚ƒ„‚ƒ€{x~}uyxtog^`moihg_\^alv}ƒ†~w{‚‡‹‘‡…†Š‹‡Šˆ…†ƒ}}ƒ„††ˆŠ‹“”Œ‚„†ƒˆ‹Šˆ‰’𙕕—•“Ž||zwtpjjmnmmkmu}‚ƒ†ˆ„{}ƒƒujopndfjejmrru|zyz~€‚‚…‡ƒ€zz‚ƒ‚€…ˆ‡‰ŒŽŠ†‰‹‰‡}†‡‰‹Š…„‡Š’˜—‰|}ƒ…€~‚‰‘ƒ~€}xvx|€…}phafmsy€Š‹†ˆ”–†|vvwtrpt{ƒƒ€‡ˆ‚yuuuutqmkim|}y{yy}€€~€„‚ƒ‰†ŠŒ‡‹ˆ‚yy€~‚‚‚•’‹ˆ‰ˆˆ†„‡‡ˆyxtpqrsx~…ŠŠŠˆŠŒƒ}ƒ‰‡‹’™xsw|||ƒ‚ƒ€…€xxttz~}‡ŽŠ‹‰vuvstrprip|vrkourt€Šu~znwyy{uqqojuwidhotv{„‹“’™—‰}}{€|€wu|~vu||~‡ŽŒ…„†„ƒƒ†z~‰‰‰ŒŽŽŽŠ‡‰ˆ…ƒ‚ƒˆ‚~}}yuwwtspry~}z}}}ytpu€~}~{zyxz|z{}~€€ƒ†…†‚yvyzwxwy~}ywwwy|{{‚…‡‡‚~„‡„„Љ‚‚†‡„ƒ„|}ƒ„‚ƒ„{~†Š‰Š’•“Žˆ‚|}„ƒƒ…†…€€…‰‹ŽŒ„zx|ƒ‰ŠŠ†}}xqqsvvsttojinqu|~}}ƒ…ŠŠ†ƒ†‰†„‡—››–‡‰ˆ€zxtrpsx…ˆ‹‰ƒ}yyzz{x{‚Љ‚}uqu~…Œ‹ƒ{wz}yx}„‘™”ˆ„ƒ„zootz€„‚ztpnkjr}‰Œ‡}yrfeow‚‚}{~{wrz…‘Ÿœ’ˆyoc^eny‡Ž–š—†zxurv€Œ‘–”‹…„ˆ†‚„‡†Ž——”Œ†|vru‡†‰ˆ‚€~siighr~†ˆ~trsy„‰’—’ˆ€zrp€…„‹ŒŠ„}~{ww‰Šwrplmprtw{€‚€€„‡ˆ‰ŒŒ‘‰„ƒ‰Š†…†„ƒ‚~|yvsqtz€……{xwvyƒ„ƒ„‚yx|~€„ˆ‰ŠŠŠ†}vrpicgmhfimvxwxwrmiikqyx{†‰‹ŒŽ‘“’Œ„€yty|}{zzytu}|}{z}ƒ‹Œ†…ˆ„ˆ‘’‘••˜–‘‹…„}wy…‡†ˆŠŽ’‹ŒŠƒƒ††…xrrvx}|}{wtqr{}wxwssvrnr{…‰‰ˆ†ƒwoomnprsty„‡‰‹…†ŠŽŒŠŒ‡}usttsrrrx{vw|~…‹Œ‹‰ƒƒŠŒ‘‡|usuwusoquy{vv|‚…‚‚~ŠŒŒŠ‰‡ˆ‡|||€„‡Œ‰‡‡€}|„†ƒ|wv„†}~€}xrkmuxvx}€~||soliimrututnpsu{…†„~usv{„…Ž™š—Œ‘’”𛓋‰Š‡„}{xx{}{‰†‚„€z|~voprx}zx{|vsqqsy}zyurstx}€ƒˆŒ’Œ‰‡ƒ†‰‡…†…}xuvy|zz}‚ƒ~{ytmow€ƒƒƒ‚…ŠŽ’—›™’ЉŒ’“‹|qfciqtmsyx}|y}}tmprlmv|{uqs}‡‡‡‰”’Š€}{{wuru{qprmnppuz~€„…|x|…Œ”š”ŒŽ‹ƒ~{~‡Œ‰|ƒ‡‡’“‘ŒˆŒ—  •ˆ„…‡Œƒ„“‰~~snsmozshd_bhiijloqxndiknux{ƒ‚‡Ž“Ž•—“Œ…|ysty|…€{~‰•𛕇‚|trr}„†‰Š‡}€zopz„vopzƒxpqw{{uljqz}zzxpktˆŠ‹Ž‹ƒwnjlu}‚ynmnrw{wqs|‚yx{}ƒ†y|†Š‹‰ƒ~{|‚†††‚}†Ž•› ž›ž¢¡¢¥£™‹„‡‹Ž‰€}|‚{w}„ˆutokh^aky~tqpox‚‚‚ƒ…‡‡„‡‹~rkkquz~€ƒ‚~|‚†…€{tqttvzxvz}zvttvsmmnr}„‰‹”“Їˆ‡‚|{zy{{x…‰ŒŠŒŒŒŠ‘Œ†‚|z}{yvqmjfgu~ƒ€|xyƒ‡Š“•“†€|zz|‚‚€~|{~„ˆ‹Œ…„…„‰‡zy|€}utz€€~~€~~‚†ƒ„…„„ˆŒ‡~vw|„„ƒ}yz|€„ˆ‹’‘ŽŽ†~x|…Œ‹zvtvw|€|vpllnpw€ƒxtpnookjlqvsrttqssqtvtt{„„‚ƒ‰’““”—–“Œˆ„ƒƒ…„€{zyyxuv~„„‰Œ“–”‘“”•–•”‹„€zwz~‚„…†~||xsoostomijpu{‚‚ƒƒ~z{„…‚~zvxpfhkmkjlgbbckryzrjjpvrtzy}‡ŽŽ”™¡£¡¤§©¥š”•‘‹‰Š‹‚yontwy~‚}{zy{zxxstw|‡Žˆ„€}‚‡„€~|~€|xxxwxyyvvvuz…Ž–Ÿ¥¦£ œ“†~}xnegnvyyume`bfgecfdZSRZb`huŠ‹‘—‹’‘‰Œ˜––™˜•’Œ‹Š‰‹Š‡†‡ƒ…ˆ‰ŒŠ‰ŠŒŒ†~xusvvrjir~†…ˆ‹Š‹Œ‹Œ„|xx{‚ƒ€ƒ‡ƒ|w~…Š‘”‘ˆ~€}}}}{yxvux|€{{xvsu‰‘•š“ulmqrpnlpy€‚~yrlggv…‰„ys{†Š†yvvvw|†Œ‰‰Œ‚vruxusuvx}€€|vx~ƒ‡‹‹ˆŒ‡€~|wrrvyyttwwv{ƒ„ƒ„‚}‚‚„…ƒ~smnqsvwtv|„‰†„„„ƒ}ƒ…ƒ~~€€€‡’•™˜”’Ž‘’‡}†ˆ‚‚ƒˆˆ‰‹Ž‡ƒ~|y}~~zvqt||vpklnrtv{xrpolieflqps~„……usttz€ƒ„}xvutytimv|‰~‡ˆŠˆˆ‡ˆ‡ƒ}tu…„~|{|}€€†…~}…ŒŽŽ‹ˆ†‡†€„‹‡ˆ‹”—˜”І‡Š‰„~tt}{z{|~€ƒ„{tsrsx|~‚zx{€€xqrx}}~€}~€‚z{{{z|„‰‹‘Œ‰‡‡‚€{|~}{|}wrqnlkntz…†„„†„†ˆ…†ŠŒ‹‰„}xy{|}}zytpqsx}…‰ŠŠˆ†ƒyxz{‰ŒŒŠ‹‹ˆ‹‘“’‘Œ‡„€yy€}xwtv~€yxz{}€ƒ…‡‰†‚{z|wtswyyyxz~~~~~|ƒ…ˆ„€}wuwxw{ƒ†‡ƒypjjr{€~z{|}{wxx}|tpppty‚~{||„ˆˆ‰‹‡€zvy}~~{xtu‰‘˜™˜—‘ЉˆŒ‘”‘Ž…x{…ˆˆ„‚…†…}vtvtvuu€‰’Œˆ„‚‚€~}|wurqsx{tjrzzz{~ynpnckqnr}€‚~xx„„ƒvptzƒ†ˆ€…Œˆ€ƒ„…€{xwuru{|ƒ‹Œ‹ŽŽŽ’‘‘‹…ƒ~}|xvuspouxy|…„‚}{{~~„ˆ…†‰‡‚~}}{‚ˆŒˆˆŒ‘Žˆƒƒ…‡„€€||{zxutv}}~‚‚€€€‚……ƒ„ƒ€‚……€€‚{tw|umosrsx€„‡‰‡„€ƒˆŽŒ…‚‚€|zy}‚†‡‡†‚~}zx}ƒ‚|xy{}€ƒ„€|z{~„wrprt|~z}‚„†‚{xx|ƒ…ƒ~{zv{ƒƒ‚~}~ƒƒ€…‡ˆŠ‹‹‡‚†‰‡xxz}„ƒ†ŠŽŽ‡…†ˆ†ƒ~yzxzzw|„…€}€€|}wuuroporrou}‚†ˆŠˆƒ~††‡…‚zw|}~‚‚€‚ˆˆ‡†„‡†ƒzwv{ƒ…‚€zxxwtoljlrz}{{}}zz{xvwxz}†‰‰ˆ…‡‰ˆŠŒŒ‹‹”™™˜’‰„€„†ƒ‚€~€‚ƒ‚~}zy}{{{www|}ystxyyzz{|{vpmoqv|ƒ‹“Œ}tpprw|~}}~€…‰ŽŠ†ˆ‰‰‹„|vx~|}ƒ……„†ˆ‰Š‰‡‡ˆ…€}{tkejpwzz{|„ŠŽŒ†ƒˆŒˆ„……†ƒ‚€}{ztlloswv{‚„†‚‚€€‡‹‹ˆ…€‚}wuvy~~~€~}yvwxwvsuy|}yy}„‡…ƒƒƒ‚‚ˆŠ†€}~Š’–—•Œˆ…~z||uqokkospijjdb`aeks{€„ˆŒ‹Œˆ‰Œ„€~‡Šˆ‚}wsuw~‚‚ƒ„…ˆŽ’”•‘Œˆ~|~}y|€‚‡‰‰‡‚‚}xz}~‚ƒ‰Šˆ‡|yrkimpqw‚~|z|~†Œ‹ˆ‡ˆŠˆ‚}xw}…‰‡…~{wty†‹Š‰‚z{‚ˆ‹€zuqruz~}‚}vqpnpv|†ƒ|z|‚…ˆŠ‰‡}ˆŽŽ‘’Œ…xrsxƒˆŽ‹ƒ~rimv|ƒ…‚~{|zx|€ƒ††ƒ~{y|€€{x{|{wppsv{||z|‚†…„ƒ‚~‚…ˆ‚€}xzy|€ƒ‹Šˆ‡„ˆˆ†ƒ~~€~|zz{}‚ƒ‚‚ƒ‡‡„„ƒ}yyz|ƒxxwy{|€ƒ„‚…†ˆŒŠ†ƒ‡Œ’‚wmnuxxwx|~‚…††ˆ‰‰Œ‹‡……~|{|~€€xvwy~†‰‰†~sngfinwxyurpnmntu~……‡ƒ~…†‡ŽŒ’Œ‰…‚€}zy{|~€~xy{z{xx{ƒ…‡††…ƒ‚„ŠŽ…ytrqstwslt}xvst}€}y{yˆˆ}|€‚ŠŠŒŠ†‚€€ƒ††‚}{€‡Œ†}|„‹ŽŽŒŽ’ˆ……ƒ†…}wojdbgorppuwy|}}€‚‚‚‚‚‚ƒƒ„…~|‚‚„†‰‹‹‡‚~{z{€‚~{|yvvutywsropnpvxvuwywvz€|zz~„‰ŒŽ‘”“Ž‹‹Œ‹”ˆˆ‡ƒ„‡‰Šˆ„ƒ‚„‡ytstvwttww{}|~…‡‡‡ˆŽ’‹ƒ~|xwvz€‡‹ƒ|vorux~ynkntyvuurrssxzz…Ž‹†ƒ†‹Š„ujjmpwzqkkp{†Š‰‹Œ€zy{}yyyx‰‹‡‡ŒŠŠˆ†‡‰~usvz€|zy{{wwyxxz||{wtuwwuuy‚‹ŽŽ‰ƒ~}ƒ‰††ƒ†‘—›”Œ„~yttu{€ƒ…„~ƒxw{{y|~|„…ƒƒƒ~||}~zrmsŠ•—‡‡„ƒ€~€€€„‡„€~{x{}wrrt{‚‚ƒƒ‚€€|tsxw{{||{}{yzvtw~~yxvt{††ƒ|uuttuzƒ‚~}~‚ƒwƒˆxnrw|Š”‹~}‡‹‹ˆ‹ŒŠ‘•’ŒŽŒ‹ŒŽ‰}~„…ƒˆŠ„~~‚…†ƒƒ…‰‰…‚~uotyxtooorqiilmnovˆˆˆ‰Ž•˜’ˆ€zuooru{ƒ‡‰…€|zxwy}}~|{{vqljpxzyyvz}}~ƒ‰‰‡‡‰ˆ‰‹Ž‘ŒŠˆŠ‹Šˆ‰†„ƒ€|yy…‡‡‰‹‹‹‰‡…ywvwy{†ˆˆƒ~|zvx|ƒ‡‡‡‚|vrsttuuwyz}„ŒŠ‚{z~~‡‹‡„ˆˆ…‚}|zz|}ywx{€‚†……†‚|sojlqx€‚€€‚…„Œ™™”’އ€„†‡†€zwuy{{xuutz|x|~ƒ‚‚zy{xy‚‰‡yuwvwxwyyx|}}wuzƒ‰‹ŽŒŠ‡‚}yz„†Š‰„€zwqjbahmt|‚…‡‡†…ˆŽŒˆ††‰‹Š‡‚zvvyyssy}‚„…ˆŒŽŠ‡‰‰…ƒ……}~€„ƒ}|y{€{vrrrnmpuy{yw{}{|wy}~€}zwwxxz~€…‡…‚}vrty{~ƒƒ}{{yxy~‚…„€|zƒŠˆŠŽ‹…‡ˆ†{|zwsmrxyvqpxƒ†„‚‚€~|z|€}}~xw|~~‚‚~€|~‚„……„‹’’Œ‰††‰ˆ†…‡‡ˆ‹Š†ƒ‚|wuz}}{zxwy}‚„‚€~wonrwy{€„……€€yuz}~ƒ‰‰‡ˆˆƒyv{~‚††‚}}€‰ŽŒŒ…|wqrw{ƒŠ‹‹‡~xy}…‡~yw~ˆŠ‰†€}zxtpw€€„‡‚xx||{yyyz{z|~}~~„„{}ƒ‡‰…~yx~‡‹„€ƒ‚…ކ‡Š†„ywy|{v|~zsonpuwwxvy~€‚……ƒ|}~ƒ†Œ†zx…€ˆŒ‡}y|ƒ‚‚ytu~€ƒ‰ˆ„~}ƒ…ƒ‡ˆ„~|}yvyz}~{z|{uz}}yssvz…Љ‰Ž‡}~€‡‹‰ŠŠ‰†…‚ƒ‚z|ƒ„‡††ˆˆ…~{y{xru~~{yrtzzwutz€}}…ŒŒ‰‚z|€„‹ˆ|~‚~|y|z{|y}~}{y}~€yvsqtw{ƒŒ’“Œ…}y€‰‰€}|~‚„‰’’Ž…wporspnjhjls|}|{z{ƒ…‹“”“ކ†ŠŽŽŒˆ€…‡‡‡‡‡‰‰‡…}vropu||xz{}|{{{€…†„~|}‚…†…€|wtwz}~||~…ŠŠ…€yqms|†Š‰ˆ‡‰‹‹ˆ…„ƒ~…Š“–”Œ†„‚}}ƒ„ˆz||vtvy}|{}ywwsrqppprux~€„Љ„‚€ƒ“‰ƒzpkmtwy}}}{yuprqtsv~€‚„‡‰‹‰„€|{~‚~}}€€„ŠŽŠ†€}{|€~€„†‰Š„ywz||}~||}{{xwzyxyyvtvy|~~zz}~~~……ˆ‹ˆ†„‚††…ƒ}xwy~„ˆŠŽ‹‰†ƒƒ„‚~{zwsrrrtuuvywxux|~~~zxvusrrruyƒ„ƒƒƒ‡‡ƒ~utxywvwxvx}‚„…„‚††‚|y~‚ˆˆŠŒ‹Žˆƒ~y{ƒ…}{z~~~ƒ‰“‘މ‚€~~|vvxyzzxw{zrprvz}€€€|xz}vtvy{zxwtu|„ˆ„{{„‡€|€~}~€|}‚ƒˆŒ‹ˆ‚~~}}ƒŠŒŒ†€|ƒ‡ˆ‡…€{}…„‚…‰…~}{x|€‚„ƒƒ~€‚€|{}{{{zz}€~~|{|‚„zxz€|…ˆŠŠ‹Œ‹†€‚}y{|ƒ†„|w}…}{……{txtpsxwqqsvvtz‚€‚ˆ„‡†{vtoks…„€}{~…Š“–•‘ŒŠ‹ˆ‰‰‹‰„€ywvyƒ…‡‡‰Œ‹‰ˆˆ‡‰Š„}}‚€|zsmiggjnmnlgjqruwzƒ~~ƒŠŽ‹ˆ†‡‡……‹ŒŽŒ‰Ž‘“’Š„}{z|‚|zwtrrtx}‚††…„{urrpoolklnsuvvwwstuz}‡Ž‡‰ƒ~v|~‚‚~€‚‚€€{||zz}}{||wsqpuxy}}xuuvy€†‰‰ˆˆˆ‰ˆˆ‹ŠŠ‡‡Œ’˜˜”‰|yyvtrptttww{ƒ‡…~~€……€~|yyuu{vorrjjoqsy€ƒ„†…~zx~…Їƒ…‹Ž‘”•މ…„‡†……”‹€†‹Š†~|}ƒ„„ƒ~|vqrvxyyuqqy€ƒ€}{yz|‚…€€~|{xz|~€|ytty|~ƒ††„ƒ‚~y{}€}{zz|€‚~||}‚ƒƒƒ†ˆŠ‡„„ƒ‚~}€~|{}||~}}{y|‚…†‡‰ˆƒ€€€‚~~}}}|z{~€ƒ‚‚…†‡ˆ†ˆŠ‡…‚‚~||xwvz|{€}{|€|yy}†ˆ‰†‡…ƒ…Š’‹‰†„…ˆ‡‡„}zyywsqptsqtsrs{„…ŠŽŒŠ‰†||}€}ywx{€‚‚}~€„‡‡„~wuxy~……‚}xz~€„Šˆ„~€ƒ}x{{xwwxz|€†‡…~|zxz{}~xy|}‚„‚…„„ˆ‡ˆˆˆ†…ƒ}|yvrptv|„‹ŽŠ†ƒ||z{zvvww{‚ˆŽ‹ƒxxzxywuvvxz}„†††‡ˆ‰‰…ƒƒ„ˆ†‚|}€}zwuy}~zwzƒ†ƒ|{{uleflu}‚„ƒ…ˆ‰‰‡†Š‹†ƒƒ†‰‰‰ˆ„ƒ‡Š‰‡†ŠŽ†€|wupkiffknqtvtvyxywvy|€„†‡…‚†‡†„„†ƒ‚‚„‡††‡ŠŽ“—“‡}~~‚‚ynnstttttvtrwzz}}yww{€ƒ||}…‚€„‚‚…‡†„„†‰Š‹•‡‚|wyzwurqtvploopw{}€…ŠŒ‰…†ˆ‚ytr{ƒƒˆŒŠ„{v~………†Š‡{ttvtspponqvuvww{„…†‡‡‡†ŠŽŒ†}~€ƒ………†††ƒ‚‚‚}{xvy|||{}}zxvvy|~…†……ƒ„ˆ†‡‹ŒŠ‡‚‡‡wpuy|}xwy{yxvtx}€„…ƒ„„ƒ†‡††ƒ‚‚€‚ƒƒ‚€„}{~ƒ‚€}{€€ywyzzxutuy|{ywwxz{xvtty„Š‹ŒŒ‰†‡…€€}|xx~‡‰€…ƒ‘ŽŒ‹‹‰‚|xrsuyxssv}„ƒ~}}|ƒ‰‹ŽŒŠ‡‚~|{xtuuuvx~†ˆ‡‰Š‹‹‰†‚‚†‰†~}}~|||~…‰ˆ…ƒƒ„†…vsv{‚xpjkrxwz~~€~|}{zy{ƒ…‰Œ‹‰††ˆ‡„~~~}|{{xtsrsvz~~z|}{wtyƒ„€||~~~||~ƒˆ‹Šƒ€~~‚„‰ŽŽŒ‹‡‡Š‰†‡‰ˆˆ‰‰…‚ƒƒ}zww}}{yyz{~~zxz}}{xy~‚…ƒ€|uuxxywvx{~|~†Š‰…ƒ~€„„xxz}€}}ƒˆ‹ˆˆ…€~~|zvpov~€xwyurrqrsrpqtw}~|€ƒ‰Œ“‘‰|xx~ƒ‡‰‰‡~‚…ˆ‹‰zz}ƒˆ‹Ž‹‡€~~~€‚ƒ‚~vrsy~…†ƒ‚~{wwwttutrqmjlprsuy€‡Ž“’Œ‚|z{|zvyˆ‰„ƒ„}tpqx€…ŒŽŠ…}vvzƒ‘—˜˜–„yuutvwx€‹“’…|pgjmihnw}ƒŠŠ†{zspt|€~wojkouvuwy}€„„ƒƒ……ƒ}{{„{€ˆŠ‡„…‚‚„ˆ‡‚~{xx}|zwz…Ž‘Œ…€€ƒ‚„‰•–‘Œ„zvuw}€‚ƒ„Š”™š–Œƒ‚ƒ|xy~„xuwtquz|xtqv~‚€€…‡…„~„ŠŠ†„€wnjloleafnuzzw{…””’ŒˆŠŒ‘ŽŽŠ…ˆ…~~ˆ‹‹Š†…„„ƒ‚€€„……ƒ„‡ŠŠˆ…€}}~‚…†‰ˆƒ~|{yyzwssrkhiknquuwxwz€……|wtrsvy}|†…„‚„††‰…‚‚‚…ƒzz}ƒ‡€|z{zvyzuttssuvz|y{|yyz~€…‚„‹ŒŠ†ƒ…†‰Ž‹‹‹Ž‘ŽŠ†…‡‰ˆ|ƒ…‰‡~xvy„}{y{}€†‹ˆyvrlmolmptxy~€€ƒˆŠ‰Š‰ƒ€€~‚|ywvvvx}€zxxz}~‚„ƒ……‡…„„„…ƒ‡•––”’‘‹ˆ…ˆˆ‚zutwxvtssvy}|xxwz{}|{{{z~~~„}€…Š’Ž…}w{€‚…‡„„ƒ€‚€|~~ytuy}ƒ„ƒƒƒ…‡‡ƒƒ„ƒ…“™—‰€xx|}~ƒ‚€‚‡ŒŠ€xutxxrqru~ƒ‚|xupt€‰‡zz}‰ŒŒ‰Švrojlpwyywonu{„Š…†‹‘˜•‡‚‚‡Š•‘‰{ohfbakv{zvoiisƒŒ•™•‹ƒ~z}„‰‡‚~xppw}…‰€ytpliotx€„†…‚€€}|„†…€€}{wswvw}€}‚„††€„ˆ‡‰ŒŒŒ‘‘’І‡‰‡vrtuuroqv{ƒ…‚€}|~„Š‚{xtxyxwrlknqrtwwvtmou|€ƒ‚…‰‡‹…~~yŠŽ‘‰‚|vwy}…ˆ€xvv~€„„††‚„„‡ˆ€}†Šƒ~y{ˆŽ‹€z{~~{{€ƒ~|vpmpx|zvsw„„€†’›š“‹z…‰‹Š…~}~}xssy}|~}wuwwxŽ””……ŠŽŽŒŠ‰‡ƒ~yz………~wsy}„‰ƒ||zwƒ…‹…ƒ€{{|‚ƒ†‡„ƒzsst{~{z|}|~€†‹ˆ„…‰Œ‡€€‚ƒ„ƒ|zzy€††…ƒ€|{|{{{wx{~ƒ~z|}~~{~„ƒ€~‚„€upu~…‚}{€ƒ…†Œ‹‹‚€}€~‚†„‚}yux€„‡…‚}}€}€~}~}zy~†…zyvssw{}~€„†‡ƒ†ŠŒŽ’‘Œ‡„ƒƒ‚€~}{€}}€‚„†€wy€ˆ‰‡‰…~wqsx~‚}xroov|~|uttqorw{yustw|~~‡Š‡…‡‹‹‘ŠŠ‰…„‚ƒ††„…………ƒ„„‰Š†~y…„ƒ„ƒvwz{€ƒ~z|}€~€€‚{y}zzysv{zt|„v{…‚ˆ„xwussrtvtsx~|||{}~„…†ˆ†……ywyzuuyzzyzz…‡‹ŒŽŽˆˆ‹ŽŒ‡€z}‚‚€z{€ƒ…„…‰‡‚‚‚„„…††„„€~€‚~zy|€‚†‚~|{~‚ƒƒ{{ywwv{|}ƒ…„„~€‚ƒ„„ƒ……ƒ~{|‚{wvy}€}~~{yz|{x{}„†‡ˆ†„ƒvsroprsrrw†Š‹‰ˆ‰Š…€zw|€~~ƒ‡††‡†‡‡ƒ€„ˆŠŠ‰†‚„‡‡†…‚€ywwwxxz|€~zwwyvqquwz~}||‰Ž“–‘ŒŽŒŒ‡‚…‚ƒ~urqtvmfgjty{}{|€ƒ„…Š‹‰‘“ކ‡ˆ‹„„ƒ„€{xxxwxutvvvy{zxtrwyuoiiqy}~|}€€‚†‹ˆ„‚ƒŠ’“ŽŒ“—“Š„ŠŒŒ•—•“Œ€wppv{ˆŠ„}x|xpkhlpv|ƒ…ƒ€~~|xwvwxx{‚ƒ„‡ˆŠŒŠ‡ˆƒ|†…‚ˆ”’‹‚~{xx}…ˆ~wz~€~{wusvz‰Œˆ~ywstz‚…†‚~yvwxxxy{€zuuwz}~{z…‡ƒ~{~†ŒŒˆ†ƒ}}~y{ƒŠ‘‘‰†ƒ„†‡†…‡‰…€}yvsqqstux||wtsw{|€‚ƒ‚ƒ†Š‘Šƒ|~€‚‚}zz{{|‚‡„€|{}‚„…‡‰‹ŽŒ‡‡‰‹Š…‚‚ƒ†…€|yvvsuy~ˆŒˆ‚‚ˆŒ‡~vrvzzvpnf__afmpnigow{yx{zyvttv|~|z|ƒˆŠˆ’’‰ˆŒ’“‹…ƒ„††……‰ŒŽ“˜˜˜—˜–†€ywwvyzz{~~vrurmqtsvz{ux{xvqt|~‚ƒƒ‚~€„…„ƒ††‡ˆˆ……‡„„……Šˆ€ywvuuuzƒ{{~ƒŠ‘‹…ƒ‚…ƒ€€{z{~{{~€€~|zvnjmsvwvwvx{{|~„ˆ‰‰ŠŠŠˆ…‡‹ŽŽ‹ˆˆ‡†…ˆˆ„€{wtux||xwutuy||‚~zwvwzx|€}}}}{z~€„ˆ‹ŽŒ…~zz}|‡†…}t|ŠŽˆ|~„‡†‰‹‰…}tprx|zz~yw|~}|zstvnmpt{}}~…‡~…Œ’ŽŒ‰‡ˆ‰ŠŠˆ††„ƒˆŒŒ‡zxx{|€z}}zwrpruuuwrjjorpqtuvvwvvwvy{~‚†‡ƒ€€‚„…†ˆŠ‰ˆ‰ˆ‡„ƒ…†ˆ‡‰ŠŠ‡‚ƒ„†††‚{z€…ˆ‰Š‹‡‡‡„}xusqppszƒ…€‚…‚|zvtrpnieacipx†‹‹†…†‰”“‘ŽŠ…~{||y{‚}}}z{‚„…††ˆŒ’•”‹‹ŒŽŒˆ†„€}yuvwz|{€{wxy{|||z{zyxvvyyyxxzxwyzywy}„‡†ˆ‰‰Š‰‹ŒŠ„€~€‚„†††‡ˆ…~†ˆ†€~‚‰Œ„}€†‹†€„†‡ˆ‡‡‰Š…z{{wwywxzwz{y‚†„|vtspmqslpuuyyz~~БЇ„zwz{z~€|rlqrppqtw}}vsv{}{~ƒ‚‚€}€}‚ƒ„†‰“•”“”—š›“Ž‘‘’Œˆˆ‡ˆˆˆŒ‰…‚|ummpptvwyvruy{{||{ywuroponquywyyuroljknt|}zzxvvtu|„‰Œ‘“’Œ‹ŒŒ‡€}zyyz{zxwyz{€†‰Šˆ„~xwxvtuxyy}€„ˆŠŠ…yxwvwvuux€†Š‰†…ƒ‚}ywtv{{{~|}€‚ƒ‚‡‡‡Š‡‚~zwuuuttty||{zyz{}„‹ŒŽ’ŽŠ‰Š‡|{€ƒ„ƒ„„†‰‰ˆ‰…ƒ†ˆ†}tppqpnrwx{~xwx|‚€|uqpnsy~‚„€z€…‡‰ˆˆˆ„‚……‰Š‡…†‘Š…‡‰Š‹Ž‰ƒ}|€~~|zwuwwx{|}}{{{zy{{uux}€}|||{{~ƒ‰‰„~yzz{~~€€‚ƒƒ‡ˆˆ‰‹Ž‡„„…†‚~xqlklnpssu}ƒ…ˆ‹Œ‹‰‡††‰‹‰…|}~€{yx|}zywx|}~‚‚ƒ„|xyz{ƒ…ˆ‡…††……„ƒ€~}€~}{{}}}€ƒ‡‰‡ˆˆ†yqootx{|~ƒ…ˆŽ‘Žˆ…‡„ƒ„‚‚‚€|}|wxtw}}€ƒ…„„~{€}}}}„ƒ‚€„zskjloqoqsrttuy|~{y{}€ƒ‚„‰“”–”‘ŽŠ†€„‰‹ŽŒ†€€}|{{{zxtrx}€{uux|‚…‡{{z†Šˆ‡†‡Š„€ƒƒ„†‡…}~}{|{|}{|tjklqvw{|ƒ||€„~}ƒ‚{z}zƒŠŽ’ŽŒ†|w{ƒ„‚{x}€€€‚€zssrx€„†„ƒ‚ƒ††ƒzrps{€~ƒ‚„…‡†…ƒ|xvvvw}ƒ…ˆ†zz|~}{}}}||zxy{}€……ƒ€}zwxzyxx{ƒ‰‹ŒŠˆ„ƒ„~|{|}~}|zxwww}„ƒ}|~€€ƒ„ƒzywwvsrty|{z~…‰ˆ‚~}€‡ˆ…ƒ†ŠŽŽŒ†„„…‰ŠŒŒŠ‰…€ƒ‚||{try€‚xsvutuurqnpsuy{~}ywpt€†‹‡ƒ†‚}zpms~‰†‚€~€€€ƒ…ˆ†€|z‚Š‘“‹†‡‡„…„ƒƒ€xrtz€„Š„}z|~€€€~ƒƒƒ}€‚‚„€~}rljimmkggqx€„„††…ˆ‡…‡‡ˆ‡ztx~…ˆ†‰†}‚|„|x†‹••…~{…~€~xsy‚€‚|€ƒ‚„ˆ…zyz{}}{z‚‚†vuwy~ƒ‚{x{€„…†ˆ‹Œ‹‰Œ‰ˆ†|wz{‡ˆ†…ƒŽ‰~||wwy{{zyyy}~{xustqrxxxvvww}ƒ…~~~}|~~|}zv‰ŽŒ‘‹‹Ž‰„ƒ„‡†}{|€…‹‹Œ‰„„ƒ†ˆ…†ˆƒ…†„}urqvuy}y}}€|vy†ƒy{zw|{yyx|yv{|ytrtvwz€…ˆ…€€ƒ†„€~|……~{zuuvz€„„~vuwx|…އ|wrrzxu|zqpu|€~†ˆ˜š›™–…‚‚†€…ˆƒ{|ƒ„ŽŠ‹€z{}†ˆ~m^Zaluwsqu~Š““‹€|}ƒ…‚€wtutvtpqy~„‹Œˆ‡‡‡ƒ}wv}€ƒ‚{y|€ƒ‰Œ‡…ˆ‡{ywx{‡Œ‰‚ƒ‚}€xttux~|x{{v{~€}‚‡ˆ‚€‚ƒƒ‚„‹‹‰…ŠŽ‹‰ŠŒŽŠ‰‰‡ƒ}wrsupw~qqzyvnw…}}zolmovusssutxz|€Œ’Ž‘Š~~|y}}xu~ƒ}‰Œ……‰‚€…‹ŒŽ•ƒ~|y{}…Š…ˆ‹…~|~„‚€~vnmrw{}ƒˆ‹Œ‹Ž‹ˆˆ‡…‡ˆ†wqpmntvyzvvwsrtqptuuw{~ƒˆŠ‹ŠŠˆ†ƒ}{}‚„ƒˆŒŠ……„|{}|}xwx{~~}xvuy†Š‰†…„‰ŠˆŠ†††…‡ŠŽŠˆŠ‹‹ˆ††|{xxwsprvz{|}„‡…~‚„†ˆˆ‡‚~{zz{}‚…ƒ‚€}}|yyz|{||{|ƒ„‚‚ƒƒŠ‡{{ssyxyusttwy{||~ƒ‡ŠŒŠŒ“•“‘ŽŒŠ‡†„ƒ……}tw{urxwmo{zuyƒ€~}y|yy†ˆ‡yplrx‡ˆ…|vsvx|~yspoqux{||€„„„††„„„„…†‰…„ƒ…„ƒ‚}{zyx{€zyz{‚ƒ‡‰‰‡‚€‚‡•”‘’Œˆ„…††ƒ}xtsrrspmklmnruvxyyy}„ƒ„‚„…Š‹‰ˆ…†‰‰ŠŠ„‡†xrwvrw{|„‚‚‚ƒ|y}zyy|{vtspoqu|„†…€ƒƒ†ˆ‰‰‡„~~„„€{xwwww{}}€€€€€‚…†„€€„†……ƒ‚ƒ€{z}}|xzyuwz}‚„~‡ŒŽŠŠ‡‚ƒˆŒŠ€xutvz…‡‰ˆ‰ˆ‰Š‹ˆˆ†ƒ}utx}€‚‚‚ƒ‚€‚‡…~€~xuyy|ƒ„††|utpquvx{|„ˆˆ|z|z{~‡‰†zuqu{‚†‚ytsrtwy||ƒ€{xz~„‰‹Š‡‡‡…………‰ŽŽ‹…„……„……„„ƒ}zz~{xwvw}ƒ‰†‚ƒ„…ƒ‚|xz{ytrvywxxwww{{{~{yx{ƒˆ’Љ…zyyurpoquz€ˆ‘’‘Žˆ‚~zx||~„…‡†~xz}€†ˆ†ƒ~zz}€ƒ„€}{xx|‚ƒƒ†‰‹‹‹ˆ„ƒ‚}|~|zvwz{{zz{||}~~€‚…ˆ…€~{zxwwx}‚††ƒƒ‚‚~|}|~}zxw{|}||~„†††††‡‡…„ƒƒ„„†‡‰ŠŠ‹‹Š‡ƒ€‚€€„ƒƒ}zysrolkjot|ƒ‚€{tu|~|€…„„ˆŠ‡€zwspsvy|}€„‡‡…€€~‚‡ˆ‡ˆŠŒ‹‰…ƒ‚‚……|~„††„„‚€}{~~}|ytrqsvuvw{‚‡ˆ‡‚€‚~~{wspsxz{xwz}……€zvx|‚…„ƒ~xyz{‚‹‘’”‘‹…{z{~‡Š„ƒ…€~ƒ‰‰‰ˆ„…†……‚€~~}€{vxuuw{zvx}ƒŠ‹‡€zxtrssomryƒ……„…ƒ|{|}ƒ‚~€{y|zvx}}{}~~€}{}xwy}~yqqvutx||}~}€†ŒŒˆ‚€†““‰ƒ„‹‹ˆ†‚~|}‚‰Š‚}€{vrrsvx}…‰‡‡ŠŠ„~}~€{rpu{€~ƒ‰ˆˆ†€‚~‚€xvy{ƒ„„ˆŠ…xrmkrx‡„‚ˆ‰ˆ†ƒ|ywuvywwwtwxnmorx~…‡ŠŒŒŽŒˆ††‰‡€†ƒ{ƒ…zz~~~x„Š‚‚‚‰‡‰Š‰‡€……†ŒŒ„}tq{Бދ‹‹Š…~‚ˆ‹„snpopsrhipnqy{xxˆ‹ŒŒŽ‡ƒ€€…‰‡ƒ€}zuqqx~yz~~~€…ˆŠ‹ˆŒŒ‹‹††„‚„‚„‚ƒŒ€ov}€‡‰…{vu}„……ƒ…ƒƒ†ˆ‹ˆ|ww~zqhgrƒˆ}†‚}xw~x{†‡zwwzwmoqutt|ƒŠ‘’Žˆ…ŠŒŠ„~vv{{vvwƒ{vtyzvyƒ‡€tmx†’“‡…‡ˆŠˆ‹‡„~z‚‡‰‰‡ˆŽ‡„††„~xv{}xvvuu{zyvwwwuolnv~€„ˆ’Žˆ„‡Šˆ†ƒ……‰‹‡‚‚ˆ†}qdgtz}|z|{}{y}}‚‚„…‡„‚ƒˆˆ……†ƒ€‚„ƒ‚……€}xy€€€|||~|tnknpnmnrwvuy|~ƒ†‰…€€ƒ†ˆ‘”Ї‡„Іƒ„~vy††‚}€ˆ‹„|srx||vvvwuv{}†…ƒ‚ƒ†‡ˆ‡…ƒƒ‚€}{urx{wttqqtwz}€‡Ž‘’’ŽŠ†ˆ‹‹†‚ƒ‚}~€~}yxy{|z|{~{yttuutsqsvxy{}€{}~~~}}zy{|~€‡Š‹†…‰‘Š„|zy|€€~|~‚„‰‰ˆ†‚„‡†„…††‡ˆ‡„}|~|{zyyxxzz{€~€ƒ†‰‹ŒŠ…€ƒƒƒ„‚ƒ„…†ˆ†„‚€~|{{zƒ‡…}uoow}zvttz~}~zw€‡ƒƒ…†‡‚|ywy}}}}xy~~{xzƒ…ƒ}z|€~zwtrqx}|~zy~„†…††‚~„‰†ƒ€|}€~yspru{€ƒƒ‚‡‡‚ƒ†„ƒ‡ŠŠ‡‚€‚‚…†††„|…†…„ƒ}{„‚{rosyzvqomlqw~‚ƒ‰ˆˆŒŠ‡…‚€„„{xx{}{xvtrsx}~|ƒˆ‰‰‰ˆ‰‰†ƒ‚‚€ƒ„‡‡„ˆˆ…‡ˆ‡‡ˆ„€}xrqrz„ˆ…†ˆ‰‰ƒ{yyz||ytsv{~€†‰†‚|{{€„„‡„wruxx{}xuz…ŠŠˆ„‚…‡‡…~|€„ƒ{yz~~{xuux}ƒ„‡‡„…ƒ~„„…„‚€~{vsvz{xvstwxy{€ƒ…‡‹ƒ‚€€‚‡‹‡}yy€ƒ~z~‚ƒ…‚}{|€……„ƒ€{xz{yxwvwvssw~€zww{„‚€}ƒŠ‰€ƒ’Ž‹Œ‘}~zulntwxrqwyxvvywttuz…‰‡„‚ƒˆŽ‘ŒŠ‡„€€}zzw{ƒ……}{|€{xy{{y{}~zwz€ƒƒ}€‚ˆŒ‰„ƒ†‡…‚†‰‡‡…ƒ~urs{~|yx|ytuquz|y{}v|v~}|vvuzƒ}}v|{‚…‚}‚€„‚‚€€…„‡ˆ…‡‚~~‚}{}‚€}||{y|~zxx{}{yy}‚…†…‚~~ˆŠ‘‘ދЉ‰Š‰ƒ€€‚Š‹Œ‹ˆ‰‰…‚}xriiqvxwstz~zxurpmntyzy{}{{{yxtsruy{xwrmmpv„€~~„†‡…ƒ‚~~ƒ„„‰ˆ†„ˆŒŒ‰…€}}€„†‡„€‚…‡…†ˆ‰ˆ„‡‰‰ŒŽ‹‰ˆ…‚}{}}}‚‰Ž‰‚„Š‘ŽŠˆ‰†‚}ywuuxz{{{}€~~~~|vvvqnklpqqsrruwz|}{vu~~}€~}„‡‡Š‹Š‰Šˆˆ‹ŽŒ‰†ƒ„†………ƒ€|yz~~}}}{{~‚…„||{{}~{xy}€‚ƒ€€ƒƒƒ{|€€‚‰‘’Žˆ…†‡…~xuyz|||~~~€~wy}}{tns{}‚…ƒ„…„ƒ€}ƒ€ƒ€xrtz{tru|…†„ƒ€‚…„ƒ‚€€€~€‚€€‚}~€€|yx{€‚ˆ‹Š‹ˆˆ‡‚€}|zy{zyyz{}~~~~€€ƒƒ‚„ƒ„„„†ˆŠŒŽ‹‡„„†††ˆ‡„vsv{~€|srx€ƒ{xz{}‚†„|xrsxy{||~‚…ƒ~~‚ƒ„ƒƒƒƒƒƒ~~„ˆŠ†„€‚€~~|yxyy{yvuvy|}|yyxwwz€ƒ€‚„†…ƒ„„…ˆˆ…„ƒ„…|zwxx{}|{x{~‚€‚ƒƒ…ƒ„‚ƒ„‚€‚€€~}}{||||yvvuvyyw{€„‚~}~~‚……„„‡…„€€€ƒ‚‚ƒ}xx|€€~~}}~}~‚‚‚}~~~{xutuxyy{}‚„€}~€‚„ˆŒŒ‹‰…‚ƒƒ‚€}{zyxxyx{}‚„„„„…„‚ƒƒ„†‡‡ƒ}yvvz}€€€}xx{zyy~~~€€}yuuvtty}€}|zzzz|yx~‚…ƒ‚„‚‚‚„ˆŠŽŽŒŽ‡ƒ€‚‚…„…~|}~}|zƒ……„ˆ‰‰Š…}{~~ypowzngmw|{z~…“‡†…‚~yuuuwyxwy{{|}}|{{z|ˆ‘ˆ‡‰†{xy{yssrruvxvux|‚‚~‡ˆ‡……‡‰Œ‡ƒ~ƒ‡‡ƒ…‡†ƒ}|yy|{„†‰ŒŒ‰‡ƒƒ……††ƒƒ„ƒƒƒ……†…„…†…€†Š‰ƒ~|yvvwwyz|{wwy{{zyz{{xvxyz{~‚„‚}wtttxy|„‡„{|~~ƒ……†ˆ‡†ˆˆˆ‰‰ƒ|yy{~€‚ƒ‚€‚‚„†ƒ~~~yxz{~‚‚~}~~|}ƒ€€‚‚‚„…‡†††„‚€ƒ…„‡†}|~}{xtw~‚„„€‚…†ˆ‰ˆ‰†…‚€~|z||xvv{~€‚}ƒ†€~~~zwwxz|}}zx|‚„„€€}{{|€~€„‰Œ‹„ƒ„ƒƒ„„ƒ„„…†‡ŠŒŽ‡}{}€‚‚~|y{~xtsssqsttuvwwsuy|~~€„††ˆ‰ˆˆ†…‰‹‰ˆŠ‰‡„€ƒ†‡‡„€{zz}€}{{}‚€}|~€ƒ…ƒ~zvtsx}}|}}}~~}}€‚€€|y{||zxy|~{{ƒ„~|~ƒˆ‹ŒŽŒ‡…ƒ€„…†„}xuwz{{xtsx|„‚~{~~€„}{~€ƒ„…~x}zy|}}yvvvy|}€}y~ƒ†„‚„‚€‚ƒ……„‡„„ƒ„‰„ƒƒƒ‰Šƒ|{€~{{~‚‰ŽŽ‹ŠŽŒ‡~xtrrstrrrmnuvwxvut{€‚€‚…†ˆ‹Š‰‰ŒŠ‰ŠŒˆƒ|{||{{ywvyxuuxwvvv}€„†‚xuuw{€ƒ€€…ŠŠˆ…}€ƒƒ~}z{€†Œˆ…ƒ„‚€€†‹ˆ|~€„†„€}yvtpqpqspnmlotqqux|{z{zxvttuy~‚‡‡‡…ƒ‚„†„}|wx‚…ˆ†‡†ƒ…ˆ‹Ž‘“Œ…‚„„ƒ€„„†…|~}{uuvuv~‹ˆ‡„€‚„ˆ“•‹ƒƒ~|}z|}€ƒ€{|{yywvuu|„‡Šˆ~vx~ƒ…†}x}|{~„………~wrsy}{wywutswxw{{{€„‡…~y|„„ƒˆ‡…€‡‹ŠŽ”ˆ}~ƒ}|}}ƒ”ŽŠ‡€ywz{~„ƒƒ„‚†…„…ƒyty~~€€ƒ‰‰‚€€€}€€yvxvvvtqv‚ƒ}z|€€€ƒ‚…~‚‡‰ˆ…~yupmkmnprsqrrqstpnsxz{|{zyy}‚‚‚~…‡Š‹‹‹‡ˆ‹‹‹Œ‘“‹ŠŒ‹‰‰†ƒ‚‚…ˆŠŒ‰‰‰‰‰ˆ†vtv}††ztry‚…‚}xuvvy{~~|yyy{~||{|€€€€ƒ€€~~~}{{yxy|~~~~~}~€‚{qorwvsnjt…‡ƒ‚ƒƒƒ€~zvvutsw{~€|}ƒ‰Œ‰„…ŠŠ‹ŒŒŒŽŒ‡€|{~{xz}~|~~|{{}|{{yxww}€~}~~}ƒ‡Šˆ††‡ˆŠ‰†ˆ‡…„…‡ˆ‡†ˆ†€{zzyvw}~||}‚€|xxxx{yxzz}€~yv|ƒ…€}‚ˆˆ‰‰ŠŽˆ„ƒ†ŒŽ‡€€€|z|}~}ytrv{|||‚‚‚€~}}~}{}„‡……zxx~‚…„ƒƒƒ‚‚‚~yursy|€ƒƒ‚~~|~~|{|z}{}|z{zz}~ƒ‡‡‡ƒ†…„†‡‡†………ƒ~€…ŒŽˆ†}tswƒ‡‚{{xvvx{~~€zwvvx{~{{~„‚~~‚ƒ‚~||{xx}€‚€~~~~€€}~ƒ…„„ƒ€ƒ†„|wtwz|yxstyy{{}€~‚†…………„…ƒ€€€‚‚†Š‰‡………ƒ€|ˆ‹ŒŠ‰ˆ†„„‚€~~z{zz„‡‡‚„‚~ƒ‚€~zvwxx{}~}}~~}|xsruvuxz|~|xz~{|ƒ‡‡‚‚ƒ‚~€ƒ‚‚€ƒ††‚€€‚†ŠŠŠ‰ˆ‰ŒŽ‰ŠŒŽ‹‰‰†‡‡††…ƒ€€ƒ{wrrssv{}|~{z{}~~}~}~~}€|z{~‚‚}zxz~‚}zyxy|}xvwy{|{y{|~‚„„€€„…„‚€‚…†ˆŠ‰…€…‰……†‡„„„ƒƒƒ„ƒ€~}{z{}~|~€‚~|{{{z{}ƒ‚‚‚„‚€~yxwy}€|z{~€€€‚‚‚~~}|{{~~|{{{z{|}~€~€‚ƒƒ€|yy}}}||~‚€~}}{|‚ƒ„{|‚†‹‰ˆŠŠ‰ˆ†……|zyy|}~~€‚€|trrtsqquz€ƒ‚€‚‰‹Ž’‹„€~|xx{z{}|z{{yy|‚€}}|}„…€ƒ„ƒ‡‡†ˆ‰‰…‚‡„|}}||xx{{{|}|}€‚ƒ‚~}~}}||‚„‡ˆ‡‰ˆ‚‚„„‚‚€€„ƒ‚€ƒ„…††ƒ€„„{x|~…‰‰…€€€‚…‚|rnorwy{wvwy|~ƒ……€„‚€‚…ƒ€ƒ„ƒ‚€€zy{|}{‚€}}ƒ…€}|~{w|…ˆ…„‚ƒ†ˆŠ…€{xzz{|yx{zwwz}}€|{{€ƒ{}…„„……„‡‰†„~|}~}‚ƒ€€}†|€€„†„ƒ~€‚‚‚€~~{wx}€‚€|~€ƒ†ƒ€~~{yxyz{}}{xxxz~‚‚‚ƒ…„„ƒ€}xuux{{ywy{}|zz|€}}„††‡………„ƒ„‚ƒ…„ƒ………„‚„‡ˆˆˆ‰ŠŠŠ‰ˆ†…ƒ‚†Š‹‰…‚…‡‡…}yyz||yxvvvuux|~~{xxyyz{zxxyz|~~{||yxuwz|}{wxz|~€€‚……ƒ}z{†‰‰‡„€ƒƒ„†ˆ†ƒ‚‚ƒ…ƒƒ‚€€€~{{€„„‚~}€€€€~~~|{}€‚…†…†ˆŠ‰†ŠŒˆ†„ƒ€~|zxz{{|}}€~~€€€|{{z}~|}|{zy~ƒƒ€}|{zxxxz|{zy{~~~‚€…~~}‚†‡ƒ~~‚…„‚~}{|}}}~€€~}‚…†„€„‰Š‰†…†‡†‚‚‚€€}{{zy{}|{}|{ywvuwz|~ƒ‚‚ƒ€}||~~}}}zz~€ƒ„‚‚‚€~|yx{{}~}|z{||{zyy{ƒ„‚€‚……„…††ƒ‚ƒ‚„‡‡†xuw}…ƒ|…„‡†ƒ€}‚ƒ‚~{{}€€~{wvvwy{}}{{†‹Œ‡€{wzxzƒ}u~€‚‡‚ƒ†€ˆ‰€‚€ƒŒ‹ˆ‚|}€~~~|y|~ƒ€~~}{{€€}}~}|€„‡…~~‚‚€€~|}}}zwttz€ƒ€{xz|ƒŠ‡…‡ˆ…„‚‚…‡ˆ„‚„ƒ‚€}|{~‚|€ƒ„„ƒ}xzvsuvz~„‡‡ˆ‡‡…€„‡†ƒ‚€}y{yyz‚‚ƒ‚~…ˆ‡…‡„ƒ„„††„‚|snqtvy}‚ƒƒ‚ƒ……‡‡ƒ‚…ƒ€€|{|}|yvy|zwy~}{{€„„ƒƒ„ƒ‚‚~}}|~~{yyyyzyyyy{}~}~ƒ…„‚ƒ…††‡ˆ†„ƒ€€‚ƒ‚€€€~‚…ƒ{||{{~}~~~‚ˆŒ‰‚zw|€~{uruvx{||‚‚~}~€}}}|{}}~}{zyy{}ƒƒ€‚ƒ}}}ƒ„‚ƒ†††‚zz„„~wvz~„‚zxz}€„…}~€‚~|}ƒ‚……‚…‰Œ‰†…ƒ‚‚‚€{{{yx{}{|}yxyxttyzz{{vty~}}„†{{~€‚ƒ…ˆŠŒŠŠ‰…€~‚…‡ˆ‡†ƒ|x~…„€‚…ˆ‡€‚ƒ}}ƒ‚‚€}vsyx}~|xvw|~}{|~‚†ƒ~}„‚~{|‚‚‚{yy~„‡‡‡‚‚†‡……„‚†„~}}‚€}{yz}€~|}‚€}|€‚ƒ‚|~ƒ‚ƒ…„€~€xxzz{‚€~~€€€|x{{xwuwy~‚„€ƒ‚€‚~€„‹Š†{|~€‚~‚…†…†„€„…ƒ„€{{……ƒ€|xzƒ€~{{}zy|ƒ…„€{zx|€€~|zxx}‚„…„„†‡„~|}}€€~~}}~}‚„‚€†‰ƒ|z|€€~}~‚‚‚~~zx{€…†„„|}~~~€€}zwx|~~~}~„…„~|{zzyyy{}~‚†ˆŠ†‚‚‚~~~~{z|€‚…†…†…ƒ€‚ƒ„„„…†‡‡†ƒƒƒ€yv{€}z{~‚€{ww}}yuvz~€~{yy|€€~€…‡ƒ€ƒ||€‚„‡‚{zy}~~‚…‚xuwvx{€ƒƒ}zzxy~ƒ‚ƒ‚„„„…ƒ„„„„ƒ‚€„ƒ€‚ƒ€~|{}~‚€„†‚‚‚……ƒ€{zz~€|yyy{}|yy{}~}zzzz‚„…„…„„…„ƒ‚ƒ„ƒ‚„‚€€€}}||~€ƒƒ‚€}|}}~€€}{|||}}}||}~~~~~€‚ƒ€€€‚ƒ………ƒ€~~„„}}‚|{}€~{xwx{‚€~~}|{z{}~~}€†Š‹‰‡†‡‹ŒŠ†~}|}}~}{{{z|~}}}|xvw|}~€€€€‚„†‡‡†„‚‚„„ƒƒ‚€~~||{yx{€€€‚~€~~~}~~|}~~~€‚ƒƒ‚~~}}‚€‚~~‚ƒ‚|}~€€€ƒ€}||}~}}}}}~€‚ƒ„ƒ‚€‚ƒ‚‚ƒ~~|{{yyz|~~€€€ƒ…††€}}~€€~€‚€„ƒƒ|}€€‚ƒ}|~}}||~€‚‚ƒ€~}|{}~€€‚ƒ„„„ƒ‚‚‚‚‚€ƒ‚ƒ„€€‚ƒƒ}~~}~~}{yyy{|zzz|}~}}~€€€~€~~}~€€~~€‚ƒ„…„ƒƒƒƒ‚€€€€‚„ƒ‚‚€€€€€€€€‚‚‚‚ƒƒ‚~}||~~€}{zy|}|~}~~~€€€~}~~}|{{}~~}}€€€€~~~}|}}}~~~}}~~€€ƒƒƒ‚€~~~~}||}€€‚‚‚€€‚‚|zz|~~}|{{~€€‚~~~~€€€}~ƒ‚~z{|€|{~€~}}|{yz}~~}~‚††‚‚€~~ƒƒ„ƒ‚‚ƒ†ˆˆ†ƒƒ…†„€€„…‚~{|~~~€‚‚‚€‚…‡‚wy}}€€~~~~~€~|{|€~~|wx}€€~~|}€~~}}ƒ„„ƒƒ…††…ƒ‚‚‚~}~‚€~~€‚†‰ˆ‡„€|z{~€}{{}€€}{|}€}{{{{}~~|}€‚ƒƒƒƒƒ‚‚€€ƒ…„‚€€‚ƒ……„ƒ…†‡ˆ‡†‚~}|}~~~~}zxz~||z{~‚‚ƒ‚€~}}€‚„„‚€}~}|}~€}}|zxvvwz}€€‚…‡†ƒƒ„‚‚„†…ƒ}~~‚ƒ„‚€~~~}{zzxy{|{||}~~}|~~€€ƒƒƒƒƒ‚€‚ƒ„ƒ„††…ƒ€€€~}{||}}{{{|}}}{z{zwvxz}‚€€€€€€†ˆˆˆ‡…„„„ƒ‚ƒ„ƒ€~~€‚ƒ„…„ƒ€~}~|}€~|}€€‚ƒ‚€~}}}zyzwvy||~~|||~‚~|{}€„…„ƒƒ‚‚‚‚ƒ†…„„…†……ƒ‚€€~|zyy|€€~{yy|€„„„~}||€ƒ‡‰ˆ†…„‚~€ƒ…‚~||}{wy~‚„|rrx‚€}~„ƒ†„€„…|{~~{zz}„ƒ‚ƒ„ƒ‚~{{}€~}|~~}|~€}|xxzz{{}}{y{~~€€…†…„…‡†ƒ‚‚‚ƒƒ‚~{{{{~€‚€€‚}||~€€|{}€~}~€€€€‚€ƒƒƒƒ€€~}}~~€~{{}€€~}}}}€‚ƒ‚‚‚‚‚‚~€‚‚€}~‚‚‚‚‚‚‚€€€€€€€€€€~~~~~}~}|{~€‚‚€~~~}}}|{|}~~}~€‚‚‚‚ƒ„…„‚‚‚€~€€€~}}}}‚‚~~€€€~~€~€€€€€€€€€€€€~~}~€‚ƒ€€‚€€€€€~}||}~€}{y{}…ƒ}~€}|}~~€~€}}~~~~~~€€€€€‚‚‚‚€€€€€€€€€€€€€€€€‚€€€€€€€€~~€‚€€€‚€~~~~€€~}}}|{{{|||}||}~~€‚‚‚€‚€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚€~~~~~€~}||||||}||}|}}~€€€€~}~€~~~€€€€€€€€€‚‚€€€€‚‚€€€€€€‚‚€‚‚‚€€€~}}}~}||||||}}~~}}~~~€€€€€€€€€€€€€‚‚€€€€€€€€‚€€€€€€~}|{zz{|}~}}}}~€~~~€€€‚ƒ‚‚‚‚‚‚‚‚‚‚‚€€€€€}||{{|}~€€€€~~}|{{}~€€€‚ƒ‚€~~€€€~~~€‚ƒ~~~~~~~~€€€€€€€€€€€€€€~~}}~€~~~€€€€€€€€€€€€€€€€€€~~€€€€€~€€€€€€€€‚€€€€€€€€€€€€€€~~€€~~~~€€€€€~~~~~~~~~~~~~€~~~~~~~€€€€‚‚‚‚‚€€€€€€}}}}}}}}}}~~~~~€€~~€€€€€€€€€‚„……„„ƒ€~~}}ƒ„‚€€}}~}~~~~€€€~~~€~~~~‚€~~~€€~}||}ƒ‚€~~€‚‚€~}~}{}‚€~€‚‚€‚‚ƒƒƒ€|~ƒƒ‚‚€€‚ƒ‚€€~~~}}~ƒ~~~~~~}}~€€€~~€€€€~~€€~~~~~~~€€‚ƒ€~}ƒ„~}€|‚‚€€€€‚€~€€~~~~~~~€€€€€‚‚‚~~~€€€€€€€€€€€€€€€€€€€€€~~~~~€€€€€€€€€€~~~~~€€€€€€€€€€€€€~~~~€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€~~~~~~~€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€lgeneral-1.3.1/lgc-pg/convdata/air.wav0000664000175000017500000014655012140770460014506 00000000000000RIFF`ÍWAVEfmt +"VLIST6INFOINAMairIARTMarkus KoschanyICRD2012dataþÌ«‰ äkFò¿_Viš®ÅðL±éÁ2mÿÔþMþëý ýdýýäüßü(ýœý6þÌþcÿËÿJ÷´ *JgVƒ”_ÿ•þEþìýXýÅü3ü³ûVûLû~ûºûêûXüÆüñüþü<ýSý ý¨üqüjü~ü†üaüHü•üýËý[þûþhÿ¸ÿ¢I. Óyý$ °ŸŸ;È7¢ÿáþ3þ°ýdý2ýÙü‹üõûû>ú>úûüûµü/ýùý ÿúÿàê#<P`=¡ ””D¼™½¾¼h‚§ð{##âníÿ®ÿqÿnÿšÿ²ÿ¹ÿ¸ÿŒÿ(ÿûþÿ‘ÿNÜôó5\Dê•oSýÿÿbÿnÿbÿ/ÿËþ§þÆþŸþþ;ý‚üüæûÂû–û4ûºú{ú‚ú¦úÅúûÄû‚üñü>ýtý»ýþhþåþXÿÚÿP‰ƒ^P_wÁ»…G>n¶âÒËјK>~ùdzjUL»hQ%¹ÿÿ¦þµþèþøþÉþ‡þŒþ]ÿ¢“ äô¬-Ô¬{ì WÏOµÿàþþ¤ý­ý¼ýÔý@þÿ œ°z–VÿŸþÌýýLütûßú‘úúÉú"ûyû¶ûÕûòû_ü1ýEþkÿ‡‚1 æ"/ ÔM¤Û%lÿ½þKþþæýÅý›ýYýËüùûNûûûnûÒûGü¾üEýîýƒþÿØb  _¹P.Ð|ùŽ.›è‹ŠaíTµ@ùÿ7X`4 ãÿ¾ÿÿÿ¸ÿÈÿæÿH½  súR{©­eÙ‘aOJ£_ÿvþjýÈüyü]ügüvüŠüƒüdüSüXü‡üÆüÿügý–ý±ýÞý0þ‚þÕþ ÿÿ¬ÿyÿæþ‚þ†þœþ²þäþ_ÿs›—ÀÄtUoJÌÿQÿÿéþ¿þZþÏýý¥üxütüœü×ü ý ý?ý±ý;þÄþFÿöÿåöÍv²Ò,œÓ¢‚¨©aù›ÿSû³%vÐDùÿ QÂIÂ<9JK¡êéÿšþýÒü‘üÇü\ý$þÄþJÿ£ÿÈÿõÿY¿W®ôݹXº§ŽþýüûWû6û>û/û/ûtûÜûFü±ü+ý‰ý×ý!þ/þþØýoýøüƒüüû;û?ûyûÓûWü(ýþÐþ{ÿ,.B<îFP ŒÜâsxÌÿ<ÿüþ·þGþýUýKýxý˜ýxý'ýÂühüküýSþ‚ÿkÖ¾¦§ñj#½þòPjÅ8­fØ?ñ¡¥â÷Q{¼ÓÿÆþþùýýýeþdþEÿdúæølú·ûÈÿã4)éøÁÏ  ; * ì ô 2 Mžšý úŒöYó òœòôWópðíé÷æ^å³ã^àéÚrÔ8ÐÅÍzÍ:Ñ}ØÉà¸æLé¹é¯êÂìnðõìùnÿ‰1 0 ] K À y:ý9žý¿ù[øÎ÷ö’ô õSøû§ü ü¯ú­ùiúþÞ²Q r Ü‚ýÁòÕéãX߯Þ5à-àŽÞ¼ßåÃêñ¨ù»ì ³!](º- 2ñ5y9;¦9>6Ù0¯(u„,ýèùöåò1ðaïŠôÜü¨¥ Ô‡W;©œ Ò ´äó÷xíæ¢àvÜ(Û¼Þ8ä«ççìäÀäƒåOæÃéÀñ—û’I¹ 8$Ý)D,Y,¡+)ý#fm­R‚ äû÷²ôôÞõ6÷íò´ê˜ãûß#à~ã]ç¡ê’íFðIñõËü*‘Æ Ó¯áëÄ=³}úb€Ýt t%þ"ûaùÙ÷äõ$ôåñ!íŽéêüíÃóŸùÔýuþkû¿÷ã÷©û½eþ4ù$£Î[· Ü = FÁL b ë HÚ‰xQaúÌóðía长ëåEæoçIè~è+èäçé’ìZðpòJö§ú"ûø÷îöïùÕÿ` h « D ¿Uý˜øº÷‹ú3ýMÿªj ¶Ä;½èRû˜õ‘óôôôùóèðŠëRçzâ·ÝžÛÄÜêßyäôêÞñIøíý™ÿª ÿ•¼ ()þ05H5Q3:0÷+Ù'I#©N“جV  † ‡¿  ß · × –(ÞC¤]iþö³ì¢æÄääækë·ñ´úÈ Ôh»š!û(—/.4à5í4R0e(Ó!ÑrÔÿ´ó¶èÝIÔÒ*ÓJÕÐ× Û€ßããRç%ëQðÓõûOýsû™÷)ó•ëãDÝuØÔêÑлÏ2ÓåÙ4ãÛí¢õtüF³‘}s&É+c./v/l+"½Ó éüXø#öE÷vøàõGñ¡ëÉãüݬۢØGÒþÉȿ쳯g¶SÃwÏÝ,íëú_’ Ⱦ(Í2=:'A›CÁ?þ9`4Ú0Ì0b1.„%~ƒ ÿù¸ï¦ë¨êFëDîøð¯òùòiò2ñðàñÓõq÷wö#ö)õËðÌífï5ôÎø;úQúÇøZ÷È÷¶÷]÷?ù%ÿéUgÕž Nÿ¼ýFþUþ^üÆúú$÷Æò|ï îÙê;å*ß‹Ù%ԿζÊȯÇ2Ë…ÒÂÛ«äíõ´ùü¹ÿz¶ ôI> ,$a&(®(Ž(X&8#»!, ‹\'¸ŠÅéI²\î`×ysÅ"ÆÀ ›}nˆr ÿ—ÿÕ :œW%¨.™2š5‡7ú5›1£-®-¦/Ò0È1Œ0¿*Ë QJ  ÿ²ôìÛèÔçÇè†ëÑîËñ«õøQú¸úž÷²ò¿íÙçÜáÝ¢ÙvØéÙÜ­Ûô×ÑnÊ’ÉãÎ/ÖÜÛà/ã[äíæ‹î”ùHVâ±vŸ[ÙP–O ¹âáú£õêó¦ô,ô¬ðéGà¨ÖºÎ*ËtË/Ë7ÇR·ÀxÇ#ÖUè{ûL y&‰Ó!î)3‘;ç?í?R;æ0F#×^« I i êàåû óîÒîó/øŠýZ ÿ¯û„õTññÐõ:,?Ž9Š ó Š ÝJç’½ Ñ ‘•;êÿ|üIø»õªôñCêêàÙÔíÒ Õ&Ú‚ß å3éëéßéãëÖì˜ë²ëôîÕôûÿw’ÿéúõ÷çö–öá÷oø‡ø¡ùü¶mG Ý !˜†v ý4hüü|ý@ý(úSòMêZçŸçjèènåðàߨâØé$ótþk Ÿ©#·'C(¾'¶) .)293Ô340¢'¦ç.Œ tY /&ðÿ}±Œ Ï>ÆÓ° ¿ˆÝÑü{óòéä¼ã:ä½èÄòdþ â5nìû¬§ è&,û*Y%¡q³ U«ûTöVñÛéÚàÛòØøØßÝçÁð­÷»ü¢&ãý–ú<öÜï4ç½ÜðÔÑZÎãÊVÉÌÌ}ÒãÙ`â€éŸïrô,ú>·Oâ"³(ñ.+4N5°0¾)g$åíߤýãõqïê0äÚÌÂ¼Ž¯V©Qª5®´2¼ÅÃͱÓBÚ,ãõì€÷µ±  L,H:Œ½6[ˆÚæÿ9B I… ˜ Î  Ç î{,IÒFêäîBÓ:V"¤ æZùfòFîæì”ílï&óŒ÷ ú‚ü°â CÁ'B2±9ˆ=¥?D?O:3-,r%šÍ¤hö÷ííZèšåoä`äoãÌájâæ,êWì¢î-ð÷î@îÉíŸë«èÁæHåFäLãâáà£ÜxØiÕhÕSÙàšé)ñ'ö‡ùzûGûnúeúžú—ýD k‰]X, DûËõ´óËò$òOò‡ô=ø4úúùÚ÷ ô•ïìÓéOèèÍé^ïA÷‹ÿÆ ‘³##!“ à ° ô"4'›+¨,Ó*R(€$éž é|êü  Ë ^-oy*]*Ÿ- y)š ê.’äJ[ïÌ +¨ÿXú‘òaèÞߣÙXÕuÒÐæÎÐBÒ¼ÓAÖžÚàÆääè£íØòøÒüþþ%þÐý0ÿ¸ûfÿ%úØô.ñ¡î5ì|êêºëçïôø¡ù!üÎøm±€{V«±ÔüˆyúÐòì4èÑä.ßqÙ9ÖÙÕ>Ø¡Þlçï¿÷¾u ZÞ#ž'+?/˜4œ90;¸9Ë6T3‰-ù%1TF„” þŒù?õò„ô´úúÄí ] «pWV"^ ¾²úKó­íèå‹èeðlùiïÄ #²¿©{­!"@! ÿ6ÙÚ ¼ˆûQöî=ä=ÛÔÕ8Õ,Ø÷ÚâÜmàªæí(ò}öxø€÷GöýóØí›çºánÛÐÖÚÔøÓ{ÕrÚ#â2ìÐö—ô[ Œ @Tf%"‰(µ.a0+.ˆ**%¶‚$P ˜ þ.ò-âÏý¼"¯Ÿ¨ð©l°ê¹yÃÛÌWÕ»Þrêö´ †ô ~)³0w6j<BÜCEA<3`&}t×ÊŽŸ 5 qE··*U— fÈ”ª ,£ÿþ¡þ—ÒxÿËýüÇûZþ…/ Õ t ‡ZZíàý4Ë o±ÿ„ùGôPðbí¾ê%è‡çBæ=äÛâÌàÁÝ›ÙÕÔ^ÐaÌ È,Å{ÄŽÆÍË#ÓgÛûã#ë0ï óY÷—úQþö>ø¯Ž,µ§çŒ ó ƒ„oú?ôñ‘ï/ï`ð-ó ÷½úîÿ³ ñ Žiä‘óMé l'ý@ûaú{ùÔú^ýÉþ9ÿ§ÿGC'Só!Ê(h-Í/,1í12‘0­,ñ$çòº†lüú6ùZøröhõ<öeù7üÏýÙÿÆ8áˆ<üÿ•üöø‚ôoïìé¼ä0ß’ØÔ8ÓfÕÙNÜÙßçäì±òA÷·ûcÍ’ —õªÛ5 M( ©šÿkûoôËíÍéèWé\ìMí·ëNèä³áááãîåfë`ñH÷Šý( ºU$½v¨æœ••F íÑ¢ˆ.¢k¸É *èbþ×þ®ŒlëYû{ù6ùbú|ýòþ àü¨_Rm’"Ö&8)Ý(Ü%8!,Ÿ$ŸRøìïˆêÁäÞìÙ:Ö”ÔªÔ{ÕhÖHÖ‡×ùÛlábçvíZó ø6ùï÷S÷aø¿ú¶ü"ý¬üûÔ÷þòµî-ìÈêé@è“éeìð#óö›ù$þ«Å{ ý 2 ¸ÿ†EÂxýóøoó9íYçâWß ß3á-å—éêîÒõóýp °=!,'d-3Î6™706C5Ê2F-/%w~ž¾ ò2Gû3÷4õ]õ-õöyøkúüÌÿ<  ' pŠûôÅîÏédä7ß!ÜþÛß+åpì3ôaûãô FÜýu(jí rÕÿ?÷ïíèÕä1âðÞ²Ý.ÞÈÝ¿ßxåëÏï“ò•óˆóïòò„ïëêêqèÐä á]ÝÉÛ@݆ß#ärëPòš÷­ýzx ï` N#Æ$†%%ð"f©- ÅCú[ë‡ØìÅA¸;±<°d±r²Ò¶Ç¿ŒËÇÛ¿í@þšÚ!`2«=ÝBLDMD-D]AA;·4. %›]þ÷óòó5ôôóóQô¡÷òüN „¾í[x ’ÎQþûk÷³õ£ö|ø¢øŸ÷ø©ú(þöK v ´ Ïôƒgõ”¿« K ù ¡ Ç/\ù öøpùØøø÷ýó²î0è3á®ÜGÛר‹Õ[ÔÕùØrÞ®æñyúø–Yô b"u#´$¢$·"« mÆýÅ'èé 3¯þÜüTüý/{Ç #„—Lmý•¹ä‹ &ýZôãì+ê•ë5î–ï*ðBñ&ô:ú–‡ VÑ%<øwîø· œþ§ú~ødõëñ4ð”ïÿîï¥ïHð‚òåö‹û³ýþòýfû°÷óòKí/éÀæÔä]ãØá ßlÜœÝEâ­æê#ìÇë;ìtï<òÚò óôš÷ü/to¬"ȧ ‡ 1 y,ÿþæüúcùñûaþ:þ_üCú4÷Só’ï£ëòè¥éTíoò¶ø¸þƒèx ë Ì ó>Yë¡ßü)¤Mê\ãÈerÜë¯@BqîГ ñ(³úýeѦƎv!€"e#á%æ&L#È•xÄé xÿü›÷ó"îWè¶âÚÞËÜ…Úh׺ÕÃ×ÈܸáCåšçÛèé6ê¹éÇç˜æ›èÐëàí×ï’ð¢ï‚îâìë›êë?ì"íVîKðÈñ1òèñõñØò&õ´øý‚Ê ¥POû¤ö6òUïrìüç ã+àß—Ý Ú‰×ÅØpÝæâñèfî…óOùlþ¡Ü’k@ Â(_/I2g0|-Ý*5'¼ =ö™ ŒkRÿµýcýÞýyÿÜ—YVkö. ãþ† àö‰ø¢ð˜éuäâíáyäöç"íCôpýî  Ê"U$%0%i"TZ:‰PnûÈöØïÚçŽâ)àÒÞÂÞMájäÙæSéƒì‰ñ‡÷õûiý¤û–÷ßòºîÀê“ä(ÝEÖKÒÆÔƒÚ7à8åÞéjï-öiü»à ï í³Æ!n$C$ #ëQYqÚúô³ïÂíNí(ìñëjë8éaå(á~Ý'ÚöØëÜxäÕêbïêó¦ù‘m 2û$)(+f-±-Ð,Î*š's$u!±?«ÜÉ •Çß =…Î× Å ý D { š P [ t o  š :ã ò ä çnåþlûyùðùøýÞ!‰õ˜ ïÌÐèIºý§ÓGý”û‰úÝ÷áôòOîêæÒãtàÛÛ5ÖLÒ÷Ð}Ð3ЪÐhÔÛÍâlç=ëð¹õÍúñý¯³ m U¿ŸýNúgø2öAóñ¥ï î/îï«ðò ò±ô?úTÿiÈ /A&« ~ ¨jœs J³Hýíø÷ëô«ó ÷âýF@ ìº7 +!Y!+!mVZ™î®jm0 qÿ7ûùø÷÷¶ötõŒôœó„ò²óônó?ñ í*çÓâàAÞ ÞÝIÚqÖDÕ[×…Ûáà?æê<ì{íSïâòsöAøø¶ù©þ,q <¤+R t F a ø}BüŸöKñDîrîñtóöó›ôóõðö'÷öèóñï#ð%òYôPø°ýtj3 b  SyÚý±»0Ýûή]¯Žµ û€ôãñóqõù¼ûVü×üþ›þsüû“û®þn³zþ© Û º ¡ Ó(ÿnó2ü0øõKñìçgáeÝÚÙóÖ¢ÕõÕØäÝÝå÷î ÷‘üªþ7þqýeþó^9uµè q º Ê ì R r Z6ý¦øê÷Pø´øMúãýþs ¯ Ð o ÀOFö‰üCôêÀâ&Þ[ۨ؃תØ0Ù Ú«ÜáÌçÃñüûCs±)á/3.5!5N3³09.“+õ%ï#Ó) P c q Î %ü eŸïû  Z7uÞV çûçñ è±Ý°ÓzÎlϼ՗ßìBúÜg.ü(É0‘4ó4ö2E0€-V( \ Aõÿ*ûöÚïXêÖæUåaäSäÆçMí¾ñ*÷uþYbWu[û"öwòùîñèqàêÚgÚzܨß#å–í«÷Éÿ T ò¥Äe!¸"û!Ïá\% ˜“ú ñ(èõáúßàâÑãçøëió=ýëŠ ‰zN忬É!Œ#£$,$!Hï¨B²¯!G ¯•±2. ‚¬TÃN[f×úÝõ²ôõzôqóÇôëöÎö7ö‚÷üúvþƒìÿXý»úXù/ù“úÖýnuÜ9ýSøôñ‚îÁê5çläÄã¿ääàáOà‹ßqÞFÝÝ®ÛvÙÕÝÎÊ+ÇKÅ„ÅmÈMÍ*Ó×Úßää¿êhð<õŽùÅü¯DãÖ—,y©#†XqYü‚ûþÙÚV = p •  јÅOáÏú*óÃë>æQãâ7äïêÌñùõÎúqÔ ·2S ó%ü)–,6/½0Ô0 /Ö,.*&&ûj“ º¬ÿ¯ù‹ó3íèè è&ê®ìNîVðvô¨øìùÿ÷^õFò=îºéµä›ßòÚ×XÒKÎoÌ[ˋɅÇÇŽÇ“ÊvÑØ×Ý3å‹ïù³ÿ†è²V6Û|i d éüöú˜ø_ôañGï‚í¬í,î1ìÅèGè+é~êìíVñ¦óøÃÿ_ÆÍ8Î!Y&È*s.l1»2Ô2h2†0Ÿ,Š'i#"!"ã!´!5!³  neóï¨t¥Í?¯¹½ô4¶QZ· Ñ _ ˆ œ ôkîþÌ€5.¾a NFŸø/ñiëmåàß…ÜéØUÕÔbÓ³ÒjÓQÕºØÉÞ÷årìsò_ø¹üpý{ûøÚôàòÑòóòºïùëøè#è¿èdê ìî$ñ}öšü @{Æ; l #<Á ÝUý õjíØçã¢Ý²ØÔNÐ͋͒Ð(ÖúÝðå1ï¹ø3Á™^b"ù(·,z1è5}6ž3/|+&l ïËêQ ˆ??Ý ÈŒýTþ¥õ w…ü[BŠ[° ,àõëéà¦Û“Û÷Ü@ßwå;ðýú¨ r{È3"ƒ#D#¸"Å!Ò‘K`÷ É6ø(òZëä:ÞiØôÓÆÒ-ÕHØüÛàæ¨ìðfò'ó6ôêòßìtå[ß%ÙÕÒ:ÎÈÊGÉÞË}ÒøÙ¨áñê³ô6þTæ åó]B± %k%µ!‡ýÔñ t”÷Éî=æMÛnÏõÄv¹¹­·¨q©T­B¸KÉVÛ_ìñýŠ`±&Ø-¨3ƒ7”8¬7Ö6â6j5Š0*$@$,ÿ9 ÜO¶8f¨ RpXåt#¡#4ƒÆxˆ ­À½ÿPú9ô©ðFî\í®îÈðÑó(úz¸î ß $:¨5â z´üºø]öfööBóïëèIãiÛqÓåÍ‹ÉÑÄvÂ"ÄrÈÏÍÒÓÙ Þ.ä‚êšîjò÷µüúDVû ™ ÿ o—w¡yJÌ ünñÿæÌgTóX *…âõÜ#8'Z(µ&5#6ø‡¹ÿDù@ô±ð=ðùðñþò—÷Wý  Y`@)˜4Öô¨î ê;å@àÓÛ±Ø"ØFÜ?ß%ÞÑÜçÞªàÈÞ/Ü Ú“×vÓ«ÐeÐèФÒ*×uÝAä_êqîñlóö[ùhþ[Ñ ´ ä’Ḡ$1  [,†ߺ®h— ¹ï.dn"j"JãIÄÛ –'A£þVýÜü"ýËþx"  ðФ#P+3Ž7;8Ÿ8ý89z9::`:¢9ß4c, $“UÉ6 B§˜/á\m LÒüOøáøKö•îQå-ܙԼÑiÑÑíÐÊÓ„Ú¦àÏä˜ç¤è¡çæQãRáãçWëpð¹öÅüQëÕ ' 0 †û:öLòðüî[í¯íjï÷ï¥ï‚ð‡ï+ëhæ‹ß@Õ÷ÌÈóÄtŦǥÉÕͶÖ0àYçûî‚÷Èý t ñ «q$)!c""Â"Ñ%’)ð)ƒ%ô[a / « n1X ¾ À a ÌËþúù¦ù¿ýIæY _`'&"%"˜!!|¶i Ò ¤z–ü=óyêIçAåàÞÀØÔÑ0ÎÍ£ÏSÓÁØyßoå­ëŽñ¾ôqõÞ÷$ú‰÷óÈðŸòÄö¸ù¸ù=ùïøtø=÷Åö²öWõÂôêóÉñDð§ïôïæónüÁP Ñ Á ê nîü¿÷#ó9ìÉãÞ›Ü ÜˆÙd×PÕ¤ÔfØÞUå<îðönþŸ9 ª(É3T>3EäHãIûI`I5Dë=û9„4w,%Íæe  G ¹%–Œ¤ÂÖ×™ ^ÄøóïØèSåÏâà³àõå¿ì:òšöàùyýÌÂ-¿ «`V J ÌãøÿÁù~ôíîâ+ÛlÖªÔÕþØ*ßæŽìÄñ?ö¥÷ö1òìÈåà3ÛÌ×ýÒ`ÌCÆ´ÃÄFÆÐÌÝÖ1ã¢î£÷°þ ¾ » ÜÿquÝec ¿È°Ï £Ãû•õ(ëÂÛÊܹá±¶ò¿ÞÈ~ÎßÓÛÜ­èëô èý(Î5¹=ðB'G¾IîII¾G²Aã4Ð(' ×¹ç þ  ë .&  …3f#þ*‘/è.9.‡.r)Ä fÿ*÷ôÕò0ï,ë¹êíQð¹ð´ðôžú!§ç¾r§¿ Å ª Ø =¸ÿ—ùîò1éðàUÜ#Øç×ZÜàÅá‰äçê•ìrêáw×ÉÑqÍJÌçÎxÓ‡×ÀÚèÝ âçèÈð ö‰ùÇþ6Ü‘ ¤ø* ":$+&&6%Q$¹KÙÿCþ ÿ?i ?©ÏB"Xs!y# !#• i÷Áîê,é'èJæÓä—ägåéHï½÷¶( ÀK‹êê#7'Å'q'â&É%Á#ú!\ ¢±¾þ1ööñ,ò}ñðð9òmô”õô\ñÞîüîŒìÀäÝ'اҗÏÐHÐûÎ&ÍcÌÔÎkÔ‚Üååççé7íòöúÿù9>1 p=|d8Žˆ =©ý/öñæðñóç÷"úûù×ôóíÄé"èZçoçvç8æÁåÜæˆêAñÎúÏÍÚ Ù±³JIBÀ&úq$!4¸PY±š ãLý¤ýüÂù‡ùPùùrø¢÷—öõö¦ú*þw  B¥!Ì%È'Z(½'%¶ 0_95 …RþÛùôóÑíÝé³ä‚ÜeÖ·ÓåÔ@ØÛ…Ýzáç¨ïlõ@øËûÞþ`ü÷óJíìÕíËñòöÈûxÿM9ÈäI¦q åi°×Žè~è T H S ¥ d ñ tøÇïèöá¾Ü"Ú^Ø’ÔàÐöÎ?ÎßÏoÕ#ÛÏßÃçhñûûƒ ɸY'Ê0a9Ó>&?ƒ>=’7Ö/'ªu]Ð\gD uO~ ù‹ Úoî—ä© |þ[ø¡îÝæÃãRã#æ3í–õ˜þ\fÄóßvΫDhhÑï !”q~ÿ%üÉù:øÔõ›ñ¦ïò>õø/úBû¡üþ-ûVõ©òñÙé›ßæÙ¾Ó]ÊÝÃoÄÍÈwÌãÒ¥Þ ëKó©ø“ùúùùÿùw³àˤ€Vf ›Ðû©õïËèbå<åsçSëuïñœï¦ïÂñ£ò{ñèòÇö4ü@¸3ëu ˆ#ù"Ü!’#c%¤$…#þ!ápäÈÆsà`Þà ©¿^ü¾–žs ›xý øxñîî+ñâò»õûÃükú6øûö<õ¶õùÊûüäü:ÿâçô†€iëý~ú¶ôrð-ìDæÄãFç.ë7ëNéÁçüäYßÚ՘ІÎ{Í9ËîÈÉÌëÏéÕ^á]ì{ïpîNïdòöêú+ 8œÇ!"ñ#Î"•"$e"6ÝÏε ¬ ï Í -Ï÷ ˜ N ¨ Œ ÿ Õ ê °ßýó÷™ó¸ï!êzå¢äVçXì‘ò[÷êú-ÿÝ B=½#±Äx ¡ñ¢B¹Â?^î  rÙû3õ™ñSò3õ«öÿõ[ô³ñ´î í–ê1èLèÝçlâ~ÙXÑvÉŸÁd¾ú¿5ìÇÛÌFÒ)ٯ߇ââââä±èÙî‡ö_þ G ­FýuÕ{+Ü€N L @  ¸uÑÿ þü¥úSóÛèfâÊâéç_îÝò#óÿñÂó÷ø€ÿÿXÁ 2?g!*(8*h(…${!"$=&Œ)”.‚2Â/²)ô$Çå|}‡p!›…ÍeM9žÐJm +,W‚= ¥ ÿU…l™œü[öýðQë²å¡ÞÙØ0ÔÐÆÏÇÐ•Ñ¤Ò»Ô‘Ø Ýà7âôäÄç.èé í°ñEôõEø³ýñ²=ÿû>ú*ùløuùZùMøã÷(÷Ÿö÷/úÃýÖ"Óÿ¯‡áÿçý[ýÕüüùõî‹æ¿âäèêþë¤î|ïYî¤ïãñròLó—øÜÌ ÍŸ5}¨çb!\"ÑÚfÚüæW+Í. W&ÄIkœðÿÔ()è( •)Èéù×ðçç^á¦ÝÕÜáÞ[ä\ë»óÞüª1)ò7=a Õ Î -. Îjþˆù ööò?í¦æÃâáÃã”çVì\ò#ûq! ˜ ÌíüQóÔêŽä)ßÌ×ïÍÞÇɤÍÒtÚgåtï)øƒþ†ü ÿ6q©rúGn« ìMúôÒîì=ëœèyâݲÝÂä(îÒõáübÂ~p “¼PÀn¸…9y¢ -/°ˆ … Œ3B²ë xì­¡°N1·í Ï +<Ûi  ‘€dh˜´^ ½ ‹­ÜþøýYýbý™ï /úµõ˜òJîÜé@èjê~í`ìhæzß'ÙGÓÍÏy΂Î>Î$Ì„ÉÔÈàÊ…ÎFÔ[ÚDß%å ì¨ðàñdô‡÷ÑûÎ`/Û0JVÍøŸ&ìýðÑ|oz†çJVتFõ±'¬|÷XR )ª÷ãòÜòõ\õöAùòýÔN ’!™';.‰476÷1*î$%r&{&Ç$@##A!Ãïm… rþú?õ9ówñ™îÎë÷êæë¼íïAïUïÉíêÅå¾áÊÜ`Ø´ÕÄÔaÖ×Ú·ßáÑßtÞ\Ýêܸݠ߾á0ã"å èíýô¼üIqª£l¬º ] ü דÂ>KQ]µfýEøUñ6ëÊçäå,å‡åç¾é§ì¦ñø!ÿ>õ –[à¼6 dЬ`™¶!”"± 7 « ÊŒ)L Ù6 _¥6 ì ù  _Šô ï / c ¬ ù… Þa®Š ñ ø¶ï êOå^àÝ Û÷ןÓ$ÐÒË–Ç&Ä®ÁáÁoĤȯÎÀÕ¹Ü%â¾äáä‚åªè ì¼í@î™îâïfôrúÿ0qÿ¼þý¾úbøÞöÂöi÷’ù ü û÷ÙóÆñÒð«ò€öãú ÿÈÿhûÇõÕð©ìpéçþãß‘ÛGÛ0Þ»âÅç°í’óÎùX´ .×Ò!æ&+¦-B/'2˜57­7Ô7•7@7 8b74460p*{%| æŠ Ê B kÚˆ¥ŽœÝò› Ìû2óòîÐê³è‡é!êðèêHñÝüT±z×Ç"h\ê `K¸1 „±ÿùºò[í êMèZçæ"åyçëÉîð¢ð•ññ¡ïní*êÁæeã¹àQ݈ØÓÚÏ9ÒAÖÛÚÎá¤è×î<õôúáþ°Ó tyi ¨'Q+Â*Q)''¨"°˜M¬ÿL7Ýê ›-HùÞòtì:æßÝ!ÔÍ]Ë´ÏÈÙ2ækðb÷5ýæ¤í Œ¾ú"4+ý0J4#5ô4 5l6Ô4¹/Ê*D'^"€zk üKýúéø’øžøýóÚìÙèÇé>íï»ï¡òõ÷áü½v¡û¾ô®ð‡ò ÷%ù ú[ü«þÌë÷Xeûqö\òÍì‹ç·ä•ãòâãŽâ‰áˆàvÝ4ØÏÑáÍwÌOÎÒ+Ô|×þÜ·â£çêê í‚ðúôÚ÷Öú¿ÿßÑ ˆj\Qæíó ‘"U#é!‰Üò’ ± ñÙý ýØ « Š þ Z U 5»ÿÂúø1÷ÞõôõøÀû¼þÙêD 8 ‰ý$65ŠÈØõ¶"°&Ž)s&!½ý` üJüpù©øäø¬ù3ûòüïý„ý”ûÌ÷6óqïïTîsçcÞ>ÙÅÖùÕèØ´Û.Ú ×ØÚÞzä$ê¹ï˜ï8ìnë ïöñÖòöþ1YSW ½Ï œkrk“ Ð0üö™ðgï¯ñ2ñíékä‡àráÝç`î#òùô÷¹÷=øUû~Ç=þ° ‹ š­"Š$#%"¾ {þbji)/g|ô$…N ¤žàcB¥ÿ—ÿùükn \þûÇ š çt”e | ø ÉÙLUý:úPösñMìèÛã™ÞTÙmÖƒÔ-ÓéÑЇÐÓ—Ø<àCçë î¼ïsíRìæò ü@ÿÌÿźŸ AüþÍ÷5ö`øNøèø‘ùi÷uôõê÷aøPõÛò»õÙøaùúø#øðödô?ñÐï[î•ë¨éçÍãCâDá2ßÃÞ¡àãwæAê„îØôý&È :8= y#Ã'<,714C4"3%2±0a/„-á)Õ$ &;ÔÎ èùõú/ÍYá œ 2 ˜ ó Þ%hú&õäò1ñ…îÒí¬ïÓòâù7 äâ6…båýd›ïÙ¯þ ²ö$ûƒó”ìæÐàRÝ|Ý\àVãÖç¡îäôE÷Çö&öö!ôHë.áàÝ3ÝÚ<ÖÖ"ÝËäÔí?ø?ý¹ý©Z %x#$,ê0ý21B. ,ò&ˆÓté 7 Èù÷Dî»á–Ô Ë9Ĺ½‚¸È·Ý½BÉèÔÇà¤í¾ûÄ ‚Ž*²7?¨B·D½DCÄ@Ð<,:n6ƒ0¹+ó(§$ÎЬ u\ý‡û ûÿøõ`óîò5ô1ú­Æš#‡¶ô [ § è”þÞ‹þ üûFü°ÿ‘Éÿ ÿ­ÿö$¬üø÷‰ózðßî®íeê¢æÅåàäAá…ÜÊÖÞÏÊ2ÇÇö¿ý» ºŒ»é¿óÆ~ЖÛiåhí®ñ@ï êLíùB³Ê ÇNò®±|k= ÖÛ* ©ÞþWü ýóÿ ÜÁׯ á°Fl­£ü+ù™ö„õ©õÂ÷ÑûWþèÿ~Vç† S¶ˆÈ!¾#ò"Ì!c" ##¹%U(Æ%H EÒ¡Ë5ù±ó­ïöì¤éàää6é–í îÏé}ãEáÚãJå‰ä4äãtáàÂà”à[ßaà â^âsåêÆëÁç?ã>âãæëÊñ\û0 ;ŸB£µè°Ê²§“   E/w›„üÒ÷õùôcô+ñ1î¦ñ ùËûàüðé *4<òˆù¿;O$—')¹*õ)p)Ò+G.«-f(!®D_ áq« Çn»Äÿ ó™+¼é- œ“ è l † 2 àu¹ ‡ ä|÷Ûòõï7êå|âá\ßÝÛ ×ÐÑ·ÌÉÉÈ)ÉôÏ¢Ûmçí!òTøü€üŠý$á‹á76¦mÿuýßúyø+øºø¢öËð[ìŠëþë­íýïqðbðqó¹÷mú\û¿üÿWÿ±ûìõdï éÊãIßáÞûâwæ[æ¬äšâ]â|çöïÌùbW7žÉø#|,~/Á2É:M@¥@5?;V5à0i.ˆ+í&©!{  Í+^Ÿ% ·MpýC  ¸  Î1Xù{ñòëWéè5êüí@ð-õqýÒ®kœL 8ÈË€pŽ ˜isúåòëfã'ÜúÖQÖMÙÞ´áÎâÒà˜Ý]ßåýêè×áÏÜØӻ͡ɜÆ<Ä*ÄÈŸÏOÖ]Úqßüä'élîûó£÷˜úÿwî   Ì }  ½… Ä/ýîð€ãÅÕuÆú¸Š³æ´¯¹èÀ ÉÏ+ÓÛôåSðìüü lq,±3:8ñ8h4ã- .Î382µ(_"Ë[° é*¦" ?SSfs Rdáû#r&H%逯¹VCýƒþåPé‘Õ)©÷ ¶5± œ o ã Ý Ì ØüäÖéa§úàïÁæQàðÚ—ØxÚÜÛÅÚWÚÙçÖ«ÓùÐ{ÒÖÊׇÕ&Õ–Üè%ñàô‡ö‰ù‘ý•²ù ;‹Ç RjÈ{Oü õ  , ƒ³[§ ö ß .w­Ôd› ?ÿÌûºùBù^úçüÐÿ½êK {¬’4&ì,3-Ë/71 .³+4*2&Æ"÷!Ä æaõþwùJô4ðŸííaíLìë²éØç·æ çEé6êsæáÒÜïÙ¤Ø3Ú`Ü ÛƒØŠÖÀÕ÷Ô¬Ó—Õ«ÛMä×ìžñÝñóîøš¾ “‰n ¿&l*]*Ö'‹% $­"¹! ¨¹åÿ:øvó¦îËåÞbÞwã|åàÆÙ‹Ù2Û'ÝàTã`äœåmè"ë5ïvó÷Qþ`ôô Í{â5ì79µ%g,u-( ë> çù9qyPþ*ú˜ôøízè—äãxäè4ícóºú]ÍPŒ T.<dJ‚v AºÙæú öoó*ïIê´å¹àüÝsÜ=ÙÖ2Õ*×ôÙñÝuæ¦òŸþI £õ&þm ´Hw˜ _ ƒÿ+'nºiþvùåõõ ÷aù‘ú÷ýd”ý’ø•õ¯ô^ôuóòeï ëæÜßÚ|Ø›ÛÀÞŽÞÚO×ÝÝ<ï Œ H¦tâš&/È8"AŠCÒ@¹;^5‚1ˆ/,-ß)*%³›y‡ çýþÑýû´üÞ   U kÓ V[8þ’õéë&áEØ6Õ²×Þ6æðûŸî ©°°9 á÷kØ$ù$G"¡!Ȭ :Xäþ­ûP÷òžêêå‰ä¸ãã”äêÙïGð§ìåèÚä âðßòܰØZÓËÐäÑÃÓÞÓ­ÕïÙüÝ‚âèî×õwü ð 7v/ ]W ŽÅ‹wÿžùìðýèfá&ØxϪÊËPÏZÖÔÞ¿ä6è6íCóQøÞÖè(Ý8ƒ<í9Å6ä0s-Œ-m-í)…"[@B  Ž;5ìØ ! F vä¶4È ±tD§g  ª ?A  <^þáûñû_àyÍß™ Õ{ Ë Ç1 {¨ ûŠùcõçìäæ6ã<àdß²àÁä0çãÝbÙ½ÕÓ»Ô|Üçîïó^ùÊúüìþ¯¹. %¾påôaÉðÔ f³ ˆÿçùö÷Bø“÷Yõó;ó%ö}úþüÿ±Ò?E.“üføÈò íGêìèPèèã3Û¯ÔžÚêÚ÷ÎýàÿW 2."åùdj|[m¥Š )üÁö²ï1çß,ÚšØzØSÙæÛóß´ãGå ã´ßßãç0éèôãÆÝå×ÔÔ´ØŠßVâkápáÔãóç÷é‡ëfïTö­ýÉìäckÞ1„ü&(N#‡êÜz )Ôôé2ùüîžèŽçfãÞ™ß&ßÏÝÅßöàËß­àNåºëŽô«üНë ö¡c,)•1Í4–4v3l1Ï-œ(½#° ¼2²“’{ =ŸêXR/ Ù  A –ö.² 1ƒvÛ^E$%è"‰#‹!#Ë…(Š }KÿçúÒ÷Eó‹ë%åäÚâÐÜÐÖæÓÑ,Òú×"Ý’à æ ï&ùÝÒ]mkö|ž—ʈüˆBÿîþ›ÿ²ÿ}ýÑùRöõ‡÷ˆüßÿ&ýõóî£ó±ö¤ôx÷©ödîžè}æÖäXåmçêaìðí’ïœñŸð@ìöéjðìø üšz ‘µÊ#Ø+ï0+5ð:@B«FE°A @I<³51û/p-%Ó@dðÀá ôù••™î J GøÃ+"þNø#òØírç£á³âPè€í|óa÷(û”l >Þ¸ä(‚ 2 TãÿWøçð;ì¨é›èç½áòÙ€Ô~ÓAÖÇÜ ä*êÿë”鲿üåÈæ•ä^ÞÈÔäË©Ç8Ç˜È Ì¡ÏwÒHÖÚøàëdõ¿û™ÿ&v ÙËF#'/(—$/= n›ýÉ÷æëÍÖÁÀÙ±¶«p«Š¬ò¯$¶uÀÊÐùäæö¾‹!4'Ó)«3>SBâ@;{2¾)aø"ÂÈGó.ÿâûeú3÷ÿôö]û Ø  Öž[†snÿ@ûù©ûtýMýüGüDý‡ÿÿ‘÷© pz*h>"†#G!·àÏ ‹ Ò Äðú{÷GóÀîPì<ì]í½îœîZêÑã§ßÇÝÐÝ³àŠæ{ìlîíuìßîÔòÚôoôºõIúåx Så‡Ô"L$'#*)œ%z! ·9œ^ H £FcÄñý©û9 ºM^6&þü›ÿôû<ööíöÍøpüxþÿ(ÅÔƒd!,"¶#ž&Z(a&É ~"G$x#ó"ø :á’ £æüRõrížèJè²ëßï™ñçïwívéuãwÞrÞVáSãÒä äžàsÛ,Ù"ÙSÙâØv×DÕnÔ‹ÖËÙÝþÜÖÜÓßuð*þß* F¡ƒ|Ξ—%Y'Â#¹s! Ù Ü ¦ø þªù¿ôÞï^ê`ã(ÛÖÏÔÔÂÒÔaØžßÎéçóîøòü/¿ ™åù%ñ)--.ø+›)„*ú,.`/I0_/%+¼#×µ JY‡J  2  7)°«#…Æðø¸  d F ×FBƒ­š¥ )þéü‰ü˜øsó2î êœå¾ß¾Ù‡Ô·Ó®ÖéØùÙ6Ý ä‘êíªíXðºõ¼ýsv ©í{9à Þ ×5CûÈù ümüÑùV÷¢ò èiàtåçïýóô›õOõ%ò ð)ñò[ñCðoïÓíµéaã·áäÅäçqësìEëÐëí®ï õ•ü¬ü6 ž  ë9? Ü$„)ì.4ö5J3 /Ò*¹$}0Ð FÝýEøô$ñ¡ï4ïúî§ð®öfýÈÕý,öZõþ¶e+dýÅð›é§étèÙâ•âoê¦ïóðôOö·ó|õëþf^Ó.’âÃ"¿¹ÿÿ<;Rý'ú€öÏï:ë^êÒëŸìì ëéë+í×ìçênèùç¹æUåŸåëâ|ÝïØmÒ?ÏÑÒ˜Ö ÙÐÜ{áÃäBéñ‘úRµ ª"Y!Õæ )Ù*'U&?%ÀÄÔû ­àõŒé'á³Û×OÕÍԔЌÍíÏœÓ<Ù¯âDðÅþš ß2'x.3ï9{AhGlH"Dú@?;Ê9º9x7¸3/)s"Ä\öÖ Ï ÀØgqv‘’|  o_ J0²Júíñô§÷®ø~û¤ÿ ~ -5ˆ ›  L ´ >6ùôšñ‰ð§ñfïæ[ÜcØ ÖœÏ»ÇüÂÁ8¿f¿7źÍpÔNØîÛöÞ"á¥ãõæ%ëðp÷ŸþzS(' =1g¨ Èü"«ýýû§ûqøöïÅêJîûõUûâüÚü÷ú¬úÝüp§ø}þ<úÄöÈòsíéDåkß¾ÛÏßYé]ðšò!ú|Eð%²*e-æ/"59,7Ô3Ã1D0í0]4þ64&)›ð åAþ¸õJíŒè­éÃíÏñôó‚ôõ¹÷çùÝû³üuöé àkälíë‚æAá,Ù Öê×5Ö(ÑÝÏ%ÔÆÙ°Þã‡åæé¨ò×úÄÿ/ ž‘ÝÜ|]Û0*Æœ …Vþÿ¿û=ö+ó\ðMèßÊÙ*ØÉØÚ Ú"ÚDÝ‚âèÐðzúó ~ b V G 쾆Ê!Ù!¾"_%õ*U/®'Оªy ú ³éÿ 3   ‹ Ö&Œúký‡P íȘ©ó`E#s'f&Ú9q1 ^÷û ÷6÷ ó¡æÛoÕcÓ‚ÑXÍû龮 ÉáκԈÚÑâZíkøŒŠ g Ø{ƒŒ öEýúW ¡ò¹ÐþÐþ‡þ1þ‹Q¯û ó7ïíéìdîÆî{ô7û¬ögõ_óÿðÑë…æ&ä!ä’ãÉâåà¬ÜÛðÜXàüç“óJüK7¯Ø!ü(‡-º1¥6ß;¨?•@¢?!;Š4,—#‰õìnCý³ýª41ÿ1÷‘øÚ´ ~Ö Ë÷üðüßþüýq÷Cì,ã@ÜØÜÖ2Øgܸäíñü°þþ[þÿ#5 ,àÐ# y fˆ(Š ©:ÊXvûÿô·îÃèä`âtåüçGæåõåæVã.áŽá…áÓߎÜèØ¶×ˆÕÏ˲½£ÉzëÙõVòÈïÙìíòÈùSüÃå #L%$U%Ø$Ý"ÓRcï* °ýeõöëPÞX̾e¼!Á«ÂkÂúÂûÃRÅ[ÈàÑmâ÷ôñQ"7, 02ñ2 6ù8÷50,°+µ+ /€0ñ+7%!Ät~  ± ãCpÕ"‹#?! ¼¥‰åyEÇûAöòî—íð:òIòîðpòöTøÁùw À$%óˆíU U  ªÏýûõŠîVç3â±ß ßÑàâèácÞAÙ)ÔÈÐÐ|ÐÒÓ·ÙÞÊãé4îò]÷7þ\V˜ xÚï„ä øûH %_$–F© É ¸ßÌÿÃÚ ÈqXÚš- ì’?Šû}5 Á›üòù‡þ|Óïÿ:þ9ù%õ{ö£ýb远4 ŰàYF%l!¯$ù'+Ù)§#ƒÛ¿I~ùMñ¿é½æEè›éÕéémäQå!ëpî¿ì`ë¬ê"äÛóÓÚϬÐÖÔ%ÖþÖÆ××ÈÙfÞ¹ÞëÚbÜxáuåýêAïCñô­úÒ}òÄ¿W Î ÊÎ×y:åž ! ²ðÿø?ñ¥è¹àÜ3Ù׸×Þ6é3óºûÑ uRgñþy '-B(˜&ª${%Ñ$¼i#ž*x,(Õ|! ìüYð¬ð·Œ 8†ÿ@ý5ü ýÄ| C"²ß•é| ‚ÉÀcŠ‹ Hÿ½û…÷9ïçêágÝ€ÚtØ„Ö ÖIÖú×Û‘Þ»âéÚò¡úÿÛ®þ]úW¯' =   5 ^1Oþ®ù7ù¬û$ü û?øõiòDîÖì+óÑûªÿ*Àøþ|üÌû·ú:ú\ûøÙïIêçûßÑØÜÓÐõÑÑÙ3áVä©âàlàôåÕïqû H à#ÃÃç'G5 AJƒOÀLûA{7 -žFÿ \"Ê}¯û_ò~ëÏæí§ý m­µú 1/úvú‘{þø9øeöð$êâãWâPèó<ÿ‘v Á —v G cfæp¬Õ ]˺… ÿ8÷‚ð—è{á\ÜÁׯÓ@Ñ<ÑŸÔÙ%à æòèˆè1å&àÙÛäÕùÐUÑŒÔ~׈օּ׈ۿãƒî¿÷ ý¬Y„ YBePlY[Ð>¿ ¤[ÿ'úÃô`îïå¸Ý ÜÁß%äåéRíAî/ñöõ¡ùoü8ÿ%F &ƒ"z$!%æ#x#+%Ý'D+¨.´.~*ˆ'*(â)ý*Ð+O+4"[¡q+ñ*7`Ç`üœ ( É=ü[ø]÷Ñô[îç¢ê€ö„ø óòÎïTé(è™ççíÎõûÖû2û°ýYÇÿàý¢ü úóíêäà‘Ü+ÙSØLÙZÙSÛ,ß<áÀà ß2Ý)١ӗЊÐ(ÓíØêá_êäðýöÓúöü‘!Ù bHÒ é­ƒnï MM P Î w 4 àšþHþ :~Ýñ1šZ¦µ²üûRöÎòYî‹éRåä/èpðœùóÿ–úâ j9”(k3¼;[?&>9ä4Ò2Û49“;J:¶3ø%Úè)ìœÛŠìý"õåìƒë0îùñ®ñGð¥òýô.ô ó·ôÈøžúnõ°è+Ýõߎèrå¦ÞÎÛ;×ÐÓIÑÌ;ÌÔÀÙ.ÞæüñzÿØ¢ Âi¼?OÜ”ö ^þ·örí‹ä?Þ’ÙÕÐË'ÇýÅšÉûÏØCà‰êXõ-üÿß^®Ú!o%&(’)ó+.?02Ù1é+>%Í#+#$#‡ æx8ŽdT  GŸG|÷ûx«†kU*a¿y »\û³«.’Œ|Zü;øöNõ8ôpñ˜êráÛSÜÿáâà-Ñ%Élßð&åˆÝöåŽñéô óöåºð î á Î òý÷öqÿ%]ãøãõÇñçíƒë`êÅéÓèîèøê¯ë‡ë¼ëvì¡íHïððÀîñé^åœá–ÝlÚÂ×üÕ¨ÖXÙDß$åè|ê-î òCøýÿ»Ñ AÚTø!.%£(“+K/<0N+„& &"í( e I Ü÷NÍ | Ö;ÿ·þœ¡½ð +ø êþVöîðî^ï?ò!ò˜ñ ó3ø˜þ†HOÿ?)0T3]402–-À)Ø& "NÐ(„›¾ >f¦ý›ö)ñSî…ìòê;ë/îöïôè}ÚŽâhü{úaå.ÚIÖöÒPÍHÊòÍÅÒ^ÕF؃܃á›çì ëÀéòQ . Gö!»!˜ V(;è’—üòsì•êCçÞæ–êªîIñßòÐõ±ú4ÛE-ècT öÿý»µß8I^­.ËÀ-(C,+.''!œ{ÿ"‘-Ô5Ö8V4Î*/"¾¸øð‰ïròò;î^ê9æ¼â'â·äé?î‘òúöÌú?ü‹û ùzùSûÛÿ÷% ‡ ÜÿþÈ÷òóÕñ&ï4êÎãáß»ß%ߨÞ'ßÑàŒârâOá ß=ÜÎÚÒÚrÝTãKêXçƒÜ èû)õØò<ôYô|ôÆ÷ } " Ò ¡Ú^ • ¢ ºPÔ ™³ùgÚ½ Ý ·ºt ?i€ýìùÒöô5òÐðÇð,óîõÅø3üÉÇÇ ßØ#(-R7?™DÎG}IJJÿH„Eù?Â:S5>+d„ì Žÿ-øºïê~éiëXí|í0éæøäHâ[à%áƒâ‘ç[ñàô„ò\ïhìléÍæoæpç/èê3ï.ôqõ®óaòØñkòÆö"þä½ ÅÞ^p‚ oƒx Í ú ³³ýêõžò¾ñÅïêãäÛåÔzÏòÍ‚Î%˽ñ«â²Þ̛ЅÆÐÍ~Ý‘ç5í öÉ¥}HLX#'%Ä!N v(2F/&]#V µ˜þýwý÷ü|úÜöïô=õMõèõûîæŒ´ÿË[: ¢ƒÓä—4ç¹@üpYd µïÈþü®ø·õ,ðÜæàEßèàžáRã¸äå ç”ëjòSúD á Ä ` ÿ™±œ—h)1¯üˆùøëö÷?ù%ùôõòêí£ë‰ë'ëì òzúbÿÿ¤þ€þÈü•÷’ñì#è æ¹áÓÚ¸Ö÷Ö½ØÁÚ±Þæï6ø½ý}æîY™ é(ì;o3Š,ê0ô3Â1þ/`5z:72,F#D®TøŸó‘ú“û„÷ùúæûŸ¯7ц;íþ,ùòôôÉóÈò;ôøxýõ÷Ô H²°.¼¨c WŽ5èˆ ©Gÿ®÷­ï#æÞ\Ü6Þ à»âáäPã‚ߤÝIÝÃÛ/ÚØrÕïÑ Ï„Í ÎÒÞÖ݆åBë{î2òÔöGü9ýU4 ¨¥²¸­j+c«ƒ L Dÿ|óÌæ;۸пÅò¿"¿†¿7Á„ÃÎůÈÖÎËÖá˜î´ü# ®u 8.C9é=Ö8É(¸ Ï/?[;;5ÿ4ø2½)á49ºàaúI¿ Y EÌFþ˜û“ý.Pµ l ¤Û ¥ eetÿ‘ÿÞÿÑÿºK¸"  | á“ÌþÜùò3í<ì_íîqï[ðfï<íé|ãUÝjÙ«ØÃØdÚ}Ý}à”áKâ‡åêï4óJöþø¿û¡ÞÒž –ÂÌ‹]¹¤J¹ šÿŽýÊù-öŽôRô2ö;ù×ü ­­   8  4 óÏ´Ð+ êy sÝYÌø ±”}"Ò*õ1=8>–?P;ö/¼%J+å<@ö4d-6'Wvî¯<Þ‘þ†÷šöŒ÷ióîßë~îòúð˜îªîèë åà+ãÏèéÉæâãÝá²ãXæææóèäêÖéê:ìVíýîŸò´öòù„üIÿSf ŸVsq-Ό޸ 6WÌüŒóxæÚ Õ8Öž×½Ö&Ök×s×þØŸÜçßñäÇì–ô¯ø‹úmýS+ä Ê~$Ô#˜!açºÖR#\Û…þ@÷Òó$ó³òó5òzð2ñ3ô“÷ù½úJýˆ:y ’ %"j Ù S´æn"Ý']*N$)+)Þ÷æêù×ËóÐWÞPÚÖÍñÌ!ΓÈíÆÝÎîÖ)Ü1áégñC÷ÕúûÈú  Ž5Ì ~ X.N3þ‰ùK÷øöôRïë9ç~äwå)êÃìóëyëÃìöîò§ôuôµñ£ìŸæíà+ÝóÜß•á™áÌáïâãÇãèöî²öþ¯¹ (®×%G,_3d;âB`IzLþIfEñ@î;M86T3¿0”,µ&< `> ãèûú úhú=ûþÐà *3eô>E î SIjü øñé#æ0è[îÒöòÿOÑM¶ø˜Åv†à F%M&Ê%U&T& JžïóÞÒÞïéÈèäÜÚÕ´ÖÖnÖOßè»êÀçbâ…ÝQ۬׆ÑÌŸÈÆÌdÖ?ÝpàXáéáãèwðø‹þ„€ ’•Û ®Ôg€×ò~6² ö—çÕÁöB°C°Óµ$¾ãÃbÄÄ+ȲΥ؛æÖõ¬…{"/* 2>8«83%+°#i<!³#]#TöÕ  øŸø9þN¨ ] L ž!ûcöÕõ÷^÷ù7ü²t™ q§³ìd Žÿnÿà£ù k ë ½1||Ô¤ñ&üÃøMõ˜ó°ôqø!ø?ò¡ëDæná¢ÞyÛ#ԬȾa»ÉÞÝÀá1Ü(Þêå;ìáôRÄ ÖÜ ¬ îàñµ>HÌuS ýØû?üSþ¹ýXúŠ÷øéù•ø|ôøò ödü  }‰nœ ~:öþDøØñlí(íéíísð7÷ýmå éêS$N,¤.V,ì,u/Œ0%2W4S7F<æ?ü=´8°1(˜—Ê ÝþPûÎø¢ù\ýï5ýœùøøJö¡óåòqó£òïëè¹àã٫؄Ü}ßXáÊáªßÞÝ)ÞŒÞßäYì]óæù‹ Óh"('^%‘&)g(^%ª$”%Â";=é!üêõNñEê\݆вÈÎËÛÆÜÒ1ÎËÐUÒÖQßè”í¿õG× ë§w ªŽ mH,#*"« © “•³)‡+Mð»u  ë â ` ê8£ø¸ýáXýûÿLæ'Ü*Yûž-‘Ký ^£û³ô¦ï;í ëþæÉáyÞ^ÝÜö×ÑOÍ=ЕÖ-Þwç¼ðÌúåͳÝàw b Xý æ ³Ë?™ÿRûªø¥öxóîï1ëzäìޚݿ޷àœâ¯ãAäLâ€àoá<ââbá8ß½ÝÄÞß3ßÙà¶äèvéèëæèwì^ô’ýë!¯Ï¥Ö,ª4d0*3f8Å<—ESN°OŸL0HW@9î3i-#ÃïJ‰ò¯÷£ënçÛëÁó/ûtÿT-è , l h ª6Bÿ’ûWø…öœõ4ö¿÷±üy3«ó³þ.|)-ì¼P! éFnüæòÒêå/á$â&åäÉá4ä<é\ëÖçÐà ÜÚ¢×£Ò Í”ÇÆVÈnË©ÍÐpÕøÝbæïû÷Ðý~ã] åÓ!9m ä ˆÔÀÁåýóoæÖØúÈé¶÷§ŸÏš—œ!¤õ®¹¹ÀÆ€Øîë}ÿÂ$"Ã/í:D)JµJúH¬C¬E@O—GÏ0´!fäŽãš YYÿŸùÀùú0øˆúðg s³Ý³{¾þ­ÅÒªd ËHC† ÷ûmûÍI›xJî¶À%9›ÂÇ„]“=þöaî!è­ååwáèÚүƓº#¯á¨˜«‹´¾¿ÕÌîØ‚ß`ætðÿ÷kúÌûÏÿð )3éÊJ…¢¢‹ t ©ÿ°ý¯ûzùÏøœ÷aô®ñ=ñëò‡÷áûéþ ýV‡ýCøÅô¢óºô7ôÈðsîÍîŠðOó„öüðSRqÏÃ$Û'.#×4Ü\:*ñ1W+ß$Û 9$àvüŒïöþFýeú–ò`ì™ìðÿõzüjþ÷Iì#è8ë¤ñ¾õéôuñìiæ]ä ââÛêØµÛ¾à½ååèëéêuéˆëöð±÷Þÿìl ÃïàÌ5Ú’…¬~KÈ ÷ =õ9îžìÏí¦ëšáÿØŽÕ/ÒÓÎ3ЇԅÙ5àÎåÊêãòý9Â8DñqýèýS#ñ6 0·!£'¥(c&R"¯bÛÄèå ØÚf [•×ã³ Ï`4d« š¹ Ä4&.@4`2ù*Ú'õ'#ZM õúç6ÙMÞ…î{ñ¹ç›äxèrãÓÆÛȎחãÏîžù"ý3û9ùþøÖúíè n#Oü=ÿ˜ÌÚwäýúeô=ôöøúýÂû×øù ø´ö)ùZþ­4ý.÷ÆñÅïNð.ðôìêéråƒáúÞÛ¦×OÕ\ÔÝÓ+ÒÑ$ÑvÐÓÛ«æ{óßû[ ßàbóÌ"`0”7”8¢7C52<.e)6$$!m½ h5èüx÷Ñò*ñöîŸï{÷¤Â†Ò²êüæù,ñ‡äŸÜuÚoÚ'Ú7ÚÁݦå6ô\CûìŒX"' ‚ìå…!Ç!™"¤ œ&µúÀïýîbö#ðHâŸá9ëÖíWë™î¡öƒøõ¤ôSñ7ë7ãÊÜÙÛ\Þúá}æÕëÕìrïp÷yûªù/øÐø ú7s÷D˜" "dáHdŸ8 B±&IÿâþÕMýpø¨ý9 dùæÈ‹ —´œ#V'±+«,*:(»#R7,•70†·ð& ñ 1sé»â… ^þtö)ñóí‚ð©ùO¥±úÔòðî_ìÂê ìvñÉ÷)ü¢þÑþ6ýœù5÷Æ÷É÷…ö˜õõÙóîñ´ð_ïbë!ç¢ã›ßÑÚëØÛ6ÛúÓ´É Á‹»¸¶•¾uÎ6ÑØË?ÑkàìçÂç«îwùìý.·þúúÝý`vªÔ«‘Gºû öôtñTíËínòöÒ÷]úRþ —_ y T î ÿÎ÷¼ôHöKö(ó²òdôÓözùÝû ÿ‘o Ìž¢&$2ô>¯BÁ>=;;j<Ò=Æ=];X7›-¢í ãÿFüJû+ú-õEíéì»ì¯êmè^ç\çµçXèóëó–öLóÌëÈåýãÞå[æ»ã©â å½è³ê˜ê2ê°êí‡ï±òÂøý þÿ<” ~ Ð  Ù d Ç hqdöýìßæ‰å æ˜æ“ã|ÞuÚWß4ä?ÜrÒ”ÕÐÜØõÑÕcÜæ òý²Ø þ¿f ÉŒ~V'ç µÝ^K¥Î±¥¿ÿ,Pïú§÷÷°ùðnÞ <ò _C%½*±,¥&(J¨§ïÎ ¾þûødô±ñªì\åÛàVß4àÕá ãZåôè’ëèì&ðŽõÈû h ‹„³ »£‘»™KÿËükúšø»öò&îáî–ñòÍïsîEñ|÷ÌüþüŸöñ6ë¡åÍá½à\ã¿æ½ç.éAëEê¼åóá™âääç&éë¹ìì<ì)ó]ýž¡þ¥I: Ð o"è!4#— Rãb”v#%¿³3U¹O Ë‘‚Q giõS .Îü7ùQ÷‚ôÔñð„ð´òöêüsx>&*6/v/É0a46ù3‚.+'Å!\¨iK4_$o§]¡õÂëç|æ èÉëqð‹óGõ ùCû¢÷Øówñªï¿ë0älÚ;ÒÎ%Ï ÓÑ× ÝCå,íÍòÒ÷*ýÍ•maxÖ  ü à ¿ÿÉû÷iò>ìœâ’ÓƱÂ&Ç`ÍØÒÜØ+ã—íñ\ïÙï“ô û3 Ö ™xüq†ò—m¬( /cüåù,þ~ \" BuÂu*ë­!­#A 'Uæúlö?ò/òúÏÒÆÉ¡d J ‚§4LX,% qÈš5óÐ C  QÇþô%ícå‘ßQàeâã~äàåä¶ÜÔߢÇqÇðÉšÐXÚBâ‹èhñ÷ùj`þu#- ò & Ë ÿŸƒ•Êè¢<Ñü:öcñkíê>èÂæçæê^ñðùfóJJßs* + ùPìóäƒäæPç ëñòùˆ ÔàT(ø1ª7q9&;Î<5)¯('%qk ýmò ìëÑì•íûîRñ•ð(ê<äXèyô»ýÒ/3û  º%ÁlG6ë2ª … O ' Öñ™–hàþ²ù‘÷Ú÷zü©ŸYÍþ úôwî—êšç*åœâ—ÜAÓ…ËîÈÓË}ÓˆÞé3ïãó?ú;÷ -‹ ç V xŸ^ ·$)¥-œ/Š-/)¥#@Ð,“ÿ‚ú÷òMììædåœêTð—ôÖø‰ûöþ¶ } ? ·tÿöûµ÷^ðûé è>èêRígîXï‘ò,ùÓ åË8æ•~D+R3¶þèL ”ÿ·ôTîšéÑçé²ç`ãå ê“ë«ïÏø÷þeüÝôýíçZÝŸÒÊÃŕţʩÓ`ÝcãUèzìÆìDíÙïäó'ûFLõ{]Å â ï z +W1]ý÷Íñäé7ß*×Ò%РÒÂ×fÞžæÕì2îOíïôô†û¤2  } ; !â$ !ä^öhÊ¥Œ5%«''“$2!Ü7¶¼!UFj*Ø2ú×ïÌé¨ìó©÷é÷ø™ù×ù2úbýÎÿäÿÚ D ,]; C û   Z#ûOó÷ðÕð8ðWîçë–è)ä‡àqß ßùÝúÛ´ÙèÕTÏžÇEÂêÂÌÍÜ"éïøTwûibv  Æk8H ¬ –ñ˜ýÔø¤÷ÞõPó›òMòÃñ òóô÷ øöø}üÞÀ|Ak e=vú¨óîòÌöÞù5ú,ûÅÿcU ¶Qü%³/F8=;!8#5¬6s99ß6é2ç/À.Ï,)Õ!DXá"ú%òGë€èÐè)èç÷æõåÆãaåÔì¨õ‡ûúýfüöÌïÅìäêÒéDêêœèºèëPï!ðìÃæ ä‚äâæ`íZõ$ûSÏ G=]o é S2{¥Òt†Ô’WÙUüîóé ݵÐÈäÇ͹ÒêÕCÚÍä’ð2ø œ Z  6 Võ¨ÿ/“$+,%(Ÿ#¡!Ù"$t#%L'Ý%Ì d¯K ç J ‡ * ¨   êÎ Í Tk C ´ Ú<c‰& F C^ Õeýuô™è àãÜwׂϴÌ>ÐòÕÚÚ.×êÔhטܸâÊëòšó"óõ¬úöþ¹Ážÿ+þýDþdOrS±ö=îZè¤ã1â¿ä›çúêqð½óÂò7ò óÍô õ‡ò˜ï¿ì5êçäžá¥àÔßóÝ’Û³×JÕ=Õ™Ù’ãní×óŸø”ûý ‘` R¢ g([.ñ9EEµE¯CWIhL“A 3>-Û+e'¢#o!— YÎ ¨¶Îã¤òôï“÷ä³ þ5ð ámØì×OÝ-æ ìYóFý~kQB:"|(b*L)ø%!Oã a Ÿ+6 ¢ É{}úúòêËÜŸÑ<ÍÊ͕ԦÜàYßkà¿á^àGßÞØCÍ~Ã_¾¿¾0ÄüÌœ×ã´ëáïóeözöcù”^¯¯4ÐY qLüúTøæôíîúçäá|Û×ÔêÏ+ÍZÏ=Öàåê/ó™úÔ; ùæÍ!»'Ñ-æ0’0I-;)™(>(`%›]ÓéÁÿ‡ÿNS¨7²› Uê@?$ý'G&¿"#ÔA,íC ¿ÿ úú¯þª w&žáš„ßÁþ¡ä Î ¸Û£~wâ ù ܲrÿüùòÏæ Û>ÔÁÔÕ Ò–ÎÇÊeŹ¿‘¼œ½¿ÂzÈ9θÔÛ§âïý † bÏÞÁì ¤ Ž   Ö<û„÷÷ÖøÊû$ü2ø²ñ«ì‹êêìðqðÿñ3øpU Þ@!("š …ñT ÿþö)ð%êoãQÞÁÝ´åÔõg'v '«.&1›//ì/¶04Ò8U8`5¹58~9d6 /(^ ðõþ:÷Fëääëãèá^âôãÁæ´ì ñXòVóòçî8ìÊèçòè¿çU߬ØQÖÕÔÊÕyÛˆáw便©æÄãÞãfè$ðúW &CÕ#%$((Ì%5"pµ­,ð ÃD8ÿÞøéðxêçÈá× Î ÊɹÈ*ÊÑtÞ²ë«ö‰ÿ„Æ fÔ`0ýÉ•ã!£)=-€-s-;-ò)³%i#!”D—Ê ‹o¢ yY† _ ¶6{f£ÑŠÃ¬JÝV28e`úQ©Òƒ`û‚ñ7ë³æ!âMÞÒÙAÓq̖ȦÉÎÍ&ÒԽأߪåýè:ìLò®÷¯ûðýÂþ.ÿHÿ±þÏþØýÛúíøQøsø@ø1öôôŸó¬ïí¼ì˜íÐï ðPí‘èÊá)Ü~Ú*Ýã³éÿìÛì2í¶î¾î•îâïÇð¯ïìgè¦åwå¥èêzé—éNì ò¦ù†Ì ±œu´*&þ(Ì(¬)†+Á2E<¦? :•0$È” {[ºn W¥Mô­è]æZëò+÷±ù“þ¸°B•Ù süeúâùÛóÐçÜÝ Ú¿×^×YÝ’çèòMýBµ  à äQ¤)  ™7òî„”-ð@i çþ;òìçØÝ\ÔïÏcÑáÔ˜×nÚØÝáÖå¬è‡æFáÚ/ÔŸÒªÓ}×xß@èÓî ò õ˜ùªüýÿÑלÏþª ‡ à ÌGßXH N%ýñë@ØàÄÚµ÷°·3Çà×Fâ}æ(çSèXìõN”%ê0È; FDL]I†Bñ:0#ÇD†jŠå dtøÀõoøÈ ™eª»©þ1ûyúìù1öañ‹î|ñ£ù c:ÿü3ùöÕòtð°ïKñ õ8úJ /³.fœ©S 6ôõrÿùüÍõIímæÐá‚ÞOÜ£ÛèÜ0ÝÛÖÙ'Úܽß[å‡ë±ñ;ùJ± ÝüGž ï ÿïkσåÿºö·ó"òÓð¼íì9îzò€÷ôýD5 å¨R)Eìõû)ô íœèÇåã•á‘à¶àÈãqèìï*õÌü!qt)©3»:'><ð5÷2Í1‚0F104i3,,."f ";üñ–åºÝ„ÝÅàíâÿâás޾ߧä)ç>ä^ß®ÛSØã×)Ûþ߇ä;èê´éÎèðéÊíàòÆ÷Eûjú±õƒðiïö÷þÓ£Ú>"û(R.Ý0ß1û1]0 ,%n¤üÞåÏ 8=æÿ¥ù†ñ è à¬ÜÌÚîØlÚBÞDâßèAò¶ù &‚uœÎ&~/:5º4Á-3%±Eä É' .,.;(ï˜ù<ó¡ñ\óXõi÷ øÀ÷®ûŽYû°ýtûëÿW ĨÛ\€×" t~“Džáþ¡÷ùðéâwÝ—ÚÛÞìà˜ßÂÚéÔ&ÓÖmܰã’çìØò÷ù©üøu˜ïð¿ªËþÀøfïÀånáPâ÷åTèÌæ!åeäØã+åïç«êCðÍõ ÷]÷„öDö»ô»ñòð7ñ©ò»ó”òêï–ëÝæqã‚âþãGçVëƒñúQ ?Dã!Œ&î(Ç-Î48;Å?ïA¦@;&6Ð201™1h.1):#Ð’F¯‘Ü ´›­4f˜™`÷·úÑðSçxáßãÞ•áéæhíAôûy± ?Eÿ#)*¡(æ$(]Ä ‰ y ± ^  7þ òã|ÕÍðÈrÈwÊlÍ»ÒÅÚòàÌãärâ:àMÜÅ×AÔWÑïË_ÆÅÏǹÌgÒÒÚ_ãfézïøõAú¹ü¨þ(ŸÜ ä9"¦(¿Ã·¥ MõÃêIæ˜æYçÛæXæŒå”å0çtêîïñ÷uþm ‡§¿"+Î3o8†:ê:—:<>>Œ>M;4¡)þ5ᙣØÏ±dpUÁ"`"R"¨m–' Šiü%óñ‘óšö™üc}äüòõ/ò ð8ñG÷~úýúþÂÿþÅü ÿ7ós»ÿçùgõ³ðnêãüÛÖ2Ò¬ÐÓÏãÍÔɑؾ¯»|¹0¹Ä»¾»ý·µ»àÄžÑÞªæHèfç¬é©ïökúüý´jÚ 4ÚïâlC pw’ ýSùBùáú‡þ»Ü_N«pbŠ ¡¯ý· ùŒðíiê/çQæ£æØé°ñ¹û{ ¬#¡%ï(O22;.A³FÝIöEë?n@âD¿5»Ÿ¾òÌTÜ1çPïKôhõ^÷ôú}Uæ ö L × , å G~žàNLã D!ÿööîbì)ì ë–í•ôÿ$ š l~ Ûþúúwý#þ.þ®ý„ûRúþý—&¬‡@#c)O/â/L+n'¦$–%Ô+o1µ3À5¥8G;ú;¨7ë1„-]&—C§ þ|öòGéôàÌàÒâ äëæ#äàÐà áuÞHÛžØÕÒÒóБË~È Ë/Ògݯç#îžñCðºîmð+òÚô\øÿ€6xø¯Vk=µÜï %–ÿ†üv÷Þïë6é]ç¤äÎàÛÜ×ÑõË Äy½à¼ZÅÑHÛ­êÎûIˆ¨ žîë£<#õ*/s2m43<3Ò7­<Àÿú€é  ¸ x 7–5þ†úÑøBûÚý‰Çèú½ï×ëãðÃõøöd÷ ø\÷ôð›ìë˜êcèÅå8ã?ß®ÛÒÛá>è¨çÜãƒä¡æ^îªü« «½¦$²)÷*Ë+¶/«7v?ÙCGtIÄDB:B1w*¾#.ù®ÏÞøÍñmî7êPèEéüå@ß5Ü>Þßãøì*õöÝíšã ÛÁÒÌ ÌQДщÒ^×¼ß&éäó”G _ömÞÉr!—"Î"#È ¼—À»š!F'%dôý1ìŸßTØÂÓXÏ8Ê Ë…Ñ]ØàÝÀßn܃Ö]ÖÂÙöݸæ îJï#çËÜ÷ÝßæÕïBø e:i:« Š%Ñ'×)-š.Î*y&Ã$ý = -þbþ¼û£õÊíÒä ÜÙFÚ Þ”æ¡ð•øÿh(gýøô‡óUúï¯'¦8àEÞIJFD< 1o+±(„%—+<9ÍA#AA;ï0`%ç™JK i ›q ¹ú_î8é½è‹ëåîï¨î,ðBôYøúû÷Àñ×ç|á á á*ètõ–³   1w OŸò¹úôÍñ÷óuö³õ~óyòòÌð¯ðEðéëüå²ÞeÓ°ÉjÆÈRÍ-ÔÚ!ßXãæ…æåä ä5åÆè~ïUôÀô!öÚû_ß -=çÂÅBd Åâ3áüùwöÜòúñ/óÏñQðò‰óÍóÛô³ò9ëááXÛ Ù-ÚfÝxÞÞ¶Þßêâ6é{ðæøÑç($"’&,Í3w;ø>@@ÚCgINJOäKÈCM5Ö b Òÿ]öð)êãAÝÕÙY×VÓ'Ï ÍiÊèÇ/ȼÊqÎÐyÏzѬÓbÑÏòÐ^Ø*ã¢îú_"28ÿöÿR${,}0þ2÷2E.+*o&a"gàr"ùPò;í®ç¬âRß"àöàìÝØ—Ñ{ÎÑuÔ%Õt×JÞpåºê`òôü ^ËX×£dˆž(ˆ.†14Ô1å) #§iR"%6'& M¡þ›ü¹þÁÿ³þŸüÑü¥ÿ;i ²£ þ¸?ë …Om!d(š(a!UV†Ü } ÇùÌùÞï|èâiß"àaß Ý“ÜÚÔÌÀǹǖÉ'ΈÕúÞÃè¨ðøs g ËâÇ`ûö÷ÏõÃö?ÿÎèå…ûûÈõ÷òVô—÷møáôuíSåtàvÝNÝÄâ0êvï—ò”ôÒöú¾üñÿ»ü+ò2êÝäãáºâræ¹ê­í†ðáòõSûûˆ ϧþ#§-ò4B8[>E&HI9IèJL'J G†@ƒ9ç6ž6¬2!+˜"cÁ þwù"öwôÔò÷ðÉí¹ìzðbôVöôËñçñôDöëõÁð5æÜ+ÙkÛÃ߃éòöÁ) ÇŠ"V d‘Å{nÿ°îî »VùúÙ÷{÷uõ¦îVäè܃Ù6Ø’Õ¿Ô7×ŽÙØØ^×sÙ–Ú`ÖcÐ,ͶÆÇ¾š¼‡ÁÃ̖׈߽è­òJø÷1ócóØþöMš æy¢r!;(y3_;õ94²+Y!3ŇôwãqÑoÁ5¹¶¬²µT½WÄBËcÍ’ÊÆÍÀÕÜÛœåÿóîþuœ þæ"?0o@ M¢O9J“GQHƒG°GI=GŠ;+ÿ¶»¸zx¼ \|ó¦ååÞ‘Þ×à•ßÙÛê×ÐÖoÜhèyõJü_û}óê¥çgëfñÐõŠø‚ü`;ÅÚ Ê¸O‹3K ¾Z Qÿú1ô*ðîôëÔéxäRÙÏ/ÇÊÀñ¼"ºÒ¹¹½fÄøË½×ÌåJíeñ¾øX™ÂŽÌð#ò)à0666Ó/*Ä%Tj^øÿŸuüôqð@ó¥ú6¼ K" æ  Š ¤åûïò¸îÕêàçOètçæäÞååìƒöý7Çý$ë,É14ø3/¢)Ã'¸+@0ñ1´7BŽHþQûØù€ù\õ¡íRâöÚ´ß7ëøKA‚³§ í  £ » ˜ ÷ùÖðé£âòÝ}ÙùÓ4Í7Ç Ã2ÀȾ½-¹ì³]°±c¶CÁ“ÐÊàœìàòÉ÷:ûdýbÿ‰ ïo†!$%÷${&i(å(S%‰ Rùƒ ôý¶õòyòIõšúÉç…îòpú¼ðòåBÞ˜ÛlÚÓÚÃÜBßíà‰æ¿ñeûת ûið!& +E015B<3B‹C»A#?<°:ž:û9b6ß,ãš ¨÷Ðê æäˆåç­âôÚ¬ÔøÐÐ@ÑòÓ¡×?ÜDÝÝÚkÙóØÚÛÛÙ†ÕlÑMÎË΂մáuòSÊóýóõôïpîìõdº1d†³Åÿj¶Þ Š ÿþJü8ú‹ôéêYáËÚg×­ÔFÒÝÒÕ ÕûÑ ÍnÌÒnÜÂçPô] í × ÜH ÇÆÏ#…'Ý'm*#02[1Ë0=3k4Ð1 /c(Õ"Tüú/öûïžì/ì—ërëÒéré9èpåœè(ðÌö`ÿ 5üuîž PÇ´õ( ¿•úŒò·îsìSê[å×ÛÐȹÆaÇ9É!Ï-Øß:äøçõé"ðÊú™ ù¤ÓP#„¨m¶À8º ,<4üvûKûøZ÷V÷Üôböûšþ‹’ÏÏ{üKü…þ&ý¿øÑóï]íÚîŸî ìžæ˜áTãBé2ð+ùòb£m"(Ò+»,10—8@ïBÉC°CÐ@T<å7p1ˆ*L#pÎ7^p ç/#þ¥øJøüxÿÛ+  ! ”ëþõøzò®ì›çéâ1ß݉ÝeÝXÝdáèê5öÁÿœÁÜÆS ú$U)¤)%, Ø„ m9üÄ÷¡ñ«é¢å´çTèåâÝ'Û×Û'à¦æhëkí¿í ëÈåæá‘â%ä~á=ÝÇÚ¥×*Õ×Pàáì°÷ÿ¬1j^ ]éK!"À$³#"• Ó€¡BÉûuô„ôD÷hø’ø÷CòæíÕìHì¾ìówû\ÿ"©cý®ú·üž5€ »17ÎtV`g í =o %*X)ß&d&±'ˆ*—.Y4Ç:Ò;95÷(zm 0úˆíŽå!ã¸å_éXê9ç¶ßLØÒ×ÊÚ{ÛiÜ„àXæ…ë¿ñ‚öøGúlýß ìü|Ôm æÆûŽõ†ðˆí êéãÞ{ÙŠÔdÍ3ij½õ·Ë±j®á®¬²m¸nÀ•Ë3×¥â¬ïý¢op ® ¼!¹#”$`'Ä,ë,z* +}.%1/1*E$²ÿñ » ÒŽdoyý§ýœþ«ÕÿâÿòMû$ñÿá¿ÑÑÆ‘ÄÄÇÚÊ"Í!ÓmÝŒå{í(ó‡÷nþ& b"¶,¯4‰8ƒ7™6w78G:>A«CÆA8Ñ't. ËüHó|é¼ßBÚT×`ÓÿÎ ÌPÈ|ÅZÈÚÊUɨÈ~ÉHËâÎVцÏÊÊãdžȬÍUÓÙÔØß´æé¸åôà3áœç¶òêýxC « œ‹#**(™&'Ù)d+¿,ø.¬.€*ÅËw 2SsQú í(áY×oÏíɯȉȿËìÓÞCéös9 ¨êl æ" %Ò+ 3á8>\DKJ;L5MøMÜNéQR€If9‘'(uÿÿ£f D &Àûùxøaù^üÝþqþ³üQûûÎüu+ ÅøÚ&©î>k˜G÷úé“ÞuÖ«ÓžÔNÔÏ&ÈĵÂRÄÀÈáÊøÊ)Î6ÖOÞOäê4ð ÷kþ:¼(Cÿ²þ¹rÁe ÔG_üKõó[ógñ£ðûñôùNþøøFý²ö·öUújüþÕý±úNö&ô;ôúó2ñëƒâúÛÝÛæáKêäð¤ô&öiõ›ökû=t Zƒ M*P1Í6„:Q>¨BÂEæG[GCÀ;F1z&©É ãt ÉäPÿ û:ýyá •{üsó^ò‘ùC”¸ =ÇÚ›ýåö î³ãÙ3Ö±ÛÙäÝòny Δe#Gœ‚LTj éÁþ9ÿqqˆ”ùãñÁí€é,æãqßÜÐÚ–ÛÞEà²á¥ãçíé©ãõÕÂÊ:ÅÂÈÁ¼ÄLÉíÐsÜ2è6òüù…@€¦ “¿!˜'y){(Ü&Í%y)×0‹3ˆ+ƒºKµüFñôÝÂV©:˜!«—¬¤a³ZÅGÚžíŽûÕ‘Ÿ$%4º>(GÙNWV¦[î\r[×WXQF¤8á,ˆ"o5w,­ ø6ç»Þ/ànäßëdôªøQúSùÃù<ú•ùšûNÿÔ³ÿÚþÌÿ! ½Ñ ÛþòÎí:ïNñ õ}ùöü™ 8o×uÇÕ úkÁ ûW1?ü ú’õªíôåWâ<àÉÜh×Àٰ̽æ¬N°AµN¸e¾ÃÇÏ€ÔŸÙIÜÄÞ½ærñwúÙ Ò`mÀ¶q ݰdLGR¢Á,¦ ˆ > ¸Õ°Þ~Œ ñŸŒÿ‹ü½ùVôtïwêåòàßóáèå¹ê&ïûõ­þ:¹óu-7=«AáE6GlG¡IJ´F EÍC‰?_={=0;Y1´"¹àEØ êùËìµãiá‹ã|æ;äß=ݰß#äþçdæãÜ*ÐÛÇÃeÀ0÷ÇûÊN΀պáDîëö×÷³ó‘óø?þT£+Ú€:]ï\#„&-&#.@n2²% …JVýÃõòðäë^ä¡Ú£ÓÐí̤ÊÍÙÓKÙõÜÎâë€ñÑõNø§ûÿ3°=%)G,Ï.÷.‹-W,š-»0'8Ü@eDBÄ9+Åê£õµíJí¾ñ×øîý#þ•üýAýû›ú¨úˆûi¹Õ“#{%Ö#˜‰?PD1â rwý?ó¾è­à¸Ü¾Ýiácåæ©âwÙ\ÍKÄMÁöÃäÇBÌoÒnØ`ÞÃå!î÷þý2úþÓüüùöeô ÷Hüÿ ÿý™÷#ó ôùpûœùêô<òµò`ñiíÈêìçªæ7êEîºî7îï±ïÖð€ól÷uønñé*âPܬÜã¶èZèåPããªå¶î·ü× GÚç"–+V8žBVG¡J‹M·OQ`NpI4C<632 /,p&;!Îh:-ürô¶ðñîDîwïÅó²ü˜fðN#žgÿþoù1öìïê[éžèíæŸéõ¤˜Ï ('ê-34[32ß,‚"€ï°TŸÄ ` d F –¨ý‚ôÞêâáŒÚk×1ÕYÓgÔàÖüÚ‰à;á±ÜÏÚÜÇÜ1Ú¦Ô„ÎÍËυ׆áWë®ó\úÎÿ/7 p$@à%»/e3X343Ž4e6Ô5­2¡-6(L#~8 xôû/ò™êtáÖÑôÀ€°‚ •–ˆ•¸œë¨\¶cÂèÌ>Ø;è×ûuñ*/:FçSHaÖg+g¿a1WLJ>1@)Ù)ö)ž$. a”™ „Oü–ùõë¨à1Õ÷ƽš¹e»cÄ„ÐKÝŽç ð@ö3ü4^ãþ²ùÐñ†ëµëhòÂû"ñÛ:`£5&0+Š+²'ÿ‡ç!øçô¯ò+íôå×á-ÞØ1Òÿ˯Âß¶«ø¢£4ª±·¸Å#Ó*Þ‡èÇóËüe;Ì#æ$%%á#£!5 Uz C$M(Õ%ßþL69ûâòâêÒâ ÝtÝkåeï÷û¡þ(#ä“D6úêðªè>áÞÚ•ÖÖ¹×IÜßäíiøÁ{!y(Û2 ?ÌG$M¦O NDH\DD°Bç=Ø;\<<ÿ71[+õ"žpû`ò=ëèç`ã?Ý]܉Þ?à)â©ãuäŽäÝâjÝqÕÏÌËÔÉ>ÉÑÌÛÒáÙ3âÎéLñ§úÇW Óâ_þªÓˆ¿ ç*i2‡2Q.ï'1!ž ï>cn^ý—óIî.ë-æ âná€Ý”ÓgȘÀç½Ç¾Ñ¾¼.¼™¾ÃaÇùÌm×Jå°ñdûŸB µû(cê÷š–#Ý(N2Ž>F:G›DÚó©ï+ê¬àsÕBÌJÆ’ÅÊãÑeÛaæfó„Oð*á7 BàJ»S Z™^Q_ä[ÙQþA¸2(0!á\ ø’$Ê$¹Åƒ — N í Ù  ÍýüQÿ>Óýõû7ÿÿ BHi­jŠ —þRú¸úíÀ¡ j '÷JLù9çìM `ýZñÒæ¦ÚzÏtȉÀÑ´ˆ«ó¦€¥©¡ˆœ-š©™ïšâ 7¬Š·6Ã$ÐÜ®æ$îóøMí LBÂ#u(X+*,³)Þ$â ƒ…òó4Dìú òFî}ìwë÷ë³ï;ó;ôdöúûmú ûÃùögò÷îUìžë´éÞäáßSÞãëÔóèý~ œ·'6C=`>”¢@ý?ï<¸8§02'n6 M±·øÖìôà¢ÕÌ+ÃdºD´Ÿ°Î¯Ì°5³ ¸ýÂÄÒ¹â ð-úuo !ù%.Í3;6ó3..´)k,ƒ1C57g5õ0<+X#œÝ+ü/õ¨ïEëéèÜç¥égîó6÷¥ø¡ø–úôüŽý#ÿ  ( ’Ý`oªìHIDí ˆ»ù^îCã9ÜPÕ Ê¿ì¸#¹Í½ÔÃ\Å`Â(À°À®Ä÷ÉãÎNÖVßå_ëFõYþê¬7ÞÿBþþ$ÿÇ#ÿúüÄû•úèú(ýÿSÿÇþý‚÷mñ£í‡ínï´ïµîrî2ñíõ“úÏú¯÷%õNòTîì ê+æüálà_âßä·éãò=ýz8E"Æ*84ä; @îCxK\RjV+V~R0M•FuAØ;5ô+>"ÊV>µ zPòCÿÊû¡úƒþ43 ìi÷PYß ‰÷|ìðäŽà»ÞçÞaá™å[ê¨ðêù ´-2, Ë’$»˜O ‹ t q > [ m ¡ Y©þööÄìá¬ÙÖƒÓ'ÔŠÖÖ+ÕVÖ¶ØÛÝ,áßãá¼ÚÔßÐùÏÿÐ$ÖößYêçðåõaü¬› €ÐP{'ÎÒ#U+À1ž56¨2U-|)e%#j ÏÊù'ï)âÕâÈ„½¶S´V´—¶)º À͈ۮé-øçZï"Ö-\:ÓFüQ‚YüZšWoRCMÐG(D&DzCJ=è5-1¸-’,õ,¹--Û(§Ô>ð¸ã+ÜÄØ0×^Õ»ÖãÜ)ä,êªñðý¼ y«² <£ö‹ïìëÖéþëÀñm÷?û(þrð Æ û \")† ü!ñ+èßV×Ï¥ÇDÁǼѺë»ï¾ŽÂqÄtÄXÄZÆ=ËÂÒNÜåÀí‘÷Û%FDƒÉ·B:_… û±žþü(øÿñ©îïOï»íÄë9éê“ïãôúY05Žÿ!âû“ôíSåŠÞ™ÚØYØwÚãßyæþëÆó<R 4+$0.9µBËI‡MûK€G£Aj:±5Ö2„1â1ß23e0²*3">ŒMþÝ÷xñ«æKܹՑѻÐÖÕsÞaåé×ìGí£ëËèþáäÙÅÔÌÑÛ΃ËBËþÐÛŽæzòþpW eC„™S)%œ)h-â0Ç5‰;C|G3GEÔ?9;0æ%ÉZõ¡ÿöPíxäÛƒÔÄÑ'Ñ‘ÑÜÓ\Ö×kÖuÖˆÚ§â.îáø_bŽ :gl&Œ/m673á/ÿ-¤-Ò/!3Ì6"86š0®( `ñŒõ ï¶ì¦ëfìÌîXðõîÿìöí©ð÷ôUû˜ ¢ ƒæ˜ú©Ñä&'»O˜Vty¢ûhóìçúØhËáÂ!½Q¸CµÔ´[µEµ¹ ÄfÒ’Ü_ãÞëÈó:ú°ÿyv¥˜ëÜ€Kðܨ FêýóäèôàºÚ÷ÔÐ?ÏDÑ ÓŸÔóÕá×óÙwÙdب׿ÙÞŽã_çmæ„ääùãTã§ã‚äbä4äÜä~æ[êƒòsüƒ{©NŽ :it'>1y78A7Ù5«2#/’+))'Ù'ß))G$iá= €W«þ5û±ø*øxù®ø˜øWú]ü@ûZôìÝä<Ý ÖåÓ²ÖàÛ(ã-ë ò ú´€/2¦%ƒ(æ) +¹' ›Ý N € ¡ÿ{Ok |÷xíTåSÛÕ§Ô#×VÚ®ß/æèÌæNçÇæÝàãÖÕ̷Ć¿ÁÏǻЪ޼îíøqüh6 ‡ëÙ ä ‚ æð.ýŠú¡ú´ýùa F ¬ Þ–þýö¤ïrèâ“ÜÍÙ„Üå>ñþ& ø¦"$&I+`1:4õ30346~4ð.t(="õ^ t ¥ *Z»ûH“7âŒÄuóÝå‚ Jý–ûÉúoù®÷äø‰ü>ÿ™p¾#þ¹úBöÞò—ñï0ðS÷±ÿÆÃÛÅÚŠ›X¹ÿ±ù¼ò6énàÚ×ÖÓÔ ÒaÏýÌÜȹÁ ºV´ê±@´Þ·%»m¿¦ÄÌ›×´æüóýÀYv!¾(-/Ç.--*¸%4"k"þ"ê 8¬óz d£gù¬î>äÇÜ„×I×Üæõð%ù6ÿ¤³myNþùÒò[íÄìïÑñ8õñùÓT "I³/$g,Q6+>‰Aú@€?Û>»>>y>AFDùFàEüAÉ;Ô1Â&‹i/ÂøTìIå0ãëâ"âÆßCÛ=Ö[ÔÕ°ØÛOÙ‚Õ ÑyÍëÌÅÌÀ̀πÓzÖMÔÝÐÓôÙ§à£âkáàØß<âç®íõá瞺'ð2ò9\:k7R2ì,6)/#È. „ü?òaï<ïÙíhéñâ'Ü!Ô ÎúÊÖÈùÉ'Í/ÏèÎîÑÚªá¢çÒë$ñgú'†€ñå##+V2F63÷-++b)(*:,Ô+†)Ñ#v5BR Üf|ÑF3´. Z ú  UÆ!Š%ù)-¦.-Ð)E)A+i-†, &“m²*þ}õáë»ÞÇÑÊÃÆöÆDÉ›ÉyÇãÅßÃèÆÀÌÙÕÈ߉èñ ø?þD¾ c³¿ á ˜=ÕgtÏx‹û¢õYñæî+í3êÉæ[ãEßbÙAÔ Ô5Ùvà¯èðbô!óÂîéµäÜá¼âiåFå¥ã9ãÊààÜÚÚHÞèæ¾ós Œø$®,1ç8? ?;9Ö8P9z:í;‰<¤<8<}8¶1+(Fd¾ 4 ò|üûEüZüüú2ù!ùý­ñžÿí÷bð¨èîß(Ö\Ì]ÈÌÊ&ÒUÝÊ髸²Å£~AuLã+Þ¿!è!Y#£#Õ"…#9$$?"·À 3üoó}ë2äÜÕgÔBÙ%ÝoÞ Þ'ßãhæÎèÅéNærßåØ1Ó°ÑlÖßµè‡óùüB¶ŠÿÃ"o o"LWˆ‚ ͹jaà $“÷Ýî2ë÷é4æáà¶Þ‚Þ$àwâ¿æ/íõº0 ¡Kû!O$Á$ê&ò*½/Ÿ1Î.ª(!²5þÌ¡„¶!}"Ü –xõ9ú Ü eÌD—Cÿ_% hm® ø  / ? @|ýkø5ô¡îÎèYæTê4õä¹ i K ƒ ; ïRÜ=©éðŒ>HQýtñŸâDÕÊ‘À‡ºÑ¶¨´°ñ¨[¤ ¥§¿©²ü½ÉeÒdÜùæÉïªö¤ûAS t4ÜÇf!o!>"Ì"ŸZ¡Tû /±ôíÖê2êé³èüé—ïB÷æþI|³ýÿOýÀø»ó¿ïþënê†êWçŽå´çìÒîôï¥ó¨ù¦L xç", 49%<ˆ;›7.4B3ù3Ñ9¤C6KíN5OÏH¼:±*Ægì DYùîïiç­ßÜaÛ†Úü×ÉÕI×éÙÌÚíÛdÝíܪÚ"ÚÖ×=Ñ ÏÑWÓUÖ¥Ü$ç5òõý{iº–ö·Á‚H„}ã'W-².7,Y(ö#•/B| âEÿUõ)êÒÝìÔ ÑªÎÎÐ÷ÔÖ ÑÍ„Ê9̃ӔÜUãhçšëqñfú™ü ÏÚ ±)è,Ž-¸.ÿ.î.n1 6j:P9{5*.›&¡‰5 Ðv-ý†ùÅú`û6ùBùúBûÃûËûúùûî’à ⋬6ß’ªn `s2½ ‚þ÷žôyïé4âÿÜçÕ Ì?Æ1ÆÉ̦Ñ×Ù(Þ à¶äè†é>ï|ù€äzQ à Q 7:Õ^qªûûÿùÈôíðÌðWðlïÎîÇì‘éEæ¸åqæ¯æÊæZåáÜEØp×™ØÉ×ÝÖnÔÛÐÂÍÍ,ÎÓΉғÙdà¹åëÍð¤÷ȉ {%Ì & +,á+r/{3à46W8_87×7^9¦82Ø&ù•Bû÷õOñÍëZì óø¡úBýbÿrþÎù”õ óLî£æáÂÜ©ÙZÛ/á·é\õbµ!J&K+y/þ4`:æ=>£;(721ú.¢/ÿ-Ø+G,ÿ*Ò'c#¢G3ü üTêôٺ̑ļ¿Þ¾‹ÂõÆÁÊ:ÐìÖ>Ü+áçjé£ä­ß÷ÝÐÝ[ávç–îhõgû±£m ÝìSÖÜ )ŒZ®š© ø| ýâñêèïã¶âqã â=Ý€Ù}×éØ\á†êMñq÷VýV”R _B¼:B Ù0Æ–Ø plÄ ô^= 8’_ üQÙ—+m ø†‹~õ 0¦š¼þßøZósðvî'ì¨ï“÷Òý±ª V X€ sÛ Zåÿ5ýqûü’ùˆòyì èÍáuÚ×0ÖœÕËÖë×$Øn×»ÖÖªÖÓÖ7ÙêÝ/ãôè%ð øáÿ1uI>ýôðC8‚7bjÁož-6ûðˆæ;áÝ´Ú^ÛØÜŸàøæçïõtömù€ùôVî évçvçAæ·ånå_å°ç$ìNðKôæú8¼: ß{"ü!º'k-*0‘/Ì-,Ì*œ+Š1'8e=ªAMA<…1d#I‰ 8ÿäùâö"ò'ê»âÞ{ÚåÙ`ÝÔà@áà¤ÞÔÜ2Ý”á–çbêéAçˆåäoåÃé1ñù@þòþÿý­ü—êP …‚°!)X-§+o%=– ]"ÿ§ú"÷°óî½ã§ÖGË8ÅPįÄ_ÃÀÀƒ½Y·™±1±j·&ÂSË^Ð^Õ’Ý¡éxö7 ûbŽ"÷#$ï$À%C(,1¢221_01.“*~%ËÒÆ|þûeøõ÷l÷UõTó2ôøÜúlûÊûgü‡þëN Î'T!‰ Íe F"#«!È Ë<Ÿ L ^¡…ÃùÆñWínéÇä2ásàÖáwáÖß¾áéæ1ìiñýö¨ú7ùÙö¿úlõ ¨øL^ÍØÝÂBH ¼lW}Ât*ÿfþ›øLðˆëœê¿í¶ò>õÜóó‰ó®ðëëdæ^ß&ØþÑÃÍ>ËúÈmÇDÉ@ÐÄØvÞ8ä;íùõÿûˆµ ãÛæ!&'´'Ö).-1¢1§0A0•/e*ù#i´]f¤ µyùšñ íšé—æ¤éAñGöãööõ”öÞúÃ÷kÛ|’ô&òlÎFÏ ÐçÖú!Q'-1?3[2X-Q)3(1(B#¼”–óLÅ~Ø ½‘›ýÒöbîbè®âÝ™ØÖõÕÑÔßÔìÙâBé_ì2ë,åØÝnÙðÙ‚ß%æ]ìñöšúºþ€Á ç<ß!`#â#$ø#($ç%s$³ {o•ø¦ïbííì2ë²äƒÝ’×¸ÔøÕ°ÖÛÓãSíõËüá& ²¯x ÷$v'1, 2†320´(„AÐEš©nrª¥Ue]t` Z  C ‘ ´ yÀâ¯U_­æþÞõmé/ߘÜÛáêZòðùgÿ⤠§ ]TÉç7ýöD¤sú/óBíäärڸЉÊ'ÇÌijÆÂÔÀ¶ÀØÁªÃÆðʰÒlÜæQí8õèýü1¯ d7u· ý°Ø' v hÙ—üŽô…î1ìâé åààƒßàÄßuâ²æNëòMô¿ñ´íëì1î ígêÖèiæ¡äçë2ì‚îõ@úþÄ*³²VÉ%$+â/ß/(,)î(Ž,O1s5*5½.ó&Ũ¥I ô»û`ð"ä±Û ×_Ö”ØºÚ ÙïÔzÔBÖ¿ÖÒÔBÏ]ÍwÏžÒÒÕR×ñØ.ÙÜØÚÚ¾áÕï¯üG Þåd®"!Ó%™'p(*².Ÿ2#433+3]5]4ß,&!ñ ïýörì-âoØÐÍÌÄí½ º¦»{¿\ÀsÀåÂHÉúÐÝØ–âé•ì/ñ£ø:ÿšA ›‚$p&(™+-ñ.ä1ø234’1–-1%òŽ eûóáôpûý3ùˆò¬ížìÅïûôâööbö‚ù-ÿ% v>¦"r%ÿ(˜+ñ,¿-=.d,Î(O($XK¸ Ë dôHèw߇Ü6ÝÞyÛ Ö¹Ò9ÑÑhѤձÝÀå®í½ölÿ~`Í}Ò%š(Æ&O$õ&ö's#”&ÊÐr Ûÿ¸ö2ò¬îêQäUá ß#ÚoØÜŒá˜å’è¿èæ@ãRâWã±ã­â˜ßWáÂçêr靿ÔâËãåçìé ì•îGï©ïšòCø)“‚mÏàQ$Œ(K&¶"ä¤ÿ—µç *­&úKò7ë’æî凿éöîÊôoù"üíû+øßð%ëMé`çåäDçóëíaìí¹ò.ûg– ÎØ!„&~'Ì)¨+*š&$¢! Eæ*d £iþ©è VùôîWèPââÜÏØSÖ¥ÒºÑaÔDÕ”ÖÚ ÜµÚÒ×SØ|Þãäé#ó]ü­I¥ at$.&Ž&½)ö-y1p4X7u8¾5)0—)°! Ä 3ðýš÷HïLåIÚÔÑŽÎ"Ì„Ç#Æ³ËæÒlÙgà'åêèøðìù?T ˜Ö †$b%$%²"Í Ý!â$Â#_Sˆ $G#s‘inµ Ëÿ©ø$òúóÜù&øÔô^÷ ú[öDôWøýhÿùÿCü"õÝíÆë î8òÛ÷nù5ö¤ö«ÿ‘ ³Ì }Oh ­ ª © ¼x¶ü¸ø3ò!æ×ZÍ€ÇÄÂl¿k¾ÎÁÄÆÈÈ4Ë3ÑàÔÚÚ£äòì»ó-úÌý†ü 0Í;z •×r ];. åýúµòkî+ïXîë«è:êñdø‹ù*ö´òîŒè­å4çGçMäÛåíÖð¯ï@ñøþp¼Ì µÄŸ•"ƒ&®)r+›,·-<0Ó6l:t9¨9 9>8918h3Ê(Nž×⢹úÄöÅô6ô4ó{ïKìkéå2âã8åšã/àbÞØÜAÙIÕ¯Ö¢Ýêä†é¡ìÔòŠýÔ ò ß · Ü@ßL` h!!!"Ó¶Ú9>gp± àxâÔúÀóÌçÚ4ÒšÏ%ÎÑÐÃÕ‚×wÓ­ÌÇâÄÉoÐuÖÝ›ä’êòòUý—) ŒkÛ"T% (^*þ,v3´6‡4±3¢1æ+û#bQ ­êÉöþ7ýèþDúqí5èñéÕë‚ñÑ÷ø ÷ôãõUÿ Óu£ Á(Ž)Ý(­+§*$uz D —Z¸{ Ö÷8ðWíYï ôüõ½ðuç¬ß#ÚØÀÝ9çÂîRññTðAñR÷»w3 ¸ µ >  IÕÌ„E¢ $tÝýÚø£÷´÷<÷°õðŽæ8ÝÛ¢Þïá;äoçùè£çåAããá«ÝÕ<ÏsÎäÍ~ДÖeݱå®ï`õž÷­ûŠóȺésÜ!@'®,ø.}.ˆ-‹*•'‡%¸"Blª 2 äz¬þáõÃíâæ5âáªådëXïúòvõÅù%þÃÿzMƒÿ¼ùìùPýÝý·ý þ°þé± 5KPÝVˆh¦Î cw ‚ T÷› Æ < ) §Aòþ…÷%î„æÃá|àˆßsß(ß>Ü'Ø¡×Øp׌×WØ|ÖSÔ ÕžÙuâFèsëðÀõ+ú–þI òž VÙ¾Èà*nu!`‡y ½ I I ë†öþ¿ú£øèóôîoèLß"ÙØrÙÉØ°ÖÁÕjÚsâ½æåkãÆæíIõâþG ,@\'VYì>ô½ ˜ï êõþý÷ú¿õOóô?ñèÆáÉâBæé“îÄòÊò_òåñVï=ëIêÕëeíûïÓôzø©ùÓøL÷¯øýE: ¡IQI"Ì!:–+#3'¯*\.¢3V7ð8:;>r??0>´;2ç M” R¾Gÿ¤ùÂðùèUãzÝ>ÜDÞ)ÞÚÝÆÝ$ÛÕ¨ÏñÊœÈÏÌýÓ•ØõÜÏãÌìªõ~üa~ DÔxn”ŽðF5°"“"H!d =i¬JQ³ 0blû‹ö”ñòëã‹Ø]СÊ7È<ÈÞÈË*ÎEÏ»ÍWÊÑÈÌÒä×ÝÃâUçìóýþÓ ­¬Ëª#$¡$œ'+¿/Ò4Ç4ü32b,o"º~qþ©üìû1øÊò®ë æAååAå è^îïòˆòñ=òüöÂü¨Bð¾ ÖAšuÚ/“¼´ŽG’ øÿÿõÎð.ð’òµôtôäñïxïèïlñ›ô½÷ZùÈøÐø·ú‘þŠÊ ‘>¨L“fv NP  ¿“þ¬ù„õdó9ô“ó&ñèïIïöííBì¡éåmáúܰÖÒWÏ_ÏâÒˆÖ½×%רØúÞÀæýìðëòuøúþa~ \º]Q»£6&g !Äð\ä1¾ EÜxÿùEï~åâ äoç$èÞäIááÕå¾íãó õÀðØéåãšà âè ð@øøþà —##³,S3C2†+Œ%Î$™(Î-r0Þ/9,‹% !ÖÅÀÜÔõ17ˆ Ó ÿ—õ.îØêêæé~èŸèòé•ç3âaàÜâ\ãÑÞÁÕaÌÍÆ½Æ–ͯ×èá1ë7ódù¤ú±ù–ý„‡ UäùQÕ¡bϺ`Š9t nnù+óŠíèªâ]àIá»àNÞ´Ús×þØÃßÓæì"ó¨ýþöÃPÿD(¡-l.a,(µ"ý {#š%$v#w"L s!Y#E# ¤Çy"Þ!£*ŒC]Ï(3" ƒjs² lûaùNü¾ý¾ü2üù÷ù?ù öŒó2ôÈõ öXú×™µ0 r 󴧿•ñ°èÊÞÙ°Ú Þ9ÞÅÝÞ#Ý5Û¸Û.ÝoÜÝiâè?ìeï‹ò2ô ôõoøSüzͼUê1 S b í¨U&ÿÐöáòªð;ëÉå;äçãñãqæžêpí}ìÎèFæ¿äsâ"ÝqÖîÑ„ÏÕÏžÐ}ÔúÜèå:íßò4øÇþ/ˆ  ¤.„Ç"S).ê023f5õ6H8< ¢pýûÄôùìîäêß6ÝŒÚ ØfÕÄνž¤¸¹ÀSÊæÑ×¢ÛÂßöåàír÷~ø!„° × |ßæ#x.É2ç0â-ê*×$ |L |?Ãû÷½òªïäìàê©ëQì˜éåçÕèúì°òcö™ø?üØã'¦ i þ  ·Û(!L`\QŸÛðþüýýü\üEú—ö±ô±óÄñÙï‚ñ¶ô0÷øíøúø½÷oùCÿ!\ E¾bš:H2³, J’ÐýÓû)þûþûŠõ)ðEë­êšîTï>í°éjèè=æ”å7æç!çæÆãQàRÚ¥Ó½ÏÓÎmÏÔÑÄÖ‰Û¦Þ_â[èÉî^ôæùrÔ‰HgÉÅW D´kYs%Mg= ™üã÷‰ô¢ðPîë è#è`éIè<ã­ÜzÙ[ڞܴßJßÜ8ÜÂÞߟÞàbäöéòLû3ñUÉþ$Õ*b0X4®4Š2Ì.ê+Ò,‚/1´1/Ž,o*€'œ )FÛ º…þ:÷¾óEòÙð2ï^ìöèÔä,àÝܦÛSؔҌÎ$Í*Í•Ï<ÕÞLèoñ÷ù ù'ù–û‘þô§tÕ Ã -" "Q µP˜Ô.L i íÜý;ôëåGãÒãæÜç–é²ì\ð‹òqòšóúéÄ ^uößÄ Ígëå‡ß$â)6/Þ/&-M.7/ø(Ä ºÍµ%”+,§'Î!‘[-B $ ’7´3Ö _ þ[Íaÿgû1÷.öYùèü±tݼþÍþbム] HØà 6FQúæòFí„è™ä±à2Û±ÖZÔÙÓÕbÖ•Ö¨Ö‚Ö•ÖKÕ ×)Þ åÝêÊðOõýö™÷öönöY÷møû>ÿÃÿîý¡ý7ÿþ³ûôú²ùù%û]üú½ù2úcøÑôzòñùð(ðÕîlì6êÔê;ë9êïèXèæ’ä—ä\壿±æ™æ*éìFïô ø¯û¨D y­Ñ*"®&a,3:æ<|;";`;67Æ-„#0’ 6u¶ýø×ó—ð5íÿêHéåäòátáà Þ‚ßÊá”àgÛñÙÞââ²éJóïüæÜO „ < 7 {óÂ=wÞƒ"A'`,b.z.ú+ò(Ó%„ ½BBØ’‡?þlöaíwæ¾ß Úæ×õÖ¾ÓmÌÆVÅAÇÊ”ÌøÍÐÏÒ‘×ýÝ*å[ë=ðºõ“úrþMó4Ñã3µ ‚)…-Ý,–'/ ‚™šä³ ÃÌ* ›¡ù]ò íâéë­ïÇógôàñÎðLõ«ü47 QÄRµ‚_„wøc½? p8(ÿÀûÀùgú„ýq þªùl÷(øÃù˜ú•û¾ýùú*¾åñ‰º•€Óx¤Å5Î 1 .]þ£û<ýûÓÍW´?ˆ7¢ú]øî÷Døÿõ!ð@éÚá>ÝÛÃÛ ÝÝÜáÛWÝ0àHæì}î?ñÊøjAF •¼%P ê!4"uÑé Íð^€t  ¶í j G,ú™ô¶òÏôNö‰õwõ)öáõÚõBóNñ!ñ•ïí.êê‹ê ë[î¾ó·ø›þ®ô ñTsÓ')ßÑ‚ K — Ä ß¥7,k " … 2Òü½òì¯éñçläõàßyÜC×õÒâÐcÐÅÐyÒNÓúÔüÚ‚ßhâ÷åKè.ê‘ìúïDô1÷‡ù+ý›© ~Ÿ€B¼ ÿ”ï°ãÅÛÏÖzÓoÑ‹ÏOÍ(ÍàήѱÔ4Ù\Þ¦ãé;ïVõúœýEÿBæx½D „ Ú ·*«rvÔFnѳ\@!¸&3*º+¾)â$Ú!†••ƒ µS!ý%ýÑüwú¸ø•öÇóÚñî<ëëŸìÁí^ñøúSÅ Ž ²Uá¿TœóC¼(QŽ$ûôäïàí î¸îið'ò‡ñÞñóôõö1ökõ&öZ÷µøjù û,þrÿ~ýUüìþ8ýøBøYúfýåþÿõÿrÿßj‚z—ÿäþþÁÿ;ÇØ ‡Ù % £âþùóõ[ó?ð­ì@ê£êPêŠè”èAìÁðô÷önúºµ Y¬¥‚òbä_!_"ô#h*2 8:l<Ñ>.??>ë6E+µ;$6 e‹ÿÚý"úôð®íÅëOê~çùáÀÚÓÔ½Ò¹Ò!Ò–ÐÑlÖ©Û×Þuä6ë©î¿ï?òq÷8ýê&ð+  È ° < ýy2%$H(H'e"ÔqÑ gÿ¼øxö”ôwïæCÜñÔ,Ï`ÊKÈ>ǮIJÁ¸ÁÆÃlűÇÎÌUÕpßbç&íäòÊ÷ ý…ç Þ 'Óм+2Ê ¡!£¤d‰3 j´ÿ€û”õúñ¨ðò›õíøúñúùý­ÿcýû8ŸÇì", /Ë-,-¾*¨&ã#S ËBRP HHZýf÷ýôõ’ôÛñ¤ì¸èõç¤èfèUæcå.æùéßîœñÈô›÷éûÀdr Ñ £§}Ž ÿþýÈø®õ“ó óãôU÷:øÄøGù+øö5öžõÒóÆòððð ñµð÷í£í¡îYíêjçgåÖâwààâiäIåæåéÏî™õÇý÷+ …wñ?Q"ì$g#Ó ”u úD¯:2žÑ þ õú•ÿ'òýyú&úý1þÿ£k6È2ªÊÔ v ± Q¡Ð … ‰Ï9ë§ä®ŸÐ ÝɨcF(lQzMrHuØá ØyöÿcúdôQëôá§ÚW× ÖÕ“ÒÍHÉ™ÉîÌÑÐäÓªÖOÝzãžæ\êTîòôöõø¾úÁû:ý°ö >ÿ¨Ÿ ” Ô ÿ~þÚíQÜšÑQÌHÇ™Àóºl¸F¸žºµ¾PÄÛÊj×Âä—íÂõœü°ƒcôAÝ ”!¼Ÿ¶  š"izMâÛº § n ‘ q «è %Ñ&*&'%'" »J`W' 5†Œ)ÿ‘‡}Ó#Œ 0Õ¶Ï×8 ® µ.°ó¢—®ÂÖüù”óíØç²ä#âàßß\ßwáøãKå”äÉâ/ãÏåÄéeîÑò²ô™õù.ýÿS¸ { p·  WËüøÁõØôúó•òQñ®ï\î ï‘ð£ï¯ðOô0õNòîîvì1êé9éšêpígðˆð0ïaïð@ðùð9õ,ûÌ ¨ ß%©F—Ý%+§0w6X:}>xAÀC DAª<46ü,Ñ$à6Û ÷‚û{òYë’å»áÇßøÜâÙý×ÊÒàÊýÁÜ»w¼ß¿ŽÂyÃÆÌÎÙØáFæˆë…ñØö'û¨ÿ—v Úý¡|Ÿ1â#)Ó*B+K,Ò)Û#Õ Î}¾ýòªêæ‚ß‘×Ï1Ê:ÉŠËHÏbЛÎIÌ™ÊÁËõÎ6ÔÀÚlß§ã§çñêäîŸõhþYc ¸›h '%ó([*x(/%x&ƒ))*)í$ªNɬ /šù-ÿ}þÁþmý û–ûXÿ¢7¾þtú׿dD ÿ%Ù,a.9,¨*#%[ñ/"aý¬öëî•ê—ê0ëáè×ã'à@àÔálâ@ãÈâzàLàšâVå/éï»õ°ý] x Œ ³ éå ÿ,GoðûGúªûÛý‚åX¦ýHøßó`ðÒíììŸìêöå~åŸåã–à:ßRÝìÛßãfâƒß¦ÝëÞmãúçLîôõÏû³û¦ K_»I€—5$À&%Ô"#2%Ø!ø¯•ñÛ¸ž¬ “©©*‰›þÊdý»ýÿÿ<ýGýûþÿÆþdÿ¤þöþCò § E(8OSû!d#" !‰!†#æ%ƒ$I!ºßP+ë ™ OšOcáÃþ`ø1ñç¼Ý[ØiÓ§ÏÞÍÏÇÏAÍB̗͸ϷÑ\Ó)Ö«Úrà›äæKéËî‰ò%õtú} Ž ¿ ‹çÑÿ!m#H!­Ü“ߌûâñÆèãÝÚÞÏ_Ʋ¿­»l¹a¸E¸é·¹à¾ÎÅ$ÌäÐCÖ³Þ è’ñºü€£ Æs[{æŒ #Ë#i$,&'—(<-20ž.”.Ž1©1W-)„';+50è-N%ùR7 1ÿe÷÷öñùþûðú~û³üúõÃî/ëSïSøPþ¢@ϺgRNDÔ‹ ä ù6S• ‚³ ,‚úOîãúܶ۹ÛóÜ¥ßâæ$è‹äà<áåÀçlê'ï>ò6ò{ò°óô‡ôPõ öóøæüdì:ÚR"¢ÂçÿWþ<ûe÷}õÒõÃ÷»ù ÷ëõÁ÷mø¢÷iøÑûáý›ü¯ù²÷Lö‡òtíïëÑí4ñõô÷¾ø0ü²g å zrÌŸ&§ ù%=*4/·2$5—7I:ï>LCPFòI¢KªFH>›43)´AIE ¸ ŒþÝ÷Fó¢ï¨êæTáëÞ$ÞÝpÜÜ\ÚSÚ¬Üçß¼âñäÅéJîŠñfõø…úLÿj G ­ p‰`o²2˜!¤!„î›KÎ « E»öªòÈï—ëèÌä@â¹àñÜwØÁÕ™Ô‚Ó‹Ò‡ÕWØÇÜäùèëÜïŽôÅøîý>Ô rŠ Ó©œ ¬æ|X€ c Ð ?ú^ùšù¡ø!÷2õuóOöòú‡þuxÄ ±°™cäf'×.¹246;<=Þ6 ,N'$C ûìôÂìåªÞWÛRØÔ¾Ð:ÐvÑ9Ô ×^×B×6׈×ØÚœß'ç´íùèâ †èêJn 7 à € v­!þ\ùtôõ÷á÷ÿõæïbê«èpçàãþßHÞÍß;âÎáóÛ×êÕbÕ†Ö¦ØÉÚòÚÊÛÞ7àÄáƒãÖäSçDëòû…‘Ù ãSÔMÌMi %ì),(¯#@"¶àgf¸®êÿÇ*HüôúCúHöÙò:ñ¡í‹èÕãÊãýç.ï´ù‹d7 y({ðnØçz8P,@å}Ý«>!oÃZ&œÕ€ » :¾[þ+ýïýú[óï1èñÝgÖ ØžÝüÜ/Ø£ÕÖ«×;ØPÙÓÜUáçŸëíßìðt÷zýþY€ *Ü­™W¼^ + ' þüø/ôBí(ä%ÙìÐÎèΣÐ+Ö˜ßÆè£í_ëvèÔéuî{ô û Ê  טòH¤Dc¸‘¡ ìÝ oT g  I Ðr £% TÚ '3òþ×ÙX å ­ 1 V ©g_oíüöhEBä 4 Î 5“sÅBß=Üý—ú?óÂèálÚ¢ÓxÏ¥ÐlÒðÐÔОÓ`ÖÛHàáÜßfÞ¾á¥êÈñsô„öpøWû{ÿ¢LG^ ûÕÍͦyÿ³üûäøTõqð.ì‰édêìßììëì ðFó^õ/óeíí:ñ¬óÌõëö,ôbñîî-ëDìJòö÷¹ûÂþa”ëT«Œ×Ö0Òj ‚"2' ,’1a9þ@­D EC <Ê5ž1þ,G&-¨XC ÿŽüuøKôaï7ëHèçNæ|äøáiÞÍݧßhá¯ãÅä^æäêò”ùYþäþìþ‰ï ©K]ÖÈ Ï!  U%×+Y1Å0Ó+Õ'%% ^Ý ½ ¿Q8úªðÔæ±ßˆÚdÕ­ÐÏáÎËú«½í½è¾=‰ÉçÓBÛÞÝàüäê^îøðŸùÌ” #8 ä áXZ"ü)o+÷%Þbö(z † #æÒÿÆûgù"øW÷ÌöøôMð]ìì(ðšõ–úDË„¨Ÿ:" (¨*Å&¢²ù‘2úoï4è§æÉéOêçZåMâÞìÚéÚÉÝ@ÞÕÛŽÛ Þâ±ç8îÆóO÷tüt+íň&Ì%£!¡Ê¤b»SM ò Ðäiãq ý—û9û2ù˜õbò+òWóEòMï1íEíFìþèuä”àÛÊ×fØŸÚéÙw×B×±Úuâ~ê¤ð¼÷þæ2 µª *$²#Ð!±!³$ &&Ë# #«$(C*Å(E$MbÛC <üÚø òfð;ïtï|ðï„íSëvëåíXî¢ðuô÷õùõ÷ö…ò‹ñóñõ·úRÔV ¤³ª!Ý ‡à $LÜö™ œ°üú7õüóG÷'õð¼ïDï™ì?è©åá]ØâÎËmÊÌÇÆÆ È€Ë®ÎýÑôÕÈÚVá|ç¶éníÄò¦õ¡ù!U¨ A  òÐÏ%…$ë"ƒ##"×qs”ûóqäÓ٘҉ϖÌ2Å®¾¯»ôº…Á×Ì^ÔaÚÒá¿æ­ênñ5û§e bÌÇáïŒ!Ë!· ¯`"†';+ä-9-þ*•'‡0«êy¾pm ä'þ/à10/²*!®PYýröÕõUûÿƒøüðøÜõ2õöüø¿ýžŒþLù÷%ü¡ÿ_ÿa þLýþ³ýNþ?匼úŸñÉê¶çæÿãÉáÌá²ä€èÉì&í9ì`ì8ìVìúî%ïxê­çCæ¶åŽèî¨ñ·òÒòÔò/ñ%ñ!õù!úý͇þÝøõ6ó„ðˆì¿êeë5ë´íñIô´öS÷^÷áù™üÞý4þÀù‡ôÿïkîšï^ïÚì¤èÒåáä%ç6ìFñ¬ö×üK ¯Ú t%)M&j# $'Ï+V2; D¤IµMLQ‡RŒPL¼B`4ã$? `=üéøØôgïâîCð_ïòëMééçAåƒáÜ×DÖPÖ¯Ú™Û‡ìŒùø¾û¶ü4öfó±^7x Õ K ÈŸ  ; Ÿ < : ^ » – t  ­ (/e?þNüÏùN÷Wõsô@óñîŸì*íŠíÆíœîïcïFðâñ¦óGõ%÷Ùøû!þÇ¥ã›À <J:Í–n0°ü, ±$Nÿ…ýüüý9ý%ýzüüÌýWþÒýqþ8ÿïþŠÿÿŒÕà@ ]Äùþ¹8wq Ç ‡  ¾ÿzûXù`ùòùïùnùçøøa÷”÷ò÷éöüóNòó“ôCö·øúû%ÿÝòZ÷¦ X Ý ” Ë R ´c‘Ìå´ó³ÿ @gq„5þÛú|øêööÉõXõkô½óVóõòŸó‡ôõ&õ0õ’ôAô¹ôòõ•övöyöÛö×øÚûZþ1W¬À5  Å  c %  H g ç¢jãaoÆüÎê4éZq9h¼ÿ9ÿãýLýðü%üfû{üCþýÿ›æþTþ!þ&ÿM÷¯ÆýªyÀÎô¡0 ? / + F v ™ Œ µ 9 ö‰jâÿýýÙýgÿGXÜþý3ûí÷Áó`ñeñJñâï'î)íì–ìùíðTòÂó]ôpõ»÷ÏúþÙ¿dõ0Ƴ êP^iO ß A _ÕþÅø/ò îí¤îíðíòóàð¼îkîñï¶ñ%ô÷¾ù•ýwwPÔ&Sfò3 : – Q f h ­  ° j  8BúÓŽ{,Núû=ÑM ' lgeneral-1.3.1/lgc-pg/convdata/move.bmp0000664000175000017500000000055212140770460014651 00000000000000BMjzl ð  BGRsåååååååååÿÿåååÿÿåååÿÿåååÿÿåååÿÿåååÿÿåååÿÿåååååååååååålgeneral-1.3.1/lgc-pg/convdata/damage_bars.bmp0000664000175000017500000000045212140770460016127 00000000000000BM*j( Àë ë ñ½Š÷÷²²³³~~ñ²Âz À¼ À¼ À¼ À¼ À¼  š  š  š  š  š€x€x€x€x€x`V`V`V`V`V@4@4@4@4@4     lgeneral-1.3.1/lgc-pg/convdata/wheeled.wav0000664000175000017500000026042112140770460015342 00000000000000RIFF aWAVEfmt D¬D¬LIST:INFOINAMwheeledIARTMarkus KoschanyICRD2012data£`€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~€€€€~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~€€€€€€€€€€€€~~~~~€€€~~~~~~~~~~€€€€€~~~~~~~~~~~~~~~~~~~~€€€€~~~~~~~~}}}~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€~€€€€~~€€€€€~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€€€€€€€€€€€€€‚‚€€€€€€‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€~~~~€€€€€€€€€€€€€€€€~~~~}}~~€€€€~}}}~~~~~~~~~~~~~~~~~~~~~}}~~~~}}}}~€€€~~~~~~~~~~~~~}~~~~~~~~~€€€€~~~~~~~~~~€€€€€€€€€€€€€€€€€‚‚‚€€€€~€€€€€€€€€€€€€€€€€~~~€€€~~~~€€€€€€€€€€€€€€€€€‚‚ƒƒƒ‚€€€€€€€~~€€€€~~~€€€€‚‚€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€‚‚€€€€€€€€€~~€€~~~€€€€€€€‚‚‚€€~~~~~€€€€€€€€€€€€€~~~~~~~~~~~~}}}}}~€€€€€€~~~}~~~~~~~~}}}~~~~~~~~~~}}}~~~}}||}}}}}|||||||||}~€€€€~~~}}~~~~~~~~~~~~~}||}~~~}~~€€€~~~~€€‚€~~~€€€€€€€€€€€€€€€€€€€€€€€‚ƒƒ„ƒ‚€€€€€€€€€€€€€€~}|}}~€€~}}}~€€€~~~€€€~}}}~€€€€€€€€€‚‚€€€€€€‚‚€€€€€€~€€€€€€€€€€€€€€€€€~~~~~€€€€€€‚ƒƒ‚‚‚‚‚‚€€€‚‚‚‚‚€€€€€€€€‚‚ƒ„„„ƒ€€€‚‚ƒƒ‚‚‚ƒƒƒƒƒ‚€€€‚‚€€€€€€€~~~~€€€€€€€~~~~~~~~~~~~~~}}}~~}}}}}~~~€€€€€~~~~~}}~}}}||||}}}}}}}}||{{{{{{{|}~~}|{{||}~€€€€€‚‚‚€€~~~€€€€~~~}}~~~~~~}}}~€€€~~~~~~~~~~€€€€€€‚‚‚€~}}~‚€€€‚ƒ„„„„ƒƒ‚‚€€€€€€€~~~€‚‚ƒ‚€~}}~€‚€€€€€‚‚~~~~€€~}|{{||}}}|||}~€€~~€‚‚€~}}~‚ƒƒ‚‚€€€€€€~~€‚ƒƒƒ‚‚€€€€€€€€}||||~€‚‚‚€€€€€‚‚ƒƒƒƒ‚‚‚ƒ„…†††…ƒ‚‚‚‚€€€€€~}}}~€€€€€€€€€€€€‚ƒƒƒƒ‚‚‚ƒ„„…„ƒ‚€€ƒ„…„ƒ‚‚ƒƒ„„„ƒ‚‚‚€~}}}€‚ƒ„ƒƒ‚€€€€€~~~~}||}}~~~}{zz{|}~~}}|||}~€€€€€€}|||}~~~~~~~}}||}~€€~|zzz{|~€}{xwwwxzz{{{{||||||}}~€€~}}}~~~}}|}~€~~~€€€~}|{||}~}}||}}~~}}~€‚‚€~~€‚€€€€~~~~€‚ƒƒƒƒ‚€€€ƒ„…†††…„‚‚€€‚‚€€€€~}{{|}~€€‚‚‚€~}}~~~~~}}}}}~~~~}}~~}}}~€‚„……„‚€}|{|}~€‚‚€€€€~~~~‚‚ƒƒ‚‚‚‚‚ƒ‚‚€€‚ƒƒ‚‚‚‚‚€€€€€€€€~€‚‚€€~~}}~€€‚‚‚‚‚‚‚‚‚‚‚‚‚€€€‚ƒ„„ƒ‚€€€€€‚‚‚‚‚ƒƒƒƒ‚€€€€‚ƒƒƒƒƒ„„……„ƒƒ‚‚‚‚€€ƒ„…†…„‚€€€€€‚‚‚€€€€€€‚ƒƒ‚€~€€€€€€€€€~}|||}~€~}}}}}}}}||}~~}}|||{{zyyyyzz{||||||}}}}|{zz{}€€~|{zzzyyyyyyz{{{|||||||}}~~~~~~~~~~~~~~~}|{{{{||}}}~~~~~}}}~~~}}}}~~~~~~~~}}|{|}~€€‚‚‚‚‚‚‚ƒ„„……„ƒ‚€€€€€€€€‚ƒƒƒƒƒƒƒƒ‚€ƒ…††…„‚€€€€‚ƒ„„„ƒƒ‚‚‚‚€€~}||}}~~~~}}}|||}}~€€€~~}~€€€€~}|||}~€‚€~€‚‚€~}}}}}~€€‚ƒƒ‚}|{{|}~€€€~}}}}|{{{|}€€€~}|}ƒ„„ƒ‚‚‚‚‚‚‚ƒƒƒ‚€€‚ƒ…†††…ƒ€~~~€‚…‡ˆ‡…ƒ€~~€‚ƒ„„„…………„ƒ€€‚ƒƒƒƒ‚‚‚‚€€‚„„…„„ƒƒ‚‚ƒ„……„ƒ€€ƒ…††……„„„…………„ƒƒ‚‚‚‚‚‚ƒƒ„ƒƒ€~€€~}}~€‚„„„ƒ‚€~~~€€}{yxwwxz}~|zyyyz{|}}}}}|||||{zzzz{|}}~~}|{{{{}~~}{zyyxyyzzzzyyxxyyzzyyxyz|}‚‚‚‚€~|{zzz{}}~~~}||}~~}{zz{|}~€€€€~}|{{{|}€€€€€€‚ƒƒ„ƒ‚€~}}}~ƒ„„„ƒ‚‚‚‚‚‚~}}~€€€€‚ƒƒƒ‚ƒ…‡ˆˆˆ†…ƒ‚‚ƒ„ƒ‚}|||~‚‚‚€€€€€€€€€€‚‚‚‚‚‚‚}||}~€€€€~|{yyyyzz{|~€‚‚~~~€~}||}~‚„…„ƒ‚€€€€€€‚ƒƒ‚€€~~}}}}}}|}€‚€€€~}}}~ƒ„„ƒ€}zyz|~€‚‚~|zyxxy{}ƒ„…………„„ƒ‚‚‚ƒ„…†††„‚€€€€€‚ƒ„…†……ƒ‚‚ƒ„…‡ˆˆ‡†„ƒ‚ƒ„…††……„ƒ‚€€€‚„†‡ˆˆ†„€€‚‚‚‚‚‚ƒ„„……„ƒ‚€€€€ƒ„…………ƒ‚€~}|~€ƒ†ˆˆ‡…ƒ€€€€~|zyz|~ƒƒƒ~|{zyyzzz{zzyyz{|~‚ƒƒ€}}|{{zz{{{zyxwwxz}€€}{yxxxyz{{zyyyyz{{{{{|}~€€€~}||}~‚ƒƒ‚|ywvwz}€‚€~{yyyyyzz{|}~}}||~€‚ƒƒƒ€~~~~~|zzz{}€}zwvwz}€€~~€€~|zyyz{}}}~€‚ƒ„„ƒ€‚„……„‚€€ƒ„„ƒ‚€~€‚ƒ…††‡†…ƒ‚‚‚ƒ„ƒƒ‚ƒƒ‚€€€€‚ƒƒ~}„††…ƒ€€‚‚‚}}~„……ƒ€}{z{~€‚ƒƒ|{{|~€€€€€~|zwvuvx{~ƒƒ‚€~}||{{{|}~~€ƒƒƒƒ‚‚‚€~}}~‚ƒ„„ƒ‚€€~}||{{||||{{z{}~€‚‚€€€€‚‚‚ƒƒ‚€€€‚ƒ„„„ƒ‚‚ƒ„……„‚€‚„††…„‚‚„†‡‡…ƒ‚‚ƒ……„‚€~~~€‚„†‡ˆ‡†……†ˆ‰ŠŠ‰ˆ‡†††‡†…‚€~~€‚…ˆˆ‡„~|||~€‚ƒ„„…„„ƒ‚‚ƒ„…†††…„‚€€‚„„„ƒ‚‚ƒ……„ƒ€€‚ƒƒ‚€~|{z{|||||{{yxvuuvwxyyyyyyz{|||{zyyz}ƒƒƒƒƒ‚€}{ywuttuwxyyxwvvwwwwuttuwyzzxwvvwxz{|}}}}|{zz{||}}}}}|{zyyyz{|}}~~}|||}}zxwvvwxyz{|~€€€~}{yy{}€‚„……„ƒ‚‚ƒƒ‚€~}||}€‚‚‚‚‚ƒƒƒƒ‚€~€‚‚{xxz~ƒ‚{z{~‚†‡‡…„ƒƒ„„„ƒ‚‚ƒ„†††„‚€€~~€€€€~~}}‚ƒƒ€€€€€~}}}~~~€‚€}{yyz|}~~~~}}||{{|}~ƒ„„ƒ~~€€‚ƒƒƒ‚€€~~~~}||}€‚‚~€€€€€€‚ƒ„„ƒ|zxxz}€‚‚}{zyxwwxz{||||}}}~~€‚ƒƒƒƒƒƒƒ‚€ƒ…‡ˆˆ‡…„ƒƒ„†ˆ‰Š‰ˆ†…†‡ŠŒŽŽŠ‡„€€ƒ„………„…†‡ˆˆ†„ƒ‚ƒ„……„‚€~ƒ…‡‡…ƒ€ƒ„……„ƒƒ„†‡ˆ‡…„„„………„‚€~}|}€‚‚‚‚ƒ„…††„‚€‚„…„ƒ‚€~~}}}}}}||~ƒƒ~{ywwx{}€€~}~€€}zxwwxz}€‚ƒ‚€}zxxy{}~}zvrpopsvz}~}{wspooqux{|}|zyyzz{{{zxvtsssuvxyyz{|}~~~€‚‚‚~}||}}~~~~~~}}}}}~€€‚‚‚‚€~}{{{|~€€}zxxy{~‚ƒƒƒƒƒƒ‚‚€~~~€‚„…††……„„ƒƒ‚‚‚‚~|||}~€€€}}}~€‚„…‡ˆ‹Ž‰„{z{~‚„……ƒ€‚ƒ„ƒ€€„††…ƒ€€‚„†‡ˆ†„~}}}~~}}~‚„…„‚}{zz|}‚‚‚€~|zz{|€~}{{}~€€}{yyz|€€€‚‚€~~}}}}}||{{z{{||{{{{{|}}}||}~€‚ƒ‚€~~~€‚‚‚‚‚ƒ„……„ƒ~}~€‚„…†‡ˆˆˆˆ‡†…ƒ€~‚„…††‡‡†…ƒ€€ƒ„†‡‡‡†…„„…………„ƒƒ„„ƒ~€‚ƒ„ƒƒ‚‚‚€~~€‚ƒ…†‡‡†……„…†ˆ‰‰‰ˆ†………††††‡‡‡‡†……†‡‡†ƒ€ƒ…‡ˆˆ‡†„ƒ‚€~}}~€ƒ„„„„ƒƒ‚€~{yxxyz|}}}}}|{zzyyxxy{}ƒ„ƒ}zxwxz|}}|zxutstuxz|~~}|zxwwwy{|}}|{{{{zyxwwxyzyxvtstuwyzz{{|}~~}|{yxxyz{}}}|{yxwvuuvwy|}}|zyxyyz{{|}~}|zxwwy{~€‚ƒƒ‚{xuuwz~„…†‡ˆˆˆ†„ƒ€€~}}|||~…ŠŽŒ‰†‚€ƒ…‡ˆ‡…‚€€‚„††…„ƒ„…ˆŠ‹Œ‹‰†ƒ€ƒ†‡…|wsrsvy}€€~|{|}~€‚‚‚}{yxxy{}€ƒ„„ƒ‚‚‚ƒ…††„ƒ‚‚ƒzvtsvzƒ…„~{yxxxz|~‚‚€~|{|‚„†††…„ƒƒƒ„„ƒƒ€€€€€~{xvvwz}…‡†‚}wsrtx|€~}||}‚…†…‚}xtrrsvz~‚ƒƒ~{{{{|{zz{}‚€ƒ…‡‡…ƒ€‚ƒƒ‚}}~‚‡‹Ž‹ˆ„~~„†ˆ‰‰ˆ‡†…„ƒƒƒ…†‡‡…„ƒƒ„…†††…„ƒƒ„……„‚|z{}€ƒ†ˆ‰‰ˆ‡††‡ˆ‰ˆ‡…‚€~~€‚„…††…ƒ‚€€‚„‡ˆ‡†ƒƒ„†‡††„‚€~~~€€€€€‚ƒƒ‚€~}}€€~|zyz|~‚‚€‚‚€~}|zyxxy{||zwurqqsuwyyxvtuvyzzwsomlmoqqrtvy|~€}{zxwvuttuvy{}~~~~~~}}|{{{|~€~|zz{}€‚‚€}zwwz~‚……ƒ|zz{}€~|yxxz}‚‚{wttwz~ƒƒ‚€€‚€~{z{}€‚‚‚ƒ„†‡ˆ‡†„ƒ‚‚ƒ…‡‡‡…„ƒ„„…„ƒƒ„…‡ˆ‡„~~€‚„††…ƒ€}}~€€€‚ƒ„ƒƒ€}{zz|ƒƒ‚€‚ƒƒ‚€~|{zzzzz|~€‚„„ƒƒƒƒƒ‚€~|ywvvy|€ƒ…„‚‚…ˆŠ‹‹‰…|yxz~‚„†……………ƒ€~~~~~~}|{|~€{wsrsux{|}|{zz{}‚‚€€~~}{xvsqqsw{‚„„ƒ€‚†‰ŒŒ‰†ƒƒ„„ƒ‚‚„‡‰ŠŠ‡…‚ƒ…††…„‚‚‚‚‚€~}}~€€€~}}~„‡‰‡„~|{|||{|}‚„…†‡ˆ‰ŠŒŽŽŒŠˆˆˆ‰‹ŒŒŒŒŒ‰†„„‡‹‘‘Ž‹‰†„‚‚‚ƒƒƒ‚€„‡‰Š‰‡…ƒ‚‚ƒƒƒƒ‚€€ƒ…ˆ‰ˆ…‚}|||||{zyyyyxwvwx{~€€€~}~~~}|{{z{{zzyxvtsqqrtvwxwutsrpooprvy{{zywvutsrrrrrstw{‚ƒ}yvuvwxwusqqsw|€„…„~|{|ƒ‚}||~~~}}}{ywvwxyyxwwxyzzyxxyz|~€€}zyy{}~~}||}~~||}€‚„…„„„†ˆ‰‰‰ˆˆˆˆˆˆ‡‡†…ƒ€„‡ˆ‡…ƒ‚ƒƒ„……………†‡‡‡…‚}~€ƒ…†…„~~~€ƒ„ƒ€~~€‚ƒƒƒƒ‚‚‚‚‚‚|yvuvx|„…„‚~zxvvvwxyyz{|||{zy{}„…„~zxvuuux}ƒˆ‹Š‡ƒ~{yz}…‡‰‰‡†…„„„„……†‡‡†…„ƒ‚€€‚„„„ƒ~|ywutuwz}‚ƒ……„|{{{{{|~„„‚~zxxz}~~~€‚„†‡ˆˆ‡…ƒƒ‚€~}|}}~}}}„……ƒ‚„ˆŒŽ‹ˆ……‡‹ŽŒ‰†ƒ‚‚ƒ„…††………†ˆ‰‰†ƒ€€„‰Š„}wuvy~‚„†‡‰Š‹‹‰†ƒ€~~~€€€ƒ…‡‡…‚€€‚…‡ˆ‰Š‹‹‹Š‰ˆ‡†…„„…‡‰‰‡…‚‚ƒ…†…‚~{xvwx{~€|yvvxz}}}{xvuuwy{|}}}}}~~}{zxvtsqpppppqrsttsrqrsuwwvtrpprw}ƒ†…{uqoopqrsuwxxwwvwxy{|}~~|zwvvwz|}~}|||}}~~~~€‚„†††„‚€~}||{{{||}}||}}~€€€€}|{}€ƒ……‚~zyz~‚……„€€€‚„…‡ŠŒŒ‹ˆ„€}|~€‚ƒƒ€~|{zz{|}}}|}‚…ˆŠ‹‹‹‹Š‰‡…ƒ€ƒ„†…ƒ€~}~ƒ………„„…ˆŠŒŒ‰†‚}~€‚ƒƒ€~~}|{z|~€‚‚‚ƒ…‡ˆ†„€~}~„‡‰‰‡…‚€~~}~€€}zyz}€‚ƒ~|{|~€€€€€€‚ƒƒ„„„‚€}{zz}€‚„„ƒ€}zxxy|~}ytpmlmortwz{{zyyy{~€ƒ…††…ƒ€€ƒ†‰‹‹‰†„€~~~~ƒ„„ƒ€€ƒ„…„‚€„……ƒ~|{{|~€~}|}€ƒ†ˆ‰‰Š‰ˆ†ƒ‚‚„†ˆˆ†ƒ|{|€„‰ŒŽŽŒ‰†…„…†ˆŠ‹Šˆ†ƒ‚ƒ†‰‹ŒŠ†ƒ€€‚„………„ƒƒ„„„………„„„„…†‡‰‰Š‰ˆ†ƒ~xtsvz€„†‡‡ˆ‰‰‰‡…‚€€‚€~|{{}~€}yvttvz}}{yyz|‚}{{{{zxvuuuwxxxxwuspnlkkklnpsuwvvvvwwwuttvxyywuuuvwyz|}~}|yxwy{~€‚‚€|wronqw|‚~zxwwxz|~€€~{yxxxxvtrruz‚„ƒ€|wsqrv|‚†ˆˆ‡†††††……†ˆŠ‹Š‡…„…‡‰ŠŠŠˆ‡…„ƒ„†‰‹Œ‰„€}}ƒ†‡ˆ‰‹‘‘ŽŠ‡†‡‰‹ŒŠˆ…‚€€‚„…‚|upprv{~€‚ƒƒƒ‚‚‚ƒ„ƒ}}~~}{z{||}}}‚†ˆˆˆ‡††‡†ƒzvsrqqqsv{‚‚~|{{zyxwwxzzxurqqtw{~ƒƒ‚~}}~}}||}~€‚„„ƒ}ywx{€„††…ƒ€€ƒ„††…‚~yvuvy~ƒ‡‰‰…€{xxz~‚{yxy}…††„‚€~~~‚„…†‡ˆ‰‰‰‡…ƒ€€€€€€€€€€‚„…†…„‚‚„‡ŒŽ‹‡„‚€‚„†‡‡†……†ˆŠ‹Šˆ…„ƒ„†‰‹ŒŠ‡„€€‚…‡‰‰‡„…Š‘Œˆ…ƒ„…‡‡‡…ƒƒ…††…ƒ~}}}}|||{ywvvy}ƒ‡ˆˆ†ƒ€~~~~~}|||~€‚„…†‡ˆˆ‡„~}~„‡ˆ‰ˆ…|ywwy{|}|zxvsqonpty|}{xtrpprtvxyzyxwwxy{|}~~{yvtrpnmmnptx{}~~}{ywvvx{~€€~{xtrpprtx|‚‚€~|zz{~€‚‚‚‚‚€~~~~~~~~~}zxvvwz}€‚‚€€€€€~~€€~{ywwz„‡‡…€|yy{}‚„„ƒ~zxy|†Š‹Šˆ„‚„‡Š‹‰…€ƒ‡Š‹Š†‚~…ˆ‰‰‡„‚‚„‡ŠŽŠ…€|z{€…‰Š‰†ƒ€~|ywuuwz}€‚ƒƒ~}}~~€‚„„ƒ}zxy}‚‡Š‹ˆƒ~{{}€€€‚‚‚~~€€~{wtqru{†ˆˆ†ƒ~~|zxvuttuuuvwxz{}}|{yvtrrsvz…‰ŒŒ‰…~}}‚‚‚‚ƒ†ˆŠŠ‰†ƒ‚€ƒ†ŠŽŽŒŠˆ…„‚€~|{yxxxxxxwwxyyxvsqrw}ƒˆ‹‹‰‡†……‡Š‹…€‚Š‘••Š…„†Œ‘–—”ˆ|z|€†‹’“’Œˆ„‚‚„‡‹ŒŠˆ†……†ˆ‰ˆ†ƒ€}|}€„†‡†ƒ€~~€€~|yxxy{}€ƒ…‡ˆ‡„{yy|€ƒƒ~zxxy|‚‚€}{zz{|}}|zxvtsssrqpmkjklnpqqppooopqqpnmllorvyzzz{{{xuqpquy|}|yvsstw|€„…ƒ{yz}„…‚{xwxz|€€~}}||}~€€~|yxxz}€‚‚‚€}||}€€~yusty~ƒ†‡†„‚„ˆŒ‡‚€„ˆŒŽŽŒ‰†ƒ‚‚‚ƒ‚‚‚ƒƒ„„…ˆ‹ŽŽ‹‡ƒ‚‚ƒ……„}yvuv{†‰ˆ„€|zyz{}~€‚ƒƒ}}€„‰‹‹ˆƒ~zwwy{~€‚‚‚‚ƒƒ‚|xwwz}€~|{||~‚„†ˆˆ‡…€{wtuy~ƒ…ƒ~yvvy}‚…‡ˆˆ‡…‚}|}€‚„„ƒ‚„…„}zxxz}‚†‰Š‰†}zy|ƒ†ˆˆ‡…}zxxz|~€‚…ˆ‰‡ƒ{yz}‚~{yx{~ƒƒ‚€~}}}}~€‚€}zyy{~‚€€ƒ†‰‰ˆ†‚€~‚†ŠŽŒ‰…~{{}€ƒ…‡‰ŠŒ‹‰†ƒƒ†ŠŒ‹‡{wvx|€‚‚|zxyz}€ƒ…†‡ˆˆˆ†„‚€~€‚„……ƒ€‚†‹”—˜•‘Šƒ}zz}‚‡‹‘’Œ†zxy}‚‡ŠŒ‹‰†‚~zxxz}‚…††ƒ{xvuuwy}€|xtpmkkkmpsvxxwtokhgjoty|{xsollouz€€~|||}|{ywwx{ƒ†…‚{tnkjlpuy{|{ywuuwxyzzz{}‚„…†‡†…„ƒ‚ƒ„…†…„„ƒ‚~~~€|ywwy{|{ywvwx{}~}|{{}€ƒ††…‚ƒ†‹Ž‘ŽŒ‰†ƒ€€‚€~}{zyy{~‚„†††…„ƒ€€‚€~}~‡Œ‘’‘Œ†‚~‚‚„…†‡…‚€~‚‚€€ƒƒ‚}||~€‚ƒ…†‡†…ƒ€~{xwx|‚ˆŒŒŠ‡„‚~~‚…‡ˆ‡‡…ƒ€|zy{„‡ˆ†ƒ€}||~€„‡ˆ‡„€~}‚~{xvuuwz}ƒƒ‚€}{zxvutttuutrqppqsuutqnlmqw}ƒƒ€€€‚„†‡‡†…„„………ƒ‚‚…‰ŒŒ‰†„ƒ‚ƒƒƒ‚~‚†ŠŽŒ‰†……‡‰Šˆ„{yz}…ˆ‡„€{wuuvxzz{{{|~ƒ…‡‰‹Œ‹‰†……‡ŠŒ‹ˆƒ~zxy{‚„„‚~{z{ƒ†‡†…„…‡‰ŠŠ‰ˆ‡…„‚‚‚ƒƒ„„……„‚}}ƒ†ˆˆ‡…„ƒƒ„…†‡‡„€|z{~‚…‡‡‡†††„}|}}|{zyzz{}ƒ„ƒ~~}|yvsqqppqty~„†…{wvwz}}|xtpnnpsuxyzywsokhghkoty~‚‚€|yy{}}{vrpqsuuutuvxz{|||{yuronoqstuwxz|~€|xutvy}~}zww{‰ŽŽ‰…‚ƒ†ŠŒŽŒ‰ƒ|uqqty~ƒ…‡Š‹‰†‚~€„‡ŠŒŽ‘‘‘‘ŠˆˆŒ“›  ›“Œ‡……†…„‚}|}ƒ†‡†ƒ€€‚„„ƒ}{zzz|~€€€~{ywusrsv{€}zyz|~„ˆŒŒ†wssw{~‚ƒ„…„}yvvz€…‰‰‡ƒ}ywx}ƒˆŠ‰…€|{|‚€~|zyyz{|||zwvwz}€€~||}€}yvsrruxz{{{{|}}|{zz|~ƒ„„……„„‚~|zywwxyz{{zyyz~‚†‰‰ˆ„~{{{|}~~~ƒ†ˆ‰‡‚}yvuvx|‚„…„~|{{{|~€ƒ‡Š‹Š‡…„…‡Š‹‹‰‡…ƒ‚‚‚ƒ…‡‡†„‚‚„‡‰‹‹ŠŠ‹Œ‹‰†„ƒƒƒ„…†ˆ‹’””“‹†€|{~ƒˆŠ‰†‚}{zzz|ƒ‡‰‰ˆ†„‚€}|{{|~€„…‡†„€}zz|~ƒ……„‚€}{z{|}€‚„……ƒ€|yvuttssssrrpoooppomkjknrvxxwusrqrty~„ˆŠ‰ˆ†„~zurpppqrux|€‚ƒƒƒƒƒ‚|wtrqqqqrstuvx|…‡†ƒ~{xwwxz}€ƒ…†††ˆ‰‹Š‰†‚|ytollpv{~}{ywvwy|~‚…‡ˆ†„€‚„†‡‡…‚}xuvzˆŒŒ‰ƒ}|||}~‚†Š‹Š†‚„†ˆˆˆ†ƒ€~„‹’–•Ž…|wvz‡ŒŽŒ‡€zvx}„‰Š‡zwwz…ŠŽ‹†~~‚‡ŒŽŽŒˆ…‚€}{zz|~}yusty€ˆŽ†xutvy{}~|zxvvx{~‚~zursw~†Œ‹…|}ˆŽ‹…}vqooquz~‚‚€ƒ„…„„„ƒƒ~zwuuuvvvvvxz|€€}||}~~}~~~|zxxxyzxvtsux{~€‚„‡‹Ž‹Šˆ†…„„„„„„…†ˆŠ‹‹Š‰‡‡†…ƒ~|zyyyz|}€€€}{xutvz€†‹ŒŒ‹Šˆ‡…ƒ‚‚„‡‰ŠŠŠˆ†ƒ{z{~ƒ‡‡„€||}€ƒ…‡ˆ‹Ž‹ˆ…‚€‚…ˆ‹ŽŽŽŒŠ†„ƒ…ˆ‹ŒŠ…zwwwy{}~~}|}€}zvuwz}‚…‰ŽŠ…€}{|ƒ‡‰‡„€€ƒ‡‰‰†‚~zxxz|}}{wronoruxz{zxtokjlqy€ƒƒ~wqmmpuy||{zxwvuvwxwvtsrrtwy|€…‰ŒŒ‰„€ƒ„…………„ƒ€}{yy{|~~|zxvvvxz|~~~~~‚‚€}zyy{|~~~~|zwvx}…‹Žˆ‚}z{~ƒ…†…„ƒ€ƒ………ƒ‚‚„……„‚€€‚„†ˆ‰Š‰ˆ†„ƒƒ„……ƒ€}{{}€‚ƒ„…††„€{xvx{~€€~}{ywurrtwz||zwussstuvwxxyz|‚~zwtssux{~ƒƒ‚}zyyz|~€€~|zz{}€€}}}}~~~€‚‚‚‚‚‚‚‚‚‚‚‚‚€|yuqoosy€†‰ˆ†‚}|{|}€€~€…Š”–•“ŽŽ“–—•‹†ƒƒ…‡‰Š‹ŒŒ‰†‚€€„‡ˆˆ†‚~zyz}‚†ˆ‡ƒ~yutvzƒ„|wsruy~‚ƒƒ€}zxxy{}}{xtstw|€ƒ„ƒ‚€~~~€ƒ„„‚}xtrtx~ƒ……ƒ€~~€ƒ‡Š‹Š‡„€~||{zyxxz|~€‚ƒƒƒ‚{wsqpqtx|‚‚ƒƒƒ‚~|zz|†‰‹‰†ƒ‚„‡ŠŒ‹ˆƒ~{z~ƒˆŒŽŽŽŒŠ…€{wuttuvx|‚€~}||||{{{{||{|}€‚„ƒ}zyz|}}}{yyy{ƒ†‰Š‰‡……††…‚}yxy}ƒˆŒŒ‰…}zy{}€‚ƒ„‡‰ŠŠ‰†…ƒ‚€~|zz|~€‚ƒ‚‚€€~{xvuvy|€„ˆ‹Œ‹ˆ„|yxxwvttux|…‰‹Œ‹‰‡……‡ˆˆ†‚}xvvy„‰ŒŒˆ‚{uqqsvz|}}|{zyxxy{}}|{yy{~€€~{yy{ƒ†ˆ‰ˆ…|wttw{€„‡ˆˆ‡„‚}|}}}|{zyyyyyz{{{zxxz}„‡ˆˆˆˆ‡†…„ƒƒƒ‚€~|||||{zz{}~~}}~€€}wohdbdgkotwz|||||||{ywuuuvx|†ŒŠ…|xtssw{€„…†………†ˆŒ’’‹…‚€‚ƒƒ‚€}}}‚†ˆ‡„{xx{ˆŠ…€…ˆ‰ˆ†„ƒƒ…‡ŠŽŒ…}vrruz}€€€~}}}}}~€ƒ…„zsnmpv|„„„‚{wtssux|ƒ†‡‡„~}~€€}||}~~‚„……„ƒƒ„†‡‡„~~‚„„ƒ~~€€‚‚ƒ„…………„‚€}|}‚€|xttvz‚„…………„ƒ‚€}|{|~…ˆŠŠˆ‚|vrrux{}|{zzz{|}‚„„‚~ytplihilqvz{{zyz|}}}|||||{{zzzzzyz{~„†††…ƒ~~€ƒ‡‰‰†‚~}„ˆ‹‹ˆ„€~‚†‹ŽŽ‹ŠŠ‹Ž‘““’‹ŠŠ‹‘‘‹…€}}ƒ…‡‡‡†…„‚€~{xusrsvy|€‚„‡‰Š‹Œ‹‰…€zwwzƒ…ƒ{z|€…‡…€zusuz‡Šˆƒ}xvx}„ŠŒ‰„€€„‰Ž‹…~xuuvwvtqnmlllmoruxyxvrommptz~{yyz||{ywwx{„‡‰ˆ…}zyz}€|yxx{~{uqopsw|„†…}zxy|~}yvuv{ƒ……„ƒ„‡‹“”“Žˆ{yy|ƒƒƒ„…‡‰Š‹ŒŒŽ‘’“’ŒŠˆˆ†ƒ~xrnosz‚‡‰ˆ†„ƒ„†‰ŒŽŽ‹Š‰‰Š‰‡ƒ~zyy|ƒ†ˆ‰‰ˆ‡…‚{zz|†ŠŠˆƒ~~€‚}xsqrw|€€€€€~{z{~„…„‚|zz|~‚€{wsrsuxz{|}~€‚„ˆ‹ŽŠ…€}|}~~|xvuvy|€~zwttux{‚„„‚~ytqsx~ƒ…ƒ|zyxyz|~€‚ƒƒ‚~zxxz}€€‚†ŠŒ‹‡‚‚‡ŒŽŒ†wssx€‡ŒŠ…€}{zz{{|~€}zxxz}€ƒƒ‚}{yxyz}€‚ƒƒ~~~~}}}~‚„„ƒ|zzz}€„‡‡…‚}ywvwy|€ƒ…†„ƒ‚…ˆ‹‹ˆ…‚ƒ†‰Œ‹‡ƒ€}}~‚ƒ‚€~~€ƒ…‡ˆ‡†„„ƒ‚}|}~€€~{xwxz~€€}ywwz~€€~|zywtrqqtw{}€€€~}}}}~~€€€‚…†„€{vvx~ƒ†…‚~{{}€‚‚€|wsqrv}ƒˆ‰†{xwy|~~}||}|zwuux~„ˆ‰†‚~{zzyyxwvvwx{}€|yvtstw{~~|ywvx{„‡ˆ‡„ƒ„ƒ€|{|ƒ‡ˆ‡ƒ~yxy~„ŠŽŽŠ†ƒƒ†‰Œ‹‡‚}||zyxy|€„††„~€‚ƒƒƒ}{z{|~€‚„†‡‡‡‡‡‡†„‚~~€ƒ……„€|xvuuwy}}zyyyyyy|ƒ††ƒ€}|{yuqoortvwwy|‚‡Š‹‰†‚€~}||}}~}|{|~…‰‹Œ‹‰…‚€‚„†‡‡‡†ƒ~|{zzz{~…ˆ‰‰†‚}yvuwz‚„…„‚€~}}}~~|zwuuw{€„……‚{yyz~ƒ‡‹‹‰ƒ~ywy}‚‡‹ŽŠƒ|vstvy|~ƒ„ƒ~~€~{yxx{}~~~}|zyxxz{|{ywxz~‚………ƒ‚‚ƒ„„„‚|yz|€„‡‡†…„…†‡ˆŠŠ‹Šˆ†…†ˆ‹’“”•”’މ„€€‚‚€~}||||}€„ˆŠŠ‡‚}xvuuvvusqqsx~…Š‹‰…yussux|€ƒ„„‚€~}}‚†ˆˆ…}ywx|‚‡‹Œ‰…€{wvwz€ˆŽ†~xx|„Љƒ~xsppsy€…ˆˆ†ƒ}}}~~|yvtw{†‰ˆ…€|xwy|€ƒ…†„ƒ€}zxx{ƒ…ƒ€{wvxz|}|{{|}}|{yxxy{}„‡‰Š‹‹ŒŠ…yvvwy{{{|~~~|zz}‚……ƒ}|~|yxz…ŠŒ‹ˆ†„‚‚ƒ…‡‰‰‡„€|ywusrtvz||yvssv{ƒ†‰ŒŽ‰„~|~‚†‰‰ˆ††……ƒ€}||}~~}||~€‚„…†††„ytqrv|€€|yxy{‚…‡‰‰ˆ…ƒ€€‚ƒƒƒƒƒƒƒ‚€~}{{|~€‚‚€~|{z{|~€‚„…„‚{xusstvxy{}‚}{{zyxvvx|€…ˆŠ‰‡„€„ˆ‹Œˆƒ}ywy|„‡‡‡…„‚}|{|}}{xustw{€„††„€zvtv|‚ˆŒŽŒ‹ˆ†ƒ€€€‚ƒƒƒ‚‚‚}|~€ƒ…„‚}}}}{ywvwz|~€~{yyz|~ƒ…‡ˆ‡†ƒ‚‚ƒ„†ˆ‰Š‡‚|wuvz~‚‚‚ƒ„ƒ‚€„ˆ‰ˆ…€{wuuvy|€‚ƒƒ„‡‹‘–™™–‘‹†‚~~€ƒ…„|wsrssrqopruwxyz|~~yussuwx{}€‚ƒƒ‚‚ƒ…………………ƒ{yxz~„†ˆŠŒŒ‰…€|z{}€ƒ…‡ˆ‡„€|yxz|‚„…‡ˆ‰ˆ†……‡Š‘‘މ„|zxwwxz{|||}}}|yuqmllmnooqswz|~€‚ƒƒ~yvttsqpoorv{€…‰‹ŒŠ…yxz€†Š‹Šˆ‡††††‡‰‹ŒŠ‡„ƒƒ…†‡††‡ˆˆ†‚}ywwy|~„†…}{{ƒ††…ƒ‚‚€~||€…ˆ‰ˆ…}{zz|~€€~}ƒˆ‹‹Š‡„~ƒ‡‹ŒŠ†‚€‚ƒ‚‚‚€}zxxxwuplknu{~{wwy~ƒ†‡…‚€€€}zwtrrrtvy~‚†‡†ƒ€~€ƒ„„~yusrsvy|~€€~}~†‹Œ‡€xspqtx|~|yxy|ƒ†ˆˆ‡…‚~€…‹’‘‡„ƒ…‰Œ‰„~{z}ƒŠ’‘ŽŠˆ†„~{yyz{{zzzzzyvttuwz|}}}~‚…‰ŒŽ‰ƒ{usuy~‚~zwutvy}ƒƒ}zvuux|€‚ƒ‚‚„‡Š‹Œ‹‡ƒ€~€…‹‰„‚ƒ………„}xuuw|€€}yvuuuvwxz|}|{zzz|~€‚ƒ‚€}ywvx{~€~|zzz}‚‚‚€ƒ…†…‚€}zxwwxz|‚‚ƒ„…†††…„ƒ‚€}zwuuuvvuvy…‰Š‡ƒ€€‚‚‚‚‚ƒ„„ƒ~}zurpqtx{|||}€„‰Ž“”“އ€|z{}€‚„†‡‡†„…‰‘‘†xtqqsvy}€ƒ…‡†ƒ~zwusqnkkow‰Œ‡xttx†Œ‹ˆ„„‡”š™”Žˆƒ€}{zz|„‰‘‘‹†~}}~~}{zy{|}|{yyxwvttvz}~}zwvvwwwwwyzzxutux|~~|{|}€‚‚ƒ…‡ˆˆ‡„ƒ‚‚€ƒ„ƒ{xy‡Œ†{{†Œ‡xrqrvz||zwtrrsvy}€€|wrnlmrw|€~{ywvwy{‚…†…ƒ~€‚ƒ…‡ŠŽ‘”•”’Ž‹ˆƒ|{~‚ˆ‹Œ‰…{yz~„Š’‹…~yvuvy}„††‡‡‰ŠŠ‰‡…„ƒ‚ztqqtz†ˆ‡‚|vrrux{{zxxy|~zvtrstvy}€{wspooprux{||yvttw}„‹ˆ„€€€~|{{{|~‚„……ƒ}ulfeir|„‡‡…~‚…ˆŒ‘‘‘Œ‹Š‰‰ˆ‡…„…†‡†ƒzvrqqruy|}xrlhghlqv{~}{yy{~ƒ„„ƒ~}||~€‚~~~€‚ƒ„„ƒ}yww{‡Šˆ‚zusv}…Ž•™š˜“Œ‹ŒŽŽŒˆ„€€‚ƒ„„„ƒ‚ƒ…‡‰‰†ƒƒ‡‘’Šƒ~ywvuuvy}„„ƒ€€€€€‚…ˆ‹ŒŠ†‚~~~}{yxz~ƒ‡‰‰‡„ƒ„‡ŠŒŒ‰„|{|‚ƒƒ€}{yyyyxwusqqrv{‡‹ŒŒ‰…ƒ‚ƒ†‰‹‹‹Š‡ƒ~zwvy|€~|yyyxuqmlov€‰Ž‹ƒ{trsx€‡ŒŽ‹ˆ„€|{{~ƒ‰””‘Šytsv}…‹Šˆ††‡‰Œ’’Š„}wpljlry††ƒ~xutw{„††ƒ|skfdgmu{€{wspnmmnortvwwvvvvwwvvvwz}€‚ƒ„ƒ}|}‚„„„‚|xtstw|‚‡‹ŽŽ‹‰‰‰‹ŒŒ‹Š‰ŠŠ‰†|ywxyz{}~€€}zwvvxy{|~~~}{{|}€ƒ†Šˆ|yy{~ƒ„„‚|zz}‚ˆ‹‹‡€xpifgls{€ƒ‚€€‚†‰Šˆ…„†Š’‰zvuwz}‚‚‚ƒ„…‡‡†ƒ€}{wtqpqswz{|{{|}€‚…‡ˆ†ƒ{z|‚„ƒ€{vssuz€†‹ŽŽŽŒŠˆ†„‚ƒ…‡ˆ‡†„}{{|ƒ†ˆ†ƒ|z{|}~~}|zxxxz~‚…ˆˆ‡„€}{z|~„†‡†„€}{{}†’•”‰ytqqsuwyyxwvuvxyzyyyz|~€‚†Š”••“ŽŒŒŒŠ‡‚|xuttux}‚ˆ‹‹‡€yvx~†Œ‘‰„|{|‚ƒ}yvuw|€…ŠŽ‘”“‘Œ…~xtqpqsvxyxustw~…‹ŽŽŒŠ‡„‚„‰Ž‘‘ˆƒ}{{{}~|vpllsz€ƒ~|zzyxwwx{}}{xwy}‚‡Š‹‰…~wqooruxz{|}}{wsqrv{€„…„‚€€ƒ…††ƒ~zxy|„††„‚‚„…†„xpifgkpvz}}{wqliimsx{{zyyy{|}}~…ŠŽŠ‡…„……†††„ƒƒ„†‰‹‹‰…~€€‚ƒ„…‡‰‹Œ‹‡€xrpruy|~€‚„…ƒzurpqsvz~‚…††„€|yvvx~„‰Œ‹ˆ‚}zz|€…‰‹Š‡ƒ~yutvzˆ””‘‹„||~…‡ˆ‡…‚}|}~€ƒƒ{yxy{|}|ywuuwz|~~{wrmjjlpuz~‚†ˆ‰ˆ†ƒ€~~}}}}||}ƒ‚€€‚‚~zustvy{{{zz{}€‚ƒ„„„…‡‰‹‹ŠŠ‰Š‹Œ‹Š‡„€€~ztolmrz‚ŠŽˆ€wqnot|ƒˆ‰‡‚}zy}‚ˆŠˆ‡ˆŠŽŽŒ‡~{{zyyz|~zvttvz~‚„„|vrqsw|€|xtrqponnpt{‚‰Ž‘’‘މ…€‚†‰ŒŒ‹Š‹‘”–•’ˆ…‚‚ƒ…††ƒ{xwy{}€~|zzz{{{zzyzz{||}~€€~|zzzzywtpmkjjlosw{}€ƒ…ˆ‰‰‡‡‡ˆŠ‹ŒŒŒŠ‡ƒ|vrrv{…†ƒ}unkmt€Œ”•‡zyz}‚„††„‚|{|~ƒ†‰Š‰…ysqruzƒ†ˆŠ‹‰…~uolmrz†‰‰†ƒ€}{{{{ywuuuvvwwwxz}€ƒ…‡ˆˆ‡†ƒ‚‚„‡‹Œ‹ˆ„€}}}€ƒ†‰Ž‰ƒ~{z}†ŠŽŒ‡{wttuvxy{}~}{zxyz|~~|yvsstx{~€€~|yxy|‚‰’‘Œ…~zy{„ˆ‹‹‰†‚~‚„††‡††„}xutvz„†‡†„‚‚‚„………„„†ˆ‰Š‰†ztoljjknrw{~€~{zyzzzzzz{{{zzyz|~~|zyxxxxxxxxwvuuvwz{||zxwwy}ƒƒ~~…ˆŠŠ‰…}zz|€„ˆŠŠˆ…ƒ}}}‚…‡ˆ‡…ƒ€}|}‚…‡†„€ƒ†ˆˆ‡††„‚}}€…‹ŽŽŒˆ„‚‚„‡Š‹Š†ƒ‚„‰Ž‘‰†„ƒƒ€€‚…ˆˆ†ƒ€€ƒ………†ˆ‹Œˆ‚}zyzzz{{|}|{yy{ƒ…ƒ}uporw|~~}}}~€€~}}~€ƒ…†…ƒ€~|||~€‚„…„‚€~}~€ƒ…††††‡ŠŒŒ‰„~xvvy|}}|ywvwy|ƒ„„‚€€ƒ‡ŠŠˆƒ}vqmkmpuz~}{zz|„‡‰ˆ…ytru{‚ŠŽŒ…~xvy…‰Š‡}{{~€€~zwuuwz}~|zxxxz|~~}zyyz|~€€€|yusrtx}‚†ˆˆ…{upoqw†Š‰…zxz…‰Š‡‚}€…ŠŽ‡€yvx~‡’‘‹„||~‚……„}yvuuvx{‚…†…ƒ‚€}|{{||{zwtrrsv{‡Š‹ˆƒ~{z{~„†ˆˆ‡„‚ƒ†‰‹‹‰…}zz{~ƒ†ˆŠ‹Œ‹‰†„ƒƒ„‡ŠŒŠƒ{sopu|ƒ†…€yrkggjpw~‚}xsoopswz{{zxusqpoppqqrsvz~{xvwy|~„†ˆ‡„yvtvy}€ƒ„………ƒ€ƒ‡ŠŠ†€ysonosy€†‹Œ‹ˆ„ƒƒƒƒ€{vssux|~~||}€†’•”ˆ€{z}„Œ”™™•†€~„‡‰‹ŒŒŒŒŽŽŽ‹Š‰‡„€{wuvz„‡‡†„ƒƒƒ‚}{yvuvz~‚‚ytqrw~„ŠŒŒ‰…‚€„†‡†„‚ƒ†‡‡„‚€„‡ŠŠ‰‡„€~}}€€~~~€‚ƒ„„„„…†‡‡†ƒ|yxwwwy|€ƒ„ƒ{xvwxz|~~~~}~„ˆˆ…~unlnu~†Š‰…€{xwz…‰Š‡ƒ~yvuuvwwy|ƒ…††…ƒ€~~~€€€~{zyyz{|~€€|xvvy~ƒ…††‡ˆˆ‡…‚~{zyxwxy|‚{xxy|}~~~€‚„…ƒ€|xwwz~ƒ††ƒ|uolow‰‹„{snmpu{€ƒ„ƒ{wttw|‚‡ŠŠˆ…ƒ‚‚}zyxy{~ƒ‡‹Œ‹‡‚}zy|‡ŒŽ‹‰ˆŠ’—››–‡~‚…‡‡…‚}||~€ƒ…„‚~}~~|{zzzyxxz}€{vrpprtvxzzzxwvuuutuuuvvuusssstsrpmllnrw|€€|wqmlmqv{}~}{z{~‚……‚|vqqtz€„††‡ˆˆ†ƒ}„Œ“——“Žˆ‚€€…Œ”›œ˜†}wvx}…††„~|{ywutv|ƒŠ“’‹ˆ‡‡Š’““’‘ŽŠ†‚~~€€|zyyzz|~€{unjkqz„ŠŒ‹ˆ††ˆŠ‹ŒŒ‹Šˆ‡†„~||~‚„ƒ€}|†‘‘Œ…~yxz…‹†}wuw}ƒˆ‰‡ƒ~zxwwz€‡Ž‰‚}|}€|xuqnlmpv|~{tlhks|„‰Š‹ŒŒˆ„€}zxuvz‚Љuonpuz~‚‚€~{ywvusstw|‚…„€ysqt{…’‘Œƒyrnnt|„ŠŒ‹‡‚€‚„…………†ˆŠ‹‹Š‰ˆ†……„…†‡†„‚€‚†‹Žˆ‚|y{}}xtrty„‡ˆˆˆ‡…‚}{{zz{~ƒˆ‹‹‡zvvx}ƒ‡‰‡‚zqiefjouxz{}}~}{xvuwy{}~~}{z{~‚ˆŽ‰„}}‚‚‚€€|xrmijmtz€}xromnqv|‚ˆ‘‹…~yvvy~‚„ƒzustvz}€ƒ„ƒ‚€~}~ƒ…„€{wuw}…“”†{sopwŒ•š›—‰‚}zz{~„††ƒytqrtx{|{zxvtqmjgedddefhkmoonmmoqsrpmjhiknrw|†ŠŒ‹Š‰Š‹“•——•“ŽŒŠˆ„~}ƒ‡‹‹‰„~xvw{†ˆ‡ƒ}xvy€‰’™›˜’ˆvpoqw~‡”—–”ŒŠ‰‹“——”І†ˆ‘””’‹‡„€‚‚€|wtsv|‚‡Š‹ˆ„~wqnnptvwvtssrpmklpv|ƒƒƒƒ…††„}{zz{}…‰ŽŽŽ‘“–—˜™™˜•‰ƒ€…‰Šˆ‚|xw|ƒ‹“™››—Š…ƒ„ˆ‹ŒŠ†€|zyyxvuttuvwxwwwwwxy{}~~|xtrsv{…ˆ‰‰ˆ…‚~|{}ƒ‰’‘‹‚ysrv|ƒ‡†zsnmpv|~xsqrv{‚ƒ„……ƒzvutuutstwy{zwtrsvy}~~}zwtrrtx{}~}|}~€‚€~~€~~„†‡…‚~~€‚ƒ…†‡†ƒ~{yy|€…ˆ‰ˆƒ|tonsz†…{vtuw{‚zslhgimqtuuuttuw{€„†…ƒ}|~…‰ŽŠ…€‚ƒ„…†…ƒ€}z{~ƒŠ”–•’‡~}‚„ƒ}yvttv{€„††‚}wsqsvz~€€~|zwvuuvy}€~zurpqtx|€|xtrqrtvwwvtqoorx†Š‰„|tonry‚ˆ‹Š†€zvuvy|€€~zvtsvy}€}{zyz{}€€~yurrwˆŽ‘‘ŽŠˆ‡‡‰‹ŽŽ‹‰‰Š‹‹‰†‚€€ƒƒ€|ywz…ŠŒ‰„€~€…”˜˜“Š€ywx{€…ˆ‹Œ‹‰‡‡‰‹’””“Œ‰†ƒ€~€‚‡‹Ž‰†…ˆŒ‘“’މ…ƒƒ†‹’˜ž™…{vxˆ’Š‚{urrsvwxwwwz~ƒ|unkms{‚††„€~}|zvrnklorvz|‚‚{wuvz„‡†{tonpty|}}|{|}~|zyy|ƒ…„}ywwy{‚…‡‡†„ƒƒ†‰‹‹‡‚}yxyz{|{zyxvttuy}€€|{|~‚€~~ƒ†‰ŠŠŠ‘““‹†ƒƒ„†††…„ƒƒ‚‚‚„†ˆ‰ˆ†……†ˆ‰‡…~}}{upmou}ƒ…‚|tonqw}‚ƒ‚~zxy}„ƒzutv|‚ˆ‹‹ˆ†„„†‰‹ŒŠ…zwwxzywuuw{€‚‚~yusuw{}~|zy{~‚…†„ztqnnpu}…‹ŽŒ‡€ytsuz€†‰ˆƒ|tposy„‡Š‹‹‹‰†ƒ€}{xvtstvz~€‚€~}}}|{xustvy|}|{yxwwwvusrpomkjhhhkpw†‰‰…{z|ƒ„ƒ€}{yxvutttuvx{}~}~‚‡ŒŽ‹‡„‚‚ƒ„„…†‡ˆˆˆ†„ƒ‚ƒ†Š‰„{yz}€ƒ„ƒ~~€‚…ˆ‹Ž‹Š‰Š‹Šˆ…‚€‚†‹’‘‡ƒ‚‡Ž”™š˜“މ…„…†‡‡ˆˆ‰‰‰ˆ†……‡‰‹‹‰…‚|ywwy~„ŠŽ‹‡„ƒƒ„……………………ƒ~||~„„{vsuy}~}xspprv{€~}~€€|xuvz€…‰‹‰†|ywy~‚„ƒ|{|~~{yyz|~~~„‡‰ŠŠ‰‡„zvttttsstx}‚‚€~~~~~~‚ƒ€{vssw}ƒ‡ˆˆ‡†‡‰‰‡ƒ~{z}‚‡‹‹ˆ‚}xvvxyzzz|ˆŽ‘‰€yuux|€~{xxxz}~€€€‚ƒ‚€|xvx}„ŠŒ‰…€~~€€}|||~‚†Š‹ˆ‚{vvy„†…‚|zwurqpqrsuwz|{yvttw{‚ƒƒ~zupmkklnprvzƒƒ{uomnt}…ŒŠ„}yy{~~}|„ŠŽ‡~vrt}‰”›œ—†|}…‡†‚~||~€€}ytrrtx{ƒ†‡†‚}xuuwz{{{|~ƒƒ€|zy{~~|{zxxwwwxz…‹‘އxuvxz{zwustuwwwusrrtx|ƒ„ƒ}zwuuw{„‡‡„xsooquz~ƒƒ‚€}{zz{|}}~…ŠŽ’“’Œˆ…ƒƒ„…„‚€~~‚…‰ŒŽ‹‰ˆŠŒŽ‰ƒ|vrqsv{ƒ……ƒ~‚…ˆ‹’•––’Œ„}yz‡Ž’“‘ˆ‚|xvvy~ƒˆ’–™™—“Ž‘”•”“ŽŽ‘”–•’ˆƒƒ†‰‹‰„|sjdadkt~„…zsnlmqw}ƒ†‡†„‚€~|zwtrpnnorvz|}{xutw~†’’‰‚}yy{ƒ††…‚}||~ƒ…„‚~zwwz~ƒ‚~zuqoosx~ƒ††ƒ||}€ƒ†ˆŠ‹ŽŽ‹‡‚}{{|~€€€ƒ……‚}wqnosy‚‚€}zxwxz|~~|zyz|~~|{zzz{||{xuqonosw{ƒ‚€}zz|†ˆ‡…}|yvsqru{‡ŒŽŒˆ{xx|€…ˆŠŒŽ‹‰‡†††…„ƒƒƒƒ‚€~}~€ƒ‡‰‹‹ˆ„{z{€…ˆˆ„~wqnosx~‚‚€}{{|}~}{{|‚„…ƒ€~||}€‚„‡ŠŒŠ…}tonry‚‰Ž‰‚|xvuuuttvy{|ysmiilquvuqmhdccfjorsrpmkjjkmoppomlnrw}ƒ„„ƒ~}ƒ‡‹Ž‹‰ˆ†…ƒ‚€€ƒ…††…ƒ}{|~€ƒ„ƒ€‚‡Ž– Ÿš’ˆ~wtv|‚‡‰ˆ…‚}}€…Œ‘•“ކ~xvwz€‡Ž“––‘‹„€„ˆŠŠ‰‡„‚‚…‰•›œ–‚ytuz‚ˆŠˆyspryŠ’ˆywy~ƒˆ‹Œ‹Š‡‚|wtu|…Ž”•‘‰zxy~ƒˆŠŠ‡ƒzvsstx}‚zvv{…’¤£”Š}}ˆ–™—ƒwnkow„„|wsqqrtw|€‚ƒ€|xutvz€…‰Šˆ‚{uqqu|ƒˆŠˆƒ|vqoptx{}}{zz{~…ˆ‹ŒŒ‹ŠŠ‰‡†…†ˆ‹ŽŽŒ‡€{wuuvwxyzzyxxz~‚‡‹Œ‹‡yqkikouy|}~}}|{|}€„‡‡‡…†ˆŠŒ‹ˆƒ}xutstvz~~zvux~†’”’މƒ€€~~ƒƒ|zxvtssvz€„†…|xtrrsux{~€€€}yrkfdejqx~}wpkikqy€…‰ŒŽŠ…‚€…Š’’‹…~ywz†ŠŠ‡€zvux|€‚‚€}xtqpsx…ˆ‰†zuqooqtvwxxwvtssuy}‚zsmhfhmu|€ypiehoz„‹‹‡wsrv|…†††…„ƒ‚‚…‡‰‰‡ƒ~zxwxxxurnlnry‡Š‰†|yxy{}~~}}ƒˆŒŽŒˆ„€„‰ŒŠ‰Š“˜š™•Œ’“’މ†…‡Œ“šŸ¡ žœš˜–”’ŒŠˆ†…„„ƒƒƒƒ‚€}|}ƒ„„ƒ€~zwussvz€…‡‡…‚~{zz{|~„‡ŠŒ‹‰…€zurruy}€‚ƒ‚€|yussvy~‚…†…‚~yutuy…ŠŠ…~xsrtx}€€{vpnou{„„€{vqnmpu}…ŠŒ‹‡„‚ƒ‡Œ‘І~}|{yxxy{{xtpqv‰‘”’‡„„ˆ‘“‘‹„~{z|~ƒ„†‡ˆ‰‡„€{xx{€‡ŒŽ‰„{z|€…ˆ‰†ƒ€~|zwsswˆ†~wsrsvz}ƒ†ˆ‡zspt|ˆ‘”…vg]\dr€‰Šƒyojjov|€ƒ…ˆ‰ˆ„zwvwxxvtrrtwz{zxwxz~„†††…„‚‚‚‚ƒ„ƒ~{xvuvy|‚‚ƒ‚}||€‡’’Šƒ|{{}„ˆ‹‹‰…~wojghmv€ŠŠ€umikrz€„„‚~ysomnsz‡‰‰‡„~wohdflv…ˆ‡ƒzuqliikosvwtpljlqvz|{ywx{ƒƒ€zsnmqx‚ŠŽŒ…{pihmw„Ž“‘Švomnpsvy|€‚ƒ~zvssuz€†‰‡ƒ~||„‡‰‰‰‡†„ƒ‚„†ˆ‰ˆˆ‰Œ”•”‘Ž‘•˜šœœ™•‹†}{|‰’šœ˜„|y|ƒ‹’”’†€|ywwy}‚ˆŽŒ‰ˆˆ‰ŠŒ‹ˆ„~}~‚†Œ‘””‘‰†…†ˆ‹Ž’’Іƒ€}|{{|}~~~~€‚…†„}yvuw{‚ƒ€|wvx~‡Ž’‘Œ‡‚}|zxvvxz{zxuttvwxxxxz}€‚ƒ‚€€€‚ƒ‚€~~~}|{yyyxwvvx|€‚}yvwy|~}}~„†‡†„~€€~~ƒ‚ytommqw~‡‘‘މƒ~zyy|†‰Š‰…‚~{xvuvy|~~zussw}{wsrsw{ƒ……ƒ~yursvzƒ†‡‡„{wwy}ƒ‡‰ˆ…|wsrtz‡‹Š…~xrpopsw|‚‡‰‰‡‚|vqmmotz~€€~}„Š’‘މ„€~ƒˆŽ’•”‹„~ywxz}„†‡‡†…„„…††‚|slilt~ˆ‘„xka\]cnyƒ‰Š‡ztqppruwxwtng`]^bhosutrommmnoooorv{€}xtrty‚€zsnlntz€ƒ…‡‰Š‰†}{{}‚ƒƒ‚€~|zyz{|}}}|{{{{{{|„‰ŒŒ‰‡‡ˆ‰‹‹Š‹Ž“—™—”ŒŠ‰ˆ‰‹’””“ŽŽŽ‹ˆ…‚~{xwx{‚ƒƒƒƒ„…†‡ˆ‰‰‰ˆ‡‡‰Ž”šžŸœ–‹‰ˆ‰‰‰‡ƒ€|yvtsrrsuwy{{zxwxz}†‹’”“‘Šˆˆ‰Œ”––’Œ†|ywuvy}…‰‘‘މ„~zxz~ƒ‰Œ‹‡ƒ}|}~~}ytokjloswxxusqpsx}‚……„ƒ~}|}ƒˆŒŽŒŠ‡ƒ~‚†‰Š‰…xqjedis~ˆŽŒ‡‚€ƒˆ“”ˆ~vrsx~„ˆ‹‹Š†€ztqrv{‚„…†…‚}wsruz~€€}zyz|€}}~†Œ’”’‹wompx‡‰†|xvuutrpnnoquz}}{xtqomlot{‚……‚|wtssuxz{{xsnihkrzƒ‰ŒŒ‰…€|yz}ƒŠ‘•–“…}yx|†ˆ…zwx|‚†‰ˆ…}zyxxxwvuuvx{}€€ƒ†‹“”“Œ‰†……………„‚{uoiecdfhjklmnoqrtuvvutuwz}|yuronnprtvwvusqpooprtvxyz{zzyz|€ƒ‡‰‰‡„€‚…†‡‡‡†…ƒ‚€€€~{upljlpv}‚…†…„„‡‹‘’“”–™›š—’‰ˆ‰ŠŒ‹†€zutw|ƒˆ‘”–—–•”’މƒ|xw|ƒ‰Œˆƒ€…‰ŠŠˆ†„ƒ„…†‡†ƒ€}zxwvusqqtx}‚~}}€ƒ…‡‰ŠŒŽŠ†‚€„‰ŽŽŠ…‚‚†‹“‘††‹‹„|urty€„„€ytsv}…ŠŠ†€yussvz~€|zy{~‚„„ƒ‚ƒ…ˆŒŽŽ‹ŠŠ‹‹‹Š‰‡†……„‚‚ƒ…ˆ‰‡‚|vux†Š‹ˆ‚|vrpppqrqponorux}‚ˆŽ“•–•””•––”‘Œˆ††‡ˆ‡…ƒ‚‚ƒƒ€€ƒ†ˆ‡ƒ||ƒ……ƒ€|ywutsrrrrtw{ƒ†‡ˆ‰‡„zursux{}~~|ysmgdfjotxyyxvsqprv{€ƒ}yusstuwxyz{zxvtttvwz|‚ƒ‚~yutux|‚ƒƒ„ƒ‚€€‚…ˆŠŠ‰…|xutuvy|ƒ†‰Šˆ…‚~|{{|}~€‚ƒƒ€|xwzˆ’‘ˆ„~}{xussw}„‰ŒŠ†zvtuwy}€„‡‡…€ysonoqtvxz|}|zwuuwy|}|ywtssstuvwxwvsqqsw|ƒ‚~ytpprw|€‚~yvvy~‚ƒ€ztnkkntz~}}}}}|zz|‡‘’‰‚{wvz‹“˜—“ˆ……‡Š‘‘‘‹ˆ†……†Š–›ž™’‹…‚ƒ‰‘›¤©¨¡–‹„ƒ‡“•’‹„}yy{‚…†…„ƒƒƒ…‡‡‡„}|}‚‰Ž‘އ~wtuz€†ŠŠ‡ƒ}wsqppqsvz„ˆˆ†}zz{„ˆ‹ŒŒŠ‰ˆ‡‡‡…ƒ€~}~€~{xvuttvx||{|~€zsonrx„…ƒ€~}~€~zvrooqtwxyyyxxxxwwwy|€…‡ˆ‡††‡ŠŽŠ‡„‚‚ƒƒ‚~~†‹Ž‹‰ˆ‡‡‡‡†‡‡‡†………†„|xvy‡•—”Ž„ypkkov}‚ztniffimrw|€…ˆ‰ˆ…ƒƒ†ŠŽˆ‚|ywwxz{||||}~~|wplkpy‚‡†zusux|~~|xtqprw|€~}~~~|zwusqpnmmmorw~…Š‹ˆƒ}xvvy|~€„‰•™™•ˆ‚|ywwy}‚‡‹Š…€|zyz|}~~~~}|{{|~„…ƒzurqqrsuxyxurnlmorttrpmllnrw}‚…„€zsmjkpx‡‰†{uqqrv{€…‡‡ƒ~xtrsvy{{yuqnmosw|€€€}zxwwxz|||||}}|zxvwz~ƒ†ˆ‰ˆ‡…ƒ€|xutuz…ŠŽŽŽ‘’’‘‘’”—›Ÿžœ™–••–™™˜”Œ‰‰‰‰ˆ‡†††‡‡‡‰Œ‘•—”‡€{{~ƒˆŽŒ‰ˆˆŠŽŽŠ†‚}yx{Š“—–’‹…€}}~ƒ…†…ƒ‚„‡ŠŒŒ‹ˆ„}ywutsrstwz‚|{yxvutuwyyxutuyƒ…„‚~{xurqsw~…ŠŒ‹‰†ƒ€}|}‚„……„ƒ‚€~||~‚†ˆ…€zvuwxwusrty…‰‰†‚~|{{{{|~…‰ŽŽŒ‹Š‰‰‰ˆˆ‡‡‡‡††…„„…††…ƒ€}|~‚†‡…€{xwy}€ƒ…„ƒ{xuttvxxxwwx|‚‡Œ‘މ„€|{|}€‚}|{|}|zwsruz‚€zrkffkqx}€|xvwy|~|{z{}€ƒ†ˆŠŠ‰†‚|zxwwxz}~|xsnllosy~…ŠŽ‹‡ƒ|xuvz‚‹‘’ˆ‚~||{{zz{|~ƒ…„‚~zy}ƒˆ‹‰„}xsokhgimrvwwusrrssstvxz|~}zupnnrwzzxtqqrtwz}€„ˆŒ’“’އ€{xxyywtpnnrw|~{vrpruy{zxutux~ƒ‡Š‰…yuuw|€ƒƒ‚{wsqprv{€„……ƒ€€ƒ†ŠŽ‹‰‡††……„…†‡†ƒzwwy‡‘š ¢•Šƒ€„ˆ‰ŠŠŒŽŠ†„„…‡ˆ‰‰Š‹Œˆƒ~zxwwwwxz~…”™˜“‹„‚‡Œ’‘ŽŒ‰‡†„}xuux†Œ‰‡††ˆŠŒ‹‡zuqooquz„…‚~yx{‚Š””’Œˆ…‚‚„ˆ‹ŒŒŠ‰ˆ‡†„€|xvvx{~€€~}ƒˆ‹Š„{rmmry‚‚€}|}~€}zxx{ƒ……„ƒ„…‡ˆˆˆ‰ŠŒŽ‘’’ˆ‚~|~ƒˆŠˆ‚ysprw}‚…†„€|ywx{‚ƒ€ƒ‡‰‡ƒ|unifgkpvz||zwspnnqxˆŒ‹†}zyz|€†‘‘Œƒ{vvwxxvuvwy{}€…ŠŽˆuonqv{‚ƒƒ{xvtrokhfgkosw|†‰‡yqmnsy‚‚‚€~}||~€‚„‡ŠŽˆ€xrqtyƒ†‡‡†…‚€ƒ„„ƒ‚‚„ˆ‘“‘Œ…zxyz{||~€„‡ˆ‡‚|vqmkkmmlhd`_chmnmifddeffhkpw||yvtsssuwz}€€~€‚„…„ƒ€ƒ…†‡ˆ‡‡†„ƒ‚€~{vpjd`^^_behknruxyzyz|}~}yusu{ƒ‹’‘‹‡„ƒ…‡ˆŠŒ’•–”‘Ї‡‰ŒŽ‰ƒ~‚Š“› ¡Ÿœœ›™”ŽŠˆ‡†ƒ~yuuw|€‚‚~}|{|~‚†‹‘‘’”••’Œ…~zy|€„‡‰‰‡„{ww{ƒŒ“–”ˆ‚~|}ƒˆ‹‹ˆƒ†‹Œ‡‚~}€„ˆ‰ˆ…‚„††‚|tnkmt~†‹‹‡€zutuwz|~‚ƒƒ‚€}}~€‚ƒƒ‚}|}ƒ‡Š‹‹Šˆ†„~zwutvz„‰’’Žˆ‚}{~„‹‘އwssw†‹Œ‰‚yspqw†‹Œˆ‚{urrv{€ƒ‚}vmgeiq|†ŒŽŠ†‚€€€„Š‘Šƒ{vstvxz}…ˆŠ‹‰…~}ƒ‰–—•Ž„{soosz‡Šˆ‚zrkhfgghhhhijlnqrstvzˆŽ‘‘ŽŒŠ†€{xx{~€€~|zyy{}‚„†‡ˆˆ‰Š‹Š‰†ƒ‚‚ƒ…„‚~zwusrrsuy|}{vropt{‡ŠŠˆ„~yussstssssttrpopruwwusqpnkifddehlpuy{{yuqnnopruy~‚„‚}vokijlnprtw|‚ˆŒ‹†€{xwxxy{~‚†ˆˆ†„‚€~{ywwx{€…ŠŽ‘‘‘‹‰ˆˆ‡†ƒ€}zwvw{€…‰‰†€zvuw{€…‰Ž’••’ŽŠˆˆ‹Ž‘ŽŽ•›ž˜ˆ„„Š“œ ž–Œƒ~~ƒ‰Ž‘’‘Ž‹‰‡†…„‚{yx{~‚……„}|}~€‚ƒƒ‚€~|zywussuy„†„~wroopsw{~~ztoou‚‘œ œ”Œ‡…ƒ‚€€€‚„…†…„‚{upnot{†‰Œ‹ˆ…ƒƒ…‰Ž“••‘‹„|}€„ˆ‰ˆ„~wroquz|xuw|‚ˆŠˆ‚|xx}„‰‰…~xvy}}wroorw|„‡ŠŽ’—š›˜“ˆ†‡ŠŽ‹‡|z{~‚…‡ˆ‡†„ƒ€€ƒ…„‚~yuqnlklorvwupkggjqy~‚‚„‡ŠŒŒŠ†ƒ€€ƒ‡ŠŒ‹†zursv{€„††ƒ{xxz~ƒ‚€~~€€~zwuvy||zvpliiloty|}{xtqpqsvx|€…‰‹‹ˆƒzvrqrxŠ’”’Œ„~{|‚„„ƒ€€€€~||}€ƒ…†„~{z{}‚~{yxwuog_[\cmw~‚‚|xsmheehmrw{|{yvttuwxyz{}„‡‡„{xxyz{zyyxxxxz|€ƒ…„~{z{|~ƒ…‡‡…}yvtrpnnpu{‚‚‚€€ƒ„…†‡ˆ‰‰†‚~|~„…ƒ{zz}‚„…††…†‰“””““””’Œˆ…„ƒƒ„†ŠŽŽŠ…‚†Œ’••“ŽŽŒ‰†‚}||}€ƒ†‡†‚}{|€…ŠŒŠ‡ƒ€~|{zyyzz{||{|~„Œ”˜—…yqoqx‚Œ”—”Œyw{ƒ‹Š…‚‚ƒ…‡‰‡‚|wvw{~~{wuuwz}‡’”“މ‡‰Ž”–•‘Œˆ…‚|z{}€~{wvvwyz|€…‰‹‰ƒ}xvvwxyyyywsolnt{ƒ€|xwy|€ƒ„„ƒƒƒ„‡Œ“‘Š‚zvw{€„…„‚€}yurru{ƒ|uollpv}ƒ†…zsonoruwwwx{ƒ‡‹‹ˆƒ~zxy{}~|yvttv|‚Š”•’‹‰‰‰‹Œ‰ƒ|wstx}ƒ~{ywwy|€†ŠŒ‹†zwx}ƒŠŽ‹‡ƒ€~|zyz{|zvpkhffgjntz‚ƒ€}ytqnnpv|‚zsommoqsvy|}}|{z{zxtpmlnruvuspnkigghlrw|€ƒƒ‚€}zxxxxvspoqu{†Š‹‹‡‚}ywxz||{yvspnnosy…‰ŠŠˆ…€|zz~„‰‹Š†€{wwy|€~xqjhks}†ŒŠ†|yxy|„ˆŒ”––”Œˆ†„„„„…†ˆŠ‹ŒŽ‘•™ž™“Ž‹ˆˆˆ‰ŠŒŽ‡|zz|~„‡ŠŒŒ‹ˆ……‰Ž‘’І……†„|xvwxzzzyyxwusqqtx~…‹’“‘Œ…~zz€ˆ”“‰……†‡‡„€|wtpnnrx†‹ŽŽŽŒ‹‰‰Œ•˜—”‹‰ˆ†ƒ}xuuwz|{xurqqqpppqtwy{~€~zuqnnpty€‰‘••‡~wuvz|}~~€ƒ…„}z{~‚†ˆ‰‹‘‘Œ†~xsqppqsvxxxvvx}„ƒ~xtsuy}‚‰—ž›•†€{wttv{€ƒ‚zwutssux~ƒ…„zwx|†‰‹ŒŽŽ‹…}uolnrw}„†…ƒ€€‚„……„‚‚€€‚‚€€‚‚€}zwuttvy~…Œ’”’†{z|€…ˆŠ‰ˆ…{unjimrx|~€€|zz}‚ˆ‹‹‡ƒ€~|{{{zvqjea`acfiloqsttsqpoopqrsrqqqqrrqpnkjijmt|„‰Š†}uonrz‚ŠŠ…|xtqpprw{€€€‚…ˆ‰ŠŠ‹‹‹Šˆ†„„„………„‚}{zyy{}}{z{|~~~}|||{ywttw}…Œ‘““‘‰„€}}~„‡ŠŽŠ„|{|}~~€‚„†ˆŠŒ’•——•’ŒŠ‡„€}{{~„„|vqpqu{†ˆ‡ƒ~zy}„”˜—”ŽŒ‹ˆ„€~~…ˆˆ†ƒ}}ƒ‡‹‹†€zww|‚ˆŽŽ‹ˆ…~{yyy{~…‡‡…~{z|€…‰‹Œ‹Šˆ‡ˆ‹ŒŒ‰…„Š“’އ}{zzzzz{}ƒƒƒƒ„‡‰‹Œ‰…~wqnnqw~…ˆˆ…€|z{}€ƒ„…„‚€}|}ƒ‡Š‹‰…yvvy~‚†‰‹‹Š†}yxxz{zwrnkjjmquwwuspoprttsqlheeipx€†ˆ‡„€zuqprx~„‡ˆ…}xursuy}~}zvuw{ƒ†ˆŠŠ‰†‚}}‚ƒƒ~ƒ…††…„ƒ‚€~|{|‚„„‚{xwwx{€†‹‘Š…~}~†‹ŽŒˆƒƒˆ’•–•“Œˆ…ƒ„‡‹ŽŒˆƒ}yx{€†‹ŽŒ‡wrrw€‰Ž‡~vrsx}„„ƒ€}zxy}‚ˆŠŠ‡‚~zvsrrv}„Š‹ˆ„|{|~‚†ŠŒ‰„‚…ŠŽ‹‰ˆŠŽŠ„|}€…‰Œ‹†xsrv|ƒˆ‰‡‚}ywwxyywurruy~ƒ…ˆŒ‘“‘Š‚||ƒ—š—Ž„{usuy„‡‡ƒ}xuux|~~|z{…ŠŒŠ†‚‚‡Œ‘‹‹‹ŽŒ‰‚ztpqu{†‰‹‹‰…€zusuy~‚……ƒ|yxz}€€|yxy{}~~}|{{|}€„ˆ‹‹‰…}{z{€ˆ”•ˆ€||€…‡…|vrnkkmqvzzwsprv|„„‚€~€„‡‰‰…zxy|~~~~|yustx~‚ƒ€}{{|~~}|{||{zyz†ŒŠ‚zursvz}€€~}|{{zyxxy{||yvspoopqrtvvtoic_^biqx|~|xtrqsvy|}}||zwurrsuxz||}ƒƒ‚€}zxvvx~„‰Š‡ysonoprstuttsstvwxwwxy|}}{ywwwy{}€‚ƒ‚~zvttvy{~€‚…‡‰ŠŠŠŠ‰‰‰Š‘‘‡}|~€‚ƒ€€‚„†‡ˆˆ‰Š‹ŽŠˆ‡Š—Ÿœ•…†Ž—Ÿ££Ÿ™“ŽŒŽ‰„€}}‚„†††…„…†ˆŠŠ‡…ƒ‚€€„‰Ž‘‰{vuuvvtsrrsuuvvwz|‚ƒƒ|{z{{{zxwvvwy|€ƒƒ‚~{yz…Љƒ|wuw|ƒ‹‘“’މ„~~~~€€€}{yxz~‚…††„}{zyy|‡ŒŒ…~wuw~†Œ‡}qhdfnx„’“‹‡†ˆŒ’““‘ˆ{wvy…‰‹Œ‹‹‹‹‹‹‹‹‹ŠŠ‰‡†…„ƒ‚€}xrmlov~„…ypjhkrz€ƒ|vqmlmopsv{†‰‰†|wuuy~ƒ…†„€~}zxtqnkklqw~ƒ…ƒ€„ˆŠŠ‰‰‰‹Œ‹ˆ…€{vtuwz}€ƒ…‡ˆ‰‰Š‹‹ˆƒ|tollnqtx|…‡‡„€~~}yrlhghkosvxywtokjknqrqnllotx|~~|{zyz|~€€~zxwxyyyxxwwwwwx{}~{xwxy{zvqkgddddeeeefhlpuz|~€‚…‡‰‰‡„‚€‚„„„‚€}{yy{~€ƒ„††‡‡‡‡ˆ‰‹‘‘‹†ƒ‚†Œ“”’Œ‰†|xwy~„‰Š‰„€~~…‰ŽŒ‹‰‡„€~}€„ˆ‹Œ‹‰ˆ†……ˆŒ•——•“’’’Œ‡ƒ‚„…†„‚|yxzˆ’˜š–Žˆ…‡‹““‰ƒ}ywx|€{unjhjnsz€…‡…‚}zz|€€‚†‰Š‰ˆ‡‰ŒŠ…€|yxy{~‚„…ƒ€~~‡Œ‘‘Ž‹†€|{}€‚‚~|zwtqpprtutssrsvz…‰Šˆ‚|wwz€†ŠŒŒ‘’‹„}xwx{~‚ƒ‚{xvwz~€~||‡Ž‘Ї‡‡‡‡…ƒ€€}{zz|€…ŠŽŠ†|vrqsx}‚„ƒ€|wtqooqswz{{yyz}€ƒ†‡‡‡‡†„€|wromnpv|€‚€ztollmnmkjijlosw{~€€~zvtuy€…‡ƒ|smjknqsuvvtsruy…ˆˆ…~ƒ‡Œ‘””’ŽŠ‡ƒztnlmqtwwvvx{€€~zxvwxz|}}}|{yxvtsqppooprsrpkgfhlsx|~|yuqmlnrx}‚ƒ‚€}zwuuvwwvtssux|‚„…††…ƒ{xxz~ƒˆ‹ŽŽŽŽŒˆ„€‚†‹ŽŒ‰†„„…‡ˆŠ‹ŒŽˆ‚{vux~…‹‹‡‚€€€}zwtrqprv|„Œ‹†‚‚…‰ŒŽŽŒˆƒ~{{…‹’”–™šš—’Œˆ…„„„„‡‹‘—š˜’Šzwwy}€‚}}~€{vrrw~‡Ž’‘Œ„|vssvz}€ƒ„„ƒ}xsnjhiknqrqqrv}ƒ‡ˆ‡…„…††…‚€†Œ“˜›š–ˆ€yttvz~ƒ„ƒ€€‚…ˆ‹Œ‹ŒŽ‘•˜›››š˜–“‰‚zsooqtx{}€‚{ursx€ˆˆ{vuw{‚‰‘–—”…}ƒ‰“––’‹‚ytty€‡‹‹†wqnosx}€ƒ„„ƒxqkhlt~†ŠŠ†xqlknu}„‡‡ƒ}wrnljjklmmmmmmmnry‚ŠŠ„~{yxwutsrqomlmpuz}~{yxwxz}†Œ‘””‘ˆ„„†ŠŽŒ‹ŠŠŒŒŠ‡„yutv|ƒŠŽŽŠ†‚~|zxvvwzƒ†‡…‚{xwwy|~‚ƒ„†ŠŽŒˆƒ~…ˆ‰ˆ„€|yuplhedcdfilpsvwwvsqnlkklmmmllklmnnmmlmnooppqqpnje^XTRTYblv~ƒƒ€}zyyz|~…Š”–•“‹‰ˆˆ‰Š‹ŒŽŽŒ‰…ƒ‚ƒ†‰’“’މ„€€„‡Š‹‹ŠŠ‰‡…ƒ€€ƒ…††„€|xuvy~„ŠŽŒ‰ˆ‰‘–šŸ¡¢££¡–ކ~zxy{~~|zxvvwxz|~€‚„†ˆ‰ˆ‡†……„„ƒ‚‚„‡ŠŒ‹‰†‚~|zxvsnjghnw‰‹‰ˆ‡†„‚‚ƒƒ‚€~}|}~€‚‚ƒƒ„„ƒ€|xsqru|ƒ‰‹‰‚yqmmr}‰“™™”Œ„~ztnhegox‚€€‚„ƒzwy~ƒ„wrrx€ˆ‹ˆƒ}xvw}†‘›¡ —‰zqpwƒ™œš“‰€xsqty€†ˆ†ƒ~~€€€ƒ…‡ŠŽŒˆ„‚‚„‡ˆ‰‰‰‹Ž’•˜—“Œ„{vux~†ŒŽ‡~vswŽ˜›˜†€‚ˆ‰vonqw{{umeacjt€‰ˆ‚~zxtpmmpv{~}zvromkjjjlmmmorv{~€€~|yvvx|€‚„‡ˆ†‚~}~‚|zxwvwy~…‹‰‚zutwz}~€‚„††‡‡‡ˆˆ…|vqmkijmqw{~€€~{vohdelw‚‹‘‹†€{wuux{~}{{|~€€|yvttw{€ƒƒ}ytplhffiqy„„€|ywvwxy{~ƒ„ƒ}yvuwz}€ƒ…†ˆ‰‰‡„~{zxwwwz€…ŠŠ‡‚|yz‡•—•‡}~„Œ”š›–Ž„|yz~‚…„|xutuwy|€|wrqt|„ŠŒŠ†„‚ƒ„„……‡Š—¡ ›’ˆ€…Ž—›™“Š€zxz€‡ŽŠ‚vlgjq|…ŒŠ…~xttw}ƒ‰Ž‹…xttx~ƒ…ƒ{qhcbfnw†‰‰‡ƒ€~~‚„‡‰‹ŽŽŠ†‚}yvuux{~~zwtsv{€„†‡ˆˆ‰‹Œ‹‰†„…‡Œ‘–™š˜”‹‡ƒ‚„ˆŠ‰ƒ{rkikqx~‚ƒ„„ƒƒ„ˆ”œ¡£¡œ˜”‘‰ƒ}xtsrstvxxwtqpsy€‡‹ŒŒŠ‡„€}yvtsstvx{}~~~}}{yvtsuy€‡ŒŽ‹†‚€€€}zvtsux{~~zria[XY[_dhkmllmqx„†„~}|zxvutssrsvz~|ywwz~…Œ“™›š—’ˆ††‡ŠŽŒŠ‰‰‹ŒŒŠ‡ƒ€~~ƒ…†††…„„„…ƒyqidceinqstttromklmoqqrsuy}ƒ„…†ˆ‰‹ŒŽŽŠ…zwwz„‰Šˆ‚yof_\^ckt|ƒ}wronpsvy||{wrmheegkorssrokhfefgjklmmnquz„ˆ‹ŽŒ‰†„„ˆŽ•šœ™•‹„~wroopqsttttux|‚‰Ž‘Љ‹Ž‘”—™›œœš˜––—™˜“Œ…}~€‚ƒ‚€}{{|‚„ƒ€}{|„ˆŒŽ‘“”•––••”“‰†‚„ˆ‹‹‡{xwz~ƒ‡‰‰‰‰ˆˆˆ‡„‚}{ywtpnmnquz~…ˆ‰ˆ…‚‚†ŒŠ‚yqmns{‚‡ˆ„|tmklrz‚†‡†„„†Š—œžœ–ƒ{xz~„ˆˆ‡„ƒ…ˆ‹ŽŽŠˆ‡‡Š‘Ž‹‡„~{xtplihikqw}‚~{yz{|}~}|{zz|ƒ‡‰‰‡†………„‚…ŠŽŽ‰…ƒ„‡Š‰†{vssv|‚ˆŽŠˆ‡‡‡‡‡‡„ztrrv|……„€{wttyŠ’——”‹‰‡†ƒ~{yuqlhfhmsy}{vne_^`fow†ŠŒ‰‡„ƒ‚‚‚€€€}xsmkkotxz{zxwwwwyz|~€‚„…„‚~zwwz~‚~{wspnotz€…†„~|{{{{{}‚…ˆŠ‹‹‰†|yxxyzyupjd`^]_begijklmnqu{ƒŠŒ‰‡‡‡‡…~zvspoqty||xrkgfjnsuvusqpopqrrstvxyyxwvwxz|}}~€ƒ……„~||~ƒ…††…………†‡ˆ‰‰ŠŒ”˜››˜“Œ‡‚‚„‡ˆˆ‡…ƒ€ƒ…†‡ˆ‰‹Œ‹‰ˆ‡‰Ž“—˜—”‘Ž‹‡ƒ{yxxz|€ƒ„‚{y|ƒŒ”š›™•Œ‰ˆ‰‹ŽŽ‰„‚ƒ‡‹ŽŽŠ…zwvx|…‡…|yz~…Œ‘’…}xvwz}€‚ƒ„„ƒ|zxwx{‚ƒysopv~†‹Š…€{xwwxyz{|{zxvvwy|~~}{yxxz}‚‡‰‰…~ƒ‰ŒŒˆƒ~{zzyyy{„ˆŠŠ‡„‚€€€€ƒ†ŠŒŒ‹Œ’•–•‘‹ƒ|wvw{€…ŠŒŒ‰ƒ|wvx~…‘’ˆ€xuv|„Š‹†}tmlpw…‰‹ŒŒŽŽ‹ŠŠŠˆ†‚~{z|€†‹ˆ‚}zyxwvvy€†‹‹ˆ„€~}|zyyz}€~|{|~€|wtrsuwxwvuuvx{||zvrnkkmptxz|}~ƒ…„€ztpopruwyzywrmihint|ƒ‡ˆ…xsqruy{}~€{vrsyƒŒŠƒ}zz~ƒ‰ŽŒ…}vqrv{~€ƒ…†„€|zz|~}zvqmifegiloonkiikpuy{{zz{~€ƒ†‰‹‹‰„zurpqtwz||yuokhimsy}}ztmgdcgnxˆ‹‰„}ywx~†Ž”–“Œ„~…‰Šˆ…‚€€€‚ƒƒ~|zz|„ŠŽ‘‹‰‡‡‡ˆŒ“–˜—•“ŽŒŠ‰‡†„„ƒƒ‚‚ƒ†Š‘—››™”‘‘“”“‘Ž‹‡‚~zwutux|€ƒ„‚€€ƒ…‰‘’‘ŒŠˆ†„|yvrnkkmprstuw{…ˆˆ…‚€€‚…ˆŠ‹Š‹‹ŽŠ‡ƒƒ…ˆ‹Š†€ytqpqstsqmiggjnswz|}}„‡ŠŒŽ‘”•”‹ˆ‡ˆ‹‹‡‚~}}€‚……‚~zwwz…ŠŽŠ‡„€ƒ‚€}zy{~ƒ††„€{xwx{~ƒ‡Œ”—šœ›–Ž…~{|€„†…ƒ~zvroptz†ˆ‡„}yurrtw|‚ƒƒ‚€{vqnmqyˆ‹Š…~wtsw|ƒŠŽ‘‘‹‡„ƒ…‰’”’‡|vrmjijmqvz~€|wronry‡‹‹‰†‚€ƒ†ˆ‡…€ztnjfegmv€ˆ‹‰„}xwx|‡Œ‘Š‚ztty‰ŽŽ‰‚|xx{€„‡‰Š‰‰‰ŠŠ‹Š‡„€|zxvtqomlmmljgda`___``bcegjnqtvwwvvuttttsrolklpv|€}wqmlmosw{€{vqnmnpsvxyyxvvwz…‰‹‹‰‡†………„‚€‚„†ˆŠŒŒŠ‡‚}zxy{}€‚ƒ„…†‡‰ŠŠ‰…~|}ƒ†ŠŽŽŒ‡zuqqtzˆ“–˜šžž™–””—šž ¡Ÿš—•’ˆzsnjijmqx†Š‹‰…~~~€ƒƒƒ€~‚‡Œ‰„|z{~‚…†ƒ~yuuw|…ˆ‡‚zpifhox€„…ƒ€}{{{~†‰‹‰„}unknv€‹‘Šxqnlllmoqssrqqty…‰Š‰…€zuru|‡’™š–ކ‚ƒ‡ŒŽ‹†€{wtsuz€†ŠŒ‹‰†‚}}~ƒ†ˆ‰ˆ‡„‚€}{{|€†‹Œˆƒ}}€ƒ……„€{vssw}„‹‘”–•’†~vokjnu}…ŠŒŒŠ‰ˆ‰‹‹ˆ†„„„ƒ€}zz}‚‡ŠŠŠ‰ˆ‡„€}{|~€~€…ŒŒ‡ƒƒ„†††……†…{urtx}}ysmkjjigffhmpplheeintz†“–•‘Œˆ††‡†„€|wsolklpv|…ˆŠ‹‹‹ŠŠ‹ŽŽ”—šš™˜–•“Œˆ„~{xurrrrrqonmmljgeegkortuvvsoicbdioturmfa]ZZ]bhouyzyxyz}€‚„„ƒƒ‚€~}{ywtqnllloqtwxyyywvuvy|}}{xutvx{|{yvrlhfgkptwxxyz{zwtrtz‚‹’—™™—”‘‘”––––˜š›š˜”ŽŽ‹ˆ……‰Ž’“‘Œ…~‚Г𛗓’•šž¡¡Ÿ›–ˆ€yurrstvwyyzyyyz|}|zwuux}ƒŠ’’…|tpqu|‚†ˆ‰‰ˆ†ƒ€}zz|‚ƒƒƒ„‡Œ‘””Іƒ„†‡†„~|yvqnmosx{}}||zwsmhfhnv}€€{upllou}ƒ†„~wqpv˜›”Š€ywy†“—š›š™—•“‹‡„ƒ„†‰Š‰ˆˆ‰Œ•›Ÿ¢¡–މˆ‹““Œ‡„~…Œ”˜—‡}vstw|„‚{oaVSWalv{|zurpqv|ƒˆŠŠ‰‰‹‹ˆ…‚€€~zvropt{‚ŠŽŒ…|ursx†‹‘’Œ…{xwuqmihkouy{}~|vnhfhlprqpqty|}|{}‚‡ŠŠ‡ƒ|yurqsx€…‰Š‹Œ‰‚zuv{†‡†…„†ˆ‹ŒŽˆ}{~„ŠŽ‘’“•–•“Ž‘–›ž ž˜ƒwmgefghhgecbbdgkpstrolkmquwwurpnnoqsuvvtsrstvwwx{~€€}|{zzyxwxxvrlfcchntwyxuoh`[[`hqw{}‚‚€|xwy|~€€~~~€‚€}yvvy~†Ž”™™—’Œ‡……ˆ‹Œ‹‡ƒ~yvsrqsuy~„…††‡ˆ‹Œ‹‹ŒŽ’•—˜˜–’‹„~{|‚‰’‘Œ…€{yyyz|€ƒ†‡†„}|{|ƒˆŒŽŠ†‚€€ƒˆŽ“˜™˜“އ‚~ƒƒ€€‚‡ŒŽ‰ƒ~zyz{{zxvvx}„‰‹‰„~yxy|€‚ƒ„…†ˆŠŒ‘‘އ€ytrrsuvwy|~~|xsnighmt|ƒ‰ŒŒ‹ˆ…|wrmklosx}„†ˆ‰ˆ…zurqsw|€€~}…Œ•›žžœ™•Š„‚‡Ž’‘†zxxz|}}|{yxyz{zxtrqsx~…‹’“‘Œ‡ƒ‚ƒ†ŠŽŒ‹Œ’•–––––“‰ƒ~€„ˆ‹‹ŠŠ‹Ž’”••”“‘ŽŠ…ysomnruxyxvutssstuwxxvspooqtttrpnmkhfefkry€…ˆ‰‰‡„~}}}}{ywuuvwxxyz|}}|{|~‚†‰‰‡„€€‚ƒ…‡‰ˆ„yustutqnlmoqqoljjlmlhdabeinrw{yqicacfkosvxxxwx{~‚„„„ƒƒƒ}zxz†Š‚|wuuwxyyywrmhfglqspkebchnsutsqomlmpuz}~}{z|~…‰•šœš–““•šŸ£¤£¡˜”’—œžœ–‰††‡‡†ƒ}{{{{|€…Š’“““””””’‹ˆ…ƒ‚‚ƒ‚€|xvwz~‚„„ƒ‚€€~}{zxvtsrqpppqqrrsux|€„ˆ‹ŽŽŠ†~~†Œ’•–”Œ‡‚}~€‚„ƒ~{xxz}€ƒ…†…‚~ysonpu|‚…†„~|yuronpruvvtqpopsw}‚…‡‡‡ˆŠ‹Œ‹‹ŠŒ•˜™•ކ{yzzzxuttv{€…‰ŒŒŠˆ††‰•šœš•Œ‰ˆ‡†…„ƒƒ‚€}zwvwy|}}{xurrrsux{~‚€}zyy}†‹Ž‹ˆ†‚|xusrsux}‚‡‹‹ˆ‚|xwz€‡’””“’’•––’Œ„}xwy|~zwutw{„ˆŠ‰‡‚|vqnmnpstutsqpnlkklortvwwx{~‚…††…ƒ~}|||}~€‚„†‰ŒŒ‰„{yyyzzz{|||{zzyzzz{~ƒ‰”—–”‹†}zxwwvutrpnligecdehjmnoonnoqty~‚…†…„ƒ‚‚‚ƒƒ‚€}}||{zwvvwz~€‚‚€~~~€ƒ†ˆˆ†ƒ|{{{{zxvtroligfgjov|€‚||}†‹’”””’‹‰ˆ‰‹ŽŽŽŽŒ‰…‚€€‚„……„„…‰Ž•› ¢¡œ”‹ƒ€ƒˆ‹Š…€}|~„…„‚}}~€~ytppsw{}}~„ˆ’–™š˜“ˆ††††ƒƒˆ‘’‘ŽŠ†…„………ƒ€€ƒˆŽ‰ƒ}xvwy}€ƒ„‚{wutttsrqqrtvxyyxwvvuttuy}‚†‡†ƒ~xrnmosx{|{zyyyzzyyz|~€ƒ…††…„†‰Ž“––“‹‡…‚{wtstw|€„ˆŠ‹Œ‹ŠŠŠŒŽŠ†„†‹“™˜‡€{y{ƒ†ˆ‰‹Ž’‹†~~€€}ytpnmnrv{}}zupnmnoopquy~‚€|wrnmotz€ƒƒ€{wvw|‚‡Š‹‰…€{xwvuuvx|€€~|{{zxuronmnoqtx{‚„‡‹ŽŒ‰†ƒ€€‚…‡Š‹Šˆ…‚€~}‚†Š‹ˆ…„„„†ˆ‰ŠŠŠŠŠŠŠ‰‡„€}yvspnnoqtvxz}…‰‹‹‰…}{yyyz{}‚…‡ˆˆˆˆˆˆ‡†…„„„„…†††„‚~ysnkkotz~}ytnhc`aekrvwurpqty~ƒƒ€}wrnmpu{}zwuuwz}‚~zvsqpoopqsvy|}}{ywvvvwz}‚‡Œ’’’Ž‹ˆ‡ˆŠŽŒ‰‡‡ˆ‹ŽŠ†‚~{{~ƒ‰Ž‹†|zzz|~€‚†Š”—˜–’Œ‡‚€€ƒ„„…†‡‡†…ƒƒƒ…‡‰ˆ…~|~†ŠŒ‹‡ƒ~{ywvtrollmqw|~}xqkhioxŠ‘•–”Œˆ„ysonry€„…|wtux}‚†‡…~||€„‡‰‡„„‰ŒŒ‰„}xuuwyzywtpliilqw~‚„„‚}zyyz|~zupllou|‚ƒ€zrljkpx€ˆŽ‹†ƒƒˆ˜ž¡Ÿ›–‘ŽŒŠˆ†‚}~†‹Ž‰€vomrz„“––”ކywy~ƒ‚€€ƒƒ~zuqnlmpv}ƒ†‡†„€}ywwz…‹’’Šƒ~zz|€‚‚„†ˆˆ‡…‚€„ˆ‹ŒŠ†}{|€†’•”ˆvoifdfjpuxvsqrw†ŠŠˆ‡‡‡…|xwz€†‹’”“Ž…{sqw‚”•“މ…‚€€ƒ‡ŠŠ‡ƒ€~~€ƒ„…………„„ƒ‚€~|zxwvvvvxz}€„‡‰‰‡„€{wtrtw}ƒ‡‡ƒ|smhffffgiloqrqppppoorw€‰‘”’‡ƒ€€ƒ…„{skdbcglrx}€ƒƒ‚||}€ƒ……„‚‚ƒ‡Š‹‡ƒ~|wrnkklnprux{~€‚ƒ…††„€|z{€‰”£¢œ’‡zz~…”™™•…}ywy|‚‡Š‚yrprvz~ƒˆŽ’“‘ŽŠˆˆ‰‰ˆ…‚€}{zyyyyyxxy{~€‚„‰Ž”™›š•Œ‚zuuz‡‰ˆ„€|zyzyyxwvwy|‡‹ŒŠ„}uqprv|„…„€{wuw{ƒƒ‚€}zwrnkknty}}{xutssttvy|}}|zwvw{‡ŒŽˆ‚~|~…‡ˆ‡…‚~€†”˜–…}xxz}€€}xsnlmqw†Œ“”“‘ŽŠ‡„ƒ‚ƒ„……ƒzvstvwvutvzˆŒ‹Š‹ŒŽŽŠ…€}|}}{|ƒ‡‰Š‡‚zrlkpxˆ‹Š…€}{{{|}~€€~|zxwvx}„‹‘”“Žˆƒ€‚†‰‰ˆ…€„ˆŽ‰ƒ|vuy€‰’Š‚}yy|€ƒ…ƒyspqty}€ƒ…ˆŠŒŒŒŠŠŠŠŠ‰ˆ‡…‚~xqlihiiihghlpuwxvutuwz}†‰Š‰†ƒ€‚…‡†ƒ~zxy}ƒˆ‹‹ˆ‚{snkknrwz{yvronpu{€~wne^]`houvrlfbbgoy†ˆ†ƒ~~€„‰ŒŽŽ‰…€{wutvy}„‡ŠŒŒŠˆ††‰‘“’Š„{yx{€†‹ŒŠ†~ƒ‰‘І„ƒƒƒƒ…†ˆŠŠ‰‡†„ƒ‚€~}}~€€|xtrtx|~~}||{{z|€†‹Œ‹‡‚€€‚„…†ˆŠŒŽŽ‹‰‡…ƒ€ƒ††ƒ~yvwy||zupmlnqv|ƒˆ‹Š†yusssrpoorvy{zwrnkkovˆŒŒ‡€{xy|~€€€‚ƒ…†ŠŽ“––“ŽŠ‰Š”™œœ˜„xniks~‰Œ†~wsrv{‚ˆŠˆ‚zspsz‚‡ˆ†‚}xtqpqv|„„‚|zxvuvx|‚ƒƒ„†‰‹‹‰†„ƒ†Š‘—šš–Ž„}yy}„…‚{xwy}„…‚€~€…ŠŒ‡|zyywvvx|ƒ„„…ˆŒŽ‰ƒ~zyzzyxvvvusqnmnqv|‚ˆ‹Œ‰…‚€€‚ƒ„†ˆ‹Š…zxy|€„ˆŒŒ‰‡†…„ƒ‚|xtqrv|ƒ~yvuuvvwxz}~|zyzzzyvspooqrqpmlnu‹–ž¡Ÿ›•ŒŽ‘““‰‚|z|€‡ŒŽ‹…~wroorx~„ˆ‰‡ƒ~xsqqsw{~€|wsnkjkotz€ƒƒ|zz{|‚…‡ˆ‡…}ywutsqnkfcabgmswwtokjlqw|}{xttw~‡–ššš˜–“Žˆ{wwz€‡ŒŒˆ„€~€}|{{}€ƒ†‰ŒŽŽŽŒ‰‡‡‡ˆˆˆ†„‚ƒ„……„‚~~ƒ„……ƒ€}zxy{~„‡ŠŽ‘““‹…}~ƒ‰ŽŒˆ……‡Š‰†ƒ‚…‡‡…zvuvy}{vpllqz‚ˆ‰†‚|wsommpuz}|xromoqsstuwy{{zyy{~„†††„‚ƒ†‡‡„€|{}€ƒ…„‚~xrlfa_`emw‡ˆ„}vqprvz~ƒ„„‚}}‡ŒŽŒŠ‡‡‰‹ŒŠ‡…„„„……„ƒ€~~}}|zvqmlot{…‡‡‡†††‡‰Œ‰ƒ~zyz~‚‡‹ŽŽŒ‰‡‡‡ˆˆ‡…ƒ€}|zz{…ŠŽŽŒˆ…‚ƒ‡‹”•’‹‚ztrty‡‹Š„|slgfhlsz‚‡ˆ‡…‚€€€‚ƒ„ƒ‚€~~~{uplmqw~„ˆ‹‹Š‡‚~{{|}~}}~…‰‘‘‹‡„ƒ…‹’’މ„€€‚…††ƒ|upnqw|}{{}ƒ…ˆŒ‹‚ug\WVZairz…††„‚‚ƒ„†‡‡…€zrlhgjosvvsnjfefhkkjgddgmu}„‰‹ŒŒ‹Šˆ‡…„ƒ‚‚„…„€{upnmllkklnpsuwy{|||}‚…‡‡‡‡ˆ‰ŠŠ‰ˆ‰‹Ž‹‡ƒ‚„ˆŒ‘”———”‘ŽŽ‘‘Œ”˜›œš•ˆ|ywwwxz{|||zwuuw}…’”’ŽŠˆ‡ˆˆ‡……‡ŠŽ‘’’‘‘‘’“’‘Ž‹ŠŠ‹”™œœ˜‘ˆ~vqpsw|}{yyyzyumd\YZ^cgjkmnoomkkmrx~‚„„‚}xsonnquy||zwuux}ƒ‡ˆ…{xy|†ˆ†‚{tqsy‡ˆƒynd^]bit€‹“—•„zsqsz‚‰ŽŠ†~}~…ˆ‰†€ysqsy€†ˆˆ†…„ƒ‚€€€ƒƒ„…‡Š•›¡¤£Ÿ—އƒ„‡Œ”••’†zy|…‡…‚|wroosy€†ˆˆ„€}{{|‚‡‹‡€xpkhimsy}|xsomoqrrqpppqrtvy|~~}zvrooqv}†Žˆwrrw~†‹Œ‹‡‚}~‚‡Œ‘’‹„|wuw|…ˆ‰‰Š‰†€ypjfgkptvtqlhffinsvwtoidabhpy‡‹Ž“–˜˜—•“Œˆ„~~‚„†‡‡‡†ƒ}voklr}ˆ‘””‹…~xsooqtvwusrsvy{|~€„‡‡†‚}|~…‰Œ‹†}tkggkqvxxuqmiggjov{~~|yxxxz{|~€ƒ‡‹”™œš“Œ‡„†‰Ž“—›œ™”ˆ„‚€~|||}‚„†…„~}}€…‹’–•ˆ€zxy|‡Ž“”‰wrpqtx}ƒˆ‹Œ‹ˆ†††‡‰Š‹‹ˆ„‚‚…‡‡‡†„ƒƒ…‰—ž¤¦¤ ›•‹‹‰ƒ|vrqqstutrpnoruxyyyyxvsnkijlnooprtvxyz{}ƒƒƒƒ…‡ŠŒ‰…}ywwy}‚……zsoosy€…‰Š‰‡„zwuuvvurpoqty}€‚„†‡‡…€{vtuz‚‰Ž‹ƒzrmlnrvz{||{{|‚……ƒ~zxy|€‚ƒ‚‚…‹‘–š›˜’‹ƒ}{}‚‡ŒŒ†~unjkotzƒ†‰‰ˆ‡…„„„†‡‰ŒŽŒ†}tnmosx}|wqljlqvxwsmjkpv|€ƒ…ƒzustvy{~€‚‚€{vrru|ƒ‡‡„~xspooqtwz}‚„†ˆŠŒ‹ˆ„€…‰ŒŒˆyrmlnsy}€€€€‚ƒ„„ƒ~{xwxz}~€‚„…„‚€€‚ˆ•–’Šxrrty~‚ƒ‚~xrnmqxŠŒ†}}~€~yqiddiry}}yutuz}€€„ˆŒŽŽŒŠ‰ˆ†‚}wtrsttrpoqtx{||}}~~|z|€ˆ””ˆxuvz‡‹Œ‰„}vollqy‚Š“’ŒŠ‹•œ ¢¢¡¡£¥¦¤Ÿ™’‹†ƒ€€‚ƒƒ|{|~‚‡ŒŒ†~xtsuz„‰‹ˆ„ytppt{ƒŠŠ†ƒ€~|zxurrtx~…‰Šˆ…~€ƒ†‰‹Š‡„€€ƒ…‰Š‚wmfbcfkoqqoljhikoswzzzxwxy|~~|wrnnpstsojfcdgmu~ˆ‘˜œ›–ˆƒ~}}|}‚…†„€yrmklpuz}}zvuuy€‡ŒŽŒ‡ƒ„†‡†„ƒ~{wtux†‹Œ‰†………„„ƒƒ…ˆ‹Š„~xvw}ƒˆ‰‡‚~||ƒ……‚{slgfjqy€…†…|wsqqruy}‚‡ŒŽ‰ƒ|xx{‚‰Ž‡€{yz{}~…ŠŽ‹†€{wuuvwz|„†‡‡…‚|{|~ƒ…†…„~zww{‡‹‹ˆ„€}|{z{|~€‚€~~~~|yxxy|€‚„…††…ƒ€|yvttuvxyzzzzzyxwvwy|~€|wqlknw‚Œ’“Ž„ypjkqz„‹‰‚xpllqz„ŒŽŠ‚xplmqv{€ƒ……‚|upnoswz}‚„„}yurrrsuwy{}|{yxx{„ˆ‹ŒŠ‡„‚ƒ†Œ‘–™˜”އ€}~ƒŒ•œ Ÿ›–“‘‘“”””““’“’’Œˆƒ{xvusrqrtzˆ“••–˜›Ÿ¢¢ ™•’Ž‹ˆ‡‡ˆŠŠˆƒ}vqnorx~‚ƒ}yvuwzƒ‰Ž’••’…~xuux|„……„„†ˆ‰‰…xqmlov~…Š‹‰„~yustv{€ƒ„|wtsvz~ƒƒ‚€|xurqqqpomkhfcabdjqy~}wqmknsz‚‰’‘Œ…~xuv{‚‰Ž‰xqllpuy{zyyz}~|zzyyyxvsqonoqvz‚…ˆ‹’’އywz‚Œ– ž™’Š„€€ƒˆŽ‘‘Žˆ{wvx}„Ž—Ÿ££Ÿ—ކ„‰Ž’’މ‚{vttw{‚~xqljjlpv{€ƒ…„‚}}}~~~~|zvpjd`_aflquwvvvx|€…ˆŠŠ‰‡„‚€€‚„†‡ˆ‰Š‹Šˆ…ƒ‚ƒ…‡ˆˆ‰Š‹Œ‹‰†‚}xqic^\\_bfjlnopsvz~ƒ‡‰‰‡„€€‚…‡‡…‚|yxxxz}‚ƒƒ„„ƒxpjhkqx}‚‚ƒ}wrnnpsuvxz||yuokkmrw{}€~}}~€€~|{|~ƒˆ‘ŽŠ†„‚‚„‡‹“”’‹‚yqnnsz‚ŠŒ‡}smkpy‚‰‹ˆ‚|wttw|‚ˆ‹ŒŒŒŽ“•–––•“Œ‰ˆŠŽ“˜››—‘‹‡†ˆ’–šœœ›–‰ƒ€„‡ˆ…€|{}‚‰”––”‰‚|yy{~‚ƒ„……„‚~{z{„ˆ‹ŒŠ†|vrppqu{‚‰Ž‘Œˆ…ƒ„„„‚{yyz{zywvutuvy|~€}xsomoqtvwxz~‚‡‰Š‰†„‚~ztnigimt{„ƒyrmklnpqolheehmt|„ŠŽŒ‡|yxxyzzzzyxvtrrtwz}}}|zxusrsv{€…‰ŒŽŽŒ‰…„„‡‹‰ƒ}xxz€†ŒŽŽ‹…€}}~€‚ƒ‚~ztqoquz€„‡‡†ƒ{yxz|~}{xvuuwz„ŠŽŽ‹‰ˆˆŠŒŽˆ€xssxŠ’‹…€~…Ž—ž¢ ›”ŒŒŽŽ‹†xqlheccfmu}‚„‚|umhgks~ˆ†}uomosy„ˆŠŠˆ…~}}€…‰ŽŒˆ{wuvy~„‰Œ‘‘Ž‹‡ƒ~yurponoprtvwxwusqqsuvurnifdeiq{„‹‹…{phddgkpuz}~|xtrty…‰‹‹‰†‚}{zyxwwz~‚†‡ˆˆ‡‡‡†††…ƒ~xsoptz€ƒƒ€|zy{}€‚ƒƒƒ‚‚€~{wsqppqpoopsx~ƒ…ƒ~xrnnqw~…Œ”›  œ”‹…„‰‘™™”’”•–———–•“‘‘’“““‘‘ŽŒ‰‡‡‡‰‹ŽŒˆƒ||ƒƒƒƒƒ‚}|}€„ˆ‰ˆ†„‚€€€‚„‡‰‹Œ‹‹‹‹’’‰†…†‰Œ‘‘ŽŒŽŽ‹„}wrpoooooonlgb\YY^emty{zxvvy~†•—•‚wmfdhnuz{wqh`ZVUW\bhnsvz~ƒˆ‹ŽŽ‹‡‚~{|~€|xvvwxwtpmkkkkmpu|‚†‡‡†…………„ƒ‚€}{{{{{{z{|}~|xsporx€†‹ŽŽŽ’•˜šš™–”‘Ž‹ˆ…„…‡ŠŒ‹‰„~yvwy}€}ytrty‰””‘ŽŒ’“‘ˆ„€}yutv{€„ƒ€{xvvwwvuspkfcchouwvsqqtx{zwqlhfhnv…ˆ‡„€…Š’”“Љ‰‰‡„€|zz|€~zupjfddfilllkmry‚ˆŒŒ‰„€~~€ƒ……‚|umigjpuyzyvsrsvz~ƒ‚€|yxxz}€}zwtsrtw{}}{yvsqpqswz}~}{ywwwxxxwutsttsromnpuz‚„…„‚{yy~‡‘𡣡›“‹„€€€}yustx}ƒ„„ƒ‚€~~~†‹•˜š›š˜–””–˜™—”‘’“‘’”––”“‘ŽŒ‘–œ¡£¢Ÿ›˜–•••“ŽŽ’’‘‰ƒ~yvsrrqqpprw‰’™Ÿžœš˜–•”’‰‚{urstvvspljjlqv{~€€€€„ˆŒ‘‘Ž‹‡ƒ{vrnkjhfb_^_accbabflt{€„†‡†ƒ}vpmmpu{€|yvttwz}~~~€€|yvtstvxz|||||}~‚„‡‰ŠŠ‡„€}{{|}€€~{vplknt|ƒ‡Š‹”˜œŸŸ›˜–•”””’Œ‰†……†ˆˆ†ztpot|…Œˆ{z}„Ž—œœ—Ž…|vsqpnligffghhgffgjmrvz{{yxwy}‚‡‰ŠŠ‹“•“…~yy{}~~|{z{}€|voklpxƒ……ƒ‚‚‚„†‰‹‹‰…ytrqrsuvxz|}{wropsy€†Œ‘•––“‹Š‹Ž‹†€ysooqstsrruz|{unihjnrsstuwz{zwsoljhggiloqqpnljijkmqv{€}}ƒ†Š–š›˜’Š„|wsoorw}€€~~€~‚…‡ˆˆ†„ƒ‚„†ŠŽŒ†~vrpruwyyz{}€„†ˆˆ†…ƒƒ…‰‘’‹…€~€…“––“Œ‹‹‹ŒŒŒŒŒŒŽ“š¢¨ª¦Ÿ–ŽŠ‰‹”˜›œ›˜•’ŽŒŠˆˆ‰‹ŒŒŒŒŽˆƒ‚†‰Šˆ…‚|xvuwz~€€~ƒƒ€{vttwz|}~~}|{{|}€€€€€ƒ…‡ŠŒ‰„{z|€ƒ†‡‡†…„ƒƒ„……ƒ}zwvvwyzz{{zzyxxxxyyyxxyyywtqomnnmmlllkjhggiloqsuwyz{{|~‚†‰ˆ„{z|€…ˆ‰ˆ…}yvuvxzzyxvwy|~€€€ƒ„„‚€€€}{z}†‰Š‡ƒ{xvvxz|}{xvuw|…‡ˆ‰‹Œ‹‰…€}|}€€~{uojimu~‡ŒŒŠ…€|ywwz~„‰ŒŒˆzsprv}ƒˆŠŠ‰†‚|vpnqv|€€~|zyyxwvwxyyvsqqtwz|~€ƒ†‡…{vrpquzƒ„€zuruy~~ƒ‡Œ‘’‘‹„}vqprvz~€{uojhinsy~‚…††…ƒ~xqmklortsojfcbcgmu|€€~zwwy}}yvtsstvy}€€†Œ’–•‡|rjfglu~†‰ˆ„~xtqpquy}}wpkjmt|ƒ†‡†„„„…††…ƒ{vssux{{ywvy€Š“˜˜”‡„„‰‘𢧍¦¢žœ ¢¢Ÿš–•–˜œž ¡¡ž›–Ї†ˆ‹ŽŽ‹‡ƒ€„‰”™œžš–‘“—š›˜•’‘”–—–•”–™Ÿ˜‘‹‰‰‹Ž‰‚yofa`elu{}|yvuvy~‚‡Š‹‰„~yvvz„…ƒ}ule`_`behjlljgdaachnsuvuuw{‡Œ‘‘‰…€}zxvtrppsw|€ƒ„„ƒƒ‚‚‚ƒ‚~zwx|‚‰Ž‡{wtrrrstuvusqooqtwzzyxwwwwwvvvwxyxvsqppqrtvz~‚‡ŠŒ‹Š‡……‡‹‘Œ†ƒ‚…ŠŽŒˆ‚}}}{wqlihjmoqrstux{~‚‡Š‹‰ƒ|tppu{„„‚~{yz|}~|zxwwz„‰‘’’Š‚yqlknsz€ƒ‚~woigip{…‘‘ŽŠˆ‡ŠŽ“—š›š—’ŽŠ‡…„„ƒ‚€~{xwwxy{|||zyvtsrsuwyzzyxxz…‹’‘Œ„~zz~ƒˆ‹‹‰‡‡ˆŠŒŒŠ‡‚}ywwy||yslgehmqrqmifddflu†‰‡€ytrsvz}~{uojhinrtrnieegmtz|{vqorx€†‡„}wrqruz~€}vpmou~‡‰†„ƒƒƒ‚€‚†“˜š˜’‰wv{„“•”‘’–™œžŸš•Ž“™ž›”Œƒ~~‚Œ—¤­³´±ª¢™’Œ‰‰‹“—š››š™–“‘ˆ„€€ƒˆ•˜˜•‘ŒŠŒ‘–™˜‘‡}vtw|‚„„~zwuuuwxywtpmnryˆ‹Š…~xtssuxz{{zyxwvusokfbachmsxzzwsnjikouz~}{xwwx{‚ƒƒ€|wtsrsuvwwwvvxz}€€~{yz~ƒ‡‰ˆ…‚€€}yrkhinuz~€~|ywx|ƒ‹‘””’މ„||ƒ‡ˆ‡…„„†‰‰ˆ…‚€€‚…‰‹‹ˆ…€ƒ†‡…€{urruz‡‹Š†xtsuy|~~{wqmjkpw|~}yustx}‚…‡†„}{zz|||zwuttvy}„‡ˆ‡„€|yxy|‚ƒ‚€}{yyz{~„„{smjlrz‚ˆŠŠ‡ƒ{xx{~{uojhimqvxxwusux~…‹‰„|{}€ƒ†††„‚~{xuttw{ƒƒ|wtsv{€„†„€{vrrsvy{zxsmgb^^`ejnnje``cjry}ƒ†ˆ‰‰‰ˆ†…‚~{yz~ƒ‡ˆ…|zz~ƒ‡‹Œ‰ƒ~zy{ƒ‚~xsrw~†‹Œˆƒ}yutux{‚‚€}ywwx{‚~ytqqu|ƒˆ‹ŒŒ‹Š‰ˆ…~}~…‰ŒŽ’—œžž›™™ž¥­²´³¯«¦¡š™šš™–‘‹ŒŒˆ„‚‚ƒ„†‡ˆŠ‹Œ‰‡†…†††…„ƒ‚‚~}|{{zz|‚†‰Šˆ…~|{{}~€‚„†‡ˆ†‚}wspnnosw|€ƒ„„„}yursv{‚‚€~|zwtpnllmmmmnpqrpliginu|‚†ˆˆ…‚~|}†ŠŽŒ‘’ŽŒŠ‰ˆ‡…„…‡ŠŒŒŠˆ†‡‰‹Œ‹Šˆ…}zy{€„††ƒ~xqljknqtuuuvvupkfeipxƒƒ‚€~~}~~€‚‚‚€~|yxxy|ƒ‡ŠŒŒ‹‹‹ŒŽŽŒˆ…ƒƒ„„‚zwtrpmjfdccdddcceiov}‚„„~|}ƒƒ‚€€}zvrpprw}~wngcdipy€„††…„…ˆ’••‘‹ƒ|xy|…‡…‚€ƒ……ƒ€‚†‹‘””’†zxy|€‚‚‚‚}yvtuxz{zyxwwwwvvutssuw{}~{xsqpqtwz|}~}{xurpqsux{|{xurpoqsvz|~~|yussuwxwtpmlnpstspmlkkkjiiiknqtwz}‚‡‹Ž‹ˆ…‚€€‚†ŠŽ‡{vuvy|„†ˆˆ‡„€~„‹“˜››š˜–”Š…€„‡‹ŒŒ‹ŠŠŠ‹‹Šˆˆ‰‹“”•”“”–™šš˜”Œ‰ˆ‰‘•——•“‹‡ƒ‚ƒ†ŠŽŽŒŒ’•˜› ¥©««©¦¤£¤£¡ž™•Œˆ…‚|yvutuuvwxz}‚ƒ„…†…ƒ|ywvuuvxzzyvqkgefinsvxwurooquz~‚ƒƒ‚€}yurpqsuvusqpoopsvz}~~}||~ƒˆŽ‹‡ƒ|yxyz}€|wqljkou{€‚ƒƒ„‡Œ“”“‘ŽŒ‰…ƒƒ†‰‹‹‰…€zsnkklorttroljijmprux{ƒ……‚~{zy{|~€}|}€ƒ……‚~|{}‚‡Œ‰„€~ƒ‡Š‰‡ƒ€~|zyxy|€~ytpopsvvutuvwxxwvutttuw{ˆ‹‹†ywy†’””‰ysqrw{~}ysmheehpy‚ˆŠˆƒ}|~‚†Œ’––“Œ„~‚ˆ‡€ysopu}†‘‹„}ywxz~‚…‰‹Œ‹ˆ…ƒ€}zxwvvsojffjqwzzvronquz}~{sja\^fq{‚…‚|upnpvˆ’‰€wpnptz€…‡…€ypjgjq{„ŠŒ‰…~zxy}ƒ‹ˆ}pfabit‡ˆƒwi]XZdr€ŠŽˆ{yz~…Œ‘“’ŽŠ…~~€„Š‘‰†„ƒ‚€ƒ‰’›¡¢Ÿ™”“•šŸ¤¨ªª§¡˜ƒ|z{€…ŠŽŽŒ‰‡………„€zursw~…‹‘‘މ„}…”™š˜“Œ…|~„–Ÿœ—‹ˆ‡‡‰Œ“”‘‹ƒzsoosw{}|ytnifdehow…ˆˆ…‚ƒ†ŠŠˆxpllpw}~wne^]bku~ƒ„‚||~„†ˆ‡…}{|~…‡‰ŠŒŠ‡ƒ€ƒ…‡ˆ‡ƒzxwz}€€|xtrqsux|~€€€~{xuuw{€„…ƒyvux~…Š‹†~vojjmtz€‚€|wrommnortutrommotx}‚†‰‹ŒŠ‡„‚ƒ…Š“—™˜•‰ƒ~||}€‚…ˆŠŠ†vnihjnswyyxwvvxz|}|{ywusrrsux|~€€ƒ„……ƒ~}}~€ƒ†‡†‚|uoklqyƒ‹Žˆzutv{ˆŽ’“‰yuv{‚‰’’Œ†€|z|€ƒ…„€{urpprv{€„††„ƒ„†‰Œ‹‡‚~zxwvtqonmllkjiiihgec`__adhntz~{vrpopqtwz}€€~{yxz~ƒ‰Ž‘ŽŠˆˆ‹ŽŒ†|snnt}†‹‹‡wpmnsx~‚‚ƒ‡Š‰ƒ‚‡‹Š„|tpry„Ž””‡…‰‹Š‡€xqkjoxƒ”•“Œ‹‹Œ’–˜™—“ŒŒ‘ŽŠ†ƒ‚„…†ˆ•Ÿ©°´´±¬¥ž•މˆŠ“•’†{{†Ž“’Œvmijpx€‡ŒŒˆƒ~{{}}zwuvx{~~~~ƒƒ|uojhhjou{€‚‚€}{yyz{|~…Š”–•‘Šyrnmnqtwz}~}{yy{‡Ž’”’‹ˆ††ˆŒ’’‹‡„„‡ŠŒŒŠ‡ƒ€~|{}„†…|wuw{…‡‡…‚~~€ƒ…††„~}}ƒ…‡ŠŽŠ†ƒ‚‚ztpprvyzxvsrstuwy{{yuojfddfimpsuvuspmjhikotx|~~~|yusruy~€~}~~|||}€€~{xvuvz€‡Œ’“‘ŽŠ‡„„‡‹‘‘ŽŒŒ‹Šˆ…‚}|}ƒ††{smkknruwxxvutuwzƒ‡ˆ‡ƒ|zyz|ƒ„…ƒ€…Œ’––’Œ†}{{}†‹‹ˆ‚{yz}€~~}{zyz~‚…„~umfb`_^_adghfc_\\_fnv{||zxxy|€ƒ†‰ŒŽ‹ˆ…ƒ„†‰‹‰…~voiedfjpw}€{tnihkr|…Œ‰ysqsx}ƒ|ywvwwxyzzyxusqprvy|}|yuqopsy‰”——–“‘‘“˜ž£¤¢—’ŽŒ‹Šˆˆ‰Œ‘–™š˜“Œ…€…—ž¢¡žš•‘Œ‡‚~}}ƒ„…†ˆ‹’•––•“’ŽŽŽ‘“”•“‘Ž‹‰ˆ‡ˆˆˆ‡„€|yy}„‹‘Žˆƒ~|||~€ƒ„†‡‰Š‹‹Šˆ†„ƒƒ‚€|vqliikouz€ƒƒ|tlea`bdec_\\_dkquy{|||||}„‰Ž‘’‘ˆ‚~~~yslhilquxz|‚…‡ˆ‰Š‹ŒŒ‹‹Š‰‰‰ŠŒ‡‚€„‡ŠŒŒ‹Šˆ‡„}xtssvxzzxtpmllnpruwxyz|~€ƒ†ˆˆ‡…ƒ‚‚„††ƒ|unjjnt{‚ˆŽˆyttw{‚ƒ…‡‰ŠŠ‡ƒ{wuuux}‚†‰‰ˆ†„ƒ}wpicaacfhiijjkklmopqqqsv{‡Š‹Š‰ˆˆˆˆˆ‰ŠŒŽ‰„}wronptx{}}{yxx{€†Œ’–šœž¡£¦¦¥¢›”Œ…„‹‘”’Œ‚yqmmortvwwwutsrqqrstuwxywsmgcabfjortutspmkkmorrqlga]Z[^dlsy|‚†‹’—›žœ™•‹‰‰Œ’Š‚ysppsvxwtoic_]]agpx„†…ƒzupmlotz€…†…‚}}ƒ‡‰Šˆ…‚‚„ˆ‹ŒŽŒ‰‡…„„…‡‰‹‘’’’Ž‹‡„‚‚…Š–›žž›—“Œ‹‰ˆˆˆˆˆˆ‡†………‡ŠŽ‘މƒ}}€ƒ…‡ˆ‰‰‰‡…ƒ„‰”•‘‰€xspnkihjnty}ƒ†‰“—›ž ž™“Œ‡…„†‡ˆˆ†{uplklmnnopqqpooqu{€„…„‚€€€~}}~‚†‹Š‡ƒ}{yxy{|}}}}}|{zyy{~€€~||}ƒ†ˆŠŠ‰†‚€†Œ”™œš”‹„~…ŠŽŒ‰…}zvromlkkjifb_^afmsxzyxvuuuwz}€‚{yxxz}‚…††„~wqlklosw|„…„‚}}†Œ’“’‘ŽŒ‰…|xspmkihgfegjnqrrqqtx~„ˆ‰ŠŠŒ–œ¡£¡—‡xtsv{†ˆ†€ysqszƒ‹‘“‘Œ…~yx{‰•——•’‹†‚€‚|yxz|€„ˆŒ’”•”’‹†ƒ€‚ƒ‚€~{zyz|‚€|vpjggiknppqppoonmmkiggjnuz}}ytolkmquz}~}yslea_`djotwyzzzz{{}}~}{zyz|€ƒ…„~{yxwwvuttvx{~‚€~{xwx|‚ˆŒ‹†}skedgnxˆ‹‰„~{{~„ˆ‹‹Š‰ŠŒŽŒŠ‰ˆˆˆ‰ŠŠˆ…‚ƒˆŽ’“’ŽŠ‡…„„‡‹’™žŸ˜’Œ‰†„‚‚„ˆŽ“•”‘Œˆ…ƒƒ„†‰‘“““’’““‹„}zz†‘‘ŽŠ„}wqlknt}†Ž“•’މ‡‡Œ“šœ—Ž…}wutvy|~~{vqnorwzzwrmihint|„‹ˆ„‚‚ƒ„„‚~yusruz‚‰““‰€vnhgjpxƒ……‚}|}‚†‰ŒŽŽŒŠ‰‰‰‹Ž‘”—™š˜•‹†‚~zyy}†ŠŒŒŠ‰‡‡‡ˆ‹’‘…|usu|„ŠŽˆzsmjhiknquy~€€~ytonpu}…‹ŽŒˆƒ~yvsrqrtvyzywtqonmmoqtwyyxwvuvxyz{|}~}|zxusqppsw}ƒ‡ˆ…~|}€„ˆŠŠˆƒzupmklqx~~xrnot{†ˆ‰ˆˆˆŠŽ’•–”‘Ž’””’Œ‰ˆˆŠŽ”˜˜“Š€xssvxz{zywuronnopolhdbbcdeffffdb_\ZZ\_bdefhjlnpqrqplgcbchnu{†Œ‘Ї…‚€€‚‡“–•“‘ˆƒ|wsqomlnrx~„‰Œ‡{wsqomlkkkihfgimprssssrrrsv{‚‰“••”’’•™Ÿ¡¢£¥¦¦¥¡š”ŽŒ‰‡‡‡ˆ‰ˆ‡‡‡‰‹ŒŒŠˆ…‚€ƒ†‡‡†……‡ŠŽŽ‹‡|ywxy|€…‰ŽŒ‰…‚‚„…†‡ˆŠ‹Œ‹Š‹Ž“—™˜”‹‡„‚}{||~~€‚†ŠŽŽ‹Š‹ŒŽ‘“•——”Šƒ~{yyy{}~~|xustwz|{yxy{~|vqopt{‚‡ŠŠˆƒ|vrqu{‚††{wwz€†‰‰†|xuuvy||ytnkmt~‡Šƒ|vqoqv|ƒ†‡…‚‚…‰ŒŒ‹‰†„‚ƒ„†Š’’Œˆ†…†‡‡…zsmjijnrvyzzxvttuwz}}xsppswz||{zzyvsomlmoppppsuwwurnmmpuz€…ˆ‰†wplnsz…‡†‚~yvttuxz{{yxxz}€‚ƒ‚€€ƒ†‡ˆ†…„…‡‹Ž‘‹†|yxy{~€€€€€‚~}{{|}€‚}{ywupjc\VSTX^fov|€|xuttw}ƒŠ’“’ŒŠˆ‡†ƒ€{vrppsw{ƒ…‡‡††‡Š“–•Š…ƒ…ˆ‹Œ‹‡‚~yurnllmprrplhdbdhntxyxvutsttvx|}{|‚„……„„„ƒ€„ˆ‹ŒŠ‰‰Š‘•™œ›—‘‹‡†‡ŠŽˆƒ}|||}‚…††„€}||‚†ˆ‰‰ˆ†„ƒƒ„…‡‡‡‡‰Š‹‰ƒ{tpryƒŒ’“‘”›£¨«©¥ž—‹†ƒ€~}|}~€‚…‰‘’‰‚„ž§¤“x\JFPar{}zuqooqtz‡ŒŽ‰…€{yz~…Œ‰††ˆ‹Œ‰†‚€…Œ‘’ƒyrsy‚‰‹ˆ€xqnmosvyzyvsqruz€…‡‡„zuqpqswz||{xutsux|}{{}€„ˆŠŒŽŽŒŒŒ‘”••”’‘‘‘‘‰†ƒ‚‚‚zuqnoqsvxyzzz{{{ywusqqrsttsrrstwz{{yupjc\VSV^kw~wlcafp{ƒ€|yy{€…‹’’‹‹ŒŽŽŒˆ„~~}}}|{yvromlnquy{{zxvvvwy|€…‰‹‹‰†ƒ}|{|~€ƒ………ƒ€}yvtuy}€€~zvtv|„Œ“—˜—”‘Ž‘“•–•“‘‘’““Šˆ†„xpidbabccdfjouy{{yxvwy|‡Œ’Šwnihkquxxvtstvy|€‚ƒ‚€|ywwwwwwvwy}€ƒƒ€}{z|ƒ†‡…‚~zxxy{{ysmfb``bfkryƒƒxqmmqx€†Š‹‰†‚~|{}‡Œ““’‘ŽŒ‰…|xusrsux}‚‡‹‹Šˆ†……ˆŒ‘—ž£¦¦¤ œš™šœžœ™“މˆˆ‰ˆ…~vplknrw}‚‡‰‰‡…†‰“—š››˜”ˆƒ€€~|yxz~‚…††††…‚|unjkqx„††„~}}}||}€…‹‘‹ŠŠŠ‹ŒŽ‰ƒ{snmpxˆ‹ŒŒ‹‹‰†ƒ~|yvvx}‚†ˆ†ƒ{zz{}‚€~}~‚†‰Šˆƒ}xwx{ƒ„„{upnot{‚‰Œˆƒ€~~€‚‚‚}|{yxxy|‚‚€~}|||{|}‚~zvssttuvx{ƒ„ƒytommoruvtqnlkmoqqpooooqty€‡Œ“”Šƒ}{}€„††„zslfcdjs|ƒˆ‹‹‰…€{vvz‹”›žžœ™–“’”—›žœ–ƒ|yy|~~|xsnjggimsx|}ytoljjlpv}…Š‹ˆƒ|wsponmlnqx‹”œ¢¤¤¡œ–‰ƒ~zwvtrpnmmnopsw}„ŠŒ†}uqs{‡” œ”‹ƒ~{yvqkfa^]]_adgjkkkkkjjihhhknrvwwtrqrtvvusrruz†Œ’–—•ˆ‚|wspopswzzxuqpqtx|…ŠŽŽ‹‰Š‹ŽŠ‡…‚€}zwtrqqqqrrstwy|‚ƒƒ‚‚„‡ŠŽŒˆƒ|{|€„‰ŽŽŒ‰†……†ˆŒ”–•’Ž’—œŸ¡¢¢¢¡Ÿœ—’‰‡‡ˆŠ‹Š‡„‚‚‚~}|{xvssuy}ƒƒ€zske``bfkortttrqqtx~„‰‘“”–˜œ ¥¨¨¤œ’ˆ‚„††„‚€}{z|€‡Ž•™š™—•“‘ŽŽ’”•“‰ƒ~{xwvvutrpmkkklmnpsvxxwurqsw~†’•–“‰ƒ~||€†Œ‘ЉˆŠŒ“•–”‡€|}ˆ”–•‘Œ†}{|‚ƒƒ†Œ‘””’†~wqmkllkgc]ZZ\`eilnqty„ŠŽ‘‘ŽŒ‰…|ywwwxxurnkgecbceimqtttttvwwvsqprv}ƒ‰ŽŒ‰†……‡ˆ‰‰‡…ƒ€€€~}||}~}zvttw|†‰‹‹Š‡ƒ€ƒ…‡Š‘“‘‰}obZX[bksz~~|wqkeb`bgmtxwsmijq|ˆ‘”‰||‡Ž‹…}wssw{‚‚€}{xxxxyzyyyz|€„Š’’އxsrtwz{{zxvsqqrtvxxwvvutsponoqtwz}€}yuqnmmnqu|„ŠŽŒˆ„€€€}{z{~„‹“˜›˜“Œˆ‡‹‘˜ž ž™’‹†ƒ„‰˜Ÿ¤¥¤¡š˜——–•’Ž‹Š‹ŽŠ†}yvtssux|~ƒ†ˆŠ‹”˜š™”Žˆ‚~{xxxz|€‚‚‚|wspnoqtx|€}zyz|~~|yvtstvz€†‹Œˆ„€}{zzz|~}zvrmigiow„„}yy|‡‘’‹…€‚‡‹‹†‚~~‚†ŠŽ‹†€{z|€„‡†„~~€‚ƒ„„ƒ€‚ƒƒƒƒ„‡ŠŽŒˆƒ~{{{}}~~~~~~€ƒˆŒŽ‹‰ˆ‡‡ˆ‰‹Ž‘Œ‰††‡‰Šˆ„~ytojfb`_bgmswyywtsstvxz|}~~|yurpoprtxz|||||}‚„…„‚~yusty€‡Œ‹‡ƒ‚„‰‘‘މƒ}~‚†‰Š‰†‚}ywwz~€|uokjmqtvvtrqooprtwy{|}~€€|xvvwy{{{zxvspmlmorttrpnnnopqrsuwz|~€~}{{{}‚…†‡†ƒ€~}}~~€‚‚{wtuy~„‡‡†ƒ}{{}€‚~xsoorv|€‚‚€~~€€€€ƒ…‡ˆ†‚}xttvz}}{wrmhecceinruvvwz~ƒ‡‰‰ˆ…|xvw{‚‰’“‰‚{xy~„‰‹Š…~~…Š”˜œœš•Œ‰‰Œ’””””“‘‡{xwwxxwwx{€„‰ŒŠ…}|ƒ‰”—™™—’‹ƒ|wutuvwwxyyzzz{}€…Š•˜™–Š…ƒ…‰ŽŽ‹ŠŠŠ‹‹‡zvtvy}€‚ƒƒ~{xwy~‚‡Š‹‹‰†}{}‚ˆŒŽŽŒ‰ˆ†„‚}|{{||~|xwwz}„‡‹ŽŽŽ’”“Š…‚ƒ‡ŠŽŽŒˆƒ~yvsrqpponmlklpw†ŠŠˆ…„…‰”—™ššš˜•ˆysnlmpv{€~yuqprw‡ŽŽ‡~vrrw†‹Œ‰„€}~…ŠŽŠ‡ƒztnjggikmmlkigfeeegilpsvxz|~€ƒ…†…„‚€~}{xusrruy~‚„„ƒ~|{yvuw|…Ž–››™—–•”””–––”’Œ‹‰‡ƒ{yz}…ŠŽŠ„~xtrolhd`\ZXVVVXZ\]]]^bgov}ƒ‚€}{{|~€€|xtqoopqrpjbZTRU\fq{‚‡‡…€{ww{‚‹’——•“Ž‹ˆ†ƒ{upliiihfb``djs{ƒˆ‰‡yrnou‰‘”“‹‡………„‚}|}}|xsnkkllljiiknrv{„ˆ‹ŒŒŠˆ†‡Š“––’Œ†‚‚†Œ’•–”‘ŽŒ‹Œ“–—–“‹‰ˆ‰‹”šŸ¢¢ š˜™š››š˜•‘Œ‰†„„†‹“”‘Œˆ…„ƒ|ywtqmjilrx|}{xuuw|…‰ŠŠ‡ƒ~€„Š’‘‡{y{„ˆˆ‚zqjfgjqy‚Š’“‘ŽŠƒ|vsty€†ŠŠ‡‚}zyyyyxyz{}~~}{{{|ƒ„……‡‹‘–˜—’‹ƒ|wsqqu{ƒ‹‰„‚‚ƒ…‡‰Š‰ˆ†…‡ŠŽ‘”•”’‰„{wussux}„„|vqpsx†ŒŒ†€|z|ƒ…†…„ƒ‚‚‚€~|ywuuwz€…‹ŽŒ‰…‚~~€„ˆ‹Œ‰„|uomou|ƒ|tle`_aejoty}…‡ˆ‡…„…†‡†……†Š‘˜Ÿ–Ž…}wttuwxxwvuttsrqrsuwy{}€ƒ†ˆ‡ƒ~yvvx|€~{xvtrqppquxyxuqnmnnooppqrsttvvurmgb`agpzƒˆ‰…~vojghkqx~ƒ„‚|{|~‚€}xtqqrvxzyupjebbeiouy{{zyy{†˜ ¦§¥ž–…€~~€ƒ†ˆˆ‡…‚}|{{{{zxwxz„‰Š„{qhccis~†‰‡ƒ|}€…ŠŠ„}vrrv{†ŠŠ…€}{zywussuz‡ŒŽŽŽŽ’””‘Œ†ƒ…‹”›  œ•„{uqqtx|‚…‡‰‰‡„€|yvutux}€‚~{yy|ƒ†‡‡…|wsppswz{zwtsv{‚‰Ž‘’‘Љ‡†„€|wttx€ˆ‘Šƒ|xwz„ˆŠŠˆ„~|zxvuuvx{||zwronorw}ƒ††‚|uqqv~‰“šœ›”Švrsx~ƒ††………††††††‡ˆ‰Œ”˜˜–ˆƒ€†“˜šš—”‘‹‰‡„}}ƒ„ƒ~zwtssttsqnllnqtvvtsrrrqpnmnpty~„Š“””””””’„{tprw}‚…„|wrppt{ƒŠŽŽŒ‰‡…„‚€~}||{zwvtsqmjggjpw~ƒ†ˆ‡…ƒ‚‚„ˆŒŽŽ‹‰‰‹‘’‹…~xvw|‚ˆŒŒ‰‡‡‰“˜š™•ŒŠŠ‹Š‡ƒ}}€|unhffhjkkjhgd`ZURQSW[_bdffd`[XX\cjqw~…Š‹‡€zvtstux{~}zvuvy|}~~€ƒ†ˆ‡„€}{{{|‚‡ŠŒ‹ˆ„€€~}|{ywtstvy{yunigimquwvutttuvvutrrsux|‚~{ywwx{ƒˆŒ’“”•—˜˜—“މ…‚‚„†‰ŒŒ‹ŒŽ‘•˜—•’ŒŠ‡††‰‘Љ‹Ž’”•”’މ…‚‚„‡Š‹ˆ‚{vtv{……{vstzˆŽ‘’’ˆ„ƒ……‚}~‚‡ŒŽŽŒŠˆ‡‡‰Œ‘‘Žˆ‚}z{~‚†ŠŒŒ‹Š‰‰‰‰†‚}ywx}‚ˆ‹‹‰…xqlknsy~€€~|yxxz}€|yxz~ƒƒ‚‚…ˆ‹Œ‹‰†ƒ€}zxxz~„††††………‡‰Ž“˜›œ™•‹‡„~}|||||{zyyyyxwwy}†‰ŠŠŠ‰‰‰‰ŠŠ‹Œ‹‰…|ywvvwz}ƒƒ‚€€‚…‡ˆ‡„€}{zyyz{}€€‚„‡‰‹ŒŒŒŠ‡…„„………„‚€~}}}~€‚‚{wtrqqsvy}ƒƒ‚‚„‡‰ŠŠ‰†‚~zxy|‡’••”‘ŽŒŠ‰ˆ…{vqnmmmnoprtvwxz{~‚†‰‹‹Šˆ‡†‡ˆ‰ŠŒŒ‹‰ˆˆ‡‡ˆˆˆ‡†‚~{yz{|{xtoljjkmorttroligfgjnrvwvpib]\^ciorsrnida^^^`diouz||{yxwx{„ˆŒŒŠ‡ƒ€€‚‡Œ’––“Œ…€}}~}ysmgddfjpvz}~|zz|€„…ƒzy|ƒŒ“——”ކznaXUY`ioqnidbcgls{‚ˆŠŠ‡ƒ€~~ƒ……………‡Š‡xuuy€†Š‹‰„~xspqtw{|zxutux}…ˆ‰‹‘‘ŽŒ‹‘–œ ¢¡™”Š…€{vsrsv{†‰Š†{wuuwyzzzz{|||||||{{|}€ƒ†‰‹ŒŒŒ‹‰ˆˆŠŒ’“’‹†‚€~}|{{z{{|}|{ywvvwy{}~~~~€|xutvy}€‚‚€€‚„……„}}€„Š”––•‘ŽŠˆ‡‡ˆŠ‹‹‹Š‰Š‹Ž‘”––•’ŽŠ†‚~}~€ƒ„„ƒ€‚†ŠŽ‘’‘ŽŒ‹Š‰ˆ†ƒ€}{xtplheefhknoppqqstvwy}‚‰”—˜–“Œ‰‡ˆ‰Š‹‰…~|}€ƒ‡ˆˆ†‚~{z|€‡‘’‹„~ywx|€„…ƒ~xqkijou}…Œ‘•—˜—“Œ‰‰‰Š‹ŒŽˆ€ukc__cjrx}}{wuvz€†Œ‘‹…{y{}~~}{z{}€ƒ…†„{tnifdcbbdjry}}xsnkklnprtuwxy{~ƒˆŒŽŒˆƒ~|{|}}{wqkd_[\ahqx|}|yvtsrqnic__ep~‹”—•‘Š„€|{{~ƒƒyrmjklnoppppppolhdbbdhou{€ƒ……ƒ€„ˆŒŒˆƒ€}|zyxwwwxz{}}}||}€ƒ†ˆˆ†„ƒƒƒ„…‡‹’••”‘ŒŠˆ†‡‰ŒŽŽŒˆ…ƒ‚‚…‰‘’‹‡……†ˆ‰‰‡„}{yyy{|}~€ƒ„…ƒ~{xvtrqrsux}ƒˆ‹Š…yvw{ƒ†††…„ƒ‚‚ƒ…‡‰Š‰†ƒ€‚„…†††„‚ƒ…‡ˆ…~wojhjnt{……ƒ~zy}ƒŒ”šž›—’ŠŠ”› ¡œ“ˆ}usu|†˜žŸ˜‘‹…‚‚ƒ…‡‰Œ”–•Š„€~€‚†ˆ‰‡‚zrkjox‚Œ’•”’ŒŠŠŠ‹‹Š‡ƒ}xtpnllnprtux{€†ŠŽŠ‡ƒ‚†‹‘†~wtv{‚‡‹‹‡xpjggjpw~„ˆ‰‡„€}{{|}~€ƒ†ˆ‰‰†ƒ€„‡ˆ…€xpjhimrw{}€‚†‰ŒŽ‹‰‡†‡ŠŽ“–—–“‹ˆ††‰“—𙕋…€|yyz~ƒƒ~~‚…‡ˆˆ‰‰ˆ‡„~}{ywtsrtw{ƒ†‰‹‹Šˆ„€{vsrsw{~}xrlgc`___^\ZXVWY\`flqtuspmlmqv{~€~yqjedgmswxvspmlllnqv}…‹Œ…|tnjiijklllllmqv{~~{vrooqtvxz{{{ywtssvz}~{zyxyz}€„‡Š‹Œ‹Šˆ†‚~ywvy}‚……‚}wromoqux|‚…‡‡‡…ƒ„‹•Ÿ¥¨¦£žš–’Œ†€|z{~ƒ‰Ž“––”Ž’””’Œˆ…‚€€€‚…ˆŒŽŠ„zurpnmmpty~‚‚€~~~€ƒ„„„„„„„„„‚{wrooqu{€}zyz}€ƒ„ƒƒ‚‚€~‚…‡‡…€{wuvwyyyxwwxxxwwvvusrpprw}ƒˆ‹Ž’’Œ‡ƒ€€‚†ˆ‰ˆˆŠ‘”“‹‹“–—•“’’”—˜™™™˜–“Žˆƒ€€€€€‚‚{vsqqqqrsw{~}}‚„…„„†Š”•”‘Љ‡†……†‡‡…~{z|~€ƒ„†ˆˆ†ƒ€€„‡‰‰‡…ƒ|zyyyyxxz}€zvrqrsuxz}€€~}}‚†Š“””“Œ‰‡…†‰’—™˜•ŒŠ‰‰ŠŠ‹’”••”‘ˆ„€~{ywuuuvvvutsrqoljikqx‚‚yrlhhjpvz|{wqljjmrvyzyxvvvvvuuuvwz{|zwtqnnpsx~‚„…ƒ€|yy{ƒ…„€zslgb_\[\^`bdegjmqux{}~~|ytmf`ZVTUX]bgjmptz€ˆ—ž£¨ª«©¤ž˜’Љˆˆ‡„ytqpsvz}€€€€‚„†‡‡…ƒ‚€}ytomnquyz|}€ƒ…†…ƒ~}}{wsmgcbejry~~{xvw{‚………ƒ‚€€€€‚„†‡‡‡………‡‰‹Œ‹ˆ…‚€‚…‰’”––•’Ž‹‰‰‰Š‰†ƒ€ƒˆŒ’’Ї†„„ƒ‚ƒ„‡ŠŒ‹ˆƒ~{{|~~~„……ƒ€}zwtrpoqvz~~|{|„‰Ž“–˜™˜•’ŽŒ‰‡……‡‹’‘‹ƒyqkijox‚Œ”˜™—•“’‘‰…~{z{€…‰Š‡‚}wtrrtw{~~|yutuy}‚†‰‹ŒŒ‹ˆ†ƒ‚ƒ†‰ŒŽŽŽ‹ˆ…ƒƒ…ˆŒŽŠ…~€…‹’Š‚|xy~…ŠŒ‹†€zxxz}ƒ……ƒ€|vqmjijlnprsvy~‚†ˆŠŠ‰Š‹ŒŽŽŠ†ƒƒ‡Œ“”‘‡~}ƒ†‡†‚}wrpqty~‚……„‚‚„ˆ•›žž›™–“‹‰Š‹ŒŽŽŒŠ‡…„…‡‰Š‰…€{vsqrtvy|~€}{xtpliebabejpuyyxurqoonnmlkifdceinrttrqrsuwxwvtqmjhhimrw}ƒ‡‰Š‰‡„}woe\TQRV^elpqpmigghkmnmlmosy…‰ŒŒ‹‰‡…ƒƒ‚‚~{vromllmoqstsrplifddfkqw{}}|zz{~…ˆ‹ŒŽ‹†~~€‚„ƒ‚€€‚ˆ˜ž¡ —‘‹†~}~€€~~€ƒ‡‹“••”‘‰…ƒ€}ywvx|ƒƒxphb_^`dgikklmpu{‚‰“”’ŒŒŽ‘“”“‘ŽŽŒŠ‰…€ztpligedgmu~„ˆ‰ŠŒ’””“’Ž‹ˆ†…†‰‹‹‰†‚~|yvsqpqrtvwy{}~~|ywvvy|‚…‡‰ŠŠ‰ˆ†……‡ŠŽ’•—˜ššš™—•’ŒŒŽ“•––•”‘ˆ„‚ƒ†‰ŒŽ’•—™˜”І|vpjfefgfeca`adhmqttrollnrvxyyyyz}€„‰‘’Œ‡|zz~„Š•———–•”“’ŒŒ‹Šˆ…~{zz|~~}{yz|€…ŠŽŽ‹‡ƒ€€‚†‹ŽŽ‹‰‰‹’““““”•––”Š…€‚†‹•˜™˜•‘Š‰ŠŒ’”••”‘‰†…†‰‹‹†vnihknppmieccdfhjlopqqpppqrux|†‰ˆ„~vnighjmqsuutsssvxzzwsnieb`afmv„†„zvttvwwvsojea_agow|}wnc[WX^eloolifeeipy„Œ‰zutuy|€„‡ŠŽŠ„~xspmkjknsz€ƒ‚~yutuy„ˆ‰‡zqjggjou|‚ˆ‹ŒŠ†}zz}‚ˆŽŽ‰ysqsx}„……ƒ‚‚ƒ„„…‡‰Œ‘“•˜›Ÿ¤¦¦£œ•‡…†‹’—™–‚vmijntz|zunhfjtˆŒ‡€ytrruz€…ˆˆ†„ƒƒ„……„~{ywwwy{||}ƒ‡Š‹‰†ƒ~}zxvspmklou{€†‹ŽŽ‰‚zrmkklnrv{€ƒ……„„ƒƒ‚ƒ…ˆ‹ŽŒŠŠŠ‰‰‡†……†‡‡ˆ‡„€}zz}ƒ‰Ž‹‰‡ˆ‰Š‹Š‡ƒ~{z{„ˆŒŽ‹‰‡‡†……„„…†‰Œ•™››™–“‘‘‘‘І„‚‚ƒ„‡‰ŒŒ‹ˆ†ƒ~}}}}}~€„‰Œ‹†}zyxxwvusqnkkou}„‡‡…€{xwwz}€‚ƒ„…†ˆ‰‰ˆ†…†Š’𢧍¤œ’Š„ƒ„…„ƒ€}{{}ƒ‹“šŸ¡ ž›š™š›››™˜—˜™›œš—“ŽŠ†„‚‚‚„†ˆ‰‰‡ƒ{wtrrrsuvy{|{xrlfbaabcddb`]ZYZ\`cdc`[VSRSVY\_aaaacfjortrmga^^agouyzxutuwz{zwrmhghlqvxxvtuy†‘’‘ŽŠ†‚‚‚€{tolkmprtwy|}}zwutux|‚}wqmklortttsqnljhginty}~}yvsrsuw{~ƒˆŽ“—˜˜–’Ž‹‰Š‘’‘މ‡‡‹“’‹ˆ‡‡‡‡‡…ƒ„‡‰Šˆ‡†ˆ‹ŽŒ‡‚~‚ƒ„†‡ˆˆ…}zxxz}€„…ƒ~wpkls}‡“‘ˆ……Š–šš—’‰‡†„~zxvvvwx|€†Œ‘“’†zxy}„…„}zyz~‚„ƒytsux{{zwvuwy}…‰ŒŒŒ‹‹Šˆ‡……†ˆ‹Ž‘’‘މ…ƒƒ…†‡†ƒ~ytqooqtvxxxxxy{~‚†Š‹‰‰Š’’Žˆ|z{~ƒˆ‹‹ˆ„€‚†‡†‚|wuw~†Ž’’‹†‚}||}}}|{{}‚ƒƒ„…‡‰‹Ž’•—™˜•“‘‘’’‰†ƒƒƒ…‡‰‹ŒŒŠˆ…‚‚‚ƒ‚€|yxz~ƒ‡Š‹Š‰‡…}zy|€„‡‡‡†ˆŒ‘—œ ¢¤¥¦§¨§¦¥¦§¨§¤Ÿ™•““”•”‘‰…}zyy{~‚„…„‚~|{{zywsokhffhjmnmje`\XVVXZ]_^[WSRTY_flqvy||zwsnhda`cipx}{wtqonopqrrrqomlmoruvvsokiilpuz~‚€}xtpmjgeccdfgfdcdhnv|ƒƒ}xtqqty€…ˆ‰ˆ‡………„ƒ€~{zyyyzzzyxurpprv{~~}{ywvvy~…ŠŒŠ…{z{}}zwspnmmprsrokgginu}†’“‹„~|}‚ˆ‰…~|zzz|‚…‡‡ˆˆˆŠ”—˜˜–“ŠˆˆŠŒ‘‘Š„~zyz{}~}{xtqpru{€†‰Š‰‡†‡‰Œ‘Œ†€ztqpt{„‹’‘‘‘Ž’–šžš–‹†ƒ‚…‰ŒŽŽ‹‡ƒ€ƒ†‡‡ƒ|tjb^]_chknprux{~€€|ywwx{ƒ‡‹Ž‘’’‘‘‘Œˆ…ƒƒ…ˆ‹ŽŽ‘“•”‘Œ†€zvsrsvz}€€€€€€}zxx{€†ŠŽŽŒ’’“”–˜š™—“މƒ}xtrtx|€‚ƒƒƒ„†ˆ‰Š‹‹ŒŒŒŽ‘“–™œœ›™–”•—šž›•Œxrpqtwz|||{{{{{}‚‚‚‚ƒ…‡ˆŠ‹Ž’—›œœ›ššœž  žœš˜—–”““”–˜™—’‹ƒzslfb`aeimqsux{~|vnf^YUSSTVWWUQLIIKMNLGA=<>CJS[afikmpu{…‡…‚~zvsqqqstsqnllnquy}€‚ƒ‚€}zyyz}ƒ†ˆ‰ˆ…‚}wqlhgjpw„†„xqkhimrx|}yslebchpxyrkgeegkqy€ƒ‚|skgglsz†‰‹Šˆ„€„Š“–˜˜—“އwqmlnqtwxyyxwvvvx|†‹ŽŒ‹ŒŽ’–› ¡Ÿ™ˆ€zwwy}…ˆ‰‰‰ŠŒŽŽŒ‰…„…ˆ“˜œžžœš—••–——•‘Œ†€yqkfeglrvy{{{{{zyxwxz}†Œ‘•˜˜–‘Œ‡…†‰ŒŒˆƒ}yuqmkkmqvz{zwvvx{~~‚‡“—™˜”Žˆ|ywwy{}}{xwwy{}{xrlfccgmu|€€}xsrsx~†“˜š™–“ŽŽ‹ˆ†…‡‰“••“‘ދЋޓ™ Ÿš’ˆ~vstzƒ‹‘’‡~skecekqwz{{zyyz|ƒ‡‹ŽŽŠ†„…ˆŒ’‘ŽŒŒ‘‘ŽŽ“•——˜›Ÿ£§©ª©¦£Ÿš•‹‡ƒ€~‚…‰Š‰‡„„…ˆŒŽŽŒ‹Š‰‰‰‹Ž’–š››˜•’Œ‰…€}|~‚†‡…‚~||~ƒ………„ƒ€~|zxxz{||zvqmihghikmnoonlhd^ZXZ^dhigb^\[\^`dhmqrqnjgc`\XXZais{€ƒ„‚ztpmkigdb`_`a`_^]_aehkllkigfgjqz…™¡¥¥¢žš˜˜™œž Ÿœ–Ž…|xw{‚ˆŒ‹‡€xsqqsuuuutttuw}…Œ’“Šƒ~{xvqlhgintxz{{zxurpqu{€}xttw~…ŠŒ‹ˆ…„…†‡‡…‚|vpkhinv‡ŒŽ‹‡ƒ€~}|{xurppsx€†ŠŠ†€{xxyyyxwwxyzz{}‡Ž”™š—’‹…€~‚…ˆŠ‰‡„~zvrokifdcbcfjoty|€ƒ‡ŠŒ‹Š‰ŠŽ’–˜˜–’Œ†€{xwwy{ƒ…†ƒzxz€ˆ‘™Ÿ¡¢ œ–‰„‚€€€‚…‰Œ‹‰†{tnkjlortwxxwvtssuwxwusrruz€…ˆŠ‹‹•šŸ¤§©ª¨£›“‹…ƒƒ…‡ˆˆ‡„€{wtsuy~ƒ†ˆ‡…€…–ž¡Ÿ›—••——–“Š…€~}}~€‚‚ƒ„‡‰Š‰†„€‚„†‡‡‡†„‚}||ƒ†ŠŒŽ‘’““•—™š™•‹†„ƒ„‡‹‘–𙕄|xx|‡‹Ž‹‰‰‹—œŸŸœ—’Ž“–šœœ›™——™ž¤¨©¥ž•Œ‡„„…‡‰ŠŠ‰ˆ†„„„…„‚ysnjhggfc_XRMKMRX\]ZSKC=:9:;=?ADGKNPRSTUVX[`fkopqqsv|…‡‡‡‡‡‡ˆˆ‰‰ˆ…|yvvvxz|‚ƒ‚€~|}€ƒ……‚€~}|}|{ywrmheegloqponlje]TKGIOXbmv…ˆ†|yx{‚ƒ‚|zyxwutssuwz}~~~~€€€}zvsqrty€‡’”•”““’‘‘‘“•——”ˆ‚~|||}~€€~„†‡†…ƒ|xvuw{~~{xvx}ƒ‰Œ‹‡‚~}€‡—›š•Ž…{{~‚…‡†…„…†ˆ‰Š‰‰‡„~wqnou}†Œ‰†ƒ‚ƒ„ƒ‚}||}€‚„……ƒƒƒ…‡ˆ‡„€€ƒˆ’“’‘Šˆˆ‰Œ‡|z|€„‡†ƒ{xvvx{€…‡‡„€‚‡‹Œ‰ƒzsnkkkklnqux{|}…‰‹Œ‹‰†„~}‚†ˆ†‚}xvw|‚ˆŽ‘‘‹ˆˆ‹’™ž Ÿ›š—”Žˆ„‚„ˆ‘”——–‘‹…‚„‰‘—››™–“‘ŽŒ‹ˆ…ƒ‚…‰Ž’•˜š›™•‰…ƒ„†ˆŠ‹ŒŽ‘‘’‘‰„€„ˆ‹‘‘Ž“˜œœ—Ž„{ussux}„БЅ€}{yyyz|~€€~||}ƒ‡‰‰‡ƒ}wspnnmmkgaYPHA>@EMV_glnnkf`\YY[_acb`[VPMLPWakswxtohcbdkt}„ˆ‡ƒ}vojffgjmopqrtuuspljjmptvwxxwvtssvzƒ„ƒ|xwwwy{~„‡‰‹‹‹‹Š‰ˆ†…„ƒƒ‚€~|zz|€„††‚~yusqoljilrx}~{xvvvxz~„…†‡‡ˆ‰‰†}xvuwz~ƒ‚€|zyz~‚…†ˆ‰‹Œ‹Š‡„‚€~}}ƒ„ƒ‚ƒ…‡‰Š’““‰†„ƒƒ‚‚€~|yvtssuvwvsqoorw}‚†‡†ƒ|{{}‚‚€|xutv{€…†‡†††‡‰‹Ž‘–›Ÿ žš—•””•”“’‰†„„‡Œ’—𙕉††‰•š›™“‹…€ƒ‡‰‰†€ytpoprvy{||zxwwz|~|{yxwvuvwy{}~}}}ƒƒ‚€~||~…ŠŽ’””’މ‡‡‰ŽŒŠˆ‡‡†‡ˆ‹ŽŒ‰†…„„„„ƒ‚‚‚‚}{yyyyyxxz}‚‡ŠŒŒŒŒŽ’““”“’‘‹ˆ…ƒ€€ƒ…‡ˆ‰Š‹‹Š‡…„†‹”œ¢¦§§¥¢Ÿš—•–—˜—”‹ˆ†……†‡‰ŒŽ‘’”—™›œ›™—•”“’ŽŒŽ’˜  ˜“‰†…‡‹’“‘ˆƒ|tleabfknpomjhe`ZTOMMMMMMNRW^dhjklmpswz{zvpib\WUVX[^_``aa`^[XWWZ^chnrvyzyyyywuplhffimrx~‚†ˆŠŽŽŠ„~ywx{€…ˆˆ…}{}…‡…tg[QKILS]gnrqnkhhhhhhikmonkhghkorsrpnmnqw}ƒˆ‹‹‰…‚ƒ†‹‘‘Ї††ˆŠŽ‹‡ƒ€€ƒ††…}zz}ƒˆŠŠ‰ˆ‰‹Ž‘‘‘Ž’–œŸ žš•Š…€€ƒ„ƒ}xsoljkmquyzzyxxy|€…ŠŽ’•—˜™ššš—”І„„„ƒ‚|xvuvy}†ˆˆ†ƒ€}{zxxxy{‚…‡‰ŠŠˆ†‚~zwwx{ƒ‡‰‰ˆ†…ƒ‚€~|ytnjjlry‚ƒ‚ƒ‡Œ“˜œœ˜”‹‰†„‚€~{vpjebcglqtvwxyz{zzyyyyz{}~}zvrqsx~„ˆ‹Œ‹ˆ…€}{zz{|}~€ƒ„†‰Œ‘–›ž¡£¤¤£ ™——™œŸ¡ ›”‹ztqoorv|ƒˆ‹‹‰‡††‡ˆ‰ŠŠŠŠ‰‡…ƒ‚ƒ…ˆ‹”˜œŸ  Ÿžž £¥§©©©¦¢ž™•’’•—˜˜•‰ƒ|{|†Ž•š›™–”“•™¢¦§¦ ˜Ž‡„…‰Ž‹ˆ†ƒ~xqjea``bflrttplhhikmnnnlid_ZWX[^__\YURONPSW[^_]ZWUUUX\_bcca_^^_`abcefhkmnonmlklnpqrsuxz{yupkiiknrw}ƒ‡‰‡‚{uplkklmnoprtx|€‚‚zupnmnonnnnnnmkjjlosuutqpquy~ƒƒƒ‚ƒ†Œ’—˜”Œ‚zvuwz|„†ˆˆ…‚~{yxxz~…Œ’””’ŽŒŠ‡‚}yy{~€€ƒ†ˆ‰‰Š‹ŒŒ‰‡„‚€}zvuvz‰Ž‘ˆƒ}xutw}ƒˆ‰†{xy|ˆŽ“˜š™–‘Œˆ‡††ƒ|yy{~ƒ†‰‰ˆ„}unlov€‰Ž‰ƒ}ywy~„ˆ‰‡ƒ|zzz{}€‚ƒƒ‚ƒ†ˆŠ‹“—˜—•‘ŽŽŒ‹Š‰ˆ†‚~{xx{€†Œ‘“”’Ž‹‰ˆˆ‰Š‹Š‡ƒ€~~€‚~ytolkms}ˆ‘˜›š—“ŽŽˆ„{yxxz|~€€~}|ƒ‰•˜š›œœœš—“Ž‹‡‚|xwxz}}|{zz}‚ˆŽ“–—”އyvvz†Œ‘‡€ytqpqtz€‡‘“”““’’“”•˜šœœš˜•‘Љ‰“𠤥¤¡ž›˜•“Ž’”•”“““•—šœž›™—•””“’‹†€zupnllkigc^XTQPSX^cda[URSW\bfgfda^_bhotwwsojgdcdgkoqqmiecdfjmoqqokgb^]]_adgkpuz~€€~zwrnjfdbaabdglqvz}}}{xurpooquy|~~|zwsqonnoqsuutsrpomkjklnoppnlkklmoponmlllnprvy{{{{|‚ƒƒ€}zy{~€‚…‰‘Œ‡ƒ~ƒ‰‘—››˜’Œ‡…†‰‘”•“‘‘“’‰‚{vtuxz|||zxwwz~ƒˆŠ‰‡…„…ˆ‰‰†‚}~€„ˆ‹Ž’”•–—™ £¤¢ž™”‘ŽŒŠ‰ˆˆˆ‰‰Š‹‡€yutv{‡Š‹Š‡…ƒ‚€~}||~~|zxx{…‹ŽŠ…‚‚„‡ŠŒŒŠ‡ƒ}|}‚„…„}yvsrstuutqonoprtttttuvy|€€|zz|†Š‹‰…yvw{‡Œ‘‘‘ŽŽ’””“‘’•šž¡ ›’‡{rlkoty~€€€€ƒ…†‡‡ˆŠ‹ŽŒŠŠ‹’““‘‰„}}ˆ˜ž¡¢¢ ž›™˜——˜————˜šœž ¢£¡˜’Šˆ†ƒ€„‡ŠŠˆ„€{wuuw{„‡ˆ‡…ƒƒ†‰‹‹‰…}zxvtttvy|~~~}||}‚~{vsrrtvy|€|wqjc^[YY[_chllkgc_]]^`cfikmnoqsuvurnjfefhkmnnlkjknrw|}vmcZTRTZahmprsuuvvvvurmf_YVWZ]aeiloqrtw|‚‡‹Ž‘’“•——•‘Œ†€|zxwurniea_^^`dgkmoqsvy|}}|zyxxz|~€|yy|ˆŒ‹‡ƒ€€‚‚ƒƒƒ‚€€‚…ˆ‹ŒŒ‹ŠŠ‹ŒŒŠ‡„€„ˆŠ‹‰…€{xwy{‚„„„‚€€€~}|}€ƒˆ“””“‘ŽŠ†ƒ€‚„ˆ‹Œ‰…}{{}€‚„†‡ˆ‰Š‰‰‰‹Ž‘”—˜ššš™•‰„€~~„†‡†‚}xuuy}‚„„‚‚…‰Ž‰‡…„„„†ˆŠ‹Š‡„€}{yvsrtz‰Œ‡}z{~ƒˆŽŒŠ‰‡…ƒ}|}ƒƒ~}||~ƒ…‡ˆ†ƒ~zxxz|}}}}}}|zxwx{~‚†ˆ‰ˆ‡†…„…†‰ŒŽ‘“•–—™š››™—”‘Ž‘‘‘‘‘’’’Šˆ‡ˆ‹’•–•“І„‚‚ƒ„„………†‡ˆŠ‹ŒŠ‡…„„†ŠŽ“˜œ ¢¥§ª­¯°¯®­«¨¤ž˜’ŽŒŽ‘ˆƒ}xusrrqoljjlqw|~{tja[Y\afjjga[UQPPSW\aegggikosvwwwvvvvusqnljhgghlryˆŠ†€xphc_^^__`acehkmnonljfca`__^]]^bflprqolifegkry~~{vqnmkjhginsvuqmmqw}„………‚{rjfhmtwvqmjjkmopqqpmighlrx|~~~‚ƒƒƒ|zxy|€„†…‚}ywwx{„‰Ž’””‘ˆƒ~{z{~‚…‡‡„~}|{zwtrqrux|€‚ƒ„……„‚‚…‰‘’’’’“”—™›œœ›—’Љ‰‹‹Š‡ƒ|{|ƒˆ‹ŒŒŠ‰ˆ‰‰Š‹Ž‘ŽŒŒŒ‰…‚€€„ˆ‹ŒŠ‡„ƒ„ˆ’–—•’”˜›œš•†€}~†‰Š‡ƒ}vokjnu}ƒ…„€|zyz|~~|zz|€…ˆŠ‰†‚}|{||}~~~}{wspnorw|€ƒƒ‚€}||}€ƒ…†…„ƒƒƒ„………„‚€~|zyyz{}‚…ˆ‰‡„‚‡‹ŽŽŒŠ‰Š‘•˜˜•‘ŽŒ“—™œŸ¢¤¥¥¤££¢¡ Ÿ››››››™–’ŽŽ’”•––•”’Ž‘’‘’”•–•“’“”–˜˜——–•••—šžŸžœ˜”’‘Œ‡ƒƒ‡‹Œ†~ulfdeiouxywsnhb\XUTUX\`dffc`^^acda[TOMOT[binqqomkjkmpsttrnh`ZWVZ^cfgfecba_^^`bcdddcehmruvtpke`\[^bhmoonllmopomkgc]XUVZafihecdhnrtsqpppoljikouzƒ…†…€{vtv|„ƒxqmjlpx€ˆŒ‹ˆ†‡‹‘–šœœš˜•’ŽŽ‘’’‘Ž‹‰ˆ‡ˆ‹Ž“˜›š–Ž…}ywy}€ƒ……ƒzvttvxywurpooooopqpommnrx}ƒ‡‰‰‡ƒ~yuvz€ˆ”˜˜–’ŽŠˆˆˆ‡„xsonpsw|€…‰Œ‘“”“‰†…„…‡ŠŽ‘”–˜™™—’‹ƒ|xx{~€}|}€„ˆŠŠ‰‡…ƒ{z|‚Š‘”’Іƒƒƒ†Š‘—š™“Œ†…‰‘™Ÿ£¤¢–ˆƒ€ƒ‡‹’“’Œ‹Š‰‡‚}vpkijmszƒ„‚~zwttvxz|~~‚ƒ…†‰Ž“™ž¡¢Ÿ™‘‰‚}|}‚†Š‹‰…}zyz{}~}zvpmlov~†‹‹‡‚}{|€ˆ‘˜œ›•ŠˆŠ‘”—™šš˜•‘ŽŽ“•–••—™œžŸ  ¡¢££¢ žœœž ¢£¢ œ—’Œ‡ƒƒ†‰‹Œ‹‹‰‡ƒzxwxz}}yupnnpsvwwvutromjjkmprsrpmid_[Z[_dimonkfa]\]bgmqtuutsrsuwxxxwwxyywsnhc^YUSSTWZ\^`bcc`\WSPNKHEDFKPVZ^bfilnpru{yrlhghknsy~‚€~|}€‚ƒ€{uplkkmpv|‚ˆŒŽŽ‹ˆ†††‡ˆ‡…‚}|}~†‹‘•——–“‘ŽŒŠ‰ˆ‡†………†ˆ‰Š‰ˆˆˆˆ‡…ƒ|zxvvvx{}‚„‡‡†‚~{yyz|~‚†ŠŒ‹‡ƒ‚ƒ…‡ˆ‡…„„„„ƒ‚‚~{upmmoruwz~„‰ŒŽŒ‰‡ƒzwvvxz{{{{{|~€ƒ…‡‡…ƒ}|~†‹‰„…‹’™Ÿ¢ ›•‘‘•šžž›–Œ‰ˆ†………†…ƒ{wuwz„‰ŽŠ…€„†‡ˆˆ‰‹ŒŒ‰ƒ}xuuwz}€„ˆŒ‹‰‰‹Ž‘’’‘ŽŽŽŽ‘ŽŠ†„…‡ŠŽŠ†ƒ€ƒ„……„‚}}}~€‚„…†ˆŠŽ‘‹‡„…ˆ’—™˜”ކ€}}‚‡ŒŽŠ„{tompu}…‹‹†€{y}…˜Ÿ£¢ œ˜–•••”’‹‡„ƒ…‰Ž’””“‘ŽŽŒ‹ŠŠ‹“˜š›š™™™šš™—•“‘ŽŠ†„ƒ…‡‰‰ˆ‡‡ˆˆ†ƒzvsrqonmosx}€‚ƒ‚‚}zvrolifcbcfimoppqtx{}~}}{zxusrtvvurniea]XRNMORVXYYYZ\_abegiiigfeeedb`_adhjkjijkkkhdaacgkmoprttrniggilnmkjjkmnlkiijkkjijlorttsrrsvy|€…ŠŽ’“’Š„|{{||}}~}{xsollmpsttsrrtw{€„‡‰‹Œ‹‰†‚~{yxz…Š‹ˆ‡ˆ‰‹‹Š‰‡„~|}‰‘–—“ˆƒ€~}~€ƒ††ƒzxxyzyxwwvtromlnqtwz~…‡‡†……†ˆŒ“–˜™˜———™›žš—”‘ŒŒŽŽŒŒ’•™œžŸžœ—“ŽŽŽŒ‡€ytrrtvy|‚…ˆŠ‰ˆ„ƒ†‡‡…ƒƒ„†‰Ž’•˜˜—•“’“•—–”‹…}|}€†Œ‘’‘‰…„„…‡ˆˆ‡†…ƒ‚‚ƒ„……ƒ{vrqsw{}}zvrqsvz|{ywvxz|||{ywusrsv|ƒ‹’–—–“Œ‹ŒŽ“–˜™—”‹ŠŒŽ‘”–——•’މ†„„†‹”——•’ŒŒŽ‘”˜š››š˜–••–˜›ž¡£¥¥¥£Ÿ›–’ŽŒŒŽŽŒ‰ˆ‡ˆ‰‰‰‰ˆ‰‰‰ˆ†ƒ€}yuqmlmnnmhc^ZZ[]__```_]ZWTRRSV[bjsz}}{wsqonnlie_ZVTTVY]`ceffda^\[[]^___^^^_aehloqsttsqonorwz|{xuroliffinswxupliggeca_]\ZVSSW_irurkd_`dhjjhfeedc`_aekprqpooqsvx|‚‰•–•‘Š‰ŠŽ’—›œš–‘ŽŒŒŒŒŠ‰Š‹ŒŽ‹…~yusstuuuutsrpppqsv|‚‡‹‹‰…ƒ‡‹‘“•——–“Ž’”•“މ…ƒ‚ƒ„……†‡‡‡†……†ˆŠŽ’–›Ÿ¢¤¤£¢¡Ÿœ™•‘ŽŒ‹‰†‚}|zxusrtwz}€‚„……†‡‰’’’“–šœ›—’ŒŒŒŠˆ…„„„………†ˆŠ‹•œ¢¦§¥ š“Œ†‚€…Œ‘•–”Œ‰†„}ywvwxxwwvwxxwtqopsvz|||zxvuttux{~€‚‚}{|~ƒ‰•™š™—”’‘Ž‹‡‚}zxyyzzyxvspmjijmqv|‡Œ•™›œ›™—•“‘‹‰‡…ƒƒ„‡ŠŒŽ‘’“”•–—˜™› ¢£¢ š™šœžžš˜–•“Љ‹Ž’““‘Ї„ƒ„†‰ŒŽ“–šŸŸ™”‹‡…„„…†‡†…‚~zvtsstuwxzzzxtoidbbdghhea^[ZYZZYXVUTTUWZ\^adimpqolifdba_^^_^]ZVSRUZ`glnnkhedehntz~€€~{xuqnjgda``behjjiijigb]YY\`dggfeedcbceimonliikptx{}~}zvrppswz{{yxusqqsx}‚„„‚}{z{}…‡‡…‚|zxusrsux{}€€€€€ƒ…‡‰‹ŒŒ‹Š‰ˆ†„ƒ‚ƒ„†‡†„‚€~€ƒ†ŠŒŽŽ‰„€~~‚†ŠŽŽŠ…||~€~|{zyyz}…ŠŒŒŠˆˆ‰‹“•˜™™˜”Œ‰†„ƒ‚‚€~}|}}||}€„‰‘’”–—–”‘ˆƒ€}}„ˆŠ‰†‚~‚†‰‹Œ‹Š‰‡†…„ƒ‚‚‚ƒ‚}||„‰”——–”‘‹Šˆ†„‚‚„‡‹Ž‘‹Šˆ†„ƒ€~|{{}…ˆ‹‹‡‚~{z|~€€~zxwz…ŠŒŒ‰„~yussv{ƒ†††…„„„†‡‡†‚}wsrsx|ƒƒ‚~zwuuwz|}}||}€‚…†‡ˆŠŒŽŽŒ‰…ƒƒ†‰ŒŒŠ‡……‡‹”•”ŒŠŠŒ’”•”’”—›œœ›™˜˜š›œžžœš™—––—˜š››™•ˆƒ‚…‰’’‘Œ‹‹‹‹‹‰ˆ‡‡‡†…‚|yxxz~‚†‰‰ˆ„€{xusrrqpomjhgfghhgea\XUUVY\^__^]\[[Z[]`dhkmliea^]_cgkmnliea__aeimnnmmmnqtwz||{yvtrqqqrsuxzzxsnjjlnomiggilnliebbdghijkmmmkjikmprsssssttvx{}€€ƒ„ƒ~{z{~|yvuvy|}~~}|yvsqopruzƒ„‚{xxz~ƒ‡‹ŒŒ‰†‚€€ƒ………ƒ‚‚ƒ…‡ŠŒŒŠ‡…„…‰•™œœ›™–’‹ˆ…€|ywx{}|zxxz|ƒ„„‚€~‚‡“•”‘Œ†{wtstw{€„‡‡†„‚‚ƒ„„ƒ‚€€ƒˆŒ“–—˜—”‹ˆˆŠŽ’—™››™—•’ŒŠˆˆ‡†„~}}~ƒ†‡ˆ‰ˆ‡†††ˆŠŒŒ‹‹‹Œ‘’’’‘Ž‹ˆ†…†‡‰‰‰‰‰Š’“’‘ŽŒŒŒŒ‹ˆ‡‡‰‹ŽŽ‹‡‚~||}~~|yvtstvxz|~€€|ywx{„ˆ‰‰‡…ƒ{xuvx|€~}}€€€‚ƒ„†‡ˆˆ‡†…†ˆŠŒŒŒŒŽŽŒŠˆ‡ˆ‹Ž‘’’‘ŽŒŠ‰‰ŠŒ“–™ ¢¢¡ž›™˜š¢§ª­­­­¬¬«¨¤ž˜’ˆƒ~yutvz~€|xutvy{||ytld\UQPSX^dikkjfcaacfiklmmoquy}€‚ƒ‚{uniffhjlmlkkloqrssrpmida`adhmruxywuromljiiijkkjfb_]_cinrtsqnlkklmlkihhihhghjlmkf`\[\]]YTPORW[\[Z[^cgijihijnruxzzyyz|~~~}}‚‚€}zywvtrqsw†‘“”“Œˆ…„†Š“–˜˜–’ŽŠ‡‡‰‹‹ˆ…ƒ‚‚‚}yvtstwy{|{yxxz~ƒˆŒŠ†„ƒ…Š“•“‹‡†‡‰Œ‘“’‘Œ‰†…„……„„ƒ‚ƒ‡•œ¡¢ž˜‘Š…‚~}~€‚‚}|}‚ˆŽ•šž›—”‘‰„~ywx{ˆŒŒŽ’•˜šœœœ›ššš™—”‘Ž‹‰‡„€|wspnmlmnpqrstuvwyz|~€‚ƒ„„ƒ‚€~|{{}€ƒ………„„„„ƒ}zww{€‡Ž”——”‰ƒ~}~†Š‹Š‡„€€€€„‡‰‰†zsmheegmu}…‹Ž‹‡…„…‡Š“—šžžžžŸ¢¥§©ªª«¬«¨¤Ÿ›™˜—–“Œ•›¡¥§¥¢œ—’ŽŒŒŽŽŒŽŽ‹‡|zyz}€„‡‰Š‰†„„…‰‘””“Œ‡‚}{zz{|||zyvspmlnqtvwvtrpmkheb`^]\ZXVVVWXYYYZ[^adghgea^ZWTQONNQV\addb`]\ZXUSRSVZ]^^]]`dkrx}€€~ztmga\YWVVWY\`dhlmljgeddegjmqttqkea`bfjmoppppprv|‚††‚|urquz€†ŠŒŽŽŽ‘‘ŽŒ‰‡…„„„„ƒ‚‚‚‚ƒ„…††††…„„„„…‡‹’’‘Ž‹‰ˆ‰‹ŽŽŒˆƒ~zy{~ƒƒ‚€~~~„‡‰‹Š‰‰‰ŠŒ‹‰‡††ˆŒ•˜šš˜•‘Šƒ|xw{ƒ‹’–—”Œ‰ˆ‰‹“–—•‘Œ†zwwz~‚„……†ˆŒ’’Žˆ€xqlkmqw~ƒ†‰ŠŠˆ‡…ƒƒ…‡‰‹ŒŒ‘“•–———–•““’“”“‘ˆƒ}}~€‚ƒ„…‡‰‹ŽŽ‹‹ŒŒŒ‹‰†‚{xvwz~‚„ƒ~||}‚…‰ŒŒ‰†„…‡Š’”–•’‹‰Š“”“‘ŽŽŽŽ‹‰…‚€ƒ……ƒ~yuttuwxyyz|}~ƒ‡Œ’““’‘ŽŽ‹‰ˆˆŠŽŽ‹‡ƒ‚„†‡ŠŒ‘‘ŽŒŒŽ‘“•˜› ¤§©©¨§¥¥¥¤¤¡—’ŽŽŽ‹Š‰ŠŠ‰†ƒ€}zuqnmmnnnmmnoqrrrqpomljhfca^[XVVX\ckquvutsrrqolhda_^_acfghhjnsy€…‰‰†€ypieccddc`]\\^bfiklnoponkfb]YVTRRRQQPONNOQTW[aglnmhc^\ZZYWUUVVVVVZakv|}ztommprtuvutqomnrx}€€€ƒ†‰Š‰ˆˆˆ‰Š‹ŒŽ’”–˜™™—•‘‰†…„………ƒ€…Š‘—›œ™•’“–˜—”Ї†ˆŠŒŒ‰†‚~€‚„…ƒztqopruvuuvy}‚………„…‡ˆ†‚}ywz~ƒ‡Š‹ŽŽŽ‹ŠŠŠŠ‰‡††ˆŒ’’‹ˆ‡Š–¢¤¤Ÿ—Ž…~†‰‰…}wrrv|ƒŠ”•’Œ†€~~…‰‹Œ‹Šˆ‡†……†ˆŠŒŒŠˆ†……†ˆ‹’’’Œ‹‹Œ‘““““’’“•––•”““’‘ŒŠ‰‰‰‡„yurponmkifddfjqx}€€~{z|€†Œ‘””‘‹„}wtstuvuutvy|€€€€‚ƒ„††…ƒ~yvttuwxz}„†‡‡††‡‰‹‘““’“•—˜˜˜˜™™›¢¨­°±¯¬©§¥£¡ŸŸŸ  ž™“Ž‹‰ˆ‰ŠŒ’•—˜——––•”‘ŽŽ‘•™›œœš—”Œ‡}xuromjhgiknqrsstsrpmjgffgiklmnmljjlorsspkgda^[ZZ]`cefgilosvwwtohb]ZXWVTRPONNNMMLLMNQUZ_dhjjifc_\[[^bfikjheb_\[]`fkorssrqpnlllmljgcbcfjnrvz}€€}zwvwyzxsollnrvz~„Š‘•–“ŒŒ’““‘Ї……†Š—¡¢ œ–‘Ž‹ŠŠŠŠŠˆ†ƒ€~}}}~~€‚…ˆ‰ˆ…}{|ƒ‡ŠŒŒŠˆ‡‡ˆŠŒŽ‹‰†…†ˆŠŒŒŠˆ…}zyz}‚†‡†‚}yvvvxz|{wsruy„‰ŒŽŽŽŒ‹ŠŠˆ…€zurrtwz}ƒƒ‚~ƒ…†‡‡‡‡†…ƒ‚€€€€€€€ƒ…‡‰‹Ž‘’““’ŽŒ‹Šˆ†……†ˆ‹‘““‘ŽŠ†ƒƒ…Š”–•’‡}{|„‰ŽŽŒŠ‰ˆ‡†…„…‡ŠŒŒ‹‰ˆˆŠ‹’””’‹Š‹ŒŒŒ‹Š‰ˆ‡†………†††…„ƒ‚ƒ„†‡‡…ƒ~}}}}}|{zxwwz†‹ŽŽŒŠˆ‡…ƒƒ„†ŠŽŽŽŽŠ…zvttvy}„…„ƒ‚‚…‰Ž’•˜™š››š˜–•”•–˜›œ›™–”’’’’’’“•—˜™™˜˜šœœ˜”ŽŽ‘ŽŠ…yrnkjlnopqqrrrolgb^\Z[\_cgkmmkgc_[XVUVY]bgjjjhhhjmoponkjijlmoqsuvvrmg`\YWWWXWUROKIHJMRW[_a`^[YY[^bdfghijkmptvwvsqonljfbaaceedcdddc`_bhpx~€€~}{xuvy}€}{|€…ˆˆ„|}€‚‚‚‚‚‚„Š’™œ›˜”‘‘’“”•—šŸŸœ›œž¡££¢Ÿœ™”‹‡„ƒƒ„„…………†‡ˆˆ‰ˆˆˆˆ‡†…„„„…†ˆ‰‰ŠŒ”™œ›–ˆ‚~{yxxxyzzzzz{||{{z{}€ƒ……„€|xvvx|€‚}wronoqsvz~{wtux|†‹‘Œ†~‚†ŠŒŽ‰…ƒˆŽ“••”““•—˜˜—•“’’‘‹ˆ†…„†‰‘•˜š›œ›š—•“‘ŒŠ‡……†ˆŠ‹‹Š‰‰Š‹‹Š†€{vsrrsuwyz{|}~€‚…††…‚}||~€‚‚‚€€‚ƒ„„ƒ|zwussuzƒ„}ywy~„‰ŽŠ‡ƒ€~~ƒ‡‹‘“’Žˆ‚|yz~ƒ‡‰ŠŠ‹Œ‘’”•––•••—𠣦¨ªªª¨¥ œ˜–•“’ŽŠ†ƒ‚ƒ†ŠŽ’–™œžŸš–‘Œ‡ƒ€€ƒˆ‘“’ŽŽ‘”•”ˆ€yspppruwyxvsokhfda^[XVUVXZ\^^^^^^^_`abaa`_]]\]^aejnqsrpnmkifc_\ZXVTRPNMLLLLMORTVWYYZZYWUSRRSTVXZ]`ceffgghjmptwyywusrrrrrrqqrsuwy{|{zxusrsux|~}zxvvwxz|}}}~€‚…‡ˆ‰‰ˆ‰Š‹ŒŽ’“”“‘ŽŠ‡…ƒ‚‚…‰‘“““’“”””’‹Š‰ˆ‡‡‰ŒŽŽŒŒŽŽŽŒŠ‡†…†ˆŒ‘–›Ÿ Ÿ›•‹‡†…„„…‡‰ŒŽŽŒŠ‰‡†…„…†ˆ‰ˆ…~‚ƒ‚€}zwtqpqsvz}€‚ƒƒƒ‚€}zxwy{~€€}{xvuuvxxwvvwy{{zxx{ƒ†ˆˆ‡‡†……„…ˆ‹‘’•˜œ ¢¢¡Ÿœ˜“ŒŒŽ‹‰‰‹Ž’•–•”Œ‡„ƒ„‡ŠŽŒŠ‡††ˆ‹‘‘‹†€{wttuwy}€„‡‰Š‹ŒŒŒ‹‡„€€‚„†‡††‡‡‡†…ƒƒ„…‡ˆ‰Š‹ŒŽ’”””‘‡‚„‡‰‹Š‰‡ƒ€|z{}‚ˆŽ“––”‘‰„{xwx|…ˆ‡ƒ|{{}~€~|zyyz|‚…ˆ‹Ž’–œ£§¨¤ž—‘ŽŒŒŒŽ”—™—”’‘’•—–“ŽŠ‡††††‡‰‘‡€ytqpqtvwvsolkklnpqqpomljhe`[VRPONOPRUX[\]\\\\\]]]^_aa`]ZXWWZ]_bcdefggfeefilnnnmmlkie`]]`dinruwxwtqmjhfdcdegjlnoonkheehlquwyz|}}{yy|‚}xttw{~~}}}~~zuqnmoqssrpopsy‡‘“’‹†‚~~…‰“•–—–••—šŸž›˜––˜›ž Ÿ™•ŒŠŠ‹’”••”’ŒŠˆ‡‡‡ˆ‹’””’Ž‹‰ˆˆˆ‰‰ŠŠ‰ˆ‡„~zvsrrtvyzzyxwvwxyz{{|}€‚‚‚‚~}||~„†‡†…„„…‡‰ˆ…€ztqpsw{‚€‚ƒ…††…„‚€€ƒ„………„‚{yxz„ˆŠˆ„€~ƒ‹”›¡£¢Ÿ›˜–•–—˜˜———˜šžŸžœ˜’Œ†€†ŠŠ…„‰Œ‡|xwy}€ƒ„ƒ‚|ywuvz…ŠŽ‘‘‹‹Œ•——“†‚~~€„ˆŒŽŽŠ†ƒƒ…‡‡…‚€~~~}{z{}€€€‚‡“—˜–“‘Ž‹‡ƒ€€€|zz}ƒ‰’”–™œžŸš—”“’’Ž‹ˆ†…ƒ‚‚„‰”——”‹ˆ†……†‰’‘Ž‹‰‰‹’’‘ˆ„€€|yuqmkjjiheb`_`acddca^[ZYZ\_bddcbaabdgjlmlid_[YWVVVXZ\^_`aceghhhhfc_YURTY`fjllkhd_YUSSUWXWVUUVWZ]_bcba_]\[ZZ\`hqz†‡†„‚‚ƒ…ˆŠŠ‡ƒ~zwvwxz}‚‡Œ’’ŽŒŠˆ…}yvtstvy}„…††…„„„…†ˆˆˆ†ƒƒˆŽ“–—–•”“’’’““’‹‡ƒ‚‚„‡ŠŒ’•šŸ¤¨¬­«¦ ›™™››˜•“’‘‰†……†ˆŠ‹ŒŠˆ„€ztmgb`aels{„…ƒ€|ywwwy{}~~{vqnmosx}€{vpljjlnnlihjlpsuw{„ˆŠ‰†‚€€„†ˆˆ†ƒ{xuuuuutttwz~ƒƒ‚€~|||~€ƒ†ˆ‰ˆ‡††ˆŒ‘—›Ÿ ¡¢¢¢¢¡¡¡¢¤¥§¨©©§£˜“ŽŒ‹Š‹Œ“••’‡ƒ‚…‰ŒŽŠ‡†‡ŠŽŽ‹ˆ†…………†‡ˆ‡…€{xwy~ƒˆŒŽ‘”™ž¢£¡žš—•”“‘ŽŠ†‚|{|}~}zyz|‚„…†ˆ‹Ž‹ˆ†„ƒƒ„„ƒƒ|ywvx{€…‰Œ‹‰…‚€‚‚€}{zz|~„ˆŒ”––•”””““‘‘‘’“••”“’’‘‹†ƒ‚„‡‰ˆ…xsnkiikosuuqke`]\[ZWTQONMMNNOONLJIILPSTTSRRSVX[^aegjlnpsvxyxvsqoooopqrsttuuvvvtplhedddb_[XVVVXZ]`cdda^\\_dlsy}~~}||}}}}|zxvspopty~€~}|yvuuwyxtojiikmosyˆŠ„€~€ƒ†ˆˆ‰‰Š‹‹•›Ÿ¡ ›ššššš™™™š™—”‘“•—˜˜˜˜™››š˜–––™œŸ Ÿœ—’Œ‡ƒ€~|xtpmklpv|ƒ‰‹‹ˆ„€„††„~|{|}}}|zywvwxxxuqmifddfghijihfedcceglrx}~||}~€€‚…ŠŽ‹‡„~}~‚†ˆ‡…‚‚„ˆŠŒ‹‹ŠŠ‹‹‹ŒŽ‹‡ƒ‚‡Ž–£§©©§£ž›™š £££¡Ÿœ™•“‘‘’”•”””•••”’Ž’”––”’‘Ž‹ˆ…ƒ„†ˆˆ†‚‚|z{~‚~{z{}~}|}€…ŠŒŠˆ‡…‚~||~„…„„„ƒ‚~ytqqtx{|zwtsrrsuz€‡Ž’’‘Ž‹‰‰‰Š‹“˜œ›˜•”•–——–––——–“މ†…‡‹“—™™—’‡ƒ€€‚€~}||}~€‚„††ƒ~xtrty~ƒ†‡ˆˆ‰‰‰‰ˆ†„‚~{xvuttsrpnllllllkkkkkjjjklllllnptvvtpljhhiijjjjhd^VOLLOU\bglnppomlllmljgd`]YVSQPQRTUUVVX[_chmrvy{{zxwwxy{|}}~€€}{xvutuvwyzzzyxxxxyxwvtsrqoligghkoswz}~„‡Š‹‹‰†……‡‰Œ‘Ž‹ˆ†…†ˆ‰ŠŠˆ‡…„ƒ~€ƒˆ‘““’’’’‘Ž‘’“’’’“””“‘‘”—™ššš™—“Œ„}z{~ƒˆ‹ŽŽŒ‰†„‚‚€~{xtqonpsvz}}}zwtsstvxyzywurommorvz}~~}|{{zxvttvy}ƒ„ƒ}{yyy{~ƒ„ƒ€}yvssv{‚ˆŠ†‚~€…•£¥¤¡››››š–‘‹†‚ƒˆŽ•šžžž¡¤¨©§£˜“‘‘’”—˜˜—–“‘ދЉˆ‡ˆˆ‡…‚~zxxz}„††„~}~€„‰Ž“˜›žžœ˜”‘ŒŠˆ‡†ˆ‹ŽŽŽŽŒ‹ŠŠ‹ŒŒŒ‹‰†ƒ€~|{zwsnjijow~‚ƒztpopsvy{~„†‡‡‡††…„„ƒƒ„†‰ŠŠˆ…‚€ƒ†‰Š‰†ƒ}||}€‚„†‡‡‡†……‡Š”—™˜”‹ˆ‡‡†…‚|zyzzzzyxvtrqpppomjgca^\[YYZ\_dhkljfb][YYXWVUTTUWZ_dinqrqpomllmosvy{zxvsrsvy}€‚€~|zywwwxwvtpmkjjkjhgfgjnqtuvx{}}{vpljjkkifddhmsxz{zxvsqqqrstsrqpnmnptz‚~yusqponnnoqsuz€‡‘‹†€ytporvz|}|{|~†“›¡¥¦£ž˜’Ž”—™—“Ž’—›œ›™——˜˜˜—•“‘ŽŠ†‚€€‚ƒ…‡‰‰‰‡†………†‡††…††‡‡‡‡ˆˆ‰ŠŠŠ‰ˆ†ƒ~yutvy||zwsqqruy~‚……ƒ{wuvxyxwtqpqsvxyywvuuvvwwwxxyyz|‚†Š‹ŒŒ‹‹‹‹‹‹Š‰ˆ‡††ˆŠŒŽŽŒŠ‹ŒŽŽŽ‘’“”•˜œ £¤¢ž›™™™™šššš™–’ދЋŒŽ‘’•———•“‘ŽŒ‰‡†…††…‚~{yz|‚„‡‰ŒŽŽŒ‹‰†ƒ€~…ˆ‹ŽŽŽŠ†~}€„‰‹†€{xwy}ƒŠ’‹ƒ|vsqommnqtuuuux~„ŠŒ‹ˆ†…………„„†ˆ‹ŒŒŒ‹‹Š‡‚}ywx{~€‚„†††…‚€~~}}}~€‚…‰‘’’‹‰‰Š‹‹‰‡„„…†…‚}xussttssrqonlklortutromkigeddddcb`^]]_adhjmnnmkjijmrvz||zvspnnpruxzyvqiaZVUVY\^````_^]]^_`abba`___adgihfdccegijjjjklmmnprvy{|||||~€ƒ†‰ŒŒŠ‡„~{wtrtvyzxvttw|€ƒ…ˆŠ‘ˆ„€}|~‚†ŠŠˆƒ~zwvvxyzzxwwz€ˆ””‘ˆ†……‡ŠŒŽŒ‹’𢩬­­­®°²²±¯«¦Ÿ˜‘‹‡‡ˆŠŒŽŽŽ‹‹ŠŠ‰†ƒ~zwuttsrpnmmoqtvxxxwwxyz{zxvtrpnmmnoqstttttuw{†Š‹Šˆ…„ƒ„„…†‡ˆˆˆ‰Š‹ŽŽŠ‡„€}{{}€ƒ„„„„……††‡‡‰Š‹ŒŒ‹Š‰‡…ƒ‚‚ƒ‡‹’”••””““”—š ¡ ŸžžŸŸ  Ÿžœ›™–“’’““””•–˜˜—”‘’—š›™“†‚}}}~€‚ƒ„„ƒ‚€€ƒ…‰Œ“••”’ŒŠˆˆ‰Š‹ŒŒ‹Š‰ŠŒ‘‘Œ‰‡‡‡‡ˆˆˆ‡‡…ƒ‚‚ƒ„ƒ€}zyz|€€~{yvutsrqponnmljhfeefimrw{}}{zyyz{|}~}|{yxxz|‚„…………„…‡Š’•–—˜™›œœ›š˜—”‘Œ†}zyxyyyyxxyyyyxuqlf_XSOMLMMMMNORW]bfhhgdbaacfjnrux{}~~~|{zxwusqpqrtvxz~‚†‰ˆ…xqkea_]\[YVRNKKMQV\bhnrttsrqqppnkiggimqstsrqqsvz}€~~~€ƒ‡Œ’’‹…zxy|~}ysniggilpty|}~}}||{{{}‚‚‚‚ƒ†‰‘”—™š›š™˜–•”“’’“•—š›››››œžžž›˜•’ŽŒ‹Š‰‰ˆ‡…ƒ}{ywvuuvvvvuuuvwxxwwwwxxy{{||{zyyz|~~}|{zzyxwvuuuvxz}ƒƒƒƒƒƒ„…ˆŠŽŽ‹ˆ„€}{{|}}|zvsqprux{}~}}~†‹’“””””“‘ŽŽ’’’‘ŽŒ‰ˆ‰Œ’˜ž£¥¥¤¤¢ ™–””•—˜˜——–•”””••–•”“‘‘ŽŽŽŽ‹‰†„ƒ‚‚€~{z{}‚„„………††…„ƒƒƒ„……„ƒƒ…ˆ‹ŽŽŽŽ‘‘‘‹ˆ„~~€€|xsqpqsuutromlnrx~‚„ƒ€}|}|ungdeiotxywtqopqtwyz|~€„‡Š‹‰‡……†ˆ‹Œ‹‹ŒŽ‘Ї††‡‡…‚~zwtssrqpnmkkjjhgdbbcfilmligeddefhijjiiikmprsuvwwwwxy{||xsmhgimqtvwwvtrponopqrssssrqpnkhghjnqrqoljhgfc`\YVTTVZ_ceeefghihfeehloqqqrux|~~}{yxxz}„††ƒ€~|||{zyyz}€„‰ŒŒŠ‰Š‹ŽŠ†ƒ€~}||}~€ƒ†‰“–˜š›œ›š˜———˜™ššš™—–”“’‘’“•—š›š–‘‹‡„ƒ„……„‚‚ƒ…„ƒ|zxyyzzyyxyyyyxwwwx{ƒ‡ˆˆ†ƒ€~~‚„††…ƒ‚‚„†‰ŒŽŒˆƒ~zwwxyzzyxwwy{~‚†ŠŽŽ‹‡‚}wrmiffhmrx|~€€ƒ†Š’”–˜šœ›™–“‘Ž‹ˆ…ƒƒƒƒƒ„‰’”–˜™™˜—•–˜šŸ  Ÿž›™––—™›š–ˆ}{|~‚…‰‹‹Š†‚|zyy{„‡‡…‚~~~||ƒˆ‹‹ˆ…ƒ‚ƒ…‡Š‘•——•‘‰†…„…‡ŠŒŽŽŒ‰†……†‰‹ŽŽ‹‡„‚†‹•—–’Œ…}„‰Œ‹ˆ†„ƒ€~}}}~€„‡‰ŠŠŠŠŠ‰ˆ‡†…„ƒ‚€~{zyyywtqmieb_]]_beggffeefghhhgfddehkortvwxxwuspooopqrstvxy|~€€}{{{}€€~|yusqonlkkkkjgdaabehjjheca`^\ZYYWVTSRSUY^cgkmnnnptx}€€}yurqrtvwxxwxxxyz{|zvpifhnv~‚„ƒ}xqicchpy~||}~ƒ…†‡‰Œ”–”‘ŒŠ‹Šƒ|xx{€„†…ƒ‚‚ƒ‡‹’•—˜˜–“ŽŒŒŒŒŒ‘”••“Š„|{|‚†‰Œ”––”‰ƒ~{zyz}€‚‚|xwxz|}}|{{{|~€„ˆŒŽŽŒ‹‰ˆ†…„…†‡ˆ‰‰ŠŠ‹ŠŠ‰ˆˆ‰Š‹Šˆ†„‚‚‚‚„†Š“––”Ї…………ƒ|ywvwwxxxwwxz}ƒ„‚~yurruy†Ž”˜˜–’Šˆˆˆ‡‡‡‡‡ˆ‡‡††ˆ‹Ž‘‘‘ŽŒŒŽ‘”—˜—–•”“‰…‚~~}}|zwtrrtwz}€ƒƒ„…‡ŠŽŽ‘•™››š˜—••”””””“‘ŽŽ‘“•••–———•“‹‹‹ŒŽ“•—–”ŒŠŠ‹Œ‹ˆƒ}xuuvz~‚†‡†ƒ|{|~‚‚€€€}{xvtssuvwxxxxyz|„……„‚€~„†‡†…ƒ‚‚ƒ„†ˆ‰ˆ†|wttuwxxxxyyxwtrponliea^]^adgjkkhea_^_abbbbbdefedcccegijlnoppppqruwxyyyz{}~}ztojgfgilnprstuuutqnid_\ZYZ]`dgjkjgdbbceghiiijlnopppppppqqrrsssstuwxwuqnlmqv|€‚‚}{z|€€‚†‰ŒŒ”˜š™•Š…€~~€„Š“••“ŽŽ‘—¡¡Ÿš—••••”“”—›Ÿ¡¡žš—••••–––•”’ŽŽŒŒ‹“•”‘Œ†€{vqnkjjkmopqqrstuwy{}~~}|{{{|~…Š’’‹…zvsqqruwwupliikortuvwwxy{|}€ƒ†‰‹ŒŒŠ‰‰ŠŒŽŽŒŠˆˆ‰Š‹ŽŽŒ‰†……†‡ˆ†ƒ||}€„‰Ž’–˜™˜–“’–œ¡¤¥¤¢ ŸŸžœ˜•’Ž‹ˆ„€ƒ‡‹“••’ŽŠ†„„…ˆ‹‘‘‘ŽŒ‹Š‰ˆˆˆˆ‡…‚€~}~~~~}|{{zywwy|€ƒ…†††‡ˆ‰‰ˆ‡‡‡‡‰‹ŽŒŠˆˆŠŒŽŽŒ‹Šˆ‡…„ƒƒ„…†‡‡ˆ‰Š‹’”–——•’‹ŠŠŠŠ‹‹‹‹Š‰†‚~{wusqomkhfeeeefedddfimpsssrqqsuwyzzyxxxxyyzz{|{ytniedegilnpqpnjhghknqrrqnkhd`][[\^`bcddcbbcdfhjkkjfc`_aceeeddegjnruxyxvsqqrtvxyyxurnjfa\XTRRV[`cca]YVTTUZ`hqz€…‡‡…ƒ€~~~‚…ˆ‹ŽŒˆƒ~ƒˆŒ‘’“”“‘‡‚~ƒƒƒ‚‚‚€~~€ƒ‡‰ˆ…€|yy{‚„………†‰“˜œ ¡¡ž™“Œ…€~€†™¡¦¦¢›”ŽŠˆˆŠŒŽŽŠƒ|wuvy~„……ƒ}~€„‰Šˆ†……†‡†…ƒ€}zyz{}‚„……„‚€~}~ƒ†‡‰ŠŒŒŒŠˆ‡††…‚{vspnmmosw{}~~~ƒ†ŠŽ’””‘Œˆ„€~}{{|}€€~}|~€ƒ……ƒ‚€„ˆ‘•–•’މ†…‡‹•šŸž›–‘ŒŠŒ•šœœš˜•“‘‘’•˜››š™˜™œ £¥¥¢žš–•–™Ÿ Ÿš˜–“Œ‰†„~~‚„„„„ƒƒ„…†‡‡ˆˆˆ‡†……†ˆ‰‰ˆ‡†……†ˆŠŽŒ‰‡…ƒ}|{zxvsrqrsrpmkknt}…Œ‘ŽŒŠˆ†„„„„ƒ}yurqqqrrrrrrsuw{€…‰ŒŒ‰†„ƒ…ˆ‹Š†€|yyz|~‚~ytpnptwyxupkgeegkosuvusrpnlhebbcehiigc^ZXXY\_befhhfdcdiqy}}ytqruy{{zyxvtrpnoprsqnkhhiloqrrsux{|ztmgc_]ZXWY[_aa`_^^^^^`cgijhfedegiklllllot{…‡‡††‡ˆˆ†ƒ€ƒ„„‚€‚†ŠŽ‹ˆ…„…‡‰‹ŒŒ‹Š‰ˆ‡††‡‰Œ’””“‘Ž‹ˆ…ƒ€€€‚…‰Ž’–˜˜————˜˜————™šš™—•‘ˆ„‚ƒ…‡ˆ‡…‚~{xwwz}ƒƒ~{xvuuuwz~ƒˆŒŽŽ‹Š‰ˆ‡†…ƒ~}~~~}|zyxxyz}€ƒ„„ƒ€€ƒ†ŠŽ‘‘‹ˆ†‡‰‹Ž‘”•“ˆ‚}{zz{{zz{|}~€‚„………„‚€~}~†Œ‘”“Œˆ…ƒ€€€€€€‚†ŠŒŒ‹ˆ†„„†ˆŠ‹‹Šˆ…ƒ€~€ƒ‰•™˜–’Ž’“““‘ŒŠ‡†…‡‰‹Œ‹ˆ…€‚„†‰ŒŽŽŽŒ‹‹‹ŽŽ‹ˆ†„„†‰Œ‹ˆ†††ˆ‰Šˆ†„‚‚„†‰‹ŽŽ’’’’‘‘‘‘‘‘ŽŒ‹Š‰‰ˆ‡…ƒ|wrmkknsvwwusstvy{}‚„†ˆ‡…ƒ€}{zxwwwxxwtnhb]\]_beffda_]]`elsx||{xtqnmmorw|…‡‡…ƒ€}{zzz{zyxvvvvwwusqmjgdbaaceffd`]ZXWXXWWWWX[^aehjjhd_\[\]_abcdffedceinruvutrqpppqqqomigfgjlnnmmmnoqty~„ˆ‰‡‚|yxz~~{yz}ƒ„‚€€ƒ†‡†„‚‚„ˆ’•——•’ŒŠ‰ŠŒŽ‘’“““’‘‘’•˜›œœ›š™™˜—––—šœžŸžœ™•‘Œˆ††ˆŒ‘Œˆƒ€„‰Œ‹‰‡…ƒ€}{z{|~€€‚„†ŠŽŽŒˆ„€€‚ƒ…††††††„‚~{xwy{}~}{yxy{}€}zwtsrsuwxy{|}}~}|zxurnkiijmrv{~ƒ…‡Š‘‘ŽŽ‘“•——–”‘Ž‹‰ˆˆ‰‹ŒŒ‹‹ŠŠ‹ŽŽŽ‹Šˆˆˆ‰ŠŒŒŒ‹‹ŒŽŠ…}{z|ƒˆŒŽŒ‰‡†‡Š”—šžŸžœš˜–•”•–•”’Ž‹‰‡…ƒ‚€~~~~{ywxz~‚„„ƒ‚‚„†ˆ‰ˆˆ‡…ƒ€}zxxz}€‚ƒ|zz|‚„„„ƒ‚‚‚ƒƒ„…†ˆ‰‹ŒŒŒ‹‹Š‹Œ‹ˆ„€{wsokiijkkjihgffffffeca_]]]_`aa``_^]\\]_abb`^\\^aglquvvuutuuuuttsttuvx{„‡‰‰‡…‚}{ywusqponljhggghijjjjiijmqtwwtplkkmoppnmlllkjhikqw|{vrpqsuutrqrvz~}yurqppppqsw{~~~€„‡ˆ‡ƒ||}€‚„†ˆ‹ŽŽ“–—–”‹‹”—šžŸŸŸœš˜—•”’ŽŒ‹‹’““‘Ž‹ˆ‡†††††…„‚€}zyz|~~|zyz{~€}{xvuvx{}€€€€ƒ„†‡‡†………†ˆ‰ˆ‡…ƒ‚‚ƒ„…†††…ƒƒ‚ƒƒƒƒƒ‚‚€€€€€}{yy{}…‰‹ŒŠ†‚}~~~|yvuvxyzzzz|ƒ†‰ŠŒŒŒ‹‹‹‹‹‹‰ˆ…ƒ‚€~}}}}}}}~„ˆ‹ŒŒŽŽŽ‘‘’’’‘’’“•–——–•“’‘‘‘‘Ž‹‰ˆ‡‡ˆ‰Š‹‹‹‰ˆˆˆŠŒŽŽ‹Š‹ŒŽŽŒŠ‡†…††‡‡‡ˆ‰‰Š‹Ž‹‰‰ŠŒŽŽŽŽŒ‰†ƒ€~}{zyz|€ƒ…†„‚€€‚„…†…„ƒ‚‚„†‰Œ‹‡ƒ~zvsqonnlkifecbaaabdhkmoopqsuvwxxxyz|~€ƒ…††…‚}}‚…ˆ‰ˆ„€zuoid`^^_begghikosxzzwrmhfhmt{|wrnjhhijlmljgd`^^^_adgkorstsrpoooppqqppqtw{~€€}zxvutsqonoprtuttsssroljhhikmooomljiiiklnoqrsrrqrux{}}~ƒ‡ŒŽ‹ˆ†……†††‡‰Œ‘’‘‘’”—™™˜•’ŒŠ‡…„„†ˆ‰‰‰‰‰‰‰ˆ…ƒ‚„†‡‡ˆˆ‡‡†……†‡‡†„€}{yy{}„†‡ˆ‡‡†‡ˆ‰ŠŒ’”••”’‘‘‘‘‘‘‘‘’“””“‘ŽŒ‹Š‰‰ˆ†…„……††‡‡‡‡†„}{zyxxyz{|||{zywusstvyzzxvtstv{„ˆ‹ŽŒ‰„yusstvwwvtrpppqrtuvvwy{~‚†‰ŒŒŒ‹‹ŠŠ‰‰‰‰‰ˆ†…„„†ˆ‹‘’““””’ŽŒŒ’•—˜—•“‘‘’•—˜˜—–••–—˜™ššš™˜–••–˜™š™–’Ž‹‰ˆˆ‰ŠŠ‰ˆ†…„„ƒƒƒ„…†‡‡…„ƒ‚~|zxwvutsrrrrrrrtvy}€‚‚}|{|‚„……„ƒ‚€}{zz|€„‡‰ˆ†ƒ~~ƒ„„„ƒ€~~€‚ƒ‚{xvvwz|}|zwvuttttuvxyywusqonlifcbabdfhklmljhgfhiklmmnoprsuvvvvwxz|~~~|zywutstwy|~€‚ƒ„ƒ}xsolklmopqppqrstuuuutsrpppqrrpmieca`_`abehjkkhdaadiostsrstuuspnoswzywspooqrtwz}€~|{z{~ƒ‡‹ŽŒ‹Š‡…ƒƒ„†‰ŠŒŽ‘•™›œš—“ŽŒŠˆ„€}zyyyy{|~ƒ…‡‰‹ŽŽŒŒ‹‰ˆˆˆˆ‰‰ˆ‡††……ƒ}||}~~~~~€„‡‹•™››™–“ŒŠŠ‰‰Š‹‹‹ŠŠŠŠ‹ŒŒ‹Šˆ‡†‡‡†…ƒ‚€‚‚‚‚‚ƒ„ƒ‚|zyzzyxwvwyz{zywvwx{~ƒ‰‘‹‡„€‚„‡ŠŒŒŠ‡…„„†ˆ‰Š‰‡†…………„ƒ‚€}{z{}€‚ƒ„„……††††‡ˆ‰ŠŠŠŠ‰‰‰ˆ†…†ˆ‹Š…€}}‡•™š˜”‘ŽŒŒ‘‰…‚ƒ‡‹‘’‘ŽŒŽ‘“””“‘ŒŒ“•—–”‘‹ŠŠ‹‹‹Š‡…‚~~€„ˆ‹‹‰†„„…‡‰‰ˆ†ƒ€}{zzz|~€€~{xusqppoonnmmnoonlkiiknqssqnjgdcbaaacdedcbbcdeedcdegjmpsvyzzzxxxy|„†‰Š‹‹Š‰ˆˆ‰‹ŒŒ‹Šˆ…}zxyz{{ywsnjeba```_^\\^`bddeffgffeeeeeefimptvxz|}}{ywvwxxxwvvwwvuttuuuvvwyz{{{||{ywtrqqonmmnqtvwy{~ƒ†ˆˆ‡…ƒ~{xwxz}~~}}}‚…†‡‡†††‡ˆˆ‰Œ”™œžžœšš›œ›™–”’‘Œ‹‹‹ŒŒ‹‹ŒŽ’“”””“’‘‹‰‡†††††…„„„…†…„ƒ‚‚€~}}~€}|{{|~€~|zxxy{~ƒƒƒƒ„…‡ˆˆ‡†ƒ€€€‚‚~}|||{zyyyyzzzzzyyyyz||{ywuttvxz||}}~€€€‚„‡Š‘’“•—˜—”‘Šˆ‡††‡ˆ‰‰‰‡…„„„ƒ|{{}€ƒ…‡ŠŒ’”–˜™š››››š˜–’ŽŽŽŽŽŽ‘’““’’‘’•˜›žŸž›˜•“‘ŽŒˆ„|zz{}€~~€‚ƒƒ‚€€ƒ…‡ˆ‡†„}zwutuvwxyyz{|}~}{wtqpopruwyzzzz{|}€€€~}|{{zxwusrstuvvvutttttuvwyyywusssssrpnmlkkjiijklmljhffghjkkjifdbaaaabbcdfiknqsvy|ƒ………„ƒ‚‚‚‚‚‚ƒ„†‡‡…‚~zvsponnoruwxxvsqooprtvxxxvtqoooruxyzz{|~~{xvuuwxxxyz||zvqnnprtspmlnpstttvy||xsooqw{}|ywvwyyz{}‚‡ŠŠˆ„‚„…†ˆŠŒ‘’”–———•’Ž‹ˆ‡ˆ‰‹Ž‘““”””””•”“‘ŽŽŒ‹Œ‘’‘ŽŠ†‚…‰‹ŒŠˆ†‚~zvttvxyzzz{|~ƒ…††…ƒ‚ƒ„‡‰Œ‹‰†„‚‚‚€~}|||{{{{{{zyxwvvutsqqqrtvxxwvvwy{~€‚‚ƒƒ„†‡ˆ‰ŠŠ‹‹‹‹Š‰ˆˆ‡ˆˆ‰‰ŠŒŽ‘“”––•“’‘‘’“““’’’’’‘‘‘’“”•••”””“‘‘’““’‹‰‰ˆ‡…ƒ‚ƒ…†‡ˆ‰‹ŒŒŒŒŒŒŠˆ†…ƒƒƒƒ„………ƒ€‚„‡‰ŠŠˆ…‚~|zz{||}}}}}||{zzz{{{||}~~~}|{zzz{|}€€~}|}€€~}}}~€‚ƒƒ‚|xurqqqqrrqqrtvy{~€€}{yyyyywtplhfddfhkoqssrqqqqqrrrqpnlkihhhgfdba`bejotwyyyyyyzz|}}yupmkjkkkkjhggggijlnpqrstuvvuttttuwy}„††ƒ€}{{}‚†‰ŒŒ‹‡ƒ€~}}}~€‚‚€~|zywusrstvwxxxyyzzzz{{{{{||}~~~~~}|zxvttttuuvxz|}~~ƒ…‡‰ŠŠ”—˜˜•’Œ‰‡……†‡‰ŠŠ‡„€~~€ƒ‡Š‹‹‰‡…ƒ‚ƒ„„‚}||~…‰Œ‹ŠŠ‰‰‰‰‰‹‘‘ŒŠ‰ˆ‡†………………ƒ€€‚„‡ˆ‰ˆ‡†…„ƒ‚€‚„……„ƒƒ‚‚€€ƒƒƒ‚€~}{zxwwvvvuuvwxxy{}€„‡ŠŒŽŽ‹ˆ†…†ˆŠŒŒŒŠ‰‰‰ŠŒŽ‘’’‘Ž‹‰ˆ‰ŠŒŽŽŽŒ‹‰ˆ‡‡‡‰‹ŒŒŒŒŽ‘‘‘‘’•™œžŸžœ›™—––––——–”’ŽŽŒŠˆ†„ƒƒ‚}|||}}~}~€€~|zxwwvvuutsrqpppqsuwy{||{xurppqrtuwxxyyyz{||}|{zyxxxxy{}‚„…„ƒ}}~~~}|{yxwwy|‚‚€‚‚|ywuttuvxxwuspmkkklnprsttsqomkklmoqrsstuvwwwwwwxyz{zxvtsrrstuutsrqrsuwxzzyxvutuwy{||{zzyyyxxyz{{zwtqommmmnnoonmmmnqsuuutsstuvwy{}€|yvuwy|}~ƒ„…„‚€~~|{{|~„‡ŠŒŒŒ‹ŠŠ‰‰ˆ†…ƒ‚‚‚ƒ„…‡‰‹Œ‹‰†„ƒ‚ƒ„†ˆŠŠŠŠ‰‰‹ŒŽ‹ŠŠŠŒŒ‹‰‡…ƒ‚‚ƒ…‡‰Š‹ŠŠ‰‡†„‚€}{yxxy{}ƒ…‡ˆˆˆˆˆˆˆˆ‡‡†…„ƒ‚‚€€€‚„„„ƒƒ‚‚€~|||}€€~|zxwwxyyz{}‚…††…„‚€~~}|{zyxy{}~€ƒ…†‡ˆ‰ŠŒŒŠŠŠ‹ŒŽŽŽ’“”•••”’‘‘’”—™šš™—–•”””“’‘ŽŒŠ‰‡…„‚€€€‚ƒ„…†‡ˆˆ‡‡‡ˆ‰Š‹ŒŽŽ‹ŠŠŠŠŠ‰‡…ƒ‚‚ƒƒ„ƒ€}xurruy|€}{yxwvvwxxxvspnnopqrstttsrpnmmnnoprtvwwxz|~„………………„‚|zyy{}}{xvuuvxz{{zzyyyxxvuuuvwyzzywtrqqrtvxyzywuttuxz{{zxwuttux{~}zxvvxz}€|ywwxz|~€€€~|zxvtsqonnopqrrrrqrrstsrponnopsvy|}{xsnkiijmquwxwvuvxzzzz{||{xtrqrux{~€‚ƒ„‚~zvsstwz{|{{|~ƒ„ƒ‚€€ƒƒƒƒƒ…ˆ‰Šˆ†……†‡†„‚~}}||||~€ƒ†‰‹ŒŽŽŽŒ‹‹‘’“’‘ŽŒŠˆ†…†‡‰ŠŠ‰ˆ‡ˆŠŒŒŒ‹ŠŠŠ‹‹‹Š‰ˆˆ‡…ƒ~~~~€‚‚‚‚‚‚‚‚‚„…††„~|zzzzzzyxvutstvx{}~~}|{{||||||||||||}~€€}||}€‚„††††††…„‚€~}{{|~ƒ…††‡ˆŠ‹ŒŒ‹‰‡‡‡‰‹ŽŽŽ‘“”“Œˆ††‡‹Ž‘’’‘ŽŽ’”•••“’’’’Ž‹‰ˆ‡‡‡‡†…„ƒƒƒƒƒƒƒ„…††„‚€~}|||}}~€‚€~~~~€€}{{zzzzzyyxxwvutstuwy{|}}|{zyxxxxyzzzzzywusrrrssrqpnnmnnpqrrqpooqswz~€‚‚€}}„†‡‡‡„}ywvwxyz{{|||zxusrqomkjjkkkjhgghjlnpqrssttuvwwxyyxwvutssrstvxz|~€ƒ„†‡ˆˆˆ†„€€ƒ…‡‰Šˆ…€{xvwxz|}}zwuuuvxyz{||{xtrrrsrqqqtwz}~‚ƒƒ€‚ƒƒ~{zz{}}}|{zywtqnkjknruwvsqonoqrtux{}~}{zyz|‚ƒ„„„ƒƒ‚‚‚ƒ…‰’•–•“ŽŽŽŽŒŒ‹Š‰‰‰ŠŠŠ‹‹‹‹‹‹ŠŠˆ‡†………„„ƒ‚‚ƒ…‡ˆ‰ˆ†ƒ€}{z{}€‚‚€€€‚‚€~~~€‚‚ƒƒ„ƒ€~~~€€€€€‚ƒ…†‡‡ˆˆˆ‰Š‹ŽŽŒ‰†ƒ€}ywtsssuvvwwxyz|}}~~„ˆ‹ŽŽ‹ŠŠ‰ŠŒŽ‘“”’Š…‚€€€€‚„†ˆ‰‰‰ŠŒ‘““’‘‘’“”””““’‘Ž‘ŽŽŒŒŒŽŠ‡ƒ}|{zz{}~~~~~€€€‚ƒƒ‚}{ywvvvvwwwwwxxyzzzzyxwutrrrsstttttuvxyz{{|}~€‚€~~~~~~}{ywuttttsrqqqrsuvwyz|~~~}||}~}}~€€€~~}}}~€~|{{}‚€~|zxwvvwwvvuuuuuuttssstvxy{}}}}{zyy{}€‚ƒƒ‚€~}}}}}}||||{yxvuuwxyzzyyxwvuvwxyyywvuuuuvxyz{{{{{{zzyxxxxxwutrpooopqrsuwy{~€€€‚ƒ„„„……†††…ƒƒ‚‚‚‚‚€}||}‚ƒƒƒƒ‚€‚ƒ„„„ƒƒƒ‚~~‚„†‡‰ŠŠŠ‰ˆˆˆˆ‡†……†‡ˆ‰ŠŠ‰‰ˆˆˆ‡‡†„ƒ~}}|zxwuuvxz{}~ƒ†ˆ‰ŠŠ‰ˆ†„ƒ€€€ƒ„„…„„„…†††…„ƒƒ„†ˆŠŒŒ‹ŠŠŠŠŠŠŠ‰‰ˆ‡†……„„„„„„„ƒ‚€~}}}~€‚ƒ„…†‡ˆŠ‹Ž’”–––•“‘ŽŽŽŽŒŒŒŒ‘‘‘‘ŽŽŽ‘’’““’‘ŽŽŒŠˆ†††‡ˆ‰‰‰‰‰‰‰‰‰‰ˆˆ‡…„~}}|||{zzzyyxwvuuuuvvvuutsqppprtwyyxvtsrrqponnopqrrstuwwwwvuuuvvwwwvtrpnmmmnooonnnmnnoprtuwxy{}‚ƒƒ€€‚„†‡‡‡‡††…‚€}||~€‚„…††…ƒ~~‚„………ƒ‚€€~~}}||||{{|||{zywvutsrpnmmmmoqtvxyyxwwy{}~~~~~‚‚ƒ„…††‡‡‡††…„ƒƒƒƒ„††‡†„‚|xvttuwwvtqmkihggghjlmoqsuwxyzzzzzxwutttttuxz|~}{yvuttvxz|}}|{{{}‚„………„„ƒ„………ƒ‚‚„†‰ŠŠŠ‰ˆ‡†„ƒ‚‚„…†††…„ƒƒƒƒ„†‰‹Œ‹Šˆ‡‡ˆ‰‹Œ‹‰‡…„„………„‚€€‚ƒ„„„‚€}{zzz{{|~‚ƒ„†‡ˆ‰ˆ‡…„ƒƒ„„ƒƒƒ„…†‡‡†††‡ˆ‰‹ŒŒ‹‰‡†…†ˆŠ‹‰‡‡‡ˆ‰ŠŠ‹‹Œ‹Šˆ‡†††‡‡‡†††…„‚‚ƒ„…††††††††‡ˆˆ‰ˆˆ‡‡ˆ‰Œ‘’““’‘ŽŽŽŽŽ‹‰†…ƒ‚‚€€‚ƒ„……††‡ˆ‰ŠŒŽŽŽŽŒ‹ŠŠŠŠŠ‰ˆ‡…„ƒ‚€~}|{zyzz{{{zxusqooqstuuusrqqqqrsstsrqqqqrrssssrrrtw{~€€~~~€‚€~{yxxyyzzzzzywtqoooqsuwxyz{|~‚ƒƒ‚~}||{{zzyyyz{}~€‚‚€€€‚ƒƒ‚€}zxwxy{|}}}}|{{zzyxwusrstvy{||||{|}~~~~}~€‚ƒƒ‚‚ƒ„…††††……„„……†‡‡ˆ‡‡†„‚€€€~|zzz{||{yvromlmptwyyxvtrqqrtwy{{zxuttttssrsssrqoonmmllmoruwyz{|}€‚ƒ„‡‰ŠŠ‰†„‚€€~}~‚€~}}{zyyz{}|zxvtuvwxyyyyxyyz|~€ƒ…‡ˆˆ‡…ƒƒƒ…†‡‰ŠŠŠˆ‡††‰‘•––”‘ŽŽŽŽŽŽŽŒ‹‰‡…ƒ‚‚ƒ„„„„ƒƒ„…††††…„ƒ‚€~|||‚…††…„ƒ‚ƒƒƒ‚‚‚ƒ„„„„ƒ‚‚‚ƒ…††††„ƒ‚„…‡‡‡‡‡‡††…„ƒƒƒƒ„……………†††††††‡‡‡‡††††‡ˆˆ‰‰‰‰ˆˆˆ‰‰ŠŠŠŠŠŠ‰ˆ†………†‡‰ŠŠŠ‰‡†…„„„………„ƒ‚‚‚ƒ„……„ƒ~|zz{}€‚ƒ„……„„„„……††‡††…„„ƒƒ„„„ƒ‚~}}}~~}|{ywvvvwxxwvutsssstuvvvvutsrrstuvwwwusqpqruwxyyxvtrqpppqqqponoprtvwwwvuuuuvwxz}ƒ„„ƒ‚€~|{|}~€‚…ˆ‹ŒŒŒŒ‹‹ŠŠ‰ˆ‡†………†‡‡‡…ƒ~|zywvuuuuuutrqqrssssstuuutsstvy|}}}}}}~‚ƒ„…††‡ˆˆ‰‰‰‰ŠŠŠŠŠŠŠŠŠ‰‰ˆ‡…‚€}zxwvvwxyzzzxwvuuuvvwyzyxusqppqqrstvxz{{zyyyyzzyyyyzyxwvvwwvtsrsuvwwwvwwvusrrtwxyzzzz{zyyz}…‰Œ‹ˆ„~„†‰Œ‘‘ŽŒŠŠ‹ŒŒŒŠˆ‡……„…††‡†„‚€‚ƒ„„„ƒ€€€‚ƒ„……„ƒ‚€€€€‚ƒ„„ƒ‚‚„†‡‰Š‹ŒŽŽŒŠ‰ˆ‰‹ŽŒŠˆ††‡ˆŠ‹ŒŒŒ‹ŠŠŠ‹ŒŽ’’‘ŽŒŠˆ†„ƒƒ„…††…………………„ƒƒ‚~~~ƒ………„ƒƒ„…‡‰Š‹ŒŒŒŒ‹Šˆ‡…ƒ‚‚ƒ„„„„„„…†‡ˆˆ‡†„ƒƒƒƒ…†††…ƒ‚€‚„†ˆ‰ˆ†ƒ€|ywvxz}€‚}{yxwvvwxyz{{{zywvttttuvvvuutssrrrsstuuuuttsrqqqrstttssrrrrrrqqppoopruxz|~€€€‚ƒ„„„„„ƒƒ‚‚€}|{{zzyyz|€€€€€€€€€€€‚‚€}|{{|}~~}}}~€‚‚ƒ„ƒƒ‚‚‚ƒ„†‡ˆˆˆˆˆ‡‡†……†‡‡‡‡†„ƒƒƒ„…†‡‡‡‡†††‡‡†…ƒ‚€}{yxxxyyyxwvuuvvvwwxyyyxxwxz|~~|{z{||||{zzyxwvuuuwxyz{{{zxusqqrsuwy{|{zwsqpqrtuwxyzzyyyyz{}‚‚}||}~€‚ƒ‚€~|zzzzz{zzyxxxyz|}~~~~€‚„†ˆˆˆˆˆˆ‰‰ŠŠŠŠŒŒŒ‹‰‡††††‡‡‡‡‡‡‡ˆ‰Š‹‹Šˆ‡…………†††……„ƒƒƒ„…‡ˆˆˆˆ‡‡‡ˆˆˆ‡‡‡ˆˆˆ‰ŠŠ‹Š‰‡„‚€€‚ƒ„„ƒ‚€ƒ…†††‡‡ˆ‰‰ŠŠŠŠŠŠ‹‹‹‹‹Š‰ˆ‡‡‡‡‡†„ƒ‚‚‚‚€}|||~‚ƒ………„„„…†ˆŠ‹ŒŒŒ‹Šˆ†„ƒƒƒ„………………††††…„„ƒƒƒ‚‚€~~}}}}}}}|{zyxxxyz{}~~|zxwwxz}€‚ƒ‚~|{{{{{zyxvuuvwy{}€€~|zxwvwxxyyzzyxwvuuttsqoljiiklnopqrssrrrsuxz|}}}}|{{{{{{{{{{{{{{{{{|~€‚„††‡†……„…†ˆŠŒŒŒŒŒ‹‰‡„‚€€‚ƒ„„„‚~~~}}}}}||{{{{|}~€€€€€€~~}|{zzzz{|}~€€~}}~€‚‚‚€‚„…†††…„‚€€€€~~~}||{{zzzzzzzywvuuuutrqonmmmmoqtwyyyxvutttuuuuuuutsqppruwyyxwwwvutsstwxyxwwxz|~€‚„…††………†‡ˆˆ‰ŠŠ‰ˆ†„ƒ‚‚‚‚‚€€€‚ƒ„„„„„„………„„ƒ‚‚ƒ„…‡‡ˆˆˆ‡…ƒ‚‚ƒƒ„„„………„„ƒ„„†ˆŠ‹Œ‹Šˆ‡†††‡ˆŠŒŽ‹Š‰ˆˆ‰‰‰‰ˆˆˆ‡†……†‡ˆ‰‰‰‰‰‰ŠŠŠ‰ˆˆˆˆ‰‰‰Š‹‹ŒŒ‹Š‰ˆ†…„ƒ‚‚ƒ„†‰‹‹‹‰ˆ†………………„ƒ‚€€‚ƒƒƒƒ‚‚ƒƒƒ‚‚‚‚ƒƒƒ‚€€€€ƒ„†‡‡ˆˆˆˆ‰ˆˆ‡††…………„„„„ƒ‚€}{zz{{|{zyyxwutrqpqrsstuuvvutsrrrrssssssttuuvvwxxyyyz{|}~~}|{z{{||{{zzyyxwwxyz{{{zzzzzzyyz{|~~~~~~€€€€€ƒ„…†‡‡ˆˆ‰‰‰ŠŠŠ‰ˆ‡…„„„……†‡‡‡†††‡‡†…„ƒƒ„…………„ƒ‚‚€€‚ƒƒ„ƒƒ‚‚‚ƒƒ„…†‡ˆˆ‡…„‚‚ƒ„†‡ˆ‰ŠŠ‰‰ˆˆˆ‰Š‹‹Š‰‰ˆ‡‡†‡‡ˆ‰‰‰‰ˆ‡…„„„„……††‡ˆˆ‡†…„ƒ‚€€€~}}}~€€€€€‚‚ƒ„…†††††……††…„ƒ€€€€€}|zzzz{|}~~~~~}}||||||{{zzyyxxwvuuuuuvutsrqrrtuwwxxwvvvwxyzzzyxwvvvvwxy{{|{{{{{{|}}~~~~€€€}}|||||{{{{{{{{|~€€€~~~€‚ƒƒƒ‚€€‚‚‚‚€€€€€€€€‚ƒƒ„„……††‡ˆ‰Š‹Œ‹‹‹ŠŠ‰‰‰‰‰ˆˆ‡†…„‚€€‚‚‚€~|zyxxy{}~}||}~€ƒƒƒ‚}}||||{{{{{ywvuuvwxyyzz{{{{zzzzzzzyyxwwwxxyz{zywvvwxyzzyyyyyyyyyzzzzyxwwwxxxxxwwwwxxxxwwwxyyyzz{|~€€€€€€‚ƒƒ„„ƒ‚€€€€~}||~€‚ƒ„†‡ˆˆ‡†………†ˆˆ‰‰‰‰‰ˆ‡‡ˆ‰Š‹‹Š‰ˆ‡‡‡‡††………………†‡‡ˆˆ‡‡‡‡‡‡‡‡†‡‡‡ˆ‡‡‡‡‡‡‡‡‡‡‡ˆˆ‰ŠŠ‹‹Š‰ˆ††…………„„„„„ƒƒƒƒƒ„……………„ƒ‚€‚ƒ„…………††‡‡‡††…ƒ‚€~~}~€€~}}||}}~~~}}|}}~€€€€€€€€€€~~}||{{zyxxxxxxyz|}~~}}|{{{{|}€€€€€~~~~~}|{yxwwwwxyzzzzyyyyz{{|||||||}}}}|||||}}}}||{{{{{{zyyxxxxxyyz{|}}}||{{||}~~~}}}~€‚ƒ„„ƒƒ‚‚‚ƒ„†‡ˆ‰‰‰‰ˆ†…„ƒ„„……………„„ƒƒƒƒƒ„„…………„„ƒƒƒ„„……………„ƒƒ‚‚ƒƒ„„ƒƒ‚€€}{zyyzzzzzz{{{{zyyyzz{{{{{|}~€€€€€€€‚‚€€€€~~}}}||{{{{zyxwwwxwwvvuuttuuwxxwutssstuvxyzzyyyxxxxxxyzzzzyyxxxwwxyz|}}}{zxwvvvwy{}~€€‚‚ƒ„„„„„„„ƒƒ„„„„ƒƒ‚‚€€€€‚ƒ„†‡‰‰ŠŠŠŠŠ‹‹Œ‹‹‹‹‹ŒŒŒ‹‹‹‹Š‰ˆ‡…„ƒ‚‚‚‚‚‚‚ƒƒƒƒƒ„„………„„„…††‡ˆˆ‡‡†…„ƒƒƒƒ„ƒƒ„„„…†‡ˆ‰ŠŠŠ‰‡†………††††††…………††††…„ƒ‚‚‚‚€~}|{{||}}}}}}||{{{{|}~~€€€€€‚‚‚‚€~}}}~€€€~~}}}}}~~~|{yxwwwvvvvvvvvvwwxzz{{{{zyxwwxz|}~~~~}}}|{zzz{{{zyxxy{|}~~€‚‚‚€~€‚‚‚€€€€~}||{|||}~~~~~~~~~~~~€‚‚ƒƒ„…††‡‡ˆˆ‰‰‰‰‰‰‰ŠŠŠŠŠ‰ˆ‡†…„ƒƒ‚‚‚‚€‚€~~~~~~~~~}}|{{|||}}~~~}||||}}~~~~€€€€~~}|||||||||}}}||{{{{{{zzzz{{{{{{{{{{{{{{{|||}||{zzzzzzzzzzyxwwwxyyzzzzzzz{{||}}||{{{|}~~~€€€€~}|{zzz{{|~‚ƒƒƒƒƒƒƒ„„„…†‡ˆˆˆ‡†„„ƒƒ‚‚‚‚‚„…††††……„„…†‡ˆ‰‰‰‰ˆ‡‡‡‡‡‡‡‡††………†‡‡‡‡††††††‡‡‡‡‡‡‡‡‡††††††††††††………„ƒƒ‚ƒ„„………„„„„„……††††††††††…„ƒ‚‚‚‚€~}|||||||{{zz{|}~~~~~€€€~}}}}|||||||{zyyyyyzzzzzyxxxxxyz{{||}}}~~~~~~~~~~~}}|{{zzzz{{|||}}}~~~€€~~~}}|||||}}}}}}}}}~~~€€€€€€€€€€€€€€€‚‚‚€€€€€€€€€€€€‚ƒƒ„„…†‡ˆˆ‰‰ŠŠ‹‹‹‹ŠŠ‹‹‹ŒŒŒ‹Š‰ˆˆ‡†……„„ƒ‚‚€€~~}}||{{zzyyyzyyyyyyzyyyzzz{{{{{{{{{|}~~€€€€€~}|{zyxwxxxxxxyzz{zzyxxxyyz{||{{zyxwwwwxyyyyyyzzzzyyz{||||||}}}{zz{|}~~}|{zyyyz|~~~|{zyyz|~~}}~‚ƒƒƒ‚‚‚„……†‡‡†…„ƒƒ„…‡ˆ‰ŠŠŠŠ‰ˆ‡…………†††…„‚€€ƒ…†‡‡†…„ƒ‚‚ƒƒ„……………„ƒƒƒ‚‚ƒƒƒƒƒƒ‚€€‚ƒ„………„„ƒƒƒ„…†‡‡‡†…„„„„„„…†††…„ƒƒ‚ƒƒ„……††††…„ƒƒƒ„„…………„ƒ‚€€~}||{{|||}}}}|{{zzzzz{{|}}}}||||||}}~~}|{{|}~~~}}|||||}}}||}}~~~~}}}}|||||||||||{{{{|||}}~~~~~~~~~~~~~~~~~~~~€‚‚‚€€€‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€‚‚‚‚‚‚ƒ„„„„„ƒ‚‚‚‚‚‚€€€€‚‚‚‚‚‚‚‚‚‚ƒ„…†††…„ƒ‚‚‚‚‚‚‚‚€€€€€~}}||}}||{zyyyz{{|||{zyxxxyz{|}~€€€€‚‚€~~~~}}}}}}}}}}||{{{{{{{{{{zzyyxxyzz{{{zyxxxy{|}}~~}}}}~~~~~~~~}|{zz{{{{{||{{z{|}~€‚‚‚‚€}}|}~~~~~€€€€€€€‚ƒƒ„„„………„„„„„„„„……†††………„„ƒ‚‚‚ƒƒƒƒƒ‚‚‚ƒƒƒ„…††††…„„„„…………………………††‡‡‡‡††……„„„„„………††………„„„„„„„„„ƒƒƒƒƒƒƒƒ‚‚€~~~~~~~~~}}|||{{{{{||{{{{zzzyzzz{{||}}}}}||}~€~}||||}~€€~}|||}}~~}||{||}~~}|{zzz{|}~~~}}~~~~~€~~~~~~~~~~~}|||}~~}}}}~€‚‚‚€€€€€€€€‚‚‚‚‚‚‚‚‚‚ƒƒ„„„„ƒƒƒ‚‚‚‚‚‚ƒƒƒ‚‚ƒƒ„„………††††††††††……„ƒƒ‚‚€€€€€€€~}}}|||{{{{{{zzzzyyyyyyzzzzzzzzzz{{{{{|}~~~~~~€‚ƒƒƒ‚‚€€~~}}}}}~~~}}||{{{{{{{{{zyyyyyyzz{|}}|{{zz{{{{{{|}}}}}}}~€€€€€€€€€€€€€€€€€‚‚‚‚‚‚ƒƒƒƒ„„……„ƒƒ‚ƒƒƒƒƒƒƒƒƒƒƒ‚‚‚ƒƒ„„ƒƒƒ‚‚‚‚‚ƒƒ„„ƒƒ‚‚‚ƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ‚‚‚‚‚‚€~}~~€‚‚‚‚‚ƒƒƒƒƒƒ‚‚€€‚ƒ„……………„ƒƒ‚‚‚‚‚ƒƒƒ‚‚‚€€~~~~~}}||||||{{zzzzzzzzzz{||||||}}}~~~~~}}||}}~~~~~~~~~~~~~~~~~}}}}}}}}}|||}}}}}}||{{{{||}}~}}}}}}~~~€€€€€‚‚‚€€‚‚‚‚€€€€€€€€€€€€€€€‚‚‚‚‚‚ƒƒƒ‚‚‚‚‚‚ƒ„„„„ƒƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚€€~~}}}}}}~~~~}}|||}}}}}}||{{{||}~~~}}}~~€€€€€€€€€€€€€~~}}}}}|||}|||||{{{{||}}~~}|||{|||||}}|||{{{||}~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€‚ƒƒƒ„„„„………………††‡‡‡†…„„ƒƒƒƒ„„……„„ƒƒƒƒƒ„„„ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚€€€€€€€€€~~~}}}}}|||||||}}}}}}}~~~~~~}}}||||||||||||||||||}}}}~~~~~~~€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€~~€€€€€€€€€€€€‚€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒ‚ƒƒƒƒƒ„„„ƒƒƒƒƒƒƒ„„„ƒƒƒƒƒƒƒ‚‚‚€~~}}}}}}||||||{{{zzzz{{{{{{{{{||||}}}~~~~~~€€€€€€€€€€€€~~~}}}}||{{zzyyyz{{||||||||}~€€€~~~~~~}~~~~~}|||||}~€€€~~~~~~€€€€€€€€‚‚‚‚‚‚€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚‚‚‚ƒ„„„„„ƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚€€€€€€~~~}~~~~~~~~~}}~~~~~}}}}}~~~}}}}}}}}~~~~~~~~€€€€€€€€€€€€€€€€€€€~~~~~~~€~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~€€€€€€€€€€~~~~}}}}}}}||||||}}}~~~}}}}}}}}}}}}}}}}}}}}}}}~~~~~~€€€~}}}~~~~~}}}}~~~~€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~}}}}}}}}}}}}}}}}~~~}}}}}}}}~~~~~~~~€€€€€€€€€€€€€€‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~€€€~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€lgeneral-1.3.1/lgc-pg/convdata/select.wav0000664000175000017500000000770212140770460015205 00000000000000RIFFºWAVEfmt "VD¬LIST:INFOINAMselectIARTMarkus KoschanyICRD2012dataTíÿC 5ÿèÿà4ÿØþ‹ðþ’þ8[ýþ¼Eý'ýÎØÿÿ þ|ÿâáÕú©þòýÿSþ9êþ>þý¸þâåüíùã¾ú‚ô™P ið‡ó#‚¤ë ú»§ø_î& ÿëõ /Hè ü,Zï ði•ü»ôrþç ¥ 3ïkõz> ûÍô’ :úéúpðã$’íô„Ìò Ê kñföÉÅ Zç"ýÞ…ìÏÙ–èËùñûö›ú©ðÿðåYèAЇ÷lä0 ¡Žéª%™ûiéö÷øhù‚ š÷û¥ ÿ`ü¸?úRÒ Ñîv ù ës÷ëËè'/ùïàæðï÷pNDò8þ ˜üSõ •åYõüè,½ótôL ‘ð#~þ”ôØ4ùÿ— ô÷Âó÷¶úÁû¯ÿ?÷ý«óüû@Çùïv \ÁÜ÷k â§ýÃýèI÷¾æö¯ö×¥ùàùÝù¦õ‘ûÃ÷gõ)´÷úö(âøyû#øùNûÍø[ü¯ý"ñ ÷7 …ðÖît«û=î\üIóð%ÅïJýÏø§ø(û¢ômú=ö&ú0÷-þ©ýyõhúytùcø†þ©÷¹ñh †Xèþ˜ôhøëîì÷†ø¨ÿEÿçôùb 2ü íðü‡õû-òDýÒvùö󱦦îò Ôÿ1ålü™þLþ,ü=ûtÿÙüaüÎüÂü\úLûÏýàÿýŠöUùÿéýUüýýÃú^ý¼ýtûRüÏý•ûõû´ýÞüü%ýýþ.ü%û ÿTÿ–øúýzýøæÏü2ìý1žþ5þÒüþ™ÿóÿþÿÿÿþÿýÿÿÿþÿþÿþÿüÿüÿÿÿþÿüÿýÿþÿþÿþÿýÿýÿþÿüÿýÿÿÿÿÿüÿþÿþÿþÿþÿþÿþÿÿÿýÿýÿøÿúÿýÿþÿÿÿÿÿýÿûÿÿÿÿÿþÿýÿþÿýÿùÿúÿúÿûÿÿÿÿÿÿÿýÿüÿýÿýÿüÿýÿþÿþÿýÿþÿýÿüÿýÿþÿÿÿþÿþÿûÿüÿÿÿÿÿþÿüÿþÿüÿÿÿþÿýÿÿÿüÿùÿüÿüÿþÿÿÿþÿüÿúÿÿÿýÿýÿûÿûÿýÿþÿýÿÿÿþÿùÿûÿÿÿþÿýÿüÿúÿýÿýÿýÿÿÿÿÿþÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿüÿüÿýÿýÿÿÿýÿýÿÿÿþÿþÿÿÿýÿþÿþÿÿÿýÿÿÿÿÿþÿþÿýÿüÿüÿþÿÿÿÿÿýÿüÿÿÿýÿÿÿþÿùÿüÿþÿýÿþÿþÿýÿþÿÿÿüÿüÿÿÿÿÿÿÿÿÿÿÿÿÿýÿýÿþÿþÿÿÿþÿÿÿýÿýÿþÿýÿÿÿÿÿÿÿÿÿþÿùÿùÿþÿþÿúÿøÿ ÷ÿúÿþÿÿÿýÿÿÿýÿþÿÿÿÿÿþÿýÿÿÿÿÿþÿýÿýÿýÿùÿøÿúÿúÿüÿþÿÿÿþÿýÿÿÿýÿþÿýÿÿÿÿÿÿÿÿÿÿÿûÿýÿüÿúÿýÿÿÿÿÿüÿýÿüÿýÿûÿÿÿÿÿÿÿÿÿüÿþÿýÿþÿÿÿÿÿþÿþÿÿÿÿÿüÿüÿüÿüÿÿÿÿÿýÿÿÿþÿþÿüÿüÿýÿÿÿÿÿþÿþÿÿÿüÿûÿûÿûÿüÿýÿüÿÿÿÿÿÿÿýÿþÿÿÿþÿûÿýÿÿÿÿÿþÿÿÿþÿýÿÿÿÿÿþÿýÿüÿÿÿþÿÿÿÿÿüÿüÿþÿþÿûÿúÿÿÿÿÿþÿüÿþÿÿÿÿÿþÿûÿýÿûÿüÿÿÿüÿúÿüÿÿÿþÿüÿþÿÿÿþÿúÿ÷ÿ øÿÿÿþÿúÿýÿÿÿùÿ÷ÿúÿüÿÿÿÿÿþÿýÿÿÿÿÿüÿýÿþÿþÿüÿýÿûÿúÿþÿÿÿþÿþÿýÿýÿûÿþÿÿÿÿÿþÿþÿÿÿüÿûÿÿÿÿÿüÿþÿþÿÿÿþÿüÿýÿüÿýÿÿÿÿÿÿÿýÿÿÿÿÿÿÿüÿþÿýÿÿÿýÿþÿþÿýÿþÿýÿüÿÿÿÿÿýÿÿÿÿÿÿÿþÿýÿþÿüÿûÿÿÿýÿüÿþÿûÿûÿÿÿýÿþÿÿÿÿÿþÿúÿûÿþÿÿÿÿÿþÿþÿüÿüÿüÿüÿþÿþÿûÿùÿÿÿÿÿÿÿýÿýÿüÿüÿûÿýÿýÿþÿýÿþÿüÿúÿüÿüÿûÿþÿüÿþÿýÿþÿýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿûÿûÿÿÿÿÿüÿûÿüÿüÿûÿùÿ÷ÿ úÿÿÿÿÿÿÿþÿþÿýÿúÿýÿÿÿýÿþÿÿÿÿÿþÿüÿýÿþÿþÿýÿþÿþÿýÿþÿÿÿþÿÿÿÿÿýÿ÷ÿ öÿþÿúÿüÿÿÿþÿþÿþÿûÿúÿüÿýÿþÿûÿüÿþÿÿÿþÿýÿÿÿÿÿýÿûÿÿÿþÿýÿÿÿþÿüÿúÿùÿýÿÿÿþÿüÿûÿþÿüÿýÿþÿûÿùÿúÿÿÿÿÿþÿûÿûÿÿÿþÿûÿúÿþÿþÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿûÿûÿýÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿýÿýÿþÿÿÿÿÿÿÿýÿûÿýÿÿÿüÿýÿüÿüÿþÿÿÿÿÿüÿþÿûÿÿÿÿÿýÿýÿÿÿÿÿÿÿþÿüÿýÿÿÿþÿþÿþÿüÿüÿüÿüÿþÿÿÿÿÿÿÿûÿÿÿÿÿÿÿþÿûÿÿÿþÿüÿþÿÿÿýÿùÿúÿûÿÿÿþÿýÿýÿüÿÿÿÿÿÿÿýÿÿÿÿÿûÿùÿÿÿþÿÿÿþÿþÿýÿýÿÿÿÿÿþÿúÿýÿÿÿþÿÿÿüÿýÿþÿýÿþÿÿÿýÿüÿüÿÿÿþÿúÿûÿûÿùÿýÿþÿüÿþÿýÿþÿÿÿþÿýÿþÿÿÿýÿýÿýÿýÿþÿþÿýÿÿÿÿÿýÿúÿúÿýÿþÿÿÿlgeneral-1.3.1/lgc-pg/convdata/strength.bmp0000664000175000017500000010357212140770460015547 00000000000000BMz‡zl h‡ë ë BGRs¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èè踸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨èè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨èèè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èè踸¨¸¸¨¸¸¨èè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨èèè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨訨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èè踸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨èèè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èè踸¨¸¸¨¸¸¨èèè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èè踸¨¸¸¨¸¸¨èè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èè踸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨訨¨¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨訨¨¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨訨¨¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨訨¨¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èèè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨訨¨¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨訨¨¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èèè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èèè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¨¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨訨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èèè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èèè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨èè踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨è踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨踸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨¸¸¨ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹ ²‹lgeneral-1.3.1/lgc-pg/convdata/COPYING0000664000175000017500000000160012140770460014231 00000000000000The following sounds are based on sound samples from freesound.org. They have been released under the Attribution 3.0 Unported (CC BY 3.0) license. They were later adapted for LGeneral by Markus Koschany in 2012 and released under the same license as LGeneral itself. We would like to thank the following members of freesound.org for their contributions. air.wav ====== daveincamas http://www.freesound.org/people/daveincamas/sounds/43807/ air2.wav ======= digifishmusic http://www.freesound.org/people/digifishmusic/sounds/47347/ battle.wav ========= Omar Alvarado http://www.freesound.org/people/Omar%20Alvarado/sounds/93741/ leg.wav ====== mattbronka http://www.freesound.org/people/mattbronka/sounds/48048/ sea.wav ======= Luftrum http://www.freesound.org/people/Luftrum/sounds/48412/ wheeled.wav =========== Percy Duke http://www.freesound.org/people/Percy%20Duke/sounds/24023/ lgeneral-1.3.1/lgc-pg/convdata/Makefile.in0000664000175000017500000003654512643745056015276 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = lgc-pg/convdata DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs COPYING ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(convdatadir)" DATA = $(convdata_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ convdatadir = $(inst_dir)/convdata convdata_DATA = \ crosshair.bmp damage_bars.bmp fog.bmp grid.bmp select_frame.bmp \ strength.bmp air2.wav air.wav leg.wav sea.wav wheeled.wav tracked.wav \ battle.wav attack.bmp move.bmp select.wav reinf danger.bmp \ guard.bmp title.bmp EXTRA_DIST = $(convdata_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lgc-pg/convdata/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign lgc-pg/convdata/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-convdataDATA: $(convdata_DATA) @$(NORMAL_INSTALL) @list='$(convdata_DATA)'; test -n "$(convdatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(convdatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(convdatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(convdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(convdatadir)" || exit $$?; \ done uninstall-convdataDATA: @$(NORMAL_UNINSTALL) @list='$(convdata_DATA)'; test -n "$(convdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(convdatadir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(convdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-convdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-convdataDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ctags-am distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-convdataDATA \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags-am uninstall uninstall-am \ uninstall-convdataDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/lgc-pg/convdata/select_frame.bmp0000664000175000017500000002153612140770460016341 00000000000000BM^#6(<2(#à à ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,lgeneral-1.3.1/lgc-pg/convdata/attack.bmp0000664000175000017500000000055212140770460015152 00000000000000BMjzl ð  BGRsäååäååäååäååÿÿäååÿÿäååÿÿäååÿÿäååÿÿäååÿÿäååÿÿäååäååäåålgeneral-1.3.1/lgc-pg/convdata/Makefile.am0000644000175000017500000000046012477104100015226 00000000000000convdatadir = $(inst_dir)/convdata convdata_DATA = \ crosshair.bmp damage_bars.bmp fog.bmp grid.bmp select_frame.bmp \ strength.bmp air2.wav air.wav leg.wav sea.wav wheeled.wav tracked.wav \ battle.wav attack.bmp move.bmp select.wav reinf danger.bmp \ guard.bmp title.bmp EXTRA_DIST = $(convdata_DATA) lgeneral-1.3.1/lgc-pg/convdata/title.bmp0000664000175000017500000113006612140770460015031 00000000000000BM6°6(@ð °ë ë SSSÿTTTÿSSSÿOOOÿWWWÿYXZÿRRRÿ^^_ÿMLNÿJJLÿJJLÿJJLÿJJLÿIHJÿJJJÿJJJÿLKLÿMLNÿMLOÿMLOÿnnoÿihhÿZZZÿPPPÿTTTÿqppÿzxxÿtstÿtstÿwvvÿxwwÿxwwÿtstÿmllÿkkkÿdddÿffgÿVVWÿUTVÿTTTÿ^\^ÿrrrÿgggÿNNNÿRRSÿmllÿnnnÿZZ[ÿMLNÿJJJÿbbcÿkjkÿdcdÿ`_`ÿTTTÿOOOÿUTVÿNNNÿUTVÿ`_`ÿUTWÿPOQÿYXZÿSRTÿHGHÿJJJÿKKKÿTSTÿMLNÿTTTÿihhÿkkkÿkjkÿSRTÿMLOÿLKNÿEDFÿCCCÿEDDÿGGGÿFFFÿDCDÿBBBÿ@@@ÿ@@@ÿ??@ÿGGGÿKKKÿQPRÿLLLÿNNNÿLLLÿRRRÿPPPÿOOOÿJJJÿKKKÿJJJÿLLLÿLLLÿNNNÿLLLÿNNNÿLLLÿKKKÿKKKÿLKLÿNNNÿLLLÿLLLÿNNNÿPPPÿIHHÿOOOÿOOOÿLLLÿNNNÿNNNÿJJJÿNNNÿKKKÿKKKÿKKKÿKKKÿKKKÿIHHÿNNNÿKKKÿLLLÿKKKÿLLLÿRRRÿRRRÿOOOÿPPPÿPPPÿNNOÿOOOÿIHHÿLLLÿLLLÿLKLÿNNNÿMLNÿPOQÿJKLÿJJKÿJKLÿMLNÿJJKÿIHJÿJJKÿ@@@ÿEDFÿIHHÿLKLÿJJJÿJJKÿIHHÿHGHÿIHHÿFFGÿIHHÿHGHÿIHJÿIHJÿIHJÿMLNÿMLNÿMLNÿMLNÿMLOÿPOQÿMLNÿONQÿNNNÿNNNÿNNNÿLKLÿPOQÿFFFÿA@BÿIHHÿMLOÿQPRÿMLNÿOOOÿNNNÿPOQÿTSTÿQPRÿQPRÿPOQÿQPRÿUTVÿUTVÿTSTÿUTVÿPPPÿJJJÿFFFÿCCCÿNNNÿPPPÿRRRÿTTTÿVVVÿTTTÿSSSÿTTTÿTTTÿ[[[ÿ[[[ÿ\[\ÿSSSÿXXXÿOOOÿNNNÿRRRÿPPPÿSSSÿUTVÿOOOÿOOOÿNNNÿKKKÿOOOÿLLLÿNNNÿLLLÿPPPÿRRRÿZZ[ÿkkkÿqppÿtstÿwvvÿwvvÿtstÿwvvÿxwwÿtstÿpopÿpopÿqppÿqppÿpopÿedfÿkjkÿkjkÿkkkÿjjjÿkjkÿnnoÿrrrÿihhÿqppÿwvvÿwvvÿlklÿihhÿrrrÿrrrÿoooÿqppÿrrrÿrrrÿoooÿgggÿgggÿXXXÿcccÿLLLÿJJJÿGGGÿNNNÿTSTÿFFGÿFFGÿLKLÿMLNÿGGGÿHGHÿEDFÿEDDÿ??@ÿBBCÿ@@@ÿIHHÿLKLÿMLNÿLKLÿIHHÿJJJÿSSSÿ```ÿ^\^ÿ^\^ÿ^\^ÿZZZÿ^\^ÿZZZÿZZZÿVVVÿWWWÿ^\^ÿ___ÿ[[[ÿ^^^ÿ```ÿ```ÿ`_`ÿedfÿkkkÿsssÿtstÿtttÿtttÿtttÿsssÿmllÿnnnÿmllÿihhÿdddÿZZ[ÿPPPÿPPPÿIHJÿHGHÿFFGÿEDFÿDCDÿEDDÿEDFÿDCDÿEDFÿFFGÿGGGÿJJJÿmlnÿpopÿihhÿZZ[ÿNNNÿJJJÿbbcÿwvvÿtstÿqppÿtstÿwvvÿrrrÿmllÿkjkÿmllÿa`bÿUTVÿSSSÿVVWÿmlnÿqppÿnnnÿUTVÿWWWÿihhÿ^\^ÿMLOÿPOQÿLKLÿQPRÿlklÿnnoÿmlnÿhghÿ[[[ÿXXXÿUTVÿOOOÿ\[\ÿffgÿ\[^ÿ\[^ÿ^\^ÿRRSÿONQÿQPRÿTSTÿUTWÿTTTÿgggÿoooÿqppÿkjkÿUTWÿPOQÿEDFÿBBCÿFFFÿIHHÿLKLÿEDFÿEDDÿCCCÿCCCÿEDFÿHGHÿLLLÿJJKÿNNNÿTSTÿRRRÿNNNÿOOOÿLLLÿNNNÿPPPÿRRRÿNNNÿOOOÿPPPÿNNNÿLLLÿLLLÿRRRÿPPPÿLLLÿPPPÿNNNÿNNNÿOOOÿNNNÿGGGÿNNNÿNNNÿNNNÿOOOÿOOOÿNNNÿNNNÿNNNÿKKKÿKKKÿKKKÿNNNÿOOOÿLLLÿKKKÿKKKÿIHHÿNNNÿVVVÿNNNÿKKKÿKKKÿKKKÿJJJÿIHHÿKKKÿJJKÿIHHÿGGGÿKKKÿGGGÿIHHÿFFFÿHGHÿHGHÿHGHÿIHHÿKKKÿKKKÿDCDÿCCFÿHGHÿHGHÿIHHÿIHJÿIHJÿIHHÿIHHÿHGHÿHGHÿHGHÿIHJÿHGHÿHGHÿHGHÿHGHÿJJJÿJJJÿJJJÿJJJÿIHHÿJJLÿJJJÿLKLÿMLNÿMLNÿMLNÿEDFÿJJJÿPOQÿOOOÿOOOÿMLNÿMLNÿPOQÿPOQÿQPRÿMLNÿOOOÿOOOÿOOOÿQPRÿUTVÿUTVÿWWWÿRRRÿPPPÿKKKÿFFFÿOOOÿRRRÿPPPÿRRRÿSSSÿVVVÿTTTÿSSSÿSSSÿVVVÿTTTÿSSSÿVVVÿPPPÿRRRÿRRSÿTTTÿTTTÿWWWÿTSTÿRRRÿNNNÿNNNÿLLLÿOOOÿLLLÿKKKÿNNNÿLLLÿRRRÿSSSÿ___ÿmllÿrrrÿtstÿwvvÿtstÿtstÿwvvÿsssÿtstÿffgÿdcdÿgggÿgggÿkjkÿihhÿkjkÿtstÿpopÿkjkÿnnnÿtstÿnnoÿwvvÿtstÿwvvÿqppÿrrrÿsssÿwvvÿkjkÿsssÿrrrÿqppÿsssÿoooÿihhÿ^\^ÿGGGÿLLLÿNNNÿPOQÿNNNÿNNNÿIHJÿLKLÿIHJÿJJJÿQPRÿEDFÿFFGÿBBBÿ@@@ÿEDDÿ??@ÿFFGÿGGGÿIHHÿIHHÿFFFÿLLLÿVVVÿ[[[ÿ^\^ÿ^\^ÿ^\^ÿZZZÿXXXÿTTTÿWWWÿVVVÿVVVÿ[[[ÿYXZÿ^\^ÿZZZÿffgÿkjkÿlklÿnnoÿqppÿsssÿsssÿsssÿsssÿsssÿqppÿoooÿoooÿmllÿgggÿZZZÿZZZÿCCCÿEDDÿCCCÿDCDÿDCDÿDCDÿDCDÿEDFÿEDFÿDCDÿDCDÿEDFÿEDDÿHGHÿ^\^ÿmllÿkkkÿmllÿ\[\ÿOOOÿGGGÿKKKÿfffÿnnoÿqppÿqppÿqppÿoooÿfffÿihhÿUTVÿTTTÿRRSÿZZZÿffgÿTTTÿVVWÿdcdÿJJJÿMLNÿMLNÿJJJÿJJJÿMLOÿMLOÿQPRÿmlnÿpopÿpopÿffgÿVVWÿXXXÿVVVÿQPRÿ^\^ÿa`bÿYXZÿZZ[ÿZZ[ÿSRTÿQPRÿYXZÿVVWÿSSSÿ```ÿqppÿtstÿmlnÿ^\^ÿPOQÿBBCÿBBCÿ??@ÿCCCÿEDDÿBBBÿFFFÿGGGÿDCDÿBBBÿCCCÿIHHÿGGGÿIHHÿNNNÿSSSÿOOOÿSSSÿRRRÿOOOÿRRRÿWWWÿTTTÿOOOÿPPPÿPPPÿRRRÿRRRÿPPPÿPPPÿSSSÿVVVÿPPPÿOOOÿSSSÿTTTÿLLLÿPPPÿRRRÿPPPÿSSSÿXXXÿRRRÿOOOÿNNNÿKKKÿLLLÿOOOÿNNNÿNNNÿNNNÿOOOÿOOOÿNNNÿJJJÿNNNÿOOOÿNNNÿPPPÿJJJÿKKKÿLLLÿKKKÿGHJÿKKKÿLLLÿGHJÿFFFÿHGHÿHGHÿFEIÿGGGÿFFGÿGGGÿHGHÿHGHÿIHJÿGGGÿFFGÿIHHÿIHHÿFFGÿFFGÿHGHÿIHHÿIHJÿGGGÿHGHÿHGHÿFFGÿIHHÿGGGÿFFGÿIHJÿIHHÿIHHÿIHJÿHGHÿJJJÿIHHÿIHJÿJJJÿGGGÿGGGÿLKNÿNNNÿPOQÿMLNÿNNOÿMLNÿMLOÿQPRÿTSTÿMLOÿPOQÿPOQÿJJJÿJJJÿMLNÿQPRÿQPRÿRRRÿVVVÿTTTÿXXXÿWWWÿTTTÿRRRÿSSSÿTTTÿTTTÿVVVÿTTTÿSSSÿVVVÿTTTÿVVVÿVVVÿXXXÿOOOÿRRRÿTTTÿZZZÿ^\^ÿ^\^ÿVVVÿUTVÿPPPÿQPRÿLLLÿNNNÿRRRÿSSSÿOOOÿKKKÿRRRÿSSSÿVVVÿ^\^ÿgggÿnnoÿtstÿwvvÿqprÿwvvÿwvvÿtstÿqppÿfffÿffgÿbbcÿkjkÿffgÿqprÿqppÿqprÿnnnÿlklÿmllÿrrsÿwvvÿzxxÿrrrÿkjkÿtstÿwvvÿtstÿrrrÿtstÿtttÿsssÿsssÿsssÿ^^^ÿHGHÿNNNÿMLNÿLKLÿIHHÿHGHÿIHJÿIHHÿJJJÿIHHÿONQÿNNNÿBBBÿ@@@ÿDCDÿEDFÿBBCÿBBCÿEDFÿIHHÿIHHÿGGGÿKKKÿYXZÿ^\^ÿ[[[ÿYXZÿVVWÿWWWÿWWWÿVVVÿRRRÿZZZÿXXXÿZZ[ÿcccÿZZ[ÿbbcÿedfÿnnnÿnnnÿnnoÿqppÿqppÿsssÿrrrÿrrrÿrrrÿqppÿkkkÿoooÿqppÿnnnÿgggÿLLLÿJJJÿFFGÿDCDÿBBCÿCCCÿDCDÿDCDÿDCDÿDCDÿDCDÿEDFÿEDDÿHGHÿFFGÿKKKÿTSTÿjjjÿmllÿqppÿsssÿnnnÿcccÿRRRÿGGGÿQPRÿkkkÿtstÿxwwÿzxxÿzxxÿtstÿ```ÿVVVÿXXXÿffgÿtstÿkjkÿhghÿa`bÿIHHÿIHJÿHGHÿIHJÿMLOÿIHJÿJJLÿFFGÿSRTÿkjkÿkjkÿa`bÿ^\^ÿVVWÿRRRÿNNOÿJJKÿa`bÿbbcÿUTVÿQPRÿ^^`ÿMLOÿJJKÿLKLÿQPRÿWWWÿdddÿtstÿtstÿa`bÿLKLÿA@Bÿ@@@ÿBBCÿEDDÿJJJÿGGGÿFFFÿCCCÿ@@@ÿBBBÿGGGÿBBBÿKKKÿIHHÿNNNÿOOOÿOOOÿLLLÿRRRÿTTTÿTTTÿVVVÿVVVÿOOOÿPPPÿRRRÿRRRÿVVVÿVVVÿTTTÿOOOÿPPPÿPPPÿSSSÿOOOÿNNNÿIHHÿOOOÿOOOÿPPPÿPPPÿTTTÿNNNÿPPPÿPPPÿRRRÿNNNÿJJJÿJJJÿLLLÿKKKÿJKLÿKKKÿLLLÿJJKÿLLLÿLLLÿKKKÿKKKÿKKKÿKKKÿIHHÿLLLÿIHHÿJJJÿKKKÿJJKÿJJJÿJJJÿJKLÿHGHÿGGGÿFFGÿHGHÿFFGÿFFGÿHGHÿBBBÿEDFÿHGHÿFFFÿEDFÿGGGÿHGHÿFFGÿHGHÿGGGÿFFFÿFFGÿFFGÿHGHÿHGHÿHGHÿIHHÿHGHÿFFGÿIHJÿIHHÿHGHÿIHHÿFFFÿEDFÿIHJÿFFGÿRRSÿNNNÿNNOÿNNOÿOOOÿLKLÿMLNÿMLNÿLKLÿPOQÿMLOÿNNOÿEDFÿGGGÿQPRÿUTVÿTSTÿUTVÿOOOÿPPPÿSSSÿPPPÿVVVÿTTTÿRRRÿTTTÿWWWÿWWWÿVVVÿWWWÿVVVÿRRRÿVVVÿVVVÿ^\^ÿRRSÿVVVÿTTTÿXXXÿYXZÿVVVÿYXZÿTTTÿOOOÿVVWÿRRRÿPPPÿTTTÿSSSÿNNNÿKKKÿKKKÿRRRÿTTTÿXWYÿ^^_ÿbbbÿkjkÿtstÿrrrÿtstÿtstÿwvvÿtstÿnnoÿbbcÿcccÿlklÿtttÿtttÿqppÿrrrÿnnnÿrrrÿrrrÿwvvÿzxxÿxwwÿnnnÿkkkÿwvvÿwvvÿrrrÿtstÿrrrÿtttÿrrrÿtstÿMLNÿKKKÿLKLÿGGGÿMLNÿHGHÿJJJÿIHHÿIHHÿIHHÿIHHÿOOOÿQPRÿIHJÿIHJÿIHJÿIHHÿIHHÿIHHÿGGGÿIHHÿIHHÿIHHÿMLNÿZZZÿ\[\ÿ[[[ÿXWYÿWWWÿXWYÿSSSÿRRRÿSSSÿVVVÿ^^^ÿfffÿkkkÿcccÿa`bÿgggÿkjkÿqppÿoooÿqppÿqppÿqppÿqppÿrrrÿoooÿnnnÿnnnÿmllÿmllÿsssÿrrrÿnnnÿ^^^ÿMLOÿLKLÿIHJÿHGHÿHGHÿIHJÿIHJÿIHJÿKKKÿLKLÿLKLÿLKLÿMLNÿMLNÿQPRÿVVWÿdddÿxwwÿzxxÿwvvÿzxxÿzxxÿqppÿ___ÿVVVÿPPPÿ___ÿtttÿ{z{ÿ{z{ÿzxxÿmllÿ^^^ÿ___ÿkjkÿihhÿpopÿQPRÿPOQÿJJLÿJJLÿIHJÿFEIÿJJLÿIHJÿFFGÿCCFÿJJLÿPOQÿhghÿkjkÿbbbÿffgÿSRTÿNNOÿNNOÿNNNÿXWYÿ^^^ÿQPRÿ^^`ÿ`_`ÿJJJÿIHJÿUTWÿUTWÿXWYÿsssÿtttÿXXXÿJJJÿCCCÿ??@ÿ??@ÿFFFÿA@BÿBBCÿCCCÿBBBÿBBBÿ??@ÿ>=>ÿ??@ÿ??@ÿNNNÿRRRÿNNNÿVVVÿOOOÿPPPÿRRRÿOOOÿNNNÿTTTÿRRRÿPPPÿRRRÿOOOÿPPPÿSSSÿOOOÿNNNÿNNNÿRRRÿRRRÿPPPÿOOOÿLLLÿRRRÿOOOÿLLLÿOOOÿLLLÿNNNÿTTTÿLLLÿRRRÿKKKÿLLLÿKKKÿJJJÿKKKÿLLLÿLLLÿLLLÿJKLÿKKKÿLLLÿJKLÿNNNÿNNNÿGHJÿNNNÿHGHÿJJKÿLLLÿGGGÿGGGÿFFGÿIHJÿHGHÿHGHÿHGHÿHGHÿJKLÿGGGÿGGGÿGGGÿFFFÿFFFÿGGGÿFFGÿFFGÿFFFÿFFGÿFFGÿFFGÿFFFÿFFGÿFFFÿFFGÿFFGÿFFGÿFFGÿFFGÿFFGÿGGGÿGGGÿFFGÿHGHÿEDDÿ??@ÿDCDÿJJJÿONQÿQPRÿJJJÿLKLÿMLNÿMLNÿJJJÿMLNÿQPRÿOOOÿJJJÿEDFÿBBCÿDCDÿCCCÿIHJÿQPRÿQPRÿRRRÿTTTÿVVVÿTTTÿSSSÿTTTÿWWWÿXXXÿRRRÿSSSÿVVVÿWWWÿVVVÿZZZÿ\\\ÿ[[[ÿZZZÿWWWÿOOOÿSSSÿVVWÿZZZÿ[[[ÿZZZÿXXXÿWWWÿXXXÿXXXÿZZZÿTTTÿWWWÿTTTÿWWWÿLLLÿNNNÿPPPÿVVWÿXXXÿXXXÿ^^^ÿdddÿrrrÿwvvÿwvvÿwvvÿrrrÿoooÿkkkÿmllÿtttÿrrsÿutvÿtstÿtstÿwvvÿwvvÿtttÿwvvÿxwwÿwvvÿwvvÿdcdÿnnnÿrrrÿqppÿtstÿrrrÿqppÿtstÿrrrÿTSTÿJJJÿGGGÿHGHÿJJJÿHGHÿIHHÿIHJÿJJJÿKKKÿJJJÿJJJÿMLNÿOOOÿGGGÿGGGÿLKLÿIHHÿFFFÿHGHÿFFFÿFFGÿLLLÿVVVÿ`_`ÿZZ[ÿ^\^ÿXWYÿVVWÿUTVÿQPRÿTTTÿSSSÿXXXÿdddÿjjjÿgggÿmllÿTTTÿRRSÿihhÿlklÿqppÿoooÿnnnÿnnnÿqppÿrrrÿrrrÿkjkÿmllÿmllÿmllÿfffÿqppÿrrrÿoooÿmllÿ\[\ÿPOQÿMLNÿMLNÿMLNÿMLOÿMLNÿOOOÿONQÿMLOÿMLNÿMLNÿPOQÿMLNÿPOQÿVVVÿZZZÿsssÿzzzÿtstÿzxxÿzzzÿzxxÿxwwÿqprÿdcdÿWWWÿTSTÿkjkÿwvvÿoooÿ^^_ÿRRSÿVVVÿUTVÿRRRÿkjkÿQPRÿMLNÿJJLÿJJLÿHGHÿFEIÿJJLÿIHJÿHGHÿEDFÿJJLÿFFGÿVVVÿmlnÿa`bÿnnoÿihhÿPOQÿVVVÿTSTÿGGGÿ^\^ÿRRSÿXWYÿ^\^ÿ^^`ÿONQÿSRTÿPOQÿZZ[ÿ___ÿa`bÿLLLÿFFGÿEDFÿBBCÿFFFÿGGGÿEDDÿEDDÿEDDÿDCDÿEDDÿBBBÿBBBÿDCDÿA@BÿEDDÿPPPÿRRRÿPPPÿKKKÿNNNÿOOOÿNNNÿNNNÿOOOÿNNNÿNNNÿKKKÿNNNÿLLLÿNNNÿLLLÿRRRÿNNNÿOOOÿOOOÿNNNÿNNNÿOOOÿOOOÿRRRÿOOOÿOOOÿPPPÿPPPÿLLLÿLLLÿOOOÿOOOÿNNNÿLLLÿLLLÿKKKÿLLLÿLLLÿLLLÿKKKÿKKKÿKKKÿKKKÿJJJÿNNNÿMLNÿJJJÿJJJÿIHHÿKKKÿJJJÿHGHÿEDFÿIHHÿHGHÿEDFÿFFFÿFFGÿHGHÿGGGÿHGHÿFFGÿCCCÿ@@@ÿFFFÿFFGÿFFGÿFFFÿFFFÿEDFÿFFGÿFFGÿFFGÿFFGÿFFGÿFFGÿFFGÿFFGÿGGGÿGGGÿGGGÿFFGÿFFFÿCCCÿ??@ÿDCDÿIHHÿJJJÿJJLÿLKLÿIHJÿLKLÿJJJÿLKLÿLKLÿLLLÿNNNÿNNNÿLKLÿIHJÿDCDÿDCDÿA@BÿBBBÿOOOÿQPRÿRRRÿTTTÿSSSÿRRRÿRRRÿTTTÿTTTÿTTTÿTTTÿVVVÿVVVÿXXXÿXXXÿWWWÿXXXÿZZZÿ\\\ÿ^^^ÿTTTÿVVVÿTTTÿWWWÿVVVÿVVVÿVVVÿSSSÿTTTÿVVVÿVVVÿWWWÿVVVÿNNNÿ___ÿTTTÿSSSÿZZZÿPPPÿPPPÿVVVÿ[[[ÿ^\^ÿjjjÿtstÿtstÿnnnÿmllÿihhÿihhÿ\[\ÿfffÿtstÿsssÿwvvÿzxxÿxwwÿwvvÿxwwÿwvvÿxwwÿwvvÿtttÿkkkÿrrrÿtstÿoooÿqppÿ^\^ÿIHHÿJJJÿIHHÿIHJÿJJJÿIHHÿIHHÿIHHÿIHHÿIHHÿIHHÿIHJÿLLLÿLKLÿMLNÿTSTÿOOOÿTSTÿTSTÿNNNÿIHJÿIHHÿGGGÿIHHÿIHHÿNNNÿZZ[ÿXWYÿ[[[ÿYXZÿVVWÿVVVÿXXXÿVVWÿRRRÿcccÿkkkÿjjjÿjjjÿihhÿfffÿcccÿkjkÿkkkÿkkkÿoooÿoooÿqppÿrrrÿnnnÿoooÿkkkÿkkkÿgggÿihhÿkkkÿdddÿqppÿsssÿoooÿkjkÿZZ[ÿPOQÿPOQÿSRTÿPOQÿLKLÿMLNÿMLOÿOOOÿMLNÿMLNÿMLNÿMLNÿMLNÿPOQÿXWYÿZZZÿbbbÿzxxÿxwwÿzzzÿzzzÿ{z{ÿzzzÿ{z{ÿwvvÿmllÿ[[[ÿRRRÿRRSÿNNNÿQPRÿOOOÿZZZÿXXXÿUTVÿ^\^ÿmlnÿJJJÿMLNÿONQÿJJLÿFEIÿJJLÿLKNÿHGHÿJJLÿMLOÿLKLÿKKKÿ`_`ÿpopÿrrrÿqppÿfffÿZZZÿXXXÿVVWÿ[[[ÿZZ[ÿbbcÿ^\^ÿ^^`ÿ\[^ÿQPRÿRRSÿTSTÿMLNÿPOQÿNNNÿJJJÿIHJÿEDFÿLLLÿJJJÿLKLÿJJJÿIHHÿHGHÿJJJÿIHHÿFFFÿJJJÿFFFÿ@@@ÿIHHÿSSSÿTTTÿKKKÿMLNÿNNNÿLLLÿLLLÿKKKÿKKKÿLLLÿLLLÿNNNÿLLLÿJJJÿIHHÿJJJÿLLLÿNNNÿNNNÿNNNÿKKKÿJJJÿKKKÿLLLÿNNNÿJJJÿLLLÿKKKÿGGGÿKKKÿGGGÿIHHÿJJJÿIHHÿGHJÿJJJÿJJJÿLLLÿGHJÿJJJÿJJKÿJJJÿKKKÿKKKÿLLLÿKKKÿLLLÿJJJÿJJJÿKKKÿJJJÿHGHÿHGHÿGHJÿHGHÿGGGÿHGHÿFEIÿFFGÿGGGÿHGHÿGGGÿBBCÿA@BÿFFFÿFFFÿFFFÿFFGÿEDFÿEDFÿGGGÿFFGÿFFFÿFFGÿFFGÿFFGÿFFGÿGGGÿFFFÿFFGÿGGGÿFFFÿFFFÿA@Bÿ??@ÿFFGÿIHJÿJJJÿJJJÿIHJÿJJJÿJJJÿJJJÿJJJÿJJJÿLKLÿLLLÿLKLÿMLNÿLKLÿLKLÿMLNÿFFGÿGGGÿPOQÿQPRÿPPPÿRRSÿPPPÿPPPÿRRRÿRRRÿSSSÿWWWÿ[[[ÿZZZÿXXXÿXXXÿ[[[ÿZZZÿZZZÿ[[[ÿ^\^ÿ[[[ÿVVVÿWWWÿXXXÿZZZÿVVVÿTTTÿTTTÿZZZÿ[[[ÿXXXÿVVVÿVVVÿRRRÿOOOÿOOOÿSSSÿPPPÿVVVÿSSSÿRRRÿVVVÿ^^^ÿ___ÿbbbÿgggÿfffÿnnnÿjjjÿ^^^ÿRRSÿNNNÿ^^_ÿtstÿwvvÿxwwÿzxxÿzxxÿzxxÿzxxÿwvvÿwvvÿsssÿfffÿoooÿnnnÿkjkÿNNNÿGGGÿJJJÿIHHÿJJJÿIHHÿIHHÿIHHÿFFGÿGGGÿIHJÿJJJÿIHJÿHGHÿJJJÿJJJÿJJJÿNNNÿWWWÿXWYÿUTVÿIHHÿFFGÿIHJÿFFGÿIHHÿJJJÿOOOÿ^\^ÿWWWÿZZ[ÿXWYÿVVVÿVVWÿVVVÿXXXÿZZ[ÿ^\^ÿmllÿmllÿkjkÿdddÿ^\^ÿa`bÿa`bÿgggÿmllÿmllÿnnnÿnnnÿnnnÿnnnÿnnnÿfffÿdddÿihhÿkjkÿkkkÿjjjÿ```ÿihhÿrrrÿqppÿgggÿ^\^ÿQPRÿNNNÿMLOÿRRRÿMLOÿLKLÿMLNÿMLNÿLKLÿMLNÿLKLÿMLNÿMLNÿMLOÿcccÿbbbÿbbbÿqppÿzxxÿzxxÿ{{{ÿ{z{ÿ{{{ÿwvvÿzxxÿzzzÿrrrÿihhÿ\[\ÿRRRÿPOQÿPOQÿXXXÿXWYÿ```ÿfffÿtstÿVVVÿXWYÿQPRÿQPRÿONQÿPOQÿONQÿONQÿONQÿMLOÿPOQÿNNNÿOOOÿffgÿrrrÿrrrÿoooÿdddÿXXXÿXXXÿVVWÿVVWÿ`_`ÿa`bÿ^^`ÿbbdÿYX[ÿQPRÿJJJÿEDDÿEDDÿLKLÿLKLÿKKKÿGGGÿDCDÿBBBÿGGGÿEDDÿCCCÿCCCÿCCCÿFFFÿBBBÿCCCÿBBBÿ>=>ÿ>=>ÿ>=>ÿJJJÿKKKÿOOOÿNNNÿKKKÿKKKÿKKKÿLLLÿOOOÿTTTÿPPPÿPPPÿRRRÿSSSÿNNNÿNNNÿPPPÿNNNÿNNNÿPPPÿLLLÿKKKÿMLNÿNNNÿLLLÿLLLÿLLLÿLLLÿNNNÿKKKÿKKKÿJJJÿIHHÿGGGÿJJJÿGGGÿJJJÿIHHÿKKKÿJJJÿJJJÿJJJÿLLLÿKKKÿKKKÿLLLÿLLLÿLLLÿJKLÿJJKÿJJKÿJJKÿIHJÿJJKÿJJKÿHGHÿFFGÿFFGÿFFFÿGGGÿHGHÿBBBÿBBCÿHGHÿFFGÿFFGÿFFFÿFFFÿFFGÿFFGÿFFGÿFFGÿFFGÿFFGÿFFGÿFFFÿFFFÿFFGÿFFGÿEDFÿEDFÿBBBÿEDFÿDCDÿIHJÿIHJÿIHJÿJJJÿJJJÿIHJÿJJJÿIHJÿIHHÿLKLÿJJJÿLLLÿLLLÿLKLÿOOOÿMLNÿJJJÿFFGÿIHJÿIHJÿJJJÿJJJÿJJJÿJJJÿKKKÿJJJÿOOOÿ^\^ÿbbbÿ[[[ÿ[[[ÿ[[[ÿ\\\ÿ[[[ÿZZZÿZZZÿ[[[ÿ[[[ÿTTTÿZZZÿZZZÿ\\\ÿWWWÿTTTÿTTTÿTTTÿVVVÿZZZÿVVVÿSSSÿSSSÿTTTÿZZZÿVVVÿLLLÿTTTÿSSSÿNNNÿRRRÿSSSÿ___ÿcccÿ```ÿ^^^ÿbbbÿnnnÿQPRÿjjjÿzxxÿrrrÿnnnÿsssÿtstÿxwwÿzxxÿzxxÿwvvÿwvvÿxwwÿsssÿsssÿqppÿdddÿLLLÿIHHÿGGGÿFFFÿIHHÿIHHÿIHHÿHGHÿIHHÿIHHÿIHHÿHGHÿIHJÿIHJÿHGHÿIHHÿIHHÿLKLÿJJJÿOOOÿXXXÿJJJÿFFGÿFFGÿFFGÿGGGÿJJJÿIHHÿNNNÿVVWÿTSTÿ^\^ÿXWYÿVVWÿVVWÿXXXÿUTVÿZZ[ÿVVWÿbbbÿjjjÿbbbÿ```ÿ\\\ÿ```ÿihhÿmllÿnnnÿoooÿmllÿnnnÿnnnÿnnnÿoooÿgggÿcccÿ^^^ÿfffÿmllÿoooÿqppÿ\\\ÿdddÿqppÿrrrÿcccÿTSTÿRRSÿMLOÿLKLÿLKLÿMLNÿMLNÿMLNÿMLNÿLKLÿMLNÿMLNÿLKLÿMLNÿQPRÿlklÿkkkÿkjkÿihhÿxwwÿzzzÿzzzÿwvvÿrrrÿkjkÿlklÿwvvÿzzzÿzzzÿtttÿihhÿXWYÿPPPÿRRRÿ^^_ÿsssÿrrrÿtttÿgggÿTSTÿXWYÿ^^`ÿ^^`ÿ^\^ÿYX[ÿVVYÿUTWÿUTWÿVVWÿTSTÿTSTÿRRSÿkjkÿsssÿrrrÿoooÿgggÿVVWÿWWWÿZZ[ÿ\[\ÿa`bÿ\[^ÿkjkÿffgÿPOQÿBBCÿ@@@ÿ@@@ÿFFFÿOOOÿNNNÿKKKÿEDDÿCCCÿKKKÿKKKÿLKLÿMLNÿJJJÿFFGÿGGGÿHGHÿFFFÿFFFÿCCCÿ??@ÿA@BÿPPPÿOOOÿOOOÿPPPÿPPPÿJJJÿNNNÿNNNÿLLLÿNNNÿPPPÿNNNÿRRSÿNNNÿRRRÿNNNÿPPPÿNNNÿNNNÿKKKÿIHHÿKKKÿLLLÿKKKÿJJJÿKKKÿLLLÿKKKÿLLLÿKKKÿNNNÿNNNÿVVVÿNNNÿGHJÿJKLÿGHJÿJJJÿKKKÿKKKÿNNNÿKKKÿLLLÿNNNÿLLLÿNNNÿNNNÿMLNÿMLNÿLKNÿJKLÿJKLÿMLNÿNNOÿGGGÿHGHÿGGGÿGGGÿGGGÿGGGÿDCDÿDCDÿHGHÿFFGÿFFGÿFFGÿEDFÿFFGÿFFGÿFFGÿFFFÿFFFÿFFGÿEDFÿFFGÿFFGÿFFGÿCCCÿ@@@ÿCCCÿGGGÿDCDÿEDDÿIHJÿJJJÿJJJÿLKLÿJJJÿJJJÿJJJÿEDDÿBBCÿIHHÿMLNÿMLNÿLKLÿMLNÿMLNÿQPRÿMLNÿJJJÿGGGÿEDFÿEDFÿFFFÿEDDÿEDDÿEDDÿJJJÿRRRÿjjjÿZZZÿcccÿTTTÿSSSÿVVVÿbbbÿ^^^ÿ^\^ÿ```ÿdddÿTTTÿZZZÿTTTÿZZZÿVVVÿVVVÿVVVÿWWWÿ\\\ÿXXXÿXXXÿTTTÿOOOÿVVVÿTTTÿRRRÿKKKÿOOOÿPPPÿPPPÿ[[[ÿTTTÿ[[[ÿ```ÿcccÿ^^^ÿbbcÿtstÿkkkÿqppÿqppÿtttÿtstÿwvvÿtttÿwvvÿzxxÿwvvÿsssÿwvvÿtttÿsssÿ___ÿCCCÿIHHÿIHHÿGGGÿIHHÿIHHÿGGGÿIHHÿGGGÿIHHÿIHHÿJJJÿJJJÿHGHÿJJJÿIHJÿIHHÿIHHÿIHHÿLLLÿMLNÿRRSÿFFFÿGGGÿGGGÿFFFÿGGGÿJJJÿJJJÿNNNÿRRSÿUTVÿUTVÿVVWÿGGGÿNNNÿZZ[ÿXXXÿUTVÿYXZÿZZ[ÿ___ÿ```ÿ^\^ÿbbbÿcccÿnnnÿnnnÿnnnÿkkkÿnnnÿnnnÿkkkÿkkkÿnnnÿcccÿihhÿkjkÿfffÿmllÿmllÿnnnÿkkkÿbbbÿfffÿkkkÿqppÿgggÿYXZÿYXZÿQPRÿMLOÿLKLÿMLNÿMLNÿMLNÿOOOÿMLNÿMLNÿMLNÿMLNÿMLOÿQPRÿnnoÿoooÿmllÿihhÿkjkÿnnnÿmllÿihhÿkkkÿihhÿdddÿqppÿkjkÿxwwÿzzzÿzxxÿrrrÿbbbÿPPPÿPPPÿ\\\ÿihhÿkjkÿqppÿYXZÿRRSÿVVWÿihjÿihjÿddgÿccfÿccfÿffgÿedfÿedfÿffgÿedfÿedfÿqppÿrrrÿrrrÿrrrÿrrrÿbbcÿYXZÿ```ÿ__bÿihjÿhghÿZZ\ÿIHJÿBBBÿ@@@ÿ@@@ÿ@@@ÿJJJÿNNNÿKKKÿEDDÿ@@@ÿBBBÿEDDÿCCCÿEDDÿFFFÿEDDÿEDDÿBBBÿGGGÿCCCÿA@Bÿ??@ÿBBBÿ@@@ÿPPPÿOOOÿRRRÿRRRÿRRRÿPPPÿOOOÿPPPÿPPPÿPPPÿPPPÿPPPÿMLNÿOOOÿRRRÿPPPÿLLLÿNNNÿFFFÿKKKÿLLLÿLLLÿLLLÿOOOÿLLLÿLLLÿLLLÿLLLÿJKLÿNNNÿLLLÿJKLÿNNNÿMLNÿRRRÿRRRÿPPPÿOOOÿJJKÿNNOÿNNNÿOOOÿOOOÿNNOÿLLLÿLLLÿKKKÿKKKÿLKNÿMLNÿNNOÿRRRÿGHJÿDFGÿHGHÿHGHÿFFGÿHGHÿHGHÿFFGÿFFFÿFFGÿFFGÿFFGÿFFGÿFFFÿFFGÿEDFÿFFFÿEDFÿFFFÿFFGÿGGGÿGGGÿFFFÿBBCÿ??@ÿBBCÿHGHÿHGHÿDCDÿHGHÿIHJÿJJLÿIHJÿIHJÿIHJÿIHJÿJJJÿIHJÿEDDÿBBCÿIHJÿLKLÿLKLÿMLNÿONQÿQPRÿPOQÿQPRÿQPRÿSRTÿONQÿLLLÿGGGÿFFFÿGGGÿIHHÿLKLÿ___ÿPPPÿPPPÿJJJÿPPPÿWWWÿbbbÿcccÿ^^^ÿ^^^ÿ```ÿWWWÿ```ÿ[[[ÿ\\\ÿ[[[ÿWWWÿXXXÿVVVÿVVVÿVVVÿVVVÿOOOÿPPPÿVVVÿPPPÿLLLÿPPPÿRRRÿPPPÿOOOÿ\\\ÿXXXÿZZZÿbbbÿ^^^ÿ^^_ÿgggÿgggÿrrrÿihhÿqppÿgggÿqppÿwvvÿwvvÿzxxÿzxxÿxwwÿwvvÿxwwÿxwwÿ^\^ÿFFFÿ@@@ÿGGGÿHGHÿFFGÿIHHÿFFGÿIHHÿGGGÿGGGÿLKLÿNNNÿIHHÿIHJÿIHHÿIHHÿJJJÿIHHÿIHHÿGGGÿNNNÿNNNÿLKLÿFFGÿHGHÿGGGÿFFGÿFFFÿIHHÿNNNÿQPRÿLLLÿTTTÿTTTÿVVVÿVVWÿVVWÿVVWÿUTVÿVVWÿZZ[ÿ[[[ÿfffÿfffÿkkkÿnnnÿqppÿqppÿoooÿjjjÿgggÿmllÿjjjÿkkkÿnnnÿcccÿXXXÿihhÿgggÿjjjÿmllÿmllÿgggÿjjjÿcccÿkkkÿdddÿmllÿoooÿfffÿgggÿ^\^ÿTSTÿMLNÿMLNÿOOOÿMLNÿQPRÿOOOÿMLNÿMLNÿNNNÿMLNÿTTTÿoooÿnnnÿmllÿkjkÿedfÿfffÿgggÿgggÿkjkÿgggÿcccÿmllÿkjkÿrrrÿzxxÿzxxÿzzzÿxwwÿjjjÿ[[[ÿPPPÿPOQÿ\[\ÿoooÿ^^_ÿUTVÿQPRÿcccÿkjkÿmlnÿkjkÿkjkÿkjkÿkjkÿkjkÿmlnÿhghÿhghÿffgÿnnnÿtstÿrrrÿwvvÿqppÿZZZÿ___ÿihhÿkjkÿZZ[ÿIHHÿA@BÿA@Bÿ@@@ÿCCCÿFFFÿLLLÿJJJÿLLLÿKKKÿEDDÿNNNÿFFFÿFFFÿIHHÿLLLÿKKKÿMLNÿGGGÿGGGÿ@@@ÿA@BÿCCCÿGGGÿDCDÿGGGÿTTTÿRRRÿPPPÿPPPÿPPPÿPPPÿOOOÿPPPÿSSSÿOOOÿRRRÿTTTÿWWWÿRRRÿOOOÿOOOÿOOOÿIHJÿPPPÿRRRÿTTTÿRRRÿNNNÿSSSÿNNNÿLLLÿLLLÿNNNÿNNNÿJJJÿQPRÿOOOÿOOOÿOOOÿOOOÿNNNÿNNNÿPPPÿPPPÿPPPÿRRRÿTSTÿTTTÿTTTÿOOOÿOOOÿPPPÿTSTÿTTTÿPOQÿMLNÿHGHÿFFGÿFFGÿEDFÿGGGÿGGGÿGGGÿDCDÿBBCÿHGHÿGGGÿEDFÿEDFÿFFGÿFFFÿFFGÿFFFÿFFGÿGGGÿGGGÿEDFÿBBCÿEDDÿBBCÿEDFÿHGHÿHGHÿCCCÿFFGÿIHJÿJJJÿIHJÿIHJÿIHJÿJJJÿIHJÿJJJÿIHJÿLKLÿFFFÿBBCÿIHHÿMLNÿMLOÿPOQÿOOOÿQPRÿRRSÿQPRÿTSTÿYXZÿRRSÿPPPÿJJJÿGGGÿJJJÿVVVÿ^\^ÿRRSÿPPPÿJJJÿKKKÿVVVÿVVVÿTSTÿOOOÿTTTÿ^\^ÿ^^^ÿgggÿ___ÿ^^^ÿ^^^ÿ\\\ÿ^^^ÿ^^^ÿXXXÿ```ÿVVVÿOOOÿPPPÿSSSÿOOOÿPPPÿLLLÿJJJÿKKKÿXXXÿTTTÿ[[[ÿdddÿkkkÿgggÿgggÿihhÿqppÿwvvÿmllÿsssÿwvvÿwvvÿtstÿxwwÿzxxÿwvvÿzxxÿxwwÿwvvÿ^\^ÿIHHÿIHHÿ??@ÿEDFÿFFFÿIHHÿFFGÿFFFÿHGHÿIHHÿHGHÿIHHÿMLNÿNNNÿLKLÿJJJÿJJJÿIHJÿHGHÿIHHÿJJJÿLKLÿRRSÿHGHÿHGHÿIHJÿIHJÿIHHÿGGGÿMLNÿPOQÿOOOÿTSTÿZZ[ÿVVWÿXXXÿVVWÿ^\^ÿPPPÿWWWÿWWWÿ^^^ÿ___ÿmllÿqppÿsssÿsssÿrrrÿnnnÿnnnÿmllÿmllÿjjjÿmllÿoooÿqppÿihhÿgggÿjjjÿkkkÿkkkÿkkkÿihhÿdddÿihhÿjjjÿmllÿ```ÿdddÿdddÿjjjÿmllÿffgÿhghÿZZ[ÿPOQÿPOQÿPOQÿPOQÿMLNÿMLOÿMLOÿOOOÿNNNÿXXXÿqppÿpopÿihhÿcccÿihhÿgggÿkjkÿkjkÿkjkÿfffÿgggÿkkkÿmllÿqppÿwvvÿrrrÿwvvÿzxxÿzxxÿwvvÿjjjÿZZZÿOOOÿRRRÿWWWÿXWYÿdcdÿXWYÿYXZÿnnnÿmlnÿmllÿkjkÿihhÿkjkÿgggÿhghÿihhÿkjkÿbbcÿnnnÿtttÿtstÿpopÿbbbÿedfÿdcdÿZZZÿJJJÿ@@@ÿBBBÿ@@@ÿCCCÿBBCÿGGGÿGGGÿKKKÿRRRÿNNNÿPPPÿRRRÿNNNÿKKKÿNNNÿWWWÿRRRÿPPPÿNNNÿGGGÿIHHÿJJKÿGGGÿEDDÿDCDÿFFGÿEDFÿOOOÿLLLÿNNNÿPPPÿPPPÿPPPÿMLNÿOOOÿOOOÿUTVÿVVWÿTSTÿSSSÿLLLÿOOOÿKKKÿJJJÿOOOÿRRRÿPPPÿSSSÿRRSÿRRRÿPPPÿTSTÿWWWÿLLLÿKKKÿOOOÿTTTÿRRRÿTTTÿRRRÿVVVÿUTVÿTTTÿTTTÿSSSÿRRRÿPPPÿRRRÿVVVÿVVVÿTTTÿVVVÿWWWÿTSTÿVVWÿTSTÿUTVÿHGHÿHGHÿGGGÿFFFÿGGGÿFFGÿFFGÿHGHÿCCCÿEDFÿFFGÿDCDÿBBCÿDCDÿA@BÿDCDÿA@Bÿ??@ÿ@@@ÿA@BÿFFGÿCCCÿFFFÿIHJÿJJJÿIHJÿEDDÿFFGÿJJJÿIHJÿIHJÿGGGÿHGHÿIHJÿJJJÿJJJÿLKLÿJJJÿLKLÿLKLÿFFFÿIHHÿMLNÿOOOÿQPRÿPOQÿQPRÿQPRÿSRTÿUTVÿTSTÿVVWÿTTTÿVVVÿOOOÿKKKÿ^^^ÿfffÿ^^^ÿVVVÿKKKÿKKKÿ^^^ÿYXZÿVVVÿJJJÿNNNÿ^\^ÿ^^^ÿ___ÿ^\^ÿgggÿfffÿcccÿcccÿ```ÿbbbÿ```ÿ^^^ÿVVVÿVVVÿRRRÿLLLÿPPPÿVVVÿOOOÿPPPÿOOOÿVVVÿ[[[ÿfffÿkkkÿkkkÿgggÿdddÿtttÿwvvÿtttÿwvvÿwvvÿwvvÿwvvÿxwwÿzxxÿxwwÿwvvÿrrrÿTSTÿIHHÿKKKÿEDDÿBBBÿFFFÿFFFÿFFFÿFFGÿFFGÿFFGÿGGGÿGGGÿGGGÿHGHÿJJJÿJJJÿJJJÿKKKÿJJJÿJJJÿIHHÿLKLÿMLNÿJJJÿFFGÿJJJÿJJJÿIHHÿIHHÿFFFÿMLNÿVVWÿTTTÿVVWÿXXXÿ^\^ÿXXXÿ\[\ÿZZZÿ^\^ÿ^^_ÿ[[[ÿoooÿqppÿsssÿtttÿrrrÿrrrÿqppÿoooÿnnnÿmllÿoooÿmllÿmllÿmllÿmllÿdddÿihhÿjjjÿoooÿnnnÿnnnÿjjjÿgggÿgggÿoooÿjjjÿ^^^ÿihhÿgggÿgggÿnnnÿkjkÿbbcÿihjÿPOQÿMLOÿOOOÿOOOÿMLNÿOOOÿMLOÿOOOÿNNNÿ`_`ÿ^\^ÿbbcÿcccÿdcdÿkjkÿkjkÿkjkÿmllÿkjkÿgggÿmllÿnnnÿnnnÿnnnÿqppÿoooÿoooÿrrrÿzxxÿzzzÿzxxÿrrrÿa`bÿRRRÿOOOÿXXXÿedfÿffgÿ^^^ÿ^\^ÿnnnÿmllÿmllÿihhÿihhÿgggÿkjkÿgggÿXWYÿYXZÿedfÿpopÿtstÿqprÿkkkÿihhÿ[[[ÿIHHÿFFFÿBBBÿBBBÿGGGÿPPPÿVVWÿPPPÿSSSÿPPPÿVVVÿkjkÿpopÿRRSÿcccÿedfÿWWWÿPPPÿSSSÿRRSÿNNNÿLLLÿKKKÿFFGÿDCDÿEDDÿEDFÿFFFÿDCDÿIHJÿOOOÿTTTÿTSTÿPPPÿTSTÿTTTÿRRRÿPPPÿTTTÿTTTÿRRRÿPOQÿTTTÿVVVÿZZZÿVVVÿVVWÿZZZÿ___ÿXXXÿVVVÿVVVÿOOOÿNNNÿOOOÿNNNÿRRRÿTTTÿVVVÿ[[[ÿ\\\ÿVVVÿTTTÿVVVÿPPPÿUTVÿSSSÿSSSÿZZZÿVVVÿTTTÿTTTÿWWWÿXXXÿXXXÿXWYÿWWWÿVVVÿ\\\ÿDFGÿIHHÿIHHÿIHHÿFEIÿFFGÿHGHÿFEIÿCCCÿ??@ÿ??@ÿ>=>ÿA@BÿEDFÿCCCÿFFGÿDCDÿBBCÿDCDÿEDFÿIHJÿIHJÿJJLÿLKLÿJJLÿIHHÿCCCÿIHJÿJJLÿJJJÿJJJÿEDDÿ??@ÿIHJÿJJJÿMLNÿMLNÿMLNÿLKLÿMLNÿNNOÿMLNÿMLNÿMLNÿOOOÿQPRÿTSTÿRRSÿQPRÿSRTÿTSTÿVVVÿTTTÿXXXÿTTTÿVVVÿbbbÿdddÿa`bÿYXZÿVVVÿRRSÿfffÿ[[[ÿRRRÿLLLÿNNNÿnnnÿbbbÿdddÿRRRÿVVVÿbbbÿ\\\ÿ[[[ÿcccÿ```ÿVVVÿfffÿVVVÿPPPÿSSSÿRRRÿSSSÿKKKÿRRRÿ\\\ÿWWWÿRRRÿVVVÿjjjÿnnnÿnnnÿgggÿfffÿsssÿsssÿwvvÿwvvÿwvvÿwvvÿsssÿzxxÿxwwÿrrrÿ___ÿIHHÿJJJÿJJJÿIHHÿJJJÿFFFÿHGHÿHGHÿFFFÿGGGÿGGGÿFFGÿFFGÿFFGÿFFGÿGGGÿGGGÿFFFÿHGHÿGGGÿJJJÿJJJÿLLLÿNNNÿMLNÿMLNÿNNNÿNNNÿIHHÿJJJÿJJJÿOOOÿTSTÿVVWÿ^\^ÿRRSÿRRSÿNNNÿUTVÿVVVÿVVWÿ^\^ÿa`bÿkkkÿqppÿoooÿqppÿqppÿqppÿqppÿnnnÿqppÿqppÿqppÿqppÿmllÿqppÿoooÿkkkÿihhÿgggÿrrrÿoooÿnnnÿihhÿkkkÿcccÿfffÿsssÿmllÿjjjÿoooÿmllÿbbbÿkjkÿkjkÿa`bÿkjkÿSRTÿQPRÿSRTÿPOQÿMLNÿPOQÿPOQÿMLOÿPOQÿMLNÿLKLÿLKLÿMLNÿPPPÿcccÿcccÿcccÿpopÿnnoÿmlnÿoooÿoooÿqppÿoooÿnnnÿnnnÿmllÿrrrÿrrrÿrrrÿxwwÿzxxÿwvvÿmllÿXXXÿ^^_ÿhghÿffgÿkjkÿfffÿgggÿedfÿa`bÿXXXÿTSTÿQPRÿQPRÿTTTÿ^^_ÿ^\^ÿcccÿkkkÿrrrÿtttÿqppÿihjÿPPPÿJJJÿKKKÿIHHÿRRSÿdcdÿoooÿfffÿkjkÿwvvÿpopÿbbcÿqppÿkkkÿgggÿbbcÿ^^^ÿQPRÿUTVÿ\\\ÿVVVÿSSSÿ[[[ÿMLNÿEDFÿFFGÿIHHÿFFGÿEDDÿGGGÿIHJÿTTTÿTTTÿRRRÿPPPÿVVVÿRRRÿTTTÿVVVÿUTVÿPOQÿRRRÿPPPÿRRRÿSSSÿTTTÿSSSÿWWWÿVVVÿ\\\ÿWWWÿVVVÿdddÿZZZÿ[[[ÿXXXÿXXXÿTTTÿVVVÿWWWÿWWWÿ___ÿoooÿdghÿjjjÿdddÿ```ÿ[[[ÿ\\\ÿ\\^ÿTTTÿWWWÿWWWÿVVWÿTTTÿa`bÿ\\\ÿ^^^ÿ[[[ÿ^^^ÿFFFÿGGGÿGGGÿGGGÿHGHÿFFGÿGGGÿEDFÿEDDÿ@@@ÿBBBÿEDFÿFFGÿHGHÿHGHÿHGHÿHGHÿIHJÿIHJÿIHJÿIHJÿIHJÿIHJÿIHJÿIHJÿEDFÿEDFÿJJLÿIHJÿCCCÿFFGÿIHHÿBBCÿBBCÿIHHÿPOQÿNNNÿPOQÿMLNÿQPRÿPOQÿMLOÿOOOÿMLOÿQPRÿRRSÿTSTÿUTVÿTSTÿTSTÿTSTÿSSSÿTTTÿXXXÿSSSÿZZZÿ```ÿ___ÿ```ÿXXXÿWWWÿ^^^ÿqppÿfffÿ```ÿTSTÿVVWÿqppÿ___ÿgggÿVVVÿ[[[ÿdddÿ^^^ÿdddÿ___ÿ[[[ÿ___ÿbbbÿ^^^ÿWWWÿRRRÿVVVÿOOOÿSSSÿ^^^ÿ\\\ÿbbbÿ___ÿbbbÿkkkÿqppÿoooÿihhÿjjjÿnnnÿxwwÿtttÿwvvÿrrrÿwvvÿxwwÿoooÿUTVÿLKLÿJJJÿIHJÿIHHÿIHHÿIHJÿDCDÿEDDÿIHHÿEDFÿFFFÿHGHÿHGHÿFFFÿFFGÿIHHÿFFFÿEDDÿGGGÿIHHÿRRSÿIHJÿMLNÿJJJÿJJJÿOOOÿNNNÿQPRÿNNNÿGGGÿNNNÿRRSÿMLNÿPPPÿXXXÿSSSÿXWYÿXXXÿTTTÿVVVÿTTTÿXXXÿ^\^ÿfffÿfffÿjjjÿmllÿqppÿnnnÿrrrÿqppÿoooÿqppÿrrrÿrrrÿoooÿrrrÿtttÿtttÿkkkÿdddÿihhÿkkkÿnnnÿ```ÿjjjÿjjjÿihhÿ[[[ÿNNNÿoooÿqppÿihhÿgggÿfffÿ^^^ÿfffÿfffÿa`bÿbbcÿ\[^ÿTSTÿTSTÿPOQÿONQÿTSTÿSRTÿXWYÿPOQÿMLNÿMLNÿLKLÿMLNÿVVWÿ```ÿYXZÿUTVÿ^^_ÿmlnÿnnnÿqppÿqppÿqppÿoooÿnnnÿnnnÿqppÿsssÿoooÿdddÿmllÿoooÿwvvÿxwwÿqppÿmlnÿhghÿdcdÿmllÿmllÿRRRÿOOOÿRRRÿUTVÿZZ[ÿa`bÿ`_`ÿZZZÿYXZÿgggÿgggÿkkkÿffgÿnnoÿsssÿihhÿRRRÿPPPÿ^^^ÿmllÿmllÿoooÿrrrÿtstÿoooÿtstÿtttÿqppÿrrrÿoooÿoooÿcccÿ^^^ÿRRRÿ^\^ÿRRRÿ___ÿ^^^ÿ[[[ÿLLLÿBBBÿJJKÿLLLÿFFFÿEDDÿFFGÿFFGÿLLLÿVVVÿVVVÿSSSÿWWWÿNNNÿOOOÿLKLÿNNNÿPPPÿOOOÿTTTÿ^^^ÿbbbÿXXXÿ^^_ÿ\[\ÿ\[\ÿXXXÿcccÿZZ[ÿXXXÿXXXÿZZZÿdddÿ___ÿTTTÿZZZÿmllÿdddÿjjjÿsssÿqppÿrrrÿnnnÿcccÿklnÿlnoÿnnnÿrrrÿ```ÿfffÿihhÿijkÿklnÿgggÿihhÿbbcÿnnnÿGGGÿGGGÿGGGÿFFFÿFFGÿGGGÿFFGÿBBCÿEDFÿFFFÿFFGÿHGHÿHGHÿHGHÿFFGÿHGHÿHGHÿHGHÿIHJÿIHHÿIHHÿHGHÿDCDÿDCDÿFFGÿDCDÿFFGÿJJJÿLKLÿEDFÿ@@@ÿBBCÿEDFÿEDFÿCCCÿMLNÿNNNÿONQÿMLNÿZZ[ÿRRSÿMLNÿMLNÿOOOÿQPRÿRRSÿTSTÿUTVÿVVWÿVVWÿVVWÿXXXÿVVVÿWWWÿTTTÿ[[[ÿdddÿ[[[ÿ___ÿbbbÿXXXÿZZZÿkkkÿihhÿ```ÿZZZÿfffÿqppÿihhÿihhÿWWWÿgggÿkkkÿ```ÿ^\^ÿfffÿfffÿ^^^ÿ[[[ÿSSSÿVVVÿSSSÿPPPÿXXXÿ^\^ÿXXXÿfffÿ[[[ÿ[[[ÿ```ÿmllÿnnnÿkkkÿgggÿjjjÿcccÿwvvÿwvvÿxwwÿrrrÿxwwÿdddÿKKKÿIHHÿIHHÿIHHÿIHHÿIHJÿIHJÿIHHÿEDDÿEDFÿGGGÿGGGÿEDFÿFFGÿGGGÿFFFÿGGGÿGGGÿFFFÿJJJÿMLNÿUTVÿIHJÿJJJÿNNNÿJJJÿLKLÿNNNÿZZZÿJJJÿJJJÿPPPÿUTVÿUTVÿNNNÿRRSÿRRSÿSSSÿPPPÿQPRÿRRSÿYXZÿTTTÿXXXÿ^\^ÿdddÿmllÿoooÿqppÿnnnÿnnnÿsssÿoooÿqppÿsssÿsssÿsssÿnnnÿmllÿsssÿsssÿkkkÿgggÿkkkÿmllÿoooÿdddÿkkkÿgggÿYXZÿ```ÿ___ÿfffÿnnnÿkkkÿgggÿdddÿ^^^ÿcccÿfffÿkjkÿa`bÿihhÿVVWÿUTVÿSRTÿQPRÿ\[^ÿUTVÿYXZÿONQÿLKLÿLKLÿLKLÿMLOÿa`bÿ^\^ÿTSTÿQPRÿOOOÿcccÿkjkÿoooÿqppÿrrrÿoooÿoooÿqppÿqppÿqppÿqppÿfffÿmllÿ```ÿ^^_ÿwvvÿzxxÿrrrÿgggÿhghÿrrrÿfffÿ^\^ÿdcdÿkjkÿmllÿnnnÿmlnÿbbbÿ^\^ÿgggÿgggÿffgÿdcdÿihjÿnnoÿoooÿihhÿZZZÿ^^^ÿvvvÿutvÿrrrÿnnoÿoooÿtttÿwvvÿoooÿtstÿrrrÿnnnÿoooÿkjkÿcccÿfffÿRRRÿ^\^ÿ```ÿdddÿ\[\ÿTSTÿKKKÿBBCÿHGHÿKKKÿFFFÿEDDÿDCDÿEDDÿCCCÿRRRÿKKKÿIHHÿQPRÿEDDÿIHHÿJJJÿ[[[ÿRRRÿPPPÿVVVÿbbbÿfffÿdcdÿmllÿqppÿTTTÿ[[[ÿjjjÿ^^_ÿ\\\ÿ```ÿ^^^ÿdghÿihhÿbbbÿstvÿvvwÿstvÿwwwÿwwwÿwwwÿwwwÿstvÿvvvÿstvÿwwwÿvvvÿqppÿsssÿlnoÿqppÿstvÿtttÿtttÿrrrÿnnnÿrrrÿGGGÿJJJÿJJJÿFFFÿGGGÿEDDÿDCDÿIHHÿIHHÿHGHÿHGHÿHGHÿHGHÿIHHÿIHJÿIHJÿHGHÿHGHÿEDFÿDCDÿGGGÿEDDÿEDFÿFFGÿDCDÿFFGÿJJJÿIHJÿJJLÿEDFÿBBCÿ??@ÿFFGÿIHJÿIHJÿMLNÿMLNÿNNNÿLKLÿTSTÿRRSÿMLNÿNNNÿLKLÿPOQÿPOQÿQPRÿQPRÿTSTÿTTTÿTSTÿVVVÿTTTÿXXXÿSSSÿ\\\ÿ```ÿ^\^ÿ\\\ÿcccÿXXXÿdddÿihhÿcccÿbbbÿ___ÿcccÿmllÿihhÿcccÿbbbÿsssÿoooÿa`bÿa`bÿbbbÿihhÿihhÿcccÿdddÿPPPÿNNNÿIHHÿJJJÿ[[[ÿRRRÿ___ÿcccÿfffÿdddÿoooÿrrrÿqppÿnnnÿmllÿmllÿxwwÿtstÿtttÿdddÿ[[[ÿJJJÿJJJÿIHJÿIHJÿIHJÿIHHÿIHJÿIHHÿFFFÿBBBÿFFFÿGGGÿIHHÿFFFÿFFFÿFFGÿIHHÿIHHÿGGGÿTSTÿRRSÿNNNÿGGGÿGGGÿIHJÿJJJÿIHHÿIHJÿLKLÿQPRÿQPRÿQPRÿWWWÿQPRÿVVVÿTSTÿNNNÿRRRÿPPPÿUTVÿVVWÿ^\^ÿTSTÿIHHÿVVWÿ^^^ÿihhÿqppÿmllÿihhÿgggÿnnnÿmllÿrrrÿrrrÿqppÿkkkÿmllÿkkkÿrrrÿqppÿjjjÿkkkÿkkkÿmllÿoooÿdddÿihhÿcccÿTTTÿfffÿkkkÿgggÿihhÿnnnÿoooÿmllÿihhÿ```ÿ```ÿihhÿihhÿ```ÿihhÿVVWÿQPRÿVVWÿVVWÿXWYÿRRSÿQPRÿMLNÿLKNÿLKNÿMLNÿMLOÿedfÿ^\^ÿUTVÿPOQÿLKNÿMLNÿXXXÿmllÿpopÿnnoÿpopÿpopÿqppÿqppÿnnnÿnnnÿmllÿihhÿihhÿihhÿoooÿtstÿnnoÿkjkÿlklÿqppÿkjkÿqppÿqppÿqppÿpopÿnnoÿkjkÿdcdÿZZ[ÿYXZÿ`_`ÿihjÿmlnÿoooÿnnnÿhghÿcccÿbbcÿnnnÿwvvÿwvvÿutvÿtstÿtttÿtstÿtttÿrrrÿwvvÿqppÿnnnÿoooÿcccÿcccÿcccÿSSSÿ^\^ÿNNNÿVVVÿRRRÿLLLÿLLLÿCCCÿBBBÿDCDÿCCCÿ@@@ÿ??@ÿ??@ÿBBBÿIHHÿNNNÿOOOÿSSSÿPPPÿWWWÿWWWÿ___ÿ[[[ÿUTVÿ___ÿgggÿnnnÿmllÿmllÿqprÿXXXÿkkkÿqppÿ`_`ÿedfÿmllÿkkkÿcccÿkkkÿlnoÿrrrÿxxxÿxxxÿzzzÿzzzÿxxxÿzzzÿxxxÿxxxÿ{{{ÿwwwÿxxxÿvvvÿsssÿrrrÿsssÿstvÿvvvÿvvvÿoooÿqppÿsssÿJJJÿJJJÿFFFÿFFFÿDCDÿA@BÿEDDÿGGGÿHGHÿGGGÿGGGÿIHHÿIHHÿGGGÿIHJÿIHHÿIHJÿFFGÿCCCÿEDFÿEDDÿCCCÿEDFÿIHJÿIHJÿJJJÿLKLÿLKNÿIHHÿFFGÿIHJÿEDFÿFFFÿIHHÿLKLÿNNNÿNNNÿLKLÿNNNÿPOQÿQPRÿMLNÿMLNÿMLNÿQPRÿQPRÿMLOÿPOQÿQPRÿSRTÿSRTÿSSSÿVVVÿWWWÿXXXÿWWWÿZZZÿ[[[ÿ___ÿ^^^ÿZZZÿgggÿcccÿdddÿfffÿ\\\ÿdddÿkkkÿjjjÿihhÿbbbÿrrrÿkkkÿihhÿkkkÿnnnÿbbbÿbbbÿ[[[ÿNNNÿRRRÿZZZÿfffÿ```ÿ___ÿPPPÿ^^^ÿ```ÿbbbÿihhÿnnnÿrrrÿtstÿoooÿmllÿtttÿzxxÿwvvÿjjjÿRRSÿJJJÿIHJÿJJJÿIHJÿJJJÿIHJÿIHHÿIHJÿIHJÿEDDÿ>=>ÿGGGÿGGGÿLKLÿFFFÿGGGÿIHHÿIHHÿLKLÿVVWÿLKLÿGGGÿGGGÿFFGÿGGGÿFFFÿIHHÿNNNÿJJJÿLKLÿPPPÿPPPÿRRSÿRRSÿRRRÿNNNÿRRRÿRRRÿOOOÿTSTÿYXZÿdcdÿdcdÿ`_`ÿdddÿihhÿkkkÿoooÿnnnÿdddÿ[[[ÿcccÿoooÿkkkÿkkkÿbbbÿWWWÿihhÿjjjÿrrrÿkkkÿ^\^ÿkkkÿsssÿrrrÿnnnÿmllÿmllÿbbbÿgggÿdddÿdddÿihhÿkkkÿkkkÿoooÿtttÿrrrÿmllÿjjjÿkjkÿoooÿnnnÿjjjÿkkkÿYXZÿUTVÿ^^_ÿ^\^ÿYXZÿYXZÿPOQÿMLNÿMLNÿMLNÿMLNÿLKLÿdcdÿ^\^ÿTSTÿMLOÿLKLÿLKLÿMLNÿOOOÿ\[\ÿa`bÿffgÿdcdÿgggÿihhÿihhÿkkkÿnnnÿmllÿoooÿmllÿihhÿkjkÿkkkÿkjkÿrrrÿkjkÿcccÿmllÿihhÿhghÿkjkÿa`bÿ^^^ÿ^^_ÿffgÿmlnÿoooÿnnnÿnnoÿoooÿoooÿcccÿXXXÿdddÿtttÿwwwÿwvvÿwvvÿtttÿtstÿtttÿtttÿzxxÿrrrÿqppÿrrrÿcccÿ^\^ÿ___ÿWWWÿNNOÿNNNÿGGGÿPPPÿOOOÿLKLÿJJJÿ@@@ÿ@@@ÿBBCÿBBBÿBBBÿ>=>ÿ??@ÿBBBÿ??@ÿFFFÿNNNÿNNNÿNNOÿTSTÿRRRÿUTVÿQPRÿNNNÿ```ÿihjÿmllÿjjjÿmllÿkkkÿdddÿkkkÿkjkÿcccÿ^^^ÿmllÿnnoÿmllÿoooÿsssÿvvvÿxxxÿzzzÿzzzÿxxxÿzzzÿzzzÿ{{{ÿ{{{ÿzzzÿzzzÿxxxÿwwwÿstvÿwwwÿxxxÿyxzÿxxxÿxxxÿxxxÿxwxÿwwwÿoooÿCCCÿJJJÿFFFÿA@Bÿ@@@ÿHGHÿFEIÿFEIÿIHHÿJJJÿGGGÿGGJÿIHJÿIHJÿJJKÿIHJÿGGGÿEDFÿIHJÿHGHÿEDDÿA@BÿIHJÿJJJÿMLNÿLKLÿLKNÿFFGÿGGGÿLKLÿLKLÿMLNÿMLNÿJJJÿMLNÿONQÿOOOÿPOQÿPOQÿQPRÿLKLÿMLNÿMLNÿPOQÿOOOÿUTVÿYXZÿRRSÿUTVÿTSTÿVVVÿVVVÿ[[[ÿWWWÿZZZÿ___ÿ^^^ÿ^^^ÿ\\\ÿ^^^ÿmllÿcccÿgggÿ^^^ÿ[[[ÿgggÿgggÿjjjÿbbbÿbbbÿmllÿnnnÿkkkÿgggÿcccÿdddÿqppÿcccÿbbbÿgggÿkjkÿ^^^ÿ\\\ÿbbbÿ\\\ÿdddÿmllÿdddÿoooÿmllÿnnnÿoooÿnnnÿkkkÿxwwÿxwwÿkjkÿNNNÿJJJÿJJJÿIHHÿIHHÿJJJÿJJJÿJJJÿIHJÿIHJÿIHHÿBBBÿA@BÿIHHÿJJJÿMLNÿGGGÿGGGÿIHHÿLKLÿRRSÿIHHÿFFFÿFFFÿGGGÿFFFÿGGGÿRRSÿHGHÿGGGÿJJJÿNNNÿRRRÿWWWÿQPRÿQPRÿIHHÿLKLÿPPPÿMLNÿOOOÿZZ[ÿcccÿdcdÿkjkÿrrrÿrrrÿoooÿ[[[ÿmllÿbbbÿVVVÿTTTÿkkkÿkkkÿkkkÿgggÿbbbÿbbbÿihhÿkkkÿdddÿgggÿkkkÿqppÿsssÿoooÿkkkÿoooÿ^\^ÿmllÿSSSÿZZ[ÿ^^^ÿnnnÿ___ÿnnnÿoooÿnnnÿmllÿoooÿkjkÿihhÿoooÿoooÿmllÿkjkÿ```ÿfffÿkkkÿihhÿgggÿXXXÿMLNÿLKLÿMLNÿMLNÿMLNÿOOOÿNNNÿkjkÿVVWÿMLNÿMLOÿLKNÿLKLÿLKLÿLKLÿLKNÿMLNÿMLNÿMLOÿMLOÿMLNÿUTVÿnnnÿbbbÿfffÿkjkÿrrrÿtstÿnnnÿqppÿwvvÿ`_`ÿVVVÿYXZÿZZZÿ`_`ÿfffÿhghÿkkkÿnnnÿqppÿqppÿnnnÿmllÿmlnÿnnnÿnnnÿbbbÿbbbÿdddÿwvvÿzxxÿwvvÿxwwÿwvvÿtttÿtttÿzxxÿzxxÿwvvÿqppÿmllÿ^^^ÿ[[[ÿ^^^ÿXXXÿSRTÿOOOÿFFFÿKKKÿLKLÿGGGÿBBCÿ@@@ÿ@@@ÿDCDÿBBCÿ@@@ÿ??@ÿA@BÿCCCÿ@@@ÿEDDÿJJJÿKKKÿKKKÿNNNÿRRRÿTTTÿNNNÿHGHÿTTTÿZZZÿ___ÿbbbÿ\\\ÿgggÿZZZÿkkkÿ___ÿedfÿbbbÿffgÿijkÿjjjÿijkÿnnnÿtttÿxxxÿxxxÿzzzÿxxxÿxxxÿzzzÿ{{{ÿzzzÿxxxÿxxxÿvvvÿxwxÿvvvÿxwxÿzzzÿzzzÿzzzÿxxxÿwwwÿwwwÿxxxÿxxxÿNNNÿEDDÿFFFÿ??@ÿEDDÿHGHÿHGHÿGGGÿIHHÿJJKÿFFGÿGGGÿHGHÿGGGÿHGHÿIHHÿGGGÿDCDÿIHJÿHGHÿIHHÿBBCÿEDDÿJJJÿLKLÿLKLÿJJJÿFFFÿEDFÿIHJÿLKLÿMLNÿMLNÿLKLÿPPPÿPOQÿPOQÿQPRÿRRSÿRRSÿMLNÿMLNÿNNNÿOOOÿMLNÿPOQÿQPRÿPOQÿQPRÿQPRÿSSSÿSSSÿWWWÿTTTÿWWWÿ^^^ÿ[[[ÿ```ÿ^\^ÿWWWÿkkkÿ^\^ÿVVVÿWWWÿTTTÿcccÿcccÿgggÿdddÿihhÿoooÿrrrÿoooÿkkkÿfffÿcccÿdddÿihhÿoooÿkkkÿrrrÿjjjÿdddÿjjjÿgggÿfffÿkkkÿmllÿsssÿrrrÿqppÿqppÿoooÿgggÿkjkÿ^\^ÿIHHÿHGHÿIHHÿIHHÿIHHÿIHJÿLKLÿIHJÿJJJÿKKKÿIHJÿIHJÿ@@@ÿCCCÿHGHÿIHJÿHGHÿGGGÿFFFÿGGGÿRRSÿFFGÿGGGÿFFGÿFFFÿIHHÿLKLÿNNNÿNNNÿFFGÿIHHÿIHHÿJJJÿLKLÿSSSÿMLNÿNNNÿNNNÿRRRÿVVVÿRRSÿZZ[ÿYXZÿ`_`ÿfffÿnnoÿtstÿoooÿgggÿbbbÿa`bÿgggÿfffÿmllÿgggÿgggÿfffÿihhÿgggÿfffÿihhÿRRRÿbbbÿjjjÿmllÿfffÿnnnÿfffÿjjjÿgggÿdddÿihhÿcccÿbbcÿmllÿkkkÿGGGÿqppÿoooÿoooÿoooÿmllÿihhÿihhÿnnnÿnnnÿqppÿnnnÿmllÿoooÿoooÿgggÿTTTÿNNNÿMLNÿMLOÿMLOÿLKLÿLKLÿMLNÿKKKÿOOOÿMLNÿLKLÿLKLÿLKLÿLKNÿLKLÿLKLÿLKNÿLKNÿLKNÿMLNÿMLNÿMLNÿUTVÿmllÿa`bÿihhÿPPPÿYXZÿkjkÿxwwÿzzzÿtstÿffgÿ^\^ÿ[[[ÿ^^^ÿkjkÿmlnÿpopÿqppÿqppÿpopÿnnoÿkkkÿkkkÿgggÿihjÿihhÿgggÿgggÿpopÿwvvÿzxxÿxwxÿxwwÿtttÿtstÿwvvÿzxxÿkkkÿgggÿRRRÿ```ÿ^^_ÿUTVÿWWWÿSSSÿLKLÿGGGÿBBCÿFFFÿEDDÿCCCÿ??@ÿ@@@ÿBBBÿEDDÿCCCÿ£££ÿøøøÿøøøÿøøøÿøøøÿøøøÿÄÄÄÿJJJÿKKKÿNNNÿRRRÿOOOÿNNNÿFFFÿOOOÿSRTÿVVYÿZZZÿTTTÿ___ÿcccÿmllÿhghÿcccÿ```ÿgggÿmllÿfffÿqppÿrrrÿtttÿzzzÿzzzÿzzzÿzzzÿxxxÿxxxÿxxxÿzzzÿzzzÿzzzÿwwwÿ{{{ÿzzzÿxxxÿwwwÿzzzÿzzzÿyxzÿxxxÿxxxÿxxxÿxxxÿmllÿEDDÿCCCÿEDFÿFFGÿHGHÿHGHÿHGHÿHGHÿIHHÿHGHÿIHHÿIHJÿFFGÿEDFÿIHJÿHGHÿEDFÿDCDÿHGHÿIHJÿHGHÿBBCÿA@BÿDCDÿJJJÿJJJÿJJJÿDCDÿEDFÿIHJÿLKLÿMLNÿNNNÿPOQÿOOOÿPOQÿPOQÿQPRÿRRSÿMLNÿLKLÿMLNÿMLNÿOOOÿMLNÿJJJÿQPRÿTSTÿRRSÿTTTÿVVVÿTTTÿXXXÿSSSÿ[[[ÿ[[[ÿ^^^ÿTTTÿVVVÿfffÿSSSÿ___ÿcccÿ[[[ÿfffÿ```ÿbbbÿcccÿmllÿmllÿmllÿgggÿ```ÿ___ÿXXXÿdddÿtttÿtttÿmllÿsssÿnnnÿqppÿrrrÿrrrÿoooÿnnnÿmllÿpopÿqppÿrrrÿsssÿtttÿjjjÿEDDÿBBCÿ@@@ÿBBCÿEDDÿIHHÿIHHÿIHJÿJJJÿIHJÿLKLÿIHJÿIHJÿIHJÿDCDÿEDFÿIHHÿGGGÿFFGÿFFFÿGGGÿMLNÿIHHÿFFFÿFFFÿJJJÿJJJÿQPRÿQPRÿQPRÿJJJÿHGHÿIHHÿIHHÿIHHÿLKLÿQPRÿPOQÿOOOÿLLLÿPPPÿUTVÿUTVÿVVWÿdcdÿkkkÿmlnÿoooÿnnoÿqppÿgggÿgggÿdddÿjjjÿkkkÿfffÿ^^^ÿ___ÿXXXÿ```ÿ^\^ÿ```ÿXXXÿ[[[ÿihhÿmllÿfffÿ___ÿRRRÿYXZÿ___ÿbbbÿdddÿbbbÿnnnÿkkkÿkjkÿGGGÿJJJÿqppÿoooÿnnnÿqppÿqppÿoooÿqppÿrrrÿqppÿqppÿoooÿnnoÿlklÿ[[[ÿPOQÿMLNÿMLNÿMLNÿMLOÿVVWÿONQÿLKLÿMLNÿLKLÿLKLÿLKLÿLKLÿMLNÿLKNÿLKNÿMLNÿLKNÿLKNÿLKNÿLKLÿLKNÿLKNÿMLNÿTSTÿkjkÿdcdÿihhÿQPRÿOOOÿOOOÿihhÿxwwÿoooÿmllÿmlnÿpopÿoooÿoooÿpopÿtstÿqppÿnnoÿlklÿedfÿbbcÿihhÿ^^_ÿPPPÿ^\^ÿihhÿfffÿoooÿqppÿqppÿxwwÿxwxÿtttÿrrrÿwvvÿoooÿ^^^ÿXWYÿ\[\ÿa`bÿUTWÿRRSÿNNOÿONQÿEDFÿ@@@ÿ<<<ÿ<<<ÿ??@ÿ??@ÿ??@ÿ??@ÿBBBÿEDDÿCCCÿCCCÿ^^_ÿøøøÿøøøÿøøøÿ\\]ÿBBBÿJJJÿLLLÿNNOÿPPPÿOOOÿNNNÿHGHÿJJJÿRRSÿVVWÿSSSÿUTVÿZZZÿZZZÿgggÿnnnÿjjjÿmllÿjjjÿmllÿoooÿsssÿtttÿvvvÿxxxÿxxxÿxxxÿzzzÿstvÿsstÿrrrÿxxxÿ{{{ÿxxxÿwwwÿzzzÿ{{{ÿzzzÿzzzÿ{{{ÿ{{{ÿ}||ÿyxzÿzzzÿstvÿGHJÿFFGÿCCCÿEDFÿHGHÿGGGÿHGHÿFFGÿHGHÿHGHÿFFGÿIHHÿIHJÿHGHÿEDDÿ@@@ÿHGHÿHGHÿHGHÿFFFÿDCDÿJJJÿEDFÿBBCÿDCDÿIHHÿJJJÿJJJÿJJJÿIHJÿEDFÿCCCÿJJJÿMLNÿONQÿNNNÿPOQÿONQÿPOQÿMLNÿMLNÿMLNÿMLNÿLLLÿMLNÿMLNÿMLOÿPOQÿOOOÿPOQÿPOQÿOOOÿPPPÿSSSÿoooÿrrrÿgggÿ^\^ÿ[[[ÿZZZÿWWWÿTTTÿ___ÿgggÿ^^^ÿ\\\ÿihhÿbbbÿgggÿmllÿkkkÿmllÿkkkÿgggÿoooÿkkkÿjjjÿihhÿtttÿwvvÿsssÿwvvÿtttÿsssÿwvvÿsssÿtttÿtttÿtttÿsssÿrrrÿqppÿoooÿgggÿ```ÿRRSÿEDFÿHGHÿDCDÿCCCÿ@@@ÿ@@@ÿEDFÿGGGÿIHJÿIHJÿIHHÿHGHÿGGGÿ@@@ÿEDDÿMLNÿFFGÿFFFÿFFFÿIHHÿJJJÿIHHÿLKLÿRRSÿPOQÿNNNÿLKLÿLKLÿNNNÿJJJÿGGGÿIHHÿGGGÿJJJÿJJJÿTSTÿOOOÿPOQÿNNNÿZZZÿRRSÿRRSÿihhÿnnnÿpopÿrrrÿnnoÿnnoÿnnoÿnnnÿihhÿoooÿjjjÿWWWÿWWWÿihhÿcccÿZZZÿcccÿ```ÿgggÿ___ÿgggÿgggÿ^\^ÿ___ÿgggÿ^^^ÿWWWÿjjjÿihhÿkkkÿmllÿkkkÿqppÿLLLÿFFFÿLLLÿrrrÿqppÿrrrÿsssÿsssÿwvvÿwvvÿwvvÿtttÿtstÿnnnÿYXZÿPOQÿMLNÿMLNÿMLNÿMLNÿMLNÿQPRÿnnoÿkjkÿZZ[ÿSRTÿQPRÿOOOÿMLNÿLKLÿLKLÿLKNÿMLNÿMLNÿMLNÿMLNÿMLNÿMLNÿMLNÿMLOÿMLNÿOOOÿZZ[ÿihjÿgggÿRRSÿMLNÿOOOÿgggÿqppÿpopÿqppÿpopÿpopÿoooÿpopÿnnnÿpopÿqppÿlklÿ^\^ÿVVWÿedfÿkjkÿmlnÿ___ÿVVVÿdddÿffgÿmllÿnnnÿpopÿqppÿxwwÿtttÿtttÿtttÿbbbÿWWWÿRRRÿTSTÿUTWÿRRSÿLKLÿEDFÿBBCÿ??@ÿ<<<ÿ??@ÿ>=>ÿ>=>ÿ??@ÿ<<<ÿ??@ÿBBBÿCCCÿCCCÿDCDÿDCDÿøøøÿøøøÿøøøÿ>=>ÿ??@ÿFEIÿJJLÿJJKÿMLNÿPOQÿMLNÿFFGÿJJKÿQPRÿWWWÿTTTÿTTTÿVVVÿXWYÿcccÿgggÿbbbÿfffÿdcdÿ```ÿjklÿqppÿsssÿvvvÿtttÿwwwÿvvvÿzzzÿxxxÿxxxÿstvÿstvÿ{{{ÿzzzÿxxxÿ{{{ÿ{z{ÿ{{{ÿzzzÿzzzÿ{{{ÿxwxÿyxzÿyxzÿA@BÿBBBÿDCDÿFEIÿGGGÿHGHÿHGHÿHGHÿHGHÿHGHÿGGGÿHGHÿHGHÿBBCÿDCDÿ@@@ÿ@@@ÿEDFÿIHHÿFFGÿHGHÿDCDÿLKLÿJJJÿJJJÿLKLÿMLNÿMLNÿLKLÿIHHÿJJJÿIHJÿCCCÿJJJÿLKLÿMLNÿNNNÿPOQÿLKLÿJJJÿLKLÿMLNÿLKLÿLKLÿLKLÿLKLÿMLNÿMLNÿMLNÿOOOÿPOQÿPOQÿPPPÿPPPÿRRRÿoooÿqppÿqppÿnnnÿnnnÿmllÿwvvÿcccÿdddÿjjjÿTTTÿVVVÿjjjÿ___ÿcccÿfffÿfffÿjjjÿihhÿcccÿkkkÿfffÿbbbÿfffÿoooÿzxxÿwvvÿwvvÿwvvÿwvvÿtttÿwvvÿwvvÿwvvÿtttÿwvvÿtstÿfffÿ___ÿ^\^ÿZZ[ÿ^\^ÿFFFÿGGGÿIHHÿIHHÿGGGÿCCCÿBBCÿBBCÿCCCÿDCDÿGGGÿIHHÿIHHÿFFFÿJJJÿMLNÿFFFÿIHJÿHGHÿJJJÿPOQÿNNNÿMLNÿNNNÿLKLÿHGHÿFFGÿIHJÿNNNÿLKLÿGGGÿIHJÿIHHÿJJJÿJJJÿPOQÿLKLÿJJJÿLLLÿUTVÿWWWÿihhÿnnnÿgggÿqppÿoooÿnnnÿpopÿnnoÿmllÿkjkÿkjkÿa`bÿ^\^ÿZZ[ÿcccÿfffÿkjkÿZZ[ÿ^\^ÿcccÿfffÿ^\^ÿVVWÿVVVÿgggÿbbbÿ[[[ÿdddÿqppÿmlnÿbbbÿ___ÿcccÿNNNÿGGGÿIHJÿVVVÿwvvÿqppÿrrrÿrrrÿqppÿmllÿihhÿkkkÿa`bÿVVVÿQPRÿQPRÿLKLÿMLOÿLKLÿMLNÿMLNÿMLNÿRRSÿnnoÿnnnÿbbcÿRRSÿOOOÿMLNÿLKLÿLKNÿLKNÿLKNÿLKNÿLKNÿLKNÿLKNÿLKNÿLKNÿLKNÿLKLÿLKNÿLKNÿLKNÿUTWÿYX[ÿONQÿMLNÿOOOÿdcdÿnnnÿqppÿrrrÿrrrÿqppÿrrrÿoooÿoooÿnnnÿqppÿkkkÿ^\^ÿSRTÿihhÿhghÿlklÿ^^^ÿZZZÿgggÿkkkÿnnoÿoooÿqppÿqppÿtttÿwvvÿrrrÿoooÿ^\^ÿRRSÿNNNÿJJKÿIHJÿHGHÿEDFÿA@Bÿ??@ÿ??@ÿA@BÿBBCÿBBCÿBBCÿA@Bÿ??@ÿ>=>ÿ@@@ÿCCCÿDCDÿDCDÿDCDÿøøøÿøøøÿøøøÿ>=>ÿ>=>ÿ??@ÿLKLÿLKLÿLKLÿLKLÿMLNÿHGHÿNNNÿPPPÿTTTÿVVVÿSSSÿTTTÿZZ[ÿcccÿkkkÿjjjÿ___ÿYXZÿZZ[ÿqppÿijkÿdddÿhklÿnopÿxxxÿ{{{ÿ}||ÿ{{{ÿ{{{ÿxxxÿxxxÿzzzÿzzzÿ{{{ÿ{{{ÿzzzÿ{{{ÿxxxÿrrrÿwwwÿxwxÿxwxÿjjlÿBBCÿDCDÿEDFÿFFGÿHGHÿHGHÿHGHÿIHHÿIHHÿHGHÿHGHÿIHHÿGGGÿFFFÿDCDÿBBBÿBBCÿA@BÿEDFÿFFGÿIHJÿIHJÿLKLÿJJJÿLKLÿLKNÿMLNÿJJJÿIHHÿMLNÿMLNÿJJLÿFFGÿJJJÿJJLÿMLNÿONQÿPOQÿTSTÿVVWÿVVWÿRRSÿTSTÿQPRÿOOOÿMLNÿMLOÿPOQÿOOOÿPOQÿQPRÿQPRÿSSSÿRRRÿSSSÿsssÿoooÿrrrÿoooÿoooÿsssÿsssÿmllÿrrrÿgggÿ[[[ÿWWWÿ\\\ÿcccÿcccÿ^\^ÿcccÿcccÿihhÿgggÿcccÿgggÿdddÿ___ÿnnnÿxwwÿwvvÿtttÿtttÿwvvÿwvvÿwvvÿwvvÿwvvÿwvvÿqppÿihhÿcccÿcccÿbbbÿ^\^ÿ[[[ÿGGGÿ@@@ÿEDDÿIHHÿGGGÿLKLÿIHHÿGGGÿEDDÿ??@ÿ??@ÿCCCÿGGGÿEDFÿJJJÿIHHÿGGGÿIHHÿHGHÿLKLÿLKLÿIHHÿLKLÿJJJÿGGGÿGGGÿFFGÿHGHÿIHHÿHGHÿHGHÿGGGÿHGHÿIHHÿJJJÿHGHÿJJJÿVVVÿXXXÿ`_`ÿkjkÿgggÿdddÿkkkÿrrrÿtttÿrrrÿihhÿkjkÿmllÿ^\^ÿOOOÿfffÿ\[\ÿYXZÿ`_`ÿkkkÿcccÿ^\^ÿ^\^ÿa`bÿXWYÿgggÿcccÿcccÿcccÿkjkÿmllÿkkkÿmllÿ___ÿ___ÿUTVÿ^^_ÿFFFÿGGGÿPPPÿjjjÿZZ[ÿTSTÿQPRÿTSTÿQPRÿNNNÿMLOÿTSTÿ^^_ÿ`_`ÿUTWÿTSTÿLKLÿQPRÿMLOÿNNNÿMLNÿOOOÿUTWÿrrrÿnnoÿkjkÿa`bÿRRSÿMLNÿLKLÿMLNÿMLNÿLKNÿLKNÿMLNÿMLNÿMLNÿMLNÿLKNÿMLNÿMLOÿMLNÿMLNÿLKNÿMLNÿMLNÿONQÿMLOÿMLNÿMLNÿTSTÿnnnÿrrrÿqppÿqppÿrrrÿrrrÿrrrÿrrrÿqppÿmlnÿffgÿUTWÿkjkÿfffÿ^^_ÿLLLÿgggÿnnnÿqppÿrrrÿsssÿsssÿrrsÿrrrÿrrsÿqppÿoooÿRRRÿKKKÿHGHÿEDDÿDCDÿBBCÿFFGÿ??@ÿ??@ÿ>=>ÿA@Bÿ??@ÿ@@@ÿBBCÿA@BÿBBCÿ@@@ÿ@@@ÿBBBÿBBCÿDCDÿDCDÿøøøÿøøøÿøøøÿjijÿÏÎÏÿõõõÿëëëÿ³³³ÿXXXÿNNNÿQPRÿªª«ÿøøøÿøøøÿøøøÿøøøÿøøøÿšššÿVVWÿUTVÿ]]^ÿ££¤ÿ×××ÿñññÿøøøÿíííÿÌÌÌÿŠŠŠÿvvvÿxxxÿ   ÿãããÿ÷÷÷ÿôôôÿÞÞÞÿ©©©ÿ‹‹‹ÿßßßÿ÷÷÷ÿßßßÿÿŽŽŽÿøøøÿøøøÿøøøÿøøøÿöööÿäääÿ¢¢¢ÿGFJÿHGHÿIHJÿIHJÿNMOÿ”””ÿÒÒÒÿðððÿøøøÿêêêÿ¾½¾ÿhhiÿFFGÿKKKÿKKKÿCCCÿ??@ÿA@BÿFFFÿFFFÿMLOÿLKLÿIHJÿyyzÿøøøÿÁÁÁÿLKLÿLKNÿLKNÿ˜˜˜ÿøøøÿŸŸŸÿDCDÿHGHÿJJJÿLLLÿONQÿQPRÿ†…†ÿÝÝÝÿöööÿòòòÿÖÖÖÿÿcbdÿÖÖÖÿöööÿÖÖ×ÿnmoÿ~~ÿøøøÿøøøÿøøøÿøøøÿøøøÿ¦¦¦ÿnnnÿqppÿŒŒŒÿÛÛÛÿöööÿîîîÿ¼¼¼ÿvvvÿihhÿkkkÿ°°°ÿóóóÿÙÙÙÿjjjÿWWWÿ___ÿ®®®ÿóóóÿÚÚÚÿnnnÿmllÿgggÿ®®®ÿóóóÿÞÞÞÿÿwvvÿrrrÿwvvÿwvvÿwvvÿwvvÿtstÿmllÿfffÿfffÿcccÿcccÿdddÿbbbÿbbbÿ[[[ÿCCCÿ@@@ÿBBBÿEDDÿMLNÿJJJÿLKLÿJJJÿHGHÿEDDÿCCCÿGGGÿJJJÿEDDÿFFFÿJJJÿFFGÿGGGÿGGGÿGGGÿMLNÿJJJÿFFGÿGGGÿFFGÿHGHÿGGGÿGGGÿGGGÿGGGÿFFFÿFFFÿGGGÿOOOÿTSTÿRRSÿMLNÿ\[\ÿfffÿgggÿgggÿoooÿnnnÿrrrÿnnnÿfffÿfffÿihhÿgggÿdddÿgggÿfffÿffgÿfffÿihhÿihhÿZZ[ÿdddÿ`_`ÿ^\^ÿihhÿihhÿfffÿnnnÿkkkÿfffÿcccÿbbbÿ___ÿYXZÿedfÿ`_`ÿFFGÿFFFÿNNNÿfffÿwvvÿPOQÿMLNÿPOQÿLKLÿLKLÿLKLÿLKLÿOOOÿQPRÿYXZÿVVWÿUTVÿOOOÿOOOÿLKLÿONQÿTSTÿa`bÿnnoÿrrrÿnnnÿmllÿffgÿ^\^ÿRRSÿMLNÿLKLÿLKNÿLKNÿMLNÿMLNÿLKLÿLKLÿLKLÿLKLÿLKNÿLKNÿLKNÿLKNÿMLOÿLKNÿMLNÿMLOÿMLNÿMLNÿNNOÿMLNÿkjkÿqppÿoooÿoooÿrrrÿrrrÿrrrÿpopÿqppÿoooÿnnoÿkjkÿfffÿVVVÿRRSÿRRRÿffgÿoooÿpopÿtttÿtttÿtttÿtstÿrrrÿrrrÿoooÿnnnÿPOQÿJJJÿEDDÿCCCÿA@BÿA@Bÿ??@ÿ<<<ÿ>=>ÿ<<<ÿ>=>ÿ;:;ÿ<<<ÿ??@ÿ>=>ÿ>=>ÿ??@ÿBBCÿBBCÿBBBÿCCCÿCCCÿøøøÿøøøÿøøøÿäääÿ‰ˆ‰ÿ………ÿéééÿøøøÿÜÜÜÿ[[\ÿUTVÿPOQÿbabÿøøøÿøøøÿøøøÿaaaÿNNNÿZZZÿhhhÿØØØÿøøøÿøøøÿÚÚÚÿ¦¥¦ÿžžžÿÂÂÂÿñññÿ———ÿzzzÿðððÿøøøÿøøøÿµµµÿ«««ÿåååÿïïïÿøøøÿøøøÿ¬¬¬ÿœœœÿŒŒŒÿøøøÿðððÿ¬¬¬ÿƒ‚‚ÿ~~ÿ³³³ÿøøøÿ¦¦¦ÿIHJÿHGHÿNNNÿÑÑÑÿøøøÿøøøÿÒÒÒÿŠŠŠÿÿ®®¯ÿïïïÿrrrÿIHJÿJJKÿGGGÿDCDÿFFGÿFFGÿJJJÿIHHÿLKLÿLKLÿÉÉÊÿøøøÿ÷÷÷ÿdddÿLKLÿNMNÿáááÿøøøÿëëëÿPOQÿGGGÿGGGÿMLNÿQPRÿONQÿíííÿøøøÿøøøÿžžÿ‘ÿßßßÿìììÿøøøÿøøøÿ’’’ÿ€‚ÿ^\^ÿgfhÿøøøÿøøøÿøøøÿbbbÿsssÿkkkÿjjjÿÞÞÞÿøøøÿøøøÿÓÓÓÿêêêÿ¹¹¹ÿ___ÿqqqÿøøøÿøøøÿøøøÿ²²²ÿmllÿnnnÿøøøÿøøøÿøøøÿ®®®ÿkkkÿkkkÿøøøÿøøøÿøøøÿ¹¸¸ÿwvvÿxwwÿxwwÿxwwÿrrrÿoooÿnnnÿkjkÿdcdÿfffÿfffÿfffÿdddÿbbcÿ```ÿ```ÿOOOÿIHHÿFFFÿDCDÿBBCÿEDDÿEDDÿIHJÿIHJÿIHHÿPPPÿZZ[ÿMLNÿ>=>ÿ@@@ÿFFFÿEDDÿIHHÿHGHÿGGGÿGGGÿEDFÿGGGÿFFGÿEDFÿGGGÿFFGÿFFGÿGGGÿFFFÿFFFÿGGGÿJJJÿOOOÿVVWÿUTVÿRRSÿ\[\ÿa`bÿ___ÿgggÿrrrÿqppÿmllÿfffÿa`bÿkkkÿkkkÿcccÿ^\^ÿkjkÿ[[[ÿfffÿnnoÿmllÿcccÿ`_`ÿ^\^ÿfffÿkkkÿnnnÿmllÿoooÿbbbÿ```ÿfffÿcccÿ___ÿnnnÿnnnÿnnnÿIHHÿFFFÿJJJÿYXZÿtstÿutvÿVVYÿONQÿLKLÿLKNÿIHJÿLKLÿLKLÿJJJÿMLNÿQPRÿYXZÿUTWÿMLNÿLKLÿMLNÿLKLÿMLOÿMLOÿhghÿrrrÿrrrÿmllÿa`bÿa`bÿ^\^ÿMLNÿLKLÿLKLÿMLNÿMLNÿLKNÿLKLÿLKLÿLKNÿJJJÿLKNÿLKNÿLKNÿMLOÿLKNÿMLOÿMLOÿVVWÿTSTÿOOOÿLKLÿNNOÿTSTÿoooÿoooÿoooÿnnnÿoooÿoooÿoooÿoooÿnnoÿmlnÿYXZÿNNOÿPPPÿQPRÿYXZÿmllÿrrsÿtttÿwvvÿxwwÿtttÿxwwÿtttÿqppÿnnnÿLKLÿKKKÿLKLÿGGGÿBBCÿFFGÿ@@@ÿBBCÿ??@ÿBBCÿDCDÿ@@@ÿA@Bÿ<<<ÿ>=>ÿ>=>ÿ>=>ÿ??@ÿCCCÿBBCÿBBCÿBBBÿBBBÿøøøÿøøøÿøøøÿ~~~ÿ>=>ÿ>=>ÿÿøøøÿøøøÿ§¦§ÿQPRÿNNOÿSRTÿøøøÿøøøÿøøøÿVVVÿXXXÿbbbÿ°°°ÿøøøÿøøøÿáááÿuuuÿwwwÿvvvÿwwwÿ£££ÿ×××ÿ{{{ÿìììÿøøøÿøøøÿ‚ÿ{{{ÿŽŽŽÿøøøÿøøøÿøøøÿ{{{ÿzzzÿŽŽŽÿöööÿ–––ÿ{{{ÿ}||ÿ€ÿ¯°°ÿøøøÿíííÿIHHÿHGHÿŸž ÿøøøÿøøøÿØØØÿDDDÿ??@ÿEDFÿIHJÿ……†ÿÊÊÊÿKKKÿKKKÿFFGÿEDFÿHGHÿPOQÿPOQÿONQÿJJJÿiijÿøøøÿøøøÿøøøÿ³³³ÿJJJÿ~ÿøøøÿøøøÿøøøÿ—–—ÿONQÿFFFÿEDDÿEDFÿIHJÿççèÿøøøÿøøøÿXWYÿQPRÿlllÿøøøÿøøøÿøøøÿOOOÿYXZÿhghÿkjkÿøøøÿøøøÿøøøÿTTTÿsssÿkkkÿnnnÿõõõÿøøøÿøøøÿtttÿ“““ÿëëëÿbbbÿnnnÿìììÿøøøÿøøøÿžžžÿkkkÿqppÿìììÿøøøÿøøøÿ”””ÿcccÿ^^^ÿëëëÿøøøÿøøøÿ©¨¨ÿxwwÿzxxÿwvvÿnnnÿgggÿihhÿfffÿgggÿffgÿfffÿgggÿfffÿedfÿcccÿ```ÿ```ÿOOOÿIHHÿIHJÿIHJÿGGGÿEDDÿ??@ÿBBCÿFFFÿNNNÿ\[\ÿ\[\ÿHGHÿ>=>ÿFFFÿFFFÿ@@@ÿIHHÿEDDÿFFGÿHGHÿHGHÿHGHÿFFGÿFFFÿEDFÿFFFÿFFGÿFFFÿFFFÿGGGÿGGGÿUTVÿOOOÿXWYÿXWYÿXWYÿ^^_ÿdcdÿgggÿkkkÿWWWÿ___ÿbbbÿgggÿXXXÿihhÿYXZÿ^\^ÿnnnÿrrrÿqppÿqppÿkkkÿcccÿ`_`ÿYXZÿkjkÿkjkÿdcdÿjjjÿ```ÿ`_`ÿdddÿdddÿbbbÿkkkÿqppÿihhÿnnnÿLKLÿFFFÿIHHÿRRRÿnnoÿqppÿXWYÿUTWÿONQÿLKNÿLKNÿJJLÿLKLÿONQÿOOOÿLKLÿMLOÿUTVÿMLOÿLKLÿLKLÿLKLÿNNOÿMLOÿNNNÿ^^_ÿsssÿrrrÿnnoÿkjkÿgggÿcccÿa`bÿRRSÿMLNÿMLNÿLKNÿMLNÿLKNÿJJLÿLKLÿMLNÿMLNÿMLNÿLKNÿLKNÿLKLÿLKLÿMLNÿOOOÿffgÿUTVÿMLOÿLKNÿNNNÿ^\^ÿoooÿqppÿnnnÿoooÿnnnÿnnnÿnnnÿ```ÿQPRÿQPRÿQPRÿZZ[ÿ[[[ÿedfÿnnnÿrrrÿwvvÿxwwÿzxxÿtttÿwvvÿtttÿoooÿUTVÿGGGÿFFFÿBBBÿBBBÿ@@@ÿEDFÿFFGÿEDFÿA@BÿA@BÿBBCÿBBCÿDCDÿ??@ÿ??@ÿ>=>ÿ>=>ÿ??@ÿBBCÿBBCÿBBCÿBBCÿA@BÿøøøÿøøøÿøøøÿKJKÿ<<<ÿ<<<ÿRQRÿøøøÿøøøÿßßßÿPPPÿOOOÿQPRÿøøøÿøøøÿøøøÿSSSÿ\\\ÿbbbÿÞÞÞÿøøøÿøøøÿ¾¾¾ÿvvvÿwwwÿwwwÿxxxÿxxxÿ{{{ÿ{{{ÿ¡¡¡ÿòòòÿøøøÿÆÆÇÿ„ƒƒÿ}||ÿøøøÿøøøÿøøøÿ}||ÿ{{{ÿ‚ÿ–––ÿš™™ÿÄÃÃÿÞÞÞÿõõõÿøøøÿøøøÿìììÿGGGÿHGHÿØØØÿøøøÿøøøÿ¦¦¦ÿBBBÿA@BÿBBBÿIHHÿIHHÿIHJÿFFGÿDCDÿBBCÿEDFÿJJKÿRRSÿJJKÿJJKÿLKLÿ¹¹¹ÿøøøÿøøøÿ½½½ÿóóóÿ\[\ÿÊÉÊÿøøøÿøøøÿ¾¾¾ÿæææÿSRTÿNNNÿPOQÿMLNÿJJJÿ~}ÿðððÿøøøÿµµ¶ÿZY[ÿRQSÿøøøÿøøøÿøøøÿZZ[ÿffgÿa`bÿ\[\ÿøøøÿøøøÿøøøÿWWWÿmllÿ\\\ÿ___ÿøøøÿøøøÿøøøÿjjjÿyyyÿÒÒÒÿkkkÿkkkÿ|||ÿ´´´ÿÿmllÿkkkÿgggÿ~~ÿ···ÿ¡¡¡ÿfffÿoooÿkjkÿ|||ÿ¹¹¹ÿ§§§ÿzxxÿwvvÿkjkÿgggÿfffÿihhÿhghÿgggÿgggÿfffÿfffÿgggÿgggÿfffÿcccÿ___ÿ___ÿZZZÿGGGÿIHHÿIHJÿJJJÿIHHÿGGGÿEDDÿFFFÿMLNÿPOQÿIHHÿGGGÿFFFÿMLNÿNNNÿRRSÿJJJÿBBCÿBBCÿCCCÿEDDÿFFFÿGGGÿGGGÿFFGÿFFGÿFFGÿGGGÿHGHÿIHHÿMLNÿLKLÿJJJÿRRSÿNNNÿcccÿedfÿ^\^ÿmllÿZZZÿcccÿgggÿ___ÿgggÿcccÿ`_`ÿkjkÿrrrÿrrrÿoooÿedfÿkkkÿkjkÿ[[[ÿXXXÿgggÿcccÿihhÿ`_`ÿ^\^ÿ^\^ÿ```ÿmllÿnnnÿmllÿnnnÿkkkÿqppÿMLNÿFFFÿFFFÿTSTÿkjkÿqppÿIHHÿIHJÿVVYÿONQÿLKLÿLKLÿLKLÿMLOÿSRTÿVVWÿMLOÿMLOÿMLOÿMLOÿMLOÿJJLÿMLNÿMLNÿLKLÿMLNÿ\[\ÿtstÿpopÿoooÿmllÿqppÿmllÿihhÿfffÿYXZÿMLOÿMLNÿLKNÿJJLÿLKLÿLKLÿJJLÿJJLÿLKLÿLKNÿLKNÿLKNÿLKNÿMLNÿOOOÿYXZÿffgÿYX[ÿMLOÿLKLÿLKLÿXXXÿedfÿihhÿgggÿbbbÿWWWÿQPRÿYXZÿSRTÿQPRÿ^\^ÿ`_`ÿWWWÿmllÿoooÿrrrÿwvvÿxwwÿxwwÿsssÿsssÿtttÿ\\\ÿBBBÿ@@@ÿ@@@ÿ??@ÿ??@ÿBBBÿEDFÿEDDÿA@Bÿ??@ÿEDFÿEDFÿEDFÿEDFÿBBCÿ>=>ÿ;:;ÿ<<<ÿA@Bÿ??@ÿ>=>ÿ>=>ÿA@BÿA@BÿøøøÿøøøÿøøøÿAABÿ??@ÿA@BÿHGKÿøøøÿøøøÿõõõÿTSTÿXWYÿSSVÿøøøÿøøøÿøøøÿbbbÿoooÿkkkÿäääÿøøøÿøøøÿøøøÿøøøÿøøøÿøøøÿøøøÿøøøÿ÷÷÷ÿ{z{ÿ{{{ÿ………ÿ´´´ÿÙÙÙÿñññÿÝÝÝÿøøøÿøøøÿøøøÿ{{{ÿ}||ÿ}||ÿ¹¹¹ÿøøøÿøøøÿøøøÿøøøÿøøøÿøøøÿ–••ÿIHHÿIHHÿÝÝÝÿøøøÿøøøÿøøøÿøøøÿøøøÿøøøÿøøøÿøøøÿöööÿFFFÿEDDÿFFGÿIHJÿIHJÿNNOÿIHJÿLKLÿ_^_ÿõõõÿøøøÿõõõÿ]\^ÿÇÇÈÿÁÀÁÿøøøÿøøøÿìììÿUUVÿÙÙÚÿ‘‘’ÿPOQÿRRSÿOOOÿQPRÿMLNÿXWWÿžžžÿÏÏÏÿïïïÿÔÔÔÿøøøÿøøøÿøøøÿa`bÿ`_`ÿgggÿ^\^ÿøøøÿøøøÿøøøÿVVVÿcccÿ```ÿbbbÿøøøÿøøøÿøøøÿihhÿjjjÿkkkÿkkkÿgggÿihhÿfffÿcccÿdddÿkkkÿkkkÿmllÿmllÿihhÿdddÿnnnÿqppÿgggÿwvvÿzxxÿtstÿkjkÿihhÿgggÿffgÿgggÿihhÿgggÿgggÿgggÿgggÿihhÿkjkÿfffÿcccÿ^^^ÿ```ÿ[[[ÿIHHÿIHHÿJJJÿJJJÿJJJÿLLLÿJJJÿOOOÿRRSÿEDDÿA@BÿBBCÿ@@@ÿOOOÿTSTÿRRSÿMLNÿJJJÿFFGÿCCCÿ@@@ÿBBBÿEDDÿGGGÿGGGÿEDFÿEDFÿFFFÿIHHÿIHHÿIHJÿIHHÿNNNÿVVVÿVVVÿOOOÿNNNÿYXZÿ^^_ÿbbbÿ___ÿbbbÿcccÿgggÿfffÿkkkÿkjkÿfffÿTSTÿTSTÿ^^_ÿfffÿ^\^ÿZZ[ÿa`bÿ`_`ÿYXZÿOOOÿfffÿZZZÿdddÿmllÿnnnÿgggÿmllÿqppÿlklÿRRSÿGGGÿGGGÿJJJÿ`_`ÿqppÿKKKÿIHHÿIHJÿMLOÿLKLÿLKLÿLKLÿLKLÿLKLÿTTTÿTTTÿMLOÿLKLÿLKNÿJJLÿLKLÿMLNÿLKLÿMLNÿMLNÿLLLÿWWWÿrrrÿoooÿrrrÿgggÿkjkÿoooÿkjkÿihhÿcccÿRRSÿMLOÿ\[\ÿQPRÿMLOÿLKLÿJJJÿLKNÿMLOÿMLNÿMLNÿLKNÿMLOÿOOOÿ^^_ÿRRRÿ`_`ÿihjÿ^\^ÿMLOÿMLNÿOOOÿONQÿMLNÿMLNÿNNOÿNNOÿPOQÿ\[\ÿZZ[ÿXWYÿdcdÿ___ÿ^\^ÿnnnÿsssÿtttÿtttÿwvvÿrrrÿoooÿqppÿgggÿ^^^ÿ@@@ÿ@@@ÿ@@@ÿBBBÿBBCÿEDDÿCCCÿA@Bÿ??@ÿHGHÿEDFÿEDFÿDCDÿBBCÿ>>Aÿ;:;ÿ<<<ÿ??@ÿA@Bÿ<<<ÿ>=>ÿ>=>ÿA@BÿA@BÿøøøÿøøøÿøøøÿSSTÿ??@ÿBBCÿRRRÿøøøÿøøøÿìììÿQPRÿTTTÿSSSÿøøøÿøøøÿøøøÿihhÿsssÿsssÿÊÊÊÿøøøÿøøøÿÂÂÂÿ{{{ÿ{{{ÿ‚‚‚ÿøøøÿøøøÿçççÿ{{{ÿ›››ÿØ××ÿ¸¸¸ÿ{{{ÿ~~ÿ”””ÿøøøÿøøøÿøøøÿzzzÿ}||ÿ„„„ÿ÷÷÷ÿøøøÿøøøÿöööÿÙÙÚÿ¨¨¨ÿkjlÿHHIÿHGHÿHGHÿº¹ºÿøøøÿøøøÿ««¬ÿIIIÿHHIÿUTVÿøøøÿøøøÿáááÿFFGÿFFGÿJJKÿIHHÿOOOÿLKLÿIHJÿHGHÿ©©©ÿøøøÿøøøÿ¾¾¿ÿMLOÿ|{|ÿøøøÿøøøÿøøøÿ§§¨ÿPOQÿŽÿßßßÿSSTÿRRSÿPOQÿOOOÿ{{{ÿËËËÿ¡¡¡ÿNNNÿSSSÿpppÿøøøÿøøøÿøøøÿPPPÿIHHÿIHHÿIHHÿøøøÿøøøÿøøøÿTTTÿkkkÿcccÿihhÿøøøÿøøøÿøøøÿ\\\ÿihhÿkkkÿjjjÿcccÿdddÿkkkÿfffÿrrrÿgggÿkkkÿjjjÿoooÿmllÿihhÿjjjÿkkkÿkjkÿxwwÿnnnÿihhÿihhÿhghÿihhÿgggÿfffÿkjkÿgggÿfffÿfffÿgggÿfffÿihhÿfffÿbbbÿ^^^ÿ```ÿZZZÿIHJÿJJJÿNNNÿQPRÿNNNÿJJJÿOOOÿTSTÿTSTÿMLNÿFFFÿ@@@ÿCCCÿLKLÿPOQÿMLNÿJJJÿNNNÿIHJÿIHHÿHGHÿCCCÿBBCÿBBCÿCCCÿEDFÿFFGÿFFFÿGGGÿIHHÿGGGÿLLLÿTTTÿa`bÿPPPÿZZ[ÿOOOÿZZ[ÿcccÿ^^_ÿgggÿgggÿgggÿmllÿgggÿa`bÿgggÿihhÿnnnÿkjkÿ```ÿ^\^ÿ^\^ÿZZ[ÿ[[[ÿ`_`ÿ^\^ÿmllÿYXZÿkkkÿrrrÿmllÿihhÿdddÿnnnÿrrrÿdddÿFFFÿIHHÿEDDÿNNNÿkkkÿdddÿIHHÿKKKÿUTVÿLKLÿLKLÿLKLÿLKLÿMLNÿNNOÿVVWÿTSTÿSRTÿMLOÿLKLÿMLNÿMLNÿOOOÿPOQÿVVWÿYXZÿ[[[ÿ^^^ÿsssÿrrrÿrrrÿihhÿVVWÿpopÿnnnÿkjkÿgggÿVVWÿLKLÿMLOÿYXZÿVVWÿSRTÿMLNÿMLNÿMLNÿJJLÿLKLÿLKLÿMLNÿOOOÿcccÿVVVÿWWWÿ`_`ÿfffÿZZ[ÿMLNÿJJJÿPOQÿQPRÿMLOÿQPRÿPOQÿVVWÿffgÿffgÿdcdÿffgÿkjkÿbbbÿnnnÿsssÿrrrÿsssÿtttÿsssÿmllÿsssÿedfÿ\\\ÿBBBÿ>=>ÿCCCÿCCCÿBBBÿBBCÿA@BÿBBCÿ??@ÿFFGÿDCDÿBBCÿ??@ÿ;:;ÿ<<<ÿ;:;ÿ>=>ÿ??@ÿ??@ÿ??@ÿ>=>ÿ??@ÿA@BÿBBBÿøøøÿøøøÿøøøÿ””•ÿBBBÿCCCÿ††‡ÿøøøÿøøøÿºººÿJJJÿRRRÿTTTÿøøøÿøøøÿøøøÿgggÿnnnÿrrrÿ’’’ÿ÷÷÷ÿøøøÿØØØÿwwwÿwwwÿ‚‚‚ÿøøøÿøøøÿ¾¾¾ÿxxxÿßßßÿøøøÿöööÿzzzÿzzzÿ|||ÿøøøÿøøøÿòòòÿxxxÿzzzÿ†††ÿøøøÿøøøÿ¨¨¨ÿ€€€ÿvvvÿBBCÿÿõõõÿAAEÿEDFÿjjjÿ÷÷÷ÿøøøÿÍÍÎÿMLOÿKKKÿYYZÿøøøÿøøøÿ§§¨ÿDCDÿEDDÿDCDÿEDFÿMLNÿEDFÿIHJÿPPQÿîîîÿøøøÿøøøÿrrsÿIHJÿYXYÿöööÿøøøÿöööÿ_^_ÿPOQÿTTTÿìììÿ‡†ˆÿLKLÿJJJÿLLLÿÖÖÖÿøøøÿöööÿNNNÿLLLÿUUUÿøøøÿøøøÿñññÿNNNÿLLLÿPPPÿMMMÿøøøÿøøøÿøøøÿZZZÿ___ÿdddÿgggÿøøøÿøøøÿøøøÿfffÿbbbÿdddÿihhÿ[[[ÿcccÿmllÿbbbÿnnnÿmllÿfffÿoooÿmllÿkkkÿcccÿkkkÿfffÿVVWÿedfÿihhÿfffÿfffÿfffÿfffÿedfÿedfÿedfÿfffÿcccÿcccÿcccÿdcdÿgggÿfffÿ^^^ÿZZZÿZZZÿQPRÿCCCÿGGGÿLKLÿJJJÿIHHÿGGGÿPPPÿTSTÿIHJÿFFGÿEDDÿ@@@ÿJJJÿGGGÿCCCÿEDDÿFFGÿIHHÿEDFÿEDFÿFFFÿLKLÿEDDÿEDDÿBBCÿ@@@ÿ@@@ÿCCCÿFFFÿFFFÿGGGÿNNNÿRRSÿRRRÿNNNÿTSTÿ^\^ÿgggÿnnoÿfffÿcccÿcccÿgggÿcccÿmllÿkkkÿkjkÿkjkÿfffÿTSTÿWWWÿZZ[ÿ`_`ÿgggÿdddÿ^\^ÿbbbÿ^^^ÿgggÿmllÿoooÿcccÿnnoÿoooÿtstÿkjkÿHGHÿFFGÿFFFÿIHHÿcccÿkjkÿOOOÿ___ÿWWWÿdddÿLKLÿLKLÿLKLÿLKLÿLKLÿSRTÿWWWÿQPRÿMLOÿLKLÿLKLÿLKLÿPOQÿYXZÿ^\^ÿedfÿlklÿkjkÿqppÿtttÿrrrÿrrrÿnnnÿOOOÿ^\^ÿnnoÿnnoÿpopÿcccÿMLNÿMLNÿLKLÿRRSÿ\[^ÿ^^`ÿMLNÿJJJÿLKNÿLKNÿJJLÿLKLÿMLNÿZZ[ÿVVWÿTSTÿUTVÿ^\^ÿ^\^ÿMLNÿLKLÿMLNÿMLOÿMLNÿYXZÿ^\^ÿhghÿmlnÿnnoÿkjkÿkjkÿkkkÿbbbÿoooÿqppÿsssÿsssÿtttÿsssÿqppÿsssÿnnnÿLLLÿGGGÿCCCÿEDDÿBBCÿ@@@ÿBBCÿ>=>ÿ??@ÿBBCÿFFGÿBBCÿ??@ÿ>=>ÿ<<<ÿ<<<ÿ;:;ÿ>=>ÿ??@ÿA@Bÿ??@ÿ;:;ÿ??@ÿ@@@ÿZYZÿøøøÿøøøÿøøøÿâââÿ¨¨©ÿ™™šÿìììÿøøøÿîîîÿ_^^ÿGGGÿWWWÿ^\^ÿøøøÿøøøÿøøøÿkkkÿrrrÿtttÿwvvÿ²²²ÿøøøÿøøøÿ¦¦¦ÿ{zzÿ¼¼¼ÿøøøÿåååÿ€€€ÿwwwÿ¿¿¿ÿøøøÿøøøÿ‰‰‰ÿ|||ÿ¯¯¯ÿøøøÿøøøÿÉÉÉÿxxxÿ{z{ÿ{{{ÿÒÒÒÿøøøÿ¡¡¡ÿ{{{ÿ†††ÿ©©ªÿøøøÿïïïÿEDFÿEDFÿEDFÿ–––ÿøøøÿøøøÿ‹ŠŒÿRRRÿ©¨©ÿøøøÿßßßÿRRSÿA@BÿEDFÿDCDÿJJJÿLKLÿFFGÿHHKÿ¦¥¦ÿøøøÿøøøÿçççÿHGHÿFFGÿ¥¥¦ÿøøøÿøøøÿÍÍÎÿJJJÿMLOÿXWYÿãããÿãããÿeefÿRRSÿRRRÿ¬¬¬ÿøøøÿøøøÿdddÿMMMÿ–––ÿøøøÿøøøÿ¶¶¶ÿCCCÿ??@ÿJJJÿ[[[ÿøøøÿøøøÿøøøÿPPPÿPPPÿ```ÿlllÿøøøÿøøøÿøøøÿlllÿjjjÿkkkÿWWWÿbbbÿfffÿmllÿjjjÿkkkÿZZZÿ^\^ÿfffÿnnnÿihhÿgggÿnnnÿ^^^ÿWWWÿgggÿgggÿfffÿfffÿfffÿfffÿedfÿfffÿfffÿedfÿfffÿedfÿcccÿfffÿgggÿihhÿ___ÿXXXÿRRSÿIHHÿDCDÿLKLÿIHHÿHGHÿIHHÿOOOÿPOQÿJJJÿFFGÿEDFÿCCCÿBBCÿMLNÿRRRÿLKLÿEDDÿEDFÿ@@@ÿBBCÿFFFÿNNNÿNNNÿEDFÿFFGÿFFFÿDCDÿBBCÿBBCÿFFGÿEDFÿFFGÿLLLÿNNNÿOOOÿUTVÿ[[[ÿZZ[ÿkjkÿkjkÿ`_`ÿWWWÿXXXÿnnoÿqppÿa`bÿcccÿkjkÿ```ÿ[[[ÿ[[[ÿWWWÿcccÿcccÿ\[\ÿVVVÿZZZÿgggÿmllÿkkkÿnnnÿkkkÿihhÿkkkÿpopÿkkkÿIHHÿIHHÿFFFÿFFFÿ^^_ÿrrrÿJJKÿNNNÿ^^^ÿ\\\ÿmlnÿMLNÿIHJÿLKLÿMLNÿONQÿ`_`ÿa`bÿTSTÿLKLÿLKLÿLKLÿLKLÿUTVÿdcdÿVVVÿYXZÿgggÿfffÿmllÿwvvÿtstÿqppÿqppÿ`_`ÿNNNÿedfÿqppÿrrrÿgggÿPOQÿLKLÿLKLÿMLNÿRRSÿRRSÿ^^`ÿMLNÿLKNÿLKNÿJJLÿMLNÿMLNÿPPPÿ^\^ÿTSTÿQPRÿYXZÿ^\^ÿMLOÿONQÿLKLÿLKLÿPOQÿdcdÿkjkÿnnoÿoooÿoooÿmllÿjjjÿkkkÿbbbÿnnnÿqppÿsssÿtttÿsssÿtttÿtstÿqppÿoooÿmllÿGGGÿGGGÿLKLÿJJJÿCCCÿBBCÿ??@ÿ<<<ÿBBCÿA@Bÿ<<<ÿ>=>ÿA@Bÿ>=>ÿ>=>ÿ>=>ÿ>=>ÿ??@ÿ??@ÿ??@ÿ>=>ÿ>=>ÿ¢¢£ÿøøøÿøøøÿøøøÿøøøÿWVWÿÃÃÃÿòòòÿñññÿÃÃÃÿaaaÿDCDÿDCDÿSSSÿ\\\ÿøøøÿøøøÿøøøÿmllÿwvvÿwwwÿvvvÿxwwÿ———ÿÒÒÒÿïïïÿöööÿèèèÿ¿¿¿ÿ}}}ÿxxxÿxxxÿ{{{ÿ­­­ÿÛÛÛÿðððÿ÷÷÷ÿñññÿÝÝÝÿ²²²ÿzzzÿwwwÿxxxÿzzzÿ~~~ÿ¼¼¼ÿèèèÿöööÿøøøÿøøøÿøøøÿëëëÿFFGÿBBCÿFFGÿEDFÿrqsÿÃÃÃÿíííÿöööÿãããÿ¬¬¬ÿVUVÿLKNÿDCDÿBBCÿCCFÿIHJÿIHJÿFFGÿ³³´ÿøøøÿøøøÿøøøÿøøøÿÍÍÍÿ¯¯°ÿøøøÿøøøÿøøøÿøøøÿÚÚÚÿuuuÿöööÿøøøÿøøøÿøøøÿhghÿEDDÿPPPÿŽŽŽÿÐÐÐÿíííÿöööÿïïïÿÔÔÔÿ———ÿIHHÿKKKÿJJJÿ{{{ÿøøøÿøøøÿøøøÿøøøÿJJJÿNNNÿÿöööÿøøøÿøøøÿøøøÿøøøÿøøøÿ¯¯¯ÿPPPÿOOOÿbbbÿihhÿbbbÿcccÿbbbÿgggÿkkkÿkkkÿgggÿgggÿjjjÿUTVÿ`_`ÿihhÿcccÿfffÿfffÿdddÿfffÿffgÿfffÿfffÿedfÿfffÿfffÿdddÿcccÿfffÿedfÿ___ÿXXXÿTSTÿHGHÿCCCÿEDFÿGGGÿFFFÿLKLÿRRSÿNNNÿFFGÿFFGÿEDDÿBBCÿGGGÿMLNÿMLNÿLKLÿJJJÿJJJÿBBCÿCCCÿJJJÿMLNÿIHHÿEDFÿEDFÿEDFÿFFFÿCCCÿ@@@ÿGGGÿFFFÿFFFÿFFFÿLKLÿRRRÿcccÿ\[\ÿa`bÿ^^_ÿVVWÿZZ[ÿcccÿnnoÿmllÿ___ÿa`bÿgggÿ`_`ÿ^\^ÿZZ[ÿcccÿa`bÿa`bÿ^^_ÿ^^_ÿfffÿtttÿrrrÿjjjÿkkkÿqppÿgggÿVVVÿOOOÿPOQÿFFFÿHGHÿEDFÿGGGÿJJJÿrrrÿ^^^ÿNNNÿTSTÿdddÿffgÿihhÿLKLÿLKLÿMLOÿSRTÿihjÿihhÿkjkÿedfÿPOQÿLKLÿMLOÿ^^`ÿZZ[ÿYXZÿPOQÿMLOÿSSSÿVVWÿWWWÿrrrÿsssÿsssÿrrrÿoooÿOOOÿTSTÿmllÿnnoÿkjkÿTSTÿMLNÿLKLÿLKLÿMLNÿLKLÿYX[ÿSRTÿMLOÿLKNÿSRTÿONQÿMLNÿLLLÿZZ[ÿTTTÿQPRÿRRSÿa`bÿPOQÿSRTÿMLNÿLKLÿVVYÿihhÿoooÿqppÿqppÿnnnÿihhÿcccÿdddÿfffÿqppÿtstÿwvvÿxwwÿtttÿtttÿrrrÿmllÿtstÿbbcÿKKKÿEDDÿOOOÿRRRÿJJJÿA@Bÿ<<<ÿ>=>ÿ>=>ÿ??@ÿ;:;ÿ??@ÿ??@ÿ>=>ÿ<<<ÿ<<<ÿ<<<ÿDCDÿ>=>ÿ<<<ÿ>=>ÿ>>Aÿ??@ÿ>=>ÿ>=>ÿ??@ÿA@BÿDCDÿBBCÿA@BÿA@BÿBBBÿBBCÿEDDÿEDDÿXXXÿ[[[ÿøøøÿøøøÿøøøÿnnnÿtttÿvvvÿxxxÿxwwÿwwwÿxxxÿxxxÿxxxÿzzzÿxxxÿwwwÿxxxÿxxxÿwwwÿxxxÿxxxÿxxxÿxxxÿzzzÿxxxÿzzzÿxxxÿxxxÿyxzÿzzzÿ{{{ÿ{{{ÿ{{{ÿzzzÿzzzÿYXZÿGHJÿBBBÿ\[^ÿEDFÿIHJÿLKLÿHGHÿDCDÿEDFÿFFGÿDCDÿEDDÿDCDÿDCDÿHGHÿEDDÿEDDÿJJJÿGGGÿFFGÿGGGÿDCDÿEDFÿFFGÿFFGÿA@BÿA@BÿEDFÿIHJÿQPRÿLKLÿJJJÿLKLÿLKLÿLKLÿNNOÿEDDÿGGGÿRRRÿPPPÿPPPÿOOOÿOOOÿLLLÿNNNÿIHHÿKKKÿLLLÿKKKÿEDDÿkkkÿLLLÿ[[[ÿLLLÿWWWÿgggÿ\\\ÿ```ÿ\\\ÿÆÆÆÿøøøÿøøøÿFFFÿXXXÿPPPÿZZZÿmllÿbbbÿcccÿdddÿgggÿbbbÿ```ÿcccÿkkkÿgggÿmllÿcccÿXXXÿ`_`ÿdcdÿfffÿfffÿfffÿedfÿfffÿgggÿgggÿfffÿedfÿdddÿfffÿfffÿedfÿfffÿcccÿ[[[ÿZZ[ÿNNNÿEDFÿEDDÿFFFÿDCDÿEDFÿHGHÿNNNÿOOOÿFFGÿEDFÿEDDÿCCCÿJJJÿMLNÿPPPÿUTVÿUTVÿMLNÿEDDÿIHHÿMLNÿCCCÿ@@@ÿCCCÿEDFÿEDDÿFFFÿBBCÿ@@@ÿGGGÿFFGÿFFFÿHGHÿHGHÿIHHÿOOOÿ^^_ÿdcdÿkjkÿnnnÿnnnÿkjkÿfffÿa`bÿ^\^ÿcccÿihhÿgggÿgggÿZZ[ÿVVWÿ^\^ÿ`_`ÿ^^_ÿ```ÿmllÿkkkÿgggÿkkkÿbbbÿMLNÿTTTÿ^^^ÿQPRÿJJJÿNNNÿFFFÿFFGÿFFFÿnnnÿVVWÿHGHÿ^^_ÿSSSÿ\[\ÿcccÿZZ[ÿLKLÿMLNÿONQÿedfÿhghÿdcdÿa`bÿ^\^ÿMLOÿMLOÿQPRÿYX[ÿ\[\ÿVVWÿMLNÿLKLÿLKLÿLLLÿLLLÿkkkÿsssÿrrrÿoooÿrrrÿfffÿOOOÿOOOÿdcdÿnnoÿ^\^ÿLKLÿLKLÿJJLÿMLNÿLKLÿMLOÿa`bÿLKLÿLKNÿONQÿ\[^ÿMLNÿMLNÿQPRÿ^\^ÿOOOÿNNNÿdcdÿSRTÿXWYÿMLNÿJJLÿdcdÿpopÿrrrÿqppÿmllÿkjkÿ`_`ÿTTTÿOOOÿ`_`ÿnnnÿtttÿzxxÿzxxÿtstÿtttÿtstÿqppÿtstÿqppÿihhÿRRSÿWWWÿOOOÿTTTÿA@Bÿ??@ÿ;:;ÿ<<<ÿ??@ÿ??@ÿ779ÿ??@ÿ>=>ÿ<<<ÿ<<<ÿ;:;ÿ;:;ÿ<<<ÿ>=>ÿ>=>ÿ??@ÿDCDÿA@BÿBBCÿ@@@ÿFFGÿBBBÿ??@ÿBBCÿ@@@ÿCCCÿBCDÿCCCÿIHHÿOOOÿihhÿøøøÿøøøÿøøøÿtttÿxwwÿwwwÿvvwÿxwwÿxxxÿxwwÿzzzÿzzzÿxxxÿzzzÿwwwÿwwwÿxxxÿvvvÿxxxÿyxzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿ{{{ÿzzzÿ{z{ÿstvÿhklÿijkÿ``dÿEDFÿIHJÿUTVÿLKLÿIHHÿPOQÿQPRÿXWYÿXWYÿdcdÿUTVÿXWYÿBBCÿIHJÿFFGÿFFGÿGGGÿHGHÿFFGÿFFGÿIHJÿHGHÿIHHÿHGHÿBBCÿ@@@ÿJJJÿHGHÿLKLÿLKLÿMLNÿLKLÿ@@@ÿQPRÿQPRÿPPPÿPPPÿOOOÿOOOÿNNNÿNNNÿKKKÿNNNÿTSTÿPPPÿEDDÿ^\^ÿPPPÿbbbÿ\\\ÿÿgggÿTTTÿ^^^ÿnnnÿSSSÿPPPÿãããÿøøøÿSSSÿSSSÿ^^^ÿkkkÿZZZÿ```ÿ```ÿihhÿkjkÿfffÿgggÿihhÿfffÿgggÿfffÿZZ[ÿ^^_ÿdcdÿihhÿihhÿfffÿfffÿdddÿfffÿihhÿgggÿgggÿfffÿfffÿgggÿgggÿfffÿfffÿedfÿWWWÿUTVÿGGGÿDCDÿDCDÿEDDÿEDDÿFFFÿEDFÿGGGÿMLNÿHGHÿGGGÿEDDÿIHHÿUTVÿRRSÿ^\^ÿ\[\ÿ\[\ÿTSTÿLKLÿHGHÿCCCÿBBCÿBBCÿBBCÿEDDÿEDDÿFFFÿCCCÿ@@@ÿFFFÿGGGÿGGGÿFFGÿHGHÿGGGÿGGGÿIHHÿLKLÿkjkÿqppÿdcdÿPPPÿmllÿkkkÿZZ[ÿgggÿVVVÿRRSÿ`_`ÿcccÿihhÿcccÿa`bÿbbcÿihhÿkkkÿ^^^ÿkkkÿVVWÿFFFÿGGGÿFFFÿGGGÿJJJÿXWYÿFFFÿGGGÿFFGÿ`_`ÿfffÿIHHÿKKKÿZZZÿ`_`ÿ[[[ÿNNNÿbbbÿLLLÿTSTÿffgÿkkkÿnnoÿihhÿfffÿXXXÿMLNÿNNOÿZZ[ÿ^\^ÿONQÿTSTÿTSTÿLKLÿMLOÿMLOÿNNNÿa`bÿtstÿrrrÿqppÿsssÿoooÿdddÿPOQÿMLNÿUTVÿhghÿMLNÿNNNÿJJLÿMLNÿLKLÿMLNÿbbcÿQPRÿMLNÿMLNÿdcdÿPOQÿLKLÿOOOÿYXZÿ___ÿVVVÿ\[\ÿ\[^ÿ\[\ÿMLNÿLKLÿQPRÿZZ[ÿnnnÿqppÿnnnÿ^^_ÿQPRÿMLNÿMLOÿNNNÿmllÿsssÿxwwÿwvvÿtttÿtttÿsssÿrrrÿrrrÿqppÿqppÿkkkÿrrrÿtttÿtttÿkjkÿedfÿddgÿVVYÿVVYÿYX[ÿDCDÿMLNÿQPRÿONQÿQPRÿEDFÿIHHÿDCDÿJJKÿEDDÿ??@ÿBBCÿEDFÿFFGÿBBCÿFFGÿBBCÿFEIÿBBCÿFFGÿCCCÿJJJÿIHHÿPOQÿPPPÿkkkÿøøøÿøøøÿøøøÿsssÿwwwÿxxxÿwwwÿxxxÿxxxÿxxxÿxxxÿxxxÿzzzÿzzzÿxxxÿxxxÿzzzÿzzzÿxxxÿyxzÿzzzÿzzzÿzzzÿzzzÿ{{{ÿzzzÿ{{{ÿzzzÿ{{{ÿzzzÿ{z{ÿzzzÿ{{{ÿzzzÿ{z{ÿyxzÿ|{|ÿ{z{ÿzzzÿnopÿijkÿdghÿggjÿrrsÿstvÿnopÿ```ÿRRSÿ^\^ÿDCDÿFEIÿHGHÿEDFÿFFGÿGGGÿIHJÿJJLÿJJJÿJJKÿIHJÿHGHÿHGHÿLKLÿPOQÿMLNÿIHHÿBBCÿ>=>ÿBBCÿLKLÿKKKÿLKLÿNNNÿNNNÿNNNÿLLLÿLLLÿOOOÿLLLÿPPPÿUTVÿKKKÿTTTÿdddÿ[[[ÿXXXÿNNNÿØØØÿøøøÿÐÐÐÿ___ÿjjjÿRRRÿ^^^ÿZZZÿ§§§ÿøøøÿ\\\ÿPPPÿdddÿ\\\ÿ```ÿfffÿ\\\ÿ\\\ÿfffÿgggÿdddÿ```ÿbbbÿfffÿXXXÿbbbÿgggÿgggÿgggÿfffÿfffÿedfÿfffÿedfÿffgÿihhÿgggÿfffÿfffÿfffÿgggÿcccÿ```ÿ[[[ÿVVWÿIHHÿBBCÿCCCÿCCCÿEDFÿEDDÿEDDÿEDDÿFFFÿFFGÿFFGÿEDDÿLKLÿRRSÿZZ[ÿbbbÿUTVÿJJJÿEDDÿCCCÿBBCÿCCCÿEDDÿEDFÿEDFÿFFFÿEDDÿDCDÿCCCÿBBCÿBBBÿFFFÿIHHÿJJJÿLKLÿJJJÿJJJÿJJJÿIHHÿFFGÿIHHÿcccÿdcdÿihhÿnnnÿedfÿVVWÿa`bÿgggÿdcdÿfffÿ`_`ÿfffÿfffÿWWWÿkjkÿkkkÿgggÿmllÿJJJÿGGGÿJJJÿGGGÿGGGÿFFFÿLLLÿkkkÿFFFÿEDFÿVVWÿqppÿLKLÿQPRÿIHJÿXXXÿYXZÿLLLÿbbcÿutvÿTSTÿbbbÿ^^_ÿkjkÿnnoÿgggÿZZ[ÿOOOÿNNNÿPOQÿ\[\ÿdddÿNNOÿLLLÿQPRÿMLNÿLKLÿLKLÿNNNÿXWYÿtstÿtstÿrrrÿqppÿnnnÿqppÿkjkÿTSTÿMLOÿMLNÿZZ[ÿUTVÿMLNÿJJLÿLKLÿLKLÿMLNÿMLNÿJJJÿLKLÿ`_`ÿa`bÿTSTÿNNNÿQPRÿXXXÿihhÿ^\^ÿ^\^ÿRRSÿMLNÿMLOÿMLOÿVVWÿ___ÿYXZÿSRTÿFFGÿFEIÿJJLÿONQÿCCCÿ```ÿmllÿnnnÿoooÿoooÿqppÿrrrÿqppÿqppÿrrrÿtttÿrrrÿoooÿsssÿqppÿtstÿpopÿkjkÿ__bÿbbcÿffgÿ^\^ÿUTVÿkjkÿdcdÿa`bÿIHJÿBBCÿBBCÿBBCÿ@@@ÿIHJÿJJLÿXWYÿPOQÿTSTÿVVYÿUTVÿUTWÿQPRÿRRRÿPPPÿTSTÿTSTÿUTWÿ___ÿ€€ÿøøøÿøøøÿøøøÿtttÿxxxÿxxxÿzzzÿxxxÿzzzÿzzzÿxxxÿzzzÿxxxÿzzzÿzzzÿzzzÿzzzÿ{{{ÿzzzÿzzzÿzzzÿzzzÿ{{{ÿzzzÿzzzÿzzzÿzzzÿ{{{ÿzzzÿ{z{ÿzzzÿzzzÿ{{{ÿ{{{ÿyxzÿyxzÿstvÿyxzÿzzzÿxxxÿ{{{ÿzzzÿ{{{ÿ{{{ÿyxzÿ|{|ÿxwxÿzzzÿihjÿIHJÿIHJÿFFGÿEDFÿFFGÿFEIÿHGHÿMLNÿIHJÿLKLÿLKLÿJJJÿKKKÿNNNÿMLNÿMLNÿLKLÿJJJÿJJJÿLKLÿJJJÿJJJÿJJJÿLKLÿLLLÿKKKÿKKKÿKKKÿCCCÿRRSÿTTTÿTTTÿ___ÿdddÿKKKÿKKKÿJJJÿPPPÿóóóÿøøøÿòòòÿ[[[ÿTTTÿJJJÿTTTÿRRRÿoooÿÑÑÑÿSSSÿRRRÿdddÿbbbÿ___ÿVVVÿ\\\ÿ[[[ÿkkkÿgggÿkjkÿcccÿcccÿcccÿihhÿkjkÿkjkÿgggÿgggÿfffÿfffÿfffÿfffÿedfÿfffÿfffÿfffÿfffÿedfÿcccÿcccÿbbbÿ^\^ÿNNNÿNNNÿCCCÿCCCÿFFFÿEDDÿDCDÿEDFÿEDDÿFFFÿFFFÿFFFÿEDFÿIHHÿTSTÿTSTÿNNNÿFFFÿBBCÿBBCÿBBCÿDCDÿCCCÿEDDÿEDFÿEDFÿEDDÿEDFÿEDDÿEDFÿEDFÿDCDÿHGHÿLKLÿMLNÿMLNÿLKLÿJJJÿJJJÿJJJÿHGHÿIHHÿFFGÿIHHÿGGGÿgggÿ`_`ÿVVWÿ`_`ÿdcdÿfffÿihhÿgggÿcccÿ^\^ÿcccÿnnoÿQPRÿPPPÿoooÿmllÿIHHÿJJJÿGGGÿGGGÿEDDÿLLLÿcccÿNNOÿGGGÿWWWÿtstÿIHJÿEDFÿIHHÿPOQÿTTTÿKKKÿSSSÿZZ[ÿa`bÿa`bÿmllÿoooÿkjkÿmlnÿfffÿTSTÿMLNÿTSTÿUTVÿZZZÿihhÿOOOÿNNNÿLKLÿLKLÿLKNÿMLNÿMLNÿONQÿrrrÿwvvÿqppÿpopÿoooÿmllÿnnoÿpopÿbbcÿQPRÿLKLÿNNOÿTSTÿLKLÿLKLÿJJLÿLKNÿLKLÿLKNÿLKLÿ\[\ÿONQÿedfÿPOQÿQPRÿUTVÿgggÿfffÿXWYÿPOQÿMLNÿLKLÿLKLÿEDDÿCCCÿBBCÿBBCÿA@BÿAAEÿEDFÿEDFÿFFGÿdddÿoooÿoooÿtstÿwvvÿtstÿtttÿtttÿtttÿsssÿtttÿwvvÿoooÿtstÿqppÿnnnÿoooÿnnoÿihhÿ```ÿfffÿbbbÿdcdÿjjjÿdddÿdddÿ^\^ÿ@@@ÿEDDÿGGGÿIHHÿNNNÿGGGÿNNNÿTTTÿUTVÿWWWÿXXXÿZZZÿRRRÿZZZÿPOQÿTTTÿPOQÿXXXÿ»»»ÿøøøÿøøøÿøøøÿøøøÿtttÿzxxÿzxxÿzzzÿxxxÿxxxÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿ{{{ÿzzzÿzzzÿxxxÿzzzÿzzzÿzzzÿzzzÿ{{{ÿzzzÿ{{{ÿ{{{ÿxxxÿxxxÿxwxÿxxxÿxxxÿxxxÿzzzÿzzzÿzzzÿzzzÿzzzÿ{{{ÿrrrÿTTTÿSSSÿRRRÿLLLÿJJJÿHGHÿEDDÿFFFÿJJJÿLKLÿJJJÿJJJÿLLLÿLLLÿOOOÿLLLÿKKKÿKKKÿJJJÿJJJÿKKKÿLLLÿJJJÿKKKÿLLLÿLLLÿLLLÿJJJÿGGGÿRRRÿ^^^ÿcccÿkkkÿcccÿihhÿVVVÿcccÿRRSÿSSSÿ¦¦¦ÿòòòÿ¦¦¦ÿXXXÿJJJÿJJJÿPPPÿWWWÿjjjÿkkkÿmllÿ___ÿZZZÿ___ÿXXXÿZZZÿZZZÿsssÿmllÿdddÿdddÿ```ÿoooÿkjkÿgggÿihhÿihhÿgggÿgggÿihhÿihhÿihhÿihhÿgggÿfffÿedfÿfffÿcccÿcccÿcccÿ___ÿZZZÿRRRÿJJJÿBBCÿDCDÿDCDÿFFFÿEDFÿFFFÿEDDÿEDFÿEDFÿEDDÿBBCÿEDDÿIHHÿMLNÿJJJÿCCCÿIHHÿFFFÿEDFÿEDDÿFFFÿDCDÿEDDÿEDDÿDCDÿDCDÿEDDÿJJJÿJJJÿJJJÿDCDÿEDDÿFFFÿGGGÿGGGÿHGHÿGGGÿHGHÿHGHÿIHHÿJJJÿHGHÿGGGÿHGHÿFFGÿIHHÿihhÿ^\^ÿffgÿkjkÿgggÿZZ[ÿpopÿkjkÿkjkÿVVWÿQPRÿJJJÿ\\\ÿjjjÿGGGÿGGGÿGGGÿGGGÿLLLÿ^^^ÿoooÿFFGÿMLNÿrrrÿLKLÿFFFÿLKLÿIHHÿMLNÿNNOÿNNNÿPPPÿ\[\ÿmlnÿbbbÿlklÿlklÿkjkÿpopÿmllÿ[[[ÿTSTÿ```ÿWWWÿLKLÿTSTÿbbcÿNNOÿLKLÿMLOÿLKNÿMLNÿLKLÿMLNÿkjkÿwvvÿsssÿnnnÿqppÿnnnÿkjkÿkjkÿqprÿbbcÿNNNÿONQÿLKLÿLKLÿJJLÿLKNÿJJLÿLKLÿLKNÿMLNÿMLOÿMLOÿVVWÿihhÿUTVÿ^\^ÿgggÿcccÿVVWÿNNNÿPOQÿdcdÿihhÿa`bÿUTVÿLKLÿHGHÿA@BÿCCIÿJJLÿHGHÿHGHÿedfÿnnnÿnnnÿqppÿoooÿoooÿoooÿmllÿoooÿoooÿnnnÿqprÿkkkÿoooÿnnnÿgggÿlklÿpopÿmllÿffgÿedfÿdddÿ^^_ÿkjkÿdddÿcccÿkjkÿLLLÿEDDÿFFFÿBBCÿKKKÿMLNÿKKKÿQPRÿ\[\ÿ[[[ÿ___ÿ^\^ÿ\\\ÿZZZÿ[[[ÿXWYÿXXXÿZZZÿVVVÿdddÿjjjÿnnnÿtttÿsssÿwwwÿxxxÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿxxxÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿ{{{ÿzzzÿzzzÿzzzÿzzzÿ{{{ÿzzzÿzzzÿzzzÿ{{{ÿ{{{ÿzzzÿxxxÿwwwÿxxxÿwwwÿxxxÿwwwÿwwwÿwwwÿxxxÿzzzÿxxxÿzzzÿ{{{ÿ{{{ÿ{{{ÿxxxÿsstÿ}||ÿzxxÿxxxÿyxzÿmllÿ\[\ÿRRRÿNNNÿNNNÿPPPÿNNNÿLLLÿNNNÿLLLÿLLLÿLLLÿLLLÿLKLÿJJJÿLKLÿNNNÿKKKÿJJJÿKKKÿLLLÿ^^^ÿTSTÿOOOÿKKKÿOOOÿUTVÿWWWÿcccÿ^^_ÿ^^^ÿcccÿXXXÿbbbÿ[[[ÿdddÿdddÿVVVÿ___ÿihhÿkkkÿdddÿjjjÿbbbÿOOOÿVVVÿ___ÿsssÿkkkÿ___ÿ\\\ÿWWWÿrrrÿwvvÿhghÿdddÿihhÿgggÿihhÿihhÿihhÿihhÿgggÿfffÿfffÿedfÿcccÿfffÿdddÿbbbÿ```ÿXXXÿLKLÿLLLÿIHJÿEDDÿEDFÿEDDÿEDDÿEDDÿEDDÿBBBÿ@@@ÿ@@@ÿ@@@ÿDCDÿLKLÿNNNÿNNNÿDCDÿDCDÿIHHÿIHJÿIHHÿFFFÿDCDÿEDDÿCCCÿCCCÿFFGÿJJJÿFFFÿEDDÿ<<<ÿ;:;ÿEDDÿA@BÿFFFÿGGGÿHGHÿFFFÿFFGÿGGGÿGGGÿHGHÿFFGÿIHHÿHGHÿIHHÿIHHÿGGGÿHGHÿZZ[ÿpopÿfffÿOOOÿa`bÿ^^_ÿQPRÿOOOÿZZZÿ```ÿdcdÿoooÿRRSÿIHHÿGGGÿFFFÿGGGÿihhÿcccÿhghÿGGGÿmllÿMLNÿGGGÿDCDÿIHHÿUTVÿJJJÿMLNÿLKLÿ__bÿrrsÿutvÿdddÿdcdÿ```ÿdcdÿbbcÿdcdÿ^^^ÿffgÿhghÿZZ[ÿKKKÿLLLÿXWYÿbbcÿLKNÿLKLÿLKLÿMLNÿMLNÿLKLÿYXZÿwvvÿwvvÿkjkÿnnnÿrrrÿmlnÿdcdÿmlnÿkjkÿXXXÿNNNÿLKLÿMLNÿJJLÿLKLÿLKNÿLKNÿLKNÿLKNÿLKNÿMLOÿQPRÿmlnÿa`bÿcccÿfffÿcccÿ`_`ÿVVVÿihhÿkkkÿmllÿgggÿ`_`ÿMLNÿJJJÿJJLÿJJLÿGGJÿLKLÿLLLÿkjkÿnnnÿoooÿrrrÿqppÿsssÿrrrÿrrrÿsssÿwvvÿsssÿwvvÿtstÿqppÿrrrÿkkkÿnnnÿnnoÿfffÿkjkÿdddÿbbcÿdddÿfffÿcccÿdcdÿkkkÿbbbÿJJJÿHGHÿSSSÿQPRÿNNNÿOOOÿVVVÿ\\\ÿ^^^ÿ^^_ÿZZZÿ___ÿ\\\ÿfffÿ\\\ÿ[[[ÿ`_`ÿ`_`ÿbbcÿdddÿmllÿvvvÿsssÿvvvÿxxxÿxxxÿzzzÿzzzÿzzzÿzzzÿ{{{ÿzzzÿzzzÿzxxÿxxxÿxxxÿxxxÿxxxÿyxzÿzzzÿzzzÿxxxÿzzzÿ{{{ÿxxxÿzzzÿxxxÿyxzÿzzzÿzzzÿ{{{ÿ{{{ÿ{{{ÿyxzÿwwwÿxxxÿxxxÿxwxÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿxxxÿ{{{ÿzzzÿzzzÿwwwÿxxxÿzzzÿwwwÿxxxÿzxxÿWWWÿZZZÿ\\\ÿ[[[ÿWWWÿ\\\ÿ^^^ÿVVVÿRRRÿTTTÿTTTÿOOOÿSSSÿSSSÿWWWÿWWWÿYXZÿVVVÿRRRÿNNNÿSSSÿMLNÿOOOÿNNNÿTSTÿUTVÿ[[[ÿZZZÿ[[[ÿWWWÿSSSÿVVVÿ[[[ÿXXXÿZZZÿTTTÿTTTÿZZZÿ\[\ÿ___ÿcccÿihhÿqppÿgggÿ[[[ÿoooÿoooÿ```ÿ[[[ÿ^^^ÿ^^^ÿmllÿoooÿihhÿfffÿgggÿgggÿgggÿkjkÿgggÿfffÿfffÿedfÿcccÿcccÿcccÿcccÿcccÿ```ÿ^\^ÿQPRÿDCDÿJJJÿOOOÿCCCÿCCCÿCCCÿCCCÿBBCÿA@BÿBBCÿEDDÿDCDÿGGGÿFFGÿNNNÿJJJÿGGGÿCCCÿCCCÿFFFÿCCCÿCCCÿBBCÿFFFÿFFGÿFFFÿEDFÿCCCÿCCCÿDCDÿEDDÿ;:;ÿ<<<ÿ<<<ÿ??@ÿFFGÿEDFÿFFFÿEDFÿFFFÿGGGÿGGGÿGGGÿFFGÿFFGÿFFGÿGGGÿFFGÿFFGÿGGGÿFFGÿTSTÿihhÿnnnÿkjkÿMLOÿNNNÿ^\^ÿZZ[ÿUTVÿnnoÿUTVÿGGGÿHGHÿIHJÿGGGÿNNNÿa`bÿmlnÿVVVÿTTTÿ[[[ÿCCCÿEDFÿEDDÿEDDÿQPRÿQPRÿOOOÿWWWÿqprÿtttÿxwwÿihhÿbbbÿ`_`ÿ```ÿkjkÿgggÿnnoÿkjkÿmllÿfffÿMLNÿKKKÿNNNÿ^\^ÿihjÿQPRÿLKNÿJJLÿLKLÿMLNÿOOOÿrrrÿrrrÿoooÿoooÿrrrÿnnnÿhghÿQPRÿRRRÿPOQÿbbcÿa`bÿONQÿMLOÿLKLÿLKLÿLKNÿLKNÿMLOÿJJLÿLKLÿMLNÿTSTÿedfÿkkkÿcccÿcccÿfffÿWWWÿsssÿoooÿmllÿfffÿgggÿ^^_ÿ^\^ÿa`bÿSRTÿJJLÿLKLÿVVVÿfffÿmllÿoooÿrrrÿoooÿqppÿoooÿoooÿsssÿwvvÿtstÿsssÿqppÿrrrÿqppÿkjkÿkkkÿmlnÿa`bÿa`bÿkjkÿ`_`ÿihhÿnnnÿmllÿmllÿkkkÿkjkÿVVVÿRRRÿZZZÿ`_`ÿ^^^ÿWWWÿ^^^ÿcccÿbbbÿa`bÿdcdÿcccÿfffÿjjjÿghjÿhghÿdcdÿdddÿcccÿhghÿoooÿwvvÿtttÿxxxÿxxxÿzzzÿzzzÿzzzÿxxxÿxxxÿxxxÿwwwÿzxxÿxxxÿxxxÿxxxÿxxxÿyxzÿxxxÿxxxÿzzzÿzzzÿzzzÿzzzÿxxxÿxwwÿxxxÿxxxÿzzzÿzzzÿzzzÿzzzÿ{{{ÿxxxÿyxzÿwwwÿxwxÿwwwÿxxxÿxwxÿvvwÿwwwÿwwwÿxwxÿvvvÿxxxÿxxxÿwwwÿwwwÿvvvÿsstÿxxxÿzzzÿzzzÿzzzÿzxxÿfffÿ^^_ÿ\\\ÿVVVÿPPPÿRRSÿ^^^ÿXXXÿTTTÿTSTÿ[[[ÿVVWÿOOOÿPOQÿTSTÿPPPÿRRRÿOOOÿLLLÿLLLÿVVVÿUTVÿXXXÿXXXÿTTTÿYXZÿXXXÿWWWÿVVVÿXXXÿRRRÿ\\\ÿNNNÿNNNÿOOOÿKKKÿPPPÿKKKÿPPPÿ\[\ÿbbbÿihhÿsssÿxwwÿtttÿqppÿjjjÿXXXÿsssÿxwwÿzxxÿrrrÿmllÿihhÿihhÿnnnÿkjkÿfffÿfffÿedfÿedfÿfffÿcccÿcccÿcccÿcccÿbbbÿ```ÿ^\^ÿZZZÿFFFÿBBCÿDCDÿGGGÿBBCÿFFGÿDCDÿDCDÿJJJÿIHHÿEDDÿEDFÿFFFÿFFFÿFFFÿFFFÿCCCÿFFFÿBBCÿ@@@ÿBBCÿFFFÿPOQÿPOQÿGGGÿEDFÿCCCÿDCDÿCCCÿCCCÿ??@ÿCCCÿ>=>ÿ;:;ÿCCCÿBBCÿEDFÿEDDÿFFGÿGGGÿFFFÿFFFÿGGGÿGGGÿFFFÿFFGÿGGGÿGGGÿFFGÿGGGÿFFFÿHGHÿFFGÿMLNÿ^^_ÿNNNÿFFFÿXXXÿkjkÿoooÿpopÿnnnÿLLLÿGGGÿFFGÿFFFÿFFFÿhghÿgggÿqppÿMLNÿkjkÿEDFÿFFFÿEDFÿFFFÿDCDÿEDFÿihjÿ^\^ÿkkkÿwvvÿtttÿutvÿfffÿihhÿcccÿihhÿkjkÿnnoÿmllÿmllÿpopÿkjkÿPOQÿLLLÿLLLÿMLNÿZZ[ÿkjkÿSRTÿMLOÿLKLÿLKLÿLLLÿkkkÿwvvÿwvvÿwvvÿsssÿsssÿkjkÿfffÿSRTÿONQÿLKLÿVVWÿbbcÿYXZÿOOOÿMLNÿMLOÿLKLÿMLNÿMLOÿMLNÿMLNÿMLOÿNNOÿVVWÿTSTÿUTVÿTTTÿVVWÿqppÿrrrÿrrrÿihhÿ^^^ÿMLNÿffgÿ^\^ÿMLNÿLKLÿLKLÿ^\^ÿ^\^ÿihhÿnnnÿqppÿqppÿqppÿoooÿoooÿrrrÿqppÿnnnÿqppÿrrrÿqppÿqppÿoooÿlklÿoooÿedfÿedfÿ^^_ÿbbbÿmllÿmllÿmllÿnnnÿnnnÿkjkÿmllÿRRRÿdddÿcccÿ^\^ÿZZ[ÿ```ÿbbcÿ^^^ÿgggÿgggÿ```ÿfffÿlklÿkkkÿjjjÿihhÿffgÿffgÿdghÿnnnÿtttÿvvvÿxxxÿzzzÿzzzÿzxxÿxwwÿwwwÿxwwÿwwwÿvvvÿwvvÿvvwÿwwwÿwvvÿwvvÿxxxÿxxxÿxxxÿzzzÿzxxÿxxxÿxxxÿxwwÿxwwÿxxxÿxxxÿzzzÿxxxÿzzzÿzzzÿ{{{ÿzzzÿ{z{ÿ{z{ÿzzzÿzzzÿxxxÿxwxÿwwwÿxxxÿxxxÿwwwÿwwwÿwwwÿxxxÿwwwÿvvwÿvvvÿtttÿxxxÿxxxÿxxxÿwvvÿwwwÿsssÿ^\^ÿTSTÿXXXÿPPPÿQPRÿVVVÿRRRÿNNNÿPPPÿSSSÿRRRÿVVVÿLLLÿRRRÿJJJÿJJJÿLLLÿOOOÿOOOÿ[[[ÿUTVÿRRRÿSSSÿZZZÿXXXÿVVVÿWWWÿTTTÿXXXÿbbbÿPPPÿIHHÿXXXÿSSSÿ[[[ÿbbbÿWWWÿVVVÿcccÿqppÿzxxÿxwwÿtttÿxwwÿrrrÿxwwÿwvvÿwvvÿwvvÿtttÿrrrÿkjkÿkkkÿmllÿmllÿqppÿihhÿcccÿ```ÿbbbÿ```ÿbbbÿ```ÿ```ÿ___ÿ___ÿ^^^ÿ^\^ÿZZZÿBBCÿDCDÿGGGÿPOQÿEDDÿIHHÿFFFÿFFFÿJJJÿEDDÿA@BÿBBCÿEDDÿEDDÿCCCÿCCCÿBBCÿCCCÿLKLÿRRSÿUTVÿLKLÿFFFÿGGGÿJJJÿLKLÿFFFÿDCDÿEDDÿCCCÿ;:;ÿ>=>ÿ>=>ÿDCDÿ??@ÿDCDÿEDFÿEDFÿFFFÿFFGÿGGGÿGGGÿFFGÿGGGÿFFGÿFFFÿGGGÿFFGÿFFFÿFFFÿFFGÿFFFÿGGGÿFFFÿIHHÿIHJÿNNNÿdddÿmlnÿrrrÿxwwÿOOOÿLKLÿIHHÿEDFÿFFGÿNNOÿedfÿoooÿbbcÿlklÿJJJÿEDDÿEDDÿEDDÿEDDÿJJJÿGGGÿVVVÿhghÿvvwÿtstÿwvvÿZZ[ÿrrrÿmllÿkkkÿrrrÿrrrÿrrrÿa`bÿOOOÿXWYÿcccÿ^^_ÿNNOÿMLNÿMLNÿLKLÿ^\^ÿihjÿPOQÿLKNÿMLNÿLKLÿ^^^ÿwvvÿzxxÿxwwÿtstÿrrrÿoooÿnnoÿkjkÿ^\^ÿSRTÿLKLÿMLOÿZZ[ÿ^^_ÿRRSÿMLNÿMLNÿMLNÿMLNÿMLNÿLKNÿLKLÿLKLÿLKNÿLKNÿLKNÿJJJÿMLNÿfffÿnnoÿrrrÿoooÿYXZÿ```ÿmlnÿQPRÿJJLÿLKLÿJJJÿUTVÿYXZÿ^\^ÿkjkÿpopÿoooÿoooÿoooÿmlnÿqppÿqprÿmllÿmllÿrrrÿtttÿsssÿpopÿlklÿmllÿkkkÿfffÿ^^_ÿa`bÿihhÿrrrÿmllÿoooÿqppÿqppÿqppÿihhÿdddÿgggÿa`bÿgggÿfffÿcccÿgggÿjjjÿedfÿdcdÿihhÿmllÿmllÿmllÿjjjÿgggÿedfÿfffÿihhÿsssÿtstÿxxxÿzzzÿxxxÿzzzÿxxxÿxxxÿzxxÿwwwÿxxxÿxxxÿwwwÿwwwÿxwwÿwwwÿvvwÿwwwÿxwwÿwwwÿwwwÿwwwÿwwwÿxxxÿxwwÿwwwÿxxxÿxxxÿzzzÿzzzÿzzzÿzzzÿ{z{ÿ{{{ÿzzzÿzzzÿzzzÿzzzÿ{z{ÿzzzÿzzzÿyxzÿxxxÿwwwÿwwwÿwwwÿxwxÿwwwÿwwwÿvvvÿxxxÿwwwÿwwwÿwwwÿwwwÿxwwÿ^^^ÿWWWÿWWWÿSSSÿSSSÿSSSÿcccÿVVVÿRRRÿPPPÿOOOÿTTTÿQPRÿPPPÿPPPÿLLLÿOOOÿVVVÿRRRÿ^\^ÿ^\^ÿ^\^ÿ^^^ÿa`bÿ^\^ÿ^^_ÿLLLÿKKKÿLLLÿPPPÿKKKÿRRRÿ^^^ÿNNNÿRRRÿOOOÿ^\^ÿWWWÿ```ÿoooÿoooÿwvvÿzzzÿxwwÿsssÿwvvÿrrrÿsssÿtttÿsssÿtstÿoooÿkkkÿoooÿoooÿnnnÿihhÿcccÿcccÿbbbÿ```ÿ```ÿ```ÿ`_`ÿbbbÿcccÿ___ÿ[[[ÿXXXÿCCCÿBBCÿEDDÿIHJÿFFFÿ@@@ÿCCCÿBBCÿFFFÿFFGÿDCDÿEDDÿHGHÿIHJÿMLNÿBBCÿEDFÿIHHÿMLNÿIHHÿGGGÿIHHÿMLNÿMLNÿGGGÿEDDÿFFFÿJJJÿCCCÿ>=>ÿ@@@ÿBBCÿBBCÿ>=>ÿEDDÿEDFÿFFGÿFFFÿFFFÿFFFÿFFGÿEDFÿGGGÿGGGÿFFFÿGGGÿFFGÿFFGÿGGGÿFFFÿFFFÿFFFÿFFFÿFFGÿEDFÿFFGÿJJJÿkjkÿtstÿwvvÿ^\^ÿGGGÿQPRÿFFFÿGGGÿEDDÿhghÿkjkÿwvvÿnnoÿPOQÿEDDÿEDDÿFFGÿFFGÿGGGÿLKLÿIHHÿUTVÿedfÿtstÿrrsÿPPPÿFFGÿrrrÿqppÿtttÿwvvÿwvvÿnnnÿXWYÿTTTÿ^\^ÿkjkÿpopÿbbcÿRRSÿMLNÿMLNÿMLNÿffgÿ__bÿPOQÿPOQÿMLNÿLKLÿhghÿwvvÿxwwÿrrrÿqppÿrrrÿmllÿoooÿmllÿhghÿYXZÿQPRÿUTVÿ^^_ÿ^^^ÿUTVÿOOOÿMLNÿLKNÿLKNÿMLNÿLKNÿLKNÿLKLÿLKNÿJJLÿIHJÿLKLÿJJLÿLKLÿTSTÿTSTÿNNNÿdddÿpopÿYX[ÿBBCÿ??@ÿ??@ÿLLLÿOOOÿJJJÿ^^_ÿfffÿihhÿnnnÿoooÿkjkÿoooÿtstÿoooÿmllÿmlnÿrrrÿtttÿsssÿoooÿmlnÿihhÿcccÿdddÿkjkÿqppÿkkkÿmlnÿihhÿjjjÿmlnÿoooÿqppÿkjkÿdcdÿihhÿmllÿkkkÿkkkÿnnnÿoooÿhghÿkkkÿmllÿoooÿoooÿnnoÿnnnÿkkkÿihjÿgggÿkkkÿqppÿwvvÿzzzÿzxxÿzzzÿxxxÿxxxÿxwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwvvÿwvvÿwwwÿwwwÿwvvÿvvwÿwvvÿvvvÿtttÿwwwÿwvvÿwwwÿxxxÿwwwÿwwwÿxxxÿxxxÿyxzÿxxxÿzzzÿzzzÿzzzÿxxxÿzzzÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿwwwÿxwxÿwwwÿwwwÿvvwÿwwwÿwwwÿvvvÿvvvÿvvwÿzxxÿfffÿZZZÿTTTÿSSSÿVVVÿRRRÿRRRÿPPPÿNNNÿNNNÿNNNÿRRRÿTTTÿQPRÿPPPÿRRRÿPPPÿTTTÿRRRÿ\\\ÿYXZÿXXXÿWWWÿdddÿ___ÿRRRÿbbbÿNNNÿ\\\ÿVVVÿLLLÿVVVÿ[[[ÿPPPÿbbbÿ___ÿmllÿdddÿfffÿmllÿwvvÿzxxÿzxxÿzxxÿsssÿsssÿtttÿtttÿrrrÿsssÿsssÿsssÿrrrÿqppÿoooÿmllÿkkkÿcccÿcccÿcccÿa`bÿ`_`ÿ`_`ÿ`_`ÿ^\^ÿ```ÿcccÿ`_`ÿ^\^ÿEDDÿEDDÿQPRÿGGGÿNNNÿFFGÿIHHÿFFGÿIHHÿIHJÿFFFÿFFFÿIHJÿJJJÿMLNÿ??@ÿBBCÿCCCÿFFFÿJJJÿUTVÿUTVÿJJJÿFFFÿGGGÿGGGÿFFFÿBBCÿBBBÿ<<<ÿ>=>ÿCCCÿDCDÿEDFÿEDFÿEDDÿFFFÿGGGÿGGGÿGGGÿGGGÿFFFÿFFFÿFFGÿFFFÿFFGÿFFFÿFFFÿFFFÿFFFÿFFGÿGGGÿGGGÿGGGÿFFFÿEDDÿEDDÿMLNÿmllÿmlnÿbbbÿFFGÿOOOÿFFFÿFFFÿJJJÿhghÿrrrÿtstÿLKLÿCCCÿFFFÿGGGÿEDDÿGGGÿIHHÿIHJÿJJJÿRRSÿXXXÿbbcÿKKKÿEDFÿJJJÿnnnÿtttÿwvvÿzzzÿwvvÿXWYÿPPPÿ`_`ÿihhÿoooÿrrrÿsssÿoooÿcccÿVVWÿPOQÿPOQÿihhÿTSTÿTSTÿMLNÿMLNÿPOQÿlklÿwvvÿwvvÿsssÿqppÿqppÿmllÿnnoÿihhÿkjkÿkjkÿfffÿa`bÿgggÿVVWÿMLNÿMLOÿMLNÿMLNÿMLNÿLKLÿLKNÿLKNÿJJLÿJJLÿIHJÿLKNÿJJLÿJJLÿLKLÿLKLÿRRRÿcccÿkjkÿHGHÿ>=>ÿLKLÿQPRÿfffÿkjkÿ`_`ÿ^^_ÿcccÿdddÿfffÿkjkÿkjkÿihhÿrrrÿtstÿnnnÿmllÿmllÿqppÿwvvÿrrrÿmllÿhghÿdcdÿnnnÿmlnÿwvvÿoooÿqppÿjjjÿihhÿihhÿqppÿtstÿoooÿdddÿihhÿkkkÿmllÿkkkÿqppÿmllÿnnnÿnnnÿrrrÿqppÿoooÿqprÿqppÿmlnÿihjÿijkÿhghÿoooÿtttÿwwwÿxxxÿtttÿxxxÿvvvÿwwwÿwwwÿwvvÿvvvÿvvvÿwwwÿwwwÿwwwÿwwwÿwvvÿvvvÿvvvÿvvvÿvvvÿwvvÿutvÿwwwÿwwwÿwvvÿwwwÿwwwÿxwxÿxxxÿxxxÿxxxÿzzzÿxxxÿxxxÿxxxÿxxxÿxxxÿzzzÿzzzÿyxzÿxxxÿyxzÿxxxÿxxxÿxxxÿxxxÿxwxÿxxxÿxxxÿxxxÿxwxÿxwxÿxwxÿwwwÿvvvÿrrrÿ^^^ÿZZ[ÿVVVÿ\\\ÿWWWÿRRRÿOOOÿRRRÿPPPÿTTTÿWWWÿXXXÿ___ÿOOOÿRRRÿVVVÿSSSÿRRRÿUTVÿRRRÿ[[[ÿWWWÿedfÿXXXÿ[[[ÿcccÿTTTÿXXXÿLLLÿRRRÿ^^^ÿTTTÿPPPÿ\\\ÿdddÿ^\^ÿcccÿjjjÿxwwÿxwwÿzxxÿxwwÿtttÿwvvÿxwwÿqppÿqppÿrrrÿsssÿtttÿtstÿrrrÿqppÿqppÿnnnÿkjkÿihhÿihhÿihhÿgggÿfffÿdcdÿgggÿfffÿdddÿgggÿ^^^ÿ```ÿFFFÿDCDÿMLNÿGGGÿRRSÿGGGÿIHHÿFFGÿFFFÿFFGÿFFGÿIHHÿFFGÿFFGÿEDDÿA@BÿEDDÿCCCÿFFGÿIHJÿJJJÿPOQÿLKLÿPOQÿEDDÿLKLÿ@@@ÿ>=>ÿ>=>ÿMLNÿLKLÿJJJÿGGGÿEDFÿDCDÿFFFÿGGGÿGGGÿGGGÿIHHÿGGGÿIHHÿHGHÿFFFÿFFFÿGGGÿGGGÿFFFÿFFFÿEDFÿEDFÿFFGÿFFGÿGGGÿFFFÿFFFÿFFFÿZZZÿ\[\ÿ^\^ÿbbcÿGGGÿIHHÿEDFÿEDFÿ^^_ÿihhÿwvvÿYXZÿGGGÿFFFÿEDFÿGGGÿKKKÿIHHÿNNOÿGGGÿNNNÿRRRÿVVVÿKKKÿEDDÿEDDÿGGGÿRRRÿgggÿwvvÿxwwÿwvvÿqppÿkjkÿnnoÿqppÿrrrÿsssÿtttÿtttÿtttÿrrrÿkjkÿXXXÿ^^_ÿZZZÿZZ[ÿMLOÿMLNÿPOQÿWWWÿtttÿwvvÿtttÿwvvÿrrrÿrrrÿqppÿqppÿnnnÿnnnÿnnnÿkjkÿmllÿcccÿMLOÿLKLÿMLNÿLKLÿLKNÿLKNÿMLNÿMLNÿLKNÿLKNÿJJLÿLKNÿVVYÿJJLÿJJLÿMLNÿgggÿa`bÿRRSÿLKNÿPOQÿTSTÿZZ[ÿnnoÿlklÿhghÿbbcÿ\[\ÿcccÿkjkÿihhÿihhÿgggÿoooÿsssÿrrrÿkkkÿkkkÿmllÿnnnÿoooÿihhÿkjkÿbbbÿihhÿoooÿrrrÿrrrÿsssÿoooÿjjjÿdcdÿ```ÿZZZÿbbbÿcccÿgggÿqppÿkjkÿoooÿqppÿnnnÿnnnÿpopÿnnnÿoooÿpopÿnnnÿqppÿlklÿjjjÿdddÿjjjÿmllÿmllÿrrsÿwwwÿsssÿxxxÿqppÿwvvÿvvvÿwvvÿwwwÿwvvÿvvvÿtttÿvvvÿvvvÿvvvÿvvvÿwwwÿvvvÿtttÿtttÿtttÿtttÿvvvÿwvvÿwwwÿwwwÿxwwÿxxxÿxxxÿwwwÿwwwÿxxxÿvvvÿwwwÿxxxÿzzzÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿwwwÿxxxÿxxxÿxxxÿvvwÿxwxÿxxxÿxxxÿxxxÿxxxÿyxzÿyxzÿzxxÿfffÿcccÿ^^^ÿ[[[ÿXXXÿRRRÿPPPÿPPPÿMLNÿOOOÿMLNÿRRRÿ^\^ÿJJJÿPOQÿRRSÿSSSÿRRRÿUTVÿZZZÿZZZÿXXXÿ^\^ÿRRRÿZZZÿTTTÿ[[[ÿVVVÿLLLÿbbbÿ\\\ÿXXXÿZZZÿihhÿ^\^ÿcccÿihhÿ^\^ÿzxxÿxwwÿsssÿwvvÿzxxÿtttÿxwwÿwvvÿsssÿrrrÿoooÿqppÿkkkÿihhÿnnnÿpopÿoooÿkjkÿjjjÿkjkÿkjkÿihhÿihhÿihhÿfffÿcccÿbbbÿbbbÿ___ÿ```ÿLLLÿEDDÿGGGÿMLNÿIHHÿGGGÿIHHÿFFGÿGGGÿDCDÿFFFÿHGHÿFFFÿFFFÿCCCÿFFFÿBBCÿCCCÿEDDÿFFFÿEDDÿGGGÿGGGÿCCCÿ>=>ÿ>=>ÿEDDÿ>=>ÿ@@@ÿNNNÿIHHÿJJJÿJJJÿFFGÿEDFÿFFFÿFFFÿFFGÿFFGÿHGHÿHGHÿHGHÿGGGÿFFFÿFFGÿIHHÿGGGÿFFFÿEDFÿEDFÿFFFÿFFFÿEDFÿEDFÿFFGÿEDDÿEDFÿMLNÿkkkÿtstÿVVWÿEDFÿFFFÿEDDÿJJJÿYXZÿrrrÿihhÿFFFÿFFFÿKKKÿJJJÿJJJÿLKLÿRRSÿOOOÿJJKÿIHHÿVVVÿOOOÿEDFÿEDFÿEDDÿFFGÿnnnÿ^^^ÿgggÿoooÿtttÿtstÿmllÿnnnÿnnoÿnnnÿqppÿtttÿtttÿsssÿtstÿrrrÿnnnÿnnnÿgggÿ`_`ÿTSTÿONQÿMLOÿVVWÿdddÿtttÿwvvÿtttÿwvvÿsssÿoooÿoooÿnnnÿnnnÿihhÿkkkÿnnnÿkjkÿYXZÿMLNÿMLNÿMLOÿMLOÿMLOÿMLOÿLKNÿMLNÿLKNÿJJLÿMLOÿddgÿSRTÿLKNÿTSTÿjjjÿkjkÿFFFÿHGHÿVVWÿZZ\ÿRRSÿoooÿtstÿmllÿihhÿedfÿUTVÿfffÿihhÿihhÿgggÿnnoÿsssÿwvvÿrrrÿlklÿkkkÿffgÿmllÿkkkÿihhÿedfÿnnnÿnnoÿtstÿtstÿsssÿrrrÿmllÿihhÿihhÿffgÿgggÿkkkÿmlnÿoooÿnnnÿwvvÿtstÿoooÿoooÿrrrÿkkkÿqppÿkkkÿmllÿmllÿkkkÿijkÿedfÿfffÿihjÿkkkÿqppÿvvvÿsssÿwwwÿqppÿvvvÿwwwÿvvvÿwvvÿvvvÿwvvÿutvÿvvvÿtttÿvvvÿvvvÿtttÿtttÿtttÿtttÿtttÿtttÿvvvÿvvvÿvvvÿvvvÿwwwÿxxxÿxxxÿwwwÿwwwÿxxxÿwwwÿwwwÿxwxÿxxxÿxxxÿxwxÿwwwÿxxxÿxxxÿxxxÿwwwÿzzzÿxxxÿwwwÿwwwÿyxzÿxxxÿzzzÿxxxÿxxxÿzzzÿzxxÿ}||ÿjjjÿnnnÿ```ÿ\\\ÿVVVÿRRRÿPPPÿQPRÿRRRÿLKLÿNNNÿOOOÿVVVÿGGGÿJJJÿMLNÿRRRÿRRRÿTTTÿJJJÿKKKÿWWWÿSSSÿNNNÿ```ÿSSSÿPPPÿKKKÿSSSÿXXXÿ\\\ÿdddÿ```ÿdddÿihhÿ```ÿihhÿbbbÿnnnÿnnnÿsssÿxwwÿwvvÿsssÿtttÿtttÿsssÿsssÿsssÿsssÿoooÿihhÿqppÿnnnÿmllÿmllÿjjjÿkkkÿjjjÿihhÿihhÿfffÿihhÿcccÿcccÿcccÿ^^^ÿ^\^ÿNNNÿGGGÿEDFÿJJJÿFFFÿIHHÿFFGÿFFFÿEDDÿFFFÿGGGÿIHHÿOOOÿMLNÿNNNÿJJJÿGGGÿBBCÿJJJÿGGGÿFFFÿEDDÿ??@ÿ;:;ÿEDDÿBBCÿFFGÿEDDÿ@@@ÿCCCÿCCCÿFFFÿFFFÿFFGÿEDFÿEDDÿEDFÿFFGÿIHHÿLKLÿIHHÿIHHÿLKLÿJJKÿIHHÿGGGÿGGGÿFFFÿGGGÿFFFÿGGGÿEDFÿEDFÿFFFÿEDFÿEDDÿFFFÿFFFÿtstÿqppÿNNNÿFFGÿFFFÿEDFÿZZ[ÿcccÿqppÿIHHÿGGGÿEDDÿGGGÿIHJÿFFFÿLLLÿPPPÿRRSÿFFGÿLLLÿRRSÿHGHÿGGGÿEDFÿEDFÿFFGÿ^\^ÿedfÿTSTÿbbbÿrrrÿtttÿkkkÿWWWÿWWWÿbbbÿfffÿihhÿwvvÿtttÿwvvÿsssÿnnnÿmllÿnnoÿmllÿ^^_ÿONQÿMLOÿONQÿUTVÿkjkÿwvvÿtttÿtstÿsssÿqppÿqppÿgggÿ```ÿdddÿjjjÿmllÿnnnÿnnnÿ^\^ÿNNNÿMLNÿMLOÿMLOÿMLOÿMLNÿMLNÿMLOÿLKLÿMLNÿffgÿSRTÿMLNÿ`_`ÿkjkÿXWYÿVVWÿBBCÿMLNÿVVWÿXWYÿpopÿrrrÿgggÿkjkÿihhÿYXZÿOOOÿdddÿkkkÿhghÿihhÿnnoÿrrrÿrrrÿmllÿkkkÿffgÿkjkÿkkkÿa`bÿqppÿkkkÿmllÿtstÿsssÿsssÿtttÿqppÿqppÿnnnÿihhÿfffÿgggÿihhÿkjkÿrrrÿnnnÿrrrÿqppÿtstÿtstÿqppÿmllÿffgÿgggÿmllÿmllÿmllÿihjÿcccÿihhÿnnnÿtttÿxwwÿvvvÿvvwÿwwwÿwwwÿwwwÿutvÿtttÿtttÿtttÿtttÿvvvÿtttÿtttÿtttÿtttÿtttÿsssÿsssÿtttÿtttÿtttÿtttÿutvÿvvwÿvvwÿxxxÿxwxÿxxxÿxwxÿzzzÿvvvÿoooÿvvwÿxxxÿtttÿxxxÿxxxÿzzzÿxxxÿzzzÿzzzÿzzzÿyxzÿxxxÿxxxÿ{z{ÿzzzÿzzzÿzzzÿxxxÿzzzÿ}||ÿ{{{ÿrrrÿ^^^ÿ^^^ÿ^\^ÿWWWÿSSSÿRRRÿLLLÿNNNÿGGGÿJJJÿYXZÿNNNÿIHHÿIHHÿKKKÿPPPÿRRRÿRRRÿOOOÿXXXÿ___ÿVVVÿ___ÿWWWÿKKKÿFFFÿGGGÿ\\\ÿTTTÿZZZÿbbbÿbbbÿ^^^ÿZZZÿihhÿWWWÿbbcÿqppÿmllÿmllÿgggÿ[[[ÿihhÿmllÿoooÿtstÿwvvÿrrrÿoooÿrrrÿoooÿmllÿnnnÿnnnÿmllÿkkkÿihhÿkjkÿihhÿgggÿfffÿgggÿfffÿbbbÿ^^^ÿ[[[ÿ[[[ÿNNNÿGGGÿEDDÿJJJÿEDDÿGGGÿLKLÿIHHÿLLLÿKKKÿPOQÿQPRÿUTVÿZZZÿOOOÿMLNÿFFFÿ@@@ÿFFFÿTSTÿcccÿ??@ÿ??@ÿ@@@ÿ;:;ÿFFFÿ@@@ÿ<<<ÿBBCÿBBCÿEDFÿFFGÿIHJÿFFFÿFFFÿHGHÿLKLÿKKKÿIHJÿFFGÿJJJÿGGGÿHGHÿFFFÿGGGÿGGGÿFFGÿGGGÿFFFÿGGGÿFFFÿEDDÿEDFÿEDFÿEDDÿEDDÿEDFÿEDDÿfffÿrrrÿEDDÿEDFÿCCCÿDCDÿFFFÿihhÿkkkÿFFFÿEDDÿEDFÿIHHÿMLNÿTTTÿVVWÿ`_`ÿRRRÿKKKÿHGHÿJJJÿEDDÿEDDÿEDFÿFFFÿGGGÿMLNÿMLNÿPOQÿa`bÿoooÿsssÿsssÿcccÿjjjÿnnnÿjjjÿ```ÿkkkÿwvvÿwvvÿwvvÿtttÿoooÿnnnÿmllÿmlnÿXWYÿOOOÿMLNÿYXZÿOOOÿqppÿtttÿsssÿsssÿoooÿrrrÿrrrÿmllÿfffÿfffÿoooÿmllÿmllÿmllÿfffÿPOQÿMLOÿPOQÿOOOÿMLOÿMLOÿMLOÿMLOÿLKLÿffgÿYXZÿMLOÿgggÿSSSÿ^\^ÿYXZÿOOOÿEDDÿDCDÿGGGÿYXZÿgggÿUTVÿZZ[ÿSSSÿJJJÿJJJÿdcdÿoooÿlklÿfffÿkkkÿnnnÿoooÿoooÿihhÿihhÿihhÿffgÿkkkÿpopÿqppÿkjkÿtstÿsssÿtstÿtstÿqppÿqppÿsssÿrrrÿjjjÿjjjÿihhÿkkkÿoooÿoooÿnnnÿnnoÿqppÿoooÿkkkÿnnnÿhghÿfffÿkkkÿoooÿnnnÿkkkÿedfÿdcdÿgggÿtttÿtttÿvvwÿwwwÿxwwÿwwwÿvvvÿwvvÿvvvÿvvvÿtttÿtttÿtttÿtttÿtttÿsssÿtttÿrrsÿsssÿsssÿtttÿsssÿtttÿtttÿtttÿvvwÿvvwÿxwxÿxxxÿxxxÿxxxÿnnnÿoooÿwwwÿxxxÿyxzÿqprÿwwwÿzzzÿzzzÿyxzÿzzzÿzzzÿzzzÿzzzÿzzzÿxxxÿzzzÿ{{{ÿzzzÿ{z{ÿyxzÿzzzÿ}||ÿ{{{ÿ}||ÿoooÿbbbÿ^^^ÿXXXÿXXXÿSSSÿPPPÿIHHÿIHHÿGGGÿGGGÿGGGÿKKKÿJJJÿLLLÿLLLÿKKKÿSSSÿVVVÿWWWÿ^\^ÿWWWÿVVVÿKKKÿNNNÿLLLÿTTTÿ^^^ÿ```ÿbbbÿcccÿ[[[ÿbbbÿjjjÿa`bÿRRRÿ___ÿtstÿtttÿqppÿoooÿnnnÿnnnÿjjjÿkkkÿdddÿbbbÿWWWÿVVWÿ[[[ÿgggÿoooÿoooÿmllÿmllÿmllÿkkkÿkkkÿihhÿcccÿbbcÿedfÿcccÿcccÿ^^^ÿ^\^ÿ^\^ÿRRRÿLKLÿEDDÿIHHÿFFFÿFFGÿQPRÿbbcÿTTTÿ^\^ÿ[[[ÿWWWÿVVWÿSSSÿPPPÿ??@ÿ>=>ÿ??@ÿEDDÿ[[[ÿBBCÿ>=>ÿ<<<ÿ@@@ÿCCCÿ<<<ÿ@@@ÿ<<<ÿA@BÿEDDÿFFFÿEDFÿFFGÿIHHÿHGHÿJJJÿIHJÿGGGÿIHJÿJJJÿIHHÿGGGÿFFGÿFFGÿGGGÿFFGÿFFFÿFFFÿGGGÿEDFÿEDDÿEDDÿEDDÿEDFÿFFFÿEDDÿEDDÿFFFÿNNNÿqppÿJJJÿEDFÿFFGÿFFGÿEDDÿNNNÿGGGÿJJKÿFFFÿFFFÿJJJÿMLNÿLLLÿIHJÿIHHÿNNOÿNNNÿRRRÿLKLÿEDFÿEDFÿFFGÿFFGÿIHHÿLLLÿNNOÿNNNÿXXXÿkkkÿmllÿqppÿ___ÿZZZÿbbbÿqppÿjjjÿcccÿoooÿwvvÿxwwÿxwwÿwvvÿqppÿmllÿmlnÿdcdÿONQÿMLNÿUTWÿQPRÿVVWÿtstÿrrrÿnnnÿmllÿnnnÿqppÿqppÿoooÿqppÿnnnÿmllÿfffÿfffÿkjkÿ^^_ÿMLOÿOOOÿMLOÿMLNÿVVWÿOOOÿVVWÿQPRÿ^\^ÿZZ[ÿQPRÿQPRÿbbbÿ^\^ÿ\[\ÿVVVÿ[[[ÿRRSÿJJJÿFFFÿMLNÿUTVÿ^\^ÿ`_`ÿbbcÿ^\^ÿedfÿkkkÿmllÿgggÿfffÿihhÿkkkÿlklÿgggÿihhÿfffÿihhÿnnnÿqppÿrrrÿnnoÿqppÿoooÿqppÿrrrÿrrrÿoooÿrrrÿtstÿqppÿkkkÿoooÿqppÿtstÿmlnÿgggÿmllÿnnnÿmlnÿqppÿmllÿihhÿlklÿnnoÿlklÿmlnÿjjjÿihhÿdddÿgggÿqppÿsssÿtttÿtttÿtttÿtttÿtttÿtttÿsssÿsssÿsstÿtttÿtttÿtttÿsssÿsssÿsssÿrrsÿsssÿtttÿsssÿtttÿtttÿtttÿtttÿvvvÿvvvÿxwwÿxxxÿwwwÿxxxÿwwwÿxxxÿzzzÿxxxÿxxxÿxxxÿrrrÿzzzÿxxxÿzzzÿvvwÿxxxÿzzzÿxxxÿzzzÿwwwÿzzzÿ{{{ÿzzzÿzzzÿzzzÿzzzÿ{z{ÿ{{{ÿ{z{ÿzzzÿ___ÿTTTÿRRRÿTTTÿVVVÿPPPÿHGHÿIHHÿGGGÿhhhÿÀÀÀÿæææÿõõõÿøøøÿïïïÿÙÙÙÿ²²³ÿlllÿTTTÿSSSÿJJJÿEDDÿLLLÿNNNÿFFFÿgggÿRRRÿVVVÿZZZÿcccÿTTTÿXXXÿcccÿVVWÿcccÿwvvÿwvvÿwvvÿtttÿqppÿsssÿtstÿtttÿtttÿtstÿkkkÿ^^^ÿfffÿSSSÿkjkÿkkkÿmllÿkkkÿkjkÿkjkÿjjjÿihhÿihhÿdddÿcccÿ```ÿ^\^ÿ^\^ÿ^\^ÿ\[\ÿXXXÿVVVÿQPRÿEDDÿFFFÿGGGÿDCDÿEDFÿdceÿcccÿXWYÿQPRÿRRRÿUTVÿTSTÿ>=>ÿ<<<ÿ<<<ÿ??@ÿMLNÿ@@@ÿJJLÿ@@@ÿCCCÿ??@ÿ>=>ÿ<<<ÿ<<<ÿDCDÿDCDÿCCCÿCCCÿCCCÿFFFÿEDDÿEDDÿEDFÿGGGÿIHHÿIHHÿIHHÿIHHÿHGHÿFFFÿFFFÿGGGÿIHHÿFFFÿFFFÿFFFÿFFFÿFFFÿFFFÿEDDÿFFFÿEDFÿEDDÿEDDÿDCDÿJJJÿXXXÿEDDÿGGGÿFFGÿFFGÿGGGÿEDDÿRRSÿ`_`ÿOOOÿCCCÿFFFÿGGGÿIHJÿNNNÿLLLÿNNNÿRRSÿKKKÿIHHÿFFFÿEDDÿFFFÿFFGÿHGHÿOOOÿNNNÿVVWÿYXZÿoooÿihhÿmllÿcccÿbbbÿXXXÿ^\^ÿoooÿmllÿkkkÿtttÿwvvÿtttÿwvvÿqppÿpopÿnnoÿffgÿ^^`ÿMLNÿUTWÿdcdÿMLNÿ^^_ÿqppÿqppÿqppÿmllÿjjjÿmllÿmllÿmllÿmllÿmllÿmllÿkkkÿkjkÿfffÿPOQÿOOOÿMLNÿONQÿffgÿQPRÿ^^_ÿZZ[ÿ^\^ÿVVWÿYXZÿfffÿ```ÿbbbÿWWWÿOOOÿUTVÿZZ[ÿXXXÿUTVÿ`_`ÿkjkÿnnoÿnnnÿoooÿmlnÿmllÿ`_`ÿkjkÿkjkÿihhÿgggÿfffÿkjkÿihhÿgggÿihhÿnnnÿoooÿqppÿpopÿnnnÿqppÿqppÿmllÿmllÿpopÿqppÿqppÿtstÿrrrÿqppÿsssÿtstÿtstÿnnnÿmllÿnnnÿmllÿnnnÿnnnÿnnnÿoooÿpopÿnnnÿihhÿkkkÿkkkÿihhÿcccÿihhÿsssÿtttÿtttÿtttÿtttÿtttÿsssÿsssÿrrsÿsssÿrrsÿrrrÿrrrÿrrrÿrrrÿsssÿrrsÿrrrÿsssÿsssÿsssÿtttÿsssÿgggÿoooÿtttÿwwwÿxxxÿxxxÿxxxÿxxxÿqprÿxxxÿzzzÿxxxÿxxxÿxxxÿzzzÿtttÿxxxÿlnoÿvvvÿsssÿzzzÿyxzÿzzzÿvvwÿyxzÿzzzÿzzzÿzzzÿxxxÿ{{{ÿzzzÿ{{{ÿzzzÿzxxÿihhÿ___ÿXXXÿWWWÿPPPÿNNOÿOOOÿNNNÿIHHÿéééÿøøøÿòòòÿvvvÿJIIÿOOOÿŽŽŽÿöööÿõõõÿÿOOOÿOOOÿWWWÿZZZÿ\\\ÿ^^^ÿ___ÿdddÿbbbÿsssÿjjjÿxwwÿnnnÿrrrÿqppÿrrrÿwvvÿwvvÿtttÿjjjÿoooÿsssÿsssÿtttÿsssÿoooÿnnnÿmllÿkjkÿcccÿkkkÿihhÿmllÿjjjÿihhÿihhÿgggÿgggÿgggÿdddÿ___ÿ^\^ÿbbbÿXXXÿSSSÿ[[[ÿTSTÿNNNÿQPRÿHGHÿEDDÿEDFÿBBCÿEDDÿ»»»ÿÈÈÈÿpppÿVVWÿQPRÿOOOÿCCCÿ??@ÿ??@ÿGGGÿJJJÿJJJÿgggÿLKLÿ<<<ÿ<<<ÿ@@@ÿEDDÿBBCÿEDDÿEDDÿ@@@ÿCCCÿCCCÿBBCÿEDDÿDCDÿBBCÿEDDÿFFFÿLKLÿLKLÿJJJÿFFGÿFFGÿGGGÿFFGÿFFFÿFFFÿEDDÿHGHÿFFFÿEDFÿEDDÿEDDÿEDDÿEDDÿCCCÿEDDÿEDDÿEDDÿFFFÿEDDÿFFGÿEDDÿEDDÿFFFÿFFGÿEDDÿnnnÿnnnÿOOOÿFFFÿFFFÿGGGÿTSTÿjjjÿIHHÿHGHÿFFFÿNNOÿGGGÿEDDÿEDFÿFFFÿFFGÿIHHÿYXZÿLKLÿ^^_ÿSRTÿrrrÿtttÿtttÿtttÿtttÿqppÿkkkÿihhÿoooÿqppÿqppÿwvvÿwvvÿtstÿrrrÿnnoÿlklÿYXZÿedfÿUTWÿXWYÿmlnÿ\[\ÿLKLÿfffÿqppÿihhÿqppÿoooÿihhÿgggÿkjkÿmllÿkkkÿmllÿihhÿnnnÿkkkÿUTVÿMLOÿMLOÿ\[\ÿkjkÿRRSÿbbbÿ```ÿRRRÿbbbÿfffÿbbbÿ`_`ÿ^^^ÿTSTÿTSTÿVVWÿ___ÿ___ÿ^^_ÿ`_`ÿffgÿkjkÿoooÿkjkÿkjkÿkjkÿbbcÿ^\^ÿihhÿkjkÿkkkÿihhÿdddÿffgÿedfÿmllÿjjjÿihhÿihhÿnnnÿihhÿnnnÿoooÿmllÿoooÿkkkÿkkkÿihhÿgggÿdddÿihhÿihhÿkjkÿnnnÿkjkÿmllÿkjkÿfffÿihhÿfffÿbbbÿmllÿihhÿfffÿdddÿihjÿmlnÿjjjÿihhÿoooÿsssÿtttÿvvvÿwvvÿtttÿvvvÿutvÿtttÿrrrÿqppÿqppÿoooÿqppÿoooÿqppÿqppÿrrrÿrrrÿrrrÿrrsÿtttÿtttÿsstÿtttÿoooÿnnoÿutvÿwwwÿqppÿnnnÿtttÿxxxÿxxxÿxxxÿzzzÿxxxÿxxxÿyxzÿzzzÿxxxÿzzzÿwwwÿxxxÿwwwÿzzzÿxxxÿwwwÿxxxÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzxxÿzzzÿtttÿVVVÿ[[[ÿZZZÿTTTÿOOOÿRRRÿTTTÿLLLÿâââÿøøøÿàààÿLLLÿjjjÿihhÿsssÿíííÿøøøÿæææÿtttÿxwwÿdddÿIHHÿZZZÿkkkÿtttÿzxxÿxwwÿwvvÿsssÿxwwÿsssÿkkkÿoooÿwvvÿwvvÿkjkÿnnnÿqppÿkkkÿrrrÿsssÿsssÿsssÿoooÿoooÿnnnÿmllÿfffÿkkkÿihhÿgggÿfffÿa`bÿfffÿfffÿdddÿ^\^ÿZZZÿ[[[ÿ^^^ÿ[[[ÿ\[\ÿVVVÿVVVÿQPRÿPPPÿLKLÿFFFÿ;:;ÿ;:;ÿDCDÿ>=>ÿDDDÿÀÀÀÿÒÒÒÿ[[\ÿMLNÿFFFÿ??@ÿ;:;ÿMLNÿMLNÿONQÿpopÿedfÿLKLÿEDDÿBBCÿDCDÿFFFÿFFGÿEDDÿBBCÿDCDÿCCCÿBBCÿ@@@ÿBBBÿA@BÿBBCÿCCCÿMLNÿPPPÿIHHÿHGHÿFFGÿHGHÿFFFÿFFFÿEDFÿFFFÿEDFÿFFFÿFFFÿEDDÿEDDÿFFFÿEDDÿEDDÿEDDÿEDDÿEDDÿEDDÿCCCÿGGGÿEDFÿDCDÿFFFÿFFFÿFFFÿEDDÿYXZÿIHHÿQPRÿZZ[ÿgggÿnnnÿmllÿLKLÿEDFÿGGGÿLLLÿIHJÿEDDÿEDFÿFFFÿFFFÿFFFÿIHHÿmllÿ^\^ÿkjkÿihhÿfffÿsssÿrrrÿsssÿqppÿrrrÿoooÿihhÿkkkÿnnnÿsssÿwvvÿwvvÿtttÿtstÿqppÿgggÿTSTÿQPRÿ`_`ÿUTWÿmlnÿmllÿQPRÿMLNÿgggÿnnnÿfffÿmllÿsssÿmllÿfffÿihhÿkkkÿjjjÿgggÿkkkÿihhÿZZ[ÿQPRÿ^\^ÿnnnÿkjkÿ`_`ÿdddÿ^^_ÿfffÿgggÿgggÿfffÿ`_`ÿ^\^ÿ^\^ÿXXXÿ^\^ÿ^\^ÿ^^_ÿ`_`ÿ^^^ÿcccÿihhÿnnnÿkjkÿkjkÿhghÿffgÿ^\^ÿYXZÿkjkÿnnnÿpopÿkkkÿkjkÿkkkÿmllÿgggÿfffÿfffÿfffÿmllÿkkkÿmllÿihhÿnnnÿihhÿmllÿmllÿdddÿjjjÿmllÿkjkÿkjkÿihhÿdddÿ```ÿ^^^ÿihhÿbbbÿgggÿbbbÿdddÿ^\^ÿ___ÿgggÿdddÿkkkÿjjjÿijkÿqppÿsssÿsssÿtttÿtttÿtttÿtttÿtttÿtttÿrrsÿqppÿnnnÿoooÿqppÿqppÿrrrÿqppÿqppÿqppÿoooÿrrrÿsssÿtttÿtttÿsssÿtttÿrrrÿpopÿvvvÿtttÿxwxÿxwxÿxxxÿxxxÿzzzÿyxzÿzzzÿzzzÿxxxÿxxxÿxxxÿxxxÿtttÿzzzÿzzzÿzzzÿzzzÿxwxÿxxxÿ{{{ÿzzzÿzzzÿzzzÿ{z{ÿ{z{ÿzzzÿxxxÿzzzÿzzzÿNNNÿMLNÿRRRÿTTTÿTTTÿEDDÿNNNÿKKKÿ\[\ÿÓÓÓÿ÷÷÷ÿàààÿäääÿåååÿðððÿøøøÿøøøÿôôôÿtttÿqppÿwvvÿxwwÿxwwÿwvvÿxwwÿwvvÿxwwÿwvvÿrrrÿrrrÿrrrÿqppÿsssÿtttÿqppÿihhÿmllÿoooÿkkkÿsssÿrrrÿqppÿoooÿoooÿoooÿnnnÿoooÿkkkÿkkkÿkjkÿkjkÿgggÿ^\^ÿ^^_ÿfffÿa`bÿgggÿ^^_ÿdddÿ^^^ÿ[[[ÿXXXÿXXXÿXXXÿUTVÿRRRÿOOOÿFFFÿ>=>ÿCCCÿ;:;ÿ??@ÿ@@@ÿRRSÿøøøÿšš›ÿEDDÿBBBÿ<<<ÿGGGÿZZ[ÿNNOÿwvvÿnnnÿkjkÿCCCÿ>=>ÿJJJÿFFGÿEDDÿEDDÿCCCÿCCCÿDCDÿEDDÿEDDÿDCDÿBBCÿBBCÿBBCÿCCCÿFFFÿEDDÿFFFÿEDFÿFFFÿEDFÿFFFÿFFFÿEDDÿFFFÿEDDÿFFFÿEDFÿCCCÿEDFÿFFFÿEDDÿEDDÿEDDÿEDDÿEDDÿEDDÿEDFÿFFFÿEDDÿGGGÿGGGÿEDFÿEDFÿMLNÿkkkÿnnoÿZZ[ÿOOOÿOOOÿMLNÿIHHÿEDDÿEDDÿGGGÿFFFÿEDDÿEDDÿEDFÿFFGÿHGHÿFFFÿIHJÿxwwÿoooÿcccÿnnnÿqppÿqppÿrrrÿsssÿsssÿmllÿtttÿrrrÿkkkÿoooÿnnnÿrrrÿwvvÿwvvÿwvvÿwvvÿcccÿPOQÿNNNÿdcdÿRRSÿmlnÿoooÿa`bÿNNNÿPOQÿqppÿlklÿ^^^ÿfffÿtstÿqppÿkjkÿcccÿcccÿgggÿkjkÿihhÿcccÿ^^_ÿgggÿmllÿkjkÿ^\^ÿRRSÿfffÿcccÿUTVÿ^\^ÿ[[[ÿXXXÿbbbÿcccÿbbbÿ^\^ÿ^\^ÿ___ÿ___ÿbbbÿnnnÿoooÿnnnÿdddÿZZZÿbbcÿedfÿedfÿLKNÿMLOÿa`bÿffgÿbbcÿgfgÿªªªÿÛÛÛÿóóóÿ÷÷÷ÿíííÿÎÎÎÿ‘‘ÿdddÿjjjÿjjjÿkjkÿ^^^ÿmllÿmllÿhhhÿ«««ÿßßßÿõõõÿôôôÿÛÛÛÿ¨¨¨ÿmlmÿbbbÿedfÿ³³³ÿøøøÿøøøÿøøøÿøøøÿ÷÷÷ÿ———ÿ÷÷÷ÿøøøÿøøøÿøøøÿøøøÿ¹¹¹ÿtstÿtttÿtttÿsssÿsssÿ‚‚‚ÿôôôÿõõõÿ€€€ÿnnnÿoooÿrrrÿoooÿoooÿqppÿuttÿ¬¬¬ÿÚÚÚÿòòòÿøøøÿíííÿÌÌÌÿŠŠŠÿtttÿÇÇÇÿøøøÿøøøÿøøøÿøøøÿøøøÿéééÿxxxÿzzzÿxxxÿzzzÿyxzÿ‘‘‘ÿÞÞÞÿöööÿîîîÿ¿¿¿ÿvvwÿzzzÿ››œÿøøøÿøøøÿøøøÿøøøÿøøøÿ©¨©ÿ½½½ÿøøøÿøøøÿøøøÿøøøÿ÷÷÷ÿšššÿ÷÷÷ÿøøøÿøøøÿøøøÿøøøÿ¦¦¦ÿKKKÿZZZÿ§§§ÿøøøÿøøøÿøøøÿøøøÿøøøÿøøøÿøøøÿøøøÿÐÐÐÿqppÿwvvÿxwwÿtttÿwvvÿwvvÿxwwÿwvvÿsssÿŽŽÿÖÕÕÿóóóÿôôôÿØØØÿ˜˜˜ÿøøøÿøøøÿøøøÿøøøÿÍÍÍÿnnoÿšššÿâââÿöööÿóóóÿÜÜÜÿ¢¡¡ÿÿÜÜÝÿöööÿÛÛÛÿ„ƒ„ÿfffÿfffÿ~}ÿÙÙÚÿöööÿíííÿ¸¸¸ÿgggÿcccÿXXXÿÿàààÿöööÿòòòÿ×××ÿŽŽÿ`__ÿÓÓÓÿöööÿÒÒÒÿeddÿ@@@ÿ“’“ÿóóóÿøøøÿ×××ÿFFFÿ;:;ÿPOQÿQPRÿIHHÿlklÿwvvÿqppÿPOQÿJJJÿJJJÿJJJÿGGGÿJJJÿGGGÿEDDÿEDFÿCCCÿEDDÿEDFÿEDDÿBBBÿBBCÿCCCÿCCCÿEDDÿEDFÿEDDÿEDDÿFFFÿEDDÿEDDÿEDFÿEDFÿEDFÿEDFÿEDDÿEDFÿEDFÿEDFÿEDDÿEDDÿEDDÿEDDÿCCCÿEDDÿEDFÿFFFÿGGGÿXXXÿFFGÿEDDÿGGGÿHGHÿTSTÿnnnÿ`_`ÿNNOÿLLLÿRRRÿJJKÿEDDÿDCDÿFFFÿEDDÿKKKÿFFFÿEDDÿGGGÿFFFÿFFFÿGGGÿPPPÿmllÿnnnÿqppÿrrrÿqppÿqppÿoooÿoooÿtttÿsssÿnnnÿwvvÿnnnÿqppÿrrrÿoooÿnnnÿrrrÿwvvÿwvvÿtttÿihhÿWWWÿ^\^ÿPPPÿqppÿrrrÿnnoÿa`bÿNNNÿ[[[ÿwvvÿtstÿgggÿ\[\ÿkjkÿrrrÿnnoÿdcdÿfffÿ^^_ÿVVWÿcccÿNNNÿa`bÿkjkÿbbcÿXWYÿbbcÿkjkÿ```ÿPPPÿVVVÿPPPÿRRRÿ\\\ÿ[[[ÿWWWÿTSTÿOOOÿNNNÿLKLÿIHHÿcccÿkjkÿkkkÿ^\^ÿTTTÿMLNÿIHJÿBBCÿA@BÿDCDÿFFGÿIHJÿSSTÿÒÒÒÿøøøÿìììÿ®®®ÿÿ”””ÿ²²²ÿïïïÿËÊÊÿsrrÿihhÿkkkÿfffÿmllÿtttÿ×××ÿøøøÿØØØÿsssÿ|||ÿÚÚÚÿøøøÿÕÕÕÿgghÿ```ÿihhÿqqqÿøøøÿøøøÿøøøÿutuÿihhÿrrrÿøøøÿøøøÿøøøÿyxxÿrrsÿsssÿsssÿsssÿrrrÿrrrÿÁÁÁÿøøøÿøøøÿ»ººÿqppÿnnnÿmllÿmllÿmllÿrrrÿÚÚÚÿøøøÿøøøÿÛÛÛÿ¤££ÿžžžÿÀÀÀÿñññÿ”””ÿtttÿÿøøøÿøøøÿøøøÿ„„„ÿxxxÿzzzÿyxzÿyxzÿxxxÿxxxÿßßßÿøøøÿøøøÿÕÕÕÿëêëÿºº»ÿzzzÿzzzÿƒƒƒÿøøøÿøøøÿøøøÿ………ÿzzzÿzzzÿ†††ÿøøøÿøøøÿøøøÿfffÿWWWÿkkkÿøøøÿøøøÿøøøÿddeÿJJJÿRRRÿ}||ÿõõõÿøøøÿøøøÿøøøÿøøøÿøøøÿõõõÿéééÿÆÆÆÿ‚ÿsssÿtttÿwvvÿtttÿtstÿtstÿqppÿrrrÿŒŒŒÿôôôÿøøøÿèèèÿœœœÿ¦¦¦ÿîîîÿøøøÿøøøÿøøøÿzyzÿsssÿgggÿïïïÿøøøÿøøøÿ®®®ÿ£££ÿããäÿîîîÿøøøÿøøøÿœžÿŽŽŽÿihhÿfffÿÜÜÜÿøøøÿøøøÿÐÐÐÿèèèÿ±±±ÿ```ÿ___ÿîîîÿøøøÿøøøÿ¡¡¡ÿ“’“ÿßßßÿìììÿøøøÿøøøÿŒŒŒÿwwxÿEDDÿêêêÿøøøÿøøøÿàààÿ;:;ÿ??@ÿ>=>ÿ??@ÿTSTÿnnnÿqppÿQPRÿOOOÿRRSÿNNNÿKKKÿLLLÿTSTÿLKLÿLKLÿEDDÿEDDÿFFFÿFFFÿFFFÿDCDÿCCCÿCCCÿCCCÿEDDÿGGGÿFFFÿDCDÿEDDÿEDFÿEDFÿEDDÿEDFÿEDDÿEDDÿFFGÿEDFÿEDDÿEDFÿEDDÿEDFÿCCCÿEDDÿEDDÿCCCÿEDDÿFFFÿYX[ÿQPRÿfffÿVVWÿIHJÿWWWÿpopÿmlnÿ__bÿ^^_ÿ```ÿRRRÿEDDÿEDDÿFFFÿDCDÿFFFÿEDFÿFFFÿGGGÿGGGÿFFFÿJJJÿVVVÿcccÿjjjÿfffÿdddÿihhÿcccÿqppÿTTTÿPPPÿkkkÿwvvÿqppÿmllÿrrrÿmllÿtttÿsssÿrrrÿqppÿoooÿtttÿtttÿsssÿmllÿbbbÿ[[[ÿoooÿsssÿqppÿoooÿ^^^ÿNNNÿmlnÿwvvÿqppÿkjkÿ`_`ÿgggÿnnoÿkjkÿffgÿ^\^ÿVVWÿYXZÿOOOÿTSTÿedfÿkjkÿgggÿdddÿfffÿa`bÿQPRÿ[[[ÿQPRÿZZZÿVVVÿ^\^ÿZZZÿXXXÿLLLÿLLLÿLLLÿRRSÿUTVÿ^\^ÿedfÿ^\^ÿYXZÿMLOÿLKLÿIHJÿIHJÿIHJÿMLOÿLKLÿÆÆÇÿøøøÿïïïÿsrsÿmllÿtstÿwvvÿnnoÿÿëëëÿ¶¶¶ÿmllÿoooÿkkkÿhghÿµµµÿøøøÿøøøÿ‘‘‘ÿkjkÿihhÿÿøøøÿøøøÿ¯¯¯ÿ^^^ÿ^^^ÿ[[[ÿøøøÿøøøÿøøøÿihhÿdcdÿgggÿøøøÿøøøÿøøøÿmllÿrrrÿrrrÿrrrÿsssÿsssÿ‚‚‚ÿõõõÿøøøÿøøøÿñññÿzyyÿnopÿoooÿmllÿnnnÿ²²²ÿøøøÿøøøÿàààÿrrrÿoooÿrrrÿrrrÿ   ÿÕÕÕÿtttÿ€€€ÿøøøÿøøøÿøøøÿxxxÿxxxÿxwxÿxwxÿxxxÿxxxÿxxxÿõõõÿøøøÿøøøÿ}}}ÿ™™™ÿìììÿxxxÿzzzÿzzzÿøøøÿøøøÿøøøÿzzzÿyxzÿzzzÿzzzÿøøøÿøøøÿøøøÿxxxÿwwwÿvvvÿøøøÿøøøÿøøøÿLLLÿKKKÿLLLÿxxxÿÌÌÌÿøøøÿøøøÿЉ‰ÿihhÿzxxÿ{{{ÿtttÿtttÿtttÿsssÿoooÿsssÿtstÿmllÿmllÿihhÿkkkÿÑÑÑÿøøøÿøøøÿ”””ÿihhÿnnnÿ£££ÿøøøÿøøøÿøøøÿnnnÿfffÿfffÿêêêÿøøøÿøøøÿtttÿnnnÿ………ÿøøøÿøøøÿøøøÿkkkÿdcdÿa`bÿihhÿõõõÿøøøÿøøøÿkkkÿ‡‡‡ÿêêêÿXXXÿ^\^ÿéééÿøøøÿøøøÿ\\]ÿQPRÿgffÿøøøÿøøøÿøøøÿLKLÿEDDÿCCCÿÃÂÃÿøøøÿøøøÿ§§§ÿDCDÿEDDÿBBCÿCCCÿcccÿpopÿ^\^ÿLLLÿXWYÿRRRÿQPRÿQPRÿUTVÿLKLÿFFGÿEDFÿCCCÿEDDÿFFFÿEDDÿCCCÿCCCÿDCDÿCCCÿEDDÿFFFÿFFGÿEDFÿEDDÿEDDÿEDDÿEDDÿEDDÿEDFÿEDDÿEDDÿEDDÿEDDÿEDDÿEDDÿCCCÿEDDÿEDDÿDCDÿCCCÿGGGÿGGGÿQPRÿNNNÿMLNÿlnoÿqppÿLLLÿmlnÿmllÿhghÿ\\\ÿbbdÿOOOÿCCCÿFFFÿEDFÿEDFÿEDFÿEDFÿFFFÿDFGÿGGGÿGGGÿKKKÿ[[[ÿfffÿqprÿgggÿjjjÿnnnÿmllÿoooÿihhÿoooÿsssÿoooÿihhÿkjkÿtstÿnnnÿjjjÿoooÿwvvÿtttÿqppÿkkkÿihhÿsssÿwvvÿwvvÿqppÿkkkÿsssÿsssÿrrrÿrrrÿrrrÿbbbÿMLNÿnnnÿqppÿkjkÿmllÿnnnÿnnoÿnnnÿihhÿcccÿfffÿQPRÿOOOÿOOOÿZZ[ÿmllÿkjkÿdcdÿmllÿ^^^ÿihhÿkjkÿ^^^ÿoooÿkjkÿoooÿrrrÿoooÿihhÿ___ÿcccÿ`_`ÿcccÿgggÿfffÿa`bÿZZ[ÿ^\^ÿONQÿJJLÿJJLÿFEIÿJJLÿ€‚ÿøøøÿøøøÿ¥¥¦ÿLKLÿZZ[ÿpopÿwvvÿwvvÿkkkÿœœœÿóóóÿ|||ÿrrrÿtttÿrrrÿéééÿøøøÿøøøÿrrrÿkjkÿgggÿvuwÿøøøÿøøøÿåååÿ^\^ÿ```ÿ^^_ÿøøøÿøøøÿøøøÿfffÿbbcÿihhÿøøøÿøøøÿøøøÿkkkÿqppÿoooÿoooÿoooÿqppÿÃÂÂÿøøøÿøøøÿÌÌÌÿÔÓÓÿ²²²ÿpopÿoooÿoooÿoooÿßßßÿøøøÿøøøÿº¹¹ÿnnnÿmllÿoooÿqppÿsssÿtttÿtttÿ€€€ÿøøøÿøøøÿøøøÿxxxÿxwxÿwwwÿxxxÿwwwÿxxxÿxxxÿøøøÿøøøÿøøøÿzzzÿ~~~ÿÖÖÖÿwwwÿzzzÿzzzÿøøøÿøøøÿøøøÿxxxÿzzzÿzzzÿxxxÿøøøÿøøøÿøøøÿwwwÿ{{{ÿnnnÿøøøÿøøøÿøøøÿ^^^ÿGGGÿIHHÿzzzÿ{{{ÿÈÈÈÿøøøÿøøøÿøøøÿõõõÿäääÿ°°°ÿuuuÿsssÿrrrÿtttÿtttÿqppÿihhÿihhÿoooÿgggÿñññÿøøøÿøøøÿonnÿqppÿqppÿ{zzÿøøøÿøøøÿøøøÿgggÿfffÿdddÿ–––ÿòòòÿøøøÿÀÀÀÿvvvÿoooÿøøøÿøøøÿøøøÿfffÿgggÿihhÿgggÿøøøÿøøøÿøøøÿcccÿgggÿÏÏÏÿSSSÿXXXÿˆˆˆÿñññÿøøøÿ´´´ÿMMMÿFEGÿøøøÿøøøÿøøøÿEDDÿBBCÿCCCÿMLLÿŽŽÿ†…†ÿFEFÿDCDÿCCCÿBBCÿ??@ÿa`bÿVVVÿOOOÿ^\^ÿVVVÿRRSÿMLNÿVVWÿQPRÿEDFÿEDDÿBBCÿCCCÿEDFÿEDDÿCCCÿBBCÿCCCÿDCDÿEDDÿEDDÿFFGÿEDDÿFFFÿEDDÿFFFÿEDFÿFFFÿFFFÿFFFÿFFFÿGGGÿHGHÿIHJÿJJKÿIHJÿEDDÿEDDÿFFFÿCCCÿFFGÿFFFÿ^^_ÿTSTÿEDDÿOOOÿrrsÿ[[[ÿQPRÿnnnÿnnnÿmllÿlklÿJJKÿEDFÿFFFÿEDDÿEDDÿEDFÿFFFÿFFFÿGGGÿDFGÿDFGÿNNNÿ\\\ÿnnnÿqppÿtttÿdddÿkkkÿmllÿkkkÿihhÿkkkÿkkkÿqppÿoooÿkjkÿoooÿnnnÿoooÿsssÿnnnÿjjjÿmllÿmllÿdddÿfffÿnnnÿZZ[ÿcccÿihhÿoooÿmllÿjjjÿsssÿqppÿcccÿQPRÿRRSÿVVWÿa`bÿXWYÿWWWÿ^\^ÿ`_`ÿ^^^ÿ`_`ÿdcdÿXXXÿTTTÿXXXÿTSTÿLLLÿcccÿ`_`ÿYXZÿedfÿdcdÿihhÿmllÿgggÿ^^^ÿkkkÿoooÿsssÿrrrÿrrrÿnnnÿgggÿcccÿgggÿgggÿfffÿdcdÿ^\^ÿRRSÿJJLÿLKNÿLKNÿFEIÿHGHÿÁÁÂÿøøøÿøøøÿvuxÿBBCÿIHHÿ`_`ÿqppÿwvvÿoooÿonnÿíííÿ¥¤¤ÿsssÿwvvÿtstÿöööÿøøøÿøøøÿrqqÿgggÿgggÿjiiÿøøøÿøøøÿöööÿ^^^ÿihhÿihhÿøøøÿøøøÿøøøÿcccÿbbbÿfffÿøøøÿøøøÿøøøÿnnnÿqppÿoooÿmllÿoooÿÿöööÿøøøÿøøøÿˆˆˆÿ™™™ÿíííÿsssÿoooÿoooÿnnnÿãããÿøøøÿøøøÿøøøÿøøøÿøøøÿøøøÿøøøÿøøøÿöööÿtttÿ€€€ÿøøøÿøøøÿøøøÿƒƒƒÿwwwÿwwwÿwwwÿxxxÿxxxÿxwxÿøøøÿøøøÿøøøÿxxxÿxxxÿwwwÿrrsÿyxzÿyxzÿøøøÿøøøÿøøøÿxxxÿzzzÿxxxÿyxzÿøøøÿøøøÿøøøÿzzzÿoooÿrrrÿøøøÿøøøÿøøøÿ}||ÿ{{{ÿzzzÿ{{{ÿÁÁÁÿøøøÿøøøÿ³²²ÿqqrÿ±±±ÿøøøÿøøøÿºººÿrrrÿoooÿqppÿqppÿmllÿgggÿkkkÿmllÿgggÿõõõÿøøøÿøøøÿpppÿkjkÿqppÿrqrÿøøøÿøøøÿøøøÿa`bÿdddÿihhÿnnnÿyyyÿª©©ÿÔÔÔÿðððÿÙÙÙÿøøøÿøøøÿøøøÿedfÿgggÿgggÿfffÿøøøÿøøøÿøøøÿ___ÿ[[[ÿ[[[ÿXXXÿVVVÿUTVÿbabÿ›››ÿËËËÿîîîÿÒÒÒÿøøøÿøøøÿøøøÿCCCÿEDDÿBBCÿDCDÿBBCÿDCDÿDCDÿEDDÿCCCÿDCDÿCCCÿCCCÿNNNÿ\[\ÿZZZÿXWYÿPOQÿNNOÿJJJÿEDFÿCCCÿEDDÿFFGÿIHHÿFFFÿEDDÿFFGÿIHJÿIHHÿFFFÿDCDÿCCCÿFFFÿEDDÿEDDÿEDFÿEDFÿFFFÿEDFÿEDFÿEDDÿFFFÿEDFÿEDDÿFFFÿGGGÿIHHÿFFFÿEDDÿDCDÿEDDÿEDDÿXWYÿQPRÿFFFÿGGGÿJJJÿTSTÿLLLÿmllÿqprÿmlnÿihhÿOOOÿDCDÿBCDÿEDDÿEDDÿFFFÿEDFÿFFFÿFFFÿEDDÿGHJÿRRRÿcccÿnnnÿdddÿqprÿrrsÿcccÿgggÿbbbÿcccÿbbbÿmllÿoooÿoooÿ___ÿnnnÿrrrÿ^\^ÿnnnÿtstÿwvvÿjjjÿmllÿsssÿihhÿihhÿpopÿihhÿZZZÿTTTÿihhÿ\\\ÿcccÿqppÿnnnÿfffÿWWWÿVVWÿIHHÿJJJÿBBBÿNNNÿXWYÿgggÿ^^^ÿihhÿdddÿQPRÿRRSÿgggÿa`bÿQPRÿcccÿXXXÿOOOÿgggÿihhÿcccÿfffÿkjkÿgggÿihhÿqppÿsssÿtstÿrrrÿpopÿrrrÿoooÿfffÿdddÿihhÿhghÿTSTÿLKNÿJJLÿIHJÿJJLÿIHJÿFFGÿçççÿøøøÿøøøÿ[Z]ÿJJLÿMLNÿQPRÿlklÿtstÿoooÿmllÿÿuuuÿwvvÿtstÿsssÿçççÿøøøÿøøøÿxwxÿmllÿkkkÿtttÿøøøÿøøøÿäääÿnnnÿkkkÿihhÿøøøÿøøøÿøøøÿwvwÿjjjÿhhhÿøøøÿøøøÿøøøÿcccÿnnnÿlklÿmllÿoooÿÄÄÄÿøøøÿøøøÿÑÑÑÿkkkÿpppÿèèèÿ¨¨¨ÿnnnÿoooÿnnnÿÇÇÇÿøøøÿøøøÿ½½½ÿqqqÿqqqÿzyyÿøøøÿøøøÿæææÿrrsÿÿøøøÿøøøÿøøøÿÿwwwÿzzzÿÿyyyÿvvwÿwwwÿøøøÿøøøÿøøøÿxxxÿzzzÿutvÿwwwÿxxxÿyxzÿøøøÿøøøÿøøøÿzzzÿxxxÿwwwÿzzzÿøøøÿøøøÿøøøÿ~~~ÿxwxÿ{{{ÿøøøÿøøøÿøøøÿ{{{ÿzzzÿyxzÿ{{{ÿòòòÿøøøÿøøøÿzzzÿkkkÿuuuÿøøøÿøøøÿïïïÿmllÿihhÿoooÿjjjÿihhÿmllÿihhÿmllÿffgÿáààÿøøøÿøøøÿÿnnnÿjjjÿ~~~ÿøøøÿøøøÿøøøÿbbbÿdddÿkkkÿ‘ÿÔÔÔÿ¯®®ÿgggÿnnnÿ‡†‡ÿøøøÿøøøÿøøøÿ^\^ÿbbbÿbbbÿ```ÿøøøÿøøøÿøøøÿ[[[ÿ[[[ÿ[[[ÿVVVÿUTVÿ{{{ÿÊÊÊÿ›››ÿEDDÿPOPÿsstÿøøøÿøøøÿøøøÿDCDÿDCDÿCCCÿBBCÿCCCÿCCCÿCCCÿDCDÿDCDÿBBCÿEDDÿLKLÿ^^_ÿVVVÿZZZÿTTTÿRRSÿEDFÿLKLÿEDDÿBBCÿIHJÿJJJÿMLNÿNNOÿJJJÿJJJÿGGGÿFFFÿCCCÿBBCÿEDDÿFFGÿEDDÿDCDÿEDFÿDCDÿEDFÿFFFÿEDFÿFFFÿFFFÿEDFÿGGGÿEDFÿIHJÿRRRÿEDDÿDCDÿDCDÿDCDÿMLNÿZZZÿDCDÿIHHÿGGGÿZZZÿkkkÿihhÿ___ÿNNNÿGGGÿFFFÿEDDÿEDDÿEDDÿEDDÿEDFÿEDFÿEDFÿEDFÿGGGÿGHJÿTTTÿgggÿhklÿQPRÿgggÿqprÿihhÿVVVÿihhÿihhÿmllÿfffÿnnnÿihhÿcccÿVVVÿgggÿoooÿihhÿkjkÿqppÿqppÿmllÿfffÿmllÿqppÿnnnÿqppÿoooÿ^^_ÿVVVÿVVWÿRRSÿ```ÿihhÿmllÿoooÿkjkÿ^^_ÿPOQÿVVWÿCCCÿJJJÿZZ[ÿnnnÿ^^^ÿJJJÿ^^^ÿOOOÿZZZÿmllÿa`bÿa`bÿgggÿTSTÿRRSÿgggÿihhÿcccÿ`_`ÿfffÿcccÿkjkÿrrrÿrrrÿrrrÿtstÿrrrÿqppÿtstÿpopÿkjkÿihhÿQPRÿJJLÿJJLÿIHJÿIHJÿLKNÿJJLÿGGJÿöööÿøøøÿøøøÿQPSÿMLNÿJJLÿLKLÿ`_`ÿnnoÿoooÿihhÿoooÿnnnÿkkkÿoooÿoooÿ´´´ÿøøøÿøøøÿ”””ÿihhÿihhÿ‹‹‹ÿøøøÿøøøÿªªªÿkkkÿhghÿmmmÿøøøÿøøøÿøøøÿµµµÿqppÿ‡‡ˆÿøøøÿøøøÿñññÿmllÿlklÿmllÿnnnÿ‚‚‚ÿöööÿøøøÿøøøÿÿkkkÿmllÿ¯®®ÿçççÿpooÿnnnÿmllÿ‹‹‹ÿ÷÷÷ÿøøøÿÖÖÖÿqppÿnnnÿ{{{ÿøøøÿøøøÿ¼¼¼ÿrrrÿ€€€ÿøøøÿøøøÿöööÿÊÊÊÿutvÿÛÛÛÿøøøÿÜÜÜÿxxxÿvvvÿøøøÿøøøÿøøøÿxwxÿxwxÿwwwÿxxxÿxxxÿyyyÿøøøÿøøøÿøøøÿvvvÿvvvÿxwwÿyyyÿøøøÿøøøÿøøøÿ¹¹¹ÿtttÿ•••ÿøøøÿøøøÿòòòÿzzzÿzzzÿnnnÿwvvÿìëëÿøøøÿøøøÿyyyÿrrsÿzzzÿøøøÿøøøÿîîîÿihhÿcccÿcccÿbbbÿihhÿcccÿgggÿbbcÿihhÿ­¬­ÿøøøÿøøøÿ©©©ÿqppÿkkkÿ¨§§ÿøøøÿøøøÿøøøÿcccÿdddÿ^^_ÿÛÛÛÿøøøÿöööÿgggÿcccÿdceÿøøøÿøøøÿòòòÿ```ÿ___ÿ^\^ÿ```ÿøøøÿøøøÿøøøÿXXXÿYXZÿOOOÿNNNÿIHHÿÕÕÕÿøøøÿöööÿNNNÿJJJÿIHHÿøøøÿøøøÿðððÿDCDÿCCCÿBBCÿBBCÿBBCÿBBCÿBBCÿBBCÿEDDÿDCDÿDCDÿFFFÿGGGÿZZ[ÿYXZÿVVWÿLKLÿLKLÿLKLÿCCCÿJJJÿJJJÿJJJÿJJJÿIHHÿEDDÿCCCÿBBCÿCCCÿBBCÿBBCÿEDDÿFFFÿEDFÿEDDÿEDDÿEDFÿDCDÿFFFÿFFFÿGGGÿIHHÿJJJÿIHHÿPPPÿ[[[ÿPOQÿGGGÿDCDÿEDDÿFFGÿdcdÿFFGÿFFFÿFFFÿEDFÿKKKÿGGGÿFFFÿEDDÿEDDÿFFFÿEDDÿEDDÿFFFÿEDFÿDFGÿEDDÿFFFÿFFFÿDFGÿJJKÿ^^^ÿlnoÿ\\\ÿGHJÿ\\\ÿoooÿmllÿvvvÿihhÿgggÿnnnÿqppÿjjjÿgggÿfffÿZZZÿTTTÿmllÿoooÿmllÿkkkÿkkkÿqppÿmllÿcccÿXXXÿqppÿtstÿqppÿkjkÿgggÿZZ[ÿMLNÿDCDÿYXZÿ`_`ÿa`bÿcccÿ^\^ÿOOOÿQPRÿUTVÿBBCÿJJJÿMLNÿfffÿihhÿQPRÿNNNÿWWWÿbbbÿkjkÿa`bÿcccÿYXZÿLKLÿMLOÿXXXÿcccÿcccÿ^\^ÿ^^_ÿZZ[ÿgggÿrrrÿqppÿtstÿtstÿqppÿrrrÿqppÿkjkÿVVWÿLKLÿLKLÿLKNÿONQÿLKLÿLKLÿLKLÿJJLÿIHJÿóóóÿøøøÿøøøÿNMPÿJJLÿJJLÿJJLÿSRTÿffgÿnnoÿnnoÿihhÿkkkÿnnoÿqppÿqppÿtssÿÐÐÐÿøøøÿÛÛÛÿuuuÿpppÿÔÔÔÿøøøÿËËËÿhhhÿfffÿkkkÿ„„„ÿøøøÿøøøÿøøøÿÏÏÏÿàààÿðððÿøøøÿøøøÿËËËÿnnnÿmllÿqppÿonnÿËËËÿøøøÿøøøÿâââÿqppÿqppÿmllÿœ›ÿøøøÿ·¶¶ÿlllÿmllÿnnnÿ­­­ÿøøøÿøøøÿ   ÿrrrÿ¹¹¹ÿøøøÿäääÿzyyÿqppÿ”””ÿøøøÿøøøÿÖÖÖÿáááÿŸž ÿòòòÿøøøÿøøøÿ‹‹‹ÿˆˆˆÿøøøÿøøøÿøøøÿˆˆˆÿЉ‰ÿ€€ÿrrrÿvvvÿˆˆˆÿøøøÿøøøÿøøøÿvvvÿvvvÿvvvÿ‹‹‹ÿøøøÿøøøÿøøøÿÑÑÑÿâââÿñññÿøøøÿøøøÿÏÏÏÿxxxÿwwwÿxxxÿkkkÿ§§§ÿøøøÿøøøÿ®®®ÿuuuÿ¬¬¬ÿøøøÿøøøÿ¥¤¥ÿ”””ÿ‹‹‹ÿgggÿ^^_ÿcccÿ```ÿ\\\ÿ[[[ÿ```ÿqpqÿßßßÿøøøÿðððÿ©©©ÿ§¦¦ÿìììÿøøøÿøøøÿøøøÿfffÿ```ÿ^^_ÿ³²³ÿøøøÿøøøÿ}||ÿhhhÿ¢¢¢ÿøøøÿøøøÿÀÀÀÿ^^^ÿ^\^ÿdddÿqqqÿøøøÿøøøÿøøøÿllmÿfffÿSSSÿ@@@ÿBBCÿ§§§ÿøøøÿøøøÿ```ÿHGGÿ‘ÿøøøÿøøøÿ···ÿDCDÿCCCÿCCCÿCCCÿCCCÿBBCÿCCCÿBBCÿCCCÿCCCÿBBCÿCCCÿCCCÿDCDÿPOQÿLKLÿCCCÿIHJÿIHHÿJJJÿLKLÿJJJÿMLNÿIHJÿEDDÿBBCÿCCCÿBBCÿ@@@ÿEDDÿCCCÿCCCÿEDDÿGGGÿJJJÿJJJÿLKLÿJJKÿIHHÿGGGÿFFFÿKKKÿQPRÿ```ÿ\\\ÿ`_`ÿJJKÿFFFÿFFFÿEDDÿ[[[ÿLKLÿGGGÿEDFÿCCCÿDCDÿFFGÿIHHÿNNNÿFFFÿEDDÿCCCÿFFFÿEDDÿFFFÿEDDÿEDDÿFFFÿFFFÿFFFÿLLLÿcccÿnopÿUTVÿJJJÿSSSÿbbbÿmllÿtttÿvvvÿoooÿwvvÿtttÿnnnÿihhÿfffÿ^^^ÿihhÿcccÿjjjÿrrrÿmllÿnnnÿnnnÿgggÿihhÿkkkÿmllÿ___ÿTTTÿOOOÿMLOÿIHJÿDCDÿJJJÿFFGÿGGGÿYXZÿ^\^ÿcccÿTSTÿJJJÿYXZÿQPRÿEDFÿJJJÿMLNÿLLLÿfffÿbbbÿOOOÿbbbÿmllÿ```ÿOOOÿJJJÿCCCÿGGGÿLKLÿJJJÿTSTÿPOQÿOOOÿJJJÿOOOÿfffÿRRRÿfffÿoooÿkjkÿcccÿ^^_ÿYXZÿ[[[ÿYXZÿ\[\ÿXWYÿUTWÿSRTÿMLNÿLKLÿJJLÿJJLÿIHJÿÝÝÝÿøøøÿøøøÿXWZÿMLOÿLKNÿLKNÿLKLÿZZ[ÿhghÿihhÿ§§§ÿ{zzÿqppÿqppÿqppÿkkkÿkjjÿ¦¦¦ÿÛÛÛÿóóóÿôôôÿÚÚÚÿ£££ÿgggÿihhÿfffÿ¸¸¸ÿøøøÿøøøÿøøøÿøøøÿuttÿÉÉÉÿóóóÿðððÿÆÆÆÿwvvÿjjjÿqppÿmllÿÔÔÔÿøøøÿøøøÿøøøÿøøøÿÖÕÖÿrrrÿÒÒÒÿøøøÿøøøÿøøøÿÑÑÑÿoooÿqppÿoooÿ“’”ÿÐÐÐÿïïïÿöööÿèçèÿ½¼¼ÿxxxÿoooÿÆÆÆÿøøøÿøøøÿøøøÿÓÓÓÿÿÎÎÎÿðððÿðððÿ¹¹¹ÿ¢¢¢ÿöööÿøøøÿøøøÿøøøÿøøøÿøøøÿ¼¼¼ÿoooÿ™™šÿøøøÿøøøÿøøøÿøøøÿdcdÿgggÿ»º»ÿøøøÿøøøÿøøøÿøøøÿ|||ÿÍÍÍÿóóóÿñññÿËËËÿ‚‚‚ÿzxxÿxxxÿxwwÿwwwÿxwwÿ™˜˜ÿÐÐÑÿíííÿöööÿôôôÿéééÿõõõÿ   ÿøøøÿõõõÿqqqÿmllÿjjjÿfffÿ\[\ÿ___ÿ^^^ÿihhÿkkkÿ¾¾¾ÿîîîÿôôôÿÖÖÖÿ‰‰‰ÿøøøÿøøøÿøøøÿjjjÿXXXÿ\\\ÿdddÿ¢¢¢ÿ×××ÿïïïÿöööÿðððÿØØØÿ¤¢¤ÿa_aÿ^\^ÿXXXÿÿöööÿøøøÿøøøÿøøøÿøøøÿøøøÿ¤£¤ÿBBCÿCCCÿGFHÿŽŽÿÏÏÏÿíííÿöööÿîîîÿÒÒÒÿ–••ÿFFGÿBBCÿFFGÿEDDÿEDDÿDCDÿCCCÿBBCÿBBCÿBBCÿBBBÿBBBÿCCCÿCCCÿCCCÿCCCÿGGGÿEDDÿGGGÿIHHÿPOQÿGGGÿIHJÿFFGÿBBCÿ@@@ÿBBCÿBBCÿ@@@ÿBBBÿEDDÿEDFÿLKLÿNNNÿLKLÿHGHÿFFFÿEDDÿDCDÿEDDÿIHHÿFFFÿHGHÿ[[[ÿ^\^ÿSSSÿUTVÿHGHÿFFFÿEDDÿFFFÿFFGÿEDDÿEDDÿEDDÿKKKÿUTVÿhghÿnnnÿIHHÿCCCÿEDDÿCCCÿEDDÿEDFÿEDDÿFFFÿEDDÿFFFÿDFGÿVVVÿihhÿklnÿRRRÿDFGÿGGGÿNNNÿ^^_ÿsssÿvvvÿlklÿwvvÿrrrÿsssÿwvvÿmllÿdddÿ[[[ÿmllÿrrrÿihhÿkkkÿgggÿoooÿqppÿgggÿdddÿdddÿihhÿUTVÿUTVÿNNOÿMLOÿFFGÿDCDÿ\[\ÿHGHÿIHJÿMLNÿJJJÿTSTÿQPRÿRRSÿfffÿXWYÿ^\^ÿa`bÿOOOÿNNNÿOOOÿfffÿXXXÿRRRÿZZZÿ`_`ÿ```ÿWWWÿVVWÿmlnÿONQÿMLNÿMLNÿMLOÿMLNÿLKLÿHGHÿPOQÿJJJÿQPRÿkjkÿLLLÿVVWÿihhÿbbcÿbbcÿcccÿa`bÿXWYÿQPRÿLKNÿMLNÿLKLÿLKLÿLKNÿMLOÿ°°±ÿøøøÿøøøÿporÿMLOÿMLOÿMLOÿJJLÿLKLÿYXZÿÿøøøÿ€ÿoooÿoooÿmllÿihhÿihhÿoooÿnnnÿfffÿgggÿkjkÿgggÿfffÿfffÿdddÿkjkÿcccÿcccÿnnoÿoooÿihhÿihhÿgggÿffgÿihjÿcccÿkkkÿoooÿjjjÿkkkÿqppÿsssÿsssÿrrrÿrrrÿrrrÿqppÿrrrÿqprÿqprÿqppÿrrrÿsssÿrrrÿmlnÿoooÿnnoÿqppÿqppÿnnnÿnopÿqppÿqppÿqppÿrrrÿrrrÿtttÿvvvÿutvÿtttÿutvÿutvÿvvvÿ‚‚‚ÿÐÐÐÿøøøÿøøøÿwvvÿutvÿutvÿtttÿkkkÿvvvÿqppÿvvwÿxwxÿzzzÿzzzÿ{{{ÿzzzÿzxxÿzzzÿtstÿzzzÿzzzÿqppÿxxxÿgggÿtttÿzzzÿxxxÿxxxÿxwxÿxwwÿxwwÿtttÿsssÿqppÿcccÿbbcÿ’’’ÿÛÛÛÿöööÿÚÚÚÿlllÿihhÿfffÿgggÿdddÿhghÿdcdÿ^^^ÿZZ[ÿ^\^ÿ^\^ÿcccÿ```ÿcccÿøøøÿøøøÿøøøÿdddÿ^\^ÿ^\^ÿcccÿedfÿfffÿcccÿcccÿ___ÿ^\^ÿ\[\ÿWWWÿTTTÿJJJÿFFFÿTTTÿÁÁÁÿøøøÿøøøÿFFFÿGGGÿ@@@ÿEDDÿEDDÿEDDÿEDFÿEDDÿEDDÿDCDÿEDDÿDCDÿCCCÿEDDÿEDDÿEDDÿDCDÿCCCÿEDDÿDCDÿCCCÿCCCÿCCCÿEDDÿEDDÿCCCÿCCCÿBBBÿBBCÿDCDÿFFFÿFFGÿLKLÿLLLÿLLLÿFFGÿCCCÿBBCÿCCCÿBBCÿCCCÿEDDÿMLNÿUTVÿNNNÿFFFÿEDDÿEDFÿDCDÿEDDÿEDDÿEDDÿFFFÿIHJÿHGHÿGGGÿOOOÿIHHÿJJJÿIHHÿGGGÿFFFÿFFGÿKKKÿGGGÿDCDÿFFFÿEDDÿPPPÿTTTÿmllÿXWYÿFFFÿEDDÿEDDÿEDFÿFFFÿFFFÿEDDÿEDDÿEDDÿFFFÿ\\\ÿnnnÿklnÿXXXÿPPPÿTTTÿnnnÿVVVÿa`bÿgggÿihhÿ[[[ÿoooÿqppÿkkkÿqppÿcccÿ```ÿjjjÿmllÿqppÿoooÿnnnÿoooÿmllÿkkkÿqppÿnnnÿqppÿkjkÿ[[[ÿ^\^ÿTSTÿONQÿMLOÿLKNÿddgÿ``dÿONQÿJJLÿLKLÿMLNÿMLNÿ\[\ÿ^\^ÿdddÿnnnÿpopÿgggÿRRSÿNNNÿa`bÿYXZÿ^\^ÿtstÿpopÿqppÿoooÿnnnÿ^\^ÿONQÿTSTÿLKLÿJJLÿMLNÿMLOÿMLOÿXWYÿLKLÿedfÿkjkÿnnnÿmlnÿkjkÿmllÿkjkÿfffÿ\[\ÿPOQÿLKLÿLKLÿMLNÿLKLÿJJJÿLKNÿLKNÿiikÿ÷÷÷ÿøøøÿœžÿMLOÿONQÿONQÿMLOÿHGHÿMLOÿ»»¼ÿøøøÿsrtÿdddÿoooÿmllÿgggÿgggÿdcdÿkjkÿkjkÿihhÿihhÿgggÿgggÿcccÿfffÿ```ÿ^^_ÿfffÿcccÿdddÿfffÿcccÿbbbÿgggÿkjkÿmllÿmllÿrrrÿsssÿqppÿsssÿrrrÿoooÿoooÿihhÿ^^_ÿpopÿqprÿqppÿqppÿqppÿqprÿoooÿihhÿijkÿmllÿnnnÿrrrÿpopÿmllÿnopÿqppÿqppÿtttÿtttÿqppÿsssÿtttÿstvÿvvvÿtttÿvvvÿvvvÿvvvÿ{zzÿçççÿøøøÿwwwÿvvwÿsssÿxxxÿxxxÿwwwÿ|{}ÿ£££ÿ~~~ÿxwxÿ{{{ÿyxzÿwwwÿsssÿtttÿtttÿzzzÿzzzÿrrrÿmllÿzzzÿqppÿzzzÿzzzÿxwwÿxwwÿvvwÿwvvÿtstÿtttÿrrrÿZZZÿ```ÿihhÿkkkÿihhÿgggÿihhÿihhÿpopÿkjkÿdddÿdcdÿcccÿbbbÿgggÿfffÿgggÿdddÿ___ÿkkkÿøøøÿøøøÿøøøÿbbbÿXXXÿ^\^ÿa`bÿcccÿcccÿcccÿ^\^ÿ^\^ÿWWWÿQPRÿGGGÿFFFÿEDDÿFFFÿFFGÿMMMÿáááÿøøøÿGGGÿFFFÿBBCÿEDDÿCCCÿCCCÿFFFÿDCDÿDCDÿDCDÿCCCÿEDDÿCCCÿCCCÿCCCÿCCCÿEDDÿCCCÿCCCÿCCCÿCCCÿCCCÿBBCÿDCDÿDCDÿBBCÿDCDÿCCCÿDCDÿCCCÿCCCÿEDFÿLKLÿPPPÿGGGÿFFFÿJJJÿPOQÿMLNÿOOOÿRRSÿUTVÿKKKÿBBBÿBBCÿ@@@ÿEDDÿDCDÿCCCÿDCDÿEDDÿEDDÿDCDÿFFGÿGGGÿHGHÿKKKÿFFFÿGGGÿGGGÿFFFÿEDFÿXXXÿNNOÿFFFÿDCDÿEDDÿGGGÿQPRÿkjkÿkkkÿEDDÿCCCÿEDDÿEDDÿEDDÿEDFÿFFFÿEDDÿGGGÿNNNÿdghÿnnnÿhklÿcccÿOOOÿPPPÿPPPÿghjÿoooÿlnoÿdghÿLLLÿXXXÿqppÿoooÿmllÿjjjÿ___ÿcccÿgggÿnnnÿqppÿdddÿ```ÿfffÿ___ÿqppÿqppÿnnoÿoooÿkjkÿ^\^ÿZZ[ÿUTWÿQPRÿMLOÿSRTÿ\[^ÿZZ\ÿQPRÿLKLÿLKNÿLKLÿMLNÿMLNÿQPRÿ`_`ÿmllÿpopÿmlnÿkjkÿOOOÿcccÿihhÿgggÿmllÿoooÿnnnÿmlnÿfffÿQPRÿ^^`ÿZZ\ÿLKNÿJJJÿONQÿVVYÿ\[\ÿdcdÿMLOÿTSTÿnnoÿoooÿkkkÿtstÿrrrÿgggÿUTVÿOOOÿPOQÿPOQÿPOQÿQPRÿJJLÿMLNÿLKLÿJJLÿJJLÿ¨¨¨ÿøøøÿåååÿXXZÿONQÿMLOÿSRTÿSRTÿ}|~ÿøøøÿøøøÿfegÿ```ÿbbbÿcccÿcccÿdcdÿgggÿkjkÿdcdÿgggÿkjkÿgggÿfffÿ___ÿ^\^ÿ^\^ÿbbbÿgggÿihhÿkjkÿgggÿ___ÿ`_`ÿcccÿihhÿkkkÿjjjÿsssÿqppÿqppÿrrrÿrrrÿkkkÿnnnÿoooÿrrrÿoooÿoooÿoooÿoooÿnnnÿlnoÿnnoÿjjjÿmllÿkjkÿihhÿoooÿlklÿnnnÿoooÿqppÿoooÿsssÿstvÿrrrÿsssÿrrrÿsssÿtttÿtttÿvvvÿvvvÿvvvÿvvvÿ³³³ÿøøøÿvvvÿkkkÿxwwÿxxxÿwwwÿwwwÿÛÛÛÿøøøÿÙÙÙÿtttÿqprÿrrrÿrrrÿxxxÿxxxÿzzzÿxxxÿxxxÿxxxÿtttÿwwwÿzzzÿxxxÿzxxÿzzzÿwvvÿtttÿtttÿtttÿtttÿsssÿ^^^ÿ```ÿjjjÿkkkÿihhÿihhÿihhÿoooÿnnnÿgggÿfffÿfffÿgggÿfffÿmllÿihhÿmllÿfffÿgggÿjiiÿøøøÿøøøÿøøøÿkjkÿihhÿcccÿ___ÿVVVÿ^\^ÿ\[\ÿ[[[ÿVVVÿGGGÿGGGÿFFGÿGGGÿFFFÿFFGÿFFFÿGGGÿ››œÿøøøÿFFGÿ@@@ÿ??@ÿBBCÿCCCÿCCCÿFFFÿFFFÿEDDÿEDDÿEDDÿEDDÿCCCÿCCCÿDCDÿCCCÿCCCÿCCCÿBBCÿCCCÿEDDÿDCDÿCCCÿDCDÿDCDÿCCCÿBBCÿBBCÿDCDÿEDDÿCCCÿEDDÿFFGÿMLNÿRRSÿTTTÿMLNÿCCCÿ@@@ÿMLNÿOOOÿBBCÿBBCÿCCCÿBBCÿBBCÿDCDÿDCDÿEDDÿEDFÿEDFÿEDFÿEDFÿHGHÿFFGÿHGHÿHGHÿMLNÿJKLÿFFFÿEDDÿJJKÿ^^^ÿIHHÿGGGÿFFFÿEDDÿKKKÿ^^_ÿoooÿLLLÿEDDÿDCDÿEDDÿEDDÿFFGÿHGHÿIHJÿPOQÿWWWÿgggÿgggÿhklÿbbbÿSSSÿOOOÿDFGÿIHHÿnnnÿsssÿoooÿOOOÿJJJÿSSSÿoooÿqppÿnnnÿmllÿkkkÿjjjÿkkkÿjjjÿjjjÿcccÿbbbÿcccÿgggÿkjkÿkkkÿfffÿoooÿihhÿ`_`ÿVVVÿYXZÿRRRÿMLOÿUTVÿ^\^ÿTSTÿXWYÿQPRÿMLNÿJJJÿLKNÿLKLÿLKLÿMLNÿ`_`ÿmlnÿnnoÿnnnÿdcdÿihhÿmllÿ```ÿfffÿkjkÿkjkÿhghÿgggÿYXZÿkjkÿgggÿVVWÿLKLÿMLNÿihjÿcccÿkjkÿTTTÿQPRÿmllÿkjkÿrrrÿnnnÿ^\^ÿVVVÿ^\^ÿfffÿmllÿgggÿedfÿkjkÿ^\^ÿLKLÿLKNÿLKNÿLKNÿKJLÿ³²³ÿøøøÿÒÒÒÿporÿONQÿllpÿ®­®ÿòòòÿøøøÿøøøÿTSTÿNNNÿPOQÿYXZÿVVWÿa`bÿedfÿffgÿihhÿkjkÿ^\^ÿXXXÿ[[[ÿ```ÿ^^^ÿ`_`ÿcccÿ^\^ÿdcdÿffgÿcccÿ___ÿbbbÿcccÿgggÿfffÿihhÿoooÿoooÿoooÿnnnÿdddÿsssÿsssÿrrrÿrrrÿoooÿcccÿoooÿmlnÿijkÿkkkÿkkkÿmllÿnnoÿoooÿmlnÿoooÿnnnÿmllÿnnnÿoooÿqprÿsssÿtttÿrrrÿsssÿrrrÿsssÿtttÿtttÿsstÿtttÿtttÿtttÿÿÙÙÙÿmlnÿsssÿwwwÿwvvÿtttÿutvÿôôôÿøøøÿóóóÿvvvÿtttÿwwwÿtttÿqprÿzxxÿzxxÿyxzÿtttÿxxxÿzzzÿzzzÿzzzÿwwwÿxxxÿxxxÿxwwÿsssÿtttÿsssÿsssÿzxxÿmllÿihhÿihhÿkkkÿihhÿihhÿihhÿkkkÿmllÿmllÿgggÿedfÿihhÿnnnÿihhÿ___ÿgggÿkjkÿdddÿ|||ÿøøøÿøøøÿøøøÿ___ÿbbbÿ^\^ÿ`_`ÿ^\^ÿZZ[ÿRRSÿMLNÿ@@@ÿBBCÿIHHÿGGGÿGGGÿGGGÿHGHÿGGGÿHGHÿmlmÿÏÏÏÿGGGÿ<<<ÿEDDÿCCCÿEDDÿCCCÿEDFÿEDDÿEDDÿEDDÿEDDÿEDDÿCCCÿDCDÿEDDÿCCCÿCCCÿCCCÿCCCÿBBBÿBBCÿBBCÿCCCÿBBCÿDCDÿCCCÿDCDÿBBCÿCCCÿEDDÿDCDÿCCCÿBBCÿIHJÿJJJÿ>=>ÿEDDÿOOOÿMLNÿFFFÿBBBÿBBBÿBBBÿCCCÿBBBÿBBCÿEDFÿEDFÿEDFÿFFFÿFFGÿGGGÿIHJÿNNOÿRRSÿLKLÿJJKÿMLNÿGGGÿDCDÿEDDÿRRRÿLLLÿLLLÿFFFÿEDDÿFFGÿPOQÿZZZÿPOQÿCCCÿEDDÿDCDÿDCDÿHGHÿMLNÿ^\^ÿihhÿijkÿihhÿcccÿnnnÿcccÿIHHÿ@@@ÿEDDÿDFGÿ[[[ÿsssÿoooÿdghÿTTTÿMLNÿ[[[ÿmllÿkkkÿihhÿmllÿnnnÿdddÿgggÿkjkÿcccÿdddÿ[[[ÿZZ[ÿihhÿgggÿjjjÿgggÿjjjÿdcdÿa`bÿ^\^ÿRRRÿTSTÿQPRÿUTVÿVVWÿRRRÿMLNÿMLOÿMLOÿMLOÿMLOÿMLOÿMLNÿLKNÿMLNÿXWYÿkjkÿnnnÿnnoÿpopÿoooÿfffÿkjkÿa`bÿcccÿbbbÿffgÿnnoÿmllÿa`bÿ`_`ÿMLNÿUTVÿkjkÿfffÿoooÿdddÿVVWÿbbbÿgggÿbbbÿRRRÿZZ[ÿcccÿdddÿihhÿihjÿcccÿcccÿfffÿbbcÿQPRÿLKNÿLKNÿHGHÿLKNÿMLOÿzz|ÿÁÁÂÿééêÿöööÿîîîÿÐÐÐÿš™šÿ¤¤§ÿ÷÷÷ÿcbdÿVVWÿXWYÿkjkÿihhÿpopÿmlnÿqppÿtstÿpopÿa`bÿcccÿfffÿZZ[ÿUTVÿUTVÿZZ[ÿXWYÿ^\^ÿffgÿedfÿbbbÿ___ÿcccÿcccÿbbbÿbbbÿnnnÿoooÿnnnÿkkkÿgggÿqppÿrrrÿrrrÿqppÿoooÿdcdÿmllÿjjjÿihhÿjjjÿjjjÿjjjÿmllÿoooÿoooÿqppÿnnnÿmllÿmllÿoooÿoooÿrrrÿsssÿrrrÿsssÿrrrÿrrrÿsssÿsstÿsstÿtttÿtttÿtttÿtttÿtstÿnnoÿwwwÿvvvÿtttÿvvvÿtttÿ¶¶¶ÿóóóÿ´´´ÿvvwÿrrrÿwwwÿvvwÿqppÿrrrÿutvÿxxxÿwwwÿwvvÿzzzÿzzzÿzzzÿzxxÿwvvÿtttÿtstÿtttÿvvwÿsssÿtstÿtstÿgggÿihhÿmllÿihhÿcccÿbbcÿa`bÿihhÿmlnÿgggÿfffÿjjjÿihhÿihhÿihhÿ```ÿnnnÿnnnÿçççÿøøøÿøøøÿøøøÿøøøÿfffÿ```ÿ^\^ÿVVVÿRRRÿPPPÿRRSÿIHHÿEDDÿBBCÿ>=>ÿ<<<ÿBBBÿFFFÿFFFÿHGHÿGGGÿGGGÿFFGÿFFFÿ??@ÿFFFÿCCCÿCCCÿDCDÿCCCÿCCCÿEDDÿDCDÿCCCÿCCCÿBBCÿBBCÿCCCÿBBCÿCCCÿBBCÿBBCÿCCCÿBBCÿCCCÿCCCÿCCCÿBBCÿCCCÿBBCÿDCDÿCCCÿCCCÿCCCÿCCCÿBBCÿCCCÿCCCÿ@@@ÿCCCÿBBBÿBBCÿA@BÿA@BÿBBCÿCCCÿFFFÿKKKÿOOOÿNNNÿLKLÿFFFÿIHHÿKKKÿUTVÿ^\^ÿ___ÿ\\\ÿTTTÿBCDÿDFGÿFFFÿ@@@ÿJJKÿDFGÿEDDÿEDFÿFFFÿHGHÿJJJÿVVVÿBBBÿBBBÿCCCÿCCCÿBBBÿBBBÿQPRÿa`bÿgggÿVVWÿQPRÿ___ÿ___ÿihhÿWWWÿ@@@ÿ??@ÿFFFÿNNOÿdddÿdddÿJKLÿWWWÿ___ÿbbbÿ`_`ÿqppÿmllÿmllÿihhÿXXXÿRRRÿQPRÿWWWÿkkkÿoooÿdddÿ[[[ÿZZ[ÿbbbÿ[[[ÿXWYÿRRSÿ\[\ÿffgÿ```ÿXXXÿRRSÿQPRÿVVVÿWWWÿWWWÿXWYÿTSTÿQPRÿXWYÿVVYÿQPRÿTSTÿVVWÿUTVÿOOOÿUTVÿhghÿnnoÿ\[\ÿkjkÿhghÿTTTÿVVWÿYXZÿ^^_ÿkjkÿqppÿmllÿa`bÿcccÿVVWÿYXZÿihhÿcccÿgggÿmllÿgggÿcccÿfffÿoooÿoooÿkkkÿ[[[ÿfffÿcccÿfffÿbbbÿWWWÿVVVÿRRRÿNNOÿMLOÿJJLÿJJLÿLKLÿLKNÿLKNÿNNNÿMLOÿMLNÿONQÿMLOÿPOQÿSRTÿXWYÿhghÿpopÿmlnÿnnoÿpopÿnnoÿkjkÿnnoÿnnnÿhghÿmllÿmllÿbbbÿZZ[ÿYXZÿOOOÿPOQÿMLOÿQPRÿ^\^ÿbbcÿUTVÿWWWÿ___ÿ___ÿVVVÿXXXÿmllÿmllÿmllÿkkkÿihhÿqppÿqppÿqprÿpopÿoooÿgggÿlklÿihhÿihhÿgggÿihhÿihhÿihjÿkkkÿlklÿmllÿoooÿoooÿoooÿoooÿjjjÿgggÿjjjÿrrrÿqprÿrrrÿqppÿpopÿsssÿsssÿsssÿtttÿsstÿsssÿoooÿutvÿrrsÿtstÿtttÿtttÿvvvÿtttÿsssÿoooÿwwwÿxwwÿqppÿvvwÿrrrÿoooÿwwwÿxxxÿzzzÿwwwÿsssÿxxxÿzzzÿxxxÿtttÿvvvÿtttÿsssÿxwwÿtttÿqppÿqppÿfffÿjjjÿnnnÿoooÿnnoÿkjkÿihhÿihhÿihhÿmllÿnnnÿmlnÿoooÿmllÿihhÿmllÿjjjÿoooÿoooÿoooÿgggÿcccÿ```ÿcccÿ^^^ÿZZZÿWWWÿRRRÿNNNÿEDDÿ>=>ÿ??@ÿEDDÿIHHÿFFFÿBBCÿ??@ÿ<<<ÿBBCÿFFGÿFFFÿFFFÿGGGÿ<<<ÿEDDÿCCCÿEDFÿIHJÿEDDÿ@@@ÿBBCÿBBCÿCCCÿ@@@ÿ@@@ÿ@@@ÿBBCÿCCCÿ@@@ÿ@@@ÿBBCÿBBCÿ??@ÿBBCÿ@@@ÿ@@@ÿ@@@ÿBBCÿCCCÿCCCÿBBBÿBBCÿCCCÿCCCÿCCCÿBBCÿBBCÿCCCÿDCDÿFFFÿFFFÿFFGÿLLLÿKKKÿPOQÿOOOÿKKKÿCCCÿEDDÿEDDÿMLNÿ`_`ÿ^\^ÿVVWÿSSSÿRRRÿSSSÿRRRÿLLLÿLLLÿKKKÿ??@ÿNNNÿ??@ÿJJJÿBCDÿJJKÿ```ÿffgÿHGHÿBBCÿEDDÿBBBÿCCCÿ??@ÿIHHÿWWWÿ___ÿDFGÿTTTÿVVVÿWWWÿ[[[ÿcccÿNNNÿCCCÿEDDÿKKKÿbbbÿhklÿ\\\ÿJJJÿ___ÿgggÿfffÿVVWÿrrrÿnnnÿoooÿihhÿ^^^ÿVVWÿ^\^ÿdddÿgggÿkjkÿZZ[ÿPOQÿOOOÿNNOÿRRRÿZZ[ÿ^\^ÿ`_`ÿmllÿlklÿbbcÿVVWÿTTTÿ^\^ÿcccÿfffÿffgÿ\[\ÿUTVÿTSTÿTSTÿPOQÿSRTÿOOOÿMLNÿMLNÿOOOÿQPRÿUTVÿONQÿYXZÿqppÿmllÿ^\^ÿVVWÿWWWÿfffÿkjkÿkjkÿihhÿkjkÿkjkÿkjkÿkkkÿoooÿgggÿgggÿmllÿrrrÿjjjÿ___ÿihhÿnnnÿmllÿmllÿmllÿa`bÿVVVÿPPPÿPPPÿOOOÿQPRÿJJLÿHGHÿLKNÿMLNÿMLOÿMLNÿONQÿMLNÿONQÿNNNÿMLNÿNNOÿMLOÿMLNÿMLOÿPOQÿXWYÿlklÿrrrÿnnnÿkjkÿihhÿfffÿkjkÿgggÿkjkÿZZ[ÿTSTÿRRRÿQPRÿSRTÿSRTÿ^\^ÿ__bÿVVWÿUTVÿZZ[ÿ`_`ÿgggÿbbbÿ`_`ÿqppÿmllÿlklÿmllÿ\\\ÿoooÿoooÿqppÿqppÿoooÿ^^^ÿmllÿmllÿijkÿihhÿffgÿihhÿjjjÿihjÿcccÿgggÿdddÿdcdÿkkkÿjjjÿqppÿrrrÿedfÿoooÿqppÿpopÿqppÿlnoÿnnnÿrrrÿqppÿdddÿdddÿjjjÿsssÿtstÿsssÿtttÿtttÿtttÿtttÿgggÿihjÿjjjÿvvvÿnnnÿoooÿxwwÿxwwÿxxxÿxwxÿxwwÿzxxÿxxxÿqppÿxxxÿxxxÿyxzÿwwwÿzxxÿzxxÿzxxÿxwwÿqppÿrrrÿrrrÿfffÿihhÿnnnÿnnnÿnnnÿoooÿnnnÿmllÿgggÿfffÿnnnÿoooÿqppÿoooÿjjjÿmllÿmllÿnnnÿoooÿgggÿfffÿcccÿ^^^ÿ___ÿ^\^ÿVVVÿMLNÿJJJÿGGGÿCCCÿHGHÿCCCÿ>=>ÿ>=>ÿCCCÿFFGÿFFFÿFFFÿ@@@ÿ<<<ÿ>=>ÿCCCÿGGGÿCCCÿCCCÿEDDÿEDDÿFFFÿCCCÿ??@ÿ@@@ÿ??@ÿBBCÿ@@@ÿCCCÿ@@@ÿBBCÿ@@@ÿ@@@ÿBBCÿ@@@ÿBBBÿ>=>ÿ@@@ÿ??@ÿBBCÿ??@ÿ@@@ÿBBBÿCCCÿCCCÿCCCÿCCCÿCCCÿCCCÿCCCÿ@@@ÿCCCÿA@BÿFFGÿEDDÿFFFÿJJKÿPPPÿDCDÿCCCÿBBBÿBBCÿCCCÿLKLÿ[[[ÿTTTÿJJJÿGGGÿGGGÿJJJÿLLLÿOOOÿRRRÿLLLÿTSTÿNNOÿPPPÿ??@ÿGGGÿJJJÿkkkÿDCDÿBBCÿCCCÿA@BÿCCCÿ@@@ÿEDFÿFFGÿ\[\ÿ\[\ÿA@BÿFFFÿIHJÿTSTÿ```ÿXXXÿRRRÿDFGÿFFFÿGHJÿdddÿoooÿghjÿJJJÿTTTÿbbbÿbbbÿSSSÿ\\^ÿnnnÿ[[[ÿbbbÿnnnÿkjkÿfffÿ^^_ÿQPRÿPOQÿPOQÿPOQÿNNOÿNNOÿPOQÿQPRÿPOQÿPOQÿYXZÿmllÿqppÿnnnÿmllÿkkkÿgggÿcccÿbbbÿ`_`ÿRRSÿOOOÿMLOÿQPRÿUTVÿQPRÿMLOÿLKLÿLKLÿLKLÿLKNÿMLOÿLKLÿMLNÿ^\^ÿqppÿ^\^ÿVVWÿWWWÿTSTÿgggÿmllÿnnnÿkjkÿkjkÿoooÿoooÿnnnÿmllÿgggÿihhÿoooÿoooÿmllÿkjkÿmllÿmllÿgggÿ^\^ÿ^^_ÿ^\^ÿSSSÿRRRÿQPRÿNNOÿLKNÿONQÿMLOÿMLOÿMLOÿMLNÿMLNÿPOQÿONQÿMLNÿMLNÿOOOÿONQÿMLOÿPOQÿUTWÿmllÿkjkÿnnnÿkjkÿgggÿdcdÿkjkÿkjkÿa`bÿZZ[ÿUTVÿZZ[ÿcccÿTSTÿMLOÿSRTÿQPRÿTSTÿZZ[ÿTTTÿ\[\ÿa`bÿhghÿfffÿYXZÿzzzÿxwwÿvvvÿmllÿgggÿihjÿoooÿpopÿnopÿqppÿnnnÿ^^^ÿcccÿgggÿfffÿmllÿ^^_ÿ___ÿ`_`ÿgggÿlklÿdcdÿihhÿlklÿlklÿnnoÿihhÿkkkÿmllÿmlnÿnnnÿmllÿdddÿbbbÿoooÿrrrÿqppÿrrrÿsssÿqppÿsssÿtttÿtttÿtttÿvvvÿtttÿrrsÿnnnÿihhÿwvvÿtttÿwvvÿxwwÿxwwÿzxxÿzxxÿxwxÿzxxÿzxxÿoooÿxxxÿxxxÿxxxÿzxxÿxwxÿxxxÿxxxÿtstÿoooÿoooÿkkkÿnnnÿjjjÿkkkÿoooÿmllÿkkkÿmllÿkjkÿfffÿihhÿoooÿoooÿoooÿqppÿoooÿqppÿnnnÿnnnÿgggÿbbbÿcccÿ^^^ÿ^\^ÿ[[[ÿYXZÿQPRÿGGGÿFFFÿDCDÿEDDÿFFFÿFFFÿFFFÿEDDÿBBBÿ<<<ÿ??@ÿEDDÿGGGÿGGGÿEDFÿ@@@ÿ<<<ÿ779ÿBBCÿEDDÿEDDÿFFGÿEDDÿ@@@ÿ@@@ÿ@@@ÿCCCÿ@@@ÿCCCÿBBCÿ@@@ÿ@@@ÿ@@@ÿCCCÿ@@@ÿ??@ÿ@@@ÿ@@@ÿ@@@ÿBBCÿ@@@ÿ@@@ÿBBCÿBBCÿCCCÿBBCÿBBCÿCCCÿCCCÿBBCÿBBCÿCCCÿCCCÿCCCÿBBBÿCCCÿEDDÿ??@ÿBBBÿBBCÿBBBÿFFFÿVVVÿXWYÿKKKÿFFFÿFFFÿEDFÿHGHÿKKKÿNNOÿSSSÿNNNÿJKLÿUTVÿXWYÿGGGÿKKKÿUTVÿHGHÿFFFÿ@@@ÿBBBÿCCCÿBBCÿBBBÿEDFÿOOOÿ[[[ÿffgÿFFFÿEDDÿQPRÿRRSÿZZ[ÿa`bÿQPRÿGHJÿGGGÿOOOÿcccÿqppÿklnÿVVVÿNNOÿcccÿghjÿVVVÿJJJÿOOOÿnnnÿoooÿnnnÿkkkÿfffÿQPRÿONQÿMLNÿMLNÿMLNÿPOQÿMLOÿMLOÿMLOÿTSTÿ^^`ÿa`bÿffgÿgggÿgggÿgggÿmllÿkjkÿkjkÿkjkÿbbcÿ`_`ÿQPRÿMLOÿMLOÿMLNÿJJLÿJJJÿJJJÿLKLÿLKNÿJJLÿLKLÿLKNÿMLOÿONQÿRRSÿfffÿcccÿdcdÿcccÿ^\^ÿYXZÿVVWÿ^^^ÿihhÿihhÿkjkÿkjkÿkkkÿoooÿjjjÿjjjÿkkkÿkkkÿqppÿkjkÿmllÿihhÿkjkÿa`bÿ^\^ÿ^^_ÿWWWÿTTTÿQPRÿRRSÿMLOÿONQÿONQÿMLOÿMLOÿONQÿMLNÿMLNÿNNNÿMLOÿMLOÿNNOÿMLOÿMLOÿMLNÿdcdÿkkkÿkjkÿgggÿfffÿihhÿkjkÿnnnÿgggÿcccÿ^\^ÿZZ[ÿYXZÿQPRÿVVWÿZZ[ÿMLNÿHGHÿEDFÿEDDÿONQÿPOQÿa`bÿgggÿkjkÿkjkÿzxxÿxwxÿzxxÿzxxÿutvÿQPRÿsssÿqppÿoooÿqppÿoooÿjjjÿgggÿdddÿihhÿnnnÿkkkÿlklÿmlnÿmllÿkjkÿjjjÿgggÿfffÿfffÿfffÿdddÿSSSÿVVVÿ\\^ÿcccÿ`_`ÿRRSÿijkÿmllÿoooÿqppÿnnnÿnnnÿqppÿfffÿsssÿsssÿtttÿtttÿtttÿtttÿvvvÿsstÿrrrÿxwwÿxwwÿvvwÿxwwÿxwwÿxwwÿxwwÿxwwÿxwwÿzxxÿoooÿxwwÿxxxÿxwwÿxwwÿzxxÿxwwÿwvvÿtttÿwvvÿtttÿwvvÿmllÿmllÿmllÿjjjÿnnnÿnnnÿgggÿmllÿnnnÿnnnÿmllÿoooÿoooÿoooÿqppÿoooÿihhÿ^^^ÿ^^^ÿ^\^ÿ^\^ÿZZ[ÿXXXÿRRSÿJJJÿFFFÿFFFÿDCDÿEDDÿCCCÿFFFÿEDDÿCCCÿFFGÿFFGÿBBCÿ<<<ÿ<<<ÿCCCÿHGHÿEDDÿFFFÿ??@ÿ<<<ÿ>=>ÿEDDÿFFFÿCCCÿ@@@ÿ??@ÿ@@@ÿEDDÿ@@@ÿ??@ÿBBCÿBBCÿBBCÿBBBÿBBBÿBBBÿBBBÿBBBÿBBBÿBBBÿ??@ÿBBBÿBBBÿCCCÿDCDÿBBCÿBBCÿBBCÿCCCÿCCCÿBBCÿCCCÿBBCÿBBBÿA@BÿBBCÿEDFÿ@@@ÿ@@@ÿBBCÿCCCÿOOOÿ\[^ÿPOQÿFFFÿEDFÿFFFÿFFFÿJJJÿMLNÿNNNÿUTVÿOOOÿGHJÿTTTÿ```ÿSSSÿRRRÿcccÿPPPÿEDDÿEDFÿEDDÿEDDÿEDFÿEDDÿGGGÿQPRÿ`_`ÿijkÿJJKÿEDFÿRRRÿZZZÿ^^_ÿihhÿklnÿGGGÿFFFÿJJJÿnnnÿlnoÿhklÿ^^^ÿJJJÿ[[[ÿdddÿhklÿnnnÿkkkÿmllÿmlnÿfffÿZZZÿZZZÿcccÿVVWÿUTVÿMLNÿOOOÿPOQÿRRSÿTSTÿTSTÿZZ[ÿdcdÿffgÿkjkÿcccÿdcdÿcccÿOOOÿPOQÿYXZÿXWYÿ^^_ÿbbcÿ^\^ÿONQÿLKLÿLKNÿQPRÿPOQÿMLNÿLKLÿLKLÿLKNÿLKNÿMLOÿMLNÿSSVÿZZ[ÿedfÿ```ÿmllÿkkkÿ^\^ÿVVVÿTTTÿQPRÿPOQÿOOOÿXXXÿcccÿihhÿfffÿihhÿpopÿqppÿoooÿkjkÿdcdÿihhÿgggÿmllÿkjkÿihhÿ`_`ÿ^\^ÿ^\^ÿ^\^ÿUTVÿMLNÿMLOÿSRTÿQPRÿPOQÿPOQÿONQÿQPRÿMLNÿMLOÿPOQÿSRTÿNNOÿONQÿPOQÿVVWÿrrrÿwvvÿqppÿdcdÿgggÿmllÿfffÿ`_`ÿedfÿYXZÿ^\^ÿVVWÿZZ[ÿXWYÿOOOÿJJJÿOOOÿVVWÿ^\^ÿYXZÿUTVÿTSTÿa`bÿihhÿgggÿmllÿzxxÿxwxÿyxzÿxwxÿxwwÿbbcÿtttÿ{{{ÿxxxÿsssÿrrsÿqppÿoooÿrrrÿoooÿpopÿqppÿqppÿqprÿoooÿnnoÿnnoÿnnoÿmllÿlklÿjjjÿihhÿbbcÿbbcÿbbcÿgggÿa`bÿ^^_ÿffgÿghjÿihhÿklnÿnnoÿrrrÿrrsÿjjjÿ\\\ÿffgÿmllÿtttÿtttÿsssÿnnnÿqprÿtttÿutvÿwvvÿwvvÿtttÿtstÿrrrÿtstÿtttÿutvÿwvvÿxwwÿtttÿtttÿoooÿwvvÿxwwÿzxxÿxwwÿzxxÿzxxÿzxxÿxwwÿsssÿkkkÿmllÿnnnÿmllÿkkkÿkkkÿoooÿqppÿoooÿnnnÿnnnÿoooÿoooÿoooÿihhÿ^^^ÿ^\^ÿ[[[ÿZZZÿVVWÿQPRÿMLNÿGGGÿCCCÿEDDÿGGGÿCCCÿEDDÿFFFÿEDDÿEDFÿEDDÿEDDÿDCDÿEDDÿEDDÿEDFÿ>=>ÿ<<<ÿ??@ÿFFFÿEDFÿFFFÿFFFÿBBCÿ<<<ÿ@@@ÿEDDÿBBCÿEDDÿCCCÿEDDÿBBCÿDCDÿDCDÿEDDÿEDDÿEDDÿBBCÿBBBÿBBCÿBBCÿCCCÿBBCÿCCCÿBBBÿ@@@ÿ??@ÿBBCÿBBCÿBBCÿCCCÿBBCÿBBBÿCCCÿCCCÿBBCÿBBCÿDCDÿEDDÿEDDÿ@@@ÿ@@@ÿRRRÿXXXÿIHHÿIHHÿEDFÿEDFÿGGGÿLKLÿPPPÿSSSÿRRRÿLLLÿEDDÿDFGÿRRRÿdddÿGGGÿIHHÿGGGÿBCDÿEDDÿEDDÿEDDÿDCDÿIHHÿSRTÿZZZÿedfÿihjÿLLLÿHGHÿZZ[ÿghjÿ___ÿbbcÿlnoÿVVVÿFFFÿGGGÿfffÿjjjÿghjÿ\\\ÿTTTÿOOOÿ```ÿdghÿbbbÿXXXÿUTVÿhghÿMLOÿMLNÿNNNÿ___ÿjjjÿ^^^ÿUTVÿMLOÿPPPÿmllÿmllÿkjkÿedfÿdcdÿ^\^ÿihhÿhghÿcccÿa`bÿWWWÿ```ÿ^\^ÿhghÿmlnÿpopÿhghÿbbcÿ^^_ÿ^\^ÿUTWÿUTVÿPOQÿMLOÿLKLÿMLNÿPOQÿLKNÿMLNÿMLOÿedfÿqppÿoooÿoooÿqppÿrrrÿrrrÿqppÿoooÿkkkÿfffÿbbbÿTTTÿTTTÿXXXÿ`_`ÿcccÿnnnÿrrrÿoooÿlklÿkjkÿkjkÿhghÿihhÿmllÿpopÿnnnÿhghÿa`bÿ___ÿZZ[ÿZZ[ÿXWYÿVVYÿUTWÿSSVÿPOQÿPOQÿPOQÿONQÿMLOÿPOQÿUTWÿPOQÿMLOÿPOQÿVVWÿrrrÿqppÿqppÿkjkÿnnnÿa`bÿ^\^ÿ`_`ÿcccÿcccÿYXZÿ^\^ÿ\[\ÿTSTÿSSSÿ^^_ÿWWWÿXXXÿ^\^ÿZZ[ÿXWYÿYXZÿRRSÿkjkÿihhÿhghÿzxxÿvvwÿxwxÿxwwÿutvÿlklÿ{{{ÿxxxÿ{{{ÿ}||ÿ{{{ÿsssÿvvvÿzzzÿwwwÿzzzÿwwwÿwwwÿyxzÿxwxÿxxxÿtttÿtttÿutvÿsssÿrrsÿnnoÿnnoÿijkÿklnÿmllÿlklÿlklÿfffÿ\\^ÿPPPÿijkÿrrsÿtttÿtstÿrrrÿTSTÿOOOÿfffÿmllÿkkkÿXXXÿdcdÿihjÿdddÿfffÿkkkÿmllÿnnnÿpopÿqppÿpopÿpopÿqppÿtstÿwvvÿxwwÿxwxÿxwwÿoooÿzxxÿxwwÿxwwÿxwwÿxwwÿxwwÿwvvÿrrrÿmllÿkjkÿihhÿmllÿnnnÿnnnÿoooÿmllÿnnnÿnnnÿnnnÿnnnÿqppÿihhÿ^^^ÿ^\^ÿ^\^ÿ^\^ÿTSTÿLKLÿGGGÿEDDÿEDDÿFFFÿGGGÿGGGÿCCCÿEDDÿFFGÿDCDÿFFFÿEDFÿEDDÿCCCÿFFGÿFFGÿFFFÿA@BÿBBBÿBBBÿ>=>ÿ>=>ÿCCCÿIHHÿIHHÿIHHÿCCCÿ<<<ÿ??@ÿFFFÿCCCÿEDDÿCCCÿFFGÿEDFÿFFFÿDCDÿDCDÿDCDÿBBCÿEDDÿEDDÿDCDÿCCCÿCCCÿBBBÿ>=>ÿ>=>ÿBBBÿCCCÿBBCÿBBBÿCCCÿBBBÿBBCÿBBBÿBBCÿCCCÿCCCÿBBBÿCCCÿBBBÿKKKÿYX[ÿMLNÿFFFÿEDFÿFFFÿJJJÿTTTÿTTTÿQPRÿLKLÿFFGÿEDFÿDFGÿGGGÿXXXÿdcdÿFFFÿEDDÿEDDÿBCDÿEDDÿEDFÿFFGÿJJKÿOOOÿVVWÿPOQÿihjÿjklÿffgÿ[[[ÿjjjÿjjjÿedfÿfffÿihhÿGHJÿJJJÿihhÿmllÿa`bÿSSSÿNNNÿJJJÿbbbÿklnÿ^^^ÿXXXÿTTTÿ[[[ÿmllÿMLOÿOOOÿPPPÿ___ÿmllÿcccÿVVWÿNNNÿdddÿmllÿmllÿkjkÿmllÿgggÿkkkÿihhÿmllÿihhÿkjkÿVVWÿ`_`ÿVVWÿ`_`ÿedfÿVVWÿMLNÿLKLÿMLNÿMLOÿPOQÿYXZÿSRTÿ\[\ÿQPRÿPOQÿZZ\ÿONQÿMLNÿQPRÿmlnÿrrrÿqppÿrrrÿqppÿqppÿsssÿrrrÿqppÿoooÿnnnÿkjkÿdcdÿ^\^ÿWWWÿWWWÿWWWÿcccÿgggÿmllÿmllÿoooÿnnoÿmlnÿnnnÿnnnÿpopÿqppÿmllÿhghÿfffÿcccÿ^^_ÿ^\^ÿ^^`ÿ^\^ÿZZ\ÿXWYÿSRTÿPOQÿONQÿONQÿSRTÿPOQÿSRTÿMLOÿMLOÿRRSÿqppÿrrrÿqppÿqppÿkjkÿcccÿVVWÿXWYÿ```ÿcccÿcccÿgggÿkjkÿkjkÿrrrÿlklÿlklÿoooÿbbcÿZZ[ÿZZ[ÿ`_`ÿQPRÿhghÿihhÿcccÿrrsÿutvÿrrrÿwvvÿpopÿsssÿzxxÿxxxÿzzzÿzzzÿzzzÿzzzÿxxxÿxxxÿxxxÿwwwÿutvÿwwwÿwwwÿxxxÿwvvÿtstÿxwwÿvvvÿsssÿvvvÿrrsÿdghÿnnnÿTTTÿnnnÿnopÿmllÿnnnÿKKKÿGGGÿJJKÿklnÿmlnÿmlnÿoooÿnnnÿoooÿnnnÿmllÿoooÿZZ[ÿoooÿlklÿoooÿoooÿoooÿqppÿtstÿxwwÿxwwÿzzzÿ|{|ÿwvvÿrrrÿtttÿwvvÿxwwÿxwwÿsssÿrrrÿwvvÿwvvÿwvvÿoooÿdddÿcccÿXXXÿmllÿ^^_ÿihhÿkkkÿkkkÿmllÿkkkÿnnnÿnnnÿnnnÿnnnÿnnnÿihhÿ___ÿ___ÿ^\^ÿZZ[ÿUTVÿIHHÿEDFÿCCCÿEDFÿFFGÿFFGÿFFGÿGGGÿEDDÿEDDÿFFFÿDCDÿFFFÿEDDÿCCCÿDCDÿEDDÿEDDÿFFFÿCCCÿEDDÿEDFÿGGGÿ<<<ÿ<<<ÿ??@ÿFFFÿHGHÿFFFÿFFFÿFFFÿ??@ÿ>=>ÿBBCÿBBCÿEDFÿJJJÿHGHÿEDDÿCCCÿEDDÿBBCÿEDDÿDCDÿCCCÿCCCÿCCCÿBBBÿ??@ÿ??@ÿBBCÿCCCÿCCCÿCCCÿBBBÿBBBÿBBCÿCCCÿCCCÿCCCÿCCCÿCCCÿCCCÿKKKÿZZ[ÿIHJÿBBBÿBBCÿHGHÿMLNÿUTVÿNNOÿJJKÿEDDÿEDDÿEDDÿFFFÿFFFÿLLLÿXXXÿbbbÿFFFÿEDDÿFFFÿCCCÿFFFÿEDFÿHGHÿGGGÿEDDÿOOOÿkkkÿ___ÿMLNÿDFGÿVVVÿijkÿmllÿihhÿnnnÿOOOÿKKKÿihhÿnnnÿfffÿZZZÿZZZÿWWWÿ___ÿgggÿghjÿPPPÿRRRÿXXXÿjjjÿrrrÿQPRÿUTVÿUTVÿ\\\ÿnnnÿa`bÿYXZÿNNNÿ^\^ÿgggÿihhÿihhÿbbbÿedfÿfffÿcccÿfffÿmllÿcccÿa`bÿgggÿfffÿffgÿ^\^ÿZZ[ÿONQÿMLOÿONQÿQPRÿTTTÿQPRÿdcdÿrrrÿkjkÿVVWÿdcdÿVVYÿONQÿQPRÿkjkÿpopÿqppÿrrrÿrrrÿqppÿoooÿrrrÿqppÿmllÿkjkÿkjkÿkjkÿhghÿZZ[ÿUTVÿTTTÿ```ÿUTVÿRRSÿMLNÿTSTÿlklÿrrrÿpopÿnnoÿnnoÿqppÿoooÿihhÿcccÿ^\^ÿ^^_ÿ^^_ÿa`bÿ``dÿ^\^ÿ^^`ÿ^^`ÿTSTÿPOQÿMLOÿ__bÿPOQÿSRTÿPOQÿNNOÿMLNÿa`bÿrrrÿqppÿrrrÿpopÿhghÿ`_`ÿ`_`ÿa`bÿgggÿUTVÿnnoÿnnoÿpopÿrrrÿrrrÿpopÿrrrÿbbcÿZZ[ÿPOQÿXWYÿ`_`ÿbbcÿkjkÿ```ÿrrsÿtttÿrrsÿrrsÿIHHÿxwwÿzzzÿ{{{ÿ{{{ÿxxxÿyxzÿ{z{ÿ{{{ÿxxxÿwwwÿvvvÿvvvÿtttÿwwwÿvvvÿxwwÿ[[[ÿTTTÿmlnÿrrsÿrrsÿutvÿnnnÿGGGÿRRSÿrrsÿvvvÿvvwÿrrsÿijkÿGHJÿNNNÿnopÿklnÿmmqÿnnnÿnnoÿnnoÿoooÿqppÿmlnÿ`_`ÿsssÿpopÿnnnÿqprÿutvÿzxxÿzzzÿ{{{ÿ{{{ÿ{{{ÿ}||ÿ{z{ÿtttÿrrsÿtstÿwvvÿxwwÿ}||ÿzxxÿtstÿbbcÿgggÿa`bÿ}||ÿ}||ÿrrrÿVVVÿ\\\ÿ___ÿWWWÿ^\^ÿgggÿjjjÿfffÿkkkÿihhÿkkkÿfffÿVVVÿWWWÿYXZÿVVVÿTTTÿMLNÿEDDÿCCCÿEDDÿFFFÿGGGÿFFGÿIHHÿIHHÿIHHÿJJJÿJJJÿFFFÿEDFÿFFGÿFFGÿFFFÿFFFÿFFFÿIHJÿEDFÿFFGÿEDFÿ@@@ÿ;:;ÿBBCÿFFFÿ>=>ÿ>=>ÿEDDÿHGHÿHGHÿGGGÿGGGÿ@@@ÿ>=>ÿFFGÿLKLÿOOOÿIHHÿEDDÿDCDÿDCDÿCCCÿEDDÿBBCÿCCCÿCCCÿBBCÿBBCÿDCDÿCCCÿCCCÿCCCÿCCCÿCCCÿDCDÿBBBÿDCDÿCCCÿCCCÿEDDÿEDFÿEDDÿGGGÿEDFÿCCCÿBCDÿJJJÿEDFÿGGGÿFFFÿDCDÿEDFÿEDDÿFFFÿEDDÿEDDÿKKKÿRRRÿa`bÿRRRÿBCDÿFFFÿEDDÿGGGÿDFGÿEDFÿPOQÿEDFÿJKLÿijkÿ\[\ÿJJJÿKKKÿSSSÿihhÿklnÿihhÿdghÿghjÿJJKÿmlnÿkkkÿffgÿNNNÿXXXÿ^\^ÿfffÿihhÿmllÿbbbÿ^^^ÿRRSÿ^^^ÿrrrÿrrrÿVVWÿ^^_ÿedfÿZZZÿpopÿkjkÿVVWÿNNNÿ^\^ÿgggÿ`_`ÿWWWÿVVWÿ`_`ÿVVVÿPPPÿ^\^ÿ^\^ÿ___ÿXXXÿ[[[ÿ^^_ÿcccÿ`_`ÿhghÿSRTÿQPRÿTSTÿXWYÿ^\^ÿmllÿdddÿdddÿfffÿgggÿffgÿbbdÿPOQÿLKLÿRRSÿihhÿfffÿdddÿbbbÿdddÿkjkÿnnnÿqppÿoooÿkkkÿmllÿmllÿkjkÿihhÿcccÿ`_`ÿcccÿfffÿ`_`ÿPPPÿLKLÿ^^_ÿtstÿpopÿnnoÿmlnÿnnoÿnnnÿmllÿihhÿedfÿVVWÿVVYÿ^^`ÿ^^`ÿ__bÿedfÿffgÿYX[ÿVVYÿPOQÿ^\^ÿSRTÿ^\^ÿUTWÿOOOÿMLOÿQPRÿoooÿnnoÿmllÿnnoÿfffÿdcdÿlklÿkjkÿXWYÿ^^^ÿnnoÿoooÿqppÿmllÿnnoÿmlnÿmllÿedfÿUTVÿbbcÿ^^_ÿcccÿbbcÿbbbÿfffÿmllÿwvvÿnnoÿGGGÿgggÿzzzÿzxxÿzxxÿzxxÿ{z{ÿyxzÿwwwÿwwwÿzzzÿwwwÿvvvÿzzzÿtttÿvvvÿwwwÿwwwÿNNOÿvvvÿxwwÿqprÿrrsÿtttÿsstÿlklÿGHJÿnnnÿwwwÿtttÿxxxÿvvwÿtttÿxxxÿxxxÿvvwÿwwwÿwwwÿwwwÿwwwÿvvwÿxxxÿyxzÿnnoÿfffÿstvÿsssÿ{z{ÿ{{{ÿzzzÿzzzÿ|{|ÿ{{{ÿ|{|ÿ}||ÿ|{|ÿzzzÿtttÿrrsÿrrrÿsssÿtstÿwvvÿxwwÿzxxÿ{z{ÿ~~~ÿ~~~ÿ~~~ÿzzzÿgggÿOOOÿKKKÿTTTÿ^\^ÿbbbÿa`bÿbbbÿihhÿcccÿfffÿa`bÿMLNÿJJJÿIHHÿ??@ÿ>=>ÿDCDÿDCDÿEDDÿFFFÿFFFÿFFGÿGGGÿFFGÿHGHÿJJJÿIHHÿJJJÿIHHÿFFGÿFFFÿHGHÿGGGÿIHJÿIHHÿRRRÿLKLÿGGGÿFFGÿ<<<ÿ<<<ÿ@@@ÿEDFÿBBCÿEDDÿ>=>ÿ>=>ÿCCCÿFFGÿFFGÿFFGÿ>=>ÿDCDÿEDDÿIHHÿMLNÿIHJÿEDDÿBBCÿCCCÿFFFÿCCCÿBBCÿCCCÿDCDÿCCCÿCCCÿCCCÿBBCÿCCCÿBBBÿBBCÿCCCÿDCDÿBBCÿBBCÿBBCÿBBCÿDCDÿCCCÿBBCÿEDDÿGGGÿHGHÿKKKÿ@@@ÿ??@ÿFFFÿIHJÿHGHÿFFGÿIHHÿMLNÿZZZÿbbbÿ[[[ÿcccÿDFGÿFFFÿEDDÿEDDÿEDDÿGHJÿffgÿWWWÿKKKÿhklÿffhÿedfÿccfÿggjÿijkÿhklÿjjjÿdddÿkkkÿbbcÿnnnÿoooÿ^^_ÿQPRÿOOOÿTSTÿTTTÿ[[[ÿ[[[ÿdddÿdcdÿjjjÿhklÿnnnÿmllÿgggÿ`_`ÿkjkÿmllÿnnnÿnnnÿdddÿ^^_ÿkjkÿihhÿ[[[ÿTSTÿkjkÿfffÿcccÿcccÿbbcÿ`_`ÿUTVÿa`bÿZZ[ÿa`bÿcccÿa`bÿa`bÿmlnÿdcdÿZZ[ÿZZ\ÿa`bÿdcdÿbbbÿcccÿcccÿdddÿoooÿbbcÿddgÿVVWÿMLOÿOOOÿ^^^ÿ^^_ÿbbbÿbbbÿ[[[ÿjjjÿqppÿnnnÿoooÿpopÿpopÿoooÿnnnÿkjkÿ`_`ÿ`_`ÿa`bÿcccÿihhÿ^^_ÿLLLÿOOOÿnnnÿqppÿnnoÿnnnÿnnnÿkjkÿkkkÿkjkÿnnnÿdcdÿZZ\ÿ^^`ÿa`bÿdcdÿa`bÿedfÿYXZÿ__bÿ\[\ÿTSTÿVVYÿTSTÿYX[ÿPOQÿNNNÿNNNÿnnnÿkjkÿpopÿnnnÿffgÿfffÿkjkÿmllÿ^^_ÿmllÿrrrÿrrrÿrrrÿhghÿkjkÿnnnÿnnnÿhghÿbbcÿdcdÿffgÿihjÿihhÿ`_`ÿ^^_ÿYX[ÿ}||ÿ{z{ÿ{{~ÿ|{|ÿ|{|ÿ{{~ÿzz}ÿ|{|ÿ}||ÿ|{|ÿzzzÿ{{{ÿ{{{ÿ{{{ÿzzzÿ{{{ÿxxxÿxxxÿzzzÿzzzÿcccÿihhÿedfÿpopÿvvvÿxwxÿwwwÿsstÿrrsÿxwxÿwwwÿzzzÿstvÿvvvÿrrrÿwwwÿxxxÿxxxÿwwwÿxwxÿxxxÿxxxÿxxxÿwwwÿxxxÿtstÿfffÿwwwÿyxzÿzzzÿzzzÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ|{|ÿ|{|ÿ}||ÿ}||ÿ{z{ÿzxxÿwvvÿxwwÿzxxÿyxzÿ|{|ÿ|{|ÿ~~~ÿ~~~ÿÿihhÿTSTÿJJJÿRRRÿfffÿihhÿfffÿedfÿedfÿ\[\ÿ^^_ÿNNNÿXWYÿQPRÿ>=>ÿCCCÿDCDÿEDDÿCCCÿGGGÿFFGÿFFFÿFFFÿFFFÿFFFÿGGGÿIHJÿGGGÿKKKÿIHHÿUTVÿTSTÿIHHÿGGGÿJJJÿJJJÿLKLÿdcdÿcccÿMLOÿFFGÿIHHÿDCDÿ??@ÿBBCÿEDFÿEDFÿEDDÿ??@ÿ>=>ÿ>=>ÿEDFÿGGGÿGGGÿ<<<ÿDCDÿEDDÿFFFÿEDDÿMLNÿFFFÿDCDÿDCDÿCCCÿBBBÿCCCÿCCCÿCCCÿEDDÿBBCÿCCCÿBBCÿBBCÿCCCÿDCDÿEDDÿEDFÿFFFÿCCCÿCCCÿBBCÿBCDÿCCCÿBCDÿEDDÿDFGÿCCCÿA@BÿEDDÿ>=>ÿ@@@ÿFFFÿLLLÿYXZÿcccÿZZ[ÿDFGÿGGGÿRRRÿPPPÿDFGÿEDDÿGGGÿ\\^ÿGGGÿOOOÿJJKÿFFFÿPOQÿVVVÿYXZÿXXXÿYX[ÿddgÿjjjÿmllÿdghÿghjÿqppÿnnnÿoooÿWWWÿPPPÿTSTÿLLLÿGGGÿHGHÿLKLÿUTVÿkjkÿihhÿmllÿgggÿNNNÿKKKÿTTTÿVVVÿkjkÿkkkÿnnnÿkjkÿ^\^ÿRRSÿedfÿVVWÿ^^_ÿgggÿdcdÿ^^_ÿbbbÿcccÿfffÿa`bÿa`bÿcccÿ`_`ÿZZ[ÿdcdÿ^\^ÿdcdÿkjkÿwvvÿbbcÿffgÿkjkÿgggÿcccÿbbbÿdddÿcccÿkjkÿffgÿedfÿdcdÿPOQÿUTVÿ^^_ÿ[[[ÿ^\^ÿa`bÿdddÿ^^_ÿ^\^ÿgggÿXWYÿqppÿoooÿnnoÿpopÿnnnÿdddÿdcdÿdcdÿdcdÿfffÿihhÿVVWÿMLNÿcccÿoooÿoooÿnnnÿmllÿgggÿihhÿkjkÿkjkÿkkkÿihjÿ^\^ÿ`_`ÿdcdÿdcdÿedfÿa`bÿhghÿhghÿ\[\ÿZZ[ÿPOQÿUTWÿPOQÿQPRÿMLNÿpopÿmllÿkkkÿihhÿkjkÿkjkÿmllÿkjkÿkjkÿqppÿrrrÿtstÿtstÿkjkÿkkkÿnnoÿmlnÿ^^_ÿihhÿlklÿlklÿnnnÿhghÿkkkÿrrrÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ}||ÿ~~~ÿ}||ÿ}||ÿ~~~ÿ}||ÿ}||ÿ}||ÿ{{{ÿ{{{ÿ}||ÿ{{{ÿ{{{ÿ{{{ÿzzzÿxwxÿwwwÿ{{{ÿvvvÿrrsÿxxxÿzzzÿxxxÿxxxÿxxxÿxwxÿwwwÿwwwÿxwxÿxwxÿwwwÿsssÿsstÿvvvÿxxxÿvvvÿwwwÿxxxÿwwwÿwwwÿxxxÿxxxÿcccÿxxxÿxxxÿxxxÿxxxÿxxxÿ}||ÿ{z{ÿ{{{ÿzzzÿ}||ÿ}||ÿ{{{ÿ}||ÿ}||ÿ}||ÿ}||ÿ|{|ÿ}||ÿ~~~ÿ}||ÿ~~~ÿ~~~ÿÿyxzÿWWWÿTTTÿNNNÿzxxÿihhÿkkkÿkjkÿgggÿkjkÿhghÿcccÿ`_`ÿedfÿihhÿBBCÿCCCÿJJJÿEDDÿFFFÿGGGÿFFFÿFFFÿGGGÿFFGÿGGGÿGGGÿIHHÿTSTÿ[[[ÿVVWÿIHJÿEDDÿJJJÿOOOÿZZZÿXWYÿffgÿdddÿbbbÿJJJÿHGHÿEDFÿ??@ÿCCCÿCCCÿ@@@ÿ<<<ÿ>=>ÿDCDÿFFGÿFFFÿFFFÿFFFÿGGGÿ>=>ÿEDDÿCCCÿBBCÿEDDÿDCDÿIHJÿFFGÿCCCÿCCCÿBBCÿBBBÿBBCÿCCCÿCCCÿCCCÿBBCÿBBBÿBBBÿCCCÿBBCÿDCDÿCCCÿDCDÿEDDÿEDDÿCCCÿCCCÿCCCÿBBBÿBBBÿEDDÿHGHÿJJKÿKKKÿKKKÿKKKÿPOQÿ[[[ÿQPRÿGGGÿFFFÿFFFÿOOOÿTSTÿCCCÿGGGÿ[[[ÿhklÿfffÿTTTÿGHJÿGHJÿbbcÿklnÿmllÿghjÿhklÿijkÿghjÿmllÿjjjÿghjÿhklÿ^^^ÿUTVÿNNNÿUTVÿMLNÿNNNÿIHHÿIHHÿGGGÿNNNÿ^^^ÿlklÿsssÿsssÿRRSÿNNNÿTTTÿ[[[ÿPPPÿnnnÿnnnÿkjkÿ[[[ÿLLLÿOOOÿcccÿcccÿcccÿ^\^ÿa`bÿgggÿ^\^ÿcccÿcccÿa`bÿ`_`ÿa`bÿUTVÿXXXÿcccÿfffÿa`bÿ___ÿxwwÿkjkÿfffÿkjkÿdcdÿcccÿcccÿdcdÿfffÿkjkÿgggÿXXXÿYXZÿcccÿ^^_ÿ^\^ÿ`_`ÿ[[[ÿ`_`ÿ^^^ÿ^\^ÿdcdÿihhÿfffÿmllÿmllÿkjkÿnnnÿoooÿnnnÿihhÿcccÿdcdÿdcdÿkjkÿmllÿOOOÿUTVÿgggÿkkkÿoooÿnnnÿmllÿmllÿkkkÿfffÿihhÿihjÿ^\^ÿVVVÿbbcÿgggÿfffÿZZ[ÿfffÿhghÿ`_`ÿa`bÿPOQÿUTWÿSRTÿUTWÿONQÿedfÿpopÿkjkÿkjkÿnnnÿkkkÿmllÿihhÿqppÿtstÿpopÿsssÿrrrÿnnoÿnnnÿhghÿhghÿa`bÿnnnÿrrrÿtstÿoooÿfffÿjjjÿrrrÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ}||ÿ}||ÿ}||ÿ}||ÿ{{{ÿ}||ÿ{{{ÿ{{{ÿ{{{ÿ}||ÿzzzÿzzzÿ{{{ÿxxxÿzzzÿxxxÿyxzÿxxxÿyxzÿxxxÿxxxÿxxxÿwwwÿxwxÿxwxÿwwwÿwwwÿvvwÿrrsÿSSSÿRRRÿWWWÿijkÿstvÿxwxÿxwxÿwwwÿxwxÿwwwÿffgÿwwwÿwwwÿzzzÿxxxÿwwwÿ{{{ÿ{{{ÿzzzÿ|{|ÿzzzÿ~~~ÿ}||ÿ}||ÿ~~~ÿ}||ÿ}||ÿ}||ÿ~~~ÿ}||ÿ~~~ÿ}||ÿtstÿVVWÿ___ÿxwwÿ___ÿtttÿzxxÿkjkÿkkkÿkkkÿgggÿcccÿQPRÿ^\^ÿMLOÿJJJÿ^^_ÿ>=>ÿ>=>ÿIHHÿ;:;ÿ>=>ÿMLNÿJJJÿGGGÿIHHÿJJJÿJJJÿJJJÿSSSÿTTTÿGGGÿEDFÿGGGÿNNNÿ`_`ÿXXXÿrrrÿpopÿpopÿbbbÿMLNÿFFGÿCCCÿ@@@ÿ<<<ÿ<<<ÿA@BÿGGGÿEDFÿFFFÿFFFÿEDFÿFFFÿEDDÿBBCÿ>=>ÿ>=>ÿCCCÿDCDÿDCDÿCCCÿDCDÿDCDÿHGHÿDCDÿEDFÿCCCÿCCCÿBBCÿCCCÿBBCÿBBCÿBBBÿBBBÿCCCÿCCCÿBBCÿCCCÿEDDÿBBBÿEDDÿCCCÿEDDÿJJJÿTTTÿGGGÿBBBÿEDDÿDFGÿCCCÿGGGÿGGGÿGGGÿ@@@ÿEDDÿBCDÿBCDÿMLOÿXXXÿSSSÿFFFÿGGGÿjjjÿdghÿfffÿmllÿnnnÿdddÿghjÿ___ÿjjjÿihhÿhklÿbbbÿbbbÿkkkÿmllÿklnÿghjÿXXXÿPPPÿTTTÿRRSÿNNOÿGGJÿHGHÿIHHÿIHHÿQPRÿmlnÿqprÿsssÿrrrÿdcdÿKKKÿLLLÿRRRÿPPPÿjjjÿnnnÿnnnÿihhÿVVVÿMLNÿ`_`ÿZZ[ÿa`bÿdcdÿ^\^ÿcccÿa`bÿdcdÿcccÿdcdÿgggÿa`bÿ^^^ÿ[[[ÿYXZÿ`_`ÿ`_`ÿdcdÿfffÿihhÿrrrÿkjkÿedfÿdcdÿbbbÿbbcÿdddÿbbbÿZZZÿ[[[ÿ^^_ÿ^^^ÿ^\^ÿcccÿcccÿa`bÿ^\^ÿ^\^ÿkjkÿihhÿkjkÿpopÿgggÿihhÿpopÿnnnÿnnoÿnnoÿmllÿmllÿhghÿmllÿkkkÿkjkÿmllÿkjkÿ^\^ÿcccÿWWWÿUTVÿkjkÿgggÿgggÿgggÿfffÿdcdÿa`bÿcccÿ`_`ÿkjkÿnnoÿkjkÿedfÿ^^_ÿkjkÿcccÿedfÿWWWÿYX[ÿSRTÿXWYÿQPRÿONQÿ^\^ÿdcdÿkjkÿlklÿoooÿbbcÿmllÿnnoÿgggÿkjkÿwvvÿrrrÿpopÿnnnÿmlnÿoooÿfffÿoooÿtttÿrrsÿnnoÿbbcÿmllÿrrrÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ{{{ÿ}||ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿzzzÿzzzÿzzzÿzzzÿyxzÿzzzÿzzzÿxxxÿxxxÿxxxÿxxxÿxwxÿxwxÿxwxÿwwwÿwwwÿwwwÿlnoÿRRSÿUTVÿQPRÿPPPÿPOQÿTTTÿedfÿrrsÿwwwÿwwwÿqppÿtttÿwwwÿZZZÿqppÿ{{{ÿWWWÿgggÿ{{{ÿihhÿoooÿxwwÿ{{{ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿwvvÿbbcÿXWYÿVVYÿqprÿ~~~ÿ~~~ÿ}||ÿxwwÿzxxÿihhÿ\\\ÿKKKÿa`bÿa`bÿ@@@ÿHGHÿ@@@ÿPPPÿ\[\ÿFFGÿ>=>ÿHGHÿ;:;ÿ;:;ÿIHHÿMLNÿRRSÿRRSÿPOQÿOOOÿPPPÿbbbÿRRSÿMLNÿ___ÿPOQÿLLLÿ^^^ÿ^^_ÿrrrÿqppÿgggÿMLNÿ<<<ÿ<<<ÿBBCÿEDDÿ??@ÿBBCÿFFGÿGGGÿGGGÿEDFÿBBBÿ<<<ÿ<<<ÿ>=>ÿBBCÿEDDÿCCCÿBBCÿCCCÿCCCÿDCDÿCCCÿDCDÿFFFÿGGGÿEDDÿEDDÿEDDÿCCCÿA@BÿBBBÿBBCÿCCCÿCCCÿCCCÿCCCÿCCCÿCCCÿEDDÿNNNÿVVVÿ\\^ÿdddÿ`_`ÿOOOÿGGGÿBBBÿ___ÿRRRÿBCDÿDFGÿIHHÿDFGÿBCDÿGHJÿPOQÿ\\^ÿ```ÿdghÿNNNÿNNOÿghjÿNNNÿkkkÿlnoÿoooÿjjjÿjjjÿcccÿlnoÿgggÿghjÿgggÿgggÿkkkÿklnÿmllÿdghÿNNNÿOOOÿUTVÿXXXÿQPRÿLKLÿHGHÿIHHÿIHHÿVVWÿmllÿpopÿqprÿrrsÿmlnÿJJKÿNNOÿTTTÿpopÿTSTÿtstÿsssÿjjjÿdddÿqppÿ^^_ÿ`_`ÿbbcÿdcdÿihhÿfffÿcccÿfffÿhghÿfffÿbbbÿZZ[ÿTSTÿTSTÿXXXÿ^^_ÿVVWÿa`bÿcccÿ^\^ÿUTVÿrrrÿmllÿihhÿgggÿdcdÿ^\^ÿUTVÿYXZÿcccÿfffÿdddÿdddÿ___ÿbbcÿbbcÿ^^_ÿcccÿihhÿnnnÿmllÿ^\^ÿbbcÿ^\^ÿ^^_ÿoooÿkjkÿkjkÿnnoÿpopÿoooÿmlnÿmllÿkjkÿkjkÿkjkÿkjkÿa`bÿa`bÿihjÿYXZÿ^\^ÿMLOÿQPRÿUTVÿVVWÿ^\^ÿihhÿcccÿ`_`ÿcccÿihhÿnnnÿkjkÿdcdÿcccÿedfÿ`_`ÿZZ[ÿ^\^ÿXWYÿ``dÿSRTÿONQÿMLNÿYXZÿhghÿkkkÿqppÿXXXÿmlnÿqppÿkjkÿmllÿpopÿoooÿpopÿnnoÿpopÿpopÿedfÿrrrÿoooÿpopÿmlnÿbbbÿqppÿwvvÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿzzzÿ{{{ÿ{{{ÿyxzÿyxzÿzzzÿxxxÿxxxÿxwxÿyxzÿxwxÿxwxÿxxxÿwwwÿwwwÿwwwÿvvvÿccfÿTSTÿRRRÿQPRÿSSSÿRRRÿRRSÿRRSÿUTVÿNNOÿRRRÿ^^^ÿXXXÿ^^^ÿxxxÿwwwÿkkkÿzzzÿzxxÿRRRÿsssÿ{{{ÿ`_`ÿ{{{ÿ|{|ÿ{z{ÿxwwÿnnnÿVVWÿVVWÿUTVÿ^^`ÿtstÿ~~~ÿ~~~ÿ}||ÿ}||ÿ~~~ÿxwwÿzxxÿkkkÿUTVÿLKLÿXWYÿYXZÿ___ÿ[[[ÿTSTÿZZ[ÿRRRÿLKLÿCCCÿCCCÿEDDÿEDDÿFFFÿFFFÿGGGÿLKLÿJJJÿOOOÿdddÿmlnÿa`bÿQPRÿKKKÿSSSÿMLNÿPPPÿ^\^ÿTSTÿTSTÿbbbÿPOQÿFFGÿFFFÿGGGÿFFFÿ;:;ÿ@@@ÿ<<<ÿ<<<ÿ>=>ÿ@@@ÿBBCÿDCDÿDCDÿCCCÿEDFÿDCDÿDCDÿDCDÿEDDÿCCCÿBBCÿCCCÿDCDÿEDDÿFFGÿIHHÿCCCÿBBBÿDCDÿCCCÿCCCÿBBBÿCCCÿDCDÿCCCÿEDDÿCCCÿCCCÿZZZÿdcdÿSSSÿKKKÿFFFÿBBBÿBCDÿEDDÿGGGÿklnÿPPPÿLLLÿPPPÿRRSÿZZZÿZZ\ÿTSTÿ\[\ÿ\[^ÿ``dÿTTTÿGHJÿGGGÿGHJÿ[[[ÿfffÿklnÿoooÿihhÿjjjÿfffÿXXXÿfffÿdghÿkkkÿnnnÿnnnÿjjjÿcccÿfffÿLLLÿRRSÿSSSÿSSSÿPPPÿKKKÿIHJÿFFGÿNNOÿccfÿlklÿpopÿpopÿrrrÿZZZÿLLLÿQPRÿXXXÿcccÿQPRÿ```ÿkkkÿkkkÿkjkÿoooÿcccÿmllÿgggÿcccÿcccÿ^\^ÿcccÿkjkÿgggÿcccÿYXZÿVVVÿWWWÿRRSÿNNNÿbbbÿcccÿcccÿcccÿcccÿcccÿ`_`ÿoooÿdcdÿWWWÿVVVÿYXZÿdcdÿedfÿffgÿcccÿdcdÿdcdÿedfÿmllÿkjkÿgggÿihhÿdcdÿkjkÿihjÿdcdÿcccÿgggÿfffÿYXZÿcccÿ^^_ÿmlnÿnnoÿmlnÿpopÿoooÿmllÿkjkÿnnoÿnnnÿgggÿdcdÿhghÿdcdÿZZ[ÿRRSÿOOOÿQPRÿYXZÿ^^_ÿa`bÿVVWÿXXXÿ`_`ÿcccÿfffÿihhÿihhÿihhÿcccÿ`_`ÿedfÿbbcÿ^^`ÿ__bÿ^^`ÿQPRÿPOQÿOOOÿedfÿqppÿrrrÿpopÿkjkÿnnoÿmllÿlklÿffgÿpopÿrrrÿpopÿpopÿmllÿoooÿtstÿoooÿnnoÿihhÿdddÿxwwÿzxxÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ}||ÿ~~~ÿ|{|ÿ}||ÿ~~~ÿ}||ÿ}||ÿ{{{ÿ}||ÿ{{{ÿzzzÿwwwÿwvvÿxxxÿzzzÿzzzÿ{{{ÿzzzÿzzzÿxxxÿxxxÿxxxÿyxzÿyxzÿxwxÿxwxÿxxxÿxwxÿwwwÿwwwÿsstÿsssÿsssÿqprÿ\\^ÿTSTÿNNNÿTTTÿRRRÿPOQÿLLLÿLLLÿMLNÿKKKÿJJJÿPPPÿRRRÿ\[\ÿdddÿnnnÿCCCÿNNNÿkjkÿYXZÿ\[\ÿVVYÿVVYÿRRSÿXWYÿVVVÿffgÿyxzÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿÿ~~~ÿxwwÿwvvÿfffÿfffÿ`_`ÿ^\^ÿFFFÿ??@ÿ>=>ÿA@Bÿ<<<ÿ??@ÿ??@ÿFFFÿJJJÿGGGÿIHHÿLKLÿTSTÿTSTÿ`_`ÿ___ÿTTTÿKKKÿPOQÿ??@ÿCCCÿYXZÿgggÿ[[[ÿNNOÿdddÿVVVÿ^\^ÿVVWÿ<<<ÿ<<<ÿ<<<ÿ??@ÿ;:;ÿBBCÿDCDÿDCDÿEDDÿEDDÿDCDÿDCDÿDCDÿBBCÿEDDÿCCCÿCCCÿDCDÿCCCÿBBCÿCCCÿCCCÿBBCÿCCCÿBBCÿCCCÿFFFÿBBCÿBBBÿ@@@ÿBBBÿCCCÿBBCÿEDDÿCCCÿDCDÿEDDÿIHHÿEDFÿCCCÿBBBÿBBCÿBCDÿBBCÿCCCÿEDDÿBCDÿOOOÿklnÿTTTÿVVVÿ^^^ÿ^^^ÿ^^_ÿ\[\ÿKKKÿVVWÿedfÿOOOÿEDFÿGGGÿLLLÿihhÿjjjÿnnnÿnnnÿjjjÿ^^^ÿUTVÿ^^^ÿfffÿcccÿihhÿmllÿkkkÿihhÿffgÿ`_`ÿfffÿVVVÿUTVÿWWWÿZZZÿVVVÿJJJÿGGGÿIHHÿLKLÿVVWÿoooÿnnnÿqppÿihhÿcccÿffgÿVVWÿOOOÿKKKÿPOQÿfffÿfffÿbbbÿcccÿfffÿ^\^ÿ^\^ÿbbbÿ^^^ÿbbbÿ^\^ÿ`_`ÿTSTÿUTVÿUTVÿPPPÿNNNÿVVWÿ^\^ÿ___ÿ`_`ÿ^^^ÿYXZÿ^\^ÿ```ÿ`_`ÿdcdÿdcdÿXXXÿUTVÿ^\^ÿ^\^ÿdcdÿa`bÿdcdÿedfÿkjkÿmllÿmllÿrrrÿmlnÿihhÿdddÿ^^_ÿ^\^ÿffgÿedfÿedfÿcccÿdcdÿcccÿfffÿkjkÿkjkÿmllÿmllÿnnoÿqppÿqppÿpopÿoooÿoooÿnnoÿkjkÿmllÿihjÿbbcÿSSVÿPOQÿUTWÿPOQÿa`bÿOOOÿOOOÿLKLÿbbcÿgggÿkjkÿmllÿoooÿmllÿihhÿfffÿhghÿhghÿbbcÿ^^`ÿbbcÿUTWÿSRTÿOOOÿOOOÿ___ÿoooÿkkkÿpopÿmllÿkjkÿmllÿnnoÿqppÿrrrÿrrrÿtstÿqppÿkkkÿqprÿnnnÿkjkÿkjkÿihhÿ{{{ÿzxxÿ~~~ÿ~~~ÿ~~~ÿ}||ÿ~~~ÿ~~~ÿ{{{ÿ~~~ÿ}||ÿ~~~ÿ{{{ÿ}||ÿ{{{ÿxxxÿvvvÿwwwÿxwwÿrrrÿwwwÿzzzÿyxzÿyxzÿxxxÿzzzÿxxxÿxxxÿxxxÿxxxÿxxxÿwwwÿxxxÿwwwÿxwxÿvvvÿrrrÿsssÿxxxÿvvvÿwwwÿtttÿrrsÿrrrÿffgÿRRSÿGHJÿIHHÿJJKÿLKLÿIHHÿKKKÿRRSÿQPRÿRRSÿQPRÿSSSÿQPRÿTSTÿKKKÿTSTÿUTVÿUTVÿffgÿyxzÿ}||ÿ~~~ÿ}||ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ|{|ÿtttÿtttÿ```ÿcccÿ___ÿVVWÿMLNÿEDDÿMLNÿVVYÿFFFÿ??@ÿ??@ÿCCCÿIHHÿNNNÿUTVÿHGHÿQPRÿPOQÿZZZÿPOQÿLLLÿ`_`ÿIHHÿBBCÿ??@ÿIHHÿ@@@ÿMLNÿ??@ÿSSSÿ^\^ÿ`_`ÿKKKÿCCCÿFFFÿHGHÿ<<<ÿDCDÿBBCÿCCCÿBBCÿDCDÿDCDÿCCCÿEDFÿEDDÿBBCÿEDDÿEDDÿBBCÿCCCÿCCCÿCCCÿBBCÿCCCÿBBCÿCCCÿCCCÿBBBÿ>=>ÿBBBÿCCCÿ@@@ÿ??@ÿBBCÿBBCÿDCDÿCCCÿCCCÿEDDÿFFGÿKKKÿJJKÿDCDÿBCDÿCCCÿCCCÿCCCÿEDDÿCCCÿdddÿghjÿRRRÿOOOÿRRRÿTTTÿQPRÿUTVÿGHJÿ^^_ÿMLNÿSSVÿHGHÿXWYÿkkkÿhklÿVVVÿfffÿbbbÿTTTÿXWYÿ`_`ÿijkÿjjjÿnnnÿnnnÿklnÿffgÿbbcÿbbbÿ\[\ÿYXZÿTTTÿWWWÿXXXÿ^^^ÿPPPÿIHHÿIHHÿPOQÿihhÿpopÿsssÿrrrÿrrsÿhghÿ```ÿkjkÿoooÿnnoÿkkkÿkjkÿ___ÿ^^^ÿ[[[ÿdddÿbbbÿ___ÿbbcÿ___ÿ^\^ÿ^\^ÿPPPÿZZ[ÿdcdÿ\[\ÿVVWÿYXZÿUTVÿWWWÿ`_`ÿXXXÿUTVÿYXZÿXXXÿWWWÿ^^^ÿ___ÿYXZÿdcdÿa`bÿ^^^ÿa`bÿ`_`ÿbbcÿkkkÿfffÿdddÿkjkÿkkkÿihhÿkjkÿcccÿgggÿffgÿa`bÿfffÿedfÿfffÿfffÿcccÿfffÿfffÿkjkÿmllÿkkkÿnnoÿfffÿhghÿnnoÿnnoÿqppÿnnoÿnnoÿnnoÿnnnÿkkkÿkjkÿedfÿZZ\ÿZZ[ÿPOQÿMLOÿVVYÿOOOÿLKLÿIHJÿZZ[ÿkjkÿhghÿkjkÿmlnÿnnoÿkjkÿihhÿihhÿhghÿbbcÿXWYÿUTVÿYXZÿTSTÿQPRÿSRTÿPPPÿTSTÿnnnÿoooÿrrrÿkjkÿgggÿnnoÿrrrÿnnnÿmlnÿpopÿoooÿkkkÿedfÿbbcÿdddÿlklÿmllÿ}||ÿzxxÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿzzzÿwvvÿ~~~ÿ}||ÿ~~~ÿ}||ÿ}||ÿ}||ÿ{{{ÿsssÿtttÿ{{{ÿ{{{ÿtttÿrrrÿxxxÿzzzÿxxxÿxxxÿyxzÿxxxÿxxxÿxxxÿxwxÿxxxÿwwwÿxwxÿxxxÿxxxÿwwwÿbbbÿtttÿqppÿqppÿffgÿZZ\ÿqprÿedfÿlnoÿlnoÿTTTÿPOQÿ``dÿbbcÿUTVÿNNOÿPPPÿQPRÿPOQÿQPRÿQPRÿRRRÿTTTÿLLLÿnnoÿzxxÿ{{{ÿ}||ÿ|{|ÿ}||ÿ~~~ÿ|{|ÿ}||ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿxwwÿwvvÿ```ÿVVWÿ\[\ÿIHJÿNNNÿTSTÿTTTÿQPRÿNNNÿ^\^ÿQPRÿGGGÿJJJÿ`_`ÿJJJÿGGGÿCCCÿUTVÿIHHÿPOQÿIHJÿHGHÿXWYÿEDDÿLKLÿ`_`ÿbbbÿNNNÿJJJÿbbbÿ___ÿkjkÿEDFÿBBCÿGGGÿHGHÿ;:;ÿEDFÿDCDÿFFFÿDCDÿCCCÿCCCÿDCDÿEDDÿEDDÿEDFÿEDDÿDCDÿEDDÿCCCÿDCDÿCCCÿDCDÿEDDÿBBCÿBBBÿBBCÿBBBÿ>=>ÿ@@@ÿBBCÿBBBÿ<<<ÿ@@@ÿBBCÿBBCÿCCCÿBBCÿEDDÿCCCÿEDFÿMLNÿLLLÿFFFÿBBCÿCCCÿBBBÿCCCÿFFFÿlnoÿYXZÿRRRÿPPPÿOOOÿPOQÿTSTÿZZ[ÿUTVÿPPPÿdcdÿoooÿjklÿlnoÿhklÿghjÿhklÿkkkÿ^^^ÿJJJÿSSSÿijkÿmllÿmllÿ___ÿihhÿdcdÿbbcÿa`bÿ___ÿUTVÿPOQÿWWWÿ\\\ÿ___ÿVVVÿJJJÿIHHÿRRRÿkjkÿpopÿsssÿqppÿtstÿbbcÿnnnÿZZ[ÿLKLÿRRRÿffgÿa`bÿRRSÿTTTÿVVVÿWWWÿ^^^ÿ^^_ÿ`_`ÿZZ[ÿcccÿ```ÿTSTÿOOOÿQPRÿQPRÿUTWÿVVWÿTSTÿUTVÿXWYÿ^\^ÿdcdÿbbbÿ^^_ÿZZ[ÿZZ[ÿZZZÿ^\^ÿ___ÿ```ÿmllÿdddÿ^^^ÿgggÿoooÿnnnÿtstÿmllÿjjjÿmllÿkkkÿkkkÿihhÿkjkÿgggÿdcdÿkjkÿkjkÿkjkÿkjkÿmlnÿihhÿkjkÿmllÿhghÿcccÿa`bÿkjkÿihhÿgggÿihhÿhghÿdcdÿbbbÿ^\^ÿVVWÿ^\^ÿ`_`ÿXWYÿPOQÿOOOÿMLOÿMLOÿMLOÿMLOÿJJLÿMLNÿUTWÿkjkÿedfÿkjkÿkkkÿnnnÿkjkÿihhÿihhÿfffÿcccÿ^^^ÿZZZÿZZ[ÿ^^_ÿUTWÿUTWÿPOQÿVVVÿmllÿihhÿqppÿkjkÿmllÿpopÿrrrÿrrrÿnnoÿrrrÿnnnÿkjkÿ`_`ÿ^^_ÿoooÿoooÿoooÿzzzÿzzzÿ~~~ÿ~~~ÿ}||ÿffgÿzzzÿ~~~ÿfffÿ{{{ÿrrrÿnnnÿ}||ÿ}||ÿzxxÿrrrÿvvvÿ{{{ÿ{{{ÿvvvÿoooÿvvvÿzzzÿyxzÿxxxÿxxxÿxxxÿyxzÿxxxÿyxzÿxxxÿxwxÿwwwÿxxxÿwwwÿwwwÿ[[[ÿ[[[ÿklnÿdghÿdghÿvvvÿffgÿcccÿmllÿijkÿVVWÿJJKÿmlnÿTSTÿihjÿZZZÿrrsÿwvvÿsssÿtttÿZZ[ÿVVVÿIHHÿTSTÿSRTÿtttÿ{{{ÿ|{|ÿ}||ÿ}||ÿ~~~ÿ}||ÿ}||ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿÿ}||ÿwvvÿrrrÿ```ÿMLNÿVVVÿTSTÿFFGÿa`bÿ```ÿYXZÿ\[\ÿedfÿWWWÿ@@@ÿ>=>ÿ??@ÿA@BÿFFFÿJJJÿ^\^ÿGGGÿMLNÿPOQÿONQÿIHHÿKKKÿYXZÿ```ÿ___ÿ^^_ÿ___ÿgggÿ[[[ÿ[[[ÿBBBÿCCCÿFFGÿHGHÿ<<<ÿEDDÿEDDÿDCDÿCCCÿCCCÿEDDÿDCDÿDCDÿDCDÿEDDÿDCDÿDCDÿCCCÿCCCÿDCDÿEDDÿCCCÿCCCÿEDDÿCCCÿCCCÿBBBÿ>=>ÿ??@ÿBBBÿCCCÿ>=>ÿ??@ÿDCDÿBBCÿDCDÿCCCÿEDDÿEDDÿEDDÿGGGÿNNNÿLLLÿFFFÿBCDÿCCCÿEDDÿIHHÿmllÿOOOÿLLLÿTSTÿ^^_ÿ\\^ÿ^^_ÿ^^_ÿ``dÿgggÿlklÿnopÿffgÿdghÿOOOÿRRRÿdcdÿ\\\ÿ^^^ÿSSSÿihhÿkkkÿihhÿ[[[ÿSSSÿgggÿdddÿcccÿcccÿXXXÿWWWÿZZZÿcccÿffgÿbbbÿRRRÿIHHÿNNOÿkkkÿqppÿqppÿqppÿqppÿdcdÿMLNÿLLLÿOOOÿSSSÿMLNÿXWYÿRRSÿTTTÿ^^^ÿZZZÿRRSÿTSTÿWWWÿ^\^ÿWWWÿWWWÿ^\^ÿQPRÿRRRÿUTVÿ^\^ÿSRTÿPOQÿSRTÿVVWÿ^\^ÿ^^_ÿcccÿcccÿ[[[ÿ^\^ÿYXZÿVVWÿTSTÿ^\^ÿUTVÿXWYÿ^\^ÿihhÿkjkÿfffÿnnoÿkjkÿkjkÿjjjÿkkkÿkkkÿihhÿgggÿkjkÿmllÿnnoÿnnoÿnnnÿihhÿffgÿffgÿgggÿihhÿfffÿdcdÿfffÿdcdÿa`bÿkjkÿ^\^ÿTSTÿOOOÿONQÿLKLÿLKLÿLKLÿMLNÿJJJÿMLOÿMLOÿLKLÿMLOÿJJLÿ^\^ÿXWYÿJJLÿONQÿSRTÿ^^_ÿrrrÿkjkÿgggÿkjkÿnnnÿmllÿoooÿoooÿhghÿgggÿdcdÿ`_`ÿ^^_ÿ^\^ÿ^\^ÿXWYÿnnnÿoooÿcccÿmllÿcccÿfffÿdcdÿhghÿffgÿ^^^ÿ`_`ÿTSTÿmlnÿfffÿedfÿdcdÿnnnÿkkkÿZZZÿbbbÿ{z{ÿfffÿoooÿ}||ÿ~~~ÿ|{|ÿ}||ÿRRSÿdddÿzzzÿlklÿa`bÿtttÿrrrÿxxxÿ{{{ÿ{{{ÿvvwÿnnoÿvvvÿyxzÿxxxÿxxxÿyxzÿxxxÿxxxÿxxxÿxxxÿxxxÿwwwÿxxxÿvvwÿwwwÿwwwÿhklÿcccÿsssÿdddÿsstÿghjÿdddÿklnÿihhÿsstÿihjÿbbcÿqppÿutvÿrrsÿrrrÿkjkÿwvvÿyxzÿzxxÿxwxÿdghÿcccÿNNNÿVVWÿRRSÿmllÿ{z{ÿ}||ÿ|{|ÿ|{|ÿ{{{ÿ}||ÿ}||ÿ}||ÿ}||ÿ~~~ÿ~~~ÿ}||ÿxwwÿqppÿfffÿdddÿ```ÿ^\^ÿ```ÿRRSÿ`_`ÿcccÿkkkÿ\[\ÿXXXÿMLNÿJJJÿFFGÿFFFÿIHHÿFFFÿIHHÿLLLÿJJJÿ```ÿEDDÿGGGÿMLNÿcccÿ\[\ÿ`_`ÿbbcÿcccÿYXZÿfffÿNNOÿEDFÿDCDÿGGGÿLKLÿCCCÿCCCÿEDDÿDCDÿDCDÿEDDÿDCDÿEDDÿEDDÿEDDÿEDDÿCCCÿEDDÿDCDÿCCCÿEDDÿCCCÿDCDÿEDDÿEDDÿBBBÿBBCÿBBBÿ>=>ÿ??@ÿDCDÿCCCÿ>=>ÿ??@ÿBBCÿCCCÿDCDÿEDFÿEDDÿCCCÿFFFÿFFFÿFFFÿJJKÿKKKÿEDDÿBBBÿBBBÿNNNÿghjÿJJJÿPPPÿTTTÿSSSÿVVVÿ`_`ÿgggÿghjÿcccÿhklÿffgÿdghÿ\\^ÿPOQÿNNNÿDFGÿJJJÿ[[[ÿjjjÿihhÿWWWÿSSSÿdddÿa`bÿfffÿbbbÿbbbÿUTVÿRRRÿa`bÿgggÿdcdÿedfÿ```ÿ[[[ÿTTTÿ___ÿrrrÿnnnÿkkkÿbbbÿXXXÿTTTÿTTTÿVVVÿUTVÿRRSÿZZ[ÿVVWÿTTTÿTTTÿZZZÿTSTÿSSSÿQPRÿVVVÿUTVÿWWWÿ^^_ÿdddÿ`_`ÿcccÿVVWÿTSTÿTSTÿZZ[ÿYXZÿPOQÿMLNÿOOOÿUTVÿUTVÿVVVÿZZ[ÿVVWÿZZZÿWWWÿXWYÿXXXÿ^^_ÿbbbÿgggÿbbcÿ```ÿbbcÿfffÿmllÿihhÿmllÿmllÿdddÿihhÿmllÿmllÿkjkÿkjkÿmllÿkjkÿkjkÿgggÿhghÿgggÿkjkÿcccÿ^\^ÿcccÿ`_`ÿ^^^ÿVVVÿQPRÿPOQÿNNOÿMLNÿLKNÿONQÿLKLÿLKLÿLKNÿJJLÿLKNÿHGHÿHGHÿkjkÿihjÿdcdÿkjkÿ^\^ÿSRTÿmlnÿqppÿkjkÿmlnÿpopÿoooÿnnnÿnnoÿnnoÿnnnÿgggÿihhÿa`bÿedfÿkjkÿRRSÿYXZÿ^\^ÿUTVÿpopÿihhÿRRSÿ`_`ÿ^^^ÿTTTÿ^\^ÿmllÿtstÿa`bÿ^^_ÿ\[\ÿgggÿ^^_ÿXXXÿoooÿxwwÿzxxÿ}||ÿ~~~ÿ}||ÿ~~~ÿ|{|ÿ}||ÿGGGÿFFFÿ{{{ÿ{{{ÿ|{|ÿnnnÿVVYÿoooÿ{{{ÿ{z{ÿtttÿoooÿwwwÿxxxÿzzzÿxxxÿxxxÿxxxÿyxzÿxxxÿxxxÿxwxÿxwxÿwwwÿwwwÿwwwÿwwwÿwwwÿsstÿqppÿbbbÿsssÿvvwÿwwwÿvvvÿwwwÿvvwÿqppÿjjjÿvvvÿxxxÿxwxÿxwxÿmllÿyxzÿxwwÿtttÿtstÿijkÿxwwÿrrsÿNNOÿRRSÿNNOÿtstÿ{{{ÿxwxÿzxxÿ{{{ÿzxxÿyxzÿzxxÿ|{|ÿ|{|ÿ~~~ÿ}||ÿwvvÿmlnÿfffÿVVWÿ^\^ÿ```ÿfffÿZZZÿ`_`ÿbbbÿffgÿQPRÿLKLÿRRRÿHGHÿIHHÿPOQÿMLNÿJJJÿHGHÿGGGÿTTTÿIHHÿGGGÿOOOÿIHJÿWWWÿ`_`ÿTTTÿbbcÿ\[\ÿedfÿfffÿJJJÿGGGÿCCCÿIHJÿIHJÿ@@@ÿEDDÿCCCÿCCCÿDCDÿCCCÿEDDÿDCDÿEDDÿEDFÿDCDÿDCDÿCCCÿEDDÿEDFÿEDDÿDCDÿEDDÿCCCÿCCCÿCCCÿCCCÿBBBÿ>=>ÿ@@@ÿDCDÿCCCÿ??@ÿ??@ÿDCDÿDCDÿCCCÿCCCÿEDDÿEDFÿEDDÿEDFÿFFGÿJJKÿKKKÿPPPÿNNNÿBBCÿZZ\ÿedfÿRRSÿLKNÿPOQÿPOQÿ`_`ÿ\[\ÿ__bÿlklÿ\[^ÿbbdÿXWYÿOOOÿZZ[ÿ`_`ÿMLNÿZZ\ÿffgÿ`_`ÿ\\^ÿRRSÿLLLÿPPPÿVVWÿgggÿ```ÿXWYÿOOOÿRRRÿ___ÿ`_`ÿ[[[ÿdddÿgggÿnnnÿnnnÿXXXÿffgÿmllÿ[[[ÿVVWÿ[[[ÿRRRÿTSTÿNNNÿYXZÿXXXÿVVWÿSSSÿXXXÿXXXÿPPPÿ^\^ÿ```ÿSSSÿRRSÿRRRÿRRRÿTTTÿVVWÿQPRÿ\[\ÿPOQÿPOQÿMLNÿMLNÿMLNÿMLNÿMLNÿNNNÿQPRÿTSTÿTSTÿ^^_ÿ^\^ÿ^^^ÿ^\^ÿa`bÿ[[[ÿa`bÿfffÿmllÿkjkÿnnnÿoooÿmllÿkjkÿmllÿmllÿkjkÿoooÿmllÿoooÿnnnÿmlnÿmllÿkkkÿkkkÿnnnÿmllÿgggÿfffÿbbcÿgggÿihhÿbbcÿgggÿcccÿVVVÿSSSÿPOQÿMLNÿLKNÿMLOÿMLOÿJJLÿJJLÿLKLÿLKLÿLKLÿIHJÿIHJÿQPRÿqprÿ^^`ÿpopÿa`bÿ^\^ÿQPRÿhghÿtstÿrrrÿtstÿqppÿoooÿnnoÿmlnÿmllÿnnnÿkjkÿgggÿffgÿihhÿ[[[ÿUTVÿgggÿPOQÿLKLÿhghÿkjkÿ^\^ÿYXZÿVVWÿTSTÿ`_`ÿUTVÿffgÿ___ÿkkkÿ[[[ÿmlnÿffgÿ\[\ÿkkkÿpopÿzxxÿzzzÿ}||ÿ}||ÿ{{{ÿ}||ÿ}||ÿqprÿoooÿ}||ÿ|{|ÿ|{|ÿ}||ÿvvvÿihjÿdddÿedfÿZZZÿ`_`ÿqppÿ{{{ÿyxzÿxxxÿxxxÿxwxÿxwxÿxxxÿxxxÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿstvÿrrrÿxwxÿwwwÿwwwÿxxxÿvvwÿxxxÿxxxÿwwwÿmlnÿmllÿutvÿxwxÿzxxÿzzzÿzzzÿxxxÿwvvÿxwwÿedfÿyxzÿtstÿrrrÿnnoÿPPPÿNNNÿLLLÿxwwÿxwxÿ|{|ÿ}||ÿxwxÿxwxÿxwxÿyxzÿ{{{ÿ{z{ÿxwwÿtstÿihhÿedfÿSSSÿ^^_ÿcccÿffgÿVVVÿXWYÿQPRÿJJKÿLKLÿGGGÿIHHÿQPRÿGGGÿTSTÿKKKÿ^\^ÿIHJÿLKLÿXWYÿLKLÿGGGÿVVWÿNNNÿRRRÿfffÿ```ÿffgÿfffÿihhÿcccÿIHHÿFFFÿCCCÿHGHÿLKLÿ<<<ÿEDFÿBBCÿCCCÿCCCÿCCCÿBBCÿEDDÿEDDÿEDFÿDCDÿDCDÿCCCÿCCCÿDCDÿEDDÿDCDÿDCDÿDCDÿCCCÿBBCÿDCDÿ@@@ÿ>=>ÿ@@@ÿCCCÿ@@@ÿ@@@ÿDCDÿDCDÿEDDÿFFFÿEDFÿEDFÿDCDÿCCCÿFFGÿFFGÿIHHÿMLNÿMLNÿTTTÿPOQÿ\[\ÿUTVÿMLNÿKKKÿQPRÿ``dÿ__bÿggjÿVVVÿdghÿdghÿ``dÿ\\^ÿYXZÿedfÿffhÿffgÿ\[^ÿQPRÿXWYÿPOQÿJJKÿRRRÿXXXÿ[[[ÿ```ÿfffÿ\\\ÿedfÿfffÿihhÿkjkÿnnnÿnnnÿmllÿoooÿmllÿbbbÿXXXÿVVVÿWWWÿXWYÿ[[[ÿZZ[ÿKKKÿNNNÿ\\\ÿVVVÿTTTÿVVVÿTTTÿVVVÿRRSÿ___ÿa`bÿXXXÿTSTÿRRSÿOOOÿZZ[ÿOOOÿZZ[ÿNNNÿPPPÿQPRÿMLNÿMLNÿMLNÿMLNÿRRSÿXWYÿXXXÿVVWÿ^\^ÿ^^_ÿ^\^ÿ^\^ÿ^^_ÿa`bÿihhÿcccÿfffÿkjkÿgggÿfffÿkjkÿmllÿkjkÿihhÿoooÿnnnÿoooÿoooÿnnnÿqppÿnnnÿoooÿnnnÿnnnÿoooÿmllÿkjkÿihhÿoooÿqppÿnnoÿfffÿfffÿ`_`ÿRRSÿSSSÿUTVÿXWYÿTSTÿPOQÿPOQÿMLNÿONQÿMLNÿMLOÿLKLÿLKLÿMLNÿ\[^ÿYX[ÿ\[^ÿffgÿVVWÿONQÿQPRÿwvvÿtstÿtstÿtstÿqppÿnnoÿrrrÿqppÿmllÿkjkÿkjkÿkjkÿmllÿoooÿnnnÿpopÿTSTÿFFGÿPOQÿZZ[ÿUTVÿcccÿVVVÿ[[[ÿdcdÿ^^^ÿ^\^ÿPPPÿGGGÿedfÿXWYÿZZZÿVVVÿXWYÿKKKÿVVVÿjjjÿXXXÿjjjÿPPPÿwvvÿnnnÿoooÿa`bÿzxxÿ}||ÿ{z{ÿ{{{ÿ{{{ÿ{z{ÿxwxÿvvvÿvvvÿwwwÿxwxÿqppÿnnoÿyxzÿxxxÿxxxÿxxxÿxxxÿxwxÿxxxÿxwxÿwwwÿwwwÿxwxÿvvvÿwwwÿrrsÿsssÿvvvÿwwwÿvvwÿvvvÿwwwÿwwwÿvvwÿsstÿqppÿpopÿqppÿwwwÿwwwÿxxxÿxxxÿzxxÿxwwÿZZ\ÿtttÿxwxÿutvÿxwxÿtstÿqprÿNNOÿLLLÿlklÿzxxÿ{z{ÿ~~~ÿxwxÿxwwÿ|{|ÿvvwÿzzzÿtstÿoooÿmllÿfffÿkjkÿSSSÿa`bÿa`bÿYXZÿ^\^ÿEDDÿXWYÿEDDÿQPRÿLKLÿHGHÿGGGÿPOQÿOOOÿIHHÿQPRÿIHHÿGGGÿYXZÿMLNÿLLLÿRRSÿWWWÿYX[ÿ[[[ÿ```ÿkkkÿjjjÿdddÿYXZÿJJJÿFFFÿCCCÿFFFÿIHHÿ;:;ÿEDDÿCCCÿCCCÿDCDÿDCDÿCCCÿDCDÿEDDÿEDDÿCCCÿEDDÿEDDÿBBCÿDCDÿEDDÿEDDÿEDDÿCCCÿEDDÿBBCÿBBCÿBBBÿ??@ÿ@@@ÿA@BÿA@BÿCCCÿFFFÿEDDÿEDFÿFFFÿFFFÿEDFÿEDDÿBBCÿDCDÿBBCÿDFGÿMLNÿLLLÿJJKÿGHJÿJJJÿJJKÿJKLÿTTTÿdcdÿhklÿhklÿhklÿghjÿ^^`ÿghjÿWWWÿTSTÿVVYÿffgÿUTVÿTSTÿTSTÿ^^_ÿ\\\ÿRRSÿVVWÿ^\^ÿ___ÿdddÿbbcÿdddÿfffÿhghÿkjkÿmllÿmlnÿoooÿnnoÿoooÿkkkÿZZZÿVVVÿRRRÿPPPÿVVVÿ[[[ÿPPPÿXXXÿXWYÿVVWÿOOOÿWWWÿOOOÿPPPÿOOOÿRRSÿZZ[ÿONQÿPOQÿVVWÿYXZÿUTVÿTSTÿTSTÿPOQÿMLNÿMLOÿMLNÿLLLÿMLNÿMLNÿMLOÿSRTÿXWYÿVVWÿRRSÿQPRÿ^\^ÿbbcÿkjkÿgggÿ\[\ÿ^^_ÿ^^_ÿmllÿkkkÿfffÿfffÿkkkÿkkkÿnnnÿmllÿoooÿoooÿnnnÿoooÿkkkÿmllÿqppÿnnnÿnnnÿnnoÿnnnÿedfÿrrrÿmlnÿihhÿkjkÿkkkÿmllÿmlnÿnnnÿa`bÿWWWÿPPPÿQPRÿUTVÿ`_`ÿYXZÿZZ[ÿYXZÿTSTÿVVWÿSRTÿJJJÿLKLÿMLOÿYX[ÿkjkÿpopÿpopÿ^\^ÿihjÿVVWÿpopÿqppÿpopÿqppÿqppÿrrrÿnnnÿmllÿnnnÿmllÿnnoÿpopÿqppÿqppÿnnoÿZZ[ÿMLOÿIHJÿRRSÿffgÿcccÿ^\^ÿYXZÿwvvÿffgÿ[[[ÿRRSÿCCCÿKKKÿ^^_ÿMLNÿLLLÿPPPÿGGGÿLKLÿLLLÿCCCÿoooÿEDDÿqppÿHGHÿQPRÿSRTÿNNOÿkjkÿ|{|ÿ}||ÿ}||ÿ|{|ÿ{{{ÿ{{{ÿzzzÿyxzÿ{z{ÿyxzÿxxxÿutvÿedfÿzzzÿxxxÿyxzÿvvvÿzzzÿxwxÿwwwÿxxxÿvvwÿwwwÿxwxÿwwwÿqqvÿsstÿvvvÿwwwÿwwwÿwwwÿvvwÿwwwÿwwwÿwwwÿwwwÿwwwÿxwxÿzxxÿzxxÿxwxÿxxxÿzzzÿtttÿmlnÿvvwÿzxxÿxwxÿyxzÿzxxÿ{{{ÿihjÿPPPÿPPPÿ{{{ÿ|{|ÿ}||ÿ|{|ÿ|{|ÿ}||ÿ|{|ÿ}||ÿzxxÿrrrÿcccÿcccÿ`_`ÿ^^_ÿVVVÿWWWÿ```ÿWWWÿKKKÿPOQÿYXZÿGGJÿMLNÿHGHÿGGGÿGGGÿ^\^ÿIHHÿMLNÿIHHÿPOQÿOOOÿTTTÿRRSÿ[[[ÿ\[\ÿ^^^ÿkjkÿmllÿihhÿKKKÿZZ[ÿNNNÿJJJÿIHHÿIHJÿGGGÿBBCÿ>=>ÿEDDÿCCCÿBBCÿDCDÿBBCÿCCCÿDCDÿEDDÿEDDÿEDDÿDCDÿEDDÿCCCÿEDDÿDCDÿEDDÿEDDÿEDDÿCCCÿCCCÿCCCÿBBCÿBBCÿEDFÿCCCÿCCCÿDCDÿEDDÿEDDÿDCDÿFFGÿFFGÿFFFÿFFFÿFFFÿEDFÿEDFÿGGGÿHGHÿLLLÿJKLÿGHJÿJKLÿGHJÿXWYÿedfÿkkkÿqprÿqppÿklnÿijkÿffgÿhklÿYXZÿJJJÿSSVÿZZZÿHGHÿDFGÿYXZÿ\[\ÿdcdÿbbcÿcccÿgggÿbbcÿedfÿgggÿjjjÿkjkÿmllÿmllÿoooÿoooÿqppÿqppÿfffÿWWWÿ\\\ÿ^^^ÿ___ÿTTTÿXXXÿ^\^ÿTTTÿSSSÿQPRÿPOQÿSSSÿTSTÿTSTÿPOQÿPPPÿNNOÿUTVÿkjkÿ^\^ÿYXZÿUTVÿTSTÿMLNÿLKLÿMLOÿONQÿMLOÿMLNÿLKLÿLLLÿTTTÿVVWÿ[[[ÿdcdÿbbbÿdddÿedfÿmllÿnnnÿpopÿmllÿ`_`ÿdcdÿffgÿihhÿkjkÿ^^_ÿihhÿjjjÿjjjÿjjjÿmllÿkkkÿmllÿnnoÿoooÿoooÿnnnÿmllÿmllÿjjjÿnnnÿnnnÿoooÿnnoÿkkkÿmllÿkjkÿkjkÿdcdÿgggÿdcdÿcccÿ[[[ÿXWYÿRRSÿVVWÿdddÿbbbÿdcdÿ^\^ÿcccÿ^^^ÿXWYÿQPRÿPOQÿQPRÿ^^_ÿbbcÿkjkÿZZZÿRRSÿihhÿpopÿ^^_ÿ^\^ÿnnoÿqppÿqprÿrrrÿrrsÿoooÿoooÿqppÿqppÿqppÿqppÿpopÿdcdÿedfÿQPRÿPPPÿVVWÿRRSÿKKKÿoooÿYXZÿTTTÿmlnÿ___ÿcccÿMLNÿLLLÿ\[\ÿOOOÿIHJÿTTTÿ@@@ÿkjkÿKKKÿUTVÿ^^_ÿTTTÿLKLÿdcdÿHGHÿIHJÿ`_`ÿYXZÿ{{{ÿ{{{ÿ|{|ÿ{{{ÿ{{{ÿ{{{ÿzzzÿ{z{ÿzzzÿzzzÿzzzÿyxzÿxwxÿdcdÿlnoÿsssÿwwwÿstvÿwwwÿwwwÿwwwÿxxxÿvvvÿvvvÿvvvÿstvÿsssÿvvwÿwwwÿwwwÿwwwÿvvwÿvvvÿwwwÿvvwÿwwwÿxwxÿwwwÿxwxÿwwwÿxwxÿzxxÿxwwÿhghÿxwwÿyxzÿyxzÿ{z{ÿ{z{ÿ{{{ÿzzzÿ|{|ÿVVVÿVVVÿpopÿ}||ÿ|{|ÿ{{~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿrrrÿYXZÿNNNÿVVWÿYXZÿZZ[ÿPPPÿNNNÿRRSÿIHHÿEDDÿSSSÿPOQÿMLNÿHGHÿIHHÿMLNÿPOQÿMLNÿIHHÿVVWÿ^^_ÿ\[\ÿZZZÿOOOÿNNNÿ^\^ÿYXZÿ```ÿkkkÿgggÿQPRÿmllÿXWYÿGGGÿFFGÿJJJÿKKKÿBBBÿBBCÿ@@@ÿCCCÿAAAÿ??@ÿBBBÿEDDÿDCDÿCCCÿEDDÿEDDÿEDDÿEDDÿEDDÿDCDÿEDDÿEDDÿEDDÿEDFÿDCDÿEDDÿDCDÿDCDÿBBCÿDCDÿFFFÿDCDÿDCDÿEDDÿBBCÿCCCÿGGGÿHGHÿGGGÿDFGÿHGHÿFEIÿFFFÿEDDÿBBCÿDFGÿJKLÿMLRÿRRRÿ```ÿ`_`ÿdghÿhklÿqprÿnopÿghjÿdghÿghjÿ\[^ÿZZ[ÿMLNÿGGGÿPPPÿSRTÿEDDÿHGHÿVVWÿdcdÿhghÿkjkÿmlnÿmllÿmlnÿlklÿmlnÿnnnÿnnnÿoooÿqppÿqppÿoooÿYXZÿZZZÿXXXÿ[[[ÿYXZÿ^^^ÿWWWÿXXXÿ\[\ÿYXZÿOOOÿWWWÿSSSÿOOOÿTSTÿXXXÿYXZÿRRSÿNNNÿVVVÿYXZÿTSTÿQPRÿPPPÿMLNÿLKLÿONQÿMLNÿMLNÿMLNÿLKLÿMLNÿVVWÿfffÿfffÿkjkÿnnnÿnnoÿpopÿnnnÿkjkÿhghÿbbcÿedfÿ`_`ÿcccÿgggÿgggÿihhÿcccÿgggÿfffÿfffÿihhÿnnnÿfffÿkkkÿmllÿqppÿihhÿ^^^ÿnnnÿnnnÿkjkÿoooÿnnnÿmllÿmllÿnnnÿdddÿRRSÿUTVÿkjkÿkjkÿkjkÿfffÿYXZÿ^^^ÿ`_`ÿ^^_ÿedfÿihhÿlklÿihhÿkjkÿbbbÿ^\^ÿ^\^ÿYXZÿPOQÿYXZÿVVWÿnnoÿpopÿkjkÿkjkÿkjkÿmllÿkjkÿcccÿ^\^ÿnnnÿrrrÿrrrÿkjkÿ`_`ÿihhÿnnnÿqppÿnnnÿmllÿRRSÿSRTÿUTWÿ\[\ÿa`bÿUTVÿ^\^ÿdddÿedfÿgggÿ`_`ÿnnoÿhghÿa`bÿ^^_ÿVVWÿ`_`ÿVVWÿUTVÿhghÿwvvÿrrsÿ|{|ÿxxxÿxwxÿPPPÿtttÿsssÿrrrÿwwwÿwwwÿwwwÿzzzÿ{{{ÿ{z{ÿ{{{ÿxxxÿxwxÿxxxÿxxxÿvvwÿwwwÿxwxÿwwwÿsstÿqppÿqppÿjjjÿfffÿqppÿsssÿvvvÿtttÿrrrÿrrrÿsstÿstvÿsssÿvvvÿvvwÿwwwÿvvwÿvvwÿwwwÿxwxÿwwwÿvvwÿxwxÿvvwÿwwwÿwwwÿxwxÿxwwÿqppÿpopÿxwwÿzxxÿyxzÿ{z{ÿ{{{ÿ{z{ÿ{{{ÿ{{{ÿpopÿVVYÿXXXÿ|{|ÿ|{|ÿ~~~ÿ~~~ÿ{{~ÿ~~~ÿ~~~ÿzzzÿZZ[ÿLKLÿGGGÿOOOÿTSTÿOOOÿXWYÿLLLÿMLNÿUTVÿJJJÿffhÿNNOÿGGGÿSRTÿMLNÿQPRÿJJJÿNNOÿNNNÿGGGÿGGGÿQPRÿPPPÿZZ[ÿPPPÿJJJÿKKKÿVVVÿ^\^ÿNNNÿ```ÿZZ[ÿPPPÿHGHÿFFFÿJJJÿJJJÿBBCÿEDDÿ>=>ÿ8?Eÿ0Spÿ.>Hÿ999ÿBABÿEDDÿEDDÿEDDÿEDDÿEDDÿEDDÿEDDÿEDDÿFFFÿEDDÿEDDÿEDDÿBBCÿEDDÿDCDÿCCCÿCCCÿEDDÿFFGÿFFFÿBBBÿFFFÿFFFÿHGHÿKKKÿNNNÿPPPÿOOOÿNNNÿPPPÿPOQÿJKLÿJJJÿGHJÿNNOÿXWYÿ``dÿdddÿijkÿghjÿhklÿklnÿhklÿhklÿdcdÿ^^`ÿijkÿ__bÿEDFÿDFGÿJJKÿ__bÿ\[\ÿHGHÿJJKÿ\[^ÿmlnÿnnnÿpopÿnnnÿoooÿoooÿqppÿnnoÿnnnÿpopÿqppÿmllÿVVWÿRRSÿZZZÿ^^_ÿ[[[ÿWWWÿZZZÿXXXÿTTTÿTTTÿ[[[ÿRRSÿUTVÿOOOÿPPPÿUTVÿXWYÿNNOÿWWWÿNNNÿRRRÿQPRÿNNOÿMLNÿMLNÿMLNÿNNOÿPOQÿSRTÿQPRÿMLOÿ^\^ÿ^\^ÿa`bÿoooÿmllÿnnnÿkjkÿfffÿihhÿfffÿ^^_ÿmllÿihhÿkjkÿihhÿdcdÿfffÿcccÿXWYÿcccÿfffÿ```ÿfffÿihhÿihhÿkjkÿnnnÿoooÿnnnÿkkkÿnnnÿnnnÿnnoÿnnnÿoooÿnnnÿoooÿqppÿqppÿnnoÿgggÿ`_`ÿgggÿnnnÿkjkÿgggÿ^^^ÿZZ[ÿdddÿgggÿkjkÿihhÿihhÿihhÿdcdÿhghÿhghÿkjkÿcabÿVRUÿXRTÿRGJÿ_MQÿXAFÿT9?ÿW8>ÿT4:ÿP/6ÿQ/6ÿT4:ÿX:@ÿS8>ÿT=Bÿ_MQÿRHJÿKEHÿJGHÿLKNÿRRSÿ^^^ÿ^\^ÿOOOÿTSTÿnnoÿkjkÿfffÿVVWÿ^\^ÿ^\^ÿXXXÿqppÿwvvÿffgÿnnnÿedfÿZZ[ÿa`bÿRRSÿTSTÿZZ[ÿoooÿtttÿpopÿ{{{ÿ}||ÿ}||ÿxxxÿyxzÿtttÿrrsÿtttÿsstÿstvÿstvÿwwwÿ{z{ÿ{z{ÿzxxÿvvvÿvvvÿxxxÿtttÿsstÿsssÿvvvÿstvÿwwwÿqprÿvvvÿhklÿghjÿ^^^ÿ```ÿqppÿnopÿnopÿqppÿsstÿsssÿvvwÿvvwÿvvwÿwwwÿwwwÿvvwÿwwwÿwwwÿvvwÿvvwÿwwwÿwwwÿxwxÿvvwÿutvÿmlnÿtttÿnnoÿnnoÿwwwÿzzzÿzzzÿ{{{ÿ{z{ÿ|{|ÿyxzÿVVWÿYXZÿyxzÿ}||ÿ~~~ÿ~~~ÿ{{~ÿ~~~ÿ|{|ÿqppÿPOQÿFFFÿOOOÿXWYÿfffÿ\\\ÿQPRÿFFGÿFFFÿKKKÿIHJÿRRSÿIHJÿIHHÿJJKÿZZZÿLLLÿYXZÿNNNÿ\[\ÿHGHÿQPRÿMLOÿRRSÿLKLÿHGHÿIHJÿFFGÿgggÿZZZÿedfÿYXZÿ^^_ÿPOQÿEDDÿFFGÿIHJÿEDDÿ??@ÿ;:;ÿ99;ÿ/v²ÿ@“âÿ3ŠÙÿ+Z‚ÿ247ÿ?>>ÿDCEÿEDDÿEDDÿEDDÿEDDÿEDFÿEDFÿFFFÿEDDÿEDFÿFFFÿDCDÿFFFÿEDDÿBBCÿCCCÿBBBÿCCCÿFFFÿCCCÿDCDÿHGHÿGGGÿIHJÿLKLÿLLLÿNNOÿMLNÿPOQÿSSVÿRRSÿYXZÿZZZÿZZ\ÿ\\^ÿZZZÿddgÿccfÿ``dÿbbbÿ```ÿghjÿ```ÿ\\^ÿlnoÿghjÿLLLÿIHHÿBBBÿMLOÿIHHÿJJKÿUTVÿDFGÿFFGÿUTWÿkjkÿoooÿpopÿnnoÿnnnÿkkkÿmllÿihhÿdcdÿ`_`ÿcccÿZZ[ÿ```ÿXXXÿcccÿcccÿ^^^ÿ^\^ÿZZZÿWWWÿSSSÿ^\^ÿ[[[ÿSSSÿWWWÿRRRÿWWWÿZZ[ÿRRSÿ\[\ÿVVWÿWWWÿMLOÿMLNÿMLOÿOOOÿNNOÿUTVÿdcdÿlklÿdddÿTSTÿPOQÿ^^_ÿ```ÿcccÿcccÿcccÿ^\^ÿ\[\ÿihhÿgggÿkjkÿhghÿa`bÿcccÿfffÿihhÿ`_`ÿ`_`ÿcccÿcccÿ^^^ÿkjkÿnnnÿkkkÿkkkÿYXZÿkjkÿmllÿmllÿkjkÿihhÿkjkÿkkkÿihhÿkkkÿrrrÿoooÿqppÿqppÿnnoÿkjkÿmllÿpopÿfffÿnnoÿgggÿbbcÿ^^_ÿedfÿkjkÿkjkÿoooÿrrrÿmlnÿbbcÿcccÿb^`ÿ`XZÿVFJÿ^FLÿ]>EÿfELÿpPWÿ|]dÿ…gnÿŠmtÿŠmtÿpwÿpwÿpwÿpwÿ…gnÿ€bhÿtT[ÿkJQÿ`AHÿT=>ÿbbcÿNNOÿIHJÿIHJÿLKLÿRRSÿVVWÿ\\\ÿ\[\ÿNNOÿIHHÿRRSÿNNOÿZZ[ÿLLLÿHGHÿMLNÿNNNÿdcdÿbbbÿ___ÿcccÿVVWÿ^^^ÿkkkÿ`_`ÿGGGÿEDDÿDCDÿHGHÿIHHÿ>MXÿÂÿo®èÿ•Âñÿþÿÿÿíöûÿ|´æÿ/Š×ÿ)`Šÿ27:ÿ??@ÿEDHÿEDDÿEDFÿGGGÿFFGÿIHHÿFFGÿFFGÿDCDÿEDDÿFFGÿDCDÿDCDÿEDDÿEDDÿEDFÿJJKÿIHJÿGGGÿLKLÿGHJÿHGHÿGHJÿPOQÿNNOÿQPRÿPOQÿJKLÿJKLÿRRRÿXXXÿZZZÿ[[[ÿ[[[ÿZZ\ÿ```ÿbbdÿghjÿdghÿ___ÿJKLÿVVYÿdddÿdddÿ^^`ÿVVWÿXWYÿfffÿihhÿgggÿdddÿdcdÿZZZÿ^\^ÿbbcÿihhÿmllÿihhÿedfÿ^^_ÿihhÿTTTÿa`bÿ___ÿihhÿ```ÿZZZÿffgÿ[[[ÿffgÿnnnÿdcdÿffgÿcccÿhghÿihhÿVVVÿihhÿ`_`ÿTSTÿ^\^ÿUTVÿ\\\ÿTSTÿUTVÿONQÿSRTÿedfÿQPRÿ^\^ÿZZ[ÿihhÿgggÿoooÿoooÿZZ[ÿ`_`ÿa`bÿa`bÿ`_`ÿfffÿ^^_ÿffgÿ^^_ÿcccÿkjkÿcccÿ^\^ÿfffÿcccÿ^^_ÿ`_`ÿhghÿnnnÿmllÿmllÿfffÿcccÿdcdÿihhÿa`bÿfffÿfffÿfffÿgggÿa`bÿmllÿkjkÿmllÿnnoÿnnoÿkkkÿnnnÿoooÿnnnÿnnoÿqppÿnnnÿ```ÿkjkÿmllÿkjkÿlklÿgggÿhghÿqppÿvuuÿqnpÿ`SWÿV;@ÿrT[ÿ„gmÿ“x~ÿš€†ÿ¤Œ‘ÿ«”™ÿ¬–›ÿ¬–›ÿ¬–›ÿ¬–›ÿµ¡¥ÿÐÃÆÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿÝÓÕÿÚÏÑÿÕÉÌÿÐÃÆÿÊ»¾ÿ¹¦ªÿ¤Œ‘ÿ•z€ÿ‡ipÿwY`ÿ^BIÿWJMÿsqrÿsrsÿMLNÿMLNÿPOQÿihhÿhghÿtstÿpopÿ`_`ÿmllÿmllÿkjkÿ^\^ÿa`bÿ^\^ÿnnnÿsssÿtttÿnnoÿsssÿtttÿzzzÿ{{{ÿ}||ÿ{{{ÿ}||ÿ{{{ÿzzzÿ{{{ÿxxxÿvvvÿsssÿrrrÿqppÿsssÿwwwÿxwxÿwwwÿxwxÿxxxÿxxxÿxx}ÿwwwÿwwwÿwwwÿwwwÿwwwÿvvwÿwwwÿvvvÿbbcÿffgÿvvvÿvvwÿsstÿnopÿsstÿvvwÿvvwÿvvwÿvvwÿutvÿvvwÿwwwÿvvwÿvvwÿrrrÿrrrÿxwxÿwwwÿxwwÿxxxÿtttÿwvvÿxwxÿyxzÿzzzÿ{{{ÿ{z{ÿ{{{ÿ{{{ÿ{{{ÿVVVÿWWWÿ}||ÿ}||ÿ|{|ÿ}||ÿ}||ÿnnnÿZZZÿhghÿ```ÿLLLÿJJKÿHGHÿFFFÿJJJÿEDDÿVVWÿMLNÿNNOÿKKKÿUTVÿXWYÿ`_`ÿUTWÿ\[^ÿIHHÿPOQÿVVWÿYXZÿYX[ÿ`_`ÿJJKÿIHJÿbbbÿTSTÿbbbÿZZ[ÿa`bÿ```ÿ`_`ÿnnoÿmlnÿLKLÿFFGÿGGGÿFFFÿEEEÿ'r¥ÿ€¹àÿÇòÿˆ¼òÿÿÿÿÿÿÿÿÿüþþÿ¾ÚðÿG—Ûÿ){¼ÿ+DUÿ999ÿCCCÿFFFÿFFFÿFFFÿGGGÿIHJÿIHJÿEDFÿBBCÿFFGÿEDDÿIHHÿFFFÿCCCÿCCCÿGGGÿKKKÿIHHÿIHJÿJKLÿHGHÿHGHÿMLNÿGHJÿDFGÿEDDÿEDFÿDFGÿWWWÿJKLÿXWYÿdddÿdghÿghjÿdghÿbbdÿZZ\ÿ\\\ÿPPPÿbbcÿZZZÿdcdÿ``dÿ\[\ÿ\[\ÿQPRÿ\\\ÿihhÿgggÿgggÿlklÿbbbÿPPPÿcccÿnnnÿkkkÿfffÿoooÿfffÿihhÿ^^_ÿ___ÿ^^_ÿnnoÿWWWÿZZ[ÿhghÿmllÿhghÿkkkÿmlnÿqppÿihhÿlklÿhghÿ\[\ÿTTTÿa`bÿ`_`ÿ```ÿ\[\ÿXXXÿUTVÿVVWÿNNNÿNNNÿXXXÿZZZÿbbbÿ[[[ÿ___ÿjjjÿdddÿgggÿ```ÿkjkÿcccÿcccÿcccÿcccÿ[[[ÿYXZÿnnnÿkjkÿgggÿa`bÿ`_`ÿcccÿcccÿ`_`ÿfffÿdcdÿcccÿhghÿffgÿfffÿdcdÿcccÿkjkÿcccÿkjkÿmllÿmlnÿkjkÿgggÿkjkÿmllÿnnoÿmllÿihhÿcccÿgggÿmllÿoooÿoooÿoooÿnnnÿnnnÿcccÿcccÿmlnÿnnnÿZZZÿKKKÿ]\\ÿg\_ÿ]DIÿpPWÿ’v}ÿš€†ÿ¥“ÿ²¢ÿ¸¤©ÿ¸¤©ÿµ¡¥ÿµ¡¥ÿ³Ÿ£ÿ±› ÿ¬–›ÿµ¡¥ÿÐÃÆÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿÝÓÕÿØÍÏÿÏÁÄÿ³Ÿ£ÿ¡ˆŽÿ•z€ÿ|]dÿ^FKÿladÿa_`ÿWWWÿ^^_ÿTSTÿbbbÿkjkÿ\[\ÿkkkÿqprÿqppÿnnnÿffgÿcccÿ^\^ÿkkkÿwvvÿvvwÿqppÿtstÿtttÿvvvÿ{{{ÿ}||ÿ{{{ÿ{{{ÿwwwÿxxxÿ{{{ÿ{{{ÿzzzÿwwwÿtttÿrrrÿqppÿrrrÿsssÿnnoÿsssÿxwxÿxwxÿwwwÿxxxÿwwwÿxxxÿwwwÿstvÿxwxÿwwwÿvvwÿvvvÿsssÿ```ÿrrrÿvvvÿsstÿqprÿtttÿtttÿqprÿrrsÿstvÿrrsÿlnoÿrrsÿrrsÿVVWÿjklÿrrrÿtttÿqprÿqprÿtttÿutvÿutvÿxwwÿtttÿwvvÿrrrÿzzzÿ{{{ÿ}||ÿ^\^ÿUTVÿyxzÿ~~~ÿ|{|ÿ}||ÿ}||ÿgggÿSSSÿLLLÿCCCÿEDDÿLLLÿSSSÿGGGÿHGHÿSSSÿRRSÿVVWÿPOQÿNNOÿLKLÿQPRÿWWWÿedfÿbbdÿXWYÿYXZÿXWYÿJJKÿLLLÿJJKÿLKLÿTTTÿ___ÿcccÿkkkÿmllÿnnnÿnnoÿqppÿpopÿnnoÿ^\^ÿGGGÿGGGÿGGGÿ4\yÿ>•Òÿöûþÿ£Èõÿˆ¼òÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿíõøÿ·ãÿ)…Òÿ&aŒÿ18<ÿ>>>ÿEEFÿEDFÿIHJÿMLNÿLKNÿFFGÿFFFÿFFGÿFFFÿFEIÿGGGÿEDFÿFFGÿHGHÿLKLÿKKKÿHGHÿJJJÿGGGÿEDDÿBCDÿEDDÿDFGÿEDFÿQPRÿWWWÿDFGÿJKLÿdghÿghjÿhklÿdghÿdghÿ__bÿVVVÿ\[^ÿ__bÿXWYÿghjÿXXXÿXWYÿXWYÿWWWÿJKLÿJJKÿTTTÿXXXÿXWYÿVVVÿ[[[ÿOOOÿ___ÿfffÿ`_`ÿcccÿoooÿnnnÿnnnÿcccÿmllÿkjkÿkjkÿUTVÿdcdÿa`bÿgggÿkkkÿkjkÿqppÿmlnÿmllÿa`bÿmllÿedfÿbbbÿ^^^ÿVVVÿ`_`ÿXXXÿbbbÿYXZÿQPRÿNNOÿLLLÿPPPÿ`_`ÿ[[[ÿWWWÿTTTÿ^^^ÿqppÿfffÿa`bÿ`_`ÿa`bÿZZ[ÿ^\^ÿ^^_ÿcccÿkjkÿihhÿkjkÿfffÿkjkÿbbcÿcccÿa`bÿcccÿcccÿbbbÿedfÿfffÿgggÿkjkÿhghÿbbcÿhghÿihhÿkjkÿkjkÿgggÿihhÿkjkÿihhÿnnnÿmllÿkjkÿmllÿoooÿnnnÿnnnÿmllÿkkkÿnnnÿqppÿkkkÿgggÿkkkÿrrrÿrrrÿqppÿhcdÿ[JNÿgIOÿ…gnÿƒ‰ÿ«”™ÿµ¡¥ÿ¿®²ÿ¿®²ÿ¼ª®ÿ»¨¬ÿ¸¤©ÿµ¡¥ÿµ¡¥ÿ³Ÿ£ÿ®˜ÿµ¡¥ÿÐÃÆÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿÚÏÑÿÏÁÄÿ¹¦ªÿ¤Œ‘ÿŽrxÿtW^ÿbPTÿ[WYÿnnnÿTSTÿPOQÿedfÿdcdÿkjkÿmlnÿtttÿtttÿpopÿjjjÿZZ[ÿkjkÿtttÿ{{{ÿoooÿwvvÿtttÿsstÿxwxÿxxxÿvvvÿtttÿsssÿvvvÿzzzÿ{{{ÿ{{{ÿzzzÿzzzÿwwwÿrrsÿqppÿmlnÿijkÿoooÿvvvÿwwwÿwwwÿstvÿnopÿxxxÿxwxÿvvwÿwwwÿwwwÿvvvÿvvvÿvvvÿvvvÿnnnÿjjjÿstvÿrrrÿsssÿrrrÿmllÿsssÿtttÿjjjÿnopÿedfÿa`bÿdddÿ___ÿ\\^ÿsstÿnnnÿrrrÿxwxÿtstÿqprÿvvwÿqprÿqppÿnnoÿzxxÿ|{|ÿ{{{ÿnnoÿYXZÿnnnÿ}||ÿ|{|ÿ|{|ÿ~~~ÿbbdÿQPRÿ\[\ÿOOOÿJJJÿRRSÿPOQÿNNOÿFFFÿRRSÿPPPÿ`_`ÿRRSÿSRTÿIHJÿXWYÿggjÿTSTÿSSSÿYXZÿUTWÿSSVÿMLOÿRRSÿSSSÿQPRÿ\[\ÿmllÿkjkÿkkkÿVVWÿkkkÿqppÿqppÿqppÿqppÿlklÿJJJÿFFGÿ@IQÿ$ÂÿÂÞòÿøøÿÿ£Å÷ÿ|´ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúüüÿ¾ÛíÿB•Õÿ$z¹ÿ)G[ÿ878ÿBACÿHGHÿLLLÿMLNÿFFFÿEDDÿFFFÿEDFÿIHJÿEDFÿFEIÿDCDÿFFGÿKKKÿHGHÿGGGÿEDDÿBBBÿBCDÿBCDÿBCDÿDFGÿQPRÿKKKÿDFGÿDFGÿ\[^ÿdghÿdghÿ```ÿ```ÿbbbÿ``dÿTTTÿYX[ÿSRTÿPOQÿ\\^ÿVVYÿ``dÿTTTÿLLLÿGHJÿIHHÿLLLÿRRRÿVVVÿVVVÿRRSÿRRSÿ```ÿ___ÿZZ[ÿfffÿnnnÿoooÿnnnÿhghÿoooÿoooÿmlnÿkjkÿkjkÿedfÿffgÿihhÿlklÿqppÿffgÿa`bÿXXXÿ`_`ÿbbcÿbbbÿXXXÿPPPÿcccÿ^\^ÿ^\^ÿ[[[ÿXWYÿVVVÿNNNÿOOOÿkjkÿhghÿTTTÿkkkÿihhÿ\\\ÿihhÿnnnÿfffÿ^^_ÿkjkÿgggÿcccÿa`bÿnnnÿnnnÿcccÿihhÿihhÿkjkÿkjkÿfffÿ```ÿbbcÿZZ[ÿXXXÿ^\^ÿcccÿihhÿcccÿfffÿgggÿfffÿcccÿdcdÿihhÿkjkÿmllÿmllÿmllÿihhÿnnnÿrrrÿtstÿqppÿnnnÿnnnÿmllÿnnnÿoooÿmllÿjjjÿoooÿrrrÿqppÿkfgÿS>?ÿEEFÿJJKÿMLNÿBCDÿA@BÿLLLÿRRSÿJJKÿHGHÿOOOÿJJKÿSRTÿNNOÿGHJÿSSSÿ??@ÿJKLÿSSVÿXXXÿTTTÿdghÿdghÿhklÿhklÿ[[[ÿ___ÿ``dÿbbbÿ^^`ÿ[[[ÿVVWÿa`bÿUTVÿZZ[ÿ\[\ÿXWYÿYXZÿZZ[ÿXXXÿ\[\ÿfffÿgggÿoooÿnnnÿkkkÿihhÿfffÿkkkÿdcdÿgggÿnnnÿnnnÿgggÿkjkÿnnnÿfffÿkjkÿnnnÿcccÿihhÿmllÿmllÿnnoÿffgÿbbbÿhghÿbbcÿVVWÿ[[[ÿkkkÿbbcÿoooÿmllÿgggÿoooÿnnnÿ___ÿfffÿmllÿoooÿrrrÿkkkÿnnnÿTTTÿPPPÿZZZÿ___ÿWWWÿ^\^ÿa`bÿ^^_ÿWWWÿ`_`ÿWWWÿa`bÿ```ÿ^^_ÿPPPÿRRRÿWWWÿTSTÿVVWÿYXZÿ^^^ÿ^\^ÿVVVÿ^^_ÿcccÿ^^_ÿa`bÿ^^_ÿ^\^ÿcccÿ^\^ÿXXXÿYXZÿedfÿ^^_ÿmllÿpopÿqppÿnnnÿgggÿihhÿkkkÿmllÿmllÿnnnÿoooÿkjkÿkkkÿ`VXÿdGNÿ“x~ÿ¬–›ÿÍ¿Âÿ×ËÎÿÕÉÌÿÒÅÈÿÐÃÆÿÏÁÄÿÊ»¾ÿÊ»¾ÿɹ½ÿij·ÿÁ¯³ÿÁ¯³ÿ¿®²ÿ»¨¬ÿ»¨¬ÿ¸¤©ÿ»¨¬ÿÐÃÆÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿ×ËÎÿ»¨¬ÿ¥“ÿž…‹ÿw\bÿYPRÿa`bÿVVVÿtstÿkjkÿrrrÿwvvÿrrrÿYXZÿZZ[ÿihhÿ|{|ÿzzzÿ}||ÿwwwÿtttÿsssÿrrsÿtttÿxxxÿxxxÿwwwÿxxxÿxxxÿxxxÿzxxÿtttÿxxxÿvvvÿvvvÿzzzÿxxxÿstvÿrrsÿnnnÿmllÿmllÿqppÿqppÿ___ÿSSSÿRRRÿSSSÿPPPÿTTTÿdghÿstvÿsstÿlnoÿghjÿghjÿlnoÿstvÿsstÿdcdÿstvÿxxxÿstvÿjjjÿ`_`ÿvvvÿstvÿxxxÿvvwÿxwxÿxwxÿxwxÿxwxÿxwxÿyxzÿzzzÿzzzÿ{z{ÿ{z{ÿ{{{ÿ{{{ÿ}||ÿmllÿUTVÿxwwÿ}||ÿ}||ÿ}||ÿnnoÿMLNÿLKLÿLKLÿTSTÿUTVÿKKKÿJJJÿFFFÿLLLÿOOOÿUTVÿffgÿMLNÿYXZÿPOQÿUTVÿVVWÿRRSÿXWYÿVVYÿ^^`ÿOOOÿYX[ÿOOOÿSRTÿ\[\ÿdddÿ[[[ÿFFGÿIHJÿDCDÿLLLÿA@BÿBBBÿ@@@ÿA@Bÿ4^ÿLœÚÿþþÿÿððÿÿæçÿÿãåÿÿÌÛÿÿO™ìÿõõÿÿÖ×ÿÿàäÿÿüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôøøÿ¶Ôãÿ<“Ëÿ{µÿ*MbÿBBBÿPPPÿQPRÿRRSÿFFGÿTSTÿTSTÿPOQÿQPRÿUTVÿWWWÿVVVÿVVYÿWWWÿXWYÿYX[ÿ___ÿccfÿdddÿhklÿhklÿdghÿdghÿXXXÿ```ÿbbbÿbbbÿ\\^ÿ\\^ÿ\\^ÿ\\^ÿbbcÿSSSÿ^^^ÿbbbÿedfÿ\\^ÿlklÿijkÿWWWÿ[[[ÿnnnÿnnoÿqppÿkjkÿlklÿihhÿihhÿdcdÿdcdÿ^\^ÿ___ÿ```ÿdddÿkjkÿ___ÿgggÿihhÿbbbÿihhÿWWWÿ`_`ÿgggÿoooÿnnnÿa`bÿfffÿdddÿPPPÿTSTÿdddÿqppÿmllÿihhÿnnoÿmllÿ^^^ÿmllÿwvvÿmllÿgggÿTTTÿQPRÿkjkÿ```ÿ^\^ÿ`_`ÿ`_`ÿ`_`ÿ^^^ÿcccÿa`bÿ^^_ÿcccÿihhÿZZZÿ[[[ÿWWWÿWWWÿUTVÿVVWÿTTTÿVVVÿTTTÿZZZÿXXXÿTSTÿ`_`ÿa`bÿTSTÿ^\^ÿcccÿkjkÿkjkÿXXXÿVVVÿUTVÿ^^^ÿgggÿnnnÿmllÿkjkÿcccÿihhÿgggÿmlnÿgggÿZZ[ÿ^^^ÿeeeÿc]_ÿ`CJÿ—}ƒÿ®˜ÿÐÃÆÿÝÓÕÿØÍÏÿ×ËÎÿÕÉÌÿÒÅÈÿÐÃÆÿÏÁÄÿÊ»¾ÿÊ»¾ÿɹ½ÿij·ÿÁ¯³ÿÁ¯³ÿ¿®²ÿ»¨¬ÿ»¨¬ÿ»¨¬ÿÐÃÆÿà×Ùÿà×ÙÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿ×ËÎÿ¿®²ÿ®˜ÿ¬–›ÿ§”ÿ¥“ÿx^dÿ_XYÿTSUÿdcdÿkjkÿqppÿtttÿtstÿ\[\ÿYXZÿihhÿ{{{ÿ{{{ÿ|{|ÿ{{{ÿsssÿsssÿsssÿsssÿwwwÿxxxÿxxxÿtttÿvvvÿ{z{ÿxwxÿvvvÿwwwÿxxxÿtttÿvvwÿxxxÿwwwÿwwwÿstvÿlnoÿlnoÿhklÿlnoÿxxxÿstvÿhklÿWWWÿRRRÿOOSÿOOSÿOOOÿOOOÿ\\^ÿFFFÿLLLÿdcdÿnopÿdghÿstvÿwwwÿwwwÿwwwÿwwwÿxwxÿrrsÿoooÿxxxÿvvwÿxwxÿxwxÿxwwÿxwxÿzzzÿ{z{ÿxxxÿzzzÿ{z{ÿ{z{ÿ{z{ÿ{{{ÿ{{{ÿutvÿVVYÿqprÿ}||ÿ|{|ÿ}||ÿoooÿNNNÿKKKÿHGHÿHGHÿVVVÿSRTÿNNOÿSRTÿ\\^ÿXXXÿUTVÿLKLÿTSTÿBBBÿVVWÿ??@ÿBBBÿMLOÿRRRÿVVVÿ\\^ÿXXXÿ\\\ÿZZZÿVVVÿdcdÿkkkÿPOQÿHGHÿJJKÿHGHÿEDFÿIHJÿHGHÿIHJÿCJQÿ+‚ÉÿÉâõÿúúÿÿêêÿÿæçÿÿãåÿÿÑÝÿÿ@êÿøøÿÿÖ×ÿÿÌÔÿÿ»ÎÿÿèïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûüüÿÞêìÿw²Óÿ‚Âÿfÿ9AGÿJIJÿTTWÿNNOÿDFGÿUTVÿPPPÿXWYÿRRSÿPPPÿRRRÿSRTÿYX[ÿ\\^ÿ\\^ÿccfÿdghÿhklÿghjÿdghÿdddÿ```ÿ^^`ÿbbbÿ```ÿ\\^ÿVVYÿ\\^ÿVVYÿ`_`ÿ\\^ÿbbdÿijkÿijkÿijkÿhghÿlklÿjjjÿffgÿZZ[ÿnnnÿoooÿmllÿkjkÿnnnÿnnnÿihhÿgggÿgggÿa`bÿfffÿVVWÿOOOÿdddÿkjkÿ^^_ÿ^\^ÿkjkÿpopÿ^\^ÿcccÿ^\^ÿihhÿnnoÿnnnÿfffÿdcdÿXXXÿXXXÿ^\^ÿbbbÿjjjÿ```ÿihhÿmlnÿkjkÿqppÿVVVÿOOOÿOOOÿPPPÿVVVÿ^\^ÿa`bÿ`_`ÿ^\^ÿ___ÿXXXÿYXZÿRRSÿOOOÿVVVÿVVWÿRRSÿRRSÿRRSÿTSTÿUTVÿ^\^ÿWWWÿVVVÿXXXÿ^^_ÿXXXÿ^^^ÿa`bÿXXXÿXWYÿTTTÿZZ[ÿ`_`ÿ`_`ÿihhÿbbbÿVVVÿ`_`ÿZZ[ÿXXXÿ```ÿkkkÿihhÿ```ÿ___ÿTTTÿMLNÿOOOÿLLLÿXVXÿd]_ÿ]BHÿš€†ÿµ¡¥ÿÕÉÌÿà×ÙÿßÕ×ÿÝÓÕÿÚÏÑÿ×ËÎÿÕÉÌÿÒÅÈÿÐÃÆÿÏÁÄÿÊ»¾ÿÊ»¾ÿɹ½ÿij·ÿÁ¯³ÿÁ¯³ÿ¿®²ÿ»¨¬ÿ¼ª®ÿÒÅÈÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿ×ËÎÿ¿®²ÿ®˜ÿ¬–›ÿ¬–›ÿ¬–›ÿ¨‘–ÿ¨‘–ÿpV\ÿ[UWÿSSSÿoooÿgggÿsssÿtttÿa`bÿXWYÿcccÿutvÿxxxÿ}||ÿ}||ÿwwwÿtttÿsssÿsssÿvvvÿwwwÿvvwÿxxxÿzzzÿedfÿrrrÿoooÿvvwÿnnnÿhklÿ\\\ÿrrrÿbbbÿnopÿrrsÿ[[[ÿklnÿbbdÿbbbÿffhÿnopÿnopÿZZZÿdghÿbbbÿXWYÿJKLÿBCDÿGHJÿRRRÿOOSÿNNOÿOOOÿ[[[ÿhklÿnopÿnopÿrrrÿsstÿrrrÿoooÿ\\^ÿPPPÿRRSÿTTTÿUTVÿYXZÿa`bÿutvÿxxxÿzzzÿzzzÿzxxÿ{z{ÿzxxÿxxxÿzxxÿvvwÿPPPÿfffÿ{{{ÿ{{{ÿ|{|ÿnnoÿQPRÿNNOÿMLNÿSSSÿOOOÿFFGÿJJKÿHGHÿIHHÿ[[[ÿ`_`ÿSSSÿXWYÿJJJÿVVYÿBBBÿJJKÿIHHÿVVVÿcccÿ\[\ÿZZ[ÿ`_`ÿkkkÿnnnÿqppÿhghÿPOQÿOOOÿKKKÿHGHÿIHJÿHGHÿIHJÿGFGÿ4k™ÿm­âÿÿÿÿÿîîÿÿêêÿÿæçÿÿãåÿÿàãþÿ@‘ëÿðõÿÿÖ×ÿÿÏÕÿÿ¼Ìÿÿ­ÈÿÿÄØþÿöøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíóóÿ³ÐÜÿ;‘Æÿz±ÿ+OaÿDDEÿXXYÿLLLÿMLNÿ`_`ÿ^^_ÿ\\^ÿ\\\ÿ^^^ÿ``dÿdddÿffhÿdghÿhklÿghjÿhklÿdghÿ^^`ÿ___ÿ```ÿbbbÿ___ÿ__bÿ^^`ÿ^^`ÿccfÿ\\^ÿedfÿ\[\ÿbbcÿklnÿnnoÿqprÿqprÿsssÿsssÿnnnÿ^^^ÿihhÿkkkÿgggÿkkkÿkjkÿkjkÿa`bÿihhÿfffÿkkkÿnnnÿfffÿcccÿYXZÿihhÿTTTÿ^\^ÿgggÿnnnÿ`_`ÿ^^_ÿVVWÿedfÿqppÿrrrÿkjkÿihhÿXXXÿZZZÿ^^^ÿoooÿcccÿ\\\ÿjjjÿrrrÿdddÿOOOÿMLNÿMLNÿQPRÿRRRÿTTTÿSSSÿ[[[ÿ^\^ÿXXXÿWWWÿPPPÿUTVÿUTVÿWWWÿXWYÿTTTÿWWWÿTSTÿVVVÿXXXÿTTTÿTSTÿSSSÿXXXÿa`bÿbbbÿ`_`ÿa`bÿ```ÿYXZÿUTVÿVVVÿRRSÿ^\^ÿ```ÿgggÿ`_`ÿ^\^ÿZZ[ÿTSTÿ^\^ÿ`_`ÿYXZÿVVWÿQPRÿOOOÿRRRÿQPRÿbbcÿdddÿ[YZÿ[FKÿ‹ovÿ®˜ÿÐÃÆÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿÝÓÕÿÚÏÑÿ×ËÎÿÕÉÌÿÒÅÈÿÐÃÆÿÏÁÄÿÊ»¾ÿÊ»¾ÿɹ½ÿÇ·»ÿ±µÿÁ¯³ÿ¿®²ÿ¿®²ÿÕÉÌÿà×Ùÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿÚÏÑÿ¿®²ÿ®˜ÿ¬–›ÿ®˜ÿ®˜ÿ®˜ÿ¬–›ÿ¨‘–ÿž†ŒÿjW[ÿ\Y[ÿPPPÿcccÿoooÿrrrÿkjkÿZZ[ÿ^\^ÿmlnÿyxzÿ}||ÿ}||ÿxxxÿsssÿsssÿrrrÿsssÿwwwÿ{{{ÿzzzÿwwwÿmlnÿZZ[ÿ\\\ÿVVVÿqppÿbbbÿOOOÿqppÿqprÿdcdÿfffÿwwwÿdddÿdddÿZZZÿXXXÿdghÿhklÿSSSÿlnoÿOOSÿUTWÿlnoÿ\[^ÿmmqÿffhÿTTTÿOOOÿOOSÿRRRÿRRRÿRRRÿRRRÿPPPÿRRRÿRRRÿNNNÿPPPÿTTTÿVVVÿghjÿvvwÿxwxÿxxxÿyxzÿtstÿxxxÿwwwÿxxxÿ{z{ÿwwwÿvvvÿxwwÿtttÿLKLÿ[[[ÿxxxÿxxxÿ}||ÿnnoÿTSTÿJJKÿMLNÿJJKÿEDFÿHGHÿPPPÿMLNÿSSSÿPPPÿZZ[ÿ^^`ÿffgÿLKLÿJJKÿHGHÿPPPÿbbdÿ^^_ÿZZZÿffgÿffgÿihjÿkkkÿoooÿjjjÿggjÿUTWÿSRTÿQPRÿLKNÿJJJÿIHHÿIHJÿBN[ÿ0‰ÓÿåñûÿøøÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿM—îÿäðÿÿÖØÿÿÒÖþÿÆÒþÿ¯Èÿÿ¨Èþÿ¦Êþÿ׿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿüÿÿÿõúúÿÖääÿr­Ìÿ€¼ÿeŽÿ9AFÿQQQÿWVYÿXWYÿZZ[ÿfffÿXWYÿJKLÿSSSÿ[[[ÿ```ÿdddÿdghÿccfÿ``dÿ\\^ÿ^^`ÿ```ÿ^^`ÿ^^`ÿ```ÿ```ÿ```ÿbbdÿdddÿbbdÿedfÿ\\^ÿ^^_ÿbbdÿ\[\ÿ^^_ÿgggÿkjkÿjjjÿffgÿ^\^ÿ^\^ÿbbcÿ^^^ÿedfÿihhÿbbcÿcccÿa`bÿgggÿgggÿa`bÿVVVÿcccÿVVWÿcccÿYXZÿTTTÿ^^^ÿmllÿkjkÿ^\^ÿ^\^ÿ[[[ÿnnnÿnnnÿpopÿihhÿbbcÿgggÿWWWÿ___ÿgggÿkjkÿoooÿqprÿVVVÿNNNÿMLNÿMLOÿPOQÿVVWÿNNNÿTTTÿ^\^ÿ^\^ÿWWWÿRRRÿTSTÿQPRÿSSSÿTTTÿWWWÿVVWÿTTTÿXWYÿVVWÿTSTÿVVWÿTSTÿa`bÿ^\^ÿ[[[ÿZZ[ÿ[[[ÿ___ÿZZ[ÿZZ[ÿOOOÿPPPÿPOQÿTTTÿ[[[ÿ^\^ÿQPRÿXXXÿTSTÿXXXÿUTVÿQPRÿQPRÿPOQÿ^\^ÿRRRÿRRRÿ^\^ÿQPRÿ[Z[ÿZMOÿwY`ÿ§”ÿɹ½ÿà×Ùÿà×Ùÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿÝÓÕÿØÍÏÿ×ËÎÿÕÉÌÿÒÅÈÿÐÃÆÿÏÁÄÿÍ¿ÂÿÊ»¾ÿɹ½ÿij·ÿ±µÿ¿®²ÿÁ¯³ÿÕÉÌÿà×Ùÿà×Ùÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿØÍÏÿ±µÿ¬–›ÿ¬–›ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ¬–›ÿ«”™ÿ«”™ÿ’y~ÿ^PTÿiiiÿ\[\ÿ^^_ÿtstÿrrrÿa`bÿ\[^ÿcccÿxwxÿ|{|ÿ}||ÿ{{{ÿtttÿrrsÿrrrÿrrrÿtttÿxxxÿvvvÿsssÿa`bÿqprÿstvÿZZ[ÿwwwÿNNOÿbbcÿlnoÿ```ÿdddÿlnoÿdddÿhklÿbbbÿnopÿZZZÿghjÿdghÿXXXÿlnoÿSSVÿYXZÿklnÿZZ[ÿlnoÿwwwÿstvÿqppÿrrrÿstvÿstvÿstvÿstvÿvvvÿwwwÿwwwÿstvÿdddÿsssÿzzzÿwwwÿxwxÿyxzÿzxxÿyxzÿtstÿzzzÿwwwÿvvwÿzzzÿvvwÿvvwÿvvwÿsssÿOOOÿVVVÿxxxÿwwwÿ|{|ÿdcdÿNNNÿZZ[ÿedfÿLLLÿ??@ÿVVWÿdcdÿRRRÿQPRÿONQÿdcdÿa`bÿ\\^ÿMLOÿMLNÿZZ[ÿddgÿlklÿXWYÿedfÿbbcÿjjjÿfffÿNNNÿTSTÿoooÿedfÿQPRÿQPRÿPPPÿNNOÿLKLÿIHJÿHGIÿ5s©ÿ„ºèÿþþÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿZŸñÿÒæýÿØÙÿÿÒÖþÿÊÓþÿ·Ëÿÿ©Èþÿ Åþÿ˜Äÿÿ¬Ñÿÿïöÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿûÿÿÿùýýÿøüüÿäììÿ¨ÈÓÿ6¿ÿx­ÿ,SgÿJJKÿYY\ÿ`_aÿLKLÿEDFÿGHJÿONQÿTTTÿRRRÿTTTÿVVYÿ``dÿ``dÿ``dÿbbdÿbbbÿ``dÿ__bÿbbbÿ```ÿccfÿdcdÿdddÿccfÿffgÿdcdÿffgÿdcdÿddgÿ`_`ÿbbbÿdcdÿ```ÿffgÿdddÿfffÿihhÿedfÿkkkÿcccÿkjkÿgggÿkjkÿkjkÿnnnÿ^^_ÿWWWÿcccÿ^\^ÿ^^_ÿkjkÿ___ÿfffÿkjkÿkkkÿfffÿWWWÿOOOÿ`_`ÿpopÿqppÿqppÿmlnÿkkkÿZZZÿ\\\ÿ^\^ÿ```ÿkkkÿsssÿONQÿMLNÿPOQÿhghÿZZ[ÿgggÿ^^_ÿTSTÿTSTÿOOOÿ^\^ÿSSSÿTSTÿPPPÿRRSÿVVWÿVVWÿ\[\ÿa`bÿ^\^ÿVVVÿRRRÿZZ[ÿRRRÿ`_`ÿ```ÿTTTÿSSSÿTSTÿUTVÿ^\^ÿffgÿgggÿa`bÿcccÿ^\^ÿ[[[ÿ^\^ÿ^^^ÿ\[\ÿTSTÿUTVÿSRTÿNNOÿMLNÿSRTÿSRTÿYXZÿa`bÿZZ[ÿWWWÿ]Z[ÿcELÿ¡ˆŽÿ¼ª®ÿ×ËÎÿßÕ×ÿà×Ùÿà×Ùÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿÝÓÕÿÚÏÑÿ×ËÎÿÕÉÌÿÒÅÈÿÐÃÆÿÐÃÆÿÍ¿ÂÿÊ»¾ÿɹ½ÿij·ÿÁ¯³ÿ±µÿ×ËÎÿäÛÝÿà×Ùÿà×Ùÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿ×ËÎÿÁ¯³ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ¬–›ÿ¬–›ÿ±› ÿ|bhÿnjlÿgggÿRRSÿmlnÿtttÿgggÿbbcÿ^^_ÿwvvÿ}||ÿ}||ÿ{{{ÿvvvÿsssÿqppÿrrrÿrrsÿvvvÿtttÿsssÿtttÿwwwÿxxxÿzzzÿvvvÿvvvÿsssÿsstÿqppÿstvÿwwwÿstvÿstvÿxxxÿstvÿstvÿstvÿlnoÿstvÿnopÿnopÿsssÿwwwÿvvvÿwwwÿvvwÿxwxÿnopÿnopÿvvvÿvvvÿvvvÿwwwÿvvwÿvvwÿvvvÿvvwÿvvvÿvvvÿwwwÿxxxÿwwwÿxxxÿxxxÿwwwÿtstÿxxxÿvvvÿutvÿyxzÿvvvÿxwwÿ{{{ÿyxzÿZZZÿXXXÿ{{{ÿ{{{ÿ{{{ÿ```ÿRRSÿ```ÿUTVÿ>=>ÿHGHÿRRRÿQPRÿRRRÿRRRÿghjÿghjÿMLNÿMLNÿRRSÿLLLÿ`_`ÿbbcÿlklÿZZ\ÿ\[\ÿXWYÿcccÿVVVÿ^^_ÿTSTÿfffÿ```ÿUTVÿVVWÿPOQÿNNNÿLKLÿIHJÿAQaÿ6ŽÙÿíöýÿøøÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿj¨ôÿ¼ØúÿÞÞÿÿÒÖþÿÊÔþÿÀÐþÿªÇþÿ¢Æþÿ™Åÿÿ‘ÄÿÿÄÿÿÆâÿÿþþÿÿþÿÿÿýÿÿÿúþþÿøüüÿ÷ûûÿôúúÿíôôÿÌÜÜÿi¨Åÿ~¶ÿf‹ÿ/;BÿGFHÿSRTÿVVWÿVVWÿVVYÿVVVÿTTTÿTTTÿVVYÿ``dÿ``dÿ```ÿ__bÿ``dÿ```ÿ__bÿ``dÿdddÿbbbÿbbdÿdcdÿijkÿbbcÿghjÿdcdÿgggÿdghÿccfÿ\[^ÿVVYÿ___ÿcccÿRRSÿ```ÿdddÿZZ[ÿ___ÿ```ÿbbbÿgggÿihhÿgggÿ^^_ÿa`bÿUTVÿTSTÿ^^^ÿa`bÿa`bÿkjkÿihhÿ```ÿ___ÿa`bÿXWYÿdcdÿWWWÿ___ÿTTTÿmllÿlklÿoooÿqppÿqppÿoooÿnnnÿoooÿrrrÿMLOÿ__bÿlklÿZZ[ÿZZ[ÿYXZÿ`_`ÿZZ[ÿRRSÿUTVÿOOOÿPPPÿQPRÿPPPÿWWWÿYXZÿ^^_ÿfffÿdcdÿ^^_ÿ[[[ÿZZ[ÿ^\^ÿcccÿVVWÿZZ[ÿ^\^ÿdcdÿffgÿkjkÿffgÿedfÿbbcÿZZ[ÿYXZÿVVWÿ[[[ÿWWWÿXWYÿVVWÿUTVÿZZ[ÿTSTÿONQÿLKNÿQPRÿ__bÿa`bÿZZ[ÿ^\^ÿVUVÿQ>Bÿ’v}ÿµ¡¥ÿÐÃÆÿÚÏÑÿÝÓÕÿßÕ×ÿà×Ùÿà×Ùÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿÝÓÕÿÚÏÑÿ×ËÎÿÕÉÌÿÒÅÈÿÐÃÆÿÐÃÆÿÍ¿ÂÿÊ»¾ÿÊ»¾ÿij·ÿij·ÿÕÉÌÿåÞßÿäÛÝÿà×Ùÿà×Ùÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿßÕ×ÿ×ËÎÿ¿®²ÿ®˜ÿ¬–›ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ¬–›ÿ®˜ÿ¬–›ÿ¬–›ÿiV[ÿnnnÿmllÿhghÿrrrÿedfÿfffÿ`_`ÿvvvÿ}||ÿ{{{ÿ}||ÿxxxÿsssÿrrrÿsssÿrrrÿsssÿwwwÿtttÿstvÿvvvÿvvvÿyxzÿzzzÿtttÿrrsÿqprÿrrrÿvvvÿwwwÿwwwÿwwwÿstvÿwwwÿstvÿwwwÿlnoÿrrrÿlnoÿtttÿwwwÿvvvÿsstÿwwwÿvvwÿstvÿstvÿhklÿwwwÿwwwÿwwwÿwwwÿvvvÿwwwÿvvwÿvvvÿvvwÿwwwÿvvwÿwwwÿxwwÿvvwÿzxxÿxxxÿxxxÿxxxÿwwwÿxxxÿzzzÿzxxÿzxxÿ|{|ÿ{z{ÿ^\^ÿXXXÿ}||ÿ}||ÿ}||ÿihhÿVVVÿJJJÿNNOÿ\[\ÿedfÿedfÿVVWÿQPRÿVVWÿPOQÿSRTÿ[[[ÿNNOÿKKKÿJJKÿPOQÿUTWÿffgÿddgÿSSSÿZZ[ÿ\[\ÿ```ÿihjÿLLLÿa`bÿVVYÿUTWÿTTTÿNNOÿMLNÿLKLÿKJKÿ6rªÿŒ¿ìÿþþÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿ}°÷ÿ§Ì÷ÿäæÿÿÓÖÿÿÌÔþÿÃÒÿÿµÌþÿ£ÅþÿšÄþÿ’ÂÿÿŠÂÿÿ‚Áÿÿ“Ìþÿâòÿÿüÿÿÿùýýÿøüüÿöúúÿôøøÿñ÷÷ÿðööÿÚååÿ ÁÌÿ/‹¸ÿx©ÿ&PdÿA@BÿQQTÿUUVÿVVYÿUTVÿOOSÿNNOÿOOSÿ___ÿ``dÿ^^`ÿ```ÿ___ÿ``dÿ```ÿbbbÿbbdÿdddÿ___ÿffgÿedfÿbbcÿffgÿedfÿihjÿijkÿffgÿ`_`ÿhghÿbbbÿXXXÿTSTÿ___ÿXXXÿ[[[ÿ[[[ÿXXXÿedfÿgggÿcccÿ___ÿPPPÿ^^_ÿOOOÿbbcÿfffÿ^\^ÿ`_`ÿa`bÿkjkÿVVVÿkkkÿ^\^ÿVVVÿcccÿ[[[ÿ\[\ÿZZZÿdddÿcccÿnnnÿgggÿcccÿqppÿqppÿjjjÿihhÿQPRÿ`_`ÿRRSÿVVWÿMLOÿMLOÿMLNÿPOQÿSRTÿUTVÿVVWÿTTTÿXXXÿVVWÿ^\^ÿ^\^ÿ```ÿ^^^ÿa`bÿRRSÿ^^^ÿXWYÿ^^^ÿZZ[ÿQPRÿa`bÿihhÿgggÿbbcÿ^\^ÿ`_`ÿYXZÿ^\^ÿTSTÿQPRÿSRTÿLKLÿNNOÿSRTÿONQÿXWYÿXWYÿQPRÿPOQÿQPRÿ\[^ÿdcdÿddgÿbbcÿPOQÿKFGÿkOUÿ±› ÿij·ÿÕÉÌÿØÍÏÿÚÏÑÿÝÓÕÿßÕ×ÿà×Ùÿà×Ùÿà×ÙÿäÛÝÿà×ÙÿßÕ×ÿÝÓÕÿÚÏÑÿÕÉÌÿÕÉÌÿÒÅÈÿÐÃÆÿÐÃÆÿÍ¿ÂÿÊ»¾ÿɹ½ÿij·ÿÕÉÌÿåÞßÿåÞßÿäÛÝÿà×Ùÿà×Ùÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿßÕ×ÿßÕ×ÿÝÓÕÿ±µÿ®˜ÿ¬–›ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ¬–›ÿ¬–›ÿ²¢ÿ“|ÿ[UXÿa`bÿjjjÿ`_`ÿXWYÿhghÿbbcÿtttÿ}||ÿ}||ÿ{{{ÿwwwÿrrrÿsssÿtttÿrrrÿsssÿxxxÿzzzÿvvvÿvvvÿxxxÿxxxÿxwxÿvvvÿrrrÿsssÿstvÿwwwÿwwwÿstvÿstvÿwwwÿwwwÿwwwÿvvvÿnopÿlnoÿrrrÿvvvÿstvÿvvvÿxxxÿvvvÿvvvÿvvvÿvvvÿhklÿvvvÿwwwÿsstÿtttÿstvÿsssÿvvvÿrrsÿqppÿsstÿtttÿrrrÿsssÿvvwÿsstÿtstÿwvvÿxwwÿxwwÿzxxÿxwwÿzzzÿwvvÿyxzÿzxxÿZZ[ÿRRRÿxwwÿzxxÿyxzÿklnÿ\[\ÿ[[[ÿOOOÿUTVÿZZZÿJKLÿOOOÿPPPÿa`bÿhklÿPPPÿ[[[ÿJJKÿGHJÿLLLÿJKLÿ\[^ÿZZZÿXWYÿdcdÿXXXÿRRRÿZZ[ÿbbcÿ`_`ÿZZZÿa`bÿZZZÿNNNÿNNOÿNNOÿMLNÿEUfÿ9Üÿîöýÿúúÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿ¸÷ÿ“¿÷ÿêêÿÿÓÖÿÿÌÓþÿÃÑÿÿ¼Ðþÿ§ÇþÿœÄþÿ“Âÿÿ‹ÂÿÿƒÀÿÿ|¿þÿvÀþÿ­Úþÿôûýÿ÷ûûÿôúúÿòøøÿðööÿïõõÿìóóÿåîîÿÄÔÖÿj§¿ÿ~±ÿeŠÿ6BJÿJIKÿQPRÿPOQÿJJKÿJKLÿYX[ÿ``dÿ```ÿ\\^ÿ``dÿbbbÿbbbÿ``dÿ``dÿ``dÿ```ÿ^^^ÿghjÿbbcÿffgÿhghÿkkkÿhghÿihjÿihjÿkkkÿlklÿkjkÿ^\^ÿUTVÿ```ÿbbbÿZZ[ÿSSSÿfffÿ^\^ÿcccÿYXZÿfffÿQPRÿRRSÿ^\^ÿ`_`ÿkkkÿYXZÿcccÿZZ[ÿkjkÿ`_`ÿcccÿgggÿ^\^ÿ^\^ÿZZZÿ\[\ÿcccÿedfÿihjÿtstÿqppÿqppÿqppÿ```ÿ```ÿsssÿ^\^ÿPOQÿOOOÿONQÿSRTÿSRTÿONQÿTSTÿSRTÿSRTÿ\[\ÿYXZÿ^\^ÿcccÿbbbÿVVWÿZZZÿcccÿ`_`ÿZZ[ÿdddÿ^\^ÿdcdÿmllÿXWYÿffgÿfffÿ`_`ÿffgÿZZ[ÿVVWÿQPRÿXWYÿQPRÿUTWÿIHJÿLKLÿNNOÿPOQÿFFGÿLKLÿJJKÿHGHÿEDFÿQPRÿ``dÿ^\^ÿZZ[ÿVVWÿQPRÿQ?Dÿ‘v|ÿ»¨¬ÿÍ¿ÂÿÕÉÌÿÕÉÌÿØÍÏÿÚÏÑÿÝÓÕÿßÕ×ÿà×Ùÿà×Ùÿà×ÙÿäÛÝÿà×ÙÿßÕ×ÿÝÓÕÿØÍÏÿÕÉÌÿÕÉÌÿÒÅÈÿÐÃÆÿÏÁÄÿÍ¿ÂÿÊ»¾ÿÊ»¾ÿ×ËÎÿçàáÿåÞßÿåÞßÿåÞßÿà×Ùÿà×Ùÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿÝÓÕÿɹ½ÿ®˜ÿ¬–›ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ¬–›ÿ±› ÿ©”™ÿm]aÿ`_`ÿkjkÿihjÿ\[\ÿjjjÿffgÿtttÿ}||ÿ}||ÿxxxÿtttÿmllÿvvwÿvvvÿsssÿrrrÿvvvÿzzzÿxxxÿxxxÿzzzÿxxxÿzzzÿxwxÿvvvÿstvÿsstÿstvÿwwwÿwwwÿwwwÿstvÿhklÿrrsÿlnoÿrrrÿsssÿstvÿvvvÿvvvÿvvvÿvvvÿstvÿwwwÿvvvÿnnnÿrrsÿstvÿrsuÿnnnÿonnÿklmÿs:ÿ>lVÿcdfÿmlnÿqqqÿqqqÿuuuÿrrsÿsssÿqprÿutvÿtstÿvvvÿsssÿtttÿtttÿxwxÿrrsÿxwwÿtttÿ^^^ÿQPRÿpopÿtttÿvvwÿsssÿbbbÿVVWÿ`_`ÿRRSÿGHJÿDFGÿLLLÿPPPÿOOOÿSSSÿLLLÿJKLÿTTTÿTTTÿTTTÿVVVÿJKLÿ```ÿSSSÿRRSÿPOQÿOOOÿ___ÿYXZÿYXZÿdcdÿPOQÿNNNÿMLNÿQPRÿQPRÿPOQÿ:v­ÿŽ¿íÿÿÿÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿ¨Çûÿu®õÿîïÿÿÔÖþÿÍÔþÿÄÒÿÿ¼Ðþÿ±ÌÿÿžÄþÿ•ÃÿÿŒÁÿÿ„Áÿÿ}Àþÿu¾þÿl¾þÿzÆþÿÐëüÿôøøÿñ÷÷ÿðööÿîôôÿëòòÿéññÿèððÿÓààÿ›½Åÿ.Š´ÿ u¦ÿ J_ÿ78:ÿEEEÿGFGÿGHJÿRRRÿbbbÿ```ÿ```ÿ\\^ÿ```ÿ``dÿ```ÿ^^`ÿ___ÿbbbÿ``dÿ```ÿedfÿghjÿbbcÿdghÿghjÿihjÿedfÿedfÿnnoÿkkkÿZZ[ÿWWWÿfffÿedfÿ[[[ÿXWYÿZZZÿ^\^ÿkjkÿPPPÿTTTÿPOQÿOOOÿ^\^ÿcccÿ`_`ÿZZ[ÿ`_`ÿYXZÿihhÿmllÿVVWÿRRRÿgggÿ`_`ÿSSSÿ^\^ÿedfÿkjkÿihhÿgggÿrrrÿqppÿgggÿfffÿoooÿoooÿXWYÿQPRÿPOQÿPOQÿRRSÿPOQÿSRTÿSSVÿZZ[ÿVVWÿRRSÿ^\^ÿcccÿ^^^ÿ`_`ÿZZ[ÿSSSÿYXZÿ^^^ÿ`_`ÿrrrÿpopÿcccÿfffÿihhÿa`bÿbbcÿ^^_ÿdddÿ^\^ÿTSTÿQPRÿ`_`ÿUTVÿFFGÿLKLÿXWYÿZZ\ÿYXZÿ\[^ÿTSTÿSRTÿbbdÿ^\^ÿONQÿ^\^ÿNNOÿPOQÿMLNÿPJNÿmSYÿ¬–›ÿÁ¯³ÿÍ¿ÂÿÐÃÆÿÕÉÌÿÕÉÌÿØÍÏÿÚÏÑÿÝÓÕÿßÕ×ÿà×Ùÿà×Ùÿà×ÙÿäÛÝÿà×ÙÿßÕ×ÿßÕ×ÿØÍÏÿ×ËÎÿÕÉÌÿÒÅÈÿÐÃÆÿÐÃÆÿÍ¿ÂÿÊ»¾ÿØÍÏÿçàáÿçàáÿçàáÿåÞßÿåÞßÿà×Ùÿà×Ùÿà×Ùÿà×ÙÿÝÓÕÿÇ·»ÿ±› ÿ¬–›ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ¬–›ÿ®˜ÿµ¡¥ÿ•…ÿ]VXÿihhÿnnoÿffgÿjjjÿjjjÿvvvÿ}||ÿ}||ÿvvwÿCCCÿcccÿstvÿyxzÿvvvÿrrrÿsssÿxxxÿ{{{ÿzzzÿzzzÿxxxÿxxxÿxxxÿvvwÿrrrÿrrrÿtttÿwwwÿwwwÿnopÿZZZÿnopÿPPPÿdddÿtttÿvvvÿstvÿtttÿstvÿvvvÿstvÿvvvÿstvÿwwwÿffgÿqrtÿsssÿnnpÿghiÿhhhÿdfgÿs:ÿƒOÿ$gDÿCDEÿmmnÿihjÿmmmÿmmmÿqprÿqqqÿwwwÿtttÿvvwÿvvwÿtttÿxwwÿxwwÿvvwÿutvÿvvwÿ```ÿOOOÿQPRÿxwwÿ^\^ÿOOOÿhklÿVVYÿGHJÿJKLÿPPPÿBCDÿSSSÿTTTÿklnÿZZZÿSSVÿRRRÿRRRÿOOOÿ```ÿJKLÿUTVÿ^^`ÿPOQÿDFGÿbbdÿbbcÿ\[^ÿffgÿffgÿSSVÿJJLÿLLLÿRRRÿXWYÿSSSÿKXdÿ;ßÿîöýÿüüÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÀÔþÿS™ñÿùùÿÿÔÖþÿÎÔþÿÅÒÿÿ¾Ïþÿ´Ìÿÿ¦Èþÿ–ÂÿÿŽÁÿÿ…Àÿÿ~¾þÿv¾þÿn½þÿf¼þÿ^¼þÿ•Ôýÿæó÷ÿïõõÿìóóÿêòòÿèððÿæîîÿäííÿÜççÿºÍÎÿb¡¸ÿ|®ÿc‡ÿ,9?ÿ;=>ÿEFHÿNNOÿbbbÿ```ÿ___ÿbbbÿbbbÿbbbÿbbbÿdddÿbbbÿdddÿdghÿfffÿfffÿjjjÿjjjÿgggÿbbbÿjjjÿkkkÿkkkÿmllÿkkkÿ^\^ÿ`_`ÿkjkÿhghÿihhÿkkkÿihhÿcccÿ^\^ÿOOOÿ^^^ÿ^^_ÿYXZÿ^\^ÿ^^^ÿ^\^ÿa`bÿgggÿfffÿkjkÿrrrÿZZ[ÿ___ÿjjjÿcccÿjjjÿgggÿqppÿihhÿihhÿdddÿrrrÿrrrÿsssÿrrrÿtttÿvvvÿMLOÿMLOÿMLNÿMLOÿPOQÿQPRÿUTWÿUTWÿUTWÿSRTÿ\[\ÿUTVÿRRSÿ^\^ÿ`_`ÿWWWÿRRSÿPPPÿbbbÿ^\^ÿbbbÿfffÿdddÿ^^^ÿ^\^ÿ^^_ÿa`bÿ^^_ÿ^\^ÿTSTÿSRTÿRRSÿVVWÿQPRÿQPRÿ__bÿdcdÿddgÿddgÿ^\^ÿ^\^ÿkjkÿttwÿpopÿZZ\ÿUTVÿQPRÿVVYÿWVXÿVHMÿ…hoÿ¸¤©ÿij·ÿÊ»¾ÿÍ¿ÂÿÐÃÆÿÕÉÌÿÕÉÌÿØÍÏÿÚÏÑÿÚÏÑÿÝÓÕÿßÕ×ÿà×Ùÿà×ÙÿäÛÝÿà×ÙÿßÕ×ÿÝÓÕÿØÍÏÿ×ËÎÿÕÉÌÿÒÅÈÿÐÃÆÿÐÃÆÿÍ¿ÂÿØÍÏÿçàáÿäÛÝÿåÞßÿçàáÿçàáÿåÞßÿà×Ùÿà×ÙÿßÕ×ÿÊ»¾ÿ³Ÿ£ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ¬–›ÿ³Ÿ£ÿ£‘ÿnbdÿjjjÿkjkÿhghÿjjjÿmlnÿwwwÿ~~~ÿ}||ÿ{{{ÿCCCÿkjkÿtttÿ{{{ÿxxxÿsssÿqppÿwwwÿzzzÿzzzÿxxxÿzzzÿxxxÿxxxÿxwxÿstvÿvvvÿwwwÿwwwÿwwwÿWWWÿdghÿvvvÿ^^^ÿPPPÿstvÿvvvÿvvvÿstvÿvvvÿvvvÿvvvÿstvÿstvÿtttÿ```ÿmnoÿnnnÿiijÿhhiÿgghÿ`abÿt<ÿ„ܯÿ:›jÿqDÿ`gdÿgggÿhhhÿjjjÿnnnÿmmmÿnnnÿuttÿxxxÿxxxÿtstÿyxzÿxwxÿxwxÿtttÿzzzÿcccÿWWWÿNNOÿSSSÿIHJÿtttÿxxxÿ```ÿPPPÿPPPÿGHJÿ```ÿRRRÿ```ÿWWWÿWWWÿSSSÿXXXÿTTTÿ\\^ÿTTTÿZZZÿTTTÿZZZÿDFGÿPOQÿgggÿihjÿ\[^ÿffgÿklnÿQPRÿMLNÿQPRÿVVWÿUTWÿUTVÿ>r¤ÿ…ºìÿÿÿÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿØÞÿÿF’ðÿïõÿÿÕ×þÿÎÕÿÿÆÒÿÿ¾ÐþÿµÎÿÿ­ËÿÿœÄþÿÁÿÿ‡Áÿÿ€Àþÿx¾þÿo¼þÿg¼þÿ_ºþÿV¹þÿ_Áþÿ½âøÿëòòÿéññÿèððÿåîîÿãììÿáëëÿßêêÿÊÙÙÿ’µ¾ÿ,ˆ±ÿ u¦ÿ Ofÿ===ÿVVXÿ^^^ÿ``dÿ```ÿdddÿcccÿdddÿdddÿdddÿdddÿdddÿfffÿcccÿgggÿdddÿjjjÿjjjÿdddÿdddÿihhÿfffÿkjkÿgggÿ\[\ÿbbcÿgggÿgggÿhghÿgggÿihhÿ`_`ÿPPPÿQPRÿ^\^ÿSSSÿQPRÿ[[[ÿ`_`ÿUTVÿUTVÿXXXÿPPPÿ^^_ÿ^^_ÿ```ÿ`_`ÿkkkÿjjjÿedfÿgggÿcccÿ^^^ÿfffÿoooÿdddÿ___ÿihhÿrrrÿwvvÿtttÿPOQÿMLOÿMLNÿTSTÿSRTÿVVWÿXWYÿVVWÿVVYÿZZ\ÿ`_`ÿYXZÿ`_`ÿ^^^ÿXXXÿVVWÿbbbÿQPRÿSSSÿa`bÿdddÿ\[\ÿTTTÿ^\^ÿYXZÿZZZÿRRRÿXWYÿPPPÿMLOÿMLOÿSRTÿSRTÿLKLÿ^\^ÿihjÿmlnÿpopÿffgÿ\[\ÿ\[\ÿ^\^ÿ^\^ÿYXZÿYXZÿXWYÿ^\^ÿ^\^ÿ^\`ÿfQWÿ¡ˆŽÿ¼ª®ÿij·ÿÇ·»ÿÊ»¾ÿÏÁÄÿÐÃÆÿÕÉÌÿÕÉÌÿØÍÏÿÚÏÑÿÚÏÑÿÝÓÕÿà×Ùÿà×Ùÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿÝÓÕÿØÍÏÿÕÉÌÿÕÉÌÿÕÉÌÿÍ¿Âÿ±µÿɹ½ÿÐÃÆÿÍ¿ÂÿÐÃÆÿÕÉÌÿÚÏÑÿäÛÝÿåÞßÿà×ÙÿÍ¿Âÿ¸¤©ÿµ¡¥ÿ³Ÿ£ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ¬–›ÿ²¢ÿµ¡¥ÿ{jnÿ\Z[ÿkjkÿhghÿihjÿpopÿxxxÿ|{|ÿ{{{ÿzzzÿCCCÿ^^_ÿRRRÿdddÿ{{{ÿvvvÿ^^^ÿNNOÿfffÿstvÿzzzÿzzzÿxxxÿxxxÿxxxÿwwwÿxxxÿwwwÿstvÿwwwÿSSSÿhklÿrrrÿ___ÿNNNÿvvvÿvvvÿvvvÿvvvÿvvvÿstvÿstvÿrsuÿpqsÿqqqÿfeeÿiiiÿjjjÿfgiÿdegÿcdeÿeeeÿs<ÿ„á²ÿ|ã¯ÿJ±}ÿuBÿWh_ÿedfÿeeeÿkkkÿllmÿoooÿqqqÿqqqÿxwxÿtttÿutvÿxwwÿxwwÿxwwÿ|{|ÿihhÿYXZÿsssÿrrsÿFFFÿ}||ÿ{{~ÿdghÿZZ\ÿTTTÿPPPÿRRRÿDFGÿXXXÿPPPÿJKLÿbbbÿfffÿdghÿRRRÿcccÿfffÿTTTÿJKLÿSSSÿUTVÿffhÿggjÿhklÿddgÿVVWÿJJKÿRRSÿTTTÿXWYÿVVVÿQYbÿ6ŒÛÿàíüÿþþÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿ`¢ôÿÆÞüÿàáþÿÏÕÿÿÈÓþÿ¿Ðþÿ¶Îÿÿ­Ëÿÿ¦Èþÿ“ÂÿÿˆÀÿÿ€¾þÿy¾þÿp½þÿh¼þÿ`»þÿXºþÿO¸ÿÿG¸ÿÿzÍûÿÛìòÿæîîÿäííÿâììÿàêêÿÞèèÿÜççÿÔááÿ°ÆÆÿ\œ´ÿ|®ÿgŽÿ4AIÿPOQÿ^^bÿbbbÿdddÿdghÿdddÿdddÿbbbÿdcdÿdcdÿfffÿgggÿdghÿihhÿhklÿmllÿhklÿdddÿfffÿkkkÿkkkÿkkkÿihjÿkjkÿihhÿihhÿkjkÿihhÿkjkÿdcdÿVVWÿXXXÿedfÿ^^^ÿ^^^ÿa`bÿkjkÿ^\^ÿ^^_ÿPPPÿUTVÿ[[[ÿ^^_ÿ`_`ÿcccÿqppÿqppÿmllÿrrrÿfffÿgggÿmllÿqppÿihhÿnnnÿrrrÿtttÿwvvÿvvvÿRRSÿXWYÿVVWÿVVWÿYXZÿTSTÿTSTÿVVWÿZZ[ÿYXZÿa`bÿ\[\ÿ`_`ÿ^\^ÿYXZÿRRSÿPPPÿTSTÿZZ[ÿdcdÿbbcÿ[[[ÿ^^^ÿ\[\ÿ___ÿUTVÿYXZÿUTVÿRRRÿVVWÿVVWÿVVWÿUTWÿbbcÿedfÿddgÿ^\^ÿZZ\ÿbbdÿ^\^ÿ`_`ÿVVWÿUTWÿVVYÿVVYÿTSTÿTSTÿYXZÿTNQÿoU[ÿ²¢ÿ¼ª®ÿ¿®²ÿ±µÿÇ·»ÿÊ»¾ÿÏÁÄÿÐÃÆÿÕÉÌÿÕÉÌÿØÍÏÿÚÏÑÿÚÏÑÿßÕ×ÿà×Ùÿà×Ùÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿÝÓÕÿÚÏÑÿÕÉÌÿij·ÿ¹¦ªÿ²¢ÿ¸¤©ÿ¿®²ÿ¿®²ÿ¼ª®ÿ¼ª®ÿÁ¯³ÿÊ»¾ÿÝÓÕÿÐÃÆÿ»¨¬ÿ¸¤©ÿµ¡¥ÿµ¡¥ÿ²¢ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ¹¦ªÿ‹uzÿeabÿhghÿggjÿkjkÿtttÿwwwÿ{{{ÿ}||ÿxxxÿA@BÿnnoÿklnÿRRSÿzzzÿxxxÿJJJÿJKLÿLLLÿOOOÿ[[[ÿrrrÿxxxÿxxxÿxxxÿxwxÿxxxÿxxxÿxxxÿvvvÿbbbÿ```ÿsstÿXXXÿ___ÿwwwÿtttÿstvÿvvvÿstvÿstvÿvvvÿpqsÿqqqÿoooÿiijÿ`acÿhhhÿcdeÿcccÿ_`bÿaaaÿs<ÿ~à®ÿ#ÒzÿgÝ¢ÿ^ÂÿxCÿ=[Lÿ^_`ÿcccÿeeeÿZZZÿeddÿnnnÿsssÿoooÿvvwÿihjÿbbbÿdddÿ|{|ÿgggÿ\[\ÿ{{{ÿMLNÿYXZÿ}||ÿ}||ÿsssÿPPPÿOOOÿdghÿWWWÿSSVÿXXXÿdghÿ^^^ÿfffÿcccÿdddÿhklÿfffÿcccÿJKLÿJKLÿddgÿOOSÿedfÿedfÿbbcÿGHJÿJJKÿLKLÿNNOÿVVWÿYX[ÿSSVÿAk–ÿr®ìÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿ€²÷ÿšÃ÷ÿêëÿÿÐÕÿÿÈÒþÿÀÐþÿ¸Îþÿ¯Ìÿÿ§ÉþÿÇþÿ‹Àÿÿ‚¾þÿz¾þÿr¼þÿj¼þÿb»þÿXºþÿP¹ÿÿH¸ÿÿ@¸ÿÿF¼þÿ§ÜôÿâììÿáëëÿàêêÿÝèèÿÚææÿÙååÿ×ããÿÁÒÒÿН¸ÿ.‰¯ÿ v¨ÿ'VmÿLLLÿ\\\ÿaaaÿ```ÿdcdÿcccÿdcdÿ```ÿ___ÿdddÿdghÿdghÿfffÿghjÿhklÿjjjÿjjjÿjjjÿjjjÿnnnÿgggÿa`bÿihhÿffgÿkjkÿihhÿihhÿmlnÿkkkÿhghÿ^^^ÿjjjÿhghÿdddÿhghÿgggÿgggÿ^^^ÿPPPÿ^\^ÿVVWÿlklÿkjkÿrrrÿqppÿnnnÿqppÿmllÿqppÿnnnÿqppÿrrrÿrrrÿrrrÿqppÿsssÿwvvÿsssÿYXZÿXXXÿ^^_ÿ```ÿ^^_ÿRRRÿOOOÿVVVÿUTVÿVVWÿZZ[ÿVVWÿ```ÿfffÿYXZÿZZZÿXXXÿ^\^ÿQPRÿTSTÿ`_`ÿa`bÿ`_`ÿ`_`ÿa`bÿTTTÿ[[[ÿYXZÿYXZÿVVWÿVVVÿa`bÿ^\^ÿpopÿkjkÿihjÿYX[ÿlklÿffgÿZZ[ÿTSTÿSRTÿUTWÿUTWÿYXZÿRRSÿSRTÿZZ[ÿYPSÿ‡ipÿ»¨¬ÿ»¨¬ÿ»¨¬ÿ¿®²ÿ±µÿÇ·»ÿÊ»¾ÿÏÁÄÿÐÃÆÿÕÉÌÿÕÉÌÿ×ËÎÿÚÏÑÿÝÓÕÿà×Ùÿà×Ùÿà×Ùÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿÕÉÌÿ¿®²ÿµ¡¥ÿ±› ÿ±› ÿ¸¤©ÿÁ¯³ÿÁ¯³ÿ¿®²ÿ¼ª®ÿ»¨¬ÿ»¨¬ÿ¹¦ªÿ¸¤©ÿ»¨¬ÿ»¨¬ÿ¹¦ªÿµ¡¥ÿµ¡¥ÿ²¢ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿµ¡¥ÿ¬—œÿqilÿdddÿgggÿnnnÿ|{|ÿxwxÿ}||ÿ|{|ÿmlnÿJJKÿXWYÿ``dÿvvwÿxxxÿdcdÿKKKÿJJJÿGHJÿPPPÿTTTÿPPPÿZZZÿlnoÿwwwÿxwxÿvvwÿxxxÿstvÿwwwÿwwwÿ___ÿVVVÿbbbÿxxxÿstvÿvvvÿtttÿstvÿstvÿvvvÿuuuÿsssÿoooÿmmmÿ\\]ÿeeeÿcdeÿcccÿ^_aÿ___ÿXWYÿs<ÿ}ß®ÿËrÿÇmÿUÔ”ÿnÍÿHÿ6iOÿcccÿWZ[ÿOOOÿeeeÿcccÿrrrÿpooÿzzzÿVVWÿqppÿ^^_ÿLLLÿFFFÿ\[\ÿ{z{ÿmlnÿxxxÿ|{|ÿ|{|ÿZZZÿ___ÿ```ÿ\\^ÿYX[ÿVVVÿSSVÿdghÿbbbÿffhÿfffÿdddÿdcdÿbbbÿZZZÿOOOÿbbdÿ\\^ÿPPPÿ`_`ÿedfÿ``dÿSRTÿVVWÿVVWÿSRTÿVVYÿ`_`ÿVX]ÿ;†ÔÿÊáùÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿ§Æûÿe¥ôÿøøÿÿÐÕÿÿÊÔþÿÀÐþÿ¸Îþÿ¯Ìÿÿ¨Êþÿ Çþÿ•Ãÿÿ„Àÿÿ{½þÿs¼þÿk¼þÿbºþÿZºþÿQ·ÿÿI¸ÿÿA¸ÿÿ9¶ÿÿ1¶ÿÿ`ÆúÿÌåíÿÞèèÿÜççÿÚææÿØääÿÖââÿÓááÿÍÜÜÿ«ÀÀÿ[™¯ÿ|®ÿk’ÿÉ„ÿuÒ¤ÿ%ŠWÿ$pIÿaeeÿeefÿnnnÿihhÿqqrÿvvvÿxwxÿtttÿxwwÿxwxÿhghÿVVWÿZZZÿzzzÿ|{|ÿ{{{ÿ{{{ÿbbbÿxxxÿhklÿXXXÿ___ÿbbbÿXXXÿ___ÿ[[[ÿbbbÿ^^_ÿcccÿffhÿfffÿbbbÿbbbÿ```ÿ```ÿbbbÿbbcÿddgÿdcdÿedfÿZZ\ÿSRTÿPOQÿSRTÿVVVÿYXZÿNlŒÿZ¡êÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÓÜÿÿF’ðÿïöÿÿØÛÿÿÊÓþÿÂÐþÿºÎþÿ°Ëÿÿ©Êþÿ Çþÿ—ÄÿÿŽÂÿÿ~¾þÿt¼þÿl»þÿd»þÿ\ºþÿS¸ÿÿK¹ÿÿB·ÿÿ;¸ÿÿ3·ÿÿ+¶ÿÿ/¸þÿ’ÕñÿÚææÿÙååÿ×ããÿÔââÿÒààÿÐÞÞÿÏÝÝÿºÍÍÿ†ª±ÿ,†­ÿ wªÿ&YqÿJLLÿYYYÿaaaÿ\\^ÿ^^^ÿdddÿ```ÿjjjÿfffÿcccÿjjjÿkkkÿmllÿkkkÿnnnÿkkkÿihhÿZZ[ÿhghÿmllÿlklÿkjkÿkkkÿkjkÿmllÿkkkÿkkkÿihhÿnnnÿnnnÿlklÿnnoÿrrrÿpopÿqppÿ```ÿ^\^ÿLLLÿcccÿmlnÿfffÿqppÿrrrÿsssÿtttÿtttÿtttÿwvvÿwvvÿwvvÿwvvÿrrrÿrrrÿrrrÿtttÿRRSÿZZZÿVVVÿVVWÿVVWÿZZZÿa`bÿfffÿcccÿ[[[ÿ^\^ÿ^^^ÿZZZÿZZ[ÿZZ[ÿ^^_ÿbbcÿXXXÿQPRÿQPRÿbbcÿ`_`ÿ`_`ÿ___ÿLKLÿTSTÿ\[\ÿa`bÿZZZÿJJJÿQPRÿIHHÿVVWÿ^\^ÿbbbÿhghÿZZ[ÿUTWÿYX[ÿUTWÿYX[ÿVVWÿ^\^ÿ^\^ÿVVWÿ^\^ÿnnoÿkjkÿdOTÿ¨‘–ÿ»¨¬ÿ±› ÿµ¡¥ÿ¹¦ªÿ»¨¬ÿ¿®²ÿij·ÿɹ½ÿÊ»¾ÿÏÁÄÿÐÃÆÿÒÅÈÿÕÉÌÿØÍÏÿÚÏÑÿÝÓÕÿßÕ×ÿà×Ùÿà×Ùÿà×ÙÿÍ¿Âÿ¹¦ªÿ¸¤©ÿ¹¦ªÿɹ½ÿÐÃÆÿà×ÙÿñíîÿñíîÿíèéÿèâãÿÒÅÈÿ²¢ÿ§”ÿ§”ÿ«”™ÿ»¨¬ÿ¼ª®ÿ»¨¬ÿ¸¤©ÿµ¡¥ÿµ¡¥ÿ²¢ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ¬–›ÿ²¢ÿ¿®²ÿtaeÿdcdÿqppÿ}||ÿ}||ÿvvwÿ{{{ÿwwwÿrrsÿstvÿxx}ÿ{z{ÿxx}ÿxxxÿ{{{ÿXWYÿKKKÿGHJÿOOOÿXWYÿ```ÿWWWÿSSSÿTTTÿOOSÿRRRÿ\\\ÿdghÿnopÿstvÿklnÿklnÿhklÿrrrÿhklÿhklÿdghÿlnoÿnopÿ``dÿjlmÿhjkÿs:ÿ~Ê£ÿ~̤ÿϦÿ€Ñ¨ÿ€Ôªÿ׬ÿ‚Ù­ÿ‚Û¯ÿƒÝ°ÿƒÞ±ÿÃlÿ¿gÿ¼eÿ¹cÿ+¾uÿuУÿ8›hÿrCÿakfÿkjlÿpooÿpoqÿuttÿxwwÿxwwÿwvvÿvvwÿtttÿbbcÿTTTÿzzzÿ{z{ÿ}||ÿ{z{ÿtttÿ}||ÿstvÿTTTÿ\\^ÿbbbÿ```ÿZZZÿZZZÿ`_`ÿ[[[ÿdcdÿedfÿ`_`ÿbbbÿbbbÿ```ÿ___ÿ```ÿbbbÿa`bÿa`bÿJKLÿ\\^ÿTTTÿPPPÿPOQÿOOOÿMMNÿ?‚Æÿ³ÔöÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿrªõÿ¡ÈøÿîïÿÿÊÓþÿÂÑþÿºÎþÿ±ÌÿÿªÊþÿ¢Èþÿ˜ÅÿÿÃÿÿ†Àÿÿx¼þÿn»þÿeºþÿ]¹þÿT¸ÿÿL¸ÿÿD¶ÿÿ<¸ÿÿ4¶ÿÿ,·ÿÿ$¶ÿÿ ¶ÿÿMÂøÿÀßèÿÖââÿÓááÿÒààÿÐÞÞÿÎÜÜÿËÛÛÿÅÖÖÿ¢¹¹ÿX•ªÿ}®ÿk•ÿ:NWÿRRRÿaaaÿbbbÿ^^_ÿ___ÿcccÿjjjÿhklÿihhÿgggÿjjjÿihhÿihjÿjjjÿcccÿ\[\ÿfffÿgggÿkjkÿmllÿlklÿgggÿgggÿkjkÿdddÿffgÿmllÿkjkÿmllÿpopÿnnoÿnnnÿoooÿgggÿRRRÿRRRÿXWYÿmllÿnnnÿrrrÿkkkÿihhÿkkkÿqppÿsssÿtttÿtttÿrrrÿsssÿsssÿwvvÿrrrÿtttÿNNNÿTTTÿZZ[ÿ```ÿXXXÿZZZÿYXZÿ^^_ÿ^\^ÿ```ÿ^\^ÿZZ[ÿ^^_ÿVVWÿQPRÿ^\^ÿihhÿdcdÿZZ[ÿWWWÿ`_`ÿa`bÿZZ[ÿ^^_ÿ`_`ÿ^^_ÿdcdÿhghÿkjkÿhghÿ^\^ÿUTVÿSSSÿcccÿ`_`ÿ`_`ÿ\[\ÿVVYÿlklÿddgÿkjkÿihhÿdddÿihhÿfffÿjjjÿkkkÿgggÿcHOÿ³Ÿ£ÿ³Ÿ£ÿ«”™ÿ²¢ÿµ¡¥ÿ¹¦ªÿ¼ª®ÿ¿®²ÿij·ÿɹ½ÿÊ»¾ÿÏÁÄÿÐÃÆÿÒÅÈÿÕÉÌÿ×ËÎÿÚÏÑÿÝÓÕÿßÕ×ÿà×Ùÿ×ËÎÿ¼ª®ÿ¹¦ªÿ»¨¬ÿÏÁÄÿÝÓÕÿÕÉÌÿ°¡ÿ~ciÿqU[ÿ–}ƒÿÊ»¾ÿÐÃÆÿ±µÿ±› ÿ¨‘–ÿ§”ÿ³Ÿ£ÿ¿®²ÿ¼ª®ÿ»¨¬ÿ¸¤©ÿµ¡¥ÿµ¡¥ÿ²¢ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ¬–›ÿ²¢ÿ¿®²ÿ€ioÿgggÿ}||ÿ{{{ÿ}||ÿxwwÿyxzÿsstÿsstÿxxxÿ{z{ÿ{z{ÿ{z{ÿ{z{ÿyxzÿwwwÿa`bÿGHJÿJKLÿSSSÿhklÿwwwÿnopÿdddÿSSSÿPPPÿJKLÿJKLÿ```ÿhklÿdghÿbbbÿghjÿXXXÿSSSÿlnoÿdghÿYX[ÿ[[[ÿlnoÿZZZÿUTVÿs:ÿ~Ê£ÿ›Oÿ Sÿ¥Vÿ ªYÿ ¯\ÿ ³_ÿ ·aÿºcÿ¼eÿ¼eÿ»dÿ¹cÿ µ`ÿ ±^ÿ³gÿmËœÿJ©yÿ s>ÿTi^ÿlllÿpopÿqqrÿtstÿxwwÿutvÿvvwÿihjÿXWYÿYXZÿoooÿzxxÿ{z{ÿtttÿvvwÿ}||ÿyxzÿ^^^ÿSSVÿ```ÿVVVÿTTTÿTTTÿXXXÿVVVÿ___ÿ\\\ÿZZZÿbbcÿ\\^ÿbbbÿZZZÿUTWÿRRRÿXWYÿ^^_ÿGHJÿ\[\ÿ`_`ÿONQÿMLNÿLKLÿEWkÿI—éÿøûÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿ°ËýÿRšñÿéòþÿæéÿÿÃÒÿÿ¼Ïþÿ²ÌÿÿªÉþÿ¢Çþÿ™Æÿÿ‘ÂÿÿˆÀÿÿ€¾þÿrºþÿf¹þÿ^¸þÿU¹ÿÿM¶ÿÿE¶ÿÿ=¸ÿÿ5µÿÿ-¶ÿÿ%´ÿÿ ·ÿÿ¸ÿÿ&ºþÿ†ÐîÿÒààÿÐÞÞÿÏÝÝÿÌÜÜÿÊÚÚÿÈØØÿÆ××ÿ´ÈÈÿ‚¥¬ÿ/†«ÿ x¬ÿ4P]ÿ\\]ÿ```ÿ^^_ÿdddÿihhÿjjjÿjjjÿkkkÿjjjÿkkkÿkkkÿmllÿnnnÿcccÿWWWÿcccÿhghÿmllÿmllÿkjkÿlklÿlklÿkkkÿkjkÿnnnÿkjkÿmlnÿmllÿoooÿrrrÿmlnÿnnnÿqppÿZZ[ÿgggÿXXXÿkkkÿkkkÿoooÿqppÿqppÿtttÿtttÿtstÿtttÿtttÿwvvÿtttÿwvvÿwvvÿtttÿwwwÿOOOÿXXXÿ^^_ÿVVWÿYXZÿ^\^ÿ^\^ÿgggÿ^^_ÿPPPÿVVVÿTSTÿZZZÿ^^^ÿZZ[ÿ^\^ÿfffÿ`_`ÿcccÿbbbÿcccÿ^\^ÿfffÿkkkÿxwwÿrrrÿmlnÿxwwÿpopÿ\[\ÿ\[\ÿdcdÿdcdÿa`bÿ`_`ÿ^\^ÿ``dÿ^^`ÿffgÿddgÿa`bÿWWWÿZZZÿmllÿ`_`ÿkkkÿihhÿfffÿmPWÿ»¨¬ÿ±› ÿ§”ÿ¬–›ÿ±› ÿµ¡¥ÿ¹¦ªÿ¼ª®ÿ¿®²ÿ±µÿÇ·»ÿÊ»¾ÿÍ¿ÂÿÐÃÆÿÒÅÈÿÕÉÌÿ×ËÎÿÚÏÑÿÝÓÕÿÝÓÕÿÍ¿Âÿ¹¦ªÿ»¨¬ÿɹ½ÿßÕ×ÿÕÉÌÿŠqwÿrikÿzzzÿzzzÿofhÿqU[ÿµ¡¥ÿÊ»¾ÿ¼ª®ÿ«”™ÿ§”ÿ®˜ÿ¼ª®ÿ¿®²ÿ¼ª®ÿ»¨¬ÿ¸¤©ÿµ¡¥ÿµ¡¥ÿ²¢ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ¬–›ÿ±› ÿ¿®²ÿ˜‚‡ÿzzzÿ{{{ÿzxxÿ{{{ÿrrsÿstvÿsssÿwwwÿ{z{ÿ{{{ÿzzzÿzzzÿzzzÿxxxÿxxxÿvvvÿTSTÿNNNÿOOOÿSRTÿstvÿwwwÿwwwÿwwwÿhklÿVVVÿJKLÿJKLÿOOOÿ```ÿdghÿbbbÿdddÿ^^^ÿlnoÿbbbÿ[[[ÿ___ÿ```ÿ^^^ÿWWWÿs:ÿ~Ê£ÿ™NÿžQÿ£Tÿ §Wÿ ¬Zÿ ¯]ÿ ³_ÿ µaÿ ·bÿ ·bÿ ¶aÿ ´`ÿ ±^ÿ ®\ÿ ªYÿ¨[ÿ^Âÿ\µ‰ÿxBÿJq]ÿrqrÿrrrÿrrsÿvvwÿwvvÿzxxÿkjkÿLKLÿRRSÿjjjÿvvwÿbbbÿzxxÿ{{{ÿ{{{ÿ}||ÿghjÿRRRÿOOSÿPPPÿUTWÿOOSÿRRRÿRRSÿbbcÿVVVÿZZ[ÿa`bÿONQÿ\[\ÿNNNÿRRRÿNNOÿdcdÿbbdÿbbbÿfffÿfffÿXWYÿJJKÿJJKÿ@t°ÿ”ÁóÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿ€²øÿV›òÿÖæüÿïòÿÿÂÓþÿ³Îÿÿ¬Êþÿ£ÈþÿšÄþÿ‘Ãÿÿ‰Àÿÿ‚¾þÿz¼þÿnºþÿ`¸þÿW¸þÿO¸ÿÿF·ÿÿ?¶ÿÿ7¶ÿÿ/¶ÿÿ'µÿÿ!³ÿÿ¸ÿÿ·ÿÿ¶ÿÿAÁ÷ÿ³ØãÿÎÜÜÿËÛÛÿÉÙÙÿÈØØÿÅÖÖÿÂÔÔÿ¾ÐÐÿ›µµÿ@‹©ÿcƒÿYYZÿcccÿ\\\ÿcccÿfffÿ```ÿfffÿedfÿgggÿjjjÿmllÿihhÿdcdÿfffÿ^^_ÿihhÿhghÿgggÿihhÿkjkÿkjkÿfffÿkkkÿkkkÿnnnÿmllÿihhÿjjjÿnnnÿmllÿkkkÿgggÿZZZÿVVVÿihhÿVVVÿbbcÿdddÿkjkÿoooÿqppÿkkkÿoooÿsssÿqprÿoooÿrrrÿsssÿsssÿoooÿqppÿrrrÿZZZÿ^\^ÿOOOÿUTVÿZZ[ÿVVWÿ`_`ÿ^\^ÿa`bÿ^\^ÿ^^_ÿYXZÿTSTÿ^\^ÿWWWÿihhÿcccÿ`_`ÿdcdÿ`_`ÿihhÿnnoÿwvvÿtstÿtstÿ^^_ÿ`_`ÿdcdÿa`bÿqprÿZZ[ÿpopÿffgÿa`bÿbbcÿXWYÿ__bÿ``dÿZZ[ÿSRTÿUTWÿ^^_ÿkkkÿkjkÿkkkÿihhÿihhÿkkkÿoQWÿ»¨¬ÿ¨‘–ÿ¤Œ‘ÿ¨‘–ÿ«”™ÿ±› ÿµ¡¥ÿ¹¦ªÿ¼ª®ÿ¿®²ÿij·ÿɹ½ÿÊ»¾ÿÍ¿ÂÿÐÃÆÿÒÅÈÿÕÉÌÿ×ËÎÿÚÏÑÿØÍÏÿ±µÿ¹¦ªÿ¼ª®ÿÕÉÌÿèâãÿ£“ÿtjmÿzzzÿ{z{ÿ{{{ÿ{z{ÿpgiÿ€ekÿÊ»¾ÿɹ½ÿ²¢ÿ«”™ÿ«”™ÿ»¨¬ÿ¿®²ÿ¿®²ÿ¼ª®ÿ»¨¬ÿ¸¤©ÿµ¡¥ÿµ¡¥ÿ³Ÿ£ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ±› ÿ¼ª®ÿ£Œ‘ÿVVVÿZZ[ÿnnnÿxxxÿnnnÿsssÿxxxÿ{z{ÿ{z{ÿ{{{ÿzzzÿ{{{ÿyxzÿ{z{ÿzzzÿxxxÿvvvÿOOOÿRRRÿSSVÿ\\\ÿwwwÿxxxÿxxxÿrrrÿstvÿdddÿSSSÿOOSÿJKLÿ\\^ÿlnoÿsstÿklnÿhklÿrrrÿnopÿhklÿijkÿrrrÿsssÿs:ÿ~Ê£ÿ™Nÿ›Oÿ Rÿ¤Uÿ ¨Xÿ ¬Zÿ ¯\ÿ ±^ÿ ²^ÿ ²_ÿ ²^ÿ °]ÿ ­[ÿ ªYÿ §Wÿ¢TÿžRÿIµ~ÿk¾”ÿ€Lÿ8tVÿpoqÿtstÿxxxÿxwwÿyxzÿyxzÿNNNÿVVVÿzxxÿnnoÿ{z{ÿzzzÿ{{{ÿ}||ÿ}||ÿrrrÿVVYÿWWWÿbbbÿXWYÿ___ÿWWWÿBBBÿMLNÿGHJÿJJJÿOOOÿHGHÿNNOÿBCDÿJKLÿGHJÿZZZÿcccÿdddÿa`bÿdddÿ```ÿHGHÿCHOÿ>ŒãÿäðþÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿ’¼úÿJ”ðÿ ÉøÿøúÿÿÍÝÿÿ¬Êþÿ¤ÈþÿœÆþÿ’ÃÿÿŠÀÿÿ‚¾þÿz»þÿrºþÿi·þÿ[¸þÿP·ÿÿH¸ÿÿ@µÿÿ8¶ÿÿ0¶ÿÿ(¶ÿÿ"³ÿÿ ·ÿÿ·ÿÿ¶ÿÿºþÿºüÿzÌêÿÈÚÚÿÈØØÿÆ××ÿÄÖÖÿÂÔÔÿÀÒÒÿ¾ÑÑÿa¢¼ÿd„ÿ\\\ÿ^^_ÿ```ÿ```ÿcccÿfffÿffgÿgggÿjjjÿihhÿmllÿjjjÿjjjÿkjkÿedfÿbbcÿgggÿgggÿkjkÿkjkÿihhÿkkkÿmllÿmllÿmllÿmllÿmllÿmllÿmllÿnnnÿoooÿcccÿ^\^ÿ___ÿ```ÿWWWÿ^\^ÿfffÿihhÿkkkÿ^\^ÿfffÿqppÿrrrÿrrrÿsssÿsssÿsssÿwvvÿtttÿsssÿsssÿcccÿYXZÿ^^_ÿTSTÿcccÿYXZÿZZ[ÿa`bÿnnnÿcccÿ```ÿ^^^ÿWWWÿ`_`ÿZZZÿ^^^ÿOOOÿOOOÿMLNÿTTTÿVVVÿ[[[ÿ^\^ÿ^\^ÿa`bÿ^^_ÿdcdÿ`_`ÿkjkÿmlnÿa`bÿZZ\ÿXWYÿUTWÿVVYÿXWYÿTSTÿYX[ÿ\[^ÿ^^`ÿ__bÿlklÿoooÿfffÿ___ÿkjkÿedfÿcccÿoPWÿ¼ª®ÿ§”ÿ ‡Œÿ¤Œ‘ÿ§”ÿ«”™ÿ±› ÿµ¡¥ÿ¹¦ªÿ¼ª®ÿ¿®²ÿij·ÿɹ½ÿÊ»¾ÿÐÃÆÿÐÃÆÿÕÉÌÿÕÉÌÿØÍÏÿÕÉÌÿ¼ª®ÿ¹¦ªÿ¿®²ÿØÍÏÿìæçÿqV\ÿ{z{ÿzzzÿ{{{ÿ{{{ÿ|{|ÿ{{{ÿV9?ÿÊ»¾ÿÏÁÄÿµ¡¥ÿ¬–›ÿ¬–›ÿ»¨¬ÿij·ÿÁ¯³ÿ¿®²ÿ¼ª®ÿ»¨¬ÿ¸¤©ÿµ¡¥ÿµ¡¥ÿ³Ÿ£ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ±› ÿ¿®²ÿ¦Ž“ÿNNNÿKKKÿIHHÿNNOÿkkkÿyxzÿ{{~ÿ{{{ÿ{{{ÿzzzÿzzzÿ{{{ÿyxzÿzzzÿyxzÿxxxÿxwxÿnopÿOOOÿSRTÿNNOÿnopÿstvÿstvÿffhÿstvÿnopÿstvÿghjÿTTTÿOOOÿOOOÿDFGÿlnoÿnopÿsssÿstvÿtttÿrrrÿsssÿvvvÿs:ÿ‹Ð­ÿ'§fÿ+©iÿ0®nÿ/°oÿ,²nÿ(³mÿ!²iÿ°bÿ ­\ÿ ®[ÿ ­[ÿ ¬Zÿ ©Yÿ¦Wÿ£TÿŸRÿ›Oÿ™Nÿ5­pÿ~É¢ÿ'ŠXÿtDÿyxzÿxxxÿzzzÿyxzÿ{z{ÿ^\^ÿ\[^ÿ{z{ÿqprÿ{z{ÿ}||ÿ|{|ÿ{{{ÿ{z{ÿZZZÿ\\^ÿVVVÿPPPÿbbbÿWWWÿSSSÿJJKÿEDFÿDFGÿGHJÿRRRÿPPPÿGHJÿMLOÿXXXÿ___ÿ^^`ÿ___ÿ```ÿ\\\ÿ`_`ÿ___ÿEDFÿAg‘ÿx²òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿ¬ÉýÿYžòÿf§ðÿÞìüÿæîÿÿ¬ÌþÿœÆþÿ“Ãÿÿ‹Áÿÿƒ¾ÿÿ{¼þÿr¹þÿj·þÿb¶þÿX´þÿK¶ÿÿAµÿÿ9¶ÿÿ1´ÿÿ)¶ÿÿ"´ÿÿ ¶ÿÿ¸ÿÿ¶ÿÿ¶þÿºþÿ¹ýÿ=Àõÿ¬ÓÞÿÅÖÖÿÃÔÔÿÁÓÓÿÀÒÒÿ½ÐÐÿXŸ¼ÿ(`zÿ`_aÿVVVÿa`bÿcccÿdddÿdghÿihhÿkkkÿjjjÿihhÿmllÿmllÿmllÿlklÿa`bÿ^^_ÿkkkÿgggÿkkkÿmllÿkjkÿkkkÿihhÿkkkÿjjjÿkjkÿnnnÿnnnÿnnnÿoooÿkkkÿmllÿnnnÿgggÿqppÿgggÿjjjÿmllÿedfÿkkkÿlklÿoooÿrrrÿrrsÿrrsÿsssÿtttÿtttÿwvvÿsssÿtstÿvvvÿgggÿ`_`ÿ^\^ÿPPPÿ^^_ÿ\\\ÿa`bÿa`bÿihhÿfffÿbbbÿZZZÿUTVÿ[[[ÿRRSÿbbbÿRRSÿYXZÿ^\^ÿNNNÿZZ[ÿ^\^ÿZZ[ÿTTTÿWWWÿVVWÿXXXÿZZ[ÿgggÿ`_`ÿUTWÿSRTÿSRTÿdcdÿ^^`ÿVVYÿYX[ÿ\[^ÿYXZÿVVWÿa`bÿ^^_ÿfffÿdddÿXWYÿXXXÿVVWÿRRSÿoPWÿ¿®²ÿ¤Œ‘ÿ™~„ÿ ‡Œÿ¤Œ‘ÿ§”ÿ«”™ÿ±› ÿµ¡¥ÿ»¨¬ÿ¿®²ÿ±µÿɹ½ÿÊ»¾ÿÏÁÄÿÐÃÆÿÒÅÈÿÕÉÌÿØÍÏÿÕÉÌÿ¼ª®ÿ»¨¬ÿ¿®²ÿØÍÏÿìæçÿmQWÿ{{{ÿzzzÿ{{{ÿ{{{ÿ{z{ÿzzzÿX;AÿÊ»¾ÿÐÃÆÿ»¨¬ÿ²¢ÿ±› ÿ¿®²ÿɹ½ÿij·ÿij·ÿÁ¯³ÿ¿®²ÿ¼ª®ÿ»¨¬ÿ¹¦ªÿµ¡¥ÿ³Ÿ£ÿ±› ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ±› ÿ¿®²ÿ¦Ž“ÿSRTÿJJKÿIHJÿJKLÿQPRÿghjÿ{z{ÿyxzÿ{{{ÿ{z{ÿ{z{ÿxxxÿzzzÿyxzÿzzzÿzzzÿxxxÿsssÿklnÿSRTÿRRRÿTTTÿlnoÿ___ÿdddÿfffÿlnoÿstvÿvvvÿstvÿdddÿOOOÿGHJÿlnoÿdddÿsssÿtttÿstvÿtttÿstvÿtttÿs:ÿ’Ò²ÿ5­pÿ7­qÿ9¯sÿ<²wÿ>¶yÿ@¹|ÿ@º|ÿA¼~ÿ=»{ÿ,µpÿ­bÿ ¨Xÿ¥Vÿ¢TÿŸRÿœPÿ™Nÿ™Nÿ;¯tÿ…˨ÿ+‹Zÿ%tLÿxxxÿzzzÿzxxÿyxzÿyxzÿkjkÿffgÿzxxÿ{z{ÿihjÿ{{{ÿ{{{ÿ}||ÿkkkÿzxxÿ__bÿVVVÿPPPÿZZZÿJKLÿJKLÿVVVÿZZZÿJKLÿJKLÿPPPÿUTWÿVVVÿYX[ÿZZZÿcccÿ___ÿ```ÿbbcÿ[[[ÿGGGÿFFFÿDCEÿ@†ÕÿÂÜúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¼Ñþÿ|²÷ÿD’êÿ—Ãôÿ÷ùÿÿÄÜÿÿ”Ãÿÿ‹Áÿÿƒ¾ÿÿ|¼þÿtºþÿl¸þÿb¶þÿ[´þÿS³ÿÿH²ÿÿ<·ÿÿ3´ÿÿ+´ÿÿ$´ÿÿ ³ÿÿ¸ÿÿ·ÿÿ¸ÿÿ¹þÿ¹ýÿ¹ýÿºüÿuÈçÿ¿ÔÔÿÀÒÒÿ¾ÑÑÿ¼ÏÏÿLšºÿ*_wÿ^^^ÿ```ÿ```ÿcccÿdddÿgggÿcccÿghjÿjjjÿjjjÿkkkÿkkkÿmllÿmllÿedfÿYXZÿdddÿkjkÿkjkÿihhÿgggÿkjkÿgggÿgggÿihhÿgggÿkkkÿnnnÿkkkÿoooÿnnnÿjjjÿgggÿnnnÿoooÿdddÿmllÿoooÿmllÿmllÿmllÿrrrÿrrrÿsssÿsssÿsssÿsssÿtttÿtttÿsssÿsssÿvvvÿWWWÿRRRÿWWWÿXXXÿTSTÿa`bÿXXXÿRRRÿRRRÿQPRÿOOOÿUTVÿ\[\ÿXXXÿhghÿ^\^ÿYXZÿYXZÿ^\^ÿVVWÿ^\^ÿZZ[ÿVVVÿVVVÿTSTÿ^\^ÿ^^_ÿdcdÿZZ[ÿSRTÿSRTÿQPRÿQPRÿSRTÿYX[ÿ\[^ÿZZ[ÿYXZÿUTWÿSRTÿUTVÿ^^^ÿ^\^ÿdddÿXXXÿWWWÿVVVÿXWYÿrT[ÿ¿®²ÿ¡ˆŽÿ—}ƒÿš€†ÿ ‡Œÿ¥“ÿ¨‘–ÿ±› ÿµ¡¥ÿ»¨¬ÿ¿®²ÿÁ¯³ÿÇ·»ÿÊ»¾ÿÍ¿ÂÿÐÃÆÿÒÅÈÿÕÉÌÿ×ËÎÿÕÉÌÿ±µÿ»¨¬ÿ¿®²ÿÕÉÌÿçàáÿ†Œÿsjlÿ{z{ÿzzzÿ{z{ÿzzzÿrhkÿ{_fÿÐÃÆÿÐÃÆÿ»¨¬ÿµ¡¥ÿ¸¤©ÿÇ·»ÿÍ¿ÂÿÊ»¾ÿɹ½ÿÇ·»ÿ±µÿ¿®²ÿ¿®²ÿ¼ª®ÿ»¨¬ÿ¹¦ªÿµ¡¥ÿ²¢ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ®˜ÿ±› ÿÁ¯³ÿ¨’—ÿtttÿwwwÿihhÿOOOÿRRRÿVVWÿWWWÿsstÿzzzÿxxxÿ{{{ÿ{{{ÿyxzÿxxxÿzzzÿxxxÿzzzÿvvvÿvvwÿbbdÿVVVÿTTTÿdghÿdghÿlnoÿbbbÿbbbÿwwwÿvvvÿsstÿstvÿqppÿ___ÿPPPÿ__bÿ```ÿstvÿrrrÿvvvÿvvvÿstvÿs:ÿ•Ô´ÿ;¯tÿ>°vÿ@±xÿB³yÿD¶|ÿE·~ÿF¹ÿH»€ÿG»€ÿG»€ÿEºÿA¸|ÿ2±qÿ'«hÿ¦bÿ¤aÿ%¦eÿdÀ‘ÿ}Æ¡ÿMÿCu\ÿxxxÿyxzÿxxxÿxxxÿyxzÿzzzÿsssÿnnoÿ{{{ÿwvvÿrrrÿ{{{ÿzzzÿ{{{ÿsssÿzxxÿ`_`ÿ\[\ÿRRRÿ[[[ÿGHJÿDFGÿZZZÿdddÿRRRÿPPPÿ\\^ÿXXXÿWWWÿ___ÿ```ÿ^^^ÿbbbÿ[[[ÿGGGÿDFGÿCCCÿ@@@ÿ?UpÿTïÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¾Òþÿ¸ÏþÿžÄüÿVœîÿX êÿÐäúÿãîÿÿšÉÿÿ„¾ÿÿ|¼þÿtºþÿl¸þÿdµþÿ\´þÿS³ÿÿK°ÿÿD°ÿÿ8²ÿÿ,µÿÿ$´ÿÿ!³ÿÿ¶ÿÿ·ÿÿ¶ÿÿ·þÿºþÿ¹ýÿ¹ýÿ¸ýÿDÁôÿªÏØÿ½ÐÐÿ»ÏÏÿD–¹ÿ0Zmÿ```ÿcccÿdddÿfffÿihjÿjjjÿihhÿjjjÿnnnÿghjÿmllÿmllÿkkkÿoooÿihjÿ\[\ÿ^\^ÿkjkÿihjÿihjÿkkkÿgggÿdddÿihhÿihhÿmllÿoooÿnnnÿmllÿmllÿnnnÿkkkÿoooÿqppÿnnnÿjjjÿkkkÿrrrÿrrrÿnnnÿmllÿsssÿsssÿwvvÿtttÿwvvÿwvvÿwvvÿwwwÿvvvÿvvvÿxwwÿQPRÿ`_`ÿfffÿOOOÿTSTÿ[[[ÿQPRÿQPRÿPPPÿRRSÿTSTÿVVVÿTTTÿ[[[ÿdddÿfffÿVVWÿYXZÿOOOÿVVWÿdcdÿgggÿdcdÿ^\^ÿYXZÿfffÿZZ[ÿVVWÿRRRÿSRTÿQPRÿSRTÿSSVÿVVYÿ^\^ÿ\[\ÿ^\^ÿSRTÿQPRÿRRSÿXWYÿZZ[ÿ^^_ÿ\[\ÿXWYÿVVWÿXXXÿ^\^ÿqU[ÿ±µÿ¤Œ‘ÿ“x~ÿ—}ƒÿƒ‰ÿ¥“ÿ¬–›ÿ³Ÿ£ÿ¸¤©ÿ»¨¬ÿ¿®²ÿÁ¯³ÿij·ÿɹ½ÿÊ»¾ÿÏÁÄÿÒÅÈÿÒÅÈÿ×ËÎÿ×ËÎÿÊ»¾ÿ¼ª®ÿ¿®²ÿÍ¿Âÿà×ÙÿÕÉÌÿ†lrÿqgjÿ{{{ÿ{{{ÿofhÿoRYÿ¹¦ªÿÕÉÌÿÏÁÄÿ»¨¬ÿ¹¦ªÿ¼ª®ÿÏÁÄÿÐÃÆÿÏÁÄÿÍ¿ÂÿÊ»¾ÿɹ½ÿij·ÿ±µÿÁ¯³ÿ¿®²ÿ¼ª®ÿ»¨¬ÿ¹¦ªÿµ¡¥ÿ±› ÿ®˜ÿ®˜ÿ¬–›ÿ²¢ÿij·ÿ¥‘•ÿ|{|ÿ|{|ÿ{{{ÿ{{{ÿijkÿXWYÿTTTÿVVVÿrrrÿ{{{ÿ{{{ÿyxzÿzzzÿyxzÿzzzÿxxxÿxxxÿzzzÿxwxÿwwwÿTTTÿSRTÿRRRÿlnoÿnopÿ___ÿlnoÿtttÿdddÿ___ÿdddÿrrrÿsstÿdghÿRRRÿOOSÿhklÿsstÿsstÿvvvÿstvÿs:ÿ—ÕµÿA±xÿD³zÿG´}ÿIµ~ÿKµÿL·ÿM¹‚ÿMºƒÿMº„ÿLºƒÿJ¹ÿH¸ÿF¶}ÿC³zÿ@±xÿB²zÿ~Ë£ÿp¼–ÿyDÿXugÿxxxÿxwxÿxxxÿxxxÿzzzÿzzzÿzzzÿutvÿutvÿzzzÿedfÿ{z{ÿ{{{ÿ}||ÿ{{{ÿ|{|ÿTSTÿdcdÿ\\^ÿPPPÿSRTÿOOSÿ__bÿ```ÿ```ÿ```ÿcccÿbbbÿ```ÿ___ÿ```ÿccfÿdcdÿOOOÿGGGÿGHJÿGHJÿJKLÿVVWÿKÀÿœÇ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¾Òþÿ¸Ïþÿ²ÎÿÿªÉÿÿx±öÿ>äÿ¾ïÿöøÿÿ©Òÿÿ~½þÿvºþÿm¸þÿdµþÿ\´þÿT²ÿÿM²ÿÿE°ÿÿ=¯ÿÿ4­ÿÿ(²ÿÿ"³ÿÿ µÿÿ·ÿÿ¶ÿÿ·ÿÿ¹þÿ¹ýÿ¹ýÿ¸ýÿ4Áýÿ´ïÿr¼Öÿ»ÏÏÿ6¶ÿ1\oÿ```ÿcccÿ^^_ÿbbbÿihhÿkkkÿkjkÿgggÿgggÿmllÿkkkÿjjjÿjjjÿihjÿgggÿ`_`ÿWWWÿihjÿihhÿkjkÿkkkÿkkkÿkkkÿnnnÿihhÿmllÿmllÿmllÿoooÿnnnÿqppÿoooÿoooÿoooÿqppÿmllÿnnnÿrrrÿoooÿrrrÿqppÿsssÿsssÿtttÿstvÿtttÿtttÿtttÿwwwÿvvvÿwvvÿwvvÿRRSÿVVWÿYXZÿcccÿ\[\ÿ^^^ÿQPRÿQPRÿOOOÿUTVÿ`_`ÿ^^_ÿVVWÿ`_`ÿfffÿoooÿ^\^ÿgggÿ[[[ÿcccÿfffÿcccÿgggÿa`bÿ`_`ÿ`_`ÿ^\^ÿXWYÿTSTÿRRSÿSRTÿXWYÿ^\^ÿdcdÿedfÿZZ[ÿSRTÿQPRÿQPRÿQPRÿVVWÿdcdÿhghÿ\[\ÿZZ[ÿdddÿbbbÿ___ÿcIOÿ»¨¬ÿ§”ÿŽrxÿ—}ƒÿ¥“ÿ«”™ÿ®˜ÿ³Ÿ£ÿµ¡¥ÿ»¨¬ÿ¼ª®ÿ¿®²ÿij·ÿɹ½ÿÊ»¾ÿÍ¿ÂÿÐÃÆÿÒÅÈÿÕÉÌÿØÍÏÿÒÅÈÿ¿®²ÿ¿®²ÿij·ÿÒÅÈÿçàáÿåÞßÿ°ž¡ÿv[aÿmPVÿ‘x}ÿɹ½ÿÝÓÕÿ×ËÎÿɹ½ÿ¼ª®ÿ¼ª®ÿɹ½ÿÕÉÌÿÒÅÈÿÐÃÆÿÐÃÆÿÏÁÄÿÊ»¾ÿɹ½ÿÇ·»ÿÇ·»ÿ±µÿÁ¯³ÿ¿®²ÿ¼ª®ÿ»¨¬ÿ»¨¬ÿµ¡¥ÿ±› ÿ®˜ÿ³Ÿ£ÿɹ½ÿŽx}ÿ{{{ÿ}||ÿ{{{ÿ|{|ÿ{z{ÿ{{{ÿdddÿTTTÿRRRÿtttÿzzzÿzzzÿyxzÿyxzÿxxxÿzzzÿzzzÿyxzÿxxxÿxwxÿhklÿSSVÿOOOÿ\\^ÿghjÿ\\^ÿZZZÿrrrÿ```ÿrrrÿhklÿnopÿvvvÿqppÿdddÿSSSÿRRRÿklnÿstvÿsstÿsstÿs:ÿšÖ¸ÿG´}ÿJµÿM¶ÿP·ƒÿQ¸„ÿR¹…ÿS¹†ÿSº†ÿSº†ÿRº†ÿP¸„ÿO·‚ÿL¶€ÿIµ~ÿS¸…ÿѰÿ]®„ÿuBÿgvnÿvvvÿvvwÿwwwÿxxxÿxwxÿzxxÿyxzÿzzzÿvvwÿvvwÿxwwÿqppÿyxzÿ}||ÿ{z{ÿ{{{ÿxwxÿmllÿRRRÿWWWÿYXZÿ___ÿVVYÿZZZÿ[[[ÿccfÿ\\\ÿbbbÿ^^^ÿbbbÿbbbÿ```ÿcccÿ[[[ÿPPPÿXXXÿbbbÿcccÿdghÿX]eÿCêÿìôþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¾Òþÿ¸Ïþÿ²Îÿÿ¬Êÿÿ¨Èþÿ•¿üÿL™êÿgªèÿøúÿÿ‹Ãþÿvºþÿn¹þÿf¶þÿ^µþÿU³ÿÿM²ÿÿE¯ÿÿ>°ÿÿ7¬ÿÿ.¬ÿÿ(®ÿÿ!³ÿÿ¸ÿÿ¶ÿÿ¶ÿÿ¶þÿºþÿ¹ýÿ¼ýÿ3Áùÿ ¨éÿ¢×ÿB­Ôÿ)‹·ÿ9Xgÿdddÿdcdÿ`_`ÿ___ÿYXZÿcccÿbbbÿ\\\ÿa`bÿjjjÿ___ÿdddÿkkkÿnnnÿlklÿ`_`ÿ^\^ÿmlnÿlklÿfffÿcccÿbbbÿbbbÿihhÿdddÿfffÿ___ÿ^^^ÿihhÿgggÿqppÿgggÿdddÿihhÿihhÿkkkÿcccÿcccÿnnnÿbbbÿffgÿmllÿihhÿmllÿsssÿsssÿsssÿtttÿsssÿpopÿmllÿqppÿ`_`ÿcccÿUTVÿedfÿcccÿTSTÿ^\^ÿZZ[ÿcccÿTSTÿUTVÿ^^_ÿ`_`ÿkkkÿkjkÿOOOÿZZZÿNNNÿXXXÿa`bÿZZ[ÿcccÿ`_`ÿbbbÿ^\^ÿVVVÿVVWÿTTTÿQPRÿRRSÿYXZÿbbcÿ^\^ÿ^^_ÿTSTÿSRTÿSRTÿQPRÿUTVÿYXZÿedfÿdcdÿ^\^ÿa`bÿ^\^ÿZZ[ÿXWYÿ___ÿfQUÿ»¨¬ÿ³Ÿ£ÿ—}ƒÿ¤Œ‘ÿ§”ÿ«”™ÿ¬–›ÿ³Ÿ£ÿµ¡¥ÿ¹¦ªÿ»¨¬ÿ¿®²ÿ±µÿÇ·»ÿÊ»¾ÿÍ¿ÂÿÐÃÆÿÐÃÆÿÕÉÌÿ×ËÎÿ×ËÎÿÊ»¾ÿÁ¯³ÿÁ¯³ÿÊ»¾ÿà×Ùÿíèéÿñíîÿìæçÿìæçÿçàáÿà×ÙÿÚÏÑÿÊ»¾ÿÁ¯³ÿÁ¯³ÿÇ·»ÿÕÉÌÿØÍÏÿ×ËÎÿÕÉÌÿÒÅÈÿÐÃÆÿÐÃÆÿÍ¿ÂÿÍ¿ÂÿÊ»¾ÿɹ½ÿij·ÿij·ÿÁ¯³ÿ¿®²ÿ¿®²ÿ¿®²ÿ»¨¬ÿµ¡¥ÿ¹¦ªÿÐÃÆÿ‡uyÿ}||ÿ|{|ÿ}||ÿ|{|ÿ{{{ÿ}||ÿ|{|ÿnnnÿSSSÿTSTÿxwxÿzzzÿyxzÿyxzÿxxxÿxxxÿxxxÿxxxÿxwxÿwwwÿwwwÿSSSÿNNNÿOOOÿhklÿlnoÿsstÿlnoÿsssÿnopÿdghÿ^^^ÿrrrÿstvÿrrrÿstvÿlnoÿSSVÿdghÿstvÿsstÿs:ÿ›Õ¸ÿ Ø»ÿ¢Ø½ÿ£Ù¾ÿ¤Ù¿ÿ¥Ú¿ÿ¦ÚÀÿ¦ÚÀÿ¦ÛÀÿªÜÂÿ^½ÿW»ˆÿT¹†ÿR¹…ÿfÀ’ÿ˜ÔµÿGœrÿtIÿcjfÿxxxÿ^^^ÿlnoÿ[[[ÿfffÿjjjÿdddÿzxxÿzzzÿxwwÿrrrÿrrrÿ{{{ÿ{z{ÿ{{{ÿ{{{ÿ{{{ÿzxxÿyxzÿa`bÿNNNÿTTTÿZZZÿ[[[ÿ__bÿTTTÿXXXÿPPPÿ\\^ÿ\\^ÿ\\^ÿ___ÿ\\^ÿ___ÿ```ÿ[[[ÿXXXÿ[[[ÿZZ\ÿTTTÿEh”ÿu®õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¾Òþÿ¸Ïþÿ²Îÿÿ¬Êÿÿ¨Èþÿ¢Äþÿ˜ÂþÿG—çÿªÏòÿ¸Úÿÿxºþÿn¹þÿfµþÿ^µþÿV²þÿN²ÿÿG±ÿÿ?°ÿÿ7¬ÿÿ/¬ÿÿ*¬ÿÿ(­ÿÿ"²ÿÿ·ÿÿ¶ÿÿ¶ÿÿºþÿ¹ýÿ0Àýÿ´ðÿ¦àÿ¡Ôÿ¡Õÿ ¶ÿ9Vcÿdddÿdddÿdddÿ```ÿ```ÿZZZÿXXXÿXXXÿ^^^ÿffgÿ\[\ÿgggÿkjkÿmlnÿkjkÿ^\^ÿcccÿihjÿmllÿjjjÿ^^_ÿ^\^ÿVVVÿcccÿ[[[ÿbbbÿa`bÿ\\\ÿcccÿ^^^ÿmllÿkkkÿgggÿcccÿgggÿfffÿkjkÿcccÿ___ÿ\\\ÿ___ÿnnnÿnnnÿdghÿdghÿdddÿ^^^ÿ[[[ÿXXXÿVVVÿTTTÿVVWÿUTVÿTTTÿZZZÿcccÿ^^_ÿSSSÿYXZÿZZ[ÿcccÿkkkÿ^\^ÿ`_`ÿgggÿfffÿ```ÿTTTÿPOQÿYXZÿ^\^ÿihhÿjjjÿfffÿ^^_ÿZZ[ÿZZ[ÿZZZÿ\[\ÿRRSÿVVWÿ[[[ÿbbcÿ[[[ÿkjkÿcccÿUTVÿTTTÿSRTÿQPRÿYXZÿ``dÿbbcÿ^\^ÿ^\^ÿffgÿddgÿ__bÿ^\^ÿ^\^ÿ_PTÿ®˜ÿ±µÿ¡ˆŽÿ¥“ÿ§”ÿ«”™ÿ®˜ÿ³Ÿ£ÿµ¡¥ÿ¹¦ªÿ¼ª®ÿ¿®²ÿ±µÿij·ÿÊ»¾ÿÍ¿ÂÿÐÃÆÿÐÃÆÿÕÉÌÿÕÉÌÿÚÏÑÿ×ËÎÿÊ»¾ÿɹ½ÿÍ¿ÂÿÒÅÈÿÚÏÑÿà×ÙÿßÕ×ÿßÕ×ÿÝÓÕÿÕÉÌÿÏÁÄÿÇ·»ÿÇ·»ÿɹ½ÿÕÉÌÿßÕ×ÿÝÓÕÿÚÏÑÿ×ËÎÿÕÉÌÿÕÉÌÿÒÅÈÿÐÃÆÿÐÃÆÿÏÁÄÿÊ»¾ÿÊ»¾ÿÊ»¾ÿɹ½ÿij·ÿ±µÿÁ¯³ÿÁ¯³ÿ¿®²ÿ±µÿÕÉÌÿquÿ{{{ÿ|{|ÿ}||ÿ|{|ÿ{{{ÿ{{{ÿ{z{ÿzzzÿhklÿVVVÿcccÿyxzÿxxxÿxxxÿzzzÿyxzÿxxxÿxxxÿxwxÿvvwÿvvvÿXXXÿRRRÿKKKÿSSSÿ```ÿTTTÿnopÿtttÿtttÿghjÿcccÿqppÿrrrÿnopÿstvÿnopÿsstÿddgÿedfÿlnoÿs:ÿs;ÿs;ÿs;ÿs;ÿs;ÿs<ÿt<ÿt<ÿs:ÿ©ÜÂÿdÀ’ÿ]½Œÿ[¼‹ÿyÉ ÿ™Òµÿ0Œ]ÿ2sRÿrssÿdddÿxxxÿghjÿnopÿXXXÿdddÿfffÿbbcÿxwxÿbbbÿfffÿqppÿzzzÿzzzÿzxxÿ}||ÿ}||ÿyxzÿyxzÿyxzÿ__bÿZZZÿRRSÿNNNÿ^^^ÿ[[[ÿ[[[ÿ[[[ÿZZ\ÿZZZÿ[[[ÿ\\\ÿ___ÿXXXÿ\\^ÿ```ÿ\\^ÿXXXÿ[[[ÿTTTÿXXXÿGsªÿP˜ñÿºÖûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¾Òþÿ¸Ïþÿ²Îÿÿ¬Êÿÿ¨Èþÿ¢ÄþÿœÃþÿt¯õÿ`¦çÿÛìÿÿxºþÿp¹þÿh¶þÿ`µþÿX³þÿO²ÿÿG°ÿÿ?°ÿÿ8­ÿÿ0®ÿÿ*¬ÿÿ)¬ÿÿ'«ÿÿ"°ÿÿ¶ÿÿ¶ÿÿ¸þÿ»ýÿ6Âúÿ ©êÿ¡Öÿ¡Õÿ¡Õÿ €³ÿ8Ubÿ__`ÿdcdÿdddÿ```ÿ```ÿWWWÿ`_`ÿUTVÿ\[\ÿbbcÿ\[\ÿa`bÿmllÿmlnÿgggÿfffÿgggÿgggÿmllÿjjjÿYXZÿSSSÿ\\\ÿ[[[ÿXXXÿbbbÿ___ÿ[[[ÿ```ÿbbbÿbbbÿdddÿRRRÿ\[\ÿkkkÿdddÿfffÿa`bÿ[[[ÿ^^^ÿdddÿnnnÿXWYÿXXXÿWWWÿUTVÿRRRÿQPRÿMLNÿJKLÿJJKÿPOQÿ```ÿdddÿfffÿVVVÿRRSÿPPPÿcccÿgggÿRRSÿOOOÿPPPÿQPRÿWWWÿ^\^ÿVVVÿRRSÿXXXÿcccÿ\[\ÿjjjÿ\[\ÿkkkÿYXZÿXXXÿ`_`ÿbbbÿ^\^ÿ`_`ÿ[[[ÿXWYÿbbbÿbbcÿdcdÿVVWÿ^\^ÿTSTÿSRTÿQPRÿXWYÿ^\^ÿZZ[ÿVVWÿZZ\ÿ__bÿhghÿa`bÿYXZÿ\[\ÿaWZÿ™…ÿÊ»¾ÿ¨‘–ÿ¡ˆŽÿ§”ÿ«”™ÿ¬–›ÿ²¢ÿµ¡¥ÿ¹¦ªÿ»¨¬ÿ¿®²ÿÁ¯³ÿÇ·»ÿɹ½ÿÍ¿ÂÿÏÁÄÿÐÃÆÿÕÉÌÿÕÉÌÿØÍÏÿÝÓÕÿØÍÏÿÕÉÌÿÐÃÆÿÒÅÈÿÒÅÈÿÐÃÆÿÐÃÆÿÍ¿ÂÿÍ¿ÂÿÍ¿ÂÿÊ»¾ÿÊ»¾ÿÊ»¾ÿ×ËÎÿäÛÝÿà×Ùÿà×ÙÿÝÓÕÿÚÏÑÿØÍÏÿØÍÏÿ×ËÎÿÕÉÌÿÕÉÌÿÒÅÈÿÐÃÆÿÏÁÄÿÊ»¾ÿÊ»¾ÿÊ»¾ÿɹ½ÿÇ·»ÿij·ÿij·ÿÏÁÄÿȹ¼ÿ…ÿ{{{ÿ}||ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{z{ÿ{{{ÿa`bÿXXXÿxwxÿzzzÿyxzÿxxxÿxwxÿxwxÿvvwÿqppÿmllÿhklÿbbbÿRRRÿGHJÿGHJÿUTVÿSSSÿqppÿdcdÿstvÿdghÿrrrÿbbbÿdghÿrrrÿsstÿrrsÿnopÿstvÿnopÿZZ\ÿghjÿhklÿnopÿnopÿnopÿqppÿsstÿstvÿstvÿs:ÿ­ÝÅÿjÖÿeÀ’ÿŽÑ¯ÿ‘Í®ÿNÿHs_ÿdghÿrrsÿ[[[ÿstvÿ`_`ÿrrrÿxxxÿwwwÿxwxÿwwwÿzxxÿQPRÿOOOÿedfÿzzzÿ{{{ÿ{{{ÿyxzÿyxzÿxwxÿzzzÿxwwÿ^^`ÿYXZÿ^\^ÿ^^`ÿVVVÿLLLÿPPPÿ[[[ÿ__bÿXXXÿ[[[ÿ[[[ÿWWWÿPPPÿOOOÿPPPÿNNNÿNNNÿOOOÿTTTÿOOOÿJKLÿE\xÿCŒçÿÆÝûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¾Òþÿ¸Ïþÿ²Îÿÿ¬Êÿÿ¨Èþÿ¢ÄþÿœÃþÿ¿ÿÿ6Žßÿðöÿÿxºþÿp¹þÿh¶þÿ`µþÿX³þÿP²ÿÿH°ÿÿA±ÿÿ9®ÿÿ1®ÿÿ*¬ÿÿ)¬ÿÿ'«ÿÿ%ªÿÿ!¯ÿÿ¶ÿÿ¸þÿ.Àþÿ ´òÿ¦âÿ Ôÿ¡Ôÿ Ôÿ €³ÿ6Raÿ[[\ÿffhÿfffÿ`_`ÿcccÿbbcÿkjkÿdddÿffgÿffgÿedfÿ^\^ÿkjkÿmllÿdddÿ^^^ÿedfÿcccÿa`bÿ___ÿ\\\ÿZZZÿcccÿbbcÿ\\\ÿbbcÿkjkÿkjkÿhghÿ```ÿZZ[ÿdcdÿfffÿffgÿoooÿihhÿjjjÿihhÿdddÿcccÿpopÿkkkÿgggÿgggÿdddÿ\\^ÿTTTÿRRSÿPOQÿNNOÿJKLÿtstÿ^^^ÿWWWÿ^\^ÿ`_`ÿRRSÿUTVÿRRRÿOOOÿPPPÿMLNÿTSTÿ```ÿXXXÿ^\^ÿXXXÿ^\^ÿVVWÿYXZÿcccÿTSTÿ`_`ÿWWWÿWWWÿZZ[ÿYXZÿgggÿ^^_ÿdcdÿXXXÿ^\^ÿcccÿ\[\ÿ```ÿ[[[ÿ```ÿ\[\ÿZZ[ÿ``dÿddgÿ^^`ÿXWYÿ__bÿddgÿ^\^ÿYXZÿVVYÿYXZÿ^\^ÿ\UXÿzafÿÏÁÄÿµ¡¥ÿ¤Œ‘ÿ§”ÿ«”™ÿ®˜ÿ³Ÿ£ÿµ¡¥ÿ»¨¬ÿ»¨¬ÿ¿®²ÿÁ¯³ÿij·ÿɹ½ÿÊ»¾ÿÏÁÄÿÐÃÆÿÒÅÈÿÕÉÌÿ×ËÎÿßÕ×ÿìæçÿíèéÿà×Ùÿ×ËÎÿÕÉÌÿÒÅÈÿÏÁÄÿÏÁÄÿÏÁÄÿÏÁÄÿÐÃÆÿ×ËÎÿäÛÝÿçàáÿçàáÿåÞßÿäÛÝÿà×ÙÿßÕ×ÿßÕ×ÿÝÓÕÿÚÏÑÿØÍÏÿ×ËÎÿÕÉÌÿÕÉÌÿÒÅÈÿÐÃÆÿÏÁÄÿÏÁÄÿÍ¿ÂÿÊ»¾ÿÊ»¾ÿÊ»¾ÿ×ËÎÿ¦”˜ÿ{uvÿ}||ÿ{{{ÿ{{{ÿ{{{ÿ|{|ÿ{z{ÿ{{{ÿzzzÿ{z{ÿvvwÿTTTÿsssÿxxxÿxxxÿxxxÿxxxÿxxxÿvvvÿhklÿfffÿdghÿ___ÿJKLÿTTTÿJKLÿ```ÿghjÿOOOÿdghÿrrrÿrrrÿ```ÿ___ÿqppÿlnoÿnopÿlnoÿnopÿsstÿ\[^ÿ___ÿrrsÿrrsÿsssÿrrsÿrrsÿrrsÿsstÿstvÿrrsÿs:ÿ±ßÇÿvÇžÿ Ø»ÿÁžÿwDÿ\uhÿklnÿdghÿsssÿvvvÿsssÿvvvÿlnoÿlnoÿtttÿvvvÿvvvÿvvwÿzxxÿqppÿvvwÿzxxÿzzzÿ{{{ÿzxxÿxwwÿzxxÿ|{|ÿmlnÿXXXÿXWYÿ^^_ÿa`bÿbbcÿ`_`ÿUTWÿYX[ÿ```ÿ\[^ÿXWYÿOOSÿLLLÿGHJÿDFGÿBCDÿA@Bÿ@@@ÿ??@ÿ??@ÿ??@ÿ??@ÿ@@@ÿCcŠÿ{²öÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¾Òþÿ¸Ïþÿ²Îÿÿ¬Êÿÿ¨Èþÿ¢ÄþÿœÃþÿ–ÀÿÿB•æÿÖèûÿƒÀþÿrºþÿj·þÿa¶þÿY³þÿQ³ÿÿI°ÿÿA±ÿÿ9®ÿÿ1®ÿÿ*¬ÿÿ)¬ÿÿ'«ÿÿ%ªÿÿ$¬ÿÿ ®ÿÿ¹ÿÿ<Äüÿ ªìÿ¤Øÿ¢Õÿ¡Õÿ¡Õÿ €³ÿ>Aÿ??@ÿ>=>ÿ??@ÿ?\€ÿ{²öÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¾Òþÿ¸Ïþÿ²Îÿÿ¬Êÿÿ¨Èþÿ¢ÄþÿœÃþÿ–ÀÿÿRíÿ®ÑóÿÌþÿr¸þÿj·þÿb¶þÿZ³þÿQ²ÿÿJ°ÿÿB²ÿÿ;®ÿÿ3®ÿÿ+¬ÿÿ)¬ÿÿ'«ÿÿ%ªÿÿ$¬ÿÿ"©ÿÿ4¼ÿÿ)ºöÿ ¦çÿ¡Ôÿ¡Õÿ¢Öÿ¢Öÿ €³ÿAV`ÿdddÿfffÿfffÿbbbÿkjkÿkkkÿlklÿmllÿkjkÿkkkÿmllÿmllÿgggÿedfÿcccÿoooÿnnnÿmllÿkkkÿkjkÿrrrÿrrrÿoooÿa`bÿtttÿtstÿYX[ÿpopÿrrsÿtstÿutvÿutvÿutvÿtstÿtttÿutvÿwvvÿwwwÿwvvÿtttÿtttÿtttÿpopÿbbbÿRRRÿJKLÿNNOÿJKLÿffgÿLLLÿNNNÿRRRÿfffÿ^^_ÿcccÿ^\^ÿcccÿPPPÿNNNÿQPRÿXXXÿ```ÿVVVÿPPPÿOOOÿ^\^ÿXXXÿRRSÿcccÿfffÿdcdÿ```ÿ```ÿWWWÿYXZÿ^^_ÿkjkÿcccÿ`_`ÿ^^^ÿVVVÿYXZÿ^^_ÿ^\^ÿXXXÿ```ÿ[[[ÿYXZÿXWYÿUTVÿXWYÿXWYÿYXZÿUTVÿXWYÿVVYÿYXZÿVVYÿ^\^ÿ\[\ÿYYZÿ[MQÿ¢ŒÿÕÉÌÿ®˜ÿ¨‘–ÿ¬–›ÿ²¢ÿµ¡¥ÿ¸¤©ÿ¹¦ªÿ¼ª®ÿ¿®²ÿ±µÿÇ·»ÿɹ½ÿÊ»¾ÿÍ¿ÂÿÐÃÆÿÒÅÈÿØÍÏÿçàáÿïêìÿïêìÿïêìÿñíîÿôñòÿôñòÿñíîÿèâãÿåÞßÿçàáÿèâãÿìæçÿìæçÿìæçÿìæçÿìæçÿèâãÿçàáÿçàáÿåÞßÿåÞßÿäÛÝÿà×Ùÿà×ÙÿßÕ×ÿÝÓÕÿÚÏÑÿÚÏÑÿ×ËÎÿÕÉÌÿÕÉÌÿÒÅÈÿÒÅÈÿÐÃÆÿÚÏÑÿÈ»¾ÿk`cÿIIIÿklnÿRRRÿffgÿzzzÿsstÿ{{~ÿ{{{ÿ{z{ÿwwwÿwwwÿ\\^ÿmllÿ{z{ÿxxxÿzzzÿxwxÿxwxÿxwxÿsssÿrrrÿnopÿWWWÿPPPÿnnnÿdddÿNNOÿdghÿffgÿghjÿghjÿklnÿghjÿVVVÿcccÿnopÿrrrÿnopÿghjÿXWYÿghjÿjjlÿlnoÿlnoÿrrsÿnopÿnnnÿqprÿklnÿbbdÿghjÿs:ÿ·àËÿNŸvÿ$sKÿbgdÿklnÿdghÿedfÿfffÿqppÿjjjÿklnÿdghÿnnnÿfffÿffgÿnnnÿjjjÿxwxÿzxxÿwvvÿihhÿqppÿkjkÿtstÿzxxÿzzzÿzzzÿtstÿYXZÿXXXÿ```ÿdcdÿbbcÿedfÿdcdÿdcdÿZZZÿZZ[ÿOOOÿOOSÿSSVÿNNNÿBCDÿ??@ÿ@@@ÿ@@@ÿ??@ÿ>=>ÿ??@ÿA@BÿA@Bÿ??@ÿ@n§ÿžÅ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¾Òþÿ¸Ïþÿ²Îÿÿ¬Êÿÿ¨Èþÿ¢ÄþÿœÃþÿ–Àÿÿb¤ñÿ‰¼îÿàîÿÿw»þÿj·þÿbµþÿ[´þÿS´ÿÿK°ÿÿC²ÿÿ;®ÿÿ4¬ÿÿ,­ÿÿ)¬ÿÿ'«ÿÿ%ªÿÿ$¬ÿÿ$«ÿÿgÇþÿ«îÿ¢Ýÿ Õÿ¡Õÿ¢Öÿ¢Öÿ €³ÿFT[ÿbbbÿa`bÿgggÿhghÿffgÿkjkÿgggÿihjÿkjkÿlklÿbbdÿffgÿkkkÿjjjÿoooÿtttÿkkkÿtttÿqppÿrrrÿrrrÿqppÿnnnÿVVWÿoooÿoooÿJJJÿNNNÿLKLÿEDDÿQPRÿbbcÿklnÿrrrÿsstÿvvvÿtttÿwwwÿxwwÿutvÿsssÿoooÿkkkÿVVVÿGHJÿRRSÿPOQÿGGGÿUTVÿNNNÿRRSÿrrrÿOOOÿ^\^ÿPPPÿOOOÿWWWÿ\[\ÿOOOÿYXZÿ^\^ÿ^\^ÿcccÿcccÿRRRÿdddÿLKLÿOOOÿ^\^ÿUTVÿ^\^ÿcccÿ`_`ÿ^\^ÿ^\^ÿ^^_ÿfffÿihhÿ`_`ÿ^^_ÿ^\^ÿVVVÿcccÿdcdÿ[[[ÿVVWÿVVVÿ\[\ÿ^\^ÿUTVÿXWYÿUTVÿXWYÿVVWÿ\[\ÿSRTÿVVWÿZZ[ÿUTVÿa`bÿa`bÿ[UVÿ‚kqÿßÕ×ÿ¼ª®ÿ«”™ÿ®˜ÿ³Ÿ£ÿµ¡¥ÿ¹¦ªÿ»¨¬ÿ¼ª®ÿ¿®²ÿ±µÿÇ·»ÿɹ½ÿÊ»¾ÿÏÁÄÿÐÃÆÿÕÉÌÿåÞßÿíèéÿíèéÿïêìÿïêìÿïêìÿñíîÿñíîÿñíîÿìæçÿçàáÿèâãÿìæçÿìæçÿìæçÿìæçÿìæçÿìæçÿìæçÿìæçÿèâãÿçàáÿçàáÿçàáÿäÛÝÿäÛÝÿà×Ùÿà×ÙÿßÕ×ÿßÕ×ÿÚÏÑÿØÍÏÿØÍÏÿÕÉÌÿÕÉÌÿÕÉÌÿà×Ùÿ³¦©ÿWQUÿ`_`ÿsstÿ^^`ÿvvvÿ{{{ÿdddÿxxxÿ{{{ÿyxzÿ{{~ÿ`_`ÿXXXÿklnÿwwwÿzzzÿxxxÿxxxÿxxxÿxxxÿvvvÿsstÿrrsÿSSSÿRRSÿklnÿhklÿSSSÿTTTÿddgÿjjjÿghjÿffgÿdghÿdghÿhklÿghjÿklnÿjjlÿVVVÿghjÿjjlÿghjÿnopÿdghÿghjÿffgÿhklÿoooÿggjÿklnÿklnÿs:ÿ-‰[ÿ:sWÿrsuÿwwwÿrrsÿvvvÿsssÿstvÿwwwÿxxxÿwwwÿvvvÿwwwÿxxxÿvvvÿxxxÿyxzÿyxzÿzxxÿvvwÿ^^_ÿzzzÿVVVÿzxxÿzxxÿ{{{ÿxwwÿnnoÿXXXÿ\[\ÿa`bÿdcdÿffgÿedfÿbbcÿdddÿ___ÿJKLÿUTVÿYXZÿPPPÿBCDÿ>>Aÿ??@ÿ??@ÿ>>AÿA@Bÿ??@ÿ??@ÿA@Bÿ@@@ÿ??@ÿA€ÌÿÉàüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¾Òþÿ¸Ïþÿ²Îÿÿ¬Êÿÿ¨Èþÿ¢ÄþÿœÃþÿ–Àÿÿ¶üÿ=ãÿºÙ÷ÿåòÿÿ‰Åþÿd¶þÿ\´þÿS´ÿÿK°ÿÿD°ÿÿ<¯ÿÿ5°ÿÿ-®ÿÿ)¬ÿÿ'«ÿÿ%ªÿÿ$¬ÿÿ:´ÿÿT¿øÿ šáÿžÕÿ ×ÿ¢Öÿ¢Öÿ¢Õÿ €³ÿ=>ÿ??@ÿBCDÿ??@ÿ??@ÿA@Bÿ>>AÿB„×ÿÒæþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¾Òþÿ¸Ïþÿ²Îÿÿ¬Êÿÿ¨Èþÿ¢ÄþÿœÃþÿ–Àÿÿ¾ÿÿt°øÿ<‘âÿp®èÿæñüÿÃâÿÿiºþÿT´ÿÿM²ÿÿE²ÿÿ=¯ÿÿ5­ÿÿ-®ÿÿ)¬ÿÿ'«ÿÿ%ªÿÿ$¬ÿÿZÂþÿ(«ïÿŒÌÿŒÃÿŸ×ÿ¡Õÿ¢Öÿ¡Õÿ €³ÿ>[hÿhghÿffgÿdcdÿbbbÿ\[\ÿ\[\ÿa`bÿgggÿihhÿjjjÿmlnÿqprÿtstÿsssÿsssÿvvvÿrrrÿxwwÿsssÿ^^^ÿbbbÿkjkÿkjkÿRRSÿBBBÿrrrÿDCDÿEDFÿJJLÿnnoÿutvÿtstÿvvvÿsssÿnnnÿwwwÿtttÿ```ÿnnnÿLLLÿkjkÿsssÿIHHÿmllÿ\\^ÿMLNÿYX[ÿVVWÿMLNÿfffÿTTTÿutvÿTTTÿgggÿYXZÿTSTÿ`_`ÿcccÿXXXÿUTVÿOOOÿ`_`ÿ```ÿ^\^ÿTTTÿTTTÿOOOÿJJJÿa`bÿedfÿcccÿXWYÿYXZÿWWWÿ`_`ÿ^\^ÿihhÿ^^^ÿa`bÿ^\^ÿXWYÿ`_`ÿXWYÿ^^^ÿdddÿ```ÿ[[[ÿ`_`ÿa`bÿedfÿedfÿfffÿ```ÿ\[\ÿTSTÿZZ[ÿkjkÿfffÿlklÿgggÿdcdÿfffÿ[VXÿ„kqÿà×ÙÿÇ·»ÿ³Ÿ£ÿµ¡¥ÿ¹¦ªÿ»¨¬ÿ¿®²ÿ¿®²ÿ±µÿij·ÿɹ½ÿÊ»¾ÿÍ¿ÂÿÐÃÆÿà×ÙÿìæçÿíèéÿíèéÿíèéÿíèéÿñíîÿñíîÿñíîÿñíîÿñíîÿìæçÿçàáÿèâãÿèâãÿìæçÿìæçÿìæçÿíèéÿíèéÿïêìÿïêìÿíèéÿìæçÿìæçÿèâãÿèâãÿçàáÿçàáÿçàáÿåÞßÿäÛÝÿà×Ùÿà×Ùÿà×ÙÿßÕ×ÿßÕ×ÿçàáÿ¿²µÿunoÿ{z{ÿzzzÿ{{{ÿ{{{ÿ{{{ÿzzzÿYXZÿrrrÿ{z{ÿ{z{ÿ{z{ÿffgÿVVWÿqqvÿxxxÿxxxÿzzzÿxxxÿwwwÿsstÿsstÿxxxÿnopÿRRRÿghjÿnopÿnopÿSSSÿGHJÿRRRÿlnoÿrrrÿijkÿdghÿqqvÿffhÿVVYÿhklÿVVYÿjjlÿhklÿdghÿhklÿrrsÿnopÿdghÿjjlÿqqvÿlnoÿnopÿklnÿdghÿqprÿklnÿnopÿvvvÿtttÿstvÿwwwÿsstÿvvwÿvvvÿxxxÿvvwÿxwxÿxxxÿvvvÿrrrÿrrrÿsssÿrrrÿrrrÿvvwÿxxxÿedfÿ[[[ÿVVVÿzxxÿqppÿrrsÿrrsÿedfÿ^^_ÿbbcÿbbcÿihjÿdghÿdcdÿ___ÿYX[ÿPPPÿA@Bÿ@@@ÿBCDÿJKLÿTTTÿQPRÿBCDÿ??@ÿ??@ÿ??@ÿ>>AÿA@BÿBBBÿBBBÿB{Âÿ°ÐúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¾Òþÿ¸Ïþÿ²Îÿÿ¬Êÿÿ¨Èþÿ¢ÄþÿœÃþÿ–Àÿÿ¾ÿÿŠºÿÿ€¸ÿÿSžìÿ:ŽÝÿ—ÅîÿòøÿÿœÒÿÿP³ÿÿF°ÿÿ>°ÿÿ6®ÿÿ/®ÿÿ)¬ÿÿ'«ÿÿ%ªÿÿ.¯ÿÿeÆýÿ šäÿƒºÿ&‚¸ÿšÒÿ¢×ÿ¢Öÿ£Öÿ €³ÿ>Zhÿhghÿkkkÿa`bÿbbbÿggjÿkjkÿmllÿnnnÿnnnÿnnoÿoooÿsssÿrrrÿqprÿrrrÿtttÿtttÿwvvÿrrrÿ[[[ÿOOOÿrrrÿqppÿ```ÿKKKÿmllÿKKKÿJJJÿBBBÿGGGÿrrrÿcccÿRRRÿgggÿCCCÿmllÿstvÿNNNÿwwwÿOOOÿmllÿ{{{ÿnnnÿLLLÿQPRÿIHJÿMLNÿKKKÿEDDÿdghÿKKKÿxxxÿffgÿa`bÿRRSÿOOOÿQPRÿTTTÿVVWÿ^\^ÿfffÿ^\^ÿQPRÿOOOÿdddÿ___ÿ[[[ÿYXZÿZZZÿbbbÿcccÿdcdÿ^^_ÿ^^_ÿfffÿbbbÿ^^_ÿUTVÿa`bÿ^^_ÿ^\^ÿgggÿZZ[ÿWWWÿZZ[ÿ^\^ÿ^^^ÿ\[\ÿcccÿdddÿcccÿa`bÿ^^_ÿbbcÿffgÿmllÿkjkÿnnnÿnnoÿkjkÿbbcÿbbcÿ]]]ÿ^KOÿÁ¯³ÿßÕ×ÿ¼ª®ÿ¸¤©ÿ»¨¬ÿ¼ª®ÿ¿®²ÿ±µÿij·ÿÇ·»ÿÊ»¾ÿÊ»¾ÿÐÃÆÿßÕ×ÿìæçÿíèéÿíèéÿíèéÿíèéÿïêìÿñíîÿñíîÿñíîÿôñòÿñíîÿìæçÿçàáÿèâãÿìæçÿìæçÿìæçÿìæçÿíèéÿíèéÿïêìÿïêìÿïêìÿïêìÿíèéÿìæçÿìæçÿèâãÿèâãÿçàáÿçàáÿçàáÿåÞßÿäÛÝÿà×Ùÿà×ÙÿåÞßÿçàáÿptÿ|zzÿ{{{ÿzxxÿ{{{ÿ{z{ÿvvvÿqppÿqprÿ{{{ÿyxzÿmllÿwwwÿdghÿ^^_ÿzzzÿyxzÿvvvÿsssÿstvÿwwwÿrrrÿvvvÿwwwÿTTTÿ^^^ÿstvÿstvÿstvÿsstÿWWWÿSSSÿqprÿstvÿlnoÿjjlÿqprÿSRTÿDFGÿdghÿZZ\ÿ^^`ÿhklÿYX[ÿbbdÿklnÿlnoÿddgÿdghÿffhÿnopÿccfÿ__bÿ^^`ÿmmqÿccfÿ\[\ÿddgÿffgÿhklÿUTVÿlnoÿdghÿ``dÿ``dÿrrsÿklnÿhghÿ`_`ÿVVWÿvvvÿyxzÿvvvÿwwwÿxxxÿvvwÿtttÿbbdÿMLNÿTSTÿqprÿqppÿxwwÿkkkÿ^\^ÿ\[^ÿddgÿedfÿedfÿcccÿVVVÿVVYÿDFGÿPOQÿZZZÿLLLÿCCCÿCCCÿOOOÿKKKÿDFGÿ??@ÿ>=>ÿ@@@ÿBBBÿA@Bÿ>=>ÿ?UrÿL–ðÿØèüÿÿÿÿÿÿÿÿÿÿÿÿÿüüÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¾Òþÿ¸Ïþÿ²Îÿÿ¬Êÿÿ¨Èþÿ¢ÄþÿœÃþÿ–Àÿÿ¾ÿÿŠºÿÿ…¹ÿÿ€µþÿk®ùÿ@”äÿG˜Üÿ»ØóÿÞðÿÿrÃþÿ?°ÿÿ7¬ÿÿ/®ÿÿ)¬ÿÿ'«ÿÿ%ªÿÿL»þÿ<´óÿ‘Ôÿ"¶ÿ$·ÿ#‹ÂÿŸ×ÿ¢Öÿ¢Öÿ ƒ·ÿ=Zgÿ__`ÿ`_`ÿhghÿgggÿjjjÿmlnÿjjlÿnnnÿpopÿrrsÿtttÿxwwÿwvvÿwvvÿwvvÿwvvÿwvvÿtttÿpopÿZZZÿbbbÿnnnÿXXXÿJJJÿPPPÿlklÿTTTÿdcdÿihjÿ^\^ÿsssÿhghÿBBBÿnnoÿHGHÿqppÿvvwÿFFFÿkkkÿFFGÿJJJÿtttÿoooÿzzzÿ```ÿPPPÿ[[[ÿOOOÿFFFÿIHHÿSSSÿzzzÿqppÿcccÿSSSÿZZZÿ^^_ÿTTTÿRRRÿVVWÿQPRÿVVVÿRRSÿa`bÿa`bÿTSTÿMLNÿXXXÿYXZÿgggÿdddÿ`_`ÿ^^_ÿcccÿ^\^ÿ^^_ÿXWYÿ^\^ÿdcdÿbbbÿgggÿZZZÿYXZÿ[[[ÿ[[[ÿ`_`ÿffgÿbbcÿfffÿ___ÿdcdÿa`bÿedfÿmllÿoooÿoooÿlklÿnnnÿihhÿihhÿdcdÿ```ÿ\\\ÿ_\^ÿx^dÿßÕ×ÿ×ËÎÿ¼ª®ÿ¼ª®ÿ¿®²ÿ±µÿij·ÿɹ½ÿɹ½ÿÊ»¾ÿÏÁÄÿßÕ×ÿèâãÿìæçÿìæçÿíèéÿíèéÿíèéÿïêìÿñíîÿñíîÿôñòÿôñòÿñíîÿìæçÿèâãÿèâãÿìæçÿìæçÿìæçÿíèéÿïêìÿïêìÿïêìÿïêìÿïêìÿñíîÿïêìÿíèéÿíèéÿìæçÿìæçÿìæçÿèâãÿçàáÿçàáÿçàáÿåÞßÿçàáÿíèéÿ§”˜ÿzwxÿyxzÿwvvÿtttÿxwwÿrrsÿgggÿklnÿ`_`ÿwwwÿhklÿ[[[ÿtttÿTSTÿnnnÿsstÿsssÿrrsÿrrsÿqppÿsstÿklnÿxxxÿbbbÿVVVÿsstÿxxxÿxxxÿvvwÿstvÿnopÿRRSÿqqvÿvvwÿlnoÿhklÿsstÿoosÿ\\^ÿ\\^ÿhklÿbbdÿhklÿoosÿ``dÿ``dÿ\\^ÿrrsÿ__bÿ__bÿsstÿYX[ÿdghÿrrsÿ\\^ÿoooÿ``dÿvvwÿ^^`ÿ^^`ÿddgÿnopÿUTVÿdghÿ`_`ÿ\\\ÿijkÿ``dÿfffÿXWYÿtstÿxxxÿxwxÿxxxÿzzzÿwwwÿbbcÿZZ[ÿLKLÿVVVÿkjkÿwvvÿ{{{ÿxwwÿa`bÿYXZÿdcdÿ^^_ÿa`bÿZZ\ÿUTWÿNNOÿDFGÿZZZÿSSSÿ@@@ÿ??@ÿCCCÿGGGÿBBBÿDFGÿGHJÿDFGÿ>>Aÿ>=>ÿ<<<ÿ<<<ÿ<<<ÿ@_ˆÿFìÿ¡ÈøÿüüÿÿÿÿÿÿþþÿÿøøÿÿööÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿÝáÿÿÚàÿÿÔÜþÿÎØÿÿÊØþÿÃÕÿÿ¾Òþÿ¸Ïþÿ²Îÿÿ¬Êÿÿ¨Èþÿ¢ÄþÿœÃþÿ–Àÿÿ¾ÿÿŠºÿÿ…¹ÿÿ€µþÿz´þÿu²þÿY¦òÿ3ŽÚÿfªáÿáîúÿ·àÿÿHµÿÿ0¯ÿÿ*¬ÿÿ'«ÿÿ&ªÿÿhÈþÿ èÿ‡Áÿ$‚·ÿ%ƒ¸ÿ%ƒ¸ÿ™Ñÿ ×ÿ¢Öÿ „¹ÿ6Zlÿcccÿdddÿ^^`ÿ\\^ÿ``dÿ``dÿmlnÿtstÿqprÿwvvÿvvvÿwvvÿutvÿsssÿtttÿvvvÿtttÿzxxÿqprÿPPPÿ^^^ÿTTTÿ^\^ÿLLLÿRRRÿqppÿBBCÿJJLÿQPRÿutvÿqprÿutvÿpopÿhghÿCCCÿUTVÿ\[\ÿBBCÿnnoÿFFFÿRRRÿwwwÿtttÿrrrÿkkkÿIHHÿRRRÿIHHÿjjjÿqppÿoooÿjjjÿZZZÿZZ[ÿUTVÿYXZÿVVVÿ^\^ÿ```ÿVVVÿQPRÿfffÿ[[[ÿ`_`ÿfffÿTSTÿTTTÿ^\^ÿa`bÿcccÿdcdÿdcdÿihhÿihhÿWWWÿYXZÿ^\^ÿZZZÿXXXÿcccÿ^\^ÿ^\^ÿ^^_ÿa`bÿfffÿbbbÿihhÿihhÿ```ÿ^^_ÿdcdÿihhÿmllÿrrrÿrrrÿqppÿqppÿnnnÿnnnÿmllÿfffÿ\[\ÿ^^^ÿfffÿi[^ÿ¡ŠÿçàáÿÐÃÆÿ¿®²ÿ±µÿij·ÿɹ½ÿÊ»¾ÿÊ»¾ÿÏÁÄÿÝÓÕÿìæçÿìæçÿìæçÿíèéÿíèéÿïêìÿïêìÿïêìÿñíîÿñíîÿñíîÿôñòÿôñòÿìæçÿèâãÿèâãÿìæçÿìæçÿìæçÿíèéÿïêìÿïêìÿïêìÿñíîÿñíîÿñíîÿñíîÿñíîÿïêìÿïêìÿíèéÿíèéÿìæçÿìæçÿèâãÿèâãÿèâãÿíèéÿʾÁÿznqÿvuuÿwvvÿ{z{ÿ{{{ÿzzzÿtttÿzxxÿzzzÿnnnÿTSTÿGHJÿxxxÿxxxÿ\\\ÿwwwÿvvwÿqppÿxwxÿwwwÿsssÿijkÿ\\^ÿ[[[ÿWWWÿstvÿxxxÿvvvÿwwwÿstvÿvvvÿvvvÿ^^^ÿklnÿsstÿklnÿklnÿstvÿstvÿZZZÿstvÿ\\^ÿ```ÿnopÿ\\^ÿdghÿdghÿYX[ÿnopÿhklÿrrrÿstvÿedfÿffgÿrrrÿddgÿsstÿffhÿstvÿihjÿdghÿrrsÿccfÿ``dÿlnoÿ`_`ÿVVVÿnnoÿijkÿmllÿlklÿwwwÿwwwÿxwxÿxxxÿxwxÿwwwÿcccÿfffÿPPPÿJJJÿVVYÿtstÿrrrÿzxxÿ\[\ÿZZ[ÿRRRÿVVVÿUTVÿJJKÿONQÿEDFÿBCDÿ\[^ÿ??@ÿCCCÿUTVÿFFFÿ??@ÿEDDÿJKLÿGHJÿPPPÿSRTÿBBBÿBBCÿ>=>ÿ>=>ÿ>=>ÿ?M`ÿCÌÿ_¡òÿÌâüÿÿÿÿÿþþÿÿøøÿÿòòÿÿððÿÿììÿÿêêÿÿæçÿÿãåÿÿàãþÿØâÿÿËàùÿð÷þÿö÷ÿÿÝåÿÿÃÕÿÿ¾Òþÿ¸Ïþÿ²Îÿÿ¬Êÿÿ¨Èþÿ¢ÄþÿœÃþÿ–Àÿÿ¾ÿÿŠºÿÿ…¹ÿÿ€µþÿz´þÿu²þÿq´þÿi±ýÿFœèÿ-ŠÓÿŽÁèÿìöÿÿÑþÿ.®ÿÿ'«ÿÿ<´ÿÿP½øÿ˜àÿ%‚¸ÿ'…»ÿ'„»ÿ&ƒ¹ÿ"‹Áÿ ×ÿ¡Öÿ …¹ÿ.XlÿVVXÿVVYÿPOQÿUTWÿ^^`ÿggjÿrrsÿtstÿwvvÿvvwÿvvwÿvvwÿxwxÿwvvÿsssÿvvvÿwvvÿbbbÿpopÿ[[[ÿtstÿ___ÿmllÿnnnÿSSSÿkjkÿFFGÿDCDÿBBCÿ`_`ÿmmqÿvvwÿYX[ÿrrsÿFFFÿYXZÿKKKÿJJKÿwwwÿZZZÿyxzÿzzzÿwvvÿwvvÿkkkÿoooÿ^^^ÿLLLÿzzzÿZZZÿ{{{ÿvvvÿWWWÿZZ[ÿWWWÿYXZÿQPRÿ^\^ÿ^\^ÿ`_`ÿPPPÿ`_`ÿTTTÿZZ[ÿa`bÿTSTÿUTVÿYXZÿ^^^ÿ[[[ÿ```ÿdcdÿ___ÿa`bÿ___ÿ[[[ÿ^^_ÿcccÿ___ÿdcdÿ^\^ÿXXXÿffgÿ___ÿffgÿ`_`ÿkjkÿ`_`ÿ\[\ÿ^^_ÿOOOÿLKLÿ^\^ÿ```ÿ`_`ÿbbcÿjjjÿfffÿbbcÿa`bÿ^\^ÿZZ[ÿbbbÿqppÿvttÿt`eÿÀ¯³ÿèâãÿÐÃÆÿÇ·»ÿɹ½ÿÊ»¾ÿÍ¿ÂÿÏÁÄÿØÍÏÿèâãÿìæçÿìæçÿíèéÿíèéÿïêìÿïêìÿïêìÿïêìÿñíîÿñíîÿôñòÿôñòÿöóôÿìæçÿèâãÿìæçÿìæçÿìæçÿíèéÿíèéÿíèéÿïêìÿïêìÿñíîÿñíîÿôñòÿôñòÿôñòÿôñòÿñíîÿñíîÿïêìÿíèéÿìæçÿìæçÿìæçÿíèéÿâÛÜÿ„ÿsoqÿyxzÿ}||ÿ{{{ÿ{{{ÿ{{{ÿzzzÿqprÿ}||ÿ^^^ÿJJKÿZZ[ÿzzzÿ{z{ÿmllÿxxxÿcccÿvvvÿnopÿqppÿXWYÿPPPÿPPPÿdddÿvvvÿstvÿvvvÿsssÿqppÿrrrÿstvÿvvwÿqppÿffgÿlnoÿhklÿnopÿstvÿstvÿ___ÿsstÿqprÿsstÿstvÿhklÿhklÿstvÿtttÿsstÿstvÿsstÿstvÿstvÿstvÿstvÿstvÿtttÿutvÿstvÿstvÿstvÿqprÿoooÿsstÿqprÿoooÿrrrÿvvvÿwwwÿvvvÿvvvÿxwxÿxwxÿxxxÿxwxÿxxxÿkkkÿoooÿnnnÿTTTÿGGGÿtttÿnnoÿmllÿwvvÿ^\^ÿ^\^ÿVVVÿRRSÿYXZÿJJKÿNNNÿA@BÿA@BÿMLNÿ??@ÿ>=>ÿNNNÿFFFÿOOOÿBBBÿA@Bÿ[[[ÿ``dÿ\\\ÿ\\^ÿGGJÿEDFÿBCDÿ??@ÿ@@@ÿIKMÿTs›ÿBŒãÿ}³óÿåðýÿÿÿÿÿüüÿÿôôÿÿììÿÿêêÿÿæçÿÿãåÿÿ›Âôÿ9ŽÝÿ9…Ìÿ2ˆ×ÿc§äÿÑæøÿôöÿÿÎÜþÿ¸Ïþÿ²Îÿÿ¬Êÿÿ¨Èþÿ¢ÄþÿœÃþÿ–Àÿÿ¾ÿÿŠºÿÿ…¹ÿÿ€µþÿz´þÿu²þÿq´þÿm²þÿi²þÿ[®øÿ5”Ýÿ>“Ôÿ¸ØðÿÞðÿÿ\¿ÿÿYÀþÿ(«ïÿŽÍÿ'…ºÿ#·ÿ'„»ÿ(†»ÿ(†»ÿÕÿ¡Öÿˆ½ÿ/bzÿUUVÿGGJÿBBCÿ>>Aÿ??@ÿBBCÿCCFÿJJLÿIHJÿLKNÿqprÿxwxÿvvwÿsstÿkkkÿtttÿtttÿsssÿqppÿdddÿtttÿdddÿkkkÿSSSÿqppÿmlnÿEDFÿMLNÿVVWÿrrsÿtttÿmlnÿZZ[ÿpopÿEDFÿedfÿFFGÿRRRÿmllÿmllÿlklÿTTTÿtttÿnnnÿtttÿsssÿnnnÿtttÿnnnÿmllÿvvvÿvvvÿZZZÿTTTÿYXZÿTSTÿQPRÿVVWÿ^^_ÿYXZÿcccÿa`bÿVVWÿZZZÿ^^_ÿKKKÿPPPÿ^\^ÿfffÿZZ[ÿ^^^ÿbbbÿ```ÿ^\^ÿ^\^ÿ^\^ÿZZ[ÿfffÿkjkÿmllÿgggÿa`bÿ^\^ÿcccÿfffÿffgÿdddÿcccÿbbbÿRRSÿEDFÿFFFÿNNNÿZZ[ÿZZZÿZZ[ÿkjkÿa`bÿ\[\ÿ\\\ÿ\[\ÿ^\^ÿnnnÿzzzÿ|{{ÿsmnÿrX^ÿà×ÙÿèâãÿÐÃÆÿÊ»¾ÿÏÁÄÿÐÃÆÿØÍÏÿèâãÿìæçÿìæçÿíèéÿïêìÿïêìÿïêìÿïêìÿñíîÿñíîÿñíîÿôñòÿôñòÿôñòÿöóôÿíèéÿìæçÿìæçÿìæçÿíèéÿíèéÿïêìÿïêìÿñíîÿñíîÿñíîÿôñòÿôñòÿôñòÿôñòÿöóôÿôñòÿñíîÿñíîÿïêìÿíèéÿíèéÿïêìÿïêìÿ¡Ž’ÿslmÿyyyÿ}||ÿ|{|ÿ|{|ÿ{{{ÿzxxÿzxxÿmlnÿxwxÿXXXÿJJKÿrrrÿyxzÿxxxÿxwxÿnopÿLLLÿsstÿYXZÿGHJÿNNOÿUTVÿVVYÿ^^`ÿnopÿtttÿrrrÿnopÿrrsÿqppÿsstÿstvÿtttÿffhÿklnÿhklÿnopÿstvÿnopÿffhÿstvÿsstÿsstÿstvÿsstÿsstÿstvÿstvÿstvÿstvÿstvÿstvÿvvvÿvvvÿstvÿtttÿtttÿstvÿstvÿstvÿsstÿoooÿsstÿvvvÿvvvÿvvwÿvvwÿwwwÿwwwÿwwwÿwwwÿxxxÿwwwÿxwwÿwwwÿsssÿjjlÿbbbÿnnnÿRRRÿIHHÿzxxÿnnoÿfffÿ^^_ÿRRSÿedfÿNNNÿLKLÿVVVÿDFGÿJKLÿ??@ÿGGJÿVVYÿYXZÿNNNÿHGHÿGGGÿEDDÿ[[[ÿbbcÿUTVÿBCDÿEDFÿEDFÿDFGÿVVWÿYX[ÿ^^`ÿBCDÿBBBÿUTVÿ\blÿR³ÿD’éÿ‹¼ôÿèòþÿÿÿÿÿüüÿÿôôÿÿÔáüÿ`¥êÿ:~¾ÿP]iÿpooÿqw|ÿS¥ÿ2‰Ñÿv²æÿåðûÿéðÿÿ¾Õÿÿ¬Êÿÿ¨Èþÿ¢ÄþÿœÃþÿ–Àÿÿ¾ÿÿŠºÿÿ…¹ÿÿ€µþÿz´þÿu²þÿq´þÿm²þÿi²þÿe´þÿa²þÿI¥ïÿ)‹ÑÿX¤ØÿÜì÷ÿÌëÿÿ%¥èÿ€¸ÿ(„»ÿz°ÿ|²ÿ$·ÿ)†¼ÿ ‘Èÿ¢×ÿŒÀÿ,e€ÿ]\^ÿBBCÿA@BÿA@BÿBBCÿDCDÿBBCÿIHJÿIHJÿGGJÿEDFÿONQÿ^^`ÿmmqÿrrrÿqppÿtttÿlklÿgggÿ___ÿpopÿWWWÿkkkÿLKLÿihhÿmllÿGGGÿUTVÿTTTÿUTVÿUTVÿJJKÿLKNÿffhÿGGGÿggjÿJJLÿa`bÿZZZÿVVVÿNNNÿKKKÿihjÿsssÿxwwÿtttÿfffÿgggÿsssÿvvvÿzzzÿ\\\ÿVVVÿOOOÿWWWÿdcdÿWWWÿYXZÿcccÿWWWÿZZ[ÿcccÿVVWÿ^\^ÿVVWÿOOOÿLLLÿXWYÿTTTÿ^\^ÿVVVÿ```ÿcccÿcccÿgggÿdddÿcccÿa`bÿa`bÿdcdÿdcdÿdcdÿedfÿedfÿihhÿfffÿ^^^ÿZZZÿZZ[ÿXXXÿJJJÿJJJÿVVVÿ\\\ÿ[[[ÿ[[[ÿkjkÿ\[\ÿ\[\ÿ\[\ÿZZ[ÿ```ÿwvvÿ{{{ÿ{{{ÿ{z{ÿmgiÿejÿäÛÝÿìæçÿ×ËÎÿÐÃÆÿÚÏÑÿìæçÿíèéÿíèéÿíèéÿïêìÿïêìÿïêìÿñíîÿñíîÿñíîÿñíîÿôñòÿôñòÿôñòÿôñòÿøööÿíèéÿìæçÿìæçÿìæçÿíèéÿíèéÿïêìÿñíîÿñíîÿôñòÿôñòÿôñòÿôñòÿôñòÿöóôÿöóôÿöóôÿöóôÿôñòÿñíîÿñíîÿôñòÿïêìÿª™œÿjdfÿzyzÿ}||ÿ{{{ÿ|{|ÿ{{{ÿ{{{ÿsssÿNNOÿ>=>ÿQPRÿBBCÿdghÿMLOÿA@BÿGGGÿdghÿDFGÿSRTÿffgÿffgÿqprÿxxxÿzzzÿxwxÿstvÿnopÿlnoÿnopÿstvÿvvwÿsstÿqppÿnopÿrrrÿhklÿghjÿklnÿstvÿstvÿhklÿklnÿstvÿsstÿsstÿstvÿsstÿstvÿstvÿsstÿstvÿsstÿstvÿstvÿstvÿstvÿvvvÿstvÿstvÿstvÿstvÿstvÿsstÿqppÿstvÿvvwÿvvwÿvvwÿvvvÿwwwÿvvvÿwwwÿxwxÿwwwÿxwxÿwwwÿrrsÿnnnÿQPRÿffgÿSSSÿRRRÿqppÿyxzÿzzzÿ{{{ÿ{z{ÿ|{|ÿzxxÿ\[^ÿ\[^ÿ\\^ÿEDFÿUTVÿPOQÿQPRÿZZZÿJJKÿMLNÿfffÿ[[[ÿOOOÿdcdÿ[[[ÿBBCÿGHJÿ[[[ÿTSTÿFFFÿ<<<ÿ??@ÿJJJÿVVWÿRRRÿghjÿklnÿsstÿU_mÿJ}µÿAæÿz²ðÿžÇòÿ‹½ñÿ?áÿCq ÿNNQÿNNNÿghjÿsssÿqppÿmu}ÿCz©ÿ0‡ÒÿоèÿôùþÿÜèÿÿ®Ìþÿ¢ÄþÿœÃþÿ–Àÿÿ¾ÿÿŠºÿÿ…¹ÿÿ€µþÿz´þÿu²þÿq´þÿm²þÿi²þÿe´þÿa²þÿ]´þÿV³þÿ:žåÿ$†Êÿƒºàÿæóúÿ€²Ðÿ&‚·ÿ'ƒ¹ÿ%‚¸ÿ}³ÿx®ÿ$„»ÿŸØÿÃÿ#iŠÿPORÿDCDÿ@@@ÿFFFÿ^\^ÿbbbÿdcdÿihjÿFEIÿFEIÿDCDÿCCFÿbbdÿmllÿoooÿBBBÿTTTÿXWYÿdddÿXWYÿrrrÿYXZÿgggÿjjjÿ[[[ÿedfÿ[[[ÿIHHÿLKLÿoooÿffhÿSRTÿA@BÿZZ[ÿIHJÿXXXÿ``dÿTTTÿPOQÿkkkÿLLLÿcccÿdddÿ[[[ÿxwwÿsssÿKKKÿ___ÿzzzÿ}||ÿtttÿvvvÿRRRÿcccÿUTVÿgggÿkjkÿcccÿcccÿfffÿ[[[ÿ^\^ÿZZZÿXXXÿXXXÿVVVÿQPRÿ^\^ÿXXXÿ^\^ÿedfÿdcdÿfffÿbbcÿedfÿedfÿ^^_ÿ^\^ÿ___ÿ`_`ÿ___ÿbbbÿZZ[ÿ^\^ÿ^\^ÿZZ[ÿ\[\ÿ[[[ÿ\\\ÿ^\^ÿXWYÿVVVÿZZ[ÿ^\^ÿ\[\ÿYXZÿjjjÿ\[\ÿ\[\ÿXWYÿYXZÿjjjÿzzzÿ{{{ÿzzzÿzzzÿzxxÿi`bÿ„kpÿÝÓÕÿìæçÿà×Ùÿìæçÿíèéÿíèéÿïêìÿïêìÿïêìÿñíîÿñíîÿôñòÿôñòÿôñòÿôñòÿôñòÿöóôÿöóôÿöóôÿøööÿïêìÿìæçÿíèéÿíèéÿíèéÿïêìÿïêìÿñíîÿñíîÿôñòÿôñòÿöóôÿöóôÿöóôÿöóôÿöóôÿöóôÿöóôÿöóôÿöóôÿöóôÿìæçÿ«™ÿocfÿzzzÿ}||ÿ{{{ÿyxzÿzxxÿvvwÿoooÿ@@@ÿCCCÿLLLÿ>=>ÿYXZÿnnnÿklnÿedfÿdghÿPOQÿBBCÿddgÿvvwÿxwxÿwwwÿwwwÿxwxÿxxxÿwwwÿvvwÿxwxÿsssÿsssÿvvvÿwwwÿvvvÿrrrÿlnoÿghjÿijkÿnopÿghjÿsstÿdghÿsstÿsstÿstvÿsstÿsstÿstvÿstvÿsstÿstvÿstvÿstvÿstvÿrrrÿstvÿstvÿstvÿstvÿstvÿstvÿstvÿstvÿrrsÿnopÿstvÿvvwÿvvvÿvvwÿvvwÿvvwÿvvwÿwwwÿwwwÿwwwÿvvvÿrrsÿnnnÿ\\\ÿijkÿPOQÿBBBÿJJKÿXXXÿRRRÿsssÿTSTÿedfÿutvÿPPPÿVVVÿZZ[ÿZZZÿLKLÿLKLÿKKKÿJJJÿIHJÿIHHÿ`_`ÿSSSÿcccÿ[[[ÿcccÿbbbÿGGGÿGGGÿEDDÿ@@@ÿEDDÿNNOÿZZZÿXXXÿZZZÿjjjÿrrrÿnopÿijkÿRRRÿhklÿ`jsÿPu ÿFy±ÿT€®ÿBQaÿ]]_ÿsssÿccfÿqppÿstvÿqppÿwwwÿXWYÿ@O\ÿ7y°ÿ8Öÿ¡Ìíÿ÷úÿÿÌÞÿÿÄþÿ–Àÿÿ¾ÿÿŠºÿÿ…¹ÿÿ€µþÿz´þÿu²þÿq´þÿm²þÿi²þÿe´þÿa²þÿ]´þÿY´þÿT´ÿÿ Òøÿ.ŒÈÿ3Êÿ±ÔëÿÛéñÿXÇÿ&ƒ¸ÿy¯ÿv¬ÿ'…»ÿ™Ñÿ•Èÿm’ÿKKLÿBBBÿDCDÿpopÿtstÿtstÿihjÿVVYÿHGHÿIHJÿBBCÿFFGÿFEIÿedfÿKKKÿFFFÿKKKÿGGGÿgggÿTTTÿutvÿdcdÿihhÿihjÿYXZÿ\[^ÿOOOÿihhÿNNNÿIHHÿedfÿZZZÿEDFÿJJJÿhghÿfffÿVVVÿnnnÿRRRÿijkÿIHHÿihhÿMLNÿRRRÿtttÿXXXÿIHHÿyxzÿzzzÿgggÿNNOÿsssÿ^\^ÿgggÿfffÿZZZÿ`_`ÿXXXÿ`_`ÿcccÿ^\^ÿXXXÿ^\^ÿYXZÿWWWÿRRSÿXWYÿVVVÿZZ[ÿYXZÿffgÿpopÿkjkÿ\[\ÿ\[\ÿoooÿ[[[ÿ^\^ÿ^\^ÿ^\^ÿ^\^ÿ^\^ÿ^^_ÿ^\^ÿ[[[ÿ^\^ÿ^\^ÿ[[[ÿ^\^ÿ^\^ÿZZ[ÿNNNÿWWWÿZZ[ÿYXZÿLLLÿTTTÿPPPÿRRSÿKKKÿTTTÿoooÿtttÿxwwÿrrrÿtttÿwvvÿrrrÿg[]ÿ„jpÿà×Ùÿöóôÿñíîÿïêìÿñíîÿñíîÿñíîÿôñòÿôñòÿôñòÿöóôÿöóôÿöóôÿöóôÿöóôÿöóôÿöóôÿöóôÿøööÿñíîÿíèéÿïêìÿïêìÿñíîÿñíîÿñíîÿôñòÿôñòÿôñòÿöóôÿöóôÿöóôÿöóôÿøööÿøööÿøööÿøööÿøööÿøööÿïêìÿ¨—›ÿsgjÿqppÿyxzÿqppÿ^\^ÿlklÿcccÿpopÿA@BÿVVVÿpopÿIHJÿ@@@ÿNNOÿ^^^ÿtttÿstvÿ^^^ÿWWWÿOOOÿVVVÿ^^_ÿtttÿsssÿsssÿxwxÿxxxÿxwxÿxxxÿvvwÿvvvÿrrrÿsssÿstvÿvvvÿsssÿijkÿccfÿdghÿklnÿnopÿZZ\ÿUTWÿsstÿrrrÿstvÿsstÿstvÿfffÿnopÿghjÿsstÿbbbÿdddÿ___ÿdghÿ```ÿdghÿstvÿsssÿvvvÿsstÿstvÿqprÿnnnÿrrsÿstvÿutvÿutvÿvvvÿvvwÿvvwÿwwwÿwwwÿxxxÿvvwÿqprÿnnnÿqppÿTTTÿsstÿrrsÿNNNÿWWWÿSSSÿPOQÿnnnÿLLLÿIHHÿxwxÿFFFÿ\\^ÿgggÿjjjÿ___ÿ[[[ÿ\[\ÿUTVÿFFFÿ\\\ÿRRRÿgggÿedfÿdddÿ```ÿWWWÿLLLÿCCCÿ@@@ÿNNNÿRRRÿXXXÿ\\\ÿ^^^ÿhklÿnopÿsssÿhklÿbbdÿ__bÿrrrÿJJLÿVVYÿ```ÿmmqÿ`_`ÿihjÿghjÿYX[ÿnopÿtttÿsstÿsstÿXWYÿJKLÿSSSÿB[oÿ/|¸ÿH™Øÿ¹Øñÿô÷ÿÿ¼Öÿÿ¾ÿÿŠºÿÿ…¹ÿÿ€µþÿz´þÿu²þÿq´þÿm²þÿi²þÿe´þÿa²þÿ]´þÿY´þÿT´ÿÿãòüÿ{³ÿAhƒÿ!|·ÿRŸÐÿÛìöÿ²Ñâÿ4†·ÿy¯ÿ(„ºÿ$’Èÿ—Îÿq›ÿXXXÿCCCÿCCCÿEDFÿDCDÿCCCÿPOQÿlklÿa`bÿffgÿEDFÿLKLÿMLOÿccfÿXWYÿtttÿ^^^ÿVVVÿvvvÿXXXÿutvÿ`_`ÿdcdÿmlnÿsssÿrrsÿbbdÿHGHÿIHJÿPOQÿnnnÿzxxÿgggÿOOOÿsssÿwwwÿ\\\ÿVVWÿRRRÿsssÿSSSÿfffÿLLLÿ|{|ÿxwwÿbbcÿ^^_ÿ{{{ÿ}||ÿzzzÿzzzÿvvvÿihhÿ[[[ÿcccÿkjkÿ^^_ÿcccÿ^\^ÿdcdÿ`_`ÿYXZÿdcdÿgggÿa`bÿ^\^ÿWWWÿmllÿkjkÿgggÿdddÿihhÿdddÿ```ÿ^\^ÿrrrÿ^^^ÿ^\^ÿ^\^ÿ^\^ÿ^\^ÿ[[[ÿ^\^ÿ^\^ÿ___ÿ^^^ÿ^\^ÿ^^^ÿ^^^ÿ^^^ÿ\[\ÿLKLÿNNNÿSSSÿRRSÿLLLÿZZ[ÿLKLÿVVVÿMLNÿ[[[ÿxwwÿsssÿrrrÿnnnÿtttÿxwwÿoooÿihiÿk`bÿnSYÿæßàÿøööÿøööÿôñòÿôñòÿôñòÿöóôÿöóôÿöóôÿöóôÿöóôÿöóôÿöóôÿöóôÿøööÿøööÿøööÿøööÿôñòÿïêìÿñíîÿñíîÿôñòÿôñòÿôñòÿöóôÿöóôÿöóôÿöóôÿöóôÿøööÿøööÿøööÿøööÿøööÿøööÿûúúÿîéëÿ›…‹ÿh]aÿzxyÿrrrÿa`bÿPOQÿZZZÿNNOÿQPRÿbbbÿFFFÿrrsÿhghÿ@@@ÿRRSÿmllÿsstÿ\[\ÿmllÿqppÿEDDÿsssÿfffÿCCCÿXWYÿZZ[ÿklnÿwwwÿwwwÿxwxÿwwwÿwwwÿvvwÿvvvÿrrsÿnopÿqppÿhklÿghjÿGHJÿ??@ÿOOOÿccfÿbbbÿXXXÿSSVÿhklÿsstÿsstÿrrrÿnopÿlnoÿdghÿqprÿddgÿhklÿ\\^ÿdddÿfffÿdddÿsstÿstvÿstvÿstvÿsssÿlnoÿqprÿqprÿqprÿsstÿutvÿvvvÿvvwÿvvwÿwwwÿwwwÿrrsÿoooÿjjjÿkkkÿVVWÿqprÿwwwÿ^^_ÿQPRÿstvÿ[[[ÿTTTÿnopÿOOOÿRRSÿwwwÿSSVÿ`_`ÿrrrÿoooÿVVVÿOOOÿYXZÿ`_`ÿSSSÿihjÿBBBÿHGHÿkkkÿhghÿ^^^ÿkkkÿSSSÿGGGÿFFFÿJJJÿPPPÿ\\\ÿWWWÿEDDÿOOOÿKKKÿJKLÿhklÿstvÿsstÿghjÿlnoÿqprÿihhÿbbbÿqppÿtttÿqprÿRRSÿhklÿrrsÿqprÿsstÿQPRÿSRTÿEDDÿKKKÿloqÿHk†ÿ+‚ÄÿX¢ÚÿÎäöÿèðÿÿ¦Éÿÿ…¹ÿÿ€µþÿz´þÿu²þÿq´þÿm²þÿi²þÿe´þÿa²þÿ]´þÿY´þÿqÀþÿ®Ôçÿo›ÿeefÿ^cgÿ6kŽÿ‚½ÿ~¹Ûÿæð÷ÿƒµÓÿ(„¹ÿ'‡¾ÿ›Òÿv¦ÿKKLÿBBCÿFFGÿPOQÿDCDÿXWYÿccfÿrrrÿpopÿdcdÿEDFÿFFGÿFFGÿNNNÿmllÿsssÿGGGÿGGGÿXXXÿqprÿihjÿmllÿqppÿrrsÿmlnÿoosÿpopÿtstÿutvÿxwxÿ{z{ÿmllÿRRRÿHGHÿgggÿvvvÿnnnÿVVVÿJJJÿTTTÿRRRÿpopÿgggÿzxxÿzxxÿkjkÿzxxÿ{{{ÿ{{{ÿ|{|ÿxxxÿvvvÿ___ÿkjkÿ^^_ÿZZ[ÿfffÿ^^_ÿZZ[ÿdcdÿcccÿdcdÿgggÿfffÿcccÿa`bÿ^\^ÿgggÿbbcÿgggÿYXZÿ^\^ÿ[[[ÿ^\^ÿ^\^ÿqppÿXXXÿZZZÿ[[[ÿ^^^ÿ^^^ÿ^\^ÿ^^^ÿ^^_ÿ`_`ÿ^^_ÿ`_`ÿ___ÿ`_`ÿ^\^ÿ^\^ÿLLLÿNNOÿJJJÿQPRÿLLLÿTSTÿLLLÿVVWÿQPRÿXXXÿwvvÿtstÿnnnÿrrrÿwvvÿzzzÿrrrÿoooÿwvvÿrlnÿdJPÿ¹§«ÿíèéÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿöóôÿñíîÿôñòÿôñòÿôñòÿöóôÿöóôÿöóôÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿûúúÿøööÿÚÑÓÿ„nsÿlijÿedfÿxwwÿUTVÿhghÿjjjÿoooÿnnoÿ[[[ÿcccÿIHJÿtstÿqppÿNNNÿedfÿBBCÿ\[\ÿvvwÿstvÿRRRÿHGHÿsssÿstvÿHGHÿYXZÿrrsÿdcdÿvvwÿwwwÿwwwÿwwwÿvvvÿvvwÿvvvÿstvÿqppÿhklÿghjÿhklÿLLLÿBBBÿBCDÿRRRÿhklÿhklÿPPPÿPPPÿPPPÿ___ÿsstÿfffÿhklÿ\\^ÿlnoÿbbbÿhklÿnopÿstvÿsstÿsstÿnopÿstvÿnopÿstvÿrrsÿklnÿqprÿklnÿlnoÿnopÿrrsÿutvÿvvwÿutvÿstvÿnopÿlnoÿ```ÿdddÿbbcÿmllÿvvwÿijkÿMLNÿ\[\ÿwwwÿzzzÿzzzÿzzzÿyxzÿyxzÿvvwÿqprÿijkÿlklÿrrsÿgggÿ\\^ÿffgÿqprÿmllÿjjjÿWWWÿdcdÿoooÿtttÿpopÿ\\\ÿFFFÿPOQÿXXXÿKKKÿYXZÿtttÿcccÿJJJÿoooÿqppÿhklÿghjÿWWWÿGHJÿBCDÿUTWÿUTVÿYXZÿklnÿnopÿvvwÿstvÿdcdÿ`_`ÿONQÿNNOÿa`bÿlnoÿqppÿvvvÿihhÿrrsÿ\\\ÿbdgÿ9iÿ%Æÿo°ÞÿäðúÿØèÿÿ“Àÿÿz´þÿu²þÿq´þÿm²þÿi²þÿe´þÿa²þÿ]´þÿY´þÿ¢Öÿÿn²Õÿ%_}ÿ\\`ÿBBBÿYXZÿ:ITÿ+y¥ÿ*ŠÁÿ®ÔèÿÜéòÿZžÈÿ—Ðÿ z®ÿNSVÿBBBÿUTVÿlklÿZZ\ÿqprÿqprÿhghÿtttÿedfÿDFGÿIHHÿMLNÿFFFÿoooÿzzzÿZZZÿLLLÿXWYÿsssÿqprÿffhÿa`bÿffhÿihjÿ\[\ÿXWYÿSRTÿUTVÿSSVÿYX[ÿNNOÿJJJÿLLLÿjjjÿwwwÿ`_`ÿVVVÿNNOÿSSSÿVVVÿwwwÿ{{{ÿzzzÿ{{{ÿ{{{ÿ}||ÿ{{{ÿ{{{ÿsssÿfffÿtstÿZZ[ÿRRRÿa`bÿdcdÿUTVÿUTVÿWWWÿihhÿgggÿ`_`ÿdcdÿcccÿ```ÿcccÿ[[[ÿ^^^ÿcccÿ\[\ÿ^\^ÿ^\^ÿ^\^ÿ[[[ÿ[[[ÿoooÿ[[[ÿ[[[ÿ[[[ÿ^\^ÿ^^^ÿ^\^ÿ^^_ÿ^^_ÿ___ÿ^^_ÿ```ÿ^^^ÿ___ÿ^\^ÿ^^^ÿQPRÿNNNÿQPRÿYX[ÿPOQÿMLNÿRRSÿVVYÿMLNÿ```ÿtttÿwvvÿqppÿxwwÿxwwÿzzzÿxwwÿtstÿxwwÿVVVÿuqrÿlZ^ÿx~ÿÝÓÕÿýüüÿûúúÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿöóôÿöóôÿöóôÿöóôÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿøööÿûúúÿûúúÿìæçÿ¯¡ÿ~nqÿvqrÿ{z{ÿwvvÿoooÿmlnÿrrsÿddgÿtstÿxxxÿxwxÿsssÿxwxÿqppÿqprÿccfÿxwxÿRRRÿmllÿvvvÿrrsÿBCDÿGHJÿxxxÿxwxÿJJJÿ\\^ÿwwwÿ___ÿvvwÿwwwÿwwwÿwwwÿstvÿstvÿwwwÿsssÿhklÿhklÿhklÿnopÿrrsÿhklÿ\\^ÿhklÿJKLÿbbdÿGHJÿDFGÿDFGÿ[[[ÿNNOÿUTWÿhklÿPPPÿVVYÿVVYÿWWWÿOOSÿ^^`ÿJKLÿbbdÿGHJÿghjÿGHJÿqprÿhklÿnopÿtttÿoosÿnopÿnopÿqprÿvvvÿtttÿvvvÿqprÿjklÿXWYÿbbcÿZZ[ÿghjÿrrsÿijkÿKKKÿPOQÿqprÿtttÿyxzÿxxxÿxxxÿyxzÿzzzÿxwxÿpopÿqprÿsssÿqppÿ___ÿVVVÿTTTÿqprÿfffÿihjÿnnnÿqppÿqppÿqprÿZZZÿBBBÿNNNÿTTTÿRRRÿoooÿsssÿtttÿfffÿbbbÿlnoÿnnnÿhklÿBCDÿDFGÿDFGÿDFGÿklnÿZZ[ÿghjÿijkÿSRTÿqprÿrrsÿXWYÿXXXÿUTVÿffhÿJJJÿSSVÿkkkÿsssÿnnnÿnnnÿbbbÿbbcÿMLNÿ@KSÿ.j•ÿ&„Èÿ„¼âÿñøþÿÆÝÿÿ~·þÿq´þÿm²þÿi²þÿe´þÿa²þÿ]´þÿY´þÿÌçÿÿ0Àÿ*ETÿ@?AÿLKNÿihjÿKKKÿjjjÿIl‚ÿ}°ÿKžÉÿÙêôÿ°Ùíÿ†¼ÿF[eÿ==>ÿKKKÿVVYÿhghÿdddÿIHHÿJJKÿvvwÿdddÿFFGÿLLLÿFFGÿHGHÿxxxÿvvwÿxxxÿNNNÿRRRÿghjÿNNOÿIHHÿHGHÿNNOÿHGHÿJJKÿJJLÿJJLÿFEIÿSSVÿSRTÿJJKÿIHHÿLLLÿmllÿzxxÿXXXÿNNNÿRRRÿRRRÿLKLÿvvvÿ{{{ÿxwwÿxwwÿzxxÿyxzÿzzzÿ{{{ÿzzzÿxwxÿxxxÿYXZÿcccÿdcdÿnnnÿmllÿkjkÿihhÿcccÿkjkÿfffÿkjkÿoooÿ`_`ÿ^\^ÿRRRÿOOOÿZZ[ÿ[[[ÿ[[[ÿ[[[ÿ^\^ÿ^\^ÿ^\^ÿkkkÿZZZÿZZZÿ[[[ÿ^^^ÿ^\^ÿ^\^ÿ^^^ÿ^^_ÿ___ÿ^^_ÿ^^^ÿ```ÿ___ÿ^\^ÿ^^^ÿ^\^ÿ^\^ÿ^\^ÿ^\^ÿ^^`ÿ^\^ÿ\[^ÿ\[^ÿ___ÿzxxÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ}||ÿzxxÿYXZÿÿywwÿqfiÿpX]ÿ§”ÿøööÿýüüÿûúúÿûúúÿûúúÿûúúÿûúúÿûúúÿûúúÿûúúÿûúúÿûúúÿûúúÿøööÿøööÿøööÿøööÿøööÿøööÿûúúÿûúúÿûúúÿûúúÿûúúÿûúúÿûúúÿûúúÿûúúÿÐÃÆÿimÿuilÿyvwÿxxxÿsssÿsssÿTSTÿYXZÿmllÿ{z{ÿgggÿyxzÿwvvÿkjkÿihjÿbbcÿffgÿzzzÿmllÿpopÿ{z{ÿzzzÿxxxÿxxxÿstvÿxwxÿdghÿJJJÿstvÿsstÿnopÿwwwÿxwxÿxxxÿwwwÿwwwÿwwwÿsssÿmllÿklnÿhklÿklnÿstvÿbbdÿZZ\ÿhklÿlnoÿSSVÿVVVÿOOSÿGHJÿSRTÿGHJÿZZZÿTTTÿGHJÿ\[^ÿ\\^ÿJJLÿccfÿ\\^ÿ\[^ÿ\[^ÿZZ\ÿXXXÿSRTÿSSSÿ___ÿqprÿrrrÿlnoÿlnoÿnopÿsstÿxwxÿsstÿrrsÿjklÿmllÿgggÿPOQÿklnÿtttÿwwwÿijkÿKKKÿJKLÿijkÿsstÿstvÿxxxÿzzzÿxxxÿyxzÿzzzÿvvvÿpopÿutvÿsstÿsssÿklnÿvvvÿ___ÿmllÿZZZÿffgÿfffÿ^^^ÿqppÿtttÿfffÿihhÿHGHÿJJJÿUTVÿtttÿtttÿtttÿbbbÿghjÿhklÿ^^^ÿcccÿDFGÿUTWÿWWWÿBCDÿ^^`ÿA@BÿbbcÿklnÿEDFÿVVYÿccfÿBBCÿUTVÿXWYÿ^^_ÿJJKÿNNOÿZZ[ÿlklÿtttÿutvÿcccÿ`_`ÿ@@@ÿA@Bÿ??@ÿ9JWÿ*q£ÿ/‹ÌÿÉèÿôøÿÿ¯Óÿÿp³þÿi²þÿe´þÿa²þÿ]´þÿY´þÿÕê÷ÿ{³ÿ47:ÿ??@ÿ>>Aÿ??@ÿKKKÿmlnÿPOQÿlpsÿ)cÿ}³ÿ|º×ÿ7 ÖÿEanÿCBBÿPOQÿihjÿoooÿpopÿmlnÿkjkÿrrsÿLKLÿGGGÿHGHÿEDDÿQPRÿvvvÿvvvÿsssÿ[[[ÿUTVÿRRRÿJKLÿGHJÿEDFÿTSTÿFFGÿIHJÿGGJÿGGJÿFEIÿGGJÿGGJÿGGJÿIHHÿXXXÿtttÿtttÿihjÿLLLÿKKKÿNNNÿnnnÿqprÿOOOÿJJJÿIHJÿVVWÿtttÿtstÿvvwÿmlnÿ\\\ÿvvvÿoooÿmllÿkjkÿfffÿkjkÿmllÿjjjÿihhÿbbbÿmllÿXXXÿTTTÿWWWÿVVWÿGGGÿNNNÿ^\^ÿZZ[ÿZZ[ÿZZ[ÿYXZÿZZZÿ[[[ÿpopÿYXZÿ^\^ÿZZ[ÿ^\^ÿ^^^ÿ___ÿ`_`ÿ```ÿa`bÿ`_`ÿ^^^ÿ```ÿa`bÿ^^_ÿ___ÿ`_`ÿ^\^ÿ^\^ÿ^^`ÿ^\^ÿ^^`ÿ\[\ÿ\[^ÿihjÿ{{{ÿ{{{ÿ|{|ÿ}||ÿ}||ÿ{{{ÿ{{{ÿ|{|ÿ}||ÿzxxÿ^\^ÿÿÿ~~~ÿ{zzÿk]`ÿoU[ÿ°¡ÿßÖØÿôñòÿûúúÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿûúúÿøööÿæßàÿʼ¿ÿƒlqÿl]`ÿzwxÿzzzÿxwxÿsssÿsstÿtstÿVVVÿhghÿpopÿ{{{ÿa`bÿtttÿoooÿhghÿijkÿjjjÿfffÿrrrÿrrrÿqprÿyxzÿzzzÿstvÿklnÿccfÿJJJÿGHJÿlnoÿwwwÿvvvÿnopÿwwwÿvvvÿxxxÿxxxÿstvÿstvÿhklÿhklÿhklÿnopÿsstÿsstÿbbdÿvvvÿstvÿ``dÿhklÿWWWÿdghÿZZ\ÿddgÿBCDÿbbdÿZZ\ÿUTWÿUTWÿXXXÿJKLÿXXXÿjjlÿMLOÿlnoÿXWYÿlnoÿOOOÿffhÿ^^`ÿqqvÿqprÿnopÿqqvÿtttÿsstÿwwwÿtttÿMLNÿ`_`ÿPOQÿJKLÿoooÿtttÿwwwÿlnoÿNNNÿPOQÿffgÿrrsÿvvvÿxxxÿyxzÿzzzÿyxzÿzzzÿzzzÿstvÿoooÿtstÿcccÿOOOÿRRSÿvvvÿvvvÿxxxÿsssÿqprÿtstÿrrsÿrrrÿutvÿrrsÿMLNÿJJJÿIHJÿ__bÿtstÿsssÿsstÿnnnÿijkÿijkÿffgÿjjlÿJKLÿDFGÿDFGÿBCDÿ\\^ÿ>=>ÿ^^_ÿklnÿFFFÿJKLÿZZ\ÿEDDÿgggÿRRRÿZZZÿXXXÿTTTÿEDDÿihhÿgggÿnnnÿXWYÿ`_`ÿIHJÿBBCÿEDDÿHGHÿBBCÿJdwÿ.~¶ÿ?–Îÿ¶×íÿîöÿÿ›Ëþÿe´þÿa²þÿ]´þÿ}Âþÿ Êãÿ!o™ÿFEGÿffgÿA@BÿPOQÿbbcÿcccÿJJLÿZZ\ÿGGGÿHZdÿ+zŸÿ!z¤ÿ_joÿCCCÿ>=>ÿkjkÿnnoÿoooÿsssÿjjjÿtstÿJJJÿIHHÿGGGÿJJJÿnnnÿ{{{ÿxxxÿ___ÿjjjÿLLLÿOOOÿKKKÿJKLÿGHJÿRRSÿGHJÿIHJÿGGJÿIHHÿIHJÿJJLÿHGHÿFEIÿPOQÿIHJÿONQÿlklÿqprÿxwwÿIHHÿNNOÿxxxÿvvvÿihhÿNNNÿOOOÿTTTÿjjjÿnnoÿtttÿtstÿ^^^ÿWWWÿ[[[ÿZZZÿ^\^ÿWWWÿWWWÿRRSÿTTTÿUTVÿUTVÿTTTÿTSTÿTTTÿTTTÿTSTÿLKLÿLKLÿYXZÿZZ[ÿ\[\ÿ[[[ÿ^\^ÿ^\^ÿYXZÿ^^^ÿ^\^ÿ[[[ÿ^\^ÿ\[\ÿ^\^ÿ^^^ÿ^^^ÿ^^_ÿ^^_ÿ___ÿ^^_ÿ^^^ÿdddÿ`_`ÿ^\^ÿ^^^ÿ`_`ÿ^\^ÿ^^`ÿ^\^ÿZZ\ÿ\[^ÿ__bÿÿ}||ÿ}||ÿ}||ÿ{{{ÿ|{|ÿ{{{ÿ{{{ÿ{{{ÿzzzÿ{{{ÿ~~~ÿÿÿÿÿÿyvwÿeZ]ÿoX]ÿš„‰ÿº§«ÿÚÏÑÿôñòÿøööÿûúúÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿýüüÿûúúÿøööÿöóôÿåÞßÿǸ»ÿ¬šžÿzejÿeX\ÿsqqÿ~~~ÿ{{{ÿxwxÿtstÿrrsÿrrsÿstvÿyxzÿ}||ÿ{{{ÿ{{{ÿ{z{ÿxxxÿyxzÿzzzÿ{{{ÿzxxÿzzzÿ```ÿNNOÿEDFÿDFGÿDFGÿDFGÿDFGÿMLNÿhklÿvvwÿwwwÿxxxÿdghÿRRSÿffhÿVVVÿ[[[ÿhklÿJKLÿNNOÿWWWÿXXXÿNNNÿLLLÿOOOÿRRRÿnopÿstvÿstvÿsstÿsstÿstvÿstvÿstvÿqqvÿNNOÿ^^`ÿnopÿlnoÿklnÿlnoÿghjÿnopÿklnÿklnÿoosÿsstÿnopÿlnoÿnopÿlnoÿnopÿlnoÿnopÿlnoÿxwxÿtttÿffgÿjjjÿPOQÿdddÿkkkÿrrsÿsstÿxxxÿhklÿLLLÿJKLÿdghÿrrrÿsstÿxwxÿxxxÿyxzÿxxxÿzzzÿyxzÿzzzÿsssÿqprÿsssÿghjÿKKKÿjjjÿvvvÿsssÿqppÿoooÿwwwÿxxxÿxxxÿzzzÿyxzÿrrsÿoooÿrrsÿvvvÿtttÿqppÿrrsÿsstÿihjÿONQÿIHHÿONQÿddgÿ\\^ÿ``dÿ\\^ÿ??@ÿBCDÿ>=>ÿ`_`ÿhklÿA@BÿUTVÿUTWÿYX[ÿbbbÿWWWÿjjjÿqppÿEDDÿIHJÿSSVÿMLNÿYXZÿFFGÿ^^_ÿMLNÿEDFÿYXZÿIHJÿBBCÿWWWÿ`bdÿ9_wÿ"ºÿP ÒÿÌäóÿÛìÿÿÁþÿ]´þÿ²Úÿÿh®Ôÿ2e€ÿCCCÿTSTÿFFGÿdcdÿkkkÿNNOÿIHJÿA@BÿmmqÿfffÿnnnÿbbbÿcccÿEDDÿYX[ÿ^^`ÿUTVÿmlnÿddgÿUTVÿgggÿJJJÿFFFÿJJJÿTTTÿvvvÿzzzÿzzzÿxxxÿrrrÿIHHÿIHHÿGGGÿDFGÿGGGÿIHHÿIHHÿHGHÿIHJÿGGJÿFEIÿEDFÿEDFÿHGHÿFFGÿEDFÿHGHÿHGHÿZZ[ÿmlnÿHGHÿdddÿsssÿsssÿrrrÿTSTÿmllÿUTVÿIHHÿ```ÿwvvÿXXXÿJJJÿNNNÿRRSÿRRSÿSSSÿRRSÿTTTÿTTTÿRRSÿSSSÿRRSÿRRSÿTSTÿTSTÿTSTÿUTVÿOOOÿLKLÿYXZÿZZ[ÿYXZÿZZ[ÿZZ[ÿZZ[ÿZZ[ÿ[[[ÿZZ[ÿZZZÿZZ[ÿ[[[ÿ\[\ÿ^^^ÿ^^_ÿ```ÿbbbÿ^^_ÿ___ÿ^\^ÿ^\^ÿ^^^ÿ\[\ÿ\[\ÿ\[\ÿ^\^ÿ^\^ÿ^\^ÿ\[\ÿ\[\ÿ^^`ÿÿ{{{ÿ{{{ÿ{{{ÿ}||ÿ|{|ÿ{{{ÿ{{{ÿ{{{ÿ}||ÿ|{|ÿ~~~ÿÿÿÿÿÿÿÿ{xyÿldfÿq`dÿ|glÿ…kpÿž…‹ÿ¹¦ªÿ×ËÎÿìæçÿïêìÿïêìÿïêìÿïêìÿïêìÿïêìÿìæçÿåÞßÿ±µÿ«”™ÿŽu{ÿmqÿwgjÿkceÿupqÿ{{{ÿ}||ÿ|{|ÿxwwÿtstÿutvÿtttÿvvwÿ{{{ÿ{{{ÿ|{|ÿ|{|ÿ{{{ÿ{{{ÿ}||ÿzxxÿ{{{ÿ{{{ÿyxzÿzxxÿ{{{ÿxxxÿbbdÿnopÿsstÿvvwÿxwxÿxwxÿxwxÿxxxÿlnoÿXXXÿstvÿxxxÿwwwÿstvÿvvvÿhklÿlnoÿdghÿghjÿhklÿnopÿnopÿdddÿsstÿstvÿsstÿqqvÿsstÿstvÿqprÿstvÿqprÿhklÿNNOÿhklÿnopÿlnoÿlnoÿsstÿstvÿstvÿqqvÿrrsÿnopÿklnÿnopÿsstÿqprÿlnoÿnopÿjjlÿdghÿUTVÿZZ[ÿZZ\ÿ^^`ÿOOOÿGHJÿijkÿnopÿsstÿvvvÿhklÿKKKÿJKLÿa`bÿrrrÿvvwÿxwxÿxwxÿxxxÿxwxÿyxzÿxxxÿxxxÿyxzÿrrrÿqprÿqppÿnnnÿa`bÿVVVÿRRRÿkkkÿmllÿsssÿxxxÿxxxÿzzzÿzzzÿzzzÿzzzÿxxxÿvvvÿsssÿoooÿtttÿsssÿnopÿedfÿhklÿnopÿdghÿqprÿdddÿNNOÿOOOÿBCDÿdcdÿBCDÿdghÿnopÿEDFÿXWYÿZZ[ÿmllÿ```ÿihhÿoooÿtttÿCCCÿEDDÿoooÿihjÿkkkÿIHHÿNNOÿlklÿBBCÿdcdÿFFGÿBBCÿHGHÿJJKÿMLNÿbdhÿ/b‚ÿ½ÿl®Øÿãðøÿîöÿÿÿÿÿÿ+ŠÁÿH_mÿCBCÿ^\^ÿYXZÿZZ[ÿVVYÿA@BÿHGHÿlklÿqppÿnnnÿqppÿ```ÿZZZÿNNOÿa`bÿVVWÿEDDÿrrrÿrrsÿZZ[ÿtttÿWWWÿRRRÿa`bÿ[[[ÿtttÿzzzÿzzzÿzzzÿ{{{ÿLLLÿLLLÿDFGÿBCDÿBCDÿFFFÿDFGÿJJKÿHGHÿIHJÿIHHÿJJLÿIHJÿHGHÿIHJÿHGHÿHGHÿMLNÿJJJÿffgÿrrrÿkkkÿwvvÿxxxÿzzzÿzxxÿrrsÿOOOÿNNNÿbbcÿZZZÿKKKÿOOOÿJJJÿTTTÿTSTÿTTTÿRRSÿUTVÿTTTÿTSTÿTSTÿUTVÿRRSÿRRSÿTSTÿTSTÿTSTÿUTVÿRRSÿRRSÿXWYÿYXZÿZZ[ÿZZ[ÿ^\^ÿ\[\ÿ\[\ÿ\[\ÿ[[[ÿZZ[ÿ\[\ÿ\\\ÿ^\^ÿ`_`ÿa`bÿ___ÿ^^^ÿ^^_ÿ^^^ÿa`bÿ^\^ÿ^^_ÿ^\^ÿ^\^ÿ^\^ÿ^\^ÿ^\^ÿ^^`ÿ\[\ÿa`bÿ~~~ÿ{{{ÿ{{{ÿ{{{ÿ|{|ÿ{{{ÿ|{|ÿzzzÿ{{{ÿ}||ÿRRRÿÿÿÿÿÿÿÿÿÿÿ}||ÿxuvÿtopÿvlnÿq`dÿmV[ÿ\AGÿnQXÿtU\ÿpPWÿoOVÿsT[ÿy\bÿiNTÿkTZÿn]aÿvknÿunoÿroqÿvtuÿzzzÿ{{{ÿ{{{ÿ{{{ÿxwwÿsssÿtttÿsssÿxwxÿzzzÿ}||ÿ}||ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿzzzÿzxxÿyxzÿzzzÿdddÿdghÿzzzÿxxxÿwwwÿvvwÿyxzÿwwwÿklnÿdghÿxxxÿxwxÿwwwÿvvvÿvvvÿnopÿhklÿhklÿhklÿhklÿsstÿ___ÿDFGÿ``dÿYX[ÿhklÿsstÿnopÿTTTÿVVVÿdghÿstvÿqqvÿWWWÿSSVÿnopÿqprÿsstÿsstÿsstÿsstÿsstÿstvÿsstÿstvÿsstÿstvÿsstÿstvÿqprÿklnÿlnoÿSSVÿnopÿhklÿbbcÿjjlÿjjjÿihhÿqppÿsstÿsssÿdddÿLLLÿJJJÿ___ÿrrsÿstvÿxwxÿxwxÿxwxÿxwxÿxwxÿxxxÿzzzÿzzzÿxxxÿnopÿihhÿlnoÿYXZÿSSSÿ```ÿoooÿsssÿvvvÿxxxÿxxxÿ{{{ÿzzzÿzzzÿ{{{ÿzzzÿ{{{ÿzzzÿmllÿ^^^ÿhklÿihhÿedfÿ\[\ÿklnÿqprÿklnÿnopÿ\\^ÿDFGÿBBBÿBBBÿ[[[ÿA@BÿVVWÿijkÿGGJÿa`bÿ\[\ÿihhÿZZZÿfffÿmllÿtttÿNNNÿRRRÿlklÿPOQÿklnÿDCDÿRRSÿmlnÿQPRÿ^^`ÿUTVÿPOQÿbbdÿHGHÿFFGÿKKKÿ??@ÿ?HQÿ2r›ÿ ‚¿ÿ†¾Þÿ°Ôêÿz³ÿ]]_ÿFEIÿ^\^ÿihjÿffgÿffgÿggjÿJJJÿqprÿklnÿkkkÿOOOÿihhÿmllÿEDDÿ__bÿ^\^ÿIHHÿihjÿnnnÿmllÿxwxÿXXXÿZZZÿ[[[ÿihhÿvvvÿwwwÿxxxÿzzzÿxxxÿRRRÿLLLÿGHJÿGGGÿGGGÿJJKÿGHJÿGGGÿIHHÿFFGÿHGHÿIHHÿIHHÿFEIÿJJKÿIHHÿQPRÿZZ[ÿ^^_ÿIHHÿIHHÿOOOÿmlnÿqppÿtstÿwvvÿnnoÿwvvÿJJJÿdcdÿffgÿXXXÿYXZÿGGGÿTSTÿTSTÿUTVÿTSTÿUTVÿUTVÿVVWÿTSTÿUTVÿTSTÿTSTÿTSTÿTSTÿUTVÿUTWÿQPRÿMLOÿYXZÿYX[ÿZZ[ÿZZ[ÿZZ[ÿ^\^ÿZZ[ÿ\[\ÿ[[[ÿ[[[ÿ[[[ÿ\\\ÿ^^^ÿ^^^ÿ```ÿ`_`ÿ```ÿ`_`ÿ^^_ÿ^\^ÿ^\^ÿ^\^ÿ\[\ÿ^\^ÿ^\^ÿa`bÿ^^_ÿ`_`ÿ\[\ÿa`bÿ~~~ÿ{{{ÿ|{|ÿ{{{ÿ{{{ÿzzzÿ{{{ÿ{{{ÿ{{{ÿ}||ÿMLNÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~~~ÿ~~~ÿgggÿRRRÿzxxÿwvvÿutvÿzxxÿ}||ÿ|{|ÿxwwÿ{{{ÿ{{{ÿ}||ÿzxxÿzzzÿ{{{ÿ}||ÿ}||ÿxwwÿtttÿsssÿtstÿvvwÿ{{{ÿ{{{ÿ{{{ÿ|{|ÿ}||ÿ{z{ÿ{{{ÿ{{{ÿ{{{ÿzzzÿzzzÿzzzÿzzzÿjjjÿVVWÿvvvÿnopÿzzzÿxxxÿxwxÿzzzÿxxxÿbbcÿdghÿwwwÿwwwÿvvvÿwwwÿTTTÿKKKÿRRRÿOOOÿOOSÿSRTÿ\\^ÿrrsÿlnoÿPPPÿlnoÿrrsÿnopÿWWWÿRRRÿlnoÿqprÿ__bÿ```ÿdghÿNNNÿdghÿsstÿsstÿsstÿsstÿsstÿsstÿsstÿstvÿsstÿsstÿsstÿsstÿsstÿsstÿrrsÿsstÿlnoÿ\\^ÿlnoÿdghÿggjÿggjÿghjÿqprÿsstÿstvÿdcdÿGHJÿJKLÿdghÿrrrÿsstÿwwwÿxwxÿwwwÿxxxÿxwxÿxwxÿxxxÿxxxÿxxxÿxxxÿstvÿddgÿccfÿmlnÿsssÿsssÿnopÿstvÿvvvÿstvÿ{{{ÿ}||ÿ{{{ÿ{{~ÿ}||ÿxxxÿzzzÿwwwÿTTTÿJJJÿgggÿ```ÿa`bÿMLOÿDFGÿGHJÿMLNÿNNNÿRRRÿ`_`ÿhklÿhklÿGHJÿBCDÿBCDÿhklÿijkÿghjÿedfÿbbcÿVVVÿRRRÿqppÿvvvÿqppÿmllÿijkÿNNNÿPOQÿEDFÿPOQÿlklÿffgÿdcdÿpopÿkjkÿNNOÿ@@@ÿkjkÿXWYÿFFGÿHGHÿPPPÿ@T`ÿ.w¢ÿ)x¦ÿHp‡ÿsrtÿIHJÿihjÿdcdÿoosÿtstÿqprÿddgÿpopÿrrrÿsssÿmllÿoooÿsssÿ___ÿtttÿVVWÿGGGÿBBCÿIHHÿedfÿpopÿ[[[ÿ___ÿjjjÿwwwÿyxzÿxxxÿyxzÿxxxÿzzzÿVVVÿhklÿUTVÿRRSÿJKLÿIHJÿJKLÿIHJÿGGGÿIHHÿFFGÿIHHÿGGGÿIHHÿIHJÿHGHÿJJLÿONQÿmlnÿpopÿRRRÿbbbÿihhÿ\[\ÿbbbÿmllÿsssÿgggÿRRRÿnnnÿgggÿihhÿ[[[ÿihhÿTSTÿSSSÿUTVÿVVVÿVVWÿVVWÿVVYÿUTWÿUTVÿUTWÿUTWÿUTWÿUTWÿUTWÿUTVÿUTVÿQPRÿMLNÿXWYÿYX[ÿZZ\ÿ\[^ÿa`bÿ^^_ÿ[[[ÿ[[[ÿ^\^ÿ^^^ÿ^\^ÿ^^_ÿ^^^ÿ`_`ÿ^^^ÿ^^_ÿ^^_ÿ^^_ÿ^\^ÿ^\^ÿ^^^ÿ^^_ÿ^^_ÿ^^_ÿ^^_ÿ`_`ÿ^\^ÿ^\^ÿbbcÿ}||ÿ{{{ÿ{{{ÿ{{{ÿzzzÿ|{|ÿ{{{ÿzzzÿ{z{ÿzzzÿXXXÿÿÿÿÿÿÿÿÿÿ~~~ÿÿÿÿ~~~ÿ~~~ÿÿ}||ÿqppÿvvwÿzxxÿfffÿrrrÿyxzÿlklÿihhÿmllÿtstÿsssÿqprÿzxxÿwvvÿqppÿ^^^ÿoooÿsssÿrrsÿtttÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿzzzÿyxzÿzzzÿvvwÿgggÿXXXÿUTVÿsssÿvvwÿqppÿxwxÿ{{{ÿwwwÿnopÿTTTÿhklÿvvwÿqprÿdcdÿSSSÿRRRÿDFGÿDFGÿGHJÿCCFÿdghÿccfÿ___ÿhklÿhklÿstvÿdghÿhklÿhklÿlnoÿhklÿ``dÿrrsÿstvÿhklÿJKLÿTTTÿnopÿqqvÿsstÿsstÿsstÿrrrÿrrsÿsstÿstvÿstvÿsstÿstvÿsstÿsstÿsstÿrrsÿstvÿdghÿYX[ÿghjÿffgÿdghÿjjlÿqprÿsstÿtttÿ__bÿRRRÿGHJÿdghÿstvÿsstÿwwwÿxwxÿxwxÿxwxÿxxxÿxxxÿxwxÿxxxÿzzzÿxxxÿyxzÿvvwÿmllÿUTVÿ^^_ÿwwwÿklnÿjjjÿsssÿstvÿxxxÿ{{~ÿ{{{ÿzzzÿ{{{ÿ}||ÿjjjÿtttÿtttÿKKKÿIHHÿsssÿRRSÿ`_`ÿYXZÿHGHÿGGJÿNNOÿPPPÿMLNÿSSVÿ^^_ÿrrsÿffhÿdddÿdcdÿnopÿsssÿvvvÿvvwÿutvÿrrsÿ`_`ÿdddÿutvÿvvvÿtttÿmlnÿYX[ÿmllÿbbbÿlklÿkjkÿihhÿhghÿlklÿqppÿPOQÿXWYÿpopÿ^\^ÿEDFÿEDFÿffgÿJJKÿVVYÿccfÿutvÿxwwÿRRSÿqprÿffgÿnnoÿutvÿwwwÿijkÿbbcÿxxxÿzzzÿzzzÿoooÿtttÿsssÿvvvÿDFGÿGHJÿMLNÿHGHÿYXZÿqprÿgggÿWWWÿoooÿvvwÿxxxÿsssÿmllÿihhÿihhÿjjjÿwwwÿVVWÿOOOÿLLLÿJJKÿLLLÿLKLÿRRRÿPPPÿgggÿrrrÿYXZÿJJKÿHGHÿJJJÿLLLÿUTVÿtstÿtttÿwvvÿLLLÿHGHÿIHHÿgggÿwvvÿtttÿtttÿoooÿ\[\ÿTTTÿVVVÿPPPÿ___ÿTSTÿTSTÿUTVÿVVVÿUTVÿVVWÿUTWÿVVYÿVVWÿXWYÿXWYÿVVWÿVVYÿVVWÿUTWÿUTWÿRRSÿIHJÿQPRÿZZ\ÿ^\^ÿZZ[ÿ__bÿ^\^ÿ^\^ÿ[[[ÿZZ[ÿ^\^ÿ^^^ÿ^^^ÿ\[\ÿ^\^ÿ^\^ÿ^^_ÿ^\^ÿ^\^ÿ^^_ÿ^\^ÿ^^_ÿ^^_ÿ^^^ÿ\[\ÿ^^_ÿ^^_ÿhghÿ^^_ÿa`bÿtttÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿzzzÿzzzÿ{{{ÿ{{{ÿ{{{ÿzzzÿ~~~ÿÿÿÿÿÿÿÿÿÿÿÿ~~~ÿ~~~ÿ~~~ÿ|{|ÿxwwÿIHJÿ```ÿmllÿa`bÿZZZÿwvvÿOOOÿxwxÿNNNÿJJKÿkkkÿGGGÿJJJÿyxzÿVVVÿFFFÿihhÿsstÿtttÿ{z{ÿ{{{ÿ}||ÿ{{{ÿ|{|ÿ}||ÿ|{|ÿ{{{ÿ{{{ÿ{z{ÿzzzÿ{z{ÿnnoÿVVWÿUTVÿoooÿxxxÿxxxÿdghÿTTTÿRRRÿdddÿnopÿzzzÿsstÿVVVÿNNNÿJKLÿOOOÿWWWÿ\\^ÿJKLÿYX[ÿlnoÿbbdÿdddÿrrsÿ\\^ÿdghÿbbdÿbbbÿstvÿrrsÿnopÿnopÿnopÿ\\^ÿdghÿVVYÿOOSÿccfÿstvÿsstÿsstÿsstÿstvÿsstÿsstÿsstÿsstÿsstÿsstÿsstÿstvÿstvÿsstÿstvÿdghÿUTWÿZZZÿbbbÿdghÿklnÿqprÿstvÿrrsÿRRSÿJJKÿMLNÿlnoÿlnoÿklnÿsstÿvvvÿvvwÿxwxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿzzzÿxxxÿnnnÿ__bÿNNOÿfffÿvvwÿvvvÿstvÿzzzÿxxxÿxxxÿ{{~ÿ{{{ÿstvÿghjÿ[[[ÿvvvÿtttÿRRRÿsssÿXWYÿ[[[ÿcccÿEDDÿ@@@ÿBBBÿkkkÿnnnÿdcdÿ\[^ÿ\\^ÿYX[ÿTTTÿijkÿ\[^ÿhklÿnopÿqqvÿsstÿsssÿutvÿsstÿoosÿa`bÿJJJÿRRSÿdddÿGGGÿrrrÿutvÿxwxÿnnnÿihhÿrrrÿtttÿqppÿRRSÿcccÿpopÿbbcÿBBCÿIHJÿYXZÿQPRÿIHHÿmlnÿqprÿqprÿDCDÿPPPÿHGHÿJJKÿ\[^ÿxwxÿcccÿSRTÿijkÿxwxÿutvÿNNOÿedfÿedfÿa`bÿBBBÿEDDÿEDFÿIHHÿZZZÿ``dÿqprÿghjÿYX[ÿ\\^ÿGHJÿTTTÿPPPÿhghÿ```ÿsstÿrrrÿOOOÿVVVÿTTTÿXWYÿ\[\ÿrrrÿqprÿzxxÿvvwÿrrsÿutvÿutvÿWWWÿIHHÿKKKÿtttÿrrsÿoooÿsssÿTTTÿNNNÿUTVÿFFFÿFFFÿIHHÿKKKÿNNNÿLLLÿ```ÿihhÿkkkÿmlnÿVVVÿTSTÿTTTÿTTTÿVVWÿXWYÿUTWÿVVWÿXWYÿXWYÿVVWÿVVYÿVVYÿVVWÿVVWÿVVWÿUTVÿONQÿMLNÿ\[^ÿZZ[ÿ\[^ÿ\[^ÿ^\^ÿ[[[ÿ^\^ÿ[[[ÿ\\\ÿ^\^ÿ^^^ÿ\[\ÿ[[[ÿ\[\ÿ^^^ÿ^\^ÿ^\^ÿ^\^ÿ[[[ÿ^\^ÿZZ[ÿ\[\ÿ^\^ÿ^\^ÿ`_`ÿedfÿ`_`ÿ`_`ÿgggÿzxxÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ|{|ÿ{{{ÿ}||ÿxwwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~~~ÿzzzÿxwwÿGGGÿNNNÿmllÿVVVÿRRSÿtstÿSSSÿ\\\ÿGGGÿ^\^ÿihhÿlklÿNNOÿzxxÿCCCÿ\[^ÿffgÿsstÿyxzÿ{{{ÿ{{{ÿ}||ÿ}||ÿ|{|ÿ}||ÿ|{|ÿ{{{ÿ{{{ÿ{z{ÿxxxÿtttÿVVWÿUTVÿdcdÿdghÿXXXÿVVWÿghjÿzzzÿxxxÿxxxÿwwwÿbbcÿTTTÿPPPÿJKLÿhklÿNNNÿdddÿXXXÿTTTÿ\\^ÿdghÿghjÿddgÿnopÿ\[^ÿ\\^ÿZZ\ÿdghÿsstÿrrsÿsstÿnopÿqprÿhklÿPPPÿSSSÿ__bÿ``dÿSSSÿYX[ÿVVYÿghjÿstvÿsstÿsssÿsssÿsstÿsstÿvvwÿstvÿsstÿsstÿqqvÿklnÿZZZÿVVYÿOOOÿVVYÿYX[ÿsstÿstvÿqppÿRRRÿJJKÿGHJÿghjÿvvvÿffgÿWWWÿstvÿwwwÿxwxÿxxxÿxwxÿxwxÿxxxÿxxxÿxxxÿxxxÿzzzÿxxxÿzzzÿsstÿghjÿONQÿYX[ÿnnnÿstvÿvvwÿqqvÿstvÿstvÿdghÿhklÿUTWÿGHJÿXXXÿzzzÿqppÿ[[[ÿnnnÿGGGÿnnoÿtttÿjjjÿPPPÿTTTÿkkkÿmllÿnnnÿghjÿYX[ÿQPRÿ\\^ÿdcdÿNNOÿNNOÿ[[[ÿnopÿrrrÿsstÿsssÿsstÿutvÿQPRÿAAEÿEDDÿNNNÿ```ÿsssÿvvvÿxwwÿrrrÿcccÿqppÿzxxÿTTTÿNNNÿihhÿrrrÿXWYÿIHJÿPOQÿLLLÿYX[ÿLKLÿkjkÿpopÿmllÿPOQÿOOOÿKKKÿLKLÿIHJÿQPRÿ``dÿVVWÿmlnÿrrsÿutvÿ\\^ÿccfÿXXXÿYXZÿJJJÿOOOÿGGGÿSSSÿRRRÿvvwÿoosÿYX[ÿLKNÿMLNÿRRSÿPPPÿXXXÿ```ÿgggÿkkkÿrrrÿijkÿfffÿXXXÿbbbÿoooÿ^^^ÿdcdÿbbdÿ^^`ÿ``dÿbbdÿffgÿqppÿjjjÿKKKÿbbbÿcccÿ```ÿRRRÿRRRÿ```ÿtttÿdddÿIHHÿNNNÿPPPÿMLNÿLKLÿLLLÿRRRÿOOOÿNNNÿTTTÿTTTÿTTTÿTTTÿVVVÿVVWÿVVWÿXWYÿVVWÿVVYÿUTWÿUTWÿVVWÿVVWÿUTWÿUTVÿUTVÿNNOÿLKLÿYX[ÿZZ[ÿZZ\ÿ\[\ÿ^\^ÿ\[\ÿ[[[ÿZZ[ÿZZ[ÿ^\^ÿ^^^ÿ^\^ÿ^\^ÿ\[\ÿ^\^ÿ^\^ÿ^\^ÿ^\^ÿ^\^ÿ[[[ÿZZ[ÿZZ[ÿ\[\ÿ\[\ÿ^\^ÿ^\^ÿa`bÿ`_`ÿ`_`ÿjjjÿyxzÿ{{{ÿ|{|ÿ{{{ÿ{{{ÿ{{{ÿ}||ÿzxxÿzxxÿcccÿÿÿÿÿÿÿÿÿÿÿÿÿ~~~ÿ{{{ÿxwwÿwvvÿqppÿxwwÿ~~~ÿ}||ÿ}||ÿxxxÿ{z{ÿzzzÿ{{{ÿyxzÿxxxÿ}||ÿzzzÿrrsÿwvvÿZZZÿrrsÿxxxÿ|{|ÿ}||ÿ{{{ÿ}||ÿ|{|ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿzzzÿstvÿVVWÿ\\^ÿvvvÿ\\^ÿklnÿxxxÿstvÿsstÿzzzÿwwwÿqqvÿVVVÿSSSÿSSSÿhklÿtttÿqppÿhklÿnnnÿdghÿlnoÿnopÿstvÿwwwÿsstÿrrsÿsstÿnopÿqprÿnopÿsstÿsstÿlnoÿsstÿlnoÿOOSÿOOSÿZZ\ÿstvÿnopÿstvÿsstÿsstÿ__bÿlnoÿstvÿrrsÿsssÿrrsÿstvÿsstÿsstÿrrsÿrrsÿlnoÿJKLÿVVYÿRRRÿYX[ÿ[[[ÿnopÿstvÿklnÿMLNÿNNOÿPOQÿhklÿddgÿXWYÿ\[^ÿWWWÿdghÿstvÿstvÿnopÿsssÿwwwÿxxxÿxxxÿwwwÿvvvÿxwxÿxxxÿxxxÿxxxÿijkÿ[[[ÿCCFÿUTVÿvvvÿccfÿqprÿxxxÿhklÿdghÿdghÿ\\^ÿ\[^ÿ```ÿ{{{ÿmllÿxxxÿdcdÿQPRÿZZ[ÿ\[\ÿXXXÿGGGÿedfÿvvvÿoooÿqprÿhklÿZZ[ÿONQÿ??@ÿJKLÿPPPÿdcdÿBCDÿnopÿrrsÿmmqÿqprÿsstÿbbcÿEDFÿA@BÿBBCÿ^^^ÿqppÿrrsÿsssÿtttÿsssÿwvvÿXXXÿdddÿIHHÿ```ÿkkkÿbbcÿTSTÿHGHÿffhÿQPRÿONQÿBBBÿBBBÿHGHÿnnoÿVVYÿEDFÿA@BÿA@BÿFFGÿA@BÿgggÿPOQÿXWYÿYX[ÿnnoÿXWYÿXWYÿIHHÿTTTÿoooÿ{{{ÿZZZÿXXXÿkkkÿsstÿghjÿVVWÿHGHÿOOOÿDFGÿtttÿsssÿoooÿ^^^ÿfffÿkkkÿqppÿnnnÿihhÿjjjÿihhÿbbbÿihjÿVVVÿJJJÿtstÿrrsÿnnoÿIHHÿEDDÿHGHÿXXXÿ^\^ÿIHHÿ`_`ÿJJKÿkjkÿbbcÿOOOÿKKKÿOOOÿFFFÿIHHÿKKKÿbbbÿkkkÿGGGÿIHHÿUTVÿUTVÿUTVÿVVWÿWWWÿVVWÿYXZÿXWYÿVVWÿYXZÿYXZÿVVWÿXWYÿXWYÿVVWÿUTWÿUTVÿSRTÿUTWÿYXZÿZZ[ÿZZ[ÿZZ[ÿZZ[ÿZZ[ÿZZ[ÿZZ[ÿZZ[ÿ\[\ÿ\[\ÿ^\^ÿ\[\ÿ^\^ÿ^\^ÿ^\^ÿ^\^ÿ^\^ÿ\[\ÿ[[[ÿ[[[ÿZZ[ÿZZ[ÿ\[^ÿ^\^ÿ^\^ÿ^^_ÿ^^_ÿ^^_ÿ\[\ÿkkkÿ{{{ÿ}||ÿ|{|ÿ{{{ÿ{{{ÿzzzÿ}||ÿtstÿbbcÿÿÿÿÿÿÿÿÿÿÿÿÿ{{{ÿxwwÿwvvÿxwwÿzxxÿ}||ÿ~~~ÿzxxÿxwwÿ|{|ÿ~~~ÿ{{{ÿzxxÿ{{{ÿ}||ÿ|{|ÿwwwÿtttÿrrsÿpopÿstvÿ{{{ÿ{{{ÿ}||ÿ|{|ÿ{{{ÿ{{{ÿ|{|ÿ|{|ÿ{{{ÿ{z{ÿ|{|ÿxwxÿRRSÿXWYÿ{{{ÿdghÿtttÿ}||ÿa`bÿ^^_ÿlnoÿxxxÿlnoÿRRRÿVVVÿZZZÿstvÿtttÿqppÿoooÿnnnÿlnoÿhklÿvvwÿstvÿwwwÿxxxÿstvÿstvÿsstÿrrsÿqprÿlnoÿqprÿqqvÿrrsÿhklÿSSSÿJKLÿZZZÿrrrÿqprÿrrsÿsstÿstvÿsstÿstvÿ^^`ÿddgÿstvÿqprÿdghÿ^^`ÿa`bÿnopÿqprÿklnÿZZZÿXWYÿ\[^ÿPPPÿdghÿrrsÿrrsÿdghÿNNOÿJKLÿNNOÿijkÿqprÿffgÿhklÿZZ[ÿnopÿstvÿrrsÿsstÿstvÿstvÿsstÿvvvÿstvÿsstÿstvÿstvÿvvvÿxwxÿxxxÿrrrÿdghÿUTVÿDFGÿbbcÿlnoÿ`_`ÿnopÿZZ\ÿZZ\ÿVVYÿOOOÿYX[ÿJKLÿRRRÿSSSÿ^^^ÿ^^^ÿPPPÿKKKÿcccÿLLLÿdghÿxxxÿxxxÿwwwÿxwxÿlnoÿVVYÿ^^`ÿJKLÿXXXÿXWYÿBCDÿBCDÿhklÿedfÿPOQÿ`_`ÿmlnÿa`bÿbbdÿUTVÿDCDÿqppÿtttÿtttÿvvwÿzzzÿzxxÿ{{{ÿwvvÿ\\\ÿdddÿqppÿlklÿbbdÿnnoÿtttÿvvwÿdcdÿMLNÿFFGÿnnoÿZZ[ÿYX[ÿ^\^ÿGGJÿbbcÿNNOÿPOQÿSRTÿFFGÿUTWÿUTWÿ^^_ÿbbcÿUTWÿ__bÿGGGÿ\\\ÿvvvÿxxxÿPPPÿXXXÿzzzÿnopÿdghÿ\\^ÿGGGÿJKLÿGHJÿdghÿtttÿqppÿ```ÿoooÿnnnÿgggÿmllÿtttÿrrrÿtttÿtttÿtstÿxwxÿsstÿmlnÿhghÿHGHÿGGGÿ^^^ÿ___ÿnnnÿbbcÿTTTÿLLLÿihjÿVVVÿpopÿZZZÿZZZÿdddÿihhÿIHHÿKKKÿpopÿ[[[ÿgggÿ```ÿUTWÿVVVÿYXZÿVVWÿVVWÿXWYÿXWYÿVVVÿXWYÿXWYÿXWYÿXWYÿYXZÿXWYÿVVWÿVVWÿUTVÿQPRÿUTVÿTSTÿLKLÿLKLÿMLNÿVVVÿYXZÿXWYÿ^\^ÿZZ[ÿ^\^ÿ\[\ÿZZ[ÿZZ\ÿ\[\ÿZZ\ÿZZ[ÿ^\^ÿ[[[ÿZZ[ÿZZ[ÿZZ[ÿZZ[ÿ\[^ÿ\[^ÿ^\^ÿ^\^ÿ^\^ÿZZ\ÿ^^_ÿ\[\ÿ^^_ÿrrsÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿzzzÿ{z{ÿNNNÿÿÿÿÿÿÿ~~~ÿ~~~ÿÿ~~~ÿÿ}||ÿxwwÿwvvÿxwwÿwvvÿ}||ÿÿ|{|ÿwvvÿ|{|ÿyxzÿ{z{ÿyxzÿzzzÿ}||ÿ{z{ÿvvwÿtstÿqprÿtttÿsstÿyxzÿ|{|ÿ}||ÿ}||ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{z{ÿ{z{ÿ{z{ÿtttÿTTTÿUTVÿstvÿyxzÿXWYÿxxxÿlnoÿbbcÿnopÿsssÿdghÿTTTÿSSSÿ\\\ÿwwwÿvvvÿqppÿhklÿnnnÿhklÿlnoÿsstÿvvvÿwwwÿwwwÿstvÿtttÿstvÿstvÿstvÿqprÿhklÿlnoÿqprÿbbdÿJKLÿNNNÿVVYÿdghÿstvÿrrsÿsstÿsstÿsstÿsstÿqprÿstvÿklnÿZZZÿZZ\ÿklnÿrrsÿqprÿ^^`ÿOOOÿJKLÿ\[^ÿOOSÿZZ\ÿUTWÿqprÿrrsÿa`bÿJKLÿOOOÿVVYÿlnoÿghjÿRRSÿedfÿVVYÿnopÿsstÿwwwÿvvvÿxwxÿxxxÿxwxÿsstÿrrrÿstvÿwwwÿxxxÿvvvÿsssÿqppÿqprÿ[[[ÿXXXÿdddÿONQÿPOQÿihjÿ``dÿQPRÿDFGÿSRTÿLLLÿOOOÿXXXÿPOQÿmllÿkkkÿgggÿtttÿWWWÿPPPÿwwwÿzzzÿzzzÿwwwÿwwwÿsstÿstvÿhklÿJKLÿRRRÿWWWÿJKLÿMLOÿBCDÿA@BÿAAEÿ>>AÿA@BÿUTVÿhghÿNNNÿ^^`ÿffgÿJJKÿxwwÿrrrÿzxxÿzxxÿ{{{ÿwvvÿzzzÿPPPÿfffÿtstÿcccÿWWWÿYXZÿccfÿutvÿqprÿLKLÿSRTÿBBCÿYXZÿ^^^ÿPOQÿlklÿa`bÿFFGÿIHJÿJJKÿmlnÿJKLÿGGJÿJJKÿRRSÿRRSÿVVWÿ`_`ÿDFGÿtttÿlnoÿgggÿnopÿtttÿxxxÿKKKÿddgÿGHJÿ^^`ÿJJKÿNNOÿ\\\ÿSSSÿbbbÿVVVÿTTTÿ[[[ÿbbbÿXXXÿcccÿVVVÿTTTÿXWYÿXWYÿYX[ÿSSVÿSRTÿTSTÿIHHÿJJJÿrrrÿrrrÿoooÿbbbÿXXXÿMLNÿTTTÿPPPÿ___ÿ[[[ÿOOOÿXXXÿcccÿbbbÿnnnÿqprÿbbcÿihhÿ```ÿUTVÿTSTÿUTWÿUTWÿVVWÿUTVÿVVVÿTSTÿVVWÿVVWÿVVVÿWWWÿVVVÿWWWÿVVVÿVVWÿWWWÿPOQÿRRRÿRRRÿLLLÿMLNÿNNNÿSRTÿPOQÿONQÿVVWÿMLNÿPOQÿXWYÿYX[ÿZZ[ÿYX[ÿYXZÿZZ\ÿZZ[ÿYXZÿYXZÿZZ[ÿXWYÿZZ[ÿ^\^ÿ^^`ÿ^^`ÿ\[^ÿ^\^ÿ\[^ÿ^^_ÿ\[\ÿYXZÿbbbÿ{{{ÿzzzÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿzxxÿzzzÿ{z{ÿ~~~ÿÿÿÿÿÿÿ~~~ÿÿ~~~ÿzxxÿtttÿwvvÿwvvÿzzzÿ}||ÿ}||ÿ{z{ÿyxzÿ}||ÿzz}ÿxwxÿzzzÿ{z{ÿ{{{ÿ{{{ÿtttÿsssÿtstÿsssÿwwwÿ{{{ÿ|{|ÿ|{|ÿ|{|ÿ|{|ÿ{{{ÿ{z{ÿ{z{ÿ{z{ÿzxxÿwvvÿUTVÿRRSÿrrrÿxwxÿZZ[ÿ{z{ÿdddÿcccÿsssÿlnoÿffgÿRRSÿSSSÿ```ÿstvÿwwwÿsssÿnnnÿmllÿmllÿlnoÿrrsÿvvwÿvvwÿstvÿvvwÿvvvÿstvÿvvvÿstvÿstvÿrrrÿrrrÿlnoÿ``dÿOOSÿNNNÿVVYÿhklÿdghÿstvÿqprÿqprÿqprÿsstÿsstÿrrsÿrrsÿsstÿqprÿsstÿsstÿqqvÿqprÿklnÿddgÿghjÿffhÿ^^`ÿSRTÿbbbÿklnÿVVWÿJKLÿHGHÿZZ\ÿrrsÿdghÿ\[^ÿ\[\ÿ\\^ÿqprÿqppÿsstÿvvvÿvvwÿvvwÿvvwÿwwwÿwwwÿvvvÿwwwÿxxxÿxxxÿxxxÿwwwÿxxxÿfffÿxxxÿtttÿijkÿ```ÿGHJÿKKKÿVVWÿGHJÿNNOÿVVYÿPPPÿQPRÿccfÿXXXÿzzzÿ{{{ÿzxxÿvvvÿijkÿcccÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿxxxÿsssÿstvÿwwwÿxxxÿrrsÿwwwÿzzzÿvvwÿ^^`ÿPOQÿQPRÿ\\^ÿFEIÿGGGÿSRTÿSSVÿ^^`ÿrrsÿdddÿnnnÿcccÿrrrÿwvvÿkkkÿkkkÿrrrÿkkkÿoooÿpopÿOOOÿIHJÿmlnÿihjÿVVYÿXWYÿVVWÿhghÿHGHÿLLLÿihjÿVVWÿrrsÿUTVÿbbcÿJJKÿa`bÿvvwÿXWYÿBCDÿDFGÿDFGÿJKLÿNNOÿ\[\ÿBCDÿ\\^ÿ[[[ÿkkkÿvvwÿijkÿQPRÿQPRÿrrsÿTSTÿsstÿ\[\ÿnopÿTTTÿLLLÿfffÿSSSÿOOOÿ^^^ÿWWWÿcccÿbbbÿjjjÿfffÿmllÿpopÿ\\^ÿRRSÿcccÿ``dÿ`_`ÿ\[\ÿZZZÿJJJÿCCCÿHGHÿIHHÿGGGÿRRRÿmllÿZZZÿVVVÿWWWÿcccÿnnnÿihhÿqppÿihhÿa`bÿdddÿ___ÿTSTÿTSTÿTSTÿVVWÿVVWÿWWWÿVVWÿVVVÿVVVÿYXZÿWWWÿWWWÿXWYÿWWWÿVVWÿVVWÿVVWÿVVVÿVVVÿVVVÿVVWÿYXZÿXWYÿVVWÿUTWÿUTWÿUTVÿPOQÿLKLÿJJKÿONQÿYXZÿ\[\ÿ\[\ÿZZ[ÿYXZÿ\[\ÿ\[\ÿYXZÿZZ[ÿZZ[ÿZZ[ÿZZ\ÿYX[ÿ\[^ÿ\[^ÿ\[^ÿ^\^ÿ\\\ÿZZ[ÿYX[ÿ{{{ÿ{{{ÿzzzÿzzzÿ{{{ÿ{z{ÿ{z{ÿyxzÿtstÿÿ~~~ÿ~~~ÿÿÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿzzzÿwvvÿxwwÿvvwÿxwwÿ}||ÿ~~~ÿ}||ÿyxzÿzxxÿ}||ÿ}||ÿ{z{ÿ{z{ÿ}||ÿ}||ÿ}||ÿzzzÿvvwÿtstÿsssÿzzzÿ{{{ÿ}||ÿ|{|ÿ|{|ÿ{{{ÿ{z{ÿ{{{ÿzzzÿyxzÿxwwÿUTVÿUTVÿhklÿxxxÿXWYÿ{{{ÿqprÿqppÿklnÿzzzÿhklÿRRSÿTTTÿYXZÿstvÿwwwÿwwwÿvvvÿrrrÿnnnÿklnÿrrsÿvvvÿvvvÿvvvÿvvwÿvvvÿvvvÿvvvÿvvvÿvvvÿtttÿrrrÿsstÿ\\^ÿOOOÿJKLÿVVYÿnopÿklnÿdghÿ``dÿddgÿklnÿsstÿrrsÿsstÿrrsÿsstÿrrsÿrrsÿrrsÿrrsÿqprÿjjlÿffhÿghjÿffhÿghjÿqprÿqprÿlnoÿPOQÿJJKÿJJKÿVVYÿjjlÿqprÿ`_`ÿqprÿhklÿlnoÿsstÿsstÿstvÿstvÿstvÿvvwÿwwwÿwwwÿvvwÿwwwÿwwwÿxxxÿwwwÿxxxÿ{{{ÿqprÿvvvÿxxxÿxxxÿtttÿ\\\ÿLLLÿBBBÿCCCÿGGGÿZZZÿVVVÿSSSÿ^^^ÿTTTÿUTVÿzzzÿ|{|ÿwwwÿsssÿrrsÿ{{{ÿ{{~ÿ{{{ÿ}||ÿyxzÿedfÿ``dÿnopÿrrsÿrrsÿqprÿstvÿrrsÿccfÿLKNÿMLOÿGGJÿJJLÿVVYÿnnnÿnnnÿoooÿhghÿcccÿihjÿccfÿVVWÿVVWÿXWYÿYXZÿYX[ÿKKKÿutvÿMLNÿrrsÿutvÿ^\^ÿxwxÿvvwÿtstÿ`_`ÿmlnÿYX[ÿPOQÿlklÿMLNÿSRTÿqppÿutvÿ^^`ÿ^\^ÿ^^`ÿ{z{ÿghjÿGHJÿMLNÿBCDÿJKLÿ___ÿRRSÿJKLÿPOQÿ\[^ÿvvwÿqprÿOOSÿGHJÿVVYÿqprÿijkÿnopÿhklÿqppÿrrrÿPPPÿOOOÿ\\\ÿmllÿdghÿdddÿhklÿihhÿrrrÿnopÿoooÿtttÿRRRÿQPRÿ^^^ÿZZ[ÿTSTÿTTTÿqppÿOOOÿLLLÿJJJÿIHHÿKKKÿsssÿoooÿnnoÿVVVÿnnnÿsssÿqppÿpopÿvvvÿrrrÿdddÿcccÿcccÿUTWÿUTWÿVVWÿTSTÿUTVÿVVWÿVVVÿVVVÿXXXÿXWYÿWWWÿXWYÿWWWÿXWYÿWWWÿXWYÿVVWÿVVVÿXXXÿXXXÿXWYÿVVWÿVVWÿVVWÿYXZÿYX[ÿXWYÿXWYÿVVWÿRRSÿQPRÿQPRÿUTVÿYXZÿYX[ÿYXZÿYXZÿZZ[ÿ[[[ÿZZ[ÿXWYÿZZ[ÿZZ\ÿYX[ÿ^^`ÿZZ\ÿ\[^ÿ^^`ÿ^^^ÿYXZÿYXZÿzzzÿ{z{ÿ{z{ÿ{{{ÿ{z{ÿzzzÿ{{{ÿ{{{ÿpopÿfffÿÿÿÿÿÿ~~~ÿ~~~ÿ~~~ÿ{z{ÿzzzÿzzzÿ{z{ÿzzzÿ{{{ÿ}||ÿ{{{ÿxwxÿ{{~ÿ~~~ÿ}||ÿ}||ÿ{{{ÿ{{~ÿ}||ÿ}||ÿ}||ÿ{{{ÿxxxÿxxxÿ{{{ÿ}||ÿ|{|ÿ{{{ÿ{{{ÿ{{{ÿ{z{ÿzzzÿ{z{ÿxwxÿUTVÿXXXÿ`_`ÿxxxÿxxxÿZZ[ÿwwwÿnnnÿXXXÿvvvÿlnoÿWWWÿVVWÿVVVÿvvvÿxxxÿxxxÿwwwÿxxxÿstvÿsstÿqprÿvvwÿwwwÿvvwÿvvwÿwwwÿvvwÿvvwÿvvvÿvvvÿvvvÿstvÿstvÿbbbÿJKLÿGHJÿUTVÿlnoÿnopÿ\\^ÿsstÿsstÿqprÿdghÿhklÿstvÿrrsÿrrsÿrrsÿsstÿsstÿsssÿoosÿhklÿghjÿghjÿddgÿghjÿlnoÿqprÿghjÿOOOÿJJKÿGHJÿddgÿqprÿ\[^ÿijkÿrrsÿ^^`ÿYXZÿnopÿstvÿstvÿvvwÿvvwÿstvÿvvwÿvvwÿvvwÿwwwÿwwwÿwwwÿwwwÿwwwÿsstÿdghÿklnÿzzzÿxxxÿxxxÿ{{{ÿ\\\ÿOOOÿPOQÿ@@@ÿGHJÿSSSÿWWWÿRRRÿWWWÿNNNÿKKKÿ{z{ÿ{{{ÿ}||ÿ}||ÿstvÿ}||ÿ{{~ÿ}||ÿ{{{ÿyxzÿQPRÿOOOÿijkÿsstÿhklÿqprÿxxxÿffhÿBBBÿDFGÿGGJÿAAEÿGGJÿGHJÿXWYÿMLNÿ___ÿ[[[ÿ```ÿVVVÿVVYÿUTWÿQPRÿihjÿ^\^ÿSRTÿCCCÿNNOÿHGHÿutvÿZZ[ÿ^\^ÿrrsÿZZ[ÿHGHÿLLLÿggjÿFFGÿMLNÿnnoÿIHJÿLLLÿ^\^ÿpopÿ``dÿUTWÿJJKÿdghÿWWWÿQPRÿGHJÿBBBÿBBBÿJKLÿGHJÿDFGÿFFFÿZZ[ÿ```ÿOOOÿ\\^ÿXWYÿXXXÿstvÿddgÿbbbÿnopÿbbbÿhklÿ^^^ÿNNNÿfffÿ[[[ÿLLLÿIHHÿRRRÿnnnÿtttÿxxxÿxxxÿvvvÿOOOÿRRRÿgggÿUTVÿTTTÿTTTÿnnnÿLLLÿLLLÿVVWÿVVVÿNNNÿ[[[ÿVVVÿdddÿgggÿrrrÿZZZÿcccÿmllÿmllÿsssÿrrrÿoooÿrrrÿUTWÿUTVÿUTWÿUTWÿVVWÿVVVÿVVVÿVVVÿWWWÿVVWÿXXXÿXXXÿVVVÿXWYÿVVVÿVVWÿWWWÿ^\^ÿ[[[ÿWWWÿXWYÿXXXÿYXZÿXWYÿVVYÿYX[ÿUTWÿVVYÿYXZÿVVYÿUTWÿRRSÿUTWÿZZ[ÿZZ\ÿZZ[ÿYXZÿYXZÿZZZÿ[[[ÿYXZÿZZ[ÿYXZÿYXZÿ\[\ÿZZ[ÿ\[^ÿ^^_ÿZZ[ÿYXZÿYX[ÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzxxÿzzzÿzzzÿLLLÿÿÿÿÿ~~~ÿ~~~ÿÿ~~~ÿ~~~ÿ~~~ÿ|{|ÿxwxÿyxzÿzxxÿxwxÿxwwÿzxxÿ}||ÿ~~~ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ|{|ÿ{{{ÿ{{{ÿ}||ÿ}||ÿ{{{ÿ{{{ÿ|{|ÿ{{{ÿ{{{ÿ{z{ÿxxxÿVVYÿUTWÿYXZÿyxzÿzzzÿbbcÿoooÿ```ÿffgÿvvvÿrrsÿSSSÿTTTÿRRRÿnopÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿwwwÿwwwÿwwwÿxwxÿwwwÿxwxÿvvwÿvvwÿvvwÿvvvÿvvvÿstvÿstvÿdddÿPPPÿOOOÿOOSÿhklÿsstÿVVYÿVVYÿOOSÿnopÿqqvÿdghÿklnÿstvÿsstÿstvÿsstÿsstÿsstÿrrsÿhklÿghjÿghjÿffhÿghjÿlnoÿrrsÿ```ÿNNOÿJJKÿONQÿddgÿklnÿlnoÿlnoÿ^^_ÿmmqÿrrsÿqprÿqprÿrrsÿvvvÿxwxÿutvÿstvÿvvwÿvvvÿvvwÿwwwÿwwwÿwwwÿxxxÿnnnÿlnoÿxxxÿxxxÿzzzÿxxxÿxxxÿzzzÿfffÿihhÿcccÿfffÿOOOÿPPPÿGHJÿ^^^ÿdddÿedfÿsssÿ{z{ÿ}||ÿ{{{ÿ|{|ÿvvwÿ{{{ÿ}||ÿ{{~ÿ{{~ÿvvwÿSSVÿTSTÿhklÿxwxÿsstÿlnoÿwwwÿhklÿGHJÿDFGÿGHJÿGHJÿJJKÿVVWÿTTTÿVVWÿklnÿoooÿ```ÿtttÿfffÿmlnÿjjlÿjjlÿmllÿxwxÿvvwÿUTVÿUTVÿvvwÿPOQÿZZ\ÿrrsÿ__bÿIHHÿ^\^ÿtstÿrrsÿqprÿyxzÿutvÿutvÿutvÿihjÿPOQÿQPRÿNNOÿNNOÿTTTÿQPRÿGGGÿBCDÿBCDÿPPPÿHGHÿNNOÿbbcÿnopÿNNNÿJKLÿTTTÿ\\^ÿ___ÿsstÿDFGÿghjÿNNNÿ[[[ÿTTTÿihhÿKKKÿcccÿgggÿPPPÿRRRÿjjjÿxxxÿvvvÿfffÿtttÿwwwÿTTTÿJJJÿjjjÿ```ÿTTTÿVVVÿqppÿKKKÿNNNÿedfÿSSSÿRRSÿTTTÿkkkÿnnnÿtttÿsssÿihhÿtstÿqprÿjjjÿvvwÿtttÿvvvÿvvvÿTSTÿTSTÿUTWÿUTVÿVVWÿVVWÿVVWÿVVWÿXWYÿXWYÿVVWÿXWYÿVVWÿXWYÿVVVÿXWYÿVVVÿVVVÿXWYÿXXXÿZZZÿYXZÿYXZÿYXZÿVVYÿXWYÿVVWÿVVYÿYXZÿUTWÿVVWÿUTVÿLKLÿRRSÿYX[ÿ\[\ÿXXXÿZZZÿYXZÿYXZÿYXZÿ\[\ÿ^\^ÿYX[ÿZZ[ÿYX[ÿYX[ÿ\[\ÿZZ[ÿYXZÿYX[ÿ{{{ÿ{z{ÿzzzÿ{{{ÿzzzÿzzzÿ{z{ÿzzzÿ{{{ÿcccÿÿ~~~ÿ~~~ÿ~~~ÿÿ~~~ÿÿ~~~ÿ}||ÿxwwÿzzzÿ}||ÿ~~~ÿ~~~ÿ}||ÿtttÿrrrÿzzzÿ}||ÿ}||ÿ}||ÿ~~~ÿ|{|ÿ}||ÿ}||ÿ}||ÿ}||ÿ|{|ÿ|{|ÿ{{{ÿ}||ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ___ÿVVVÿSSSÿstvÿxxxÿZZ[ÿvvvÿrrrÿihhÿtttÿxxxÿVVWÿTTTÿQPRÿdddÿwwwÿxxxÿxxxÿxwxÿwwwÿwwwÿxxxÿxxxÿwwwÿvvzÿvvwÿwwwÿvvwÿvvvÿstvÿwwwÿvvwÿvvvÿstvÿ```ÿPPPÿOOSÿVVVÿnopÿnopÿlnoÿhklÿdghÿdghÿVVYÿdghÿ```ÿstvÿsstÿsstÿrrsÿsstÿsstÿqqvÿklnÿihhÿdghÿffhÿghjÿlnoÿqprÿ``dÿJKLÿGHJÿJJKÿhklÿnopÿlnoÿ\[^ÿVVYÿghjÿvvwÿghjÿghjÿ\\^ÿZZ[ÿ``dÿhklÿsstÿbbcÿ^^_ÿstvÿstvÿvvwÿwwwÿstvÿnopÿbbbÿxxxÿxxxÿxxxÿxxxÿxxxÿ{z{ÿxxxÿgggÿfffÿdghÿ^^^ÿ\\^ÿPPPÿXXXÿrrrÿklnÿwwwÿ{{{ÿ}||ÿ{z{ÿ}||ÿ}||ÿsstÿzzzÿzzzÿdghÿXWYÿstvÿRRSÿJKLÿklnÿstvÿwwwÿrrsÿstvÿdddÿGHJÿBCDÿBBBÿBCDÿGHJÿLLLÿRRRÿRRRÿNNNÿcccÿGHJÿrrrÿMLNÿQPRÿDFGÿPOQÿijkÿnnoÿyxzÿrrsÿhghÿxwxÿ[[[ÿjjjÿrrsÿsssÿa`bÿUTVÿqprÿONQÿa`bÿIHJÿihjÿnnnÿpopÿjjjÿRRSÿMLOÿQPRÿJJLÿVVWÿQPRÿEDFÿBCDÿGHJÿQPRÿGGGÿGHJÿlnoÿ\\^ÿJKLÿZZ\ÿJKLÿbbdÿhklÿNNNÿGHJÿGHJÿSSSÿdddÿsssÿvvvÿNNNÿihhÿ```ÿnopÿ^^^ÿdghÿvvvÿvvvÿfffÿvvvÿ^^^ÿLLLÿGGGÿrrrÿcccÿVVVÿUTVÿnnnÿRRRÿNNNÿ^^^ÿZZZÿ___ÿ\\\ÿ[[[ÿkkkÿqprÿcccÿoooÿqppÿwwwÿwwwÿxwxÿqppÿqppÿihjÿSRTÿSRTÿUTWÿUTWÿXWYÿXWYÿVVWÿVVWÿVVVÿVVWÿVVVÿVVWÿYXZÿXXXÿVVWÿXWYÿXXXÿYXZÿVVWÿWWWÿZZZÿZZ[ÿ\[\ÿZZ[ÿVVYÿXWYÿVVWÿVVWÿYXZÿUTVÿVVWÿXWYÿONQÿKKKÿNNNÿRRSÿYXZÿYXZÿXWYÿYXZÿYXZÿYXZÿYX[ÿYXZÿXWYÿYX[ÿYX[ÿZZ[ÿYXZÿVVYÿYX[ÿzxxÿ{z{ÿ{z{ÿzzzÿzzzÿ{{{ÿ{z{ÿzzzÿzxxÿoooÿsssÿ^\^ÿ___ÿ}||ÿzxxÿ}||ÿzzzÿzxxÿ|{|ÿ{z{ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ|{|ÿutvÿrrsÿzzzÿ}||ÿ{{{ÿ}||ÿ}||ÿzzzÿzxxÿ{{{ÿ{z{ÿzzzÿ{{{ÿ{z{ÿzzzÿxwxÿyxzÿ{{{ÿzzzÿzzzÿxxxÿffhÿUTVÿUTVÿdddÿzzzÿ^^^ÿvvvÿgggÿdghÿlnoÿnopÿ___ÿTSTÿRRRÿZZ[ÿqprÿxxxÿxwxÿwwwÿxxxÿxxxÿwwwÿxxxÿwwwÿwwwÿwwwÿwwwÿwwwÿvvwÿvvvÿvvvÿvvvÿvvvÿvvwÿccfÿPOQÿSSSÿVVVÿrrrÿsstÿsstÿnopÿhklÿghjÿccfÿ\[^ÿdghÿZZ\ÿbbdÿlnoÿsstÿsstÿsstÿsstÿlnoÿdghÿffgÿdghÿghjÿklnÿnopÿYX[ÿJKLÿJKLÿUTWÿijkÿhklÿ^^`ÿqqvÿnopÿ\[^ÿffhÿqprÿ__bÿqprÿqprÿrrrÿvvwÿdghÿbbcÿtttÿtttÿccfÿ\\^ÿedfÿjjjÿcccÿstvÿxxxÿwwwÿwwwÿxwxÿxxxÿxxxÿzzzÿxxxÿjjjÿnnnÿcccÿ^^^ÿbbcÿ^^^ÿ___ÿvvvÿLLLÿwwwÿ{{{ÿ}||ÿ}||ÿ{{{ÿ{{~ÿzzzÿ{{{ÿxwxÿSSVÿijkÿxxxÿMLOÿGHJÿbbbÿlnoÿwwwÿstvÿxxxÿ\\^ÿJKLÿ[[[ÿNNNÿdddÿBCDÿVVVÿJJJÿcccÿdddÿzzzÿNNNÿsssÿDFGÿ^^`ÿJJLÿNNOÿFFGÿLKLÿutvÿ{{{ÿzzzÿtttÿRRSÿMLOÿrrsÿffgÿLKLÿSSVÿtttÿRRSÿffgÿGGJÿEDFÿHGHÿVVWÿLKLÿPOQÿLLLÿDCDÿBCDÿQPRÿEDFÿ@@@ÿBBBÿA@BÿBCDÿHGHÿGHJÿqprÿMLOÿXXXÿnopÿJKLÿJKLÿOOOÿOOOÿJJJÿJKLÿPPPÿ```ÿsssÿvvvÿcccÿoooÿdghÿvvvÿdddÿcccÿlnoÿrrrÿ^^^ÿrrrÿTTTÿVVVÿRRRÿsssÿfffÿVVVÿWWWÿsssÿfffÿJJKÿ[[[ÿ^^^ÿ\\\ÿgggÿ___ÿdddÿmllÿjjjÿihjÿgggÿvvvÿqppÿrrrÿoooÿihjÿihhÿSRTÿTSTÿUTVÿUTWÿVVWÿVVWÿWWWÿXXXÿXXXÿXXXÿWWWÿYXZÿVVWÿXWYÿZZZÿXXXÿXWYÿVVWÿXWYÿZZZÿ[[[ÿ[[[ÿZZ[ÿZZ[ÿYXZÿVVWÿVVWÿVVWÿXWYÿVVVÿVVVÿVVVÿVVVÿRRRÿLLLÿMLNÿQPRÿRRSÿXWYÿYXZÿYXZÿXWYÿYXZÿXWYÿXWYÿYX[ÿZZ\ÿYX[ÿVVWÿUTVÿZZ[ÿwvvÿzzzÿzzzÿzzzÿzxxÿzzzÿ{z{ÿzzzÿzzzÿwvvÿwvvÿtttÿqppÿzzzÿ^^^ÿffgÿHGHÿjjjÿ}||ÿ~~~ÿ~~~ÿ~~~ÿ}||ÿ}||ÿ~~~ÿ}||ÿ{{{ÿ}||ÿ}||ÿxwxÿ{{{ÿxxxÿ{z{ÿ{z{ÿxwxÿzzzÿxwwÿvvwÿzzzÿxxxÿyxzÿxxxÿxxxÿxwxÿvvwÿlklÿNNNÿSRTÿVVWÿxxxÿyxzÿ`_`ÿwwwÿvvvÿlnoÿwwwÿxxxÿ```ÿRRRÿTTTÿnopÿrrsÿxxxÿxwxÿvvwÿwwwÿvvwÿvvwÿwwwÿwwwÿwwwÿvvwÿwwwÿwwwÿvvwÿstvÿvvvÿvvvÿvvwÿstvÿZZZÿRRSÿTTTÿlnoÿvvvÿsstÿstvÿrrsÿnopÿlnoÿqprÿhklÿghjÿghjÿnopÿddgÿqqvÿsstÿsstÿlnoÿdghÿdghÿffhÿdghÿjjlÿnopÿYX[ÿGHJÿNNNÿSRTÿjjlÿklnÿ\[\ÿTSTÿlnoÿsstÿnopÿghjÿQPRÿ\[^ÿrrsÿrrsÿsstÿsssÿstvÿsssÿijkÿnnnÿstvÿvvvÿwwwÿstvÿxxxÿwwwÿxxxÿwwwÿvvvÿxxxÿxwxÿxwxÿxxxÿxxxÿfffÿsstÿklnÿedfÿdddÿ___ÿXXXÿEDDÿrrrÿqprÿxxxÿ|{|ÿ}||ÿzzzÿ{{{ÿzzzÿ{{{ÿxxxÿGHJÿ```ÿstvÿOOSÿffgÿghjÿhklÿrrrÿlnoÿOOOÿnopÿRRRÿsstÿVVVÿ{{{ÿGHJÿnopÿrrrÿzzzÿxwxÿvvvÿdddÿvvvÿBBCÿdddÿZZZÿQPRÿJJKÿTSTÿrrrÿsstÿqprÿutvÿUTVÿPOQÿtttÿkjkÿMLNÿtstÿvvwÿxwxÿkjkÿHGHÿIHJÿEDFÿWWWÿUTVÿQPRÿUTWÿNNOÿHGHÿGGJÿJJJÿGHJÿHGHÿEDFÿDFGÿDFGÿdghÿ__bÿNNOÿwwwÿsstÿJKLÿhklÿ```ÿ___ÿZZZÿdddÿRRRÿdddÿqppÿsssÿmllÿihhÿhklÿoooÿihhÿdghÿsssÿqppÿnnnÿsssÿdddÿRRRÿ[[[ÿsssÿdghÿZZZÿ[[[ÿfffÿkkkÿJJKÿYXZÿXXXÿbbbÿnnnÿmllÿrrrÿvvvÿutvÿtttÿutvÿtttÿvvvÿvvvÿsssÿsssÿoooÿSRTÿSRTÿSRTÿUTVÿVVWÿVVWÿXXXÿVVWÿYXZÿXXXÿZZZÿXWYÿXXXÿYXZÿ\[\ÿXWYÿVVWÿXXXÿYXZÿ\[\ÿ^\^ÿ[[[ÿZZ[ÿYXZÿYXZÿXWYÿVVWÿXXXÿZZZÿYXZÿVVWÿUTVÿVVWÿVVWÿVVVÿUTVÿQPRÿPOQÿVVYÿYX[ÿYXZÿYX[ÿVVYÿYXZÿYXZÿXWYÿYX[ÿYX[ÿXWYÿVVVÿZZ[ÿsssÿzzzÿzxxÿzzzÿyxzÿxxxÿxxxÿzzzÿxxxÿxxxÿtttÿffgÿcccÿrrrÿwvvÿrrrÿzxxÿmllÿutvÿwvvÿ~~~ÿ~~~ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿzxxÿ{z{ÿyxzÿzzzÿ{{{ÿxxxÿxxxÿwvvÿutvÿxxxÿxxxÿ{{{ÿxxxÿvvwÿutvÿtttÿ\\\ÿ```ÿjjjÿlnoÿstvÿtttÿXWYÿzzzÿxwxÿrrsÿzzzÿzzzÿxxxÿrrrÿfffÿwwwÿrrrÿwwwÿxxxÿxxxÿwwwÿwwwÿvvwÿwwwÿwwwÿwwwÿwwwÿvvwÿvvwÿvvwÿstvÿvvvÿvvwÿstvÿstvÿstvÿbbdÿjjjÿstvÿstvÿstvÿsstÿsstÿrrsÿnopÿsstÿnopÿ``dÿVVYÿdghÿ\\^ÿnopÿsstÿlnoÿffhÿdghÿffhÿffhÿghjÿhklÿRRRÿGHJÿJKLÿRRRÿqprÿdghÿhklÿa`bÿklnÿbbdÿklnÿrrsÿdghÿrrsÿlnoÿlnoÿmmqÿstvÿsssÿvvwÿmllÿbbcÿdcdÿnopÿsssÿsssÿqppÿtttÿtttÿtttÿtttÿstvÿvvvÿtttÿvvvÿstvÿtttÿOOOÿbbcÿhklÿ__bÿklnÿdddÿ[[[ÿdddÿnopÿzzzÿsstÿxwxÿ}||ÿ{z{ÿ{z{ÿ{z{ÿzzzÿstvÿGHJÿ^^`ÿnopÿVVVÿsstÿhklÿ___ÿOOSÿccfÿDFGÿghjÿdcdÿlnoÿcccÿstvÿbbdÿhklÿlnoÿnopÿghjÿ``dÿbbdÿVVYÿBBBÿGHJÿMLRÿOOOÿJJJÿPPPÿstvÿtttÿtttÿutvÿfffÿggjÿihjÿ__bÿMLOÿEDFÿhghÿLKLÿ^\^ÿFFFÿFFGÿIHJÿ\[^ÿwvvÿMLNÿTSTÿGGGÿJKLÿQPRÿYX[ÿEDFÿBCDÿBBBÿOOOÿBBBÿddgÿZZ\ÿSSSÿstvÿstvÿZZ\ÿ___ÿ^^^ÿ^^^ÿcccÿjjjÿZZZÿOOOÿdghÿhklÿdghÿhklÿ\\\ÿ\\\ÿmllÿmllÿ___ÿfffÿqppÿvvvÿklnÿPPPÿghjÿsssÿlnoÿ```ÿXXXÿVVVÿ^^^ÿ___ÿkkkÿ```ÿ^^^ÿ^^^ÿbbbÿihjÿnnoÿqppÿrrrÿsstÿsssÿsssÿsssÿsssÿtstÿqppÿTSTÿSRTÿSRTÿTSTÿUTVÿVVVÿWWWÿWWWÿZZ[ÿZZ[ÿ\[\ÿYXZÿZZZÿYXZÿ\[\ÿZZ[ÿXXXÿZZZÿ[[[ÿ\[\ÿZZ[ÿ[[[ÿ[[[ÿYXZÿYXZÿVVWÿXWYÿVVWÿXXXÿXWYÿUTVÿVVWÿVVWÿVVWÿUTVÿXWYÿVVYÿPOQÿRRSÿYXZÿYXZÿYX[ÿYXZÿVVYÿUTVÿ\[^ÿbbdÿYXZÿVVYÿUTVÿZZ[ÿoooÿzzzÿzzzÿzzzÿ{z{ÿzzzÿzzzÿxxxÿzxxÿzzzÿtttÿihhÿihhÿsssÿzxxÿrrsÿtstÿzxxÿzxxÿyxzÿ}||ÿ}||ÿ}||ÿ}||ÿ~~~ÿ}||ÿ~~~ÿ}||ÿ{{{ÿzxxÿyxzÿ{z{ÿxxxÿxxxÿzzzÿ{z{ÿwwwÿwwwÿxxxÿxxxÿ{{{ÿ{z{ÿxwxÿvvvÿwwwÿxwwÿsstÿUTVÿghjÿfffÿZZZÿoooÿxwxÿyxzÿwwwÿxxxÿxwxÿwwwÿwwwÿxxxÿxwxÿsssÿwwwÿxwxÿxxxÿwwwÿwwwÿvvwÿwwwÿwwwÿwwwÿvvwÿvvwÿwwwÿvvwÿvvwÿstvÿstvÿstvÿstvÿvvvÿsstÿutvÿvvwÿsstÿsstÿsstÿrrsÿsstÿsstÿsstÿsstÿdghÿ^^`ÿddgÿdghÿYX[ÿbbdÿghjÿdghÿdghÿddgÿffmÿmmqÿYX[ÿMLRÿMLRÿOOSÿoosÿklnÿ```ÿijkÿffhÿ`_`ÿijkÿklnÿnopÿmmqÿdcdÿrrrÿqprÿklnÿqqvÿstvÿsstÿoooÿfffÿfffÿrrsÿsssÿjjjÿhklÿklnÿsssÿklnÿsssÿmllÿnnnÿklnÿrrrÿklnÿnopÿNNOÿSSVÿnopÿa`bÿxxxÿcccÿPPPÿhklÿxxxÿqppÿxxxÿvvwÿsstÿxwxÿxxxÿxwxÿstvÿ\\^ÿJKLÿPPPÿ\[^ÿ\\^ÿbbdÿffhÿdcdÿ\\^ÿqqvÿSRTÿRRRÿSSVÿJKLÿOOSÿDFGÿDFGÿDFGÿDFGÿBCDÿEDFÿGHJÿGHJÿ??@ÿDFGÿDFGÿDFGÿVVYÿJJLÿ`_`ÿsstÿ{z{ÿvvwÿxxxÿVVWÿffhÿzzzÿSSVÿxwxÿPOQÿZZ\ÿJJLÿGGOÿFEIÿFEIÿFEIÿYX[ÿmmqÿONQÿXWYÿMLNÿHGHÿPOQÿMLNÿHGHÿGHJÿNNNÿ\\^ÿJKLÿrrsÿSRTÿnopÿstvÿhklÿ\\^ÿ[[[ÿ\\\ÿZZZÿPPPÿdghÿdghÿbbbÿPPPÿdddÿdddÿdghÿPPPÿZZZÿtttÿjjjÿ```ÿZZZÿcccÿklnÿXXXÿ^^^ÿZZZÿTTTÿbbbÿ\\\ÿ^^^ÿ```ÿcccÿcccÿjjjÿ^^^ÿ___ÿbbcÿfffÿcccÿihjÿmllÿmllÿoooÿqppÿrrrÿnnoÿrrrÿnnoÿmllÿUTVÿUTVÿUTVÿUTVÿVVWÿVVWÿVVWÿXXXÿYXZÿZZ[ÿ\[\ÿ___ÿ^^^ÿZZ[ÿ^\^ÿ[[[ÿ[[[ÿ\\\ÿ\[\ÿ^^^ÿ[[[ÿ\[\ÿYXZÿYXZÿZZZÿWWWÿVVWÿWWWÿ^\^ÿ\\\ÿWWWÿYXZÿWWWÿUTVÿWWWÿYXZÿVVYÿLKNÿQPRÿZZ\ÿYX[ÿYXZÿYX[ÿXWYÿVVYÿZZ\ÿ^^`ÿZZ[ÿVVWÿUTWÿXWYÿihhÿzzzÿ{{{ÿzxxÿzxxÿ{{{ÿzxxÿzzzÿzzzÿzxxÿxxxÿwvvÿutvÿxxxÿzxxÿxwxÿrrrÿwvvÿxwxÿ^^_ÿVVWÿzzzÿ~~~ÿ~~~ÿ~~~ÿ}||ÿ~~~ÿ}||ÿ}||ÿ}||ÿ|{|ÿ|{|ÿ{{{ÿ}||ÿ{{{ÿ{{{ÿ{{{ÿzzzÿ}||ÿ{{{ÿ{{{ÿ{{{ÿyxzÿwvvÿbbbÿRRSÿjjjÿzzzÿxxxÿxxxÿPPPÿLLLÿwwwÿrrrÿzzzÿhklÿklnÿwwwÿwwwÿlnoÿrrrÿdghÿwwwÿtttÿnopÿvvvÿxxxÿvvwÿvvwÿwwwÿvvzÿvvwÿstvÿvvwÿxwxÿvvvÿvvwÿvvwÿvvwÿvvwÿvvwÿstvÿstvÿstvÿstvÿsstÿsstÿsstÿsstÿsstÿsstÿsstÿsstÿhklÿbbbÿ__bÿlnoÿ__bÿ\\^ÿdghÿdghÿdghÿklnÿ^^`ÿJKLÿNNNÿSSVÿnopÿlnoÿhklÿhklÿTTTÿ__bÿjjlÿnopÿqprÿ^^`ÿdcdÿYX[ÿhklÿnnnÿqprÿsstÿsstÿstvÿsstÿqprÿsssÿvvvÿnopÿjjjÿhklÿqppÿstvÿnopÿstvÿrrrÿnopÿnnnÿsssÿnnnÿrrrÿVVYÿklnÿqqvÿnopÿtttÿfffÿGHJÿ\\\ÿxxxÿxxxÿlnoÿzzzÿstvÿklnÿxwxÿstvÿwwwÿ^^`ÿGHJÿVVVÿOOSÿlnoÿdghÿJJKÿGHJÿCCFÿYX[ÿjjlÿRRRÿOOOÿOOSÿNNNÿDFGÿBCDÿBCDÿJKLÿGHJÿGHJÿNNOÿBCDÿ??@ÿDFGÿDFGÿDFGÿMLOÿRRSÿHGHÿUTVÿxwxÿyxzÿijkÿRRSÿcccÿ{z{ÿnnoÿ|{|ÿPOQÿJJKÿHGHÿHGHÿEDFÿEDFÿGGGÿFEIÿ^\^ÿNNOÿPOQÿSSVÿNNOÿMLNÿHGHÿJJKÿDFGÿBCDÿXXXÿ\[^ÿJKLÿNNOÿJKLÿdghÿ\\^ÿZZ\ÿdddÿdghÿ^^^ÿTTTÿTTTÿTTTÿ```ÿ\\\ÿ\\\ÿ^^^ÿdghÿdddÿdddÿcccÿnnnÿhklÿdghÿklnÿdddÿstvÿjjjÿ\\\ÿ[[[ÿbbbÿTTTÿ[[[ÿcccÿrrrÿihhÿlklÿ```ÿ```ÿmllÿnnnÿoooÿnnnÿlklÿpopÿoooÿqprÿkkkÿnnnÿkkkÿnnnÿqppÿUTVÿTSTÿTSTÿTSTÿVVWÿVVWÿVVWÿXXXÿZZZÿZZ[ÿZZ[ÿZZ[ÿ\[\ÿZZZÿZZZÿZZZÿ\[\ÿ\\\ÿ\[\ÿ\[\ÿ[[[ÿZZZÿXXXÿXWYÿWWWÿWWWÿVVWÿYXZÿXWYÿWWWÿVVWÿTSTÿUTVÿVVVÿUTVÿUTVÿUTVÿTSTÿUTVÿVVWÿXWYÿYXZÿUTWÿUTVÿVVWÿYXZÿUTWÿSSVÿSSVÿUTVÿUTWÿ[[[ÿzxxÿzzzÿxwwÿxwwÿzxxÿzxxÿxwxÿxwwÿzxxÿxwwÿwvvÿwvvÿzzzÿzxxÿzxxÿwvvÿqppÿyxzÿxwwÿtstÿ^^^ÿmllÿ|{|ÿÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ{{{ÿ}||ÿ|{|ÿ|{|ÿ|{|ÿ{{{ÿ|{|ÿ{{{ÿihjÿ[[[ÿzzzÿ^\^ÿyxzÿxwwÿzzzÿyxzÿ{z{ÿzzzÿxwxÿxxxÿxxxÿ`_`ÿrrsÿsstÿkkkÿlnoÿdghÿnnnÿfffÿsssÿhklÿdghÿ\\\ÿrrrÿwwwÿvvvÿstvÿwwwÿwwwÿwwwÿwwwÿwwwÿvvwÿvvwÿvvwÿstvÿstvÿstvÿsstÿstvÿtttÿstvÿsstÿstvÿsstÿsstÿstvÿrrsÿsstÿsstÿsstÿstvÿhklÿccfÿghjÿccfÿRRRÿdghÿddgÿhklÿVVYÿJKLÿHHOÿOOSÿffmÿmmqÿbbdÿhklÿdghÿffhÿrrsÿsstÿsstÿnopÿccfÿnopÿqprÿqprÿrrsÿPOQÿYXZÿstvÿvvwÿvvwÿstvÿvvwÿvvvÿrrsÿhklÿlnoÿnopÿsstÿlnoÿstvÿsstÿklnÿsstÿwwwÿlnoÿlnoÿYX[ÿffhÿhklÿlnoÿnopÿfffÿJJJÿGHJÿRRRÿ```ÿhklÿdghÿJJLÿLLLÿA@BÿdghÿffhÿVVYÿNNNÿNNOÿOOOÿJKLÿTTTÿLLLÿIHHÿGHJÿNNOÿGHJÿOOSÿNNOÿOOOÿDFGÿHGHÿDFGÿDFGÿBCDÿJKLÿRRRÿPPPÿBCDÿEDFÿGGGÿGGGÿBCDÿUTWÿGHJÿJJKÿWWWÿsstÿONQÿUTWÿVVWÿ^^`ÿvvvÿjklÿtttÿMLNÿIHHÿLLLÿwwwÿqppÿnnnÿGGGÿPPPÿnnnÿbbdÿYX[ÿQPRÿJJKÿJKLÿGHJÿGHJÿJKLÿJKLÿCCFÿPPPÿCCFÿGHJÿSSVÿYX[ÿYX[ÿ\\^ÿdddÿbbbÿ\\\ÿWWWÿZZZÿWWWÿ___ÿ```ÿ```ÿrrrÿdghÿ^^^ÿcccÿbbbÿghjÿdghÿ```ÿcccÿ___ÿhklÿsssÿklnÿZZZÿ```ÿ```ÿZZZÿ^^^ÿ\\\ÿ[[[ÿffgÿXXXÿdddÿihhÿ```ÿffgÿedfÿqprÿqppÿqppÿqprÿrrrÿqppÿjjjÿmllÿoooÿUTVÿUTVÿUTVÿUTVÿVVWÿVVWÿVVWÿYXZÿZZZÿYXZÿWWWÿXXXÿXXXÿYXZÿYXZÿ\[\ÿZZ[ÿ[[[ÿ^\^ÿ[[[ÿZZ[ÿZZZÿXWYÿXXXÿXXXÿWWWÿVVWÿVVWÿVVWÿOOOÿJJKÿLKLÿRRRÿVVWÿMLNÿOOOÿVVWÿPOQÿLLLÿMLNÿPOQÿUTVÿLKLÿKKKÿJJKÿRRSÿNNNÿJJLÿQPRÿSRTÿPOQÿRRSÿnnnÿrrrÿnnnÿrrrÿwvvÿsssÿoooÿqppÿsssÿmllÿnnnÿtttÿxwxÿzxxÿzxxÿxwxÿpopÿtstÿxwxÿyxzÿzxxÿzzzÿrrrÿ}||ÿ~~~ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ|{|ÿ|{|ÿ|{|ÿ{z{ÿyxzÿ{{{ÿFFGÿEDDÿxxxÿZZ[ÿzzzÿzzzÿyxzÿyxzÿyxzÿyxzÿxxxÿzzzÿvvwÿ[[[ÿvvvÿkkkÿfffÿrrrÿkkkÿdghÿdghÿrrrÿlnoÿYXZÿsstÿrrsÿstvÿrrsÿlnoÿnopÿsssÿvvvÿwwwÿwwwÿstvÿsssÿqppÿklnÿqppÿsstÿlnoÿqprÿqprÿmmqÿnopÿrrsÿsstÿstvÿstvÿrrsÿsstÿrrsÿsstÿsstÿrrsÿghjÿdghÿ``dÿ__bÿNNOÿdghÿddgÿJKLÿMLRÿNNOÿccfÿbbdÿhklÿqqvÿstvÿbbdÿhklÿrrrÿhklÿsstÿqprÿqqvÿdcdÿijkÿsstÿlnoÿBCDÿIHHÿmmqÿONQÿUTVÿghjÿbbcÿZZ\ÿdghÿYX[ÿPPPÿVVVÿsstÿOOOÿvvvÿSSSÿJKLÿstvÿ\\^ÿnopÿ\\^ÿBBBÿDFGÿBCDÿBCDÿBBCÿdghÿtttÿcccÿJKLÿLLLÿWWWÿ\\^ÿBCDÿ??@ÿBCDÿOOSÿGHJÿNNOÿTTTÿDFGÿJKLÿJJLÿYX[ÿVVYÿGHJÿGHJÿDFGÿMLOÿYX[ÿGHJÿGHJÿGHJÿJKLÿGHJÿGHJÿGHJÿPPPÿOOSÿJJKÿJJLÿJKLÿDFGÿGHJÿJJLÿXXXÿHGHÿHGHÿSRTÿlnoÿVVWÿhklÿ`_`ÿ\\^ÿmllÿ__bÿklnÿQPRÿGHJÿNNOÿstvÿyxzÿvvwÿ^^_ÿnopÿklnÿdddÿVVWÿVVYÿSRTÿNNNÿRRRÿOOOÿGHJÿGHJÿBCDÿNNNÿGHJÿNNNÿSSSÿVVYÿ\\^ÿZZ\ÿ\\^ÿVVVÿSSSÿVVVÿTTTÿXXXÿ[[[ÿbbbÿghjÿ___ÿZZZÿ```ÿ___ÿ^^^ÿhklÿ^^^ÿ```ÿZZZÿ^^^ÿdghÿjjjÿhklÿZZZÿ[[[ÿPPPÿ[[[ÿdddÿ^^^ÿSSSÿcccÿZZZÿedfÿdddÿcccÿ```ÿcccÿkkkÿihhÿnnnÿnnnÿrrrÿrrrÿlnoÿmllÿpopÿVVWÿUTVÿVVVÿUTVÿVVWÿWWWÿXWYÿWWWÿXXXÿXXXÿXXXÿXXXÿWWWÿXXXÿXXXÿYXZÿ[[[ÿZZ[ÿZZ[ÿZZ[ÿYXZÿZZ[ÿXXXÿVVWÿXWYÿWWWÿVVWÿYXZÿXXXÿNNNÿKKKÿIHHÿQPRÿTSTÿIHJÿLKLÿUTVÿPOQÿOOOÿTTTÿLLLÿNNNÿLKLÿNNNÿJJJÿRRRÿJJJÿTTTÿQPRÿQPRÿSRTÿONQÿjjjÿxwwÿpopÿrrsÿzxxÿqppÿtttÿxxxÿxwwÿsssÿoooÿwvvÿxwxÿxwxÿxwxÿxwxÿqppÿoooÿxwwÿzxxÿxwwÿxwwÿZZZÿ}||ÿ}||ÿ}||ÿ{{{ÿ}||ÿ{{{ÿ}||ÿ{{{ÿ}||ÿ}||ÿ|{|ÿ{{{ÿ|{|ÿxwxÿ{z{ÿzzzÿtstÿmmqÿzzzÿzxxÿ[[[ÿzzzÿ{{{ÿzzzÿxxxÿxxxÿxxxÿxxxÿwwwÿwwwÿxwxÿvvvÿvvwÿwwwÿstvÿxxxÿvvvÿstvÿvvvÿvvwÿedfÿrrrÿrrrÿsstÿrrsÿlnoÿklnÿrrrÿtttÿrrsÿrrrÿklnÿhklÿklnÿqprÿstvÿqprÿrrsÿrrsÿijkÿghjÿijkÿrrsÿqprÿstvÿsstÿsstÿsstÿsstÿsstÿmmqÿdghÿdghÿdghÿdghÿhklÿ^^`ÿSSSÿOOSÿNNOÿ\\^ÿsstÿbbdÿqprÿsstÿsstÿsstÿhklÿbbbÿklnÿdddÿ__bÿ\\^ÿ^^`ÿnopÿtttÿsstÿjjlÿnopÿlnoÿNNNÿQPRÿklnÿdcdÿ^^_ÿRRSÿdghÿJKLÿstvÿstvÿGHJÿvvvÿXXXÿSSSÿstvÿWWWÿstvÿJKLÿGGJÿJJLÿDFGÿBCDÿdghÿrrrÿlnoÿnopÿOOOÿLLLÿNNNÿZZZÿSSSÿJKLÿBCDÿSSVÿPPXÿJKLÿbbdÿJKLÿLLLÿJKLÿJKLÿOOSÿDFGÿGHJÿGHJÿOOSÿOOSÿGHJÿBCDÿGHJÿJKLÿJKLÿGHJÿGHJÿUTWÿMLOÿEDFÿJKLÿJKLÿGHJÿGHJÿDFGÿGHJÿDFGÿWWWÿ^^^ÿ[[[ÿZZ\ÿVVYÿ\[^ÿYX[ÿ\[\ÿdddÿvvwÿOOSÿDFGÿJJLÿ__bÿstvÿmmqÿ__bÿbbdÿggjÿklnÿffgÿffhÿVVVÿJKLÿGHJÿDFGÿNNOÿGHJÿGHJÿLLLÿNNOÿSSVÿVVVÿZZZÿ\\^ÿZZ\ÿXXXÿWWWÿVVVÿRRRÿRRRÿKKKÿRRRÿSSSÿLLLÿVVVÿVVVÿ___ÿ[[[ÿbbbÿdddÿ^^^ÿ```ÿ\\\ÿZZZÿ^^^ÿ[[[ÿdghÿ```ÿXXXÿOOOÿZZZÿ___ÿ\\\ÿVVVÿ\\\ÿ___ÿa`bÿhghÿ^^_ÿedfÿcccÿdddÿkjkÿmllÿnnnÿrrrÿqppÿmllÿqppÿtttÿUTVÿTTTÿVVVÿUTVÿVVVÿVVVÿXWYÿWWWÿWWWÿUTVÿWWWÿXWYÿXWYÿWWWÿXXXÿXXXÿZZ[ÿ[[[ÿZZ[ÿZZZÿXXXÿXWYÿWWWÿVVWÿVVWÿVVWÿVVWÿWWWÿXWYÿOOOÿJJJÿIHJÿOOOÿPOQÿLKLÿNNNÿQPRÿQPRÿLKLÿNNNÿNNNÿQPRÿLLLÿQPRÿOOOÿXWYÿMLNÿMLNÿPOQÿSRTÿQPRÿMLOÿYXZÿvvwÿrrrÿmllÿtttÿsssÿoooÿqprÿtttÿsssÿkkkÿoooÿxwwÿxwxÿxwxÿxwwÿrrsÿa`bÿpopÿutvÿlklÿxwwÿmllÿnnnÿ|{|ÿwvvÿdddÿzzzÿsssÿdcdÿ|{|ÿnnoÿfffÿrrrÿkjkÿrrsÿpopÿcccÿwvvÿccfÿkjkÿwwwÿ{z{ÿkkkÿutvÿvvwÿyxzÿxxxÿxxxÿxxxÿxxxÿxxxÿwwwÿxxxÿwwwÿwwwÿwwwÿwwwÿvvvÿxxxÿtttÿvvwÿrrsÿmllÿqprÿsstÿstvÿtttÿsstÿrrsÿsssÿsstÿrrsÿsstÿrrrÿrrsÿrrsÿsstÿrrsÿ\[^ÿmmqÿrrsÿqprÿqqvÿqprÿklnÿdghÿnopÿffhÿnopÿnopÿqprÿnopÿdghÿdddÿdghÿccfÿdghÿhklÿRRRÿGHJÿGHJÿ\[^ÿdghÿ``dÿghjÿqprÿsstÿsstÿrrrÿstvÿstvÿsstÿrrsÿsstÿstvÿstvÿsstÿsstÿrrsÿsstÿrrsÿmmqÿQPRÿUTVÿhklÿddgÿnopÿQPRÿstvÿXXXÿstvÿWWWÿstvÿ___ÿTTTÿNNNÿdddÿJKLÿLLLÿSSSÿ<<<ÿBCDÿBBBÿBCDÿNNOÿdghÿNNOÿSSVÿOOSÿGHJÿJKLÿSSVÿRRSÿOOOÿJKLÿBCDÿJKLÿOOOÿJKLÿBCDÿGGJÿGHJÿJKLÿRRRÿHGHÿDFGÿJKLÿSRTÿPPPÿJKLÿGHJÿDFGÿJJLÿGHJÿGHJÿGHJÿ\[^ÿOOSÿBCDÿGHJÿDFGÿJJKÿGHJÿJKLÿJJKÿHGHÿJKLÿRRRÿUTWÿSSSÿSRTÿVVVÿ```ÿEDFÿDFGÿ__bÿPPPÿPPPÿLLLÿNNOÿdghÿVVWÿGGJÿEDFÿddgÿQPRÿYX[ÿdddÿ\\^ÿNNOÿGHJÿGHJÿ\[^ÿNNOÿVVYÿ[[[ÿ\\^ÿ[[[ÿ[[[ÿRRSÿNNNÿRRRÿZZZÿXXXÿTTTÿSSSÿNNNÿIHHÿJKLÿSSSÿRRRÿRRRÿTTTÿXXXÿ\\\ÿ```ÿbbbÿbbbÿ^^^ÿ^^^ÿWWWÿTTTÿOOOÿOOOÿTTTÿbbbÿfffÿhklÿdghÿdghÿRRRÿZZZÿkkkÿihhÿdddÿ___ÿ^^^ÿbbbÿdcdÿ^^_ÿihhÿmllÿoooÿnopÿqppÿrrrÿsssÿSSSÿSSSÿTTTÿUTVÿVVVÿVVVÿWWWÿXWYÿXWYÿWWWÿWWWÿXXXÿVVWÿXWYÿXWYÿVVWÿZZZÿZZZÿXXXÿVVVÿXXXÿUTVÿVVWÿWWWÿXXXÿWWWÿWWWÿVVVÿVVWÿSSSÿLLLÿOOOÿUTVÿPPPÿUTVÿRRSÿQPRÿRRSÿMLNÿMLNÿWWWÿZZ[ÿRRSÿMLNÿVVWÿ^\^ÿYXZÿPOQÿSSVÿVVYÿVVWÿQPRÿUTVÿsssÿrrrÿqppÿtttÿxwwÿrrrÿrrrÿvvvÿqprÿqppÿsssÿwwwÿxwxÿvvwÿwvvÿa`bÿ\[\ÿSRTÿvvwÿOOOÿxwwÿIHJÿpopÿihhÿNNNÿWWWÿqppÿPPPÿwvvÿcccÿhghÿPOQÿutvÿRRRÿxwxÿOOOÿvvvÿyxzÿPOQÿxxxÿ{z{ÿxwxÿzxxÿ[[[ÿzzzÿxxxÿzxxÿxwxÿxxxÿxwxÿzzzÿyxzÿxwxÿxwxÿxwxÿvvwÿvvvÿwwwÿvvvÿrrsÿmmqÿhklÿklnÿsssÿtttÿsssÿsssÿtttÿtttÿsssÿtttÿsstÿsssÿqqvÿqqvÿsssÿmmqÿYX[ÿdghÿQPRÿUTWÿmllÿghjÿVVWÿLLLÿSSVÿffhÿedfÿddgÿSRTÿJKLÿdghÿdghÿccfÿcclÿdghÿghjÿXXXÿOOSÿNNOÿSSVÿsstÿsstÿstvÿsstÿstvÿsstÿqprÿqprÿsstÿstvÿrrsÿrrsÿqqvÿrrsÿsstÿqprÿrrsÿsstÿstvÿsstÿsstÿvvwÿstvÿsstÿsstÿutvÿstvÿqqvÿwwwÿstvÿwwwÿsstÿstvÿxxxÿwwwÿstvÿstvÿlnoÿVVYÿJKLÿJKLÿNNNÿDFGÿUTWÿijkÿJKLÿNNNÿJKLÿDFGÿGHJÿ[[[ÿOOSÿMLRÿDFGÿJKLÿGHJÿBBBÿBCDÿDFGÿ@@@ÿBBBÿDFGÿOOOÿDFGÿDFGÿHGHÿJKLÿOOSÿOOSÿJKLÿOOSÿSRTÿOOOÿGHJÿGHJÿSSVÿGHJÿRRRÿPPPÿDFGÿHGHÿGHJÿHGHÿJJLÿGHJÿHGHÿGHJÿGHJÿHGHÿJKLÿOOOÿOOOÿJKLÿHGHÿEDFÿEDFÿNNOÿPOQÿLLLÿJJLÿGGGÿNNOÿJJKÿMLNÿEDFÿBCDÿJJKÿsstÿlnoÿMLOÿHGHÿGHJÿJJLÿWWWÿSSSÿSSSÿXXXÿXXXÿYX[ÿGHJÿGHJÿRRRÿZZZÿSSSÿOOOÿGGGÿGGGÿKKKÿKKKÿRRRÿXXXÿ\\\ÿ[[[ÿTTTÿTTTÿRRRÿTTTÿ^^^ÿ[[[ÿWWWÿTTTÿGHJÿTTTÿTTTÿ^^^ÿnopÿoooÿjjjÿdghÿSSSÿ[[[ÿcccÿgggÿjjjÿ___ÿ\\\ÿihhÿWWWÿZZZÿfffÿgggÿmllÿnnnÿoooÿrrrÿoooÿTTTÿRRSÿUTVÿUTVÿWWWÿVVVÿXXXÿWWWÿXWYÿXXXÿXWYÿWWWÿWWWÿXXXÿWWWÿXWYÿZZZÿYXZÿZZZÿYXZÿXXXÿXXXÿXXXÿWWWÿWWWÿVVWÿVVWÿZZZÿVVVÿYXZÿZZ[ÿXWYÿVVYÿXWYÿVVWÿYXZÿZZ[ÿ\[\ÿYXZÿVVWÿVVWÿ[[[ÿ^\^ÿVVWÿUTVÿ^\^ÿ\\\ÿ^^^ÿXWYÿXWYÿXWYÿVVYÿVVWÿhghÿxxxÿxxxÿxxxÿxxxÿxwxÿxwwÿxxxÿwvvÿxwwÿxxxÿwwwÿwwwÿwwwÿvvwÿ^^_ÿ^\^ÿVVVÿNNNÿihhÿkkkÿIHJÿUTVÿwvvÿPPPÿ\[\ÿxwwÿRRRÿXXXÿtttÿPOQÿTTTÿrrrÿVVWÿjjjÿPOQÿUTVÿqppÿTTTÿ\\^ÿxxxÿxwxÿxxxÿpopÿnnnÿyxzÿyxzÿxwxÿxwxÿwwwÿzzzÿxxxÿxxxÿxxxÿxwxÿutvÿstvÿsstÿrrrÿqppÿnopÿsssÿsstÿtttÿsstÿtttÿsstÿutvÿsstÿtttÿsstÿsssÿrrsÿrrsÿqprÿXWYÿUTVÿjjlÿklnÿlklÿjjlÿklnÿhklÿjklÿijkÿdghÿa`bÿbbdÿjjlÿklnÿlnoÿddgÿccfÿghjÿdghÿghjÿ```ÿMLRÿNNNÿNNOÿhklÿstvÿrrsÿstvÿqprÿsstÿsstÿsstÿqprÿsstÿstvÿqprÿrrrÿrrsÿnopÿrrsÿsstÿsstÿsstÿsstÿsstÿsstÿstvÿstvÿsstÿsstÿstvÿsstÿvvwÿstvÿvvvÿstvÿwwwÿwwwÿstvÿstvÿxxxÿrrrÿdghÿSSVÿNNNÿOOSÿJKLÿGHJÿSSSÿ\\^ÿJKLÿXWYÿOOSÿJKLÿOOSÿTTTÿJKLÿNNNÿGHJÿGHJÿGHJÿDFGÿ>=>ÿDFGÿJKLÿGHJÿ@@@ÿDFGÿGHJÿDFGÿGHJÿGHJÿGHJÿGHJÿNNNÿNNNÿJKLÿGHJÿNNOÿNNOÿPPXÿJKLÿOOOÿRRRÿJKLÿJJLÿJKLÿJKLÿJKLÿBCDÿGHJÿBBBÿDFGÿGHJÿGHJÿJKLÿEDFÿJKLÿGHJÿJJKÿGHJÿBCDÿBBCÿJKLÿJJKÿMLNÿBCDÿBBCÿEDFÿHGHÿDFGÿ@@@ÿBBBÿSSVÿghjÿVVVÿJKLÿAAEÿBBBÿJKLÿOOSÿRRRÿVVVÿXXXÿJKLÿSSVÿXXXÿ\\\ÿWWWÿSSSÿFFFÿRRRÿPPPÿOOOÿRRRÿTTTÿZZZÿcccÿXXXÿ```ÿRRRÿGGGÿWWWÿ\\\ÿ[[[ÿTTTÿNNNÿVVVÿNNNÿNNNÿVVVÿTTTÿ```ÿfffÿZZZÿ___ÿ___ÿjjjÿihjÿbbbÿ[[[ÿZZZÿVVVÿ```ÿcccÿjjjÿjjjÿlklÿmllÿrrrÿqprÿUTVÿTTTÿVVVÿVVWÿXXXÿUTVÿYXZÿXWYÿ[[[ÿYXZÿZZZÿXWYÿXWYÿXXXÿVVWÿZZZÿYXZÿYXZÿ\[\ÿXXXÿXWYÿVVWÿYXZÿYXZÿYXZÿYXZÿYXZÿWWWÿ\[\ÿYXZÿXXXÿVVWÿZZZÿXWYÿYXZÿZZZÿ^\^ÿ^\^ÿ\[\ÿZZZÿZZ[ÿ\\\ÿ^^_ÿ`_`ÿ^\^ÿVVVÿVVWÿa`bÿ^^_ÿ\[^ÿ\\^ÿYXZÿVVWÿXWYÿtttÿxxxÿxxxÿxxxÿzxxÿxxxÿxxxÿxxxÿxwxÿxxxÿwwwÿxxxÿwwwÿwwwÿxxxÿvvvÿvvwÿmllÿtttÿvvwÿxwwÿzxxÿwvvÿ{{{ÿ`_`ÿtttÿ{{{ÿ{{{ÿ{z{ÿyxzÿ{{{ÿ|{|ÿxxxÿ{z{ÿ{{{ÿyxzÿyxzÿ{{{ÿ{{{ÿ{z{ÿyxzÿxxxÿzzzÿ[[[ÿzxxÿwwwÿzzzÿxxxÿxxxÿxxxÿxxxÿxxxÿyxzÿxwxÿoooÿlnoÿsssÿtttÿsssÿstvÿtttÿsssÿstvÿtttÿtttÿtttÿvvwÿsstÿsstÿsstÿqprÿnopÿhklÿNNOÿccfÿjklÿlklÿjklÿklnÿjklÿklnÿjjlÿjjlÿjjlÿijkÿggjÿa`bÿccfÿklnÿklnÿhklÿ\[^ÿYX[ÿlnoÿnopÿnopÿYX[ÿOOSÿddgÿqprÿsstÿstvÿrrsÿstvÿrrsÿsstÿsstÿrrsÿsstÿsstÿrrsÿsstÿsstÿrrsÿsssÿsstÿsstÿstvÿsstÿutvÿttwÿttwÿtttÿstvÿstvÿstvÿstvÿvvvÿstvÿwwwÿstvÿstvÿstvÿwwwÿwwwÿwwwÿrrrÿdddÿTTTÿ__bÿhklÿWWWÿGHJÿNNOÿ\\^ÿghjÿstvÿdghÿYX[ÿYX[ÿTTTÿSSVÿOOSÿGHJÿJKLÿOOSÿNNNÿDFGÿBCDÿDFGÿRRRÿMLOÿDFGÿBCDÿGHJÿGHJÿGHJÿGHJÿGHJÿGHJÿJKLÿNNOÿOOSÿGHJÿGHJÿVVVÿDFGÿGHJÿDFGÿOOSÿOOSÿMLNÿHGHÿJKLÿA@BÿLLLÿBCDÿJKLÿNNOÿGGJÿBCDÿNNOÿDFGÿHGHÿDFGÿ@@@ÿGHJÿDFGÿGHJÿJKLÿJKLÿDFGÿGHJÿ??@ÿKKKÿDFGÿBBBÿ<<<ÿEDDÿVVWÿ^^`ÿJJKÿBCDÿDFGÿGHJÿOOOÿRRRÿRRSÿJKLÿJKLÿJKLÿVVVÿTTTÿVVVÿRRRÿLLLÿWWWÿ\\\ÿJKLÿOOOÿTTTÿRRRÿVVVÿNNNÿJJJÿKKKÿOOOÿXXXÿ```ÿ___ÿXXXÿOOOÿIHHÿIHHÿTTTÿXXXÿVVVÿbbbÿZZZÿNNNÿSSSÿ[[[ÿdcdÿedfÿbbbÿ___ÿ\\\ÿTSTÿihhÿihhÿgggÿjjjÿnnnÿqppÿtstÿsssÿTTTÿTSTÿUTVÿTTTÿTTTÿVVWÿXWYÿWWWÿWWWÿXXXÿWWWÿYXZÿWWWÿYXZÿXXXÿZZZÿZZ[ÿ[[[ÿ^\^ÿXWYÿZZ[ÿ[[[ÿZZZÿWWWÿVVWÿXWYÿZZ[ÿ\[\ÿ\\\ÿ[[[ÿ^\^ÿ\[\ÿ[[[ÿVVYÿ[[[ÿ[[[ÿ^\^ÿ\[^ÿZZ[ÿZZ[ÿZZ[ÿ^\^ÿ`_`ÿbbcÿa`bÿ^^^ÿXXXÿ```ÿ\\^ÿZZ[ÿ\[\ÿZZ[ÿYX[ÿXXXÿbbcÿzxxÿxxxÿxxxÿxxxÿxwxÿzxxÿxwxÿxxxÿyxzÿwwwÿwwwÿxwxÿxwxÿwwwÿvvwÿwwwÿxwxÿmlnÿpopÿrrsÿtstÿzxxÿwvvÿxwwÿtstÿjjjÿ{z{ÿ{z{ÿ|{|ÿ|{|ÿ{{{ÿ{z{ÿ{{{ÿ{z{ÿ{{{ÿyxzÿzzzÿzzzÿzzzÿzzzÿxxxÿwwwÿrrrÿ[[[ÿzxxÿyxzÿxwxÿxxxÿxwxÿxxxÿxxxÿxxxÿvvwÿlnoÿsssÿstvÿvvvÿsssÿvvvÿvvvÿvvvÿvvvÿsstÿtttÿstvÿstvÿstvÿstvÿqprÿKKKÿijkÿklnÿjklÿjjlÿklnÿjjlÿklnÿmllÿmlnÿlklÿklnÿjjlÿjklÿjjlÿjklÿghjÿddgÿghjÿhklÿhklÿhklÿOOSÿccfÿsstÿrrsÿsstÿghjÿqprÿsstÿsstÿsstÿrrrÿsstÿqprÿsstÿrrsÿrrsÿsstÿsstÿrrrÿsstÿstvÿsstÿrrsÿsstÿstvÿsstÿstvÿutvÿtstÿstvÿstvÿtttÿstvÿstvÿvvwÿstvÿvvvÿstvÿstvÿstvÿwwwÿstvÿwwwÿstvÿhklÿ^^^ÿSSVÿ\\^ÿVVYÿWWWÿhklÿsstÿhklÿfffÿZZ\ÿSSSÿRRRÿRRSÿVVVÿSSVÿTTTÿOOOÿJKLÿLLLÿMLRÿGHJÿDFGÿGHJÿBBBÿNNOÿGHJÿJKLÿBBBÿBBBÿGHJÿGHJÿNNOÿNNOÿGHJÿMLOÿOOOÿOOSÿNNOÿVVVÿBCDÿOOSÿNNNÿNNNÿOOOÿHGHÿGHJÿDFGÿ;:;ÿ<<<ÿIHHÿLLLÿNNNÿDFGÿ@@@ÿDFGÿBBCÿDFGÿEDFÿEDFÿ;:;ÿ??@ÿJKLÿMLNÿONQÿ??@ÿ<<<ÿFFFÿJJKÿEDDÿEDFÿ>=>ÿGGGÿFFFÿGHJÿEDFÿ<<<ÿDFGÿNNNÿGGJÿNNNÿJKLÿRRSÿJKLÿNNNÿVVVÿTTTÿRRRÿKKKÿIHHÿRRRÿRRRÿOOOÿRRRÿTTTÿVVVÿTTTÿKKKÿOOOÿVVVÿNNNÿSSSÿVVVÿXXXÿRRRÿGHJÿRRRÿTTTÿTTTÿXXXÿ^^^ÿ\\\ÿXXXÿOOOÿXXXÿ^^^ÿcccÿgggÿmllÿ```ÿVVWÿXXXÿgggÿlklÿdddÿihhÿjjjÿqppÿtttÿsssÿVVWÿVVVÿTTTÿTTTÿUTVÿVVWÿWWWÿVVWÿZZ[ÿYXZÿVVWÿXXXÿXWYÿYXZÿXXXÿYXZÿXXXÿ\[\ÿ[[[ÿZZ[ÿZZ[ÿ[[[ÿZZZÿZZ[ÿYXZÿYXZÿ\[\ÿZZ[ÿ^\^ÿ^\^ÿ[[[ÿ[[[ÿ\[\ÿ\\\ÿZZ[ÿ^\^ÿ^^_ÿ`_`ÿ^\^ÿ\[\ÿ\[^ÿ```ÿ`_`ÿa`bÿa`bÿ___ÿPOQÿVVWÿ\\^ÿZZZÿXXXÿZZZÿ\[\ÿZZ[ÿ[[[ÿmllÿxxxÿxxxÿzxxÿzxxÿzxxÿzxxÿyxzÿxxxÿxwxÿwwwÿxxxÿwwwÿxwxÿwwwÿyxzÿwwwÿxwwÿtttÿrrrÿnnoÿqprÿvvwÿutvÿxwwÿVVVÿ|{|ÿ}||ÿzxxÿ{{{ÿ{{{ÿ{{{ÿ{z{ÿzzzÿ{z{ÿ{z{ÿzzzÿzzzÿyxzÿyxzÿxxxÿyxzÿyxzÿxxxÿbbcÿXXXÿxwwÿxwxÿyxzÿxwxÿxwxÿxwxÿvvvÿnnnÿsssÿvvvÿstvÿsssÿvvvÿvvvÿtttÿtttÿstvÿsstÿstvÿstvÿstvÿstvÿijkÿ__bÿklnÿoosÿkkkÿnnoÿlnoÿlklÿklnÿklnÿklnÿklnÿlklÿlklÿjjlÿjklÿjjlÿjklÿhklÿffhÿffhÿdddÿ\\^ÿ``dÿZZ\ÿ___ÿ[[[ÿYX[ÿ``dÿhklÿqqvÿstvÿqprÿsstÿrrrÿqprÿsstÿrrsÿsstÿsstÿsstÿsstÿrrsÿsstÿsstÿsstÿsstÿstvÿtttÿstvÿsstÿsstÿstvÿtstÿutvÿstvÿutvÿvvvÿvvwÿvvvÿstvÿvvvÿwwwÿvvvÿwwwÿwwwÿwwwÿdddÿXWYÿTTTÿXXXÿJKLÿPPPÿdghÿ\\^ÿ^^^ÿdddÿSSSÿGHJÿLLLÿPPPÿRRRÿOOOÿVVVÿPPPÿOOOÿPPPÿNNNÿJKLÿGHJÿGHJÿGHJÿBCDÿBBBÿDFGÿGHJÿGHJÿBCDÿ>>AÿDFGÿMLOÿNNNÿNNOÿOOSÿGHJÿYX[ÿWWWÿGHJÿVVYÿSSSÿOOSÿNNOÿGHJÿDFGÿIHHÿ>=>ÿEDFÿ;:;ÿGHJÿBCDÿAAEÿ??@ÿEDFÿBCDÿGGGÿDFGÿEDFÿHGHÿHGHÿONQÿNNOÿNNOÿHGHÿMLNÿ??@ÿJJKÿGHJÿEDFÿ<<<ÿDFGÿGGGÿEDFÿEDFÿA@BÿGHJÿJKLÿJKLÿJKLÿNNNÿOOSÿGHJÿNNNÿVVVÿXXXÿSSSÿGGGÿGGGÿPPPÿWWWÿNNNÿRRRÿ\\\ÿ^^^ÿ\\\ÿRRRÿWWWÿTTTÿJKLÿRRRÿVVVÿ[[[ÿXXXÿNNNÿVVVÿSSSÿNNNÿ^^^ÿcccÿdghÿ___ÿRRRÿVVVÿbbbÿ\\\ÿdddÿkkkÿkkkÿ\\\ÿbbbÿgggÿjjjÿihhÿihhÿmlnÿjjjÿnnnÿrrrÿVVVÿVVWÿTTTÿVVVÿVVVÿYXZÿYXZÿYXZÿWWWÿWWWÿWWWÿXWYÿWWWÿZZZÿXXXÿXXXÿZZZÿ\[\ÿ[[[ÿZZZÿYXZÿZZZÿYXZÿYXZÿZZZÿZZ[ÿ\[\ÿ[[[ÿ[[[ÿ\\\ÿ\[\ÿ^\^ÿ^\^ÿ^\^ÿ`_`ÿ^\^ÿ^^^ÿ^\^ÿ[[[ÿYXZÿ[[[ÿa`bÿ^^`ÿ^^^ÿ```ÿa`bÿTTTÿQPRÿ\\\ÿYX[ÿYXZÿ\\\ÿ^\^ÿ\[\ÿ^\^ÿgggÿzzzÿzxxÿxwxÿxxxÿxxxÿxwwÿxwwÿyxzÿwwwÿxwwÿxwxÿxwxÿxwxÿxwxÿwwwÿzxxÿwvvÿxwwÿwvvÿsssÿmllÿrrrÿwvvÿutvÿ^^_ÿrrrÿ{{{ÿzzzÿ{{{ÿzzzÿ{{{ÿzzzÿ{z{ÿxxxÿ{z{ÿzzzÿyxzÿzzzÿxxxÿyxzÿyxzÿyxzÿzxxÿwwwÿxxxÿVVWÿvvwÿxwxÿyxzÿxwxÿxwxÿvvvÿrrsÿstvÿtttÿstvÿtttÿstvÿstvÿstvÿtttÿsssÿsssÿsstÿsstÿsstÿstvÿklnÿjjlÿklnÿmlnÿjklÿmmqÿjklÿklnÿlklÿlklÿklnÿklnÿklnÿijkÿjklÿjjlÿjjlÿijkÿjjlÿjjlÿghjÿdghÿghjÿdghÿghjÿdghÿ\\^ÿ``dÿ___ÿccfÿbbbÿdghÿsstÿsstÿsstÿrrsÿqqvÿrrsÿsstÿsstÿsstÿrrsÿrrsÿsstÿrrsÿsssÿsstÿsstÿsstÿsstÿsstÿsstÿttwÿsstÿstvÿutvÿstvÿvvwÿvvwÿvvvÿstvÿstvÿvvvÿvvvÿvvvÿstvÿnopÿZZ\ÿTTTÿSSSÿTTTÿNNOÿLLLÿbbbÿlnoÿrrrÿsssÿfffÿ^^^ÿVVVÿRRRÿKKKÿIHHÿOOOÿNNNÿPPPÿTTTÿOOSÿJKLÿJKLÿOOOÿNNOÿNNNÿJKLÿBBBÿCCFÿJKLÿGHJÿDFGÿBBBÿ??@ÿBCDÿGHJÿPPPÿJKLÿJKLÿGHJÿ>=>ÿPPPÿNNOÿNNOÿJKLÿGHJÿGHJÿDFGÿBCDÿDFGÿDFGÿBCDÿBBBÿBCDÿEDFÿEDFÿBCDÿGHJÿBCDÿDFGÿBBCÿBCDÿIHJÿJJKÿJJLÿLKLÿHGHÿHGHÿLKLÿFFGÿFEIÿHGHÿIHJÿHGHÿEDFÿGHJÿHGHÿMLNÿGHJÿJKLÿJKLÿOOOÿNNNÿNNNÿPPPÿXXXÿXXXÿWWWÿRRRÿSSSÿRRRÿTTTÿWWWÿTTTÿTTTÿXXXÿZZZÿZZZÿPPPÿXXXÿSSSÿTTTÿTTTÿSSSÿ\\\ÿXXXÿXWYÿZZZÿ```ÿ```ÿ___ÿ```ÿfffÿ\[\ÿ___ÿbbbÿ```ÿihhÿihhÿihhÿmllÿmllÿmllÿmllÿihhÿmllÿnnoÿnnnÿoooÿrrrÿXXXÿVVVÿVVVÿVVWÿVVWÿUTVÿVVWÿXXXÿYXZÿWWWÿWWWÿZZ[ÿWWWÿZZ[ÿXXXÿZZZÿZZ[ÿZZ[ÿ\\\ÿ\[\ÿZZ[ÿZZ[ÿYXZÿYXZÿZZ[ÿZZZÿ\[\ÿ\[\ÿYXZÿ\[\ÿ^\^ÿ^\^ÿ^\^ÿ```ÿ^^^ÿ^^_ÿ^\^ÿ^\^ÿ\[\ÿYXZÿ\[\ÿ___ÿ`_`ÿ^^_ÿ`_`ÿ`_`ÿ\[^ÿRRSÿ[[[ÿ^^^ÿ___ÿ___ÿ___ÿ\[\ÿ\[^ÿihhÿyxzÿxxxÿwwwÿxwwÿxxxÿwwwÿxxxÿxwwÿxwxÿxwxÿxwwÿxwxÿvvwÿwwwÿxxxÿvvwÿvvwÿwvvÿvvwÿwvvÿtstÿnnnÿrrsÿwvvÿwvvÿOOOÿvvwÿzzzÿzzzÿzzzÿ{z{ÿxxxÿzxxÿxxxÿyxzÿxxxÿtttÿtttÿxwwÿxxxÿxxxÿyxzÿxwwÿxwwÿvvwÿvvwÿXXXÿxwxÿvvwÿvvvÿvvvÿrrrÿrrrÿvvwÿsstÿtttÿdcdÿQPRÿrrrÿsstÿrrrÿrrrÿhklÿklnÿsstÿqprÿccfÿUTVÿihjÿjklÿklnÿjklÿlklÿklnÿlklÿjjlÿjklÿjklÿlklÿjjlÿlklÿjklÿjjlÿjjlÿjjlÿijkÿjjlÿhklÿhklÿijkÿijkÿijkÿijkÿhklÿffhÿ```ÿdddÿjjlÿRRRÿdghÿrrsÿsstÿsstÿrrrÿsstÿsstÿsstÿrrsÿrrsÿsstÿqqvÿrrsÿrrsÿqqvÿqqvÿqqvÿrrsÿsstÿsstÿsstÿsstÿsstÿsstÿstvÿsstÿtstÿstvÿstvÿstvÿstvÿstvÿvvvÿstvÿccfÿSSSÿRRRÿOOSÿSSSÿNNOÿVVVÿ[[[ÿnopÿtttÿtttÿtttÿstvÿtttÿhklÿRRRÿLLLÿNNNÿPPPÿRRRÿZZZÿSSSÿOOOÿRRRÿJKLÿJKLÿOOOÿRRRÿMLRÿGHJÿBBBÿOOOÿNNOÿOOSÿRRRÿCCFÿBBBÿJJKÿJKLÿGHJÿGHJÿEDFÿDFGÿDFGÿJJLÿDFGÿJKLÿOOOÿGHJÿGHJÿOOOÿGHJÿEDFÿEDDÿBCDÿBCDÿEDDÿDFGÿJJKÿGHJÿHGHÿGHJÿCCFÿJJLÿHGHÿLLLÿMLNÿLKLÿNNOÿNNOÿIHJÿJKLÿLKNÿIHJÿMLOÿLLLÿOOOÿPOQÿNNOÿGHJÿNNNÿOOSÿOOSÿNNNÿJKLÿPPPÿNNNÿRRRÿVVVÿWWWÿXXXÿXXXÿVVVÿSSSÿRRRÿTTTÿRRRÿTTTÿXXXÿTTTÿTTTÿXXXÿSSSÿTTTÿ___ÿZZZÿ\\^ÿ^^^ÿnnnÿmllÿ```ÿ^\^ÿcccÿlklÿfffÿ___ÿ```ÿcccÿihhÿijkÿihhÿijkÿkkkÿmllÿoooÿoooÿoooÿmllÿoooÿrrrÿoooÿWWWÿWWWÿVVVÿUTVÿVVWÿVVWÿWWWÿZZ[ÿ\\\ÿ[[[ÿYXZÿ[[[ÿXXXÿZZ[ÿZZ[ÿ[[[ÿ[[[ÿ[[[ÿ\[\ÿZZZÿZZ[ÿXXXÿWWWÿ[[[ÿYXZÿZZ[ÿ^^_ÿ\[\ÿ\[\ÿ^\^ÿ[[[ÿ^\^ÿ^\^ÿ`_`ÿ___ÿ^\^ÿ^^_ÿ\\\ÿ\[\ÿ[[[ÿ^^^ÿ```ÿ```ÿ```ÿa`bÿa`bÿ```ÿa`bÿ___ÿ^^^ÿ___ÿ___ÿ^^_ÿ^\^ÿ^\^ÿjjjÿxwwÿwwwÿwwwÿxwwÿxwwÿwwwÿwwwÿxxxÿwwwÿxwwÿxwwÿxwwÿxwwÿxwxÿxwwÿxwwÿvvwÿvvwÿutvÿutvÿutvÿrrrÿnnnÿsssÿrrsÿutvÿcccÿwvvÿ{z{ÿzzzÿzxxÿxxxÿxxxÿzzzÿzzzÿxwwÿoooÿmllÿrrrÿxwwÿzxxÿwwwÿvvwÿqprÿrrrÿqppÿihjÿijkÿrrsÿlnoÿkkkÿqprÿsssÿsstÿstvÿjjjÿ\\^ÿa`bÿVVWÿklnÿXWYÿLLLÿ`_`ÿbbdÿ\[^ÿMLNÿ^^`ÿlnoÿnopÿjjlÿjjlÿmmqÿklnÿjklÿjklÿjklÿjklÿjjlÿjjlÿlklÿlklÿjjlÿjjlÿkkkÿhklÿjjlÿijkÿhklÿjjlÿjjlÿjjlÿhklÿijkÿhklÿijkÿdghÿbbdÿcccÿklnÿ\[^ÿlnoÿsstÿrrsÿrrrÿrrsÿrrsÿsstÿrrsÿsstÿrrrÿrrsÿnopÿsssÿrrsÿrrsÿsssÿrrsÿsssÿsstÿsstÿstvÿsstÿstvÿstvÿsstÿsstÿsstÿstvÿtttÿstvÿstvÿvvvÿlnoÿSSVÿSSVÿSSVÿOOSÿSSVÿPPXÿPPPÿOOOÿWWWÿdghÿWWWÿdghÿnopÿqppÿqppÿ^^^ÿVVVÿOOOÿNNNÿZZZÿZZZÿNNNÿJKLÿJKLÿGHJÿJKLÿPPPÿOOOÿNNOÿOOOÿOOOÿJKLÿDFGÿTTTÿTTTÿPPPÿNNOÿDFGÿ??@ÿBCDÿDFGÿBCDÿHGHÿGHJÿDFGÿOOOÿPPPÿOOSÿJKLÿDFGÿJKLÿDFGÿJKLÿGHJÿBCDÿBCDÿBCDÿDFGÿDFGÿDFGÿGHJÿMLNÿMLNÿOOOÿEDFÿDFGÿJJKÿTSTÿQPRÿPOQÿLKLÿONQÿNNNÿLKLÿPOQÿMLOÿOOOÿMLNÿNNOÿMLRÿJKLÿOOSÿTTTÿSSSÿRRSÿVVVÿSSSÿPPPÿVVVÿTTTÿWWWÿWWWÿRRRÿTTTÿTTTÿ^^^ÿ[[[ÿVVVÿZZZÿZZZÿXXXÿWWWÿTTTÿVVVÿ^^^ÿ^^^ÿdddÿgggÿmllÿihjÿ\\\ÿcccÿbbcÿcccÿedfÿcccÿcccÿdcdÿgggÿihhÿmllÿkkkÿmllÿqppÿqppÿsssÿtttÿrrrÿrrrÿoooÿrrrÿXWYÿYXZÿYXZÿVVWÿVVWÿXXXÿZZZÿZZ[ÿZZ[ÿ[[[ÿYXZÿZZ[ÿZZ[ÿ[[[ÿXWYÿYXZÿ\[\ÿ^^^ÿ^^^ÿ^\^ÿ\[\ÿZZ[ÿZZ[ÿZZZÿZZ[ÿ\[\ÿ\[\ÿ\\\ÿ[[[ÿ\[\ÿ^\^ÿ^\^ÿ\[^ÿ^\^ÿ^^_ÿ^\^ÿ^\^ÿ[[[ÿ\[\ÿ^\^ÿ`_`ÿa`bÿa`bÿa`bÿbbcÿedfÿdcdÿffgÿdddÿ___ÿ\\\ÿ```ÿ```ÿ^^^ÿ^\^ÿddgÿxwwÿxxxÿxwwÿvvwÿwwwÿxwxÿxwwÿwwwÿxwxÿvvwÿvvwÿvvwÿxwwÿvvwÿvvwÿwvvÿvvwÿvvvÿutvÿutvÿtttÿtstÿnnnÿrrsÿwvvÿtstÿvvwÿhghÿmlnÿyxzÿzzzÿyxzÿzxxÿyxzÿvvvÿtstÿvvvÿtstÿqppÿsssÿvvvÿrrrÿmllÿoooÿsstÿtttÿnopÿ^^_ÿlnoÿoooÿsstÿsstÿqprÿjklÿTSTÿghjÿnnnÿoooÿlnoÿ___ÿmllÿnnnÿhklÿnnoÿmlnÿnnoÿmmqÿmlnÿjjoÿklnÿmlnÿmllÿjklÿmllÿjklÿlklÿjklÿjjlÿjjlÿjjlÿjklÿjjlÿjklÿjklÿjjlÿjjlÿjjlÿijkÿijkÿijkÿijkÿijkÿijkÿijkÿijkÿhklÿddgÿghjÿdghÿhklÿVVYÿhklÿsstÿrrsÿrrsÿrrsÿrrsÿrrsÿrrsÿrrsÿrrsÿrrsÿrrsÿrrsÿrrsÿsssÿsssÿsstÿsstÿsstÿsstÿsstÿutvÿtstÿstvÿsstÿsstÿsstÿstvÿstvÿvvvÿstvÿbbdÿSSVÿVVVÿRRRÿXXXÿ[[[ÿ[[[ÿVVYÿOOSÿ[[[ÿ```ÿKKKÿNNNÿ[[[ÿSSSÿ```ÿZZZÿZZZÿXXXÿRRRÿOOOÿOOOÿNNNÿOOOÿSRTÿNNOÿLLLÿGHJÿDFGÿGHJÿOOSÿGHJÿPPPÿRRRÿDFGÿBCDÿSRTÿJJKÿDFGÿDFGÿDFGÿ??@ÿ@@@ÿJJKÿDFGÿGHJÿGHJÿJKLÿLLLÿJKLÿJKLÿOOSÿHGHÿDFGÿDFGÿGGGÿJKLÿSSVÿBBCÿEDDÿLLLÿJKLÿOOOÿPOQÿMLNÿMLOÿNNOÿJJKÿGHJÿMLNÿNNNÿNNOÿQPRÿPOQÿTSTÿQPRÿMLOÿPOQÿOOOÿQPRÿNNOÿPPPÿOOSÿRRRÿRRSÿNNNÿTTTÿVVVÿPPPÿVVVÿOOOÿPPPÿRRRÿSSSÿSSSÿVVVÿXXXÿRRRÿTTTÿ\\\ÿZZZÿZZZÿXXXÿ^^^ÿ[[[ÿ^^^ÿ\\\ÿ\\^ÿffgÿcccÿ```ÿbbbÿ```ÿfffÿgggÿbbbÿcccÿgggÿdddÿjjjÿmllÿmllÿnnnÿqppÿqppÿqprÿsssÿsssÿsssÿrrrÿsssÿtstÿYXZÿXXXÿVVWÿUTVÿWWWÿYXZÿ\[\ÿ\[\ÿZZ[ÿZZ[ÿZZ[ÿZZZÿZZ[ÿ[[[ÿ\\\ÿ\[\ÿ\\\ÿ^^^ÿ\[\ÿ[[[ÿ^^^ÿZZZÿZZ[ÿZZ[ÿYXZÿYXZÿYXZÿ\[\ÿ^\^ÿ\[\ÿ^\^ÿZZ[ÿZZ[ÿZZ[ÿ^\^ÿ^^^ÿ\[\ÿ\[\ÿ\\\ÿ^^_ÿa`bÿa`bÿcccÿcccÿdddÿgggÿhghÿhghÿihhÿcccÿbbbÿ^^_ÿ___ÿ^^^ÿ^^^ÿdddÿxwwÿwwwÿxwxÿwwwÿxxxÿxxxÿzxxÿxxxÿxwwÿvvwÿvvwÿxwwÿvvwÿxwwÿxwwÿwvvÿvvwÿvvwÿwvvÿwvvÿwvvÿtstÿmlnÿqprÿutvÿtttÿtttÿwvvÿPOQÿxwxÿzzzÿxwxÿwvvÿtstÿtstÿwvvÿxwwÿxwwÿvvvÿsssÿsssÿtttÿsssÿtttÿtstÿtttÿtttÿTTTÿ``dÿMLNÿijkÿbbcÿYXZÿVVYÿffgÿlnoÿoooÿnnnÿoooÿoooÿlnoÿklnÿoooÿmllÿklnÿklnÿmlnÿmlnÿjjoÿjklÿmlnÿjklÿmlnÿklnÿklnÿlklÿlklÿjklÿlklÿlklÿjklÿjklÿjjlÿjklÿhklÿjjlÿjjlÿijkÿjklÿhklÿjjlÿjjlÿjjlÿijkÿhklÿijkÿhklÿijkÿbbcÿdghÿlnoÿOOOÿ``dÿsstÿrrsÿrrsÿrrsÿrrsÿqqvÿrrsÿsstÿrrrÿsstÿrrsÿsstÿstvÿrrsÿsstÿtstÿsstÿtstÿsstÿtstÿstvÿsstÿttwÿutvÿstvÿstvÿstvÿstvÿqprÿYX[ÿSSVÿVVVÿSSVÿbbbÿdddÿbbdÿXWYÿ\\^ÿdddÿXWYÿNNNÿPPPÿ\\^ÿVVVÿPPPÿdghÿbbbÿWWWÿPPPÿNNNÿTTTÿJKLÿGHJÿJKLÿJKLÿGHJÿGHJÿDFGÿDFGÿGHJÿNNNÿDFGÿGHJÿJKLÿGGGÿBCDÿ??@ÿEDFÿGHJÿGGJÿDFGÿ@@@ÿA@Bÿ??@ÿBBBÿHGHÿGHJÿJKLÿGHJÿNNOÿONQÿJKLÿGHJÿOOOÿPPPÿDFGÿDFGÿBCDÿDFGÿGGJÿGHJÿMLNÿKKKÿQPRÿPOQÿRRSÿNNOÿPOQÿRRRÿMLNÿPOQÿPOQÿPOQÿUTVÿUTVÿPOQÿPOQÿQPRÿSRTÿRRSÿPPPÿOOSÿRRRÿVVVÿRRRÿRRRÿOOOÿRRRÿSSSÿPPPÿTTTÿOOOÿRRRÿTTTÿSSSÿRRRÿcccÿ^^^ÿRRRÿTTTÿWWWÿ^^^ÿ^^^ÿ^^^ÿfffÿ```ÿbbbÿgggÿ```ÿedfÿbbbÿ```ÿcccÿjjjÿihhÿihhÿjjjÿghjÿkkkÿqppÿqppÿnnnÿnnnÿrrrÿtttÿsssÿrrrÿqppÿsssÿsssÿrrrÿYXZÿWWWÿWWWÿVVWÿXXXÿ[[[ÿ\\\ÿ[[[ÿXXXÿ[[[ÿ^\^ÿ^^^ÿZZZÿZZ\ÿ[[[ÿ[[[ÿ[[[ÿ\[\ÿ^\^ÿ[[[ÿ^\^ÿZZ[ÿZZ[ÿ^^^ÿ\\\ÿZZ[ÿ[[[ÿ^\^ÿ^^^ÿ\[\ÿ^\^ÿ^\^ÿZZ[ÿZZZÿZZ[ÿ[[[ÿ[[[ÿZZZÿ[[[ÿ^^_ÿa`bÿbbcÿdddÿdddÿffgÿhghÿfffÿhghÿffgÿffgÿdcdÿ^\^ÿ[[[ÿ^\^ÿ^\^ÿbbbÿxwwÿxwwÿzxxÿzxxÿxwxÿxwwÿxxxÿxwwÿwwwÿvvwÿwvvÿxwwÿvvwÿwwwÿxwwÿvvwÿvvwÿwwwÿutvÿvvwÿutvÿutvÿqppÿpopÿsssÿrrrÿpopÿsssÿYXZÿqppÿrrrÿmllÿlklÿpopÿvvwÿxwwÿwwwÿxwwÿvvwÿwwwÿvvvÿwwwÿvvvÿvvvÿstvÿvvvÿstvÿ\\^ÿSRTÿjjlÿmlnÿnopÿmmqÿmmqÿmmqÿlnoÿoooÿmmqÿmlnÿlnoÿlnoÿklnÿmlnÿklnÿklnÿjjoÿmlnÿklnÿklnÿlklÿklnÿlklÿmlnÿklnÿklnÿmllÿklnÿjjoÿlklÿlklÿjjlÿjklÿjklÿjjlÿjjlÿjklÿlklÿhklÿjjlÿjklÿijkÿjjlÿjjlÿkkkÿjklÿjjlÿjjlÿijkÿghjÿffhÿedfÿklnÿTSTÿbbdÿqprÿsstÿstvÿnopÿrrsÿrrsÿsstÿsstÿsstÿrrsÿsstÿsstÿsstÿstvÿsstÿsstÿutvÿsstÿsstÿstvÿutvÿutvÿsstÿsstÿstvÿstvÿstvÿhklÿYX[ÿWWWÿXWYÿZZZÿ```ÿ``dÿTTTÿOOOÿVVYÿOOOÿOOOÿJKLÿNNNÿbbcÿcccÿ```ÿlnoÿ\\\ÿTTTÿKKKÿLLLÿGHJÿGHJÿDFGÿEDDÿGGGÿDFGÿ@@@ÿBBBÿBCDÿBBBÿGHJÿGGJÿGHJÿLLLÿJJKÿGHJÿEDFÿMLNÿ>=>ÿBCDÿBCDÿBCDÿGHJÿDFGÿBCDÿEDFÿDFGÿLLLÿDFGÿHGHÿMLNÿPOQÿGHJÿNNOÿRRSÿHGHÿJJLÿGGJÿJJLÿOOOÿJKLÿJJKÿHGHÿXXXÿYX[ÿ\\^ÿ^^_ÿXXXÿTTTÿNNOÿGHJÿOOOÿMLNÿUTVÿTSTÿRRSÿSSVÿQPRÿPOQÿQPRÿMLNÿVVVÿXXXÿVVVÿPPPÿPPPÿOOOÿTTTÿRRRÿPPPÿTTTÿTTTÿWWWÿVVVÿVVVÿRRRÿ``dÿ^^`ÿ[[[ÿZZZÿ[[[ÿXXXÿ\\\ÿZZZÿ[[[ÿ^^_ÿ___ÿ```ÿ^^^ÿbbbÿdcdÿbbbÿihhÿjjjÿnnnÿoooÿnnnÿgggÿnnnÿrrrÿrrrÿqppÿrrrÿqppÿrrsÿtttÿtttÿsssÿtttÿrrrÿtstÿXXXÿXXXÿZZ[ÿYXZÿ\[\ÿZZ[ÿ\\\ÿ[[[ÿYXZÿ\\\ÿ^\^ÿ\[^ÿ^\^ÿ___ÿ^\^ÿ^\^ÿ\[\ÿ\[\ÿ^\^ÿ\[\ÿ^\^ÿZZ[ÿ[[[ÿ^\^ÿ^\^ÿ\[^ÿ^^_ÿ^^_ÿ^\^ÿ^\^ÿ[[[ÿ^\^ÿZZ[ÿXWYÿZZ[ÿ\[\ÿ\[\ÿYXZÿ\[^ÿa`bÿbbcÿbbcÿdddÿdddÿfffÿfffÿhghÿgggÿfffÿgggÿdddÿdcdÿ^\^ÿa`bÿa`bÿ^^^ÿqppÿzxxÿzxxÿxxxÿxwxÿxwwÿxwxÿwwwÿvvwÿxwwÿvvwÿvvwÿvvwÿvvwÿvvwÿwvvÿvvvÿwvvÿwvvÿvvvÿvvvÿutvÿrrsÿlklÿklnÿgggÿghjÿnopÿnopÿxwxÿsssÿrrsÿtttÿxwwÿwwwÿxwwÿvvwÿwvvÿvvwÿvvvÿvvwÿvvwÿwwwÿvvwÿvvwÿstvÿvvvÿhklÿ``dÿghjÿjklÿoooÿlnoÿmmqÿnnnÿnopÿpopÿnnoÿnnnÿnnoÿmmqÿklnÿlnoÿklnÿmlnÿmmqÿmlnÿklnÿklnÿlklÿmlnÿklnÿklnÿklnÿklnÿklnÿjjoÿmlnÿklnÿklnÿlklÿjklÿjklÿhklÿjjlÿjjlÿhklÿhklÿhklÿmllÿjklÿjklÿjklÿlklÿjklÿjklÿijkÿjjlÿjjlÿdghÿedfÿ\\^ÿjjlÿhklÿ\[^ÿklnÿsstÿnopÿrrrÿrrsÿqqvÿsstÿsstÿsstÿsstÿsstÿsstÿsstÿstvÿsstÿstvÿsstÿstvÿstvÿstvÿstvÿvvvÿstvÿsstÿvvwÿvvvÿbbdÿVVYÿVVYÿ\[^ÿbbbÿklnÿcccÿXXXÿRRRÿPPPÿJKLÿNNNÿPPPÿMLNÿNNNÿQPRÿ[[[ÿdghÿghjÿ```ÿVVVÿ^^^ÿSSSÿZZZÿSSSÿSSSÿOOOÿPPPÿJKLÿGHJÿBCDÿ@@@ÿBBBÿBBBÿBBBÿBBCÿDFGÿDFGÿDFGÿDFGÿGHJÿDFGÿBBBÿBBCÿGHJÿDFGÿEDFÿHGHÿJKLÿJKLÿDFGÿNNOÿPPPÿKKKÿGGGÿJJKÿHGHÿMLNÿOOOÿQPRÿPOQÿRRSÿQPRÿUTVÿghjÿrrrÿbbbÿ[[[ÿ```ÿ___ÿUTVÿRRRÿNNNÿRRRÿVVVÿRRRÿPOQÿRRSÿNNNÿOOOÿJKLÿNNOÿOOOÿTTTÿRRRÿPPPÿRRRÿRRRÿTTTÿVVVÿVVVÿTTTÿTTTÿVVVÿSSSÿYX[ÿ\\^ÿ\\^ÿWWWÿ[[[ÿ``dÿbbbÿ^^^ÿWWWÿWWWÿdddÿ___ÿ\\^ÿZZ[ÿ```ÿ[[[ÿ[[[ÿ```ÿffgÿdghÿjjjÿnnnÿhklÿlnoÿmllÿnnnÿnopÿrrsÿrrrÿsssÿsssÿoooÿsssÿtttÿvvvÿutvÿutvÿvvvÿ[[[ÿZZ[ÿYXZÿ\[\ÿ^\^ÿ[[[ÿ\[\ÿ\[\ÿZZZÿ\\\ÿ\[\ÿ^^^ÿ\[\ÿ\[\ÿZZ[ÿ[[[ÿ\[\ÿ^\^ÿZZZÿYXZÿZZ\ÿZZ[ÿZZ[ÿ\[\ÿ^\^ÿ^^^ÿ^^^ÿ^\^ÿ\[\ÿ\[\ÿ[[[ÿZZ[ÿ^\^ÿ\[\ÿ^^_ÿ[[[ÿYXZÿ[[[ÿ^\^ÿa`bÿcccÿdddÿffgÿdddÿhghÿfffÿgggÿedfÿdddÿffgÿffgÿgggÿ`_`ÿbbbÿ`_`ÿ___ÿihhÿxwwÿxwxÿxwwÿxwwÿwwwÿxwxÿzxxÿvvwÿxwwÿxwwÿvvwÿwwwÿvvwÿvvwÿwvvÿvvvÿwvvÿwvvÿwvvÿtttÿtttÿsstÿlklÿihjÿjjlÿqprÿrrsÿ\\^ÿstvÿxxxÿxxxÿwwwÿxwxÿwwwÿwwwÿvvwÿwwwÿvvwÿvvwÿvvwÿvvvÿvvvÿvvvÿstvÿstvÿstvÿijkÿghjÿjjlÿklnÿnopÿmlnÿlnoÿnnnÿklnÿoooÿoooÿklnÿmlnÿmmqÿmlnÿmmqÿmmqÿklnÿmmqÿmlnÿklnÿmlnÿlklÿmlnÿklnÿlklÿmlnÿklnÿklnÿjklÿklnÿklnÿklnÿlklÿjjlÿjjlÿijkÿijkÿhklÿhklÿijkÿijkÿhklÿjjlÿjklÿjjlÿjklÿlklÿijkÿijkÿijkÿjjlÿijkÿffgÿdcdÿ__bÿghjÿhklÿUTWÿNNOÿjjlÿnopÿrrsÿrrsÿsstÿsstÿrrsÿsstÿsstÿsssÿrrsÿstvÿstvÿstvÿsstÿstvÿsstÿsstÿsstÿstvÿstvÿtttÿsstÿvvvÿ\\^ÿVVYÿVVYÿXXXÿOOOÿPOQÿVVVÿSSSÿLLLÿNNNÿSSSÿ```ÿmllÿdcdÿXXXÿSSSÿRRRÿRRRÿRRRÿVVVÿSSSÿZZZÿJKLÿVVVÿIHHÿKKKÿIHHÿLLLÿNNNÿJKLÿGHJÿGHJÿSSSÿSSSÿSSSÿGHJÿEDFÿ??@ÿ??@ÿBCDÿJKLÿPPPÿGHJÿBBBÿ@@@ÿBBBÿDFGÿDFGÿBCDÿDFGÿDFGÿBCDÿJJKÿDFGÿHGHÿGGGÿGHJÿNNOÿPOQÿRRRÿRRSÿTSTÿUTVÿ``dÿsstÿtttÿlnoÿ___ÿWWWÿWWWÿXXXÿRRSÿRRRÿTTTÿVVVÿTTTÿXXXÿRRSÿPPPÿLLLÿLLLÿOOOÿOOOÿRRRÿRRRÿVVVÿPPPÿ```ÿdddÿ^^^ÿ[[[ÿVVVÿSSSÿRRRÿTTTÿSSVÿ\\^ÿ\\^ÿ```ÿ```ÿ^^^ÿ[[[ÿ^^^ÿ^^^ÿ^^^ÿ^^^ÿ^^^ÿ\\\ÿ[[[ÿbbbÿ___ÿdcdÿfffÿkkkÿkkkÿmllÿjjjÿnopÿsssÿrrrÿsssÿsssÿrrrÿsssÿtttÿutvÿqppÿsssÿsssÿvvvÿvvwÿvvvÿtttÿZZZÿZZ[ÿ[[[ÿ\[\ÿ\\\ÿ[[[ÿ[[[ÿ\[\ÿ\[\ÿ[[[ÿ^\^ÿ\[\ÿ[[[ÿ\[\ÿ[[[ÿZZ[ÿZZ\ÿZZ[ÿZZ[ÿZZ[ÿ[[[ÿ\[\ÿZZ[ÿ[[[ÿ^\^ÿ^^^ÿ^^^ÿ^\^ÿ^^_ÿcccÿ[[[ÿ\\\ÿ\[\ÿZZ[ÿZZ[ÿZZ[ÿ\\\ÿ\[^ÿ^^_ÿa`bÿcccÿddgÿgggÿhghÿccfÿgggÿffgÿedfÿcccÿcccÿdcdÿdcdÿbbcÿa`bÿ___ÿ`_`ÿdddÿtttÿxwxÿxwwÿvvwÿxwwÿxwwÿvvwÿxwwÿxwwÿwwwÿvvwÿvvwÿvvwÿxwwÿvvwÿtttÿutvÿvvvÿvvvÿtttÿutvÿsstÿnnoÿjjjÿmllÿrrrÿrrrÿhklÿqprÿvvvÿvvwÿvvwÿvvvÿvvwÿwwwÿvvwÿvvvÿvvvÿutvÿvvvÿvvvÿutvÿstvÿvvvÿsstÿsssÿrrsÿXXXÿMLNÿjjlÿmmqÿmmqÿmlnÿmlnÿmmqÿnnoÿmmqÿmlnÿklnÿklnÿlklÿlklÿklnÿklnÿmlnÿmlnÿklnÿlklÿklnÿmlnÿklnÿjklÿmlnÿlklÿijkÿjklÿjklÿmlnÿjklÿjklÿjjlÿhklÿhklÿhklÿijkÿjjlÿjjjÿjjlÿghjÿjjjÿjklÿjklÿjklÿjklÿjjlÿhklÿhklÿjjlÿhklÿklnÿdghÿdghÿffgÿghjÿijkÿhklÿXXXÿhklÿrrsÿrrsÿnopÿrrsÿsstÿsstÿsssÿsssÿsssÿsstÿstvÿsstÿsstÿsstÿsstÿsstÿstvÿstvÿstvÿsstÿsstÿstvÿSSVÿSSSÿPPPÿJKLÿDFGÿJJJÿOOOÿWWWÿWWWÿQPRÿRRRÿnopÿtttÿnnnÿ___ÿZZZÿZZZÿXXXÿ^^^ÿdddÿ___ÿjjjÿbbbÿ```ÿWWWÿXXXÿOOOÿGHJÿDFGÿBCDÿBCDÿBBBÿ@@@ÿDFGÿJJKÿDFGÿJJLÿDFGÿMLOÿLLLÿNNOÿPPPÿBCDÿBCDÿDFGÿHGHÿ>=>ÿBCDÿJKLÿJKLÿGHJÿNNOÿMLOÿMLNÿMLNÿONQÿPPPÿPOQÿUTVÿUTWÿSRTÿUTVÿa`bÿffgÿqprÿrrrÿvvvÿtttÿmllÿmllÿ^^^ÿZZZÿWWWÿ\\\ÿSSSÿWWWÿSSSÿRRSÿPPPÿJJJÿGHJÿOOOÿRRRÿRRRÿXXXÿ```ÿbbbÿ^^^ÿdghÿdghÿ___ÿXXXÿWWWÿXXXÿWWWÿSRTÿVVYÿ\\^ÿYX[ÿUTWÿZZZÿZZZÿ\\\ÿ\\\ÿ\\\ÿbbbÿ```ÿ[[[ÿ___ÿ```ÿ___ÿdddÿgggÿjjjÿnnnÿnnnÿnopÿrrrÿrrrÿsssÿsssÿnopÿqppÿrrrÿsssÿvvvÿrrrÿvvvÿvvvÿwwwÿvvvÿwwwÿvvvÿ[[[ÿ\[\ÿ[[[ÿ[[[ÿ[[[ÿYXZÿ[[[ÿ\[\ÿ[[[ÿ[[[ÿ\[\ÿ[[[ÿ^\^ÿZZ[ÿVVYÿXWYÿZZ[ÿZZ[ÿ\[\ÿZZ[ÿ\[\ÿ[[[ÿZZ[ÿ\\\ÿ\[^ÿ^^_ÿ^^_ÿ^^_ÿ^^_ÿ^\^ÿZZ[ÿ[[[ÿ\[\ÿZZ\ÿZZ[ÿ\[\ÿ^^_ÿ^^_ÿbbbÿbbbÿdcdÿhghÿhghÿihjÿhghÿgggÿedfÿbbbÿbbbÿdddÿbbcÿ__bÿ^^_ÿ^^_ÿ`_`ÿ`_`ÿbbcÿpopÿxwwÿxwwÿxwxÿxwwÿxwwÿvvwÿvvwÿvvwÿwvvÿwvvÿvvvÿutvÿutvÿwvvÿutvÿutvÿvvvÿtttÿtttÿtstÿtttÿnnoÿijkÿijkÿnopÿsssÿdcdÿnnnÿsstÿvvwÿutvÿutvÿwwwÿtttÿvvwÿvvvÿvvvÿutvÿvvvÿstvÿstvÿsstÿsstÿtttÿstvÿsssÿWWWÿONQÿjklÿmlnÿmlnÿmmqÿmlnÿklnÿlnoÿmlnÿlklÿlklÿjjoÿlklÿmlnÿlklÿlklÿklnÿmlnÿmlnÿklnÿlklÿjjoÿlklÿjklÿlklÿjjlÿjjlÿjklÿjjlÿklnÿjjlÿkkkÿhklÿijkÿijkÿijkÿjjlÿijkÿijkÿijkÿijkÿjjlÿijkÿjklÿjjlÿhklÿhklÿhklÿijkÿjjlÿjjlÿjjlÿjjlÿjjlÿghjÿffhÿddgÿffhÿhklÿ\[^ÿnopÿqprÿsstÿrrsÿrrsÿsssÿsssÿsstÿsstÿsstÿsstÿsstÿsstÿsstÿsstÿstvÿstvÿsstÿsstÿstvÿnopÿYX[ÿGHJÿJJKÿGHJÿGHJÿDFGÿLLLÿTTTÿ___ÿnnnÿbbbÿcccÿrrrÿtttÿtttÿrrrÿ```ÿ___ÿbbbÿdghÿcccÿnnnÿsssÿfffÿ[[[ÿ[[[ÿVVVÿTTTÿPPPÿJKLÿNNOÿOOSÿNNOÿJKLÿGHJÿBCDÿBBBÿGGGÿVVWÿedfÿklnÿnopÿsstÿJKLÿBCDÿBCDÿBCDÿGHJÿJKLÿJJLÿJJLÿJKLÿRRRÿPOQÿPOQÿJKLÿSSVÿ\\^ÿ\\^ÿYX[ÿXWYÿVVWÿRRSÿQPRÿXWYÿXWYÿ\\\ÿhklÿsssÿsssÿghjÿbbbÿXXXÿWWWÿXXXÿRRRÿSSSÿTTTÿSSSÿRRRÿLLLÿOOOÿ___ÿ[[[ÿWWWÿVVWÿbbbÿ^^^ÿLLLÿXXXÿdghÿcccÿ^^^ÿ^^^ÿXXXÿYX[ÿVVVÿVVYÿ\\^ÿ\[^ÿVVYÿXXXÿ[[[ÿ\\\ÿ^^^ÿ___ÿbbbÿ[[[ÿ___ÿ\\^ÿbbcÿdddÿgggÿihhÿkkkÿlnoÿmllÿlnoÿrrrÿrrrÿrrrÿqppÿrrrÿqppÿrrrÿutvÿsssÿtttÿvvvÿtttÿvvvÿvvvÿwwwÿwwwÿ[[[ÿ\\\ÿ^\^ÿZZZÿ[[[ÿ\[\ÿ^\^ÿ\[^ÿ^\^ÿ^^_ÿ\[\ÿ[[[ÿYXZÿ^^^ÿbbcÿZZZÿYXZÿ[[[ÿZZZÿ\[\ÿ[[[ÿZZ[ÿ[[[ÿ\\\ÿ\[\ÿ^\^ÿ^^_ÿ^^^ÿ^^`ÿ^\^ÿ\[\ÿ\[\ÿYXZÿ[[[ÿ[[[ÿ^\^ÿ^^^ÿ`_`ÿa`bÿa`bÿccfÿihhÿhghÿjjjÿhghÿgggÿffgÿbbcÿa`bÿ^^_ÿ`_`ÿ^^_ÿ[[[ÿ^^^ÿ^^_ÿ`_`ÿbbcÿgggÿutvÿxwxÿxwwÿvvwÿvvwÿwvvÿvvwÿwvvÿvvwÿwvvÿwvvÿwvvÿwvvÿtttÿtttÿutvÿutvÿutvÿtttÿtttÿsssÿlnoÿklnÿijkÿOOOÿUTVÿQPRÿghjÿtttÿvvvÿsstÿvvwÿutvÿvvwÿvvvÿvvvÿutvÿtttÿstvÿtttÿtttÿsstÿtttÿsstÿstvÿsstÿbbdÿ`_`ÿdghÿnopÿklnÿklnÿmlnÿmlnÿoooÿklnÿjklÿklnÿlklÿklnÿklnÿklnÿmllÿklnÿklnÿklnÿhklÿhklÿklnÿjklÿjklÿhklÿjklÿjklÿjklÿhklÿhklÿijkÿjjlÿjjlÿhklÿijkÿijkÿijkÿjjlÿghjÿghjÿghjÿijkÿjjlÿijkÿhklÿijkÿjjlÿjjlÿjjlÿghjÿhklÿjjlÿghjÿghjÿijkÿghjÿddgÿ\\^ÿ^^`ÿXWYÿbbdÿqprÿnopÿrrsÿrrsÿqqvÿqqvÿsstÿsssÿsstÿsstÿsstÿsstÿsstÿsstÿrrsÿsstÿsstÿklnÿ\[^ÿPOQÿQPRÿJKLÿOOOÿVVYÿSSVÿPOQÿRRRÿihhÿjjjÿkkkÿ___ÿdddÿnnnÿgggÿghjÿsssÿvvvÿstvÿtttÿtttÿnopÿstvÿtttÿcccÿ___ÿVVVÿ[[[ÿ[[[ÿ\\\ÿOOOÿOOOÿNNOÿNNOÿPPPÿMLOÿMLNÿJKLÿRRRÿSSVÿZZ[ÿffgÿXXXÿUTWÿDFGÿDFGÿJKLÿBBCÿ<<<ÿGHJÿOOOÿLLLÿOOOÿVVVÿSSVÿRRRÿQPRÿUTWÿrrsÿ\\^ÿ`_`ÿ\\^ÿ\\^ÿ\[\ÿXXXÿ\[^ÿXWYÿZZ[ÿihhÿoooÿoooÿbbbÿcccÿ\[\ÿSSSÿTSTÿPPPÿRRRÿVVVÿTTTÿVVVÿPPPÿOOOÿ[[[ÿ[[[ÿVVVÿUTVÿXXXÿZZZÿRRRÿWWWÿ```ÿbbbÿ^^^ÿXXXÿTTTÿTTTÿVVYÿZZZÿ^^^ÿ[[[ÿ\\^ÿ___ÿ\\\ÿ___ÿ```ÿ^^^ÿ```ÿZZZÿ\\\ÿ\\^ÿ`_`ÿdddÿijkÿmllÿmllÿnnnÿnnnÿklnÿrrrÿsssÿrrrÿsssÿrrrÿsssÿrrrÿwwwÿtttÿvvvÿvvvÿvvvÿxxxÿvvvÿwwwÿyxzÿ[[[ÿ[[[ÿ\[\ÿ\\\ÿ[[[ÿ^\^ÿ^^^ÿ^^^ÿ^\^ÿ[[[ÿ[[[ÿ^\^ÿYXZÿZZZÿ\[\ÿZZZÿZZ[ÿZZ[ÿZZ[ÿZZ[ÿZZ[ÿXXXÿYXZÿZZ[ÿ[[[ÿ\\\ÿ^\^ÿ^\^ÿ\[\ÿZZ[ÿ^\^ÿ^\^ÿ\[^ÿ\[\ÿ\[\ÿ^\^ÿ^^_ÿ`_`ÿbbcÿfffÿhghÿihjÿdcdÿijkÿhghÿbbcÿa`bÿbbcÿ^^^ÿ`_`ÿ^^_ÿ^\^ÿ\\\ÿ^^^ÿ^^_ÿ```ÿdcdÿffgÿsssÿxwwÿvvwÿxwxÿvvwÿwvvÿvvwÿwvvÿwvvÿwvvÿvvvÿvvvÿtttÿutvÿtttÿtttÿtstÿtttÿsstÿtttÿsssÿoooÿijkÿYXZÿJKLÿQPRÿNNOÿNNNÿVVVÿjjjÿvvvÿutvÿvvwÿvvvÿvvvÿstvÿtttÿtttÿsstÿstvÿsstÿstvÿsstÿsstÿsstÿsssÿhklÿVVYÿddgÿklnÿhklÿklnÿmllÿklnÿnnnÿklnÿklnÿklnÿklnÿklnÿklnÿklnÿhklÿhklÿklnÿklnÿhklÿklnÿlnoÿklnÿhklÿklnÿhklÿhklÿhklÿjjlÿjjlÿjjlÿhklÿhklÿhklÿhklÿhklÿjjlÿjjjÿghjÿghjÿijkÿjjlÿjjlÿhklÿjjlÿhklÿhklÿijkÿijkÿijkÿijkÿjjlÿhklÿjjlÿjjlÿghjÿghjÿghjÿdcdÿXWYÿ\\^ÿlnoÿrrsÿrrsÿsstÿsssÿsstÿsstÿtttÿsstÿsstÿsstÿstvÿsstÿtttÿstvÿnopÿbbcÿ\\^ÿghjÿlnoÿnopÿijkÿVVVÿWWWÿTTTÿPOQÿWWWÿsssÿrrrÿlnoÿtttÿtttÿtttÿnnnÿwwwÿvvwÿvvwÿwwwÿvvvÿvvvÿtttÿstvÿvvvÿvvvÿtttÿhklÿ```ÿ```ÿWWWÿVVVÿRRRÿVVYÿVVVÿPPPÿNNOÿQPRÿRRRÿSSSÿXWYÿghjÿklnÿdghÿTSTÿRRRÿWWWÿNNOÿQPRÿLLLÿGHJÿJJLÿQPRÿRRRÿXXXÿVVWÿRRSÿRRSÿVVVÿklnÿ\[\ÿUTWÿYXZÿZZ\ÿSSVÿSRTÿZZ\ÿ\[^ÿVVVÿYXZÿbbbÿjjjÿhklÿdghÿXXXÿSSSÿZZ[ÿXWYÿSSSÿTTTÿSSSÿSSSÿPPPÿPPPÿ\\\ÿ\\\ÿ\\\ÿWWWÿXXXÿXXXÿ^^^ÿTTTÿRRRÿ___ÿ[[[ÿXXXÿZZZÿXXXÿ\[\ÿZZ[ÿVVWÿZZ\ÿ\\^ÿ^^_ÿ^^^ÿ___ÿ^^^ÿ___ÿbbbÿ___ÿ[[[ÿ\\\ÿgggÿfffÿghjÿkkkÿnnnÿoooÿjjjÿmllÿrrrÿrrrÿsssÿrrrÿrrrÿsssÿstvÿtttÿtttÿwwwÿvvwÿwwwÿxxxÿzzzÿxxxÿxxxÿ\\\ÿ^\^ÿ[[[ÿ^\^ÿ^^^ÿ^^^ÿ^\^ÿZZZÿZZ[ÿ[[[ÿZZ[ÿYXZÿZZZÿYXZÿYXZÿYXZÿXWYÿVVYÿYXZÿYXZÿYXZÿXWYÿXWYÿYXZÿYXZÿZZZÿZZ[ÿZZZÿYXZÿ\[\ÿ[[[ÿXXXÿYXZÿYXZÿZZ[ÿ[[[ÿ^^_ÿ^^`ÿ``dÿedfÿedfÿgggÿihhÿihhÿdddÿa`bÿa`bÿ^^_ÿ^^^ÿ\\\ÿ\\\ÿZZ[ÿWWWÿXWYÿ^\^ÿ`_`ÿa`bÿdcdÿjjjÿwvvÿtttÿtttÿtttÿtstÿsstÿsssÿsssÿsssÿsstÿsssÿrrsÿsssÿrrrÿrrsÿsssÿrrsÿrrrÿqprÿqppÿnopÿdghÿOOOÿGGGÿPPPÿDFGÿMLNÿOOOÿOOOÿNNOÿedfÿqprÿsstÿrrsÿrrsÿsssÿrrrÿrrrÿrrrÿrrrÿqprÿrrrÿqppÿqprÿqppÿccfÿ\[^ÿbbcÿhklÿijkÿijkÿhklÿhklÿklnÿijkÿijkÿjjlÿjjlÿijkÿjjjÿijkÿjjjÿijkÿijkÿijkÿijkÿjjlÿijkÿjjlÿghjÿijkÿijkÿghjÿjjlÿghjÿghjÿjjlÿghjÿghjÿghjÿghjÿghjÿghjÿdghÿggjÿdghÿdghÿghjÿghjÿghjÿghjÿghjÿghjÿghjÿghjÿghjÿghjÿghjÿghjÿghjÿghjÿghjÿghjÿghjÿdghÿedfÿXWYÿklnÿlnoÿrrrÿnopÿqprÿrrrÿrrrÿqprÿrrrÿrrrÿrrrÿrrrÿqprÿrrsÿrrrÿrrrÿrrsÿrrsÿqqvÿqprÿrrsÿlnoÿ\[\ÿZZZÿWWWÿOOOÿ__bÿrrsÿklnÿjjlÿffhÿffgÿggjÿrrrÿrrsÿrrrÿsssÿrrsÿsssÿsssÿsssÿsssÿsssÿtttÿwwwÿvvvÿstvÿhklÿ```ÿfffÿoooÿcccÿZZZÿVVWÿWWWÿ\\\ÿ^^^ÿbbbÿmllÿcccÿkkkÿhklÿcccÿJJJÿIHHÿLLLÿRRRÿRRRÿVVVÿ^^^ÿ```ÿgggÿbbbÿ^^^ÿjjjÿjjjÿkkkÿgggÿmllÿjjjÿedfÿ```ÿXXXÿRRRÿSSSÿ\\^ÿedfÿ^^_ÿ^^^ÿXWYÿYX[ÿSRTÿPPPÿPOQÿUTVÿYXZÿXWYÿWWWÿVVVÿRRRÿUTVÿ[[[ÿ\[\ÿXXXÿZZZÿZZ[ÿXXXÿihhÿsssÿoooÿqppÿcccÿVVVÿVVVÿZZZÿ[[[ÿZZZÿ\\\ÿ[[[ÿ___ÿbbbÿ\\^ÿ___ÿ^^^ÿbbcÿa`bÿ^^^ÿ```ÿ[[[ÿbbbÿ```ÿgggÿgggÿlklÿnnnÿqppÿrrrÿnnnÿnnnÿrrrÿrrrÿsssÿsssÿsssÿtttÿvvvÿstvÿvvvÿwwwÿwwwÿxxxÿxxxÿwwwÿvvvÿ\\\ÿ[[[ÿ___ÿ\[\ÿ___ÿ^\^ÿVVVÿPPPÿNNOÿOOOÿQPRÿONQÿPPPÿPOQÿOOOÿNNOÿNNOÿOOOÿNNNÿNNNÿMLNÿLLLÿLLLÿNNOÿNNOÿPOQÿOOOÿMLOÿNNNÿNNNÿOOOÿNNOÿNNOÿOOOÿPOQÿPOQÿRRRÿRRSÿUTVÿXXXÿXWYÿXWYÿZZ[ÿXXXÿXWYÿTSTÿSSSÿRRRÿPOQÿNNOÿPPPÿPOQÿMLNÿNNOÿQPRÿRRSÿTTTÿVVVÿXXXÿbbbÿbbbÿbbbÿbbbÿa`bÿbbbÿbbbÿa`bÿ```ÿ```ÿbbbÿa`bÿ```ÿ```ÿ`_`ÿ```ÿa`bÿ```ÿ`_`ÿ___ÿ^^_ÿ[[[ÿXXXÿJJJÿEDFÿ^^^ÿWWWÿNNNÿIHHÿDFGÿDFGÿDFGÿVVWÿ```ÿbbbÿ```ÿ`_`ÿ___ÿ```ÿ__bÿ```ÿ```ÿ```ÿ```ÿ```ÿ\\^ÿDFGÿBBBÿ[[[ÿZZ\ÿ\[\ÿZZ[ÿZZZÿ\[\ÿZZ\ÿ[[[ÿ\[\ÿ\[\ÿZZ[ÿZZ[ÿZZ[ÿZZ[ÿZZ[ÿZZZÿZZ[ÿ[[[ÿZZ[ÿ\[\ÿYXZÿYXZÿZZ[ÿ[[[ÿZZZÿ[[[ÿ\[\ÿ\\\ÿYX[ÿZZ[ÿ\[\ÿYXZÿZZZÿZZ[ÿ[[[ÿZZZÿYXZÿZZ[ÿZZ[ÿYXZÿYX[ÿ[[[ÿYXZÿZZ[ÿVVWÿXXXÿZZ[ÿZZ[ÿYXZÿYXZÿZZZÿZZ[ÿYXZÿYXZÿYXZÿYX[ÿXWYÿRRSÿXXXÿ^^^ÿ^^_ÿ`_`ÿ`_`ÿ```ÿa`bÿ`_`ÿ__bÿ`_`ÿa`bÿa`bÿ`_`ÿ`_`ÿa`bÿ```ÿ`_`ÿ__bÿ`_`ÿa`bÿ`_`ÿbbcÿ\[\ÿRRRÿRRRÿPOQÿNNOÿ^^^ÿ\\^ÿ[[[ÿZZ[ÿ```ÿ^^_ÿ`_`ÿ\\^ÿ^^_ÿ^^_ÿ___ÿ```ÿbbbÿbbbÿbbbÿbbbÿbbbÿcccÿfffÿrrrÿxwxÿsssÿdddÿrrrÿnnnÿjjjÿcccÿ^^^ÿZZZÿ```ÿmllÿnnnÿihhÿdddÿqppÿqppÿjjjÿNNOÿSSSÿSRTÿRRSÿVVVÿbbbÿjjjÿcccÿfffÿffgÿfffÿihhÿlnoÿjjjÿjjjÿfffÿYXZÿ\\\ÿbbcÿbbbÿXWYÿTTTÿXXXÿXWYÿZZ\ÿYXZÿVVYÿYXZÿSRTÿUTVÿRRSÿZZ[ÿVVYÿYX[ÿYXZÿ\\\ÿ[[[ÿTTTÿVVVÿ___ÿ[[[ÿ___ÿ\\\ÿdcdÿjjjÿjjjÿcccÿdghÿdghÿdghÿ^^^ÿfffÿcccÿ___ÿ```ÿ___ÿ___ÿa`bÿcccÿ```ÿdddÿbbbÿdddÿcccÿcccÿbbbÿa`bÿihhÿihjÿmllÿnnnÿnnnÿqppÿmlnÿoooÿqppÿnopÿrrrÿrrrÿqppÿrrsÿvvvÿtttÿvvvÿvvvÿvvvÿvvvÿtttÿwwwÿwwwÿvvvÿ^^_ÿ^^^ÿ\[\ÿ^\^ÿZZ\ÿVVYÿIHJÿAAEÿ>>Aÿ>>Aÿ>>Aÿ>>Aÿ??@ÿ>=>ÿ>=>ÿ>>Aÿ>>Aÿ>=>ÿ>>Aÿ>>Aÿ>>Aÿ>>Aÿ>>Aÿ>>Aÿ>>Aÿ>>AÿA@Bÿ>>AÿA@Bÿ>>Aÿ>>Aÿ??@ÿ>>Aÿ>>Aÿ??@ÿ>>Aÿ??@ÿA@Bÿ??@ÿDCDÿBBCÿBBCÿBBCÿAAEÿBBCÿA@BÿA@BÿA@Bÿ>>Aÿ>>AÿA@Bÿ>>Aÿ>>Aÿ>>AÿA@BÿA@BÿA@BÿA@BÿA@BÿEDFÿEDFÿFEIÿGGGÿFEIÿGGJÿFEIÿFEIÿDFGÿFEIÿEDFÿFEIÿFEIÿFFFÿDFGÿDFGÿEDFÿEDFÿEDFÿEDFÿEDFÿBCDÿBBCÿ779ÿEDFÿEDFÿGGGÿHGHÿEDFÿDFGÿAAEÿ;:;ÿ;:;ÿ;:;ÿEDFÿCCIÿDFGÿDFGÿCCIÿDFGÿEDFÿFEIÿFEIÿDFGÿEDFÿDFGÿ??@ÿBCDÿA@BÿBBBÿEDFÿBBCÿBCDÿBCDÿBCDÿBCDÿBCDÿBCDÿBCDÿAAEÿBCDÿBCDÿBCDÿAAEÿCCFÿBCDÿAAEÿBBCÿAAEÿAAEÿAAEÿCCIÿCCIÿAAEÿAAEÿCCIÿBCDÿEDFÿBCDÿAAEÿBCDÿAAEÿAAEÿBBCÿAAEÿBCDÿEDDÿA@BÿBBCÿBCDÿBBCÿAAEÿAAEÿAAEÿBCDÿBBCÿAAEÿBCDÿBCDÿBCDÿBBCÿCCFÿBCDÿBCDÿA@BÿBBCÿCCFÿAAEÿEDFÿEDFÿEDFÿDFGÿDFGÿEDFÿEDFÿDFGÿDFGÿEDFÿEDFÿDFGÿFEIÿEDFÿFEIÿDFGÿEDFÿCCFÿDFGÿEDFÿEDFÿ>>AÿAAEÿAAEÿAAEÿCCFÿAAEÿBCDÿAAJÿFEIÿFEIÿAAJÿ>>Fÿ99Bÿ>>FÿAAJÿEENÿEENÿGGOÿEENÿEENÿEENÿGGJÿOOOÿdghÿvvvÿqppÿqppÿoooÿkkkÿqppÿlnoÿbbbÿ[[[ÿdghÿnopÿghjÿdghÿ___ÿZZZÿ\\\ÿ[[[ÿLLLÿ[[[ÿZZZÿ\\^ÿZZZÿRRRÿTSTÿXWYÿnnnÿfffÿ\\^ÿZZZÿ```ÿ^^^ÿbbbÿZZZÿTTTÿWWWÿ\\\ÿihhÿ[[[ÿ\\\ÿ\\\ÿYXZÿXWYÿ\[\ÿZZ[ÿVVYÿYXZÿRRSÿQPRÿZZ[ÿ\\^ÿYX[ÿ^^^ÿa`bÿ`_`ÿ\\\ÿ^^_ÿbbbÿbbbÿjjjÿkkkÿihhÿjjjÿdghÿghjÿdddÿdghÿdghÿghjÿdghÿ___ÿ^^^ÿ[[[ÿfffÿcccÿgggÿihhÿgggÿihhÿjjjÿihhÿfffÿfffÿfffÿfffÿjjjÿmllÿpopÿlnoÿnnnÿlnoÿnnnÿmllÿjjjÿmllÿoooÿrrrÿqppÿqppÿtttÿtttÿvvvÿtttÿwwwÿtttÿvvvÿwwwÿtttÿvvwÿ`_`ÿ^\^ÿZZ[ÿHHOÿgfÿ__€ÿppÿmm~ÿmm‚ÿccÿccÿZZ‚ÿQQ{ÿMMÿMMzÿIIÿMMÿQQ{ÿVVÿVVÿZZ~ÿZZ‚ÿZZ~ÿccÿ__€ÿccÿgfÿgfÿjj€ÿgfÿgfÿjj€ÿgfÿjj€ÿgfÿgfÿjj€ÿgfÿgfÿgfÿgfÿgfÿgfÿhh„ÿgfÿgfÿgfÿgfÿjj€ÿccÿgfÿ__€ÿ__€ÿ__€ÿZZ~ÿZZ~ÿZZ‚ÿZZ~ÿTU†ÿVVÿ__€ÿ__€ÿ__€ÿhh„ÿjj€ÿmm‚ÿhh„ÿ__€ÿ__€ÿVVÿZZ‚ÿZZ‚ÿZZ‚ÿZZ‚ÿQQ‚ÿQQ‚ÿVVÿQQ‚ÿZZ‚ÿVVÿVVÿZZ‚ÿZZ‚ÿ__€ÿZZ‚ÿccÿccÿccÿhh„ÿccÿgfÿccÿ__vÿ__€ÿ__€ÿccÿjj€ÿjj€ÿhh„ÿjj€ÿmm‚ÿmm‚ÿjj€ÿhh„ÿccÿ__€ÿccÿccÿccÿVVvÿQQ‚ÿIIÿCC}ÿ==}ÿ==}ÿ==}ÿ==}ÿ==}ÿ==}ÿ==}ÿ??ƒÿCC}ÿHHyÿTU†ÿVVÿZZ‚ÿccÿccxÿhh„ÿhhyÿppÿppÿhhyÿppƒÿjj€ÿjj€ÿccÿZZ~ÿZZ‚ÿVVÿMMÿMMzÿIIÿEEÿCC}ÿ==}ÿ<=>ÿBBCÿBBBÿCCCÿCCCÿBBBÿBBCÿA@BÿA@BÿBBBÿBBBÿ@@@ÿGGGÿLLLÿSSSÿZZZÿ___ÿcccÿfffÿdghÿdghÿdddÿ___ÿWWWÿNNNÿIHHÿGGGÿGGGÿEDDÿDFGÿJJJÿGHJÿHGHÿJJJÿSSSÿXXXÿ^^^ÿ```ÿfffÿkkkÿmllÿnnnÿnnnÿmllÿklnÿklnÿlnoÿhklÿmllÿnnnÿmlnÿjklÿkkkÿmllÿnnnÿnnnÿ\\\ÿIHHÿccnÿDFGÿ___ÿhklÿlnoÿtttÿlnoÿtttÿedfÿ^^^ÿ```ÿXXXÿXWYÿ^^^ÿZZZÿ^^^ÿkkkÿnopÿnnnÿnnnÿoooÿmllÿjklÿnnnÿkkkÿjklÿjklÿdghÿmllÿghjÿfffÿdddÿoooÿrrsÿoooÿihhÿSSSÿ^^^ÿ[[[ÿ^^^ÿa`bÿ[[[ÿZZZÿa`bÿa`bÿ\[\ÿVVYÿ^^_ÿ^^^ÿ^^_ÿ^^_ÿ^^`ÿ^^_ÿ\\^ÿdcdÿgggÿedfÿkkkÿ___ÿ\\^ÿ___ÿbbbÿbbbÿ```ÿbbbÿ```ÿ```ÿ```ÿ[[[ÿfffÿ[[[ÿ```ÿbbbÿdddÿihhÿjjjÿjjjÿffgÿffgÿihhÿedfÿihhÿdddÿ```ÿcccÿcccÿcccÿdddÿijkÿkkkÿnnnÿjjjÿkkkÿkkkÿmllÿnnnÿlnoÿmllÿnopÿoooÿqppÿsssÿtttÿsssÿtttÿstvÿtttÿutvÿsssÿvvvÿutvÿ^^_ÿ^\^ÿ^\^ÿII[ÿdddÿ@@@ÿNNNÿNNNÿBBBÿ??@ÿ??@ÿ??@ÿ>=>ÿ>=>ÿ<<<ÿ>=>ÿ>=>ÿ>=>ÿ>=>ÿ??@ÿ@@@ÿ@@@ÿ@@@ÿ??@ÿ??@ÿ??@ÿ>=>ÿ>=>ÿ>=>ÿ??@ÿ??@ÿ??@ÿ@@@ÿ@@@ÿ??@ÿ??@ÿ>=>ÿ??@ÿ??@ÿ>=>ÿ??@ÿ??@ÿ??@ÿ??@ÿ@@@ÿ@@@ÿBBBÿ??@ÿ@@@ÿBBBÿ@@@ÿA@Bÿ@@@ÿBBBÿ??@ÿ??@ÿ??@ÿ??@ÿ??@ÿ@@@ÿBBBÿCCCÿCCCÿCCCÿBBBÿBBBÿBBBÿBBCÿCCCÿCCCÿCCCÿBBBÿBBBÿBBBÿBBBÿBBBÿBBBÿBBBÿBBBÿCCCÿEDDÿ??@ÿEDDÿEDDÿEDDÿCCCÿ<<<ÿ@@@ÿ@@@ÿ>=>ÿBBBÿBBBÿBBBÿBBBÿ@@@ÿ??@ÿ??@ÿ@@@ÿBBBÿBCDÿDFGÿIHHÿIHHÿGHJÿGHJÿGHJÿJJJÿIHHÿIHHÿIHHÿIHHÿKKKÿIHHÿKKKÿLLLÿLLLÿLLLÿOOOÿOOOÿLLLÿKKKÿGGGÿ??@ÿA@Bÿ;:;ÿ@@@ÿBBBÿ@@@ÿFFFÿBBBÿEDDÿEDDÿ??@ÿBBBÿ??@ÿ@@@ÿ@@@ÿ@@@ÿFFFÿIHHÿJJJÿGHJÿLLLÿNNNÿOOOÿSSSÿSSSÿ[[[ÿ`_`ÿdddÿ```ÿdddÿfffÿfffÿfffÿihhÿihhÿghjÿihhÿjjjÿjjjÿfffÿdddÿ___ÿSSSÿJJJÿBCDÿ@@@ÿBBBÿBBBÿEDDÿBCDÿBBBÿBBBÿIHHÿRRRÿYXZÿ\\\ÿ\\\ÿZZZÿZZZÿXXXÿVVVÿRRRÿNNNÿJJJÿCCCÿBCDÿBBBÿ@@@ÿCCCÿDFGÿIHHÿGGGÿIHHÿJJJÿKKKÿKKKÿGGGÿGGGÿDFGÿFFFÿFFFÿFFFÿFFFÿGHJÿOOOÿNNNÿBBBÿffuÿGGGÿOOOÿ[[[ÿtttÿvvvÿsssÿstvÿdghÿihhÿoooÿijkÿghjÿhklÿmllÿhklÿnnnÿmllÿmllÿmllÿlnoÿjjjÿmllÿhklÿihhÿrrrÿoooÿrrrÿrrrÿnopÿ\\\ÿ`_`ÿoooÿnopÿlnoÿlnoÿ^^^ÿbbbÿ___ÿbbbÿ^^^ÿbbbÿbbbÿcccÿ\\^ÿ\\^ÿ\\^ÿ`_`ÿ^^_ÿXWYÿVVYÿXWYÿYX[ÿa`bÿa`bÿbbbÿ^^_ÿbbcÿ\\\ÿ```ÿbbbÿ^^_ÿ___ÿcccÿbbbÿbbbÿ```ÿa`bÿ\\\ÿ[[[ÿWWWÿXXXÿ___ÿffgÿjjjÿcccÿdddÿcccÿcccÿihhÿdcdÿfffÿdddÿbbbÿ___ÿdcdÿ```ÿjjjÿgggÿkkkÿmllÿmllÿmllÿmllÿmllÿkkkÿkkkÿoooÿoooÿnopÿsssÿsssÿsssÿvvvÿsssÿsssÿsssÿrrrÿsstÿvvvÿvvvÿ`_`ÿZZ[ÿZZ[ÿCCIÿmllÿRRRÿEDDÿIHJÿBBBÿkkkÿlklÿkjkÿkkkÿjjjÿihjÿihjÿjjjÿgggÿfffÿfffÿdddÿdcdÿfffÿfffÿgggÿgggÿihhÿhghÿjjjÿkjkÿkkkÿmllÿmllÿkkkÿmllÿlklÿlklÿkjkÿkkkÿihhÿihhÿgggÿfffÿdddÿdcdÿbbbÿbbbÿbbbÿ^^_ÿ^^^ÿ\\^ÿ___ÿbbcÿdcdÿfffÿhghÿgggÿggjÿgggÿcccÿcccÿdddÿgggÿffhÿgggÿffgÿffgÿhghÿffgÿgggÿkkkÿhklÿnnnÿlnoÿnopÿnopÿqppÿnopÿnopÿnopÿnopÿghjÿghjÿnnnÿhklÿlnoÿlnoÿhklÿjjjÿdghÿcccÿbbbÿ\\\ÿXXXÿVVWÿVVVÿSSSÿPPPÿPPPÿVVVÿTTTÿSSSÿSSSÿSSSÿTTTÿSSSÿ[[[ÿ[[[ÿ^^^ÿbbbÿ```ÿ```ÿ```ÿ[[[ÿ___ÿ___ÿ^^^ÿ^^^ÿ\\\ÿ\\\ÿ```ÿbbbÿ```ÿdddÿihhÿkkkÿkkkÿkkkÿhklÿklnÿlnoÿhklÿijkÿghjÿdcdÿ```ÿ\\\ÿWWWÿSSVÿSSSÿSSSÿQPRÿPPPÿNNNÿPOQÿOOOÿJJKÿJJKÿJJKÿIHHÿHGHÿGHJÿGGGÿIHHÿHGHÿGGGÿEDDÿDFGÿEDDÿBCDÿEDDÿBCDÿFEIÿOOOÿXXXÿdddÿijkÿlnoÿnopÿlnoÿnnnÿlnoÿnopÿoooÿjjjÿ```ÿWWWÿTSTÿPOQÿRRRÿUTVÿXXXÿZZ[ÿ\[\ÿ___ÿdddÿdghÿhklÿlnoÿlnoÿmllÿihhÿfffÿfffÿedfÿfffÿdddÿgggÿdddÿffgÿedfÿfffÿdghÿhghÿijkÿkkkÿKKKÿ```ÿBCDÿccnÿEDDÿ[[[ÿrrrÿtttÿstvÿstvÿvvwÿYXZÿddgÿklnÿffhÿcccÿjjjÿmllÿnnnÿjjjÿdddÿihhÿihhÿjjjÿXXXÿedfÿffgÿjjjÿdcdÿjjjÿkkkÿjjjÿfffÿTSTÿVVVÿZZ[ÿbbbÿbbcÿXXXÿ\[\ÿcccÿZZ[ÿ`_`ÿcccÿRRRÿ\\^ÿbbbÿcccÿVVVÿbbbÿfffÿihhÿfffÿgggÿdddÿedfÿdddÿ```ÿcccÿ```ÿ`_`ÿ`_`ÿffgÿgggÿcccÿdghÿdddÿ^^_ÿcccÿ___ÿdddÿbbbÿdcdÿbbbÿ\\^ÿcccÿcccÿdddÿ```ÿdddÿcccÿedfÿfffÿbbbÿdddÿdddÿcccÿfffÿfffÿedfÿihhÿmllÿjklÿihhÿgggÿjjjÿkkkÿfffÿihhÿmllÿoooÿoooÿoooÿrrsÿsssÿsstÿsstÿsstÿstvÿsssÿsssÿsstÿtttÿutvÿ`_`ÿ\[\ÿ\[\ÿEENÿgggÿSSSÿdddÿVVÿ>>AÿNNOÿ\[^ÿ^^`ÿ^^`ÿ^^`ÿ^^`ÿ^^`ÿ^\^ÿ^^`ÿ\[^ÿZZ\ÿ\[^ÿ\[^ÿ^^`ÿ\[^ÿ^^`ÿ^^`ÿ^^`ÿ\[^ÿ\[^ÿ`_`ÿ__bÿ^^`ÿ\[^ÿ^^`ÿ__bÿbbdÿbbdÿccfÿbbdÿbbdÿbbdÿccfÿccfÿggjÿffhÿffmÿffmÿffmÿccfÿ__bÿ``dÿddgÿffmÿffmÿffhÿffhÿffhÿggjÿddgÿ``dÿYYcÿffmÿjjoÿoosÿqqvÿqqvÿqqvÿqqvÿqqvÿqqvÿttwÿstvÿstvÿttwÿsstÿsstÿsstÿsstÿsstÿqqvÿqqvÿmmqÿ__bÿccfÿklnÿklnÿlnoÿoosÿmmqÿjjoÿ^_jÿoosÿmmqÿmmqÿmmqÿmmqÿqprÿdghÿ__bÿPPXÿffrÿmmxÿjjuÿjjuÿmmxÿ^_jÿ\\fÿmmxÿmmxÿmmxÿmmxÿmmxÿooyÿUU_ÿcclÿjjsÿjjoÿjjoÿjjlÿjjlÿjjsÿjjoÿjjsÿffmÿjjoÿjjoÿjjoÿmmqÿmmqÿghjÿjjoÿklnÿjjoÿjjoÿjjsÿffrÿddoÿffrÿddoÿddoÿddoÿffmÿffmÿcclÿffhÿcclÿffmÿccnÿffrÿffmÿffrÿffmÿccnÿffmÿddoÿddoÿffmÿcclÿffmÿcclÿffhÿONQÿjjlÿffrÿmmxÿmmxÿoosÿqqvÿttwÿttwÿttwÿttwÿttwÿsstÿttwÿ^^`ÿMLRÿ``dÿjjsÿjjoÿjjsÿmmqÿjjuÿmmqÿoosÿmmqÿqprÿVVYÿnopÿhklÿghjÿffmÿcclÿjjlÿffmÿffmÿccfÿddgÿVVYÿ``dÿ^_jÿoosÿooyÿttwÿnopÿVVfÿkkkÿbbbÿCCCÿffrÿDFGÿ```ÿstvÿrrrÿsssÿlnoÿstvÿ\[^ÿXWYÿhklÿ^^_ÿcccÿdddÿfffÿjklÿghjÿYXZÿcccÿihhÿrrrÿhklÿRRSÿdddÿdddÿdddÿedfÿcccÿdcdÿdghÿbbcÿ`_`ÿRRRÿRRRÿRRSÿTTTÿRRSÿcccÿRRRÿOOOÿ```ÿdddÿXXXÿgggÿdddÿmllÿkkkÿqppÿqppÿkkkÿihhÿfffÿghjÿdghÿfffÿcccÿdddÿjjjÿihhÿedfÿfffÿihhÿcccÿdddÿbbbÿbbbÿcccÿdghÿfffÿedfÿ___ÿ___ÿcccÿa`bÿdddÿcccÿdddÿdddÿdghÿbbbÿdddÿdddÿ```ÿ___ÿbbbÿ^^_ÿbbbÿdddÿjklÿmllÿffgÿgggÿcccÿdddÿdcdÿffgÿjjjÿmllÿoooÿnopÿqppÿsssÿtttÿsssÿwwwÿsssÿsssÿsssÿsssÿsssÿtttÿ^^_ÿ\\\ÿ[[[ÿIIXÿ___ÿTTTÿjjjÿ>>Fÿ>>FÿFFFÿUTVÿZZZÿYXZÿ[[[ÿ\[\ÿZZ[ÿZZ\ÿZZ[ÿZZZÿYXZÿZZ[ÿ\[\ÿ[[[ÿ[[[ÿ^\^ÿ^\^ÿZZ[ÿ[[[ÿ^\^ÿ\\\ÿ^^_ÿ^\^ÿ\[^ÿ^\^ÿ^^_ÿ`_`ÿbbcÿbbcÿbbbÿbbcÿa`bÿa`bÿcccÿffhÿfffÿihhÿffhÿihjÿedfÿbbcÿffhÿkjkÿjjjÿihjÿihhÿihjÿihjÿhghÿgggÿdddÿ`_`ÿjjjÿjjjÿihjÿmlnÿrrsÿtstÿstvÿsstÿsstÿsssÿsssÿsssÿsssÿtttÿsstÿtttÿsstÿrrsÿrrsÿrrsÿlnoÿghjÿlnoÿnopÿdghÿijkÿOOOÿZZ\ÿcccÿhklÿ[[[ÿffgÿghjÿVVYÿ^^^ÿSSSÿbbdÿ[[[ÿnopÿOOOÿTTTÿsstÿrrrÿqprÿqqvÿSRTÿqprÿrrsÿrrsÿrrsÿrrsÿnopÿjjlÿffhÿhklÿjjlÿklnÿklnÿhklÿghjÿhklÿihjÿklnÿhklÿklnÿhklÿghjÿghjÿklnÿklnÿhklÿlnoÿijkÿjjlÿghjÿklnÿjjlÿhklÿlnoÿdghÿklnÿjjlÿhklÿghjÿghjÿijkÿijkÿghjÿjjlÿjjlÿjklÿlklÿjjlÿjjlÿlklÿjklÿjklÿhklÿjjlÿYX[ÿ\[^ÿqprÿqprÿklnÿklnÿqprÿsstÿsstÿsstÿsssÿsstÿsstÿstvÿsstÿghjÿqppÿmmqÿnopÿmmqÿmmqÿlnoÿoooÿlnoÿpopÿnopÿlnoÿhklÿWWWÿbbbÿfffÿfffÿfffÿghjÿbbbÿcccÿ`_`ÿfffÿVVWÿffgÿhklÿtttÿwwwÿwwwÿvvwÿQQ^ÿghjÿ```ÿCCCÿffrÿDFGÿ```ÿstvÿoooÿsssÿsstÿstvÿqprÿklnÿnopÿdcdÿhklÿjjjÿjjjÿihhÿdddÿihhÿrrsÿ```ÿ^^_ÿffgÿcccÿghjÿkkkÿbbcÿcccÿdcdÿjjjÿ\\\ÿ\\\ÿdcdÿTSTÿTTTÿXXXÿTSTÿTSTÿ```ÿNNNÿffgÿihhÿ\\\ÿffgÿkkkÿbbbÿWWWÿffgÿoooÿoooÿlnoÿqppÿnopÿklnÿdghÿoooÿjjjÿa`bÿ^^^ÿdcdÿdcdÿedfÿdghÿcccÿffgÿbbbÿdddÿ`_`ÿbbbÿbbbÿdddÿgggÿdghÿbbbÿ`_`ÿdddÿfffÿbbbÿcccÿgggÿfffÿa`bÿ[[[ÿ___ÿfffÿdddÿdddÿcccÿcccÿcccÿbbcÿjjjÿffgÿdddÿdddÿdddÿdddÿkkkÿnnnÿmllÿnopÿnnnÿqppÿsssÿsssÿrrrÿrrsÿvvvÿsstÿsstÿtttÿtttÿ^^_ÿ^\^ÿ\[\ÿIIjÿSSSÿ^\^ÿVVVÿDCdÿ<<<ÿFFFÿTTTÿ[[[ÿXXXÿZZZÿ[[[ÿZZ[ÿYXZÿZZ[ÿZZ[ÿ[[[ÿZZ[ÿ[[[ÿ\[\ÿ^^_ÿ\[\ÿZZ[ÿZZ[ÿ^\^ÿ___ÿ^^_ÿ^\^ÿ^\^ÿ^^^ÿ^^_ÿ```ÿbbcÿdddÿedfÿffgÿedfÿedfÿfffÿccfÿhghÿgggÿihhÿkkkÿjjjÿhghÿdcdÿ^^^ÿ`_`ÿbbcÿihjÿkkkÿmllÿijkÿjklÿgggÿgggÿddgÿrrrÿnnnÿmlnÿhghÿihjÿnnoÿmmqÿnnnÿrrrÿtttÿsssÿrrsÿrrsÿrrsÿsssÿrrrÿsssÿrrrÿrrsÿqprÿjjlÿghjÿklnÿqprÿqprÿghjÿUTWÿNNOÿdghÿTTTÿUTWÿdghÿVVVÿQPRÿlnoÿSRTÿsstÿPPPÿbbdÿ__bÿJKLÿrrrÿrrsÿsstÿnopÿGHJÿklnÿsstÿrrsÿnopÿ^^`ÿghjÿVVYÿTTTÿbbdÿbbbÿjjlÿhklÿffhÿ``dÿffgÿdghÿdghÿhklÿklnÿffhÿffgÿjjlÿcccÿghjÿhklÿghjÿdddÿccfÿdcdÿddgÿjjlÿghjÿghjÿ```ÿghjÿdghÿklnÿccfÿfffÿghjÿ``dÿdcdÿijkÿhklÿjklÿjklÿlklÿlklÿlklÿjklÿjjlÿhklÿijkÿklnÿqprÿnopÿlnoÿdghÿklnÿqprÿsssÿrrsÿsssÿrrsÿstvÿsstÿqqvÿijkÿedfÿlnoÿmmqÿlnoÿlnoÿnnoÿmmqÿnnoÿlnoÿlnoÿoooÿnopÿlnoÿ```ÿTTTÿ```ÿffgÿfffÿghjÿedfÿjjjÿdcdÿa`bÿWWWÿsstÿvvvÿvvvÿvvvÿvvvÿvvvÿRR[ÿnnnÿcccÿCCCÿcclÿDFGÿ```ÿnopÿlnoÿsstÿstvÿstvÿxxxÿvvvÿijkÿbbcÿdghÿdddÿ`_`ÿccfÿgggÿbbcÿ```ÿ___ÿ^^^ÿdghÿddgÿcccÿghjÿcccÿsssÿjjjÿkkkÿa`bÿ\[^ÿgggÿbbbÿ\\^ÿ^^^ÿa`bÿ```ÿdddÿbbbÿnnnÿklnÿoooÿoooÿijkÿihhÿihhÿfffÿjjjÿdghÿbbbÿgggÿ```ÿ```ÿ^^_ÿbbbÿ`_`ÿ\[\ÿa`bÿcccÿdddÿedfÿa`bÿbbcÿghjÿa`bÿ^^^ÿ___ÿ^^^ÿbbcÿcccÿfffÿdddÿdddÿcccÿfffÿcccÿ```ÿa`bÿcccÿ```ÿfffÿdcdÿbbbÿdddÿdddÿcccÿdddÿihhÿedfÿdcdÿa`bÿffgÿbbcÿ```ÿgggÿihhÿnnnÿmllÿklnÿoooÿoooÿoooÿqppÿrrrÿrrrÿrrrÿtttÿsstÿsssÿsssÿtttÿ`_`ÿ^^_ÿ\[\ÿHHqÿPPPÿ___ÿQPRÿ::tÿ;:;ÿFFFÿUTVÿZZ[ÿYXZÿ[[[ÿ[[[ÿZZ[ÿWWWÿZZ[ÿYXZÿ\\\ÿZZ[ÿZZ[ÿZZ[ÿZZ[ÿZZ[ÿZZZÿZZZÿ\[\ÿ^^_ÿ^^^ÿ^\^ÿ^^^ÿ^^^ÿ^^^ÿ__bÿa`bÿedfÿihjÿihhÿgggÿihjÿihjÿfffÿgggÿkjkÿgggÿihhÿdddÿedfÿedfÿcccÿdddÿgggÿkjkÿkkkÿihjÿdghÿdcdÿ___ÿ^^_ÿdcdÿwwwÿtttÿoosÿmlnÿihjÿedfÿghjÿgggÿhklÿnopÿklnÿihhÿghjÿdghÿjjjÿhklÿnnnÿqppÿqppÿlnoÿjjlÿggjÿlnoÿqprÿnopÿlnoÿJKLÿJJLÿghjÿOOSÿdddÿghjÿPPPÿ[[[ÿccfÿGHJÿcccÿVVYÿlnoÿSRTÿSSVÿghjÿSSVÿghjÿlnoÿSSVÿffhÿqprÿrrsÿqprÿccfÿnopÿlnoÿ``dÿXWYÿffhÿjjlÿdghÿ``dÿ[[[ÿ``dÿbbcÿ__bÿdddÿdghÿffhÿghjÿghjÿYX[ÿSRTÿ``dÿ\[^ÿdghÿZZ[ÿ``dÿGHJÿ^^`ÿghjÿONQÿ\[^ÿUTVÿdghÿffgÿZZ[ÿJJLÿa`bÿ\[\ÿccfÿghjÿdghÿijkÿjjlÿjjlÿlklÿlklÿjklÿjjlÿjjlÿghjÿa`bÿklnÿjjlÿffhÿghjÿijkÿghjÿdghÿghjÿklnÿnopÿqprÿrrsÿsstÿUTWÿijkÿhklÿjklÿmlnÿmmqÿlnoÿnopÿnopÿlnoÿlnoÿlnoÿklnÿffhÿWWWÿ\\\ÿJKLÿ^^_ÿbbcÿ^^^ÿa`bÿ```ÿbbbÿ\\^ÿ\\^ÿtttÿvvvÿwwwÿwwwÿxxxÿxxxÿOOSÿoooÿihhÿCCCÿffrÿBBBÿVVVÿTTTÿXXXÿ\\^ÿbbbÿghjÿghjÿghjÿrrsÿrrrÿrrrÿrrrÿjjjÿjjjÿoooÿgggÿcccÿ`_`ÿ```ÿdghÿbbbÿcccÿa`bÿcccÿghjÿ^^_ÿcccÿjklÿ```ÿbbcÿjjjÿgggÿdcdÿgggÿdghÿijkÿa`bÿggjÿrrrÿoooÿkkkÿnnnÿklnÿoooÿnnnÿjjjÿdddÿ___ÿ^^^ÿbbbÿdddÿcccÿ^^^ÿ`_`ÿa`bÿ`_`ÿcccÿcccÿ```ÿedfÿdddÿmllÿjklÿkkkÿkkkÿ___ÿcccÿghjÿihhÿihhÿmllÿcccÿdddÿ```ÿcccÿcccÿa`bÿcccÿedfÿdddÿdcdÿfffÿjjjÿcccÿgggÿcccÿ```ÿ```ÿcccÿcccÿbbbÿgggÿihjÿcccÿihhÿkkkÿjjjÿkkkÿnopÿoooÿqppÿrrsÿoooÿsssÿrrrÿrrsÿrrrÿqppÿqppÿ`_`ÿ`_`ÿ^^_ÿHHyÿOOOÿ___ÿTTTÿ::tÿ;:;ÿFFGÿVVVÿ[[[ÿZZ[ÿZZ[ÿ[[[ÿZZZÿTTTÿPOQÿOOOÿPOQÿPOQÿOOOÿPOQÿPOQÿPOQÿPPPÿOOOÿRRRÿRRSÿSSSÿQPRÿQPRÿPOQÿSSSÿVVWÿ^\^ÿdcdÿhghÿhghÿihjÿkjkÿkjkÿihhÿihhÿihhÿbbcÿ\[\ÿUTWÿRRRÿPOQÿPPPÿONQÿRRRÿVVVÿ[[[ÿ___ÿfffÿfffÿffgÿgggÿbbbÿghjÿ___ÿqprÿtstÿqppÿjklÿdddÿcccÿ^^^ÿ[[[ÿVVVÿRRRÿOOOÿPOQÿRRRÿVVVÿ[[[ÿ```ÿfffÿdcdÿffgÿghjÿnopÿqprÿrrsÿqprÿklnÿOOOÿWWWÿ^^^ÿ^^^ÿ___ÿ```ÿedfÿhklÿrrsÿqqvÿnopÿJKLÿdcdÿffhÿSRTÿ>=>ÿGHJÿ\\^ÿTSTÿVVVÿijkÿhklÿsstÿghjÿhklÿdghÿklnÿddgÿfffÿYX[ÿYXZÿNNOÿJJKÿLLLÿLLLÿMLNÿPPPÿWWWÿ\[\ÿ\\^ÿ\\^ÿXWYÿJJLÿYX[ÿjjlÿedfÿQPRÿOOOÿJJKÿbbbÿ\[\ÿQPRÿ@@@ÿBCDÿZZ[ÿZZ[ÿTSTÿEDFÿTSTÿTSTÿXXXÿZZ[ÿ\[\ÿa`bÿggjÿjjlÿjklÿlklÿlklÿlklÿjjlÿjjlÿdghÿNNOÿBCDÿQPRÿYXZÿRRSÿPPPÿQPRÿSSSÿXWYÿbbbÿedfÿdghÿMLNÿMLNÿ^^_ÿ\\\ÿ\\^ÿ___ÿihhÿlnoÿnnoÿlnoÿnnnÿklnÿdghÿ\\^ÿVVVÿUTWÿTSTÿHGHÿPPPÿWWWÿXXXÿWWWÿVVVÿVVVÿYXZÿXXXÿcccÿfffÿjjjÿtttÿxxxÿvvvÿRR[ÿqppÿjjjÿEDDÿcclÿDFGÿXXXÿ[[[ÿbbbÿZZZÿTTTÿVVYÿRRRÿVVYÿ``dÿffhÿnopÿsssÿoooÿsstÿoooÿnnnÿqppÿdghÿfffÿcccÿ```ÿfffÿdddÿYXZÿjjjÿdddÿihhÿhklÿkjkÿnnnÿrrrÿhghÿihhÿihhÿoooÿlnoÿjjjÿqprÿkkkÿnnnÿnnnÿnopÿnnoÿklnÿjjjÿdghÿkkkÿghjÿihhÿkkkÿhklÿbbcÿffgÿdddÿkkkÿdddÿdddÿbbbÿbbcÿkkkÿkkkÿbbbÿ`_`ÿnnnÿtttÿihhÿbbbÿmllÿmllÿkkkÿ```ÿa`bÿdddÿcccÿihhÿccfÿdddÿfffÿcccÿcccÿdddÿfffÿcccÿbbbÿdddÿdddÿfffÿ___ÿdddÿcccÿfffÿjjjÿkkkÿjjjÿijkÿjjjÿkkkÿmllÿmllÿlnoÿoooÿqprÿrrrÿqppÿqppÿrrsÿoooÿqppÿrrrÿ`_`ÿ^^_ÿ^^^ÿHHqÿRRRÿ^\^ÿVVVÿCC`ÿ;:;ÿFFFÿWWWÿ[[[ÿYXZÿ\[\ÿ\[^ÿYX[ÿPPXÿJJLÿFEIÿGGJÿEENÿFEIÿFEIÿGGJÿIHJÿIHJÿHHOÿHHOÿHHOÿHHOÿJJLÿJJLÿJJLÿEDFÿGGGÿWWWÿdddÿkjkÿihjÿlklÿmlnÿlklÿkjkÿdddÿVUaÿYYjÿPPsÿCCZÿAAJÿBBOÿEENÿDDoÿ\\fÿMMYÿLLLÿKKKÿOOOÿXXXÿ\\\ÿcccÿffgÿyxzÿzzzÿsstÿdddÿrrrÿjjjÿ__bÿMLRÿHHqÿ[[wÿCCZÿCCIÿDCVÿLLpÿYYcÿMLRÿMLNÿNNNÿQPRÿUTVÿbbcÿghjÿnopÿqqvÿlnoÿjjlÿ^_jÿRR[ÿAAJÿIIUÿGGOÿHHOÿJKLÿTTTÿdghÿqqvÿsstÿoosÿklnÿ^^`ÿJKLÿJKLÿA@BÿBBBÿBBBÿBCDÿNNOÿXWYÿUTVÿZZ\ÿ^^^ÿ^^`ÿXWYÿZZ\ÿVVYÿOOSÿIIdÿVVnÿVVnÿHHqÿ__vÿVVvÿIIUÿGHJÿJKLÿGHJÿJJLÿTSTÿXWYÿUTVÿbbcÿ__bÿccfÿccfÿJJLÿRR[ÿSSVÿLKNÿ>>FÿBCDÿCCIÿFEIÿAAEÿFEIÿ>>AÿA@BÿFEIÿGGJÿGGJÿKKKÿVVVÿffgÿjjlÿjklÿmllÿlklÿklnÿjjlÿhklÿghjÿSRTÿII[ÿ[[pÿVVnÿCCuÿ__vÿ[[wÿMLRÿONQÿGHJÿJKLÿYXZÿ__bÿVVYÿGHJÿHGHÿJJKÿPOQÿa`bÿklnÿlnoÿlnoÿjjlÿddgÿZZ[ÿKKKÿDFGÿGHJÿGGJÿCCFÿ>>AÿEDFÿEDFÿDFGÿGHJÿGHJÿJJJÿGHJÿLLLÿNNOÿXXXÿmllÿsssÿxwxÿQQ\ÿnopÿjjjÿEDDÿffrÿDFGÿ\\^ÿdghÿbbbÿ```ÿ___ÿ[[[ÿVVVÿXXXÿVVVÿVVVÿ[[[ÿXXXÿYX[ÿ`_`ÿijkÿdghÿnopÿlnoÿqppÿqppÿnnnÿqppÿoooÿbbbÿtttÿstvÿghjÿffhÿlklÿpopÿnnnÿedfÿihjÿffhÿlklÿhghÿ```ÿbbbÿhghÿklnÿkkkÿlklÿjjlÿihjÿjjlÿnnoÿklnÿdghÿfffÿihhÿgggÿ```ÿ```ÿ`_`ÿffgÿdddÿhghÿgggÿdddÿedfÿa`bÿOOOÿOOOÿ\\\ÿcccÿdddÿklnÿmllÿjjjÿjjjÿkkkÿihhÿfffÿdddÿdddÿ```ÿcccÿ```ÿfffÿbbbÿbbcÿbbbÿcccÿdddÿfffÿdghÿjjjÿkkkÿmllÿhklÿlnoÿmllÿjjjÿmllÿlnoÿmllÿjjjÿqppÿjjjÿlnoÿoooÿqppÿqppÿrrrÿsssÿrrsÿrrrÿqppÿnnnÿ`_`ÿ`_`ÿ^^_ÿHHyÿRRRÿ^\^ÿXWYÿCC`ÿ<<<ÿGGGÿXXXÿ[[[ÿYX[ÿVVfÿQQ‚ÿmm~ÿ::tÿCC`ÿDCdÿCCZÿCCZÿDCdÿCC`ÿCCiÿ::tÿ::tÿ==}ÿ==}ÿ::tÿCCiÿCC`ÿCC`ÿCCZÿ^_jÿEDDÿRRRÿ```ÿkkkÿmlnÿlklÿlklÿjjlÿVVvÿgfÿ>>IÿoosÿXXXÿKKKÿFFFÿBBBÿBBBÿA@BÿCCZÿppƒÿIIXÿYYcÿIHJÿHGHÿRRSÿbbcÿedfÿyxzÿ{{{ÿzzzÿwwwÿddgÿMLRÿccÿ>>Fÿjjjÿhklÿ```ÿPPPÿIHHÿCCIÿCCiÿppƒÿIIXÿVVfÿLKNÿJJJÿRRSÿa`bÿmmqÿnopÿII[ÿ??ƒÿppƒÿtt„ÿmm‚ÿhh„ÿgfÿppƒÿGGOÿ___ÿhklÿqqvÿqprÿHHOÿccÿ??ƒÿIIÿIIÿIIÿEEÿII[ÿWWWÿffgÿhklÿhklÿrrrÿqprÿijkÿUTWÿ>>Iÿ[[wÿ>>Aÿcccÿhklÿhklÿklnÿklnÿmmxÿppƒÿ@@mÿIIjÿON`ÿGHJÿGHJÿGGJÿMLOÿVVWÿccfÿffhÿOOXÿccÿ==}ÿgfÿgfÿjj€ÿccxÿjj€ÿmm‚ÿmm~ÿmm‚ÿjj€ÿjj€ÿjj€ÿgfÿ??ƒÿYX[ÿ`_`ÿihjÿlklÿjklÿklnÿlklÿklnÿjjoÿ^^`ÿII[ÿCCuÿUU_ÿklnÿjjjÿbbbÿYYcÿVVvÿppƒÿCCIÿGGOÿMLNÿ@@Tÿ>>IÿTU†ÿMMÿIIÿIIXÿ\[\ÿffhÿlnoÿmmqÿ^_jÿ??Nÿ??Nÿ==}ÿ??ƒÿ==}ÿ??ƒÿ==}ÿ==}ÿ==}ÿ==}ÿ??ƒÿIIÿQQ‚ÿ__€ÿ__€ÿccÿTU†ÿ^_jÿcccÿoooÿrrsÿsstÿPPXÿoooÿjjjÿEDDÿddoÿFFFÿZZZÿ__bÿ\\^ÿ```ÿ^^^ÿ```ÿ[[[ÿ\\\ÿ\\^ÿZZZÿ^^^ÿ\[\ÿ\\^ÿ`_`ÿ^^`ÿ\[^ÿXXXÿWWWÿcccÿdddÿdddÿfffÿjjjÿdddÿlnoÿlnoÿ`_`ÿ\\^ÿmllÿtttÿrrsÿqprÿpopÿsstÿrrsÿqprÿkkkÿlnoÿmlnÿmlnÿihjÿmmqÿmllÿklnÿklnÿlnoÿjjlÿoooÿhklÿbbbÿfffÿcccÿbbbÿ^^^ÿcccÿihhÿijkÿjjjÿjjjÿfffÿ`_`ÿNNNÿNNNÿ___ÿhklÿmllÿmllÿhklÿkkkÿhklÿdghÿihhÿfffÿfffÿedfÿcccÿgggÿgggÿdddÿbbcÿbbcÿbbbÿ```ÿ```ÿcccÿbbbÿgggÿkkkÿgggÿhklÿjjjÿklnÿbbbÿnnnÿlnoÿkkkÿmllÿrrrÿmllÿrrsÿnnnÿqppÿqppÿrrrÿsssÿsssÿrrrÿoooÿmlnÿ```ÿ__bÿ^^^ÿCCuÿRRRÿ___ÿVVVÿCC`ÿ>=>ÿGGGÿYXZÿ^^^ÿZZ[ÿII[ÿdddÿFFFÿ___ÿ```ÿ```ÿmllÿYXZÿmllÿa`bÿ^^^ÿ^^^ÿ[[[ÿ\[\ÿ\\\ÿ^\^ÿbbbÿfffÿmllÿQPRÿAAJÿFFGÿTSTÿedfÿkkkÿmllÿmllÿhghÿLLpÿccxÿA@BÿBBBÿihhÿihjÿCCCÿLKLÿIHJÿPOQÿjjjÿBBBÿihhÿCCFÿCC`ÿIIdÿFEIÿNNNÿa`bÿ`_`ÿ{z{ÿ{z{ÿzzzÿffhÿII[ÿffrÿTTTÿkkkÿNNNÿ___ÿEDDÿGGJÿjjjÿdghÿFFFÿfffÿAAEÿCCZÿQQ{ÿXWYÿRRRÿ\\^ÿnnnÿmmqÿffrÿSSSÿBCDÿEDDÿjjjÿlnoÿoooÿ___ÿON`ÿlnoÿnopÿsstÿoosÿjjuÿJKLÿKKKÿBCDÿ___ÿ\\\ÿlnoÿIIUÿhklÿklnÿnopÿrrsÿrrsÿqprÿ``dÿEENÿjjsÿXXXÿdghÿA@Bÿdghÿ__bÿedfÿDFGÿA@Bÿ___ÿPPPÿqqvÿmm‚ÿDDTÿSRTÿPOQÿ___ÿijkÿmlnÿjjoÿ[[wÿA@BÿbbbÿPPPÿNNOÿLLLÿ@@@ÿXXXÿBBBÿGGGÿFFFÿFFFÿFFFÿBBCÿbbbÿ__€ÿjjlÿjjlÿmlnÿlklÿlklÿjjoÿjklÿklnÿ\\fÿDCdÿ```ÿdghÿFFFÿjjjÿNNOÿZZZÿIHHÿ`_`ÿcccÿQQnÿtt„ÿVVnÿJJJÿFFFÿTSTÿIHHÿkkkÿMMYÿhklÿlnoÿmmqÿmmqÿMMzÿKKKÿihhÿPPPÿOOOÿNNNÿNNNÿOOOÿLLLÿBBBÿLLLÿEDDÿJJJÿFFFÿCCCÿBBBÿdcdÿqqvÿOOvÿihhÿvvvÿtttÿsssÿRR[ÿoooÿkkkÿDFGÿcclÿBCDÿWWWÿdddÿcccÿ\\\ÿ\\^ÿXXXÿ[[[ÿ^^^ÿ\\\ÿWWWÿ^^^ÿZZ[ÿddgÿjjlÿlklÿlklÿhklÿdddÿ^^^ÿ___ÿbbcÿbbcÿedfÿfffÿnopÿbbbÿdddÿdddÿedfÿffhÿnnnÿstvÿtttÿvvvÿtttÿstvÿsstÿrrsÿrrsÿsstÿqprÿlnoÿsssÿhklÿrrsÿrrsÿqprÿqppÿnopÿqprÿqppÿrrrÿtttÿqprÿhklÿkkkÿdddÿcccÿdddÿgggÿfffÿbbbÿ```ÿkkkÿdddÿgggÿ^^^ÿbbbÿ\\\ÿdddÿbbbÿjjjÿbbcÿbbcÿVVVÿ\\\ÿ___ÿ\[\ÿ\\\ÿ^^^ÿZZZÿ\\\ÿZZZÿ```ÿbbbÿdghÿkkkÿjjjÿkkkÿihhÿfffÿmllÿmllÿnopÿoooÿjjjÿoooÿqprÿmllÿrrrÿqprÿoooÿtttÿtttÿsssÿrrrÿsssÿrrrÿnnnÿa`bÿbbcÿ`_`ÿIIhÿTTTÿ___ÿTTTÿCC`ÿ<<<ÿHGHÿXXXÿ^^_ÿ\\\ÿUTWÿBBOÿAAJÿEENÿBBOÿ>>Iÿgggÿ_`qÿ??NÿIIUÿDDTÿIIXÿII[ÿIIXÿIIXÿDDTÿDDTÿAAJÿmllÿihhÿEENÿGGGÿTSTÿffgÿmlnÿlklÿihjÿIIÿNNOÿdcdÿa`bÿ>>IÿooyÿccxÿjjsÿjjsÿlklÿggjÿQQ^ÿIIXÿPPXÿfffÿa`bÿ@@VÿLKNÿNNNÿ```ÿa`bÿyxzÿ{{{ÿffrÿMMÿKKKÿRRSÿjjlÿIIXÿmm~ÿqqvÿklnÿffmÿ^^`ÿON`ÿccxÿBBCÿdghÿlnoÿAAEÿmmxÿedfÿccfÿghjÿnopÿVVvÿPPsÿccxÿoooÿdghÿDDoÿII_ÿ[[wÿON`ÿnopÿrrrÿstvÿrrsÿZZ~ÿ__vÿtt}ÿBCDÿA@BÿDDTÿBBOÿ\[^ÿrrrÿsstÿrrsÿrrsÿsstÿ``dÿCC`ÿBBBÿFFFÿ``dÿBBOÿMMzÿYYcÿbbdÿmmqÿjjsÿhhyÿIIXÿhklÿGHJÿEDFÿhhyÿQQ\ÿbbcÿffhÿkkkÿklnÿklnÿffuÿmmxÿHHqÿON`ÿMMiÿII_ÿjjjÿMMzÿIIjÿHHqÿPPsÿVVvÿ[[wÿON`ÿMMYÿRR[ÿlklÿklnÿklnÿklnÿlklÿklnÿklnÿhklÿZZ~ÿNNNÿJKLÿccxÿCCuÿoosÿddgÿVVfÿ^_jÿ__€ÿCCIÿdddÿCCCÿII_ÿjjjÿ@@@ÿII_ÿIIdÿEENÿbbdÿoooÿoooÿmmqÿdghÿ\[^ÿjjuÿjjuÿccxÿccxÿffuÿhhyÿmmxÿddoÿedfÿ>>IÿAAEÿffuÿmmxÿooyÿffuÿmmxÿVVfÿnopÿnnnÿihhÿjjjÿwvvÿOOXÿoooÿkkkÿDFGÿffrÿDFGÿXXXÿ\\\ÿbbbÿbbbÿ```ÿ___ÿ\\^ÿ\\\ÿXXXÿXXXÿlnoÿedfÿ^^_ÿlnoÿhghÿdcdÿdcdÿihhÿbbbÿdddÿdghÿ___ÿdddÿdddÿdcdÿ\[^ÿgggÿghjÿghjÿklnÿjjlÿklnÿnopÿmmqÿmmqÿmmqÿmmqÿlklÿklnÿrrsÿsstÿsstÿrrsÿjjlÿqprÿqprÿmllÿoooÿoooÿqppÿkkkÿnnnÿkkkÿlnoÿoooÿoooÿa`bÿedfÿbbcÿedfÿjjjÿqppÿoooÿnnnÿedfÿbbbÿ[[[ÿ\\\ÿ^^^ÿkkkÿ`_`ÿjjjÿcccÿ___ÿWWWÿZZZÿ___ÿXWYÿTTTÿ[[[ÿVVWÿPPPÿXXXÿcccÿdddÿgggÿdghÿhklÿjjjÿjjjÿkkkÿkkkÿjjjÿoooÿmllÿmllÿpopÿoooÿrrsÿsssÿstvÿsssÿsssÿrrsÿtttÿsssÿrrrÿrrsÿnnnÿa`bÿ^^^ÿ^\^ÿIIjÿRRRÿ```ÿQPRÿ::tÿ;:;ÿGGGÿXXXÿ^\^ÿ^\^ÿZZ[ÿ\[\ÿ\[\ÿ^\^ÿ^^_ÿIIjÿCCCÿDDoÿJJSÿHGHÿXXXÿa`bÿbbcÿcccÿbbbÿbbcÿdcdÿ__bÿKKKÿmlnÿEENÿIHHÿTTTÿihhÿnnoÿjjoÿjj€ÿSSSÿVVVÿON`ÿZZ~ÿcclÿlklÿmllÿmlnÿqppÿqppÿrrrÿnnnÿmlnÿ__bÿVVfÿBBBÿ@@TÿHHOÿMLNÿbbbÿdddÿyxzÿttwÿIIÿOOOÿVVWÿDDoÿYYjÿdghÿoooÿqppÿnnnÿnopÿqppÿhklÿijkÿddgÿQQdÿTTTÿEDDÿJJSÿqppÿlnoÿghjÿmmqÿnopÿnopÿjjsÿdddÿdghÿDCVÿ<<<ÿRRRÿ^^^ÿnopÿrrrÿsstÿstvÿtttÿsstÿ__€ÿhklÿHHqÿOOSÿNNNÿdghÿrrsÿrrsÿsstÿsstÿqprÿjj€ÿjjjÿBCDÿAAJÿVVvÿklnÿqqvÿnopÿ___ÿZZZÿhklÿdcdÿklnÿffrÿMMiÿGHJÿ^^`ÿccÿklnÿlklÿklnÿklnÿjklÿlklÿklnÿhklÿklnÿklnÿ__vÿJJJÿhh„ÿLKNÿOOOÿfffÿklnÿjjlÿklnÿklnÿmlnÿklnÿklnÿklnÿklnÿklnÿlnoÿklnÿjjsÿqqvÿdghÿCCZÿBBOÿXXXÿhklÿklnÿklnÿklnÿoosÿjjuÿppƒÿihhÿ___ÿDFGÿJJKÿVVvÿJJJÿ\\^ÿklnÿmmqÿmmqÿmmqÿggjÿihjÿklnÿmmqÿklnÿklnÿmlnÿklnÿklnÿddoÿEDDÿIIÿJJSÿTTTÿijkÿnopÿedfÿrrrÿqppÿjjjÿoooÿxxxÿmllÿjjjÿOOXÿoooÿjjjÿBCDÿcclÿGGGÿXXXÿfffÿhklÿdghÿ```ÿZZZÿ^^^ÿ\\\ÿVVYÿWWWÿfffÿa`bÿnopÿtttÿhklÿlnoÿlnoÿdghÿbbbÿfffÿkkkÿjjjÿoooÿdddÿfffÿedfÿbbbÿdghÿddgÿdghÿ``dÿffhÿqqvÿvvwÿvvwÿvvzÿoosÿvvwÿjjoÿjjoÿlnoÿrrsÿqprÿlnoÿsstÿoosÿklnÿnnnÿnnnÿlnoÿlnoÿoooÿoooÿrrrÿa`bÿbbcÿa`bÿedfÿgggÿedfÿfffÿkkkÿmllÿmllÿdcdÿVVVÿ[[[ÿVVVÿ___ÿjjjÿkkkÿmllÿmllÿcccÿffgÿ[[[ÿ___ÿPPPÿ[[[ÿbbbÿYXZÿXXXÿXXXÿcccÿbbbÿgggÿjjjÿhklÿnnnÿmllÿhklÿnnnÿkkkÿoooÿoooÿoooÿrrrÿqppÿrrrÿrrrÿrrsÿrrrÿrrsÿrrrÿrrrÿqppÿrrrÿqprÿoooÿVVWÿVVVÿVVWÿDDoÿPPPÿcccÿNNOÿ==}ÿ<<<ÿIHHÿXXXÿ^^_ÿ^^^ÿ\[\ÿ\[\ÿ\\\ÿ^^^ÿ^^^ÿIIXÿ```ÿ>>FÿIHJÿGGGÿXXXÿa`bÿbbbÿbbcÿa`bÿbbcÿdcdÿ__bÿNNNÿnnnÿEENÿGGGÿTTTÿihhÿmllÿhhyÿffmÿgggÿLLpÿ__€ÿ``dÿmllÿmllÿmlnÿlklÿoooÿpopÿpopÿnnnÿmllÿjjlÿHHOÿCCCÿ@@TÿGGJÿKKKÿ`_`ÿ```ÿqprÿOOvÿhklÿdddÿ??Nÿ\\fÿjklÿbbcÿ[[[ÿ\\^ÿ[[[ÿijkÿklnÿedfÿfffÿffgÿnopÿooyÿZZ~ÿccxÿnopÿnopÿggjÿnopÿnopÿnopÿoosÿnnnÿGHJÿhhyÿDFGÿTTTÿJKLÿnnnÿnopÿsstÿsstÿsstÿqqvÿtt}ÿBCDÿccxÿVVYÿPPPÿdghÿnopÿrrrÿsstÿsssÿgfÿBCDÿBBBÿjj€ÿMLOÿhklÿsssÿrrsÿrrsÿnopÿbbdÿ\\^ÿbbcÿ__bÿghjÿffhÿQQiÿccxÿmmxÿklnÿjjlÿhklÿklnÿjklÿklnÿklnÿlnoÿklnÿhklÿON`ÿdddÿCCiÿJJLÿOOOÿccfÿklnÿmlnÿijkÿhklÿklnÿmllÿklnÿmllÿklnÿmllÿjklÿklnÿddgÿklnÿRRRÿ__vÿGHJÿUTVÿdghÿhklÿbbdÿklnÿlnoÿlnoÿmmqÿmmxÿjjlÿghjÿfffÿGGOÿKKKÿ\[\ÿklnÿoooÿnopÿjklÿjjlÿklnÿmlnÿmlnÿmlnÿmlnÿklnÿijkÿ``dÿjjsÿdddÿjj€ÿMLRÿRRSÿhklÿsstÿrrrÿmllÿtttÿlnoÿnopÿtttÿrrsÿqppÿJJSÿnnnÿbbbÿA@Bÿ_`qÿCCCÿSSSÿbbbÿdcdÿdddÿcccÿ___ÿ___ÿ```ÿ\\\ÿ[[[ÿrrrÿdghÿlnoÿrrsÿhklÿjjjÿjjjÿdghÿ`_`ÿ```ÿhklÿdghÿnnnÿklnÿjjlÿffhÿ```ÿ\[^ÿdcdÿbbdÿ\\^ÿXWYÿRRSÿQPRÿFEIÿGGJÿAAEÿCCFÿAAEÿBCDÿEDFÿFFFÿEDFÿHGHÿZZ\ÿnopÿsssÿsssÿrrrÿrrrÿvvvÿklnÿmllÿedfÿgggÿa`bÿijkÿjjjÿkjkÿdddÿihhÿkjkÿmllÿihhÿhghÿcccÿffgÿ___ÿ`_`ÿgggÿnnnÿsstÿqprÿghjÿfffÿ^^^ÿbbbÿVVWÿ\\\ÿdcdÿ^^`ÿdddÿmllÿdghÿdghÿmllÿijkÿnopÿhklÿoooÿmllÿnnnÿnnnÿjjjÿnnnÿrrrÿnnoÿqprÿqppÿsstÿrrrÿrrsÿsssÿrrrÿrrrÿrrrÿmllÿqppÿoooÿbbcÿbbbÿ___ÿOOvÿFFGÿfffÿGGGÿQQ‚ÿ;:;ÿFFFÿVVVÿ\[^ÿ^\^ÿ\\\ÿ\[\ÿ^^_ÿ___ÿ^\^ÿII[ÿbbbÿAAJÿJJLÿIHHÿXXXÿ`_`ÿbbcÿdddÿa`bÿ``dÿa`bÿ``dÿRRRÿmlnÿEENÿHGHÿTTTÿgggÿmlnÿccÿ[[[ÿA@BÿAAJÿYX[ÿihhÿnnnÿlklÿmllÿmllÿnnoÿpopÿnnoÿmllÿmlnÿjjlÿMMYÿFFFÿ@@VÿHHOÿJKLÿ```ÿihjÿoosÿtt„ÿCCCÿ__vÿAAJÿ\[\ÿqppÿqppÿnnnÿtttÿnnnÿ`_`ÿVVWÿVVWÿYX[ÿbbcÿnopÿlnoÿnopÿnopÿmmqÿnopÿffhÿklnÿqprÿnopÿoosÿlnoÿJKLÿccxÿJKLÿXWYÿLLLÿnnnÿnopÿrrsÿrrrÿrrrÿsstÿppÿGHJÿ__vÿUTWÿOOOÿfffÿrrrÿrrrÿsstÿnopÿAAJÿjjjÿMMYÿ[[pÿ^^_ÿlnoÿlnoÿnopÿnopÿnopÿklnÿ^^`ÿijkÿklnÿlnoÿlnoÿjjlÿ\\\ÿdghÿklnÿghjÿhklÿhklÿhklÿhklÿijkÿhklÿhklÿhklÿIIXÿdddÿCC`ÿJJKÿNNOÿedfÿklnÿklnÿhklÿijkÿhklÿlnoÿhklÿjjoÿhklÿklnÿhklÿjjlÿffrÿGGGÿGGGÿmm~ÿQPRÿJJJÿZZ[ÿccfÿYXZÿjjlÿmmqÿklnÿlnoÿklnÿffuÿMLNÿJJKÿGGOÿJJJÿ\[^ÿmllÿlnoÿlnoÿijkÿghjÿmlnÿklnÿklnÿklnÿklnÿklnÿedfÿddgÿ^^lÿVVVÿEEÿQPRÿVVVÿhklÿrrrÿqppÿklnÿsstÿqprÿqprÿtttÿwwwÿsstÿIIUÿfffÿZZ[ÿBCDÿ[[pÿEDDÿRRRÿ\\\ÿ[[[ÿZZZÿbbbÿ^^`ÿ\\^ÿ___ÿbbbÿ\[^ÿ^^`ÿVVYÿ\\^ÿffhÿdghÿijkÿnopÿhklÿdghÿddgÿijkÿijkÿnopÿoosÿccfÿXWYÿSRTÿBCDÿBCDÿBCDÿCCCÿCCCÿBCDÿBCDÿBCDÿAAEÿBBCÿBBCÿEDFÿCCFÿBCDÿBCDÿCCFÿCCIÿBCDÿGGJÿffhÿrrsÿihjÿijkÿghjÿffhÿijkÿmllÿ^^^ÿlklÿsstÿkkkÿkkkÿmllÿmllÿmllÿkjkÿihjÿnnnÿihhÿghjÿhghÿijkÿgggÿrrrÿqppÿrrrÿmlnÿffgÿ___ÿ___ÿa`bÿccfÿdcdÿdcdÿddgÿffgÿbbdÿghjÿFEIÿHGHÿ^^`ÿlnoÿmllÿjjjÿjjjÿnnnÿmllÿqppÿnopÿnnoÿmllÿnopÿmlnÿnnoÿqprÿqprÿnnnÿmlnÿpopÿnnnÿoooÿkjkÿedfÿbbcÿbbcÿ__vÿEDDÿgggÿCCCÿ__€ÿ<<<ÿGGGÿVVWÿZZ[ÿYXZÿXWYÿYXZÿZZ[ÿZZZÿ\\\ÿMMYÿdddÿ>>IÿIHJÿGGGÿYXZÿbbcÿbbdÿbbcÿbbbÿa`bÿbbcÿ^_jÿWWWÿmllÿIIXÿJJJÿVVVÿgggÿffmÿJJSÿ\[\ÿ__€ÿONQÿ```ÿnnnÿpopÿmllÿmllÿnnnÿqppÿoooÿjjjÿcccÿZZZÿ\\fÿON`ÿFFFÿCCZÿGGJÿJJJÿ[[[ÿmmqÿ``dÿXXXÿXXXÿQQ‚ÿLKNÿTTTÿ```ÿa`bÿ\[\ÿ___ÿ___ÿ`_`ÿ```ÿ\\^ÿ\\\ÿWWWÿSSSÿZZ[ÿZZZÿ\[^ÿ___ÿffgÿdghÿijkÿnopÿnopÿoosÿlnoÿRRRÿ__vÿKKKÿXXXÿdghÿrrrÿnopÿsssÿsssÿrrsÿsstÿtt}ÿBBBÿhhyÿVVYÿOOOÿdddÿrrrÿtttÿsstÿhhyÿKKKÿEDFÿAAJÿGHJÿVVVÿ___ÿ\\\ÿ[[[ÿ\\^ÿ\[\ÿ^^_ÿ__bÿVVWÿ\[\ÿ\\^ÿ^^_ÿZZ[ÿ\\\ÿXWYÿSSVÿXWYÿ\\^ÿJJJÿGHJÿccfÿdghÿlnoÿffhÿbbcÿGGOÿfffÿCC`ÿJKLÿOOOÿdddÿijkÿijkÿdghÿlnoÿdghÿjjlÿijkÿghjÿklnÿhklÿdghÿhklÿcclÿBBBÿa`bÿppƒÿ[[nÿOOOÿJJKÿSSSÿJKLÿcccÿddgÿdghÿdghÿghjÿggjÿGGGÿQPRÿII[ÿJJJÿ\\^ÿlklÿmmqÿlnoÿgggÿijkÿklnÿlnoÿklnÿklnÿklnÿffhÿffgÿjjsÿON`ÿJJJÿCC`ÿOOSÿWWWÿhklÿqprÿsssÿqppÿnopÿrrrÿsssÿvvwÿtttÿklnÿON`ÿ```ÿTTTÿFFFÿMMiÿCCCÿRRRÿhklÿa`bÿdcdÿbbbÿbbbÿ\\^ÿ___ÿ__bÿSSVÿOOOÿJJKÿOOOÿOOOÿRRRÿYX[ÿedfÿklnÿrrsÿjjlÿ\[^ÿMLOÿNNOÿDFGÿEDFÿDFGÿBCDÿ<<<ÿBBCÿBCDÿDFGÿBCDÿBCDÿBCDÿEDFÿEDFÿBCDÿBBCÿCCFÿEDDÿEDFÿCCCÿBCDÿEDFÿBBCÿCCFÿDFGÿYXZÿlnoÿmlnÿbbcÿnopÿnnoÿmlnÿYXZÿhghÿihjÿcccÿkjkÿjjjÿlklÿkjkÿihhÿffgÿddgÿddgÿmlnÿlklÿlklÿgggÿlklÿlklÿedfÿa`bÿ\\^ÿa`bÿbbdÿ``dÿ^^`ÿccfÿddgÿbbdÿa`bÿdcdÿZZ[ÿGGGÿGGGÿIHHÿrrrÿmllÿhklÿmllÿmllÿoooÿoooÿnopÿnnoÿnnnÿmlnÿnnoÿklnÿnnoÿlklÿmlnÿdghÿgggÿmlnÿkkkÿffgÿbbcÿcccÿffgÿccxÿCCCÿihhÿBBCÿgfÿ>>AÿJJJÿ^\^ÿbbcÿa`bÿ^^^ÿ___ÿ\\\ÿXWYÿVVVÿII[ÿdddÿ>>FÿJJLÿJJJÿZZZÿ```ÿcccÿbbcÿa`bÿdcdÿbbbÿ^_jÿZZZÿjjjÿON`ÿTTTÿ^\^ÿihjÿhhyÿcccÿ^\^ÿhhyÿNNNÿbbbÿoooÿmllÿnnnÿmllÿnnoÿqppÿkjkÿ^^_ÿOOOÿJJKÿMLRÿQQdÿFFFÿ@@VÿCCIÿEDDÿPOQÿklnÿtt}ÿqppÿqprÿooyÿJKLÿMLRÿPPXÿSRTÿPPXÿQPRÿOOSÿSRTÿOOSÿPPXÿOOSÿOOSÿOOSÿCCIÿGGOÿGGJÿGHJÿZZ[ÿghjÿghjÿnopÿqprÿqqvÿmllÿVVVÿZZ~ÿGHJÿZZZÿWWWÿstvÿrrrÿlnoÿklnÿnopÿsssÿmm~ÿ@@@ÿtt}ÿVVYÿDFGÿZZZÿsssÿstvÿsssÿRR`ÿXXXÿQPRÿCC}ÿCCIÿEENÿJJSÿHHOÿGHJÿGHJÿGHJÿJJLÿJJLÿEDFÿGGJÿIIUÿAAJÿCCIÿJKLÿDFGÿ@@@ÿEDFÿZZ\ÿBBCÿBBBÿddgÿVVYÿYX[ÿWWWÿNNOÿEENÿedfÿCCZÿBBCÿBCDÿPPPÿedfÿNNOÿUTVÿbbdÿUTWÿNNOÿ^^`ÿVVVÿSSSÿWWWÿ^^`ÿghjÿONQÿCC`ÿgggÿGGJÿ__€ÿQQ{ÿJJLÿGGJÿBCDÿMLNÿQPRÿTSTÿTSTÿTSTÿ\[^ÿBBBÿijkÿ__vÿDFGÿ\[\ÿklnÿlnoÿjjjÿedfÿlklÿmmqÿmlnÿlnoÿnnoÿklnÿddgÿlnoÿoosÿHHOÿBCDÿ??NÿMLRÿVVVÿklnÿsssÿsssÿtttÿstvÿrrrÿrrsÿffgÿedfÿghjÿHHyÿZZZÿNNNÿMLOÿCCuÿ??@ÿPOQÿ\\^ÿMLNÿGHJÿBBBÿ@@@ÿ@@@ÿ<<<ÿ<<<ÿBBBÿ@@@ÿBCDÿBCDÿBCDÿBCDÿBCDÿBCDÿDFGÿNNOÿDFGÿEDDÿDFGÿBCDÿDFGÿCCFÿCCIÿAAEÿ<<<ÿBCDÿBCDÿEDDÿEDDÿEDDÿEDDÿDFGÿBCDÿBBCÿBCDÿCCCÿCCFÿCCFÿBCDÿBCDÿCCFÿFFFÿBCDÿCCFÿEDFÿQPRÿoooÿlnoÿlnoÿpopÿlklÿZZ\ÿedfÿddgÿggjÿijkÿlklÿjklÿihjÿ``dÿmlnÿihjÿmmqÿrrsÿmlnÿmlnÿjjlÿihjÿhghÿddgÿdcdÿccfÿbbdÿbbcÿedfÿedfÿ``dÿdcdÿ``dÿccfÿihhÿ```ÿGGGÿKKKÿOOOÿoooÿnopÿqppÿoooÿnopÿrrrÿqppÿqprÿqprÿmllÿlnoÿoooÿpopÿnnoÿnnoÿhghÿihjÿhghÿijkÿihhÿdddÿfffÿdcdÿdddÿ__€ÿFFFÿihhÿEDDÿccÿ>=>ÿJJJÿ\[\ÿa`bÿcccÿbbcÿcccÿcccÿdcdÿdcdÿII[ÿfffÿ>>FÿGGJÿFFFÿXXXÿdcdÿbbbÿ```ÿbbcÿdddÿcccÿcclÿVVVÿ[[[ÿHHyÿbbdÿdcdÿjjjÿON`ÿYXZÿMLRÿPPsÿLLLÿbbbÿoooÿnnnÿnnoÿmlnÿ_`qÿ__€ÿMMYÿHHOÿEENÿAAJÿ_`qÿ>>FÿZZZÿ>>IÿHHqÿII_ÿRRSÿlnoÿQQ^ÿCCCÿAAJÿ>>IÿEEÿEEÿEEÿEEÿ??ƒÿ??ƒÿ??ƒÿ??ƒÿ==}ÿ==}ÿ==}ÿ??ƒÿCCuÿ==}ÿ==}ÿppÿJKLÿZZZÿdghÿghjÿnopÿqprÿoosÿihhÿ___ÿMMzÿGHJÿXWYÿdghÿbbbÿvvvÿstvÿstvÿsstÿnopÿZZ~ÿDFGÿhhyÿHHOÿKKKÿ```ÿsstÿsstÿsssÿPPsÿXXXÿII[ÿCCZÿ@@Tÿ??NÿAAJÿ>>Iÿ@@TÿIIdÿ==}ÿEEÿ==}ÿCC`ÿ??Nÿ>>Fÿ>>IÿDCVÿCCZÿZZ‚ÿGGJÿTSTÿYX[ÿFEIÿJKLÿhklÿXWYÿNNOÿffhÿJJLÿDDTÿfffÿ@@Vÿ??@ÿEDFÿTSTÿccfÿPOQÿ\[\ÿddgÿJKLÿ^^_ÿ^^_ÿNNOÿYX[ÿYXZÿUTWÿffhÿQPRÿII_ÿGGOÿDFGÿNNNÿ__€ÿhh„ÿAAJÿVVvÿ__vÿ[[pÿ__vÿ__vÿVVvÿ@@TÿgggÿLLLÿ_`qÿGGGÿZZ\ÿggjÿccfÿbbdÿghjÿnnoÿlnoÿlnoÿmlnÿlnoÿhghÿrrsÿoooÿqqvÿAAEÿCCCÿAAJÿONQÿWWWÿklnÿsssÿsstÿstvÿffgÿrrsÿqppÿdghÿedfÿmmqÿVVÿTTTÿIHHÿSSVÿ<=>ÿ>>AÿBCDÿ<<<ÿ@@@ÿA@Bÿ>=>ÿA@Bÿ@@@ÿBBBÿBCDÿBCDÿBCDÿBCDÿBCDÿBCDÿEDDÿBCDÿEDFÿBCDÿBCDÿEDFÿCCIÿEDFÿCCIÿDFGÿ>=>ÿCCFÿBCDÿEDDÿEDDÿCCCÿBCDÿEDFÿBCDÿAAEÿAAEÿCCCÿBCDÿBCDÿBCDÿCCFÿBCDÿBCDÿBCDÿEDFÿBCDÿEDFÿJKLÿqprÿffgÿUTWÿ``dÿoosÿoosÿjjlÿlklÿlklÿccfÿjjoÿjjoÿmmqÿffhÿmmqÿggjÿlklÿlklÿcclÿggjÿjjlÿjjlÿihjÿihjÿddgÿdghÿdghÿffgÿccfÿdghÿddgÿccfÿdghÿgggÿ\\\ÿ\\\ÿVVVÿsssÿmllÿqppÿoooÿrrrÿqppÿqppÿoooÿqprÿstvÿlklÿa`bÿVVWÿNNOÿMLNÿMLNÿ^^`ÿoooÿedfÿffgÿgggÿhghÿffgÿedfÿdcdÿVVvÿKKKÿgggÿLKLÿMMÿ>=>ÿLKLÿ^^^ÿ___ÿedfÿfffÿedfÿedfÿfffÿffgÿMMYÿgggÿ>>IÿLKNÿIHHÿVVVÿ[[[ÿa`bÿbbcÿdddÿbbcÿbbcÿ``dÿEENÿihjÿMMYÿgggÿgggÿkkkÿMMYÿFFFÿAAJÿMMYÿLLLÿcccÿmllÿnnnÿoooÿnnnÿjj€ÿdddÿnnnÿXXXÿXXXÿcccÿRRSÿ[[[ÿkkkÿ@@@ÿ??@ÿVVvÿ\\\ÿstvÿRR[ÿEDDÿqppÿqppÿ^^^ÿ^^^ÿ^^^ÿ^^^ÿ\\\ÿ\\\ÿ___ÿbbbÿcccÿdddÿgggÿfffÿihhÿoooÿCCCÿ99BÿCCIÿVVWÿghjÿdghÿijkÿghjÿffmÿbbbÿcccÿHHqÿGHJÿSSSÿdghÿNNOÿhklÿsssÿstvÿvvvÿtttÿVVvÿDFGÿccxÿPPXÿIHHÿdghÿrrrÿsstÿtttÿppÿ\\\ÿ___ÿdddÿfffÿfffÿghjÿjjjÿjjjÿihhÿdddÿ`_`ÿ```ÿcccÿghjÿdghÿdddÿjjjÿDFGÿ??NÿJJLÿUTWÿddgÿklnÿjjlÿklnÿdcdÿbbdÿbbdÿYX[ÿAAJÿdghÿCCZÿHGHÿDFGÿUTVÿdghÿbbdÿZZ\ÿklnÿ``dÿdcdÿjjlÿ``dÿijkÿjjlÿdcdÿklnÿ__bÿggjÿooyÿLLpÿfffÿ`_`ÿlnoÿNNNÿCCIÿMMYÿON`ÿVVfÿ```ÿjjjÿXXXÿjjjÿFFFÿCCuÿIHHÿZZZÿlklÿklnÿmlnÿnnoÿmlnÿlnoÿnopÿlnoÿmmqÿdghÿtttÿrrrÿttwÿAAEÿJJJÿ??NÿLKNÿTSTÿlnoÿstvÿrrrÿstvÿdddÿrrrÿvvvÿqprÿdghÿEDFÿIIjÿJJJÿ??@ÿXWYÿ??Nÿ779ÿ;:;ÿ>=>ÿ<<<ÿ>>AÿA@BÿBBBÿBBBÿBBBÿBCDÿBBBÿBBBÿBCDÿBCDÿDFGÿBBCÿBCDÿBCDÿEDDÿBCDÿDFGÿBCDÿBCDÿBCDÿCCIÿCCIÿEDFÿEDFÿA@BÿBBCÿBCDÿEDDÿCCCÿBCDÿBCDÿBBCÿBBCÿCCCÿBBCÿCCCÿBCDÿCCCÿAAEÿCCFÿCCFÿCCFÿBCDÿBCDÿDFGÿEDFÿEDFÿEDDÿEDDÿDFGÿFEIÿFEIÿJJLÿLKNÿPPXÿPOQÿMLOÿSRTÿOOSÿVVYÿJKLÿQPRÿSSVÿZZ\ÿZZ\ÿUTWÿ__bÿ\[^ÿihjÿUTWÿ``dÿbbdÿddgÿddgÿffgÿghjÿjklÿjjlÿghjÿklnÿqqvÿJKLÿlnoÿvvwÿrrsÿsssÿqppÿmllÿrrrÿtttÿsssÿtttÿtttÿJJJÿFFFÿIHHÿGHJÿGHJÿHGHÿHGHÿHGHÿ``dÿccfÿjjjÿfffÿedfÿffgÿgggÿffgÿQQ{ÿOOOÿcccÿQPRÿ==}ÿ>=>ÿJJJÿ^^_ÿcccÿccfÿffgÿfffÿdcdÿffgÿhghÿIIXÿgggÿAAEÿONQÿLLLÿ^\^ÿ\[\ÿ`_`ÿdcdÿgggÿgggÿa`bÿccfÿggjÿggjÿggjÿijkÿkkkÿmlnÿON`ÿ\\\ÿBBOÿOOSÿNNNÿcccÿmlnÿnnnÿnnnÿnnnÿmmxÿ^^^ÿbbcÿPPPÿNNNÿPPPÿkkkÿmlnÿXXXÿhghÿHHqÿccnÿbbcÿtttÿVVfÿVVVÿhhyÿIIXÿIIjÿIIXÿOOXÿON`ÿMMYÿQQ^ÿMMYÿQQ^ÿMMYÿMMYÿJJSÿJJSÿGGOÿnopÿnnnÿII_ÿRRSÿffgÿghjÿ\\^ÿ``dÿffhÿjjsÿbbbÿfffÿIIhÿGGGÿPPPÿbbdÿ\[^ÿ^^^ÿhklÿnopÿsstÿtttÿgfÿBCDÿqq|ÿGGOÿPPPÿdghÿstvÿsstÿstvÿtt„ÿBCDÿffuÿAAEÿEENÿCCIÿGGOÿEENÿEENÿGGJÿEENÿHHOÿGGOÿEENÿEENÿCCIÿCCIÿffmÿjjjÿBBOÿONQÿ^^_ÿihjÿijkÿggjÿjklÿhklÿdghÿdghÿddgÿEENÿdghÿDCdÿGGOÿBBCÿJKLÿZZ\ÿdghÿijkÿmlnÿmmqÿlklÿlnoÿlnoÿmlnÿmlnÿmmqÿlnoÿlnoÿklnÿnopÿjklÿMMYÿMMYÿjjjÿBCDÿdddÿ___ÿa`bÿjjjÿNNNÿON`ÿIIjÿXXXÿJJKÿIIdÿIHHÿ\[\ÿlklÿlnoÿlnoÿnnoÿklnÿmlnÿoooÿnnnÿlnoÿdcdÿtttÿvvvÿttwÿCCFÿNNNÿCCZÿGGJÿPOQÿnnnÿsstÿrrrÿsssÿlnoÿrrrÿlnoÿJKLÿBBBÿ;:;ÿCCiÿGGGÿ>=>ÿZZZÿ99Bÿ779ÿ<<<ÿ>>Aÿ<<<ÿ>=>ÿ;:;ÿ@@@ÿ@@@ÿBBBÿBBBÿ>=>ÿ>=>ÿBCDÿ>=>ÿ@@@ÿBCDÿEDDÿEDDÿEDDÿBCDÿEDDÿDFGÿEDFÿEDDÿBCDÿBCDÿBCDÿHGHÿA@BÿEDFÿBBCÿBBCÿEDDÿBBCÿBBCÿBCDÿCCCÿBBCÿCCCÿAAEÿCCFÿCCCÿBBCÿBCDÿAAEÿBCDÿCCCÿAAEÿCCFÿEDDÿCCCÿBCDÿBBBÿEDFÿEDFÿCCFÿBBBÿBBBÿCCFÿBBCÿEDFÿAAEÿDFGÿEDFÿDFGÿEDFÿEDFÿFEIÿEDFÿEDFÿFEIÿCCFÿFFGÿDFGÿEDFÿDFGÿEDFÿDFGÿEDFÿEDDÿFFFÿDFGÿDFGÿDFGÿFEIÿHGHÿHGHÿHGHÿGGJÿJKLÿcccÿrrrÿsssÿtttÿsssÿtttÿ`_`ÿJJJÿGGGÿHGHÿHGHÿHGHÿGHJÿHGHÿIHHÿPOQÿdghÿjjlÿihhÿffgÿihjÿjjjÿgggÿQQ{ÿOOOÿcccÿVVVÿCC`ÿ>=>ÿKKKÿ`_`ÿffgÿfffÿedfÿffgÿhghÿhghÿihjÿOOXÿihhÿ>>FÿONQÿNNNÿbbbÿihjÿdcdÿbbcÿhghÿkkkÿhghÿjjjÿggjÿihjÿihjÿkjkÿmllÿmlnÿQQdÿcccÿBBOÿOOSÿNNNÿcccÿnnnÿoooÿnnnÿmllÿmllÿmmqÿjjoÿjjoÿjjsÿmmqÿjjoÿjjlÿjjoÿbbdÿ\\fÿdcdÿedfÿqqvÿ``dÿqppÿQPRÿIIUÿYXZÿPPPÿ```ÿrrrÿxxxÿxxxÿxwxÿxxxÿxxxÿxxxÿxwxÿvvwÿVUaÿjjjÿhklÿccxÿ\\^ÿqppÿwwwÿvvwÿvvwÿstvÿjjoÿbbbÿbbbÿON`ÿIHHÿGHJÿ[[[ÿghjÿffhÿhklÿrrrÿnopÿrrrÿppÿ@@@ÿqq|ÿSRTÿSSSÿhklÿrrrÿtttÿtttÿmmxÿVVVÿA@BÿGGOÿVVVÿNNOÿ\\\ÿhklÿqprÿsssÿrrsÿsssÿsstÿlnoÿlnoÿmmqÿOOXÿijkÿ\[\ÿ_`qÿXWYÿihhÿkkkÿjjlÿlnoÿlnoÿklnÿhklÿhklÿhklÿHHOÿhklÿON`ÿ>>IÿCCFÿGHJÿLLLÿYXZÿffgÿjklÿklnÿoooÿklnÿklnÿklnÿhklÿklnÿoosÿmmqÿmlnÿlnoÿmmqÿklnÿmmqÿffgÿ^^`ÿJJSÿ>>IÿQQdÿQQ{ÿjjoÿcclÿ__bÿmllÿNNOÿ@@mÿGHJÿ\\^ÿjklÿlnoÿlnoÿoooÿmlnÿlnoÿnnoÿnnoÿoooÿfffÿtstÿvvwÿttwÿCCIÿNNOÿCCZÿFEIÿXWYÿlnoÿsssÿsstÿsstÿstvÿjjlÿGHJÿBCDÿBBCÿ@@@ÿCCiÿIHHÿ>=>ÿXWYÿ99Bÿ779ÿ;:;ÿ??@ÿBBCÿ;:;ÿ;:;ÿ<<<ÿ<<<ÿ>=>ÿA@Bÿ<<<ÿ;:;ÿBCDÿ>=>ÿ<<<ÿBCDÿEDFÿEDDÿBCDÿCCCÿBBCÿBCDÿBCDÿBCDÿDFGÿEDFÿDFGÿBCDÿ??@ÿBBCÿAAEÿCCCÿAAEÿBBBÿDCDÿCCCÿDCDÿCCCÿBBCÿBBCÿBBCÿCCCÿEDFÿDCDÿEDFÿBCDÿBCDÿBCDÿBCDÿBCDÿBCDÿBCDÿBBBÿEDDÿEDFÿEDDÿBCDÿBBCÿEDFÿCCCÿCCCÿCCCÿDFGÿEDFÿDFGÿNNOÿHGHÿEDFÿBCDÿDFGÿEDFÿEDFÿDFGÿDFGÿJJJÿDFGÿDFGÿDFGÿDFGÿGGGÿDFGÿDFGÿDFGÿDFGÿDFGÿFEIÿHGHÿFEIÿGGJÿGHJÿIHHÿfffÿsssÿsssÿqppÿtttÿNNOÿIHHÿHGHÿHGHÿIHHÿHGHÿHGHÿIHJÿIHHÿLKNÿlklÿihhÿihhÿdddÿgggÿggjÿihjÿVVvÿOOOÿbbbÿ\\\ÿ@@Vÿ>>AÿKKKÿa`bÿffgÿedfÿfffÿffgÿihjÿjjlÿlklÿMLRÿjjjÿAAEÿONQÿNNNÿedfÿkkkÿjjjÿdcdÿkjkÿkkkÿkkkÿlklÿkjkÿkjkÿjjlÿmlnÿoooÿoooÿRR`ÿihhÿ>>FÿSRTÿNNNÿcccÿoooÿoooÿpopÿnnnÿkjkÿmllÿoooÿoooÿmlnÿnnoÿmllÿkjkÿijkÿdcdÿ`_`ÿdddÿffgÿvvvÿttwÿqqvÿEDDÿAAJÿYYcÿTSTÿPPPÿ```ÿoooÿvvvÿwwwÿxxxÿxwxÿxwxÿvvwÿqqvÿppƒÿgggÿ[[pÿMMiÿjjjÿstvÿvvwÿvvwÿwwwÿvvwÿttwÿdghÿbbbÿ>>IÿCCIÿ??@ÿDFGÿ^^^ÿbbbÿnopÿ__bÿWWWÿZZZÿffuÿIHHÿqq|ÿOOSÿZZZÿklnÿsstÿsssÿsssÿlnoÿQQ\ÿJKLÿCCZÿVVnÿRRRÿPOQÿ^^^ÿhklÿrrrÿsssÿsstÿsssÿnopÿijkÿffmÿDDoÿghjÿAAJÿJJLÿedfÿklnÿklnÿqprÿnopÿklnÿlnoÿhklÿnopÿhklÿON`ÿdddÿEDDÿMMYÿ>>FÿONQÿNNOÿKKKÿUTVÿbbcÿhklÿklnÿklnÿkkkÿdcdÿ^^^ÿffgÿmlnÿnnoÿlnoÿlnoÿlnoÿlnoÿhklÿdghÿdghÿghjÿGHJÿccfÿffhÿhklÿijkÿcclÿklnÿRRRÿCCuÿNNNÿ``dÿlklÿlnoÿnnnÿmmqÿlnoÿnnnÿoosÿnnoÿmlnÿihhÿtttÿvvwÿttwÿAAEÿPOQÿCC`ÿA@BÿTSTÿklnÿqqvÿqqvÿ``dÿGGJÿ??@ÿBCDÿEDDÿBBBÿBCDÿDDoÿGGGÿ<<<ÿYXZÿ>>Iÿ779ÿ<<<ÿA@BÿBBCÿ;:;ÿ>=>ÿ>=>ÿ;:;ÿ779ÿ??@ÿ>=>ÿ<<<ÿA@Bÿ>=>ÿ>=>ÿBCDÿBCDÿDFGÿBCDÿBCDÿBCDÿDFGÿEDFÿEDFÿBCDÿEDDÿEDDÿDFGÿ@@@ÿ@@@ÿBCDÿBBCÿBBCÿCCCÿDCDÿCCCÿDCDÿEDDÿDCDÿCCCÿBBCÿDCDÿDCDÿDCDÿEDFÿFFFÿEDDÿEDFÿCCCÿBBCÿAAEÿBCDÿEDDÿBCDÿEDFÿAAEÿBBCÿBBBÿCCCÿBCDÿBBCÿCCCÿDFGÿEDFÿEDDÿDFGÿDFGÿHGHÿGGGÿDFGÿDFGÿDFGÿDFGÿDFGÿGGGÿGGGÿHGHÿDFGÿDFGÿDFGÿDFGÿDFGÿDFGÿGGGÿDFGÿFEIÿEDFÿDFGÿHGHÿHGHÿKKKÿRRRÿsstÿsstÿrrrÿtttÿJKLÿIHJÿIHHÿGHJÿIHHÿIHHÿHGHÿIHHÿJJJÿIHHÿmlnÿffgÿcccÿ`_`ÿmllÿjjjÿihhÿVVÿOOOÿ```ÿ`_`ÿ??Nÿ>>AÿKKKÿa`bÿffgÿffgÿgggÿhghÿihhÿlklÿlklÿMLRÿjjjÿAAJÿNNOÿNNNÿedfÿoooÿnnnÿhghÿihjÿkkkÿmlnÿmlnÿnnnÿlklÿmllÿoooÿoooÿpopÿMLRÿkjkÿ>>FÿSSVÿLLLÿ___ÿoooÿsssÿrrrÿoooÿmllÿoooÿrrrÿqppÿnnnÿnnnÿkkkÿkjkÿkjkÿdghÿa`bÿedfÿffhÿstvÿxxxÿYYjÿjjjÿlnoÿIIdÿYYcÿTTTÿPOQÿZZZÿdddÿhklÿlnoÿnopÿnopÿdddÿZZ‚ÿKKKÿLLLÿDDTÿfffÿsstÿwwwÿvvwÿxwxÿwwwÿvvwÿstvÿ\\\ÿLLLÿJJLÿCC}ÿIIdÿRRRÿPPPÿSSSÿ[[[ÿijkÿhklÿghjÿqq|ÿJJJÿjj€ÿOOSÿdddÿnopÿsssÿtttÿsstÿstvÿVUaÿihhÿSSVÿ>>IÿUTWÿRRRÿNNNÿWWWÿ```ÿdghÿhklÿmllÿijkÿ\\^ÿCCIÿOOOÿNNOÿccÿbbcÿjklÿklnÿmmqÿmmqÿlnoÿlnoÿnopÿlnoÿccfÿ\\^ÿHHqÿ```ÿCCIÿXWYÿHGHÿ??NÿOOvÿVVYÿJKLÿRRRÿ\[^ÿbbcÿccfÿYX[ÿQPRÿPOQÿa`bÿklnÿlnoÿoooÿlnoÿmmqÿlnoÿccfÿVVWÿUTVÿQPRÿXWYÿ`_`ÿedfÿffgÿddgÿON`ÿQPRÿCCFÿccrÿXXXÿihjÿnnoÿlnoÿlnoÿklnÿnnoÿnopÿlnoÿmmqÿmmqÿnnnÿsssÿutvÿttwÿEENÿRRSÿIIjÿFEIÿEDDÿlnoÿ^^_ÿBCDÿBBBÿA@Bÿ@@@ÿ??@ÿBCDÿBCDÿBCDÿMMiÿFFFÿ<<<ÿ^^^ÿ99Bÿ779ÿ>=>ÿAAEÿEDDÿBBCÿBCDÿA@Bÿ>=>ÿA@Bÿ;:;ÿ??@ÿBBBÿBBBÿBCDÿEDDÿBCDÿBCDÿEDFÿEDDÿEDDÿBCDÿBCDÿEDDÿBCDÿEDFÿBCDÿBCDÿEDFÿEDFÿ<<<ÿAAEÿCCCÿBBBÿDCDÿDCDÿCCFÿBBCÿDCDÿDCDÿDCDÿEDDÿEDDÿEDDÿEDFÿEDFÿEDFÿEDFÿBCDÿBCDÿBCDÿBCDÿBCDÿEDFÿCCCÿBBCÿBCDÿBBCÿBBBÿA@BÿEDDÿAAEÿBCDÿDFGÿDFGÿEDFÿHGHÿHGHÿDFGÿGGGÿHGHÿDFGÿEDDÿDFGÿDFGÿHGHÿDFGÿGGJÿDFGÿDFGÿGHJÿDFGÿGGGÿDFGÿDFGÿDFGÿDFGÿEDDÿDFGÿDFGÿDFGÿGHJÿGHJÿrrrÿstvÿstvÿvvvÿMLNÿGHJÿIHHÿGGGÿFEIÿHGHÿIHHÿGGGÿHGHÿIHJÿrrsÿmlnÿgggÿkkkÿmlnÿkjkÿkjkÿ[[wÿOOOÿ___ÿdcdÿ>>Fÿ>>FÿLKLÿcccÿhghÿihhÿihjÿihjÿihjÿkkkÿmllÿMMYÿihhÿ>>IÿNNOÿOOOÿbbcÿoooÿnnoÿmllÿhghÿmllÿoooÿmmqÿoooÿnnnÿpopÿqppÿrrrÿrrsÿPPXÿihhÿBBOÿVVvÿLLLÿXXXÿnnnÿsssÿsssÿqprÿpopÿrrrÿrrsÿoooÿoooÿnnnÿkjkÿihjÿkjkÿhghÿbbcÿedfÿhghÿrrsÿwwwÿoosÿjjuÿbbcÿffmÿEEÿPPXÿZZ\ÿPPPÿPPPÿSSSÿTTTÿSSVÿLKNÿAAEÿdddÿJJJÿAAJÿ^^lÿsstÿxwxÿxwxÿwwwÿxwxÿxwxÿooyÿttwÿEDDÿjjjÿRRRÿMMYÿMMÿYYcÿXWYÿPPPÿPPPÿSSSÿRRRÿMMzÿVVVÿDFGÿ>>Iÿ\\^ÿnopÿrrrÿrrrÿsstÿtttÿvvvÿklnÿVVnÿghjÿFEIÿ>>IÿQQiÿYX[ÿPPPÿNNNÿQPRÿSSSÿVVYÿ^_jÿvvÿOOOÿmllÿccÿVVfÿdghÿjklÿlnoÿnopÿnopÿijkÿ\\^ÿXWYÿ\[^ÿijkÿVVYÿAAJÿ??@ÿvvÿ>>FÿqppÿUTVÿIIjÿVVÿUTWÿPOQÿMLOÿON`ÿ??Nÿ>>FÿFEIÿWWWÿgggÿlnoÿoooÿmmqÿklnÿmmxÿON`ÿIIUÿON`ÿJJLÿGHJÿKKKÿLLLÿRRRÿOOXÿVVfÿppÿ```ÿ>>FÿQPRÿffgÿklnÿlnoÿnnnÿmmqÿnnnÿmmqÿnopÿnopÿoooÿnopÿpopÿsssÿwvvÿqqvÿEENÿTTTÿCCuÿJJLÿ>>AÿGHJÿA@BÿA@BÿA@BÿA@BÿBCDÿ;:;ÿBBBÿBCDÿBCDÿQQnÿ@@@ÿ;:;ÿcccÿ99Bÿ779ÿ>>AÿA@BÿBCDÿBCDÿBCDÿBCDÿBBCÿ>=>ÿBBBÿ;:;ÿ<<<ÿBBBÿBBBÿBCDÿBCDÿEDFÿEDFÿEDFÿEDFÿEDFÿEDFÿEDFÿEDFÿEDFÿDFGÿEDFÿEDFÿEDFÿHGHÿ??@ÿDCDÿBBCÿAAEÿBBCÿDCDÿEDDÿEDDÿBBCÿDCDÿBBCÿDCDÿDCDÿCCCÿCCFÿFFGÿEDFÿEDFÿAAEÿBBCÿBCDÿBCDÿEDDÿBCDÿEDDÿBCDÿBCDÿCCFÿA@BÿCCCÿCCFÿCCCÿEDFÿEDFÿEDFÿEDDÿDFGÿEDFÿDFGÿDFGÿDFGÿGGGÿDFGÿDFGÿDFGÿDFGÿDFGÿJKLÿOOOÿOOSÿLLLÿGGGÿGGGÿEDFÿEDDÿGGGÿIHHÿGGGÿIHHÿGGGÿGGGÿIHHÿRRRÿZZZÿVVWÿUTVÿGHJÿDFGÿDFGÿIHHÿFFGÿIHHÿFFFÿKKKÿMLNÿLKNÿrrsÿghjÿihjÿdddÿmllÿlklÿlklÿZZ~ÿRRRÿ[[[ÿfffÿ>>Fÿ>>FÿLLLÿbbcÿkjkÿkjkÿkkkÿkkkÿmllÿmlnÿoooÿJJSÿihhÿAAJÿQPRÿOOOÿfffÿrrrÿsssÿrrsÿmllÿkkkÿnnnÿoooÿnnoÿqppÿpopÿrrrÿsssÿrrsÿRR[ÿLLLÿggjÿmmxÿQPRÿPPPÿedfÿsssÿtttÿsssÿpopÿsssÿtstÿrrrÿoooÿoooÿnnnÿlklÿkjkÿdcdÿZZ[ÿ___ÿgggÿsssÿnopÿnopÿccxÿMLRÿPPPÿklnÿHHqÿtt„ÿGGOÿOOvÿ__€ÿ__vÿhh„ÿmmxÿCCCÿFFFÿccxÿ^^lÿvvvÿwwwÿxwxÿwwwÿxwxÿxwxÿhhyÿhh„ÿjj€ÿNNNÿ```ÿIIjÿ___ÿrrrÿIIdÿccÿMMYÿQQ{ÿ[[wÿCCuÿVVVÿCCCÿAAEÿYYjÿhklÿrrrÿstvÿrrrÿtttÿtttÿstvÿstvÿddgÿjjsÿqppÿXXXÿDDTÿCC`ÿ__€ÿGGOÿBBOÿFEIÿ>>FÿAAEÿrrrÿklnÿBBOÿccxÿsssÿsstÿrrsÿnopÿffhÿdghÿddgÿqqvÿvvÿAAJÿMMÿAAJÿDDTÿ^^^ÿTU†ÿRR[ÿEENÿMLOÿihhÿVVvÿ==}ÿII_ÿ__€ÿVVvÿEDFÿXWYÿII_ÿgggÿmlnÿnopÿnnoÿmmqÿmmqÿjjoÿdghÿCCIÿ>>FÿMMÿVVvÿEENÿBBOÿCCIÿ??NÿhhyÿgggÿPOQÿ__€ÿggjÿklnÿnopÿnopÿmmqÿnopÿoooÿghjÿJKLÿklnÿnopÿnnoÿmmqÿrrsÿutvÿqqvÿHHOÿVVVÿCC}ÿDFGÿ<<<ÿ??@ÿA@BÿA@BÿA@BÿBBCÿA@BÿBCDÿ??@ÿGHJÿBCDÿ[[nÿ??@ÿ>=>ÿfffÿ99Bÿ779ÿPPPÿBBBÿMLNÿGHJÿDFGÿBBBÿBBBÿBCDÿ<<<ÿA@Bÿ??@ÿ;:;ÿ@@@ÿ@@@ÿA@BÿEDDÿCCCÿDFGÿEDFÿEDDÿBCDÿBCDÿEDDÿDFGÿEDFÿDFGÿEDDÿEDFÿEDFÿDFGÿEDFÿ>>AÿCCFÿFEIÿGGJÿMLNÿQPRÿNNOÿONQÿONQÿNNOÿPOQÿMLNÿLKLÿLKLÿLKLÿIHJÿHGHÿHGHÿEDFÿFFGÿLKNÿJKLÿDFGÿDFGÿDFGÿBCDÿBBCÿBBCÿDCDÿEDDÿEDFÿEDFÿDFGÿEDFÿEDFÿHGHÿDFGÿHGHÿDFGÿEDFÿDFGÿJKLÿNNOÿOOOÿNNNÿJKLÿPPPÿSRTÿJJKÿEDFÿEDFÿDFGÿFFFÿGGGÿEDDÿDFGÿFFFÿGGGÿGGGÿIHHÿIHHÿJJJÿLLLÿRRRÿVVYÿFEIÿIHHÿGGGÿIHHÿFFGÿIHHÿJJKÿLKLÿIHJÿnnoÿghjÿihhÿgggÿmlnÿmllÿmlnÿVVvÿTTTÿWWWÿjjjÿ>>Fÿ>>IÿNNNÿcccÿkjkÿlklÿlklÿmllÿmlnÿmllÿpopÿOOXÿihhÿAAJÿPOQÿOOOÿfffÿrrrÿtttÿsssÿrrsÿoooÿnnoÿmllÿmlnÿoooÿmllÿoooÿtttÿsssÿjjuÿXWYÿJJJÿCCuÿYX[ÿKKKÿXXXÿnnnÿtttÿtttÿqppÿsssÿtttÿsssÿoooÿoooÿqprÿ__bÿMLRÿUU_ÿNNOÿTTTÿffgÿvvwÿsstÿwwwÿxwxÿccxÿtt}ÿjjjÿhklÿdddÿjjjÿdghÿlnoÿXXXÿ^^^ÿEDDÿHGHÿAAJÿ__bÿvvvÿxxxÿxxxÿxxxÿxwxÿxxxÿwwwÿVUaÿ[[[ÿfffÿkkkÿZZZÿMMÿVVÿhklÿFFFÿklnÿZZZÿdddÿWWWÿ^^^ÿBBBÿCCIÿMMYÿrrsÿrrrÿqprÿsssÿrrsÿrrrÿrrsÿsstÿrrsÿrrrÿccfÿMMYÿIHHÿGGGÿ___ÿCCCÿCCCÿCCCÿ[[[ÿOOOÿrrrÿghjÿvvÿvvzÿstvÿstvÿvvvÿvvwÿvvvÿstvÿhklÿghjÿcclÿ>>AÿhklÿdddÿDFGÿJJKÿjjjÿAAJÿ\\^ÿihjÿgfÿddgÿA@BÿBCDÿ[[[ÿDFGÿSSSÿjjjÿAAJÿjjuÿnnoÿmmqÿoooÿoooÿnopÿmmqÿ[[wÿAAEÿghjÿPPPÿ```ÿEDFÿBBBÿ@@@ÿVVWÿSSSÿdghÿghjÿCC`ÿjjuÿoooÿnopÿnopÿoooÿoooÿnopÿklnÿjjjÿHGHÿjjlÿqppÿoosÿlklÿrrrÿutvÿoosÿGGOÿWWWÿ==}ÿ779ÿ;:;ÿ??@ÿBBBÿCCCÿBBCÿBCDÿBCDÿGHJÿA@Bÿ??@ÿEDFÿ[[nÿ??@ÿ??@ÿihhÿ99Bÿ<<<ÿXWYÿSSSÿEDFÿBBBÿBCDÿBCDÿCCCÿEDDÿBCDÿ??@ÿ>=>ÿBCDÿ;:;ÿ>=>ÿA@BÿA@BÿBBCÿEDDÿEDFÿEDFÿEDFÿFFFÿDFGÿHGHÿHGHÿHGHÿHGHÿGGGÿLLLÿGGJÿFFGÿFFGÿ>=>ÿEDFÿHGHÿPOQÿNNOÿHGHÿHGHÿIHJÿIHJÿEDFÿHGHÿIHJÿEDFÿIHJÿIHHÿEDDÿFFGÿEDFÿDCDÿFFGÿGGGÿFFFÿEDFÿGGGÿEDFÿHGHÿGGGÿYXZÿihjÿnopÿJJJÿGHJÿlnoÿlnoÿhklÿMLNÿNNNÿOOOÿOOOÿJKLÿNNOÿNNNÿOOOÿSSVÿVVVÿ^^^ÿZZZÿLLLÿGGGÿDFGÿDFGÿJJJÿNNNÿVVVÿ[[[ÿdghÿnnnÿsssÿtttÿvvvÿtttÿvvvÿsssÿxwxÿHGHÿHGHÿHGHÿHGHÿHGHÿHGHÿJJJÿKKKÿLLLÿnnoÿddgÿbbbÿfffÿlnoÿnnoÿklnÿVVÿVVVÿVVVÿkkkÿ>>Fÿ>>FÿMLNÿedfÿmllÿnnnÿmlnÿmlnÿnnoÿpopÿrrrÿMMYÿjjjÿCCIÿQPRÿQPRÿhghÿsssÿtttÿsssÿtttÿsssÿsssÿtttÿsssÿrrsÿrrrÿnnnÿnnnÿsssÿsssÿmmxÿPPPÿ[[wÿHHyÿPOQÿLLLÿ^\^ÿnnoÿtttÿrrsÿtttÿwvvÿtttÿtstÿsssÿnnoÿHHqÿccrÿDCVÿFEIÿSSSÿfffÿxwxÿxwxÿxxxÿxxxÿsstÿsstÿffrÿjj€ÿMLOÿRRRÿhklÿijkÿfffÿMLRÿCC}ÿQQ{ÿrrsÿsstÿwwwÿwwwÿxwxÿwwwÿwwwÿxxxÿxxxÿffmÿOOvÿMMYÿhhyÿmm~ÿjjsÿttwÿQQ^ÿooyÿGHJÿVVVÿghjÿTTTÿMLRÿ__€ÿccxÿvvwÿvvwÿsssÿqppÿsssÿrrrÿsssÿvvwÿvvwÿwwwÿstvÿrrrÿsstÿcclÿBBOÿjjoÿTSTÿBBBÿCCCÿMLNÿffmÿMMÿVVfÿvvwÿstvÿstvÿvvvÿvvvÿvvwÿvvvÿstvÿvvvÿedfÿhklÿmmxÿtt}ÿccxÿhhyÿ__vÿIIUÿYX[ÿdddÿnnnÿnopÿccrÿgfÿmmqÿ^^^ÿijkÿJJSÿjj€ÿjjsÿnnoÿmmqÿnopÿoooÿnopÿnopÿpopÿhklÿYYcÿBBOÿOOvÿddoÿJKLÿBBCÿBCDÿPOQÿjjlÿQQ{ÿMMÿmmqÿnopÿlnoÿnopÿlnoÿlnoÿmmqÿnopÿlnoÿnopÿrrsÿhklÿdghÿqppÿkkkÿoosÿqprÿoosÿHHOÿWWWÿCCuÿ779ÿ<<<ÿ@@@ÿ>=>ÿ??@ÿA@BÿBBCÿBCDÿBCDÿBCDÿBCDÿA@Bÿ__vÿ@@@ÿ??@ÿghjÿ99Bÿ<<<ÿBBCÿEDFÿBBBÿ@@@ÿBBCÿBCDÿCCCÿBCDÿBCDÿBBCÿA@Bÿ<<<ÿBBCÿ<<<ÿ>=>ÿA@BÿBBBÿEDFÿEDFÿFFFÿGGGÿFEIÿDFGÿGHJÿKKKÿJJLÿJJLÿSRTÿVVWÿ^^_ÿYXZÿXWYÿRRSÿFFGÿJJLÿJJKÿFFGÿHGHÿHGHÿIHJÿJJKÿLKLÿMLOÿPOQÿRRRÿLKLÿJJKÿFFFÿJJJÿHGHÿGGGÿIHJÿGGGÿGGGÿGGGÿGGGÿIHHÿJJJÿFFFÿ[[[ÿXXXÿqppÿLLLÿOOOÿqppÿVVVÿdghÿXXXÿVVVÿSSSÿSSSÿOOOÿRRRÿOOSÿSRTÿSSSÿRRRÿNNNÿXXXÿdddÿrrrÿrrrÿwwwÿwwwÿxxxÿwwwÿvvvÿtttÿtttÿvvvÿvvvÿstvÿtttÿtttÿsssÿwwwÿKKKÿGGGÿFFFÿGGGÿIHHÿHGHÿJJKÿJJKÿMLNÿlklÿihhÿihjÿijkÿrrrÿmllÿmlnÿMMÿ[[[ÿQPRÿkkkÿ>>Iÿ>>IÿNNNÿedfÿkkkÿoooÿnnnÿnnnÿqppÿqppÿoooÿOOSÿjjjÿAAJÿPOQÿOOOÿfffÿqppÿrrrÿrrrÿsssÿrrsÿtttÿvvvÿvvvÿxwwÿwwwÿxwwÿvvvÿtttÿrrrÿccxÿ```ÿDCDÿccÿVVnÿNNNÿNNNÿ[[[ÿgggÿoooÿtttÿtstÿtttÿsssÿrrrÿddgÿQQiÿIHHÿppÿAAJÿRRRÿfffÿwwwÿxwxÿxxxÿxwxÿrrsÿsstÿxxxÿtt}ÿxwxÿww}ÿttwÿttwÿoosÿvvzÿsssÿxxxÿvvvÿsstÿwwwÿwwwÿxxxÿxwxÿwwwÿwwwÿwwwÿxwxÿvvwÿvvwÿvvwÿxwxÿwwwÿwwwÿvvwÿvvwÿttwÿttwÿttwÿqprÿooyÿstvÿvvvÿvvwÿvvwÿvvvÿtttÿvvvÿvvvÿvvwÿwwwÿwwwÿvvwÿvvwÿsstÿrrrÿrrsÿqqvÿjjoÿmmqÿmmqÿmmqÿttwÿklnÿttwÿvvvÿstvÿtttÿtttÿstvÿstvÿstvÿvvwÿstvÿstvÿsstÿbbcÿddgÿnopÿsstÿstvÿtttÿvvvÿvvvÿdcdÿoooÿoooÿnnoÿnopÿmmxÿmmqÿffrÿjjsÿmmqÿmmqÿmmqÿnopÿqppÿnopÿnopÿnopÿmmqÿklnÿhklÿ__bÿmmqÿoosÿffrÿcclÿ``dÿjjoÿffrÿjjsÿnopÿnopÿlnoÿklnÿlnoÿnopÿnopÿlnoÿlnoÿnopÿqprÿrrrÿXWYÿffgÿZZ[ÿVVWÿqprÿpopÿmmqÿEENÿWWWÿDDoÿ>=>ÿ;:;ÿ>>Aÿ??@ÿ<<<ÿBBBÿA@BÿA@BÿBBCÿBBBÿBBBÿBCDÿQQiÿ@@@ÿ;:;ÿcccÿ99Bÿ779ÿ>=>ÿA@BÿBBCÿBBCÿBCDÿCCCÿBCDÿBCDÿBCDÿEDFÿBCDÿCCCÿ<<<ÿBBBÿ@@@ÿ;:;ÿBBBÿDCDÿEDDÿFFGÿHGHÿHGHÿHGHÿGHJÿJKLÿKKKÿDFGÿJJKÿHGHÿGGJÿLKNÿGGJÿJJKÿJJKÿA@BÿHGHÿHGHÿGGGÿJJLÿLKLÿLKLÿNNOÿTSTÿQPRÿLLLÿHGHÿOOOÿLKLÿSSSÿJJJÿKKKÿPOQÿLLLÿKKKÿOOOÿKKKÿNNNÿPPPÿ[[[ÿedfÿedfÿtttÿ```ÿbbbÿvvvÿedfÿdghÿVVVÿRRRÿRRRÿNNNÿJJJÿGHJÿDFGÿGHJÿGGGÿGHJÿKKKÿrrrÿrrrÿtttÿrrrÿtttÿtttÿvvvÿvvwÿvvvÿtttÿtttÿtttÿtttÿstvÿtttÿtttÿtttÿtttÿ\[\ÿIHHÿGGGÿFFFÿGGGÿGGGÿHGHÿKKKÿSSSÿmlnÿlklÿlklÿjjjÿnnoÿnnnÿklnÿMMzÿ^^^ÿNNOÿnnnÿ>>Fÿ>>FÿNNNÿffgÿmllÿnnoÿmllÿnnoÿnnnÿgggÿ\\\ÿJJLÿihhÿBBOÿJJKÿJJJÿWWWÿ^^^ÿ___ÿ```ÿjjjÿtstÿwwwÿvvvÿvvvÿvvvÿwwwÿwwwÿwwwÿxwwÿwvvÿvvwÿqq|ÿLLLÿihjÿtt„ÿccnÿQPRÿLLLÿSSSÿ^^^ÿedfÿihhÿgggÿffhÿccfÿZZ~ÿjjjÿFFFÿtt„ÿEENÿRRSÿdddÿxwxÿxwxÿxxxÿxwxÿvvvÿxwxÿxxxÿxxxÿzzzÿzzzÿxxxÿzzzÿxxxÿxxxÿxxxÿwwwÿtttÿxwxÿxxxÿxwxÿwwwÿvvwÿxxxÿxwxÿwwwÿwwwÿxwxÿwwwÿwwwÿxwxÿwwwÿwwwÿwwwÿwwwÿstvÿstvÿwwwÿwwwÿwwwÿvvwÿwwwÿxwxÿvvwÿwwwÿxwxÿvvvÿstvÿvvvÿwwwÿwwwÿwwwÿvvwÿvvvÿvvwÿsssÿqprÿsssÿsstÿstvÿoooÿmllÿmllÿmmqÿtttÿtttÿsstÿvvvÿvvvÿstvÿstvÿsstÿstvÿstvÿstvÿklnÿhklÿfffÿstvÿsssÿstvÿrrrÿstvÿ```ÿoooÿlnoÿlnoÿnopÿnopÿlnoÿklnÿnopÿnopÿlnoÿklnÿklnÿmmqÿnopÿklnÿmmqÿnopÿnopÿedfÿ^^`ÿoooÿnnnÿqprÿijkÿffgÿnnoÿnnoÿnopÿnopÿnopÿqprÿlnoÿnopÿnopÿnopÿqprÿnopÿqprÿnopÿqprÿVVYÿjjlÿklnÿXWYÿmmqÿqprÿmmxÿGGOÿUTWÿCCuÿLKNÿ;:;ÿ@@@ÿ<<<ÿ??@ÿ@@@ÿ@@@ÿ@@@ÿBBBÿA@BÿBBCÿBBBÿIIjÿFFFÿ;:;ÿ\[\ÿ99Bÿ779ÿ>=>ÿBBCÿBBCÿBBBÿBBBÿBCDÿBCDÿBCDÿBCDÿEDFÿEDDÿBCDÿBBCÿ>=>ÿA@BÿAAEÿ;:;ÿ@@@ÿBBBÿCCCÿEDDÿGGGÿDFGÿGGGÿEDFÿBCDÿEDDÿFFFÿFEIÿIHJÿMLNÿHGHÿIHHÿJJKÿEDFÿBBCÿGGGÿIHJÿFFGÿHGHÿLKLÿRRSÿUTVÿUTVÿPOQÿSSVÿ`_`ÿbbbÿ^\^ÿPPPÿ\[\ÿWWWÿXXXÿWWWÿZZ[ÿWWWÿa`bÿedfÿbbbÿZZ[ÿVVWÿ^^^ÿLLLÿKKKÿKKKÿRRRÿZZZÿnnnÿvvvÿIHHÿFFFÿDFGÿDFGÿGGGÿDFGÿGHJÿJKLÿPPPÿrrrÿtttÿsssÿvvvÿtttÿvvvÿvvvÿstvÿtttÿvvvÿvvvÿtttÿvvvÿvvvÿtttÿsssÿrrrÿsssÿxxxÿIHHÿJJJÿKKKÿPPPÿIHJÿFFGÿIHJÿTSTÿlklÿihjÿnnnÿihhÿoooÿnnnÿlklÿQQdÿdddÿIHHÿnnnÿ>>Iÿ>>FÿOOOÿffgÿnnnÿoooÿmllÿggjÿffmÿ\\fÿSSVÿ__vÿKKKÿDCVÿFEIÿJJSÿMLRÿMLRÿMLOÿRRRÿ___ÿrrrÿwvvÿwwwÿxxxÿvvvÿxwwÿzzzÿxwwÿwwwÿxwwÿxwwÿmmxÿMLOÿSSSÿnnoÿvvÿII_ÿOOXÿPOQÿNNNÿOOOÿOOSÿPPXÿDDoÿQQ{ÿONQÿcccÿUTVÿtt„ÿMMYÿXXXÿedfÿvvwÿxxxÿxxxÿxxxÿvvwÿwwwÿxxxÿxxxÿxxxÿzzzÿxx}ÿxxxÿxxxÿxxxÿxxxÿwwwÿtttÿwwwÿzzzÿxxxÿvvvÿrrrÿstvÿxxxÿxwxÿxxxÿxxxÿxxxÿxwxÿxwxÿxwxÿxwxÿxwxÿwwwÿwwwÿvvwÿvvzÿwwwÿvvwÿwwwÿvvwÿxwxÿxwxÿvvwÿvvwÿsssÿqprÿtttÿwwwÿvvwÿsstÿsssÿsstÿstvÿtttÿrrsÿqppÿlnoÿrrsÿnnoÿhghÿdghÿklnÿtttÿtttÿqprÿrrrÿqprÿsstÿqppÿnopÿqprÿsssÿqprÿqppÿWWWÿdghÿghjÿnopÿsssÿlnoÿlnoÿVVWÿnopÿdghÿffgÿjjlÿklnÿffgÿgggÿjjlÿhklÿffhÿijkÿklnÿjjlÿghjÿffhÿlnoÿffhÿccfÿZZ[ÿZZ\ÿklnÿpopÿpopÿihjÿghjÿoooÿpopÿmmqÿnopÿmmqÿnopÿnopÿqprÿqprÿnopÿqprÿnopÿqprÿnopÿqprÿmmqÿklnÿrrsÿffgÿihhÿjjlÿjjsÿEENÿRRRÿIIdÿ>=>ÿ>=>ÿGHJÿBBBÿA@BÿA@BÿA@BÿA@BÿA@BÿBBCÿ@@@ÿA@Bÿ<=>ÿLKLÿEDFÿIHHÿPOQÿPOQÿVVWÿa`bÿ^^`ÿNNOÿlklÿpopÿihhÿbbcÿ\\\ÿfffÿfffÿXWYÿXWYÿTTTÿQPRÿJJJÿJJJÿNNOÿXXXÿfffÿqppÿtttÿvvvÿwwwÿtttÿvvvÿvvvÿvvvÿVVVÿGHJÿHGHÿHGHÿDFGÿHGHÿJKLÿJKLÿRRRÿqppÿqppÿnopÿrrrÿrrrÿtttÿstvÿvvvÿvvvÿtttÿrrrÿtttÿtttÿstvÿtttÿrrrÿsstÿvvvÿwwwÿZZZÿJJJÿNNNÿTSTÿIHHÿIHHÿJJJÿdcdÿgggÿdcdÿihhÿdghÿnnnÿmlnÿmllÿMMYÿmllÿCCCÿlklÿ@@TÿAAEÿOOOÿedfÿmllÿmlnÿVVYÿVVvÿVVvÿqq|ÿAAJÿDDoÿSSSÿIIUÿ__vÿtt}ÿqq|ÿppÿ??ƒÿ^_jÿmllÿwwwÿxxxÿxwwÿxwwÿwwwÿxxxÿxxxÿxwwÿwvvÿtttÿtttÿvvwÿccxÿON`ÿCCCÿSSSÿffuÿtt„ÿDCVÿMMiÿ[[wÿZZ‚ÿMMÿ_`qÿBBBÿIHHÿA@BÿRRRÿmm‚ÿ``dÿdddÿgggÿvvwÿxxxÿxxxÿxxxÿvvwÿwwwÿxxxÿzzzÿzzzÿzzzÿxxxÿzzzÿzzzÿxxxÿzzzÿvvwÿstvÿxxxÿzzzÿvvvÿsstÿsssÿvvwÿxxxÿxxxÿxxxÿxxxÿxwxÿxxxÿxwxÿxxxÿxx}ÿxxxÿxwxÿxwxÿxwxÿxwxÿxwxÿxxxÿwwwÿxwxÿxxxÿxwxÿwwwÿwwwÿstvÿsstÿsstÿwwwÿvvvÿsstÿsstÿqppÿrrrÿsstÿstvÿstvÿstvÿstvÿqppÿjjjÿghjÿnnnÿvvvÿsssÿnnnÿlnoÿsssÿsssÿrrsÿtttÿnopÿrrrÿrrrÿnopÿZZ[ÿghjÿ\[^ÿklnÿrrrÿlnoÿqprÿdddÿedfÿjjjÿedfÿihjÿhklÿddgÿccfÿihjÿjklÿbbdÿihjÿlnoÿdghÿccfÿccfÿklnÿffhÿjjlÿ^^`ÿklnÿoosÿoooÿqprÿmlnÿmlnÿmmqÿnopÿmmqÿoosÿoosÿnopÿnopÿnopÿnopÿqprÿnopÿqprÿqprÿqprÿqprÿnopÿqprÿqprÿfffÿ\[\ÿVVWÿUTWÿA@BÿBCDÿ99Bÿ;:;ÿ<<<ÿBBCÿEDFÿGGGÿHGHÿCCCÿBBCÿBBCÿA@BÿBBCÿBBCÿ??NÿXXXÿJJKÿJJLÿ<=>ÿBBBÿBBBÿBBCÿ;:;ÿEDDÿDFGÿJJKÿGHJÿHGHÿJJKÿGGJÿEDFÿEDFÿEDFÿ@@@ÿDCDÿIHJÿGGGÿ??@ÿJJKÿHGHÿIHJÿJJKÿGHJÿJJJÿGGJÿGGGÿSRTÿGGJÿNNOÿNNOÿPOQÿNNOÿNNOÿNNOÿdcdÿQPRÿTSTÿMLNÿLKLÿSRTÿUTVÿZZ\ÿ\[^ÿ^^`ÿ^\^ÿTTTÿOOOÿKKKÿJJJÿPPPÿ[[[ÿcccÿoooÿutvÿzxxÿ{z{ÿvvwÿwvvÿrrrÿtttÿtttÿvvvÿtttÿtttÿtttÿvvvÿvvvÿsssÿGHJÿHGHÿHGHÿHGHÿGHJÿJKLÿNNNÿ\\\ÿrrrÿqppÿrrrÿsssÿvvvÿtttÿvvvÿvvvÿvvvÿvvvÿwwwÿwwwÿvvvÿsssÿtttÿsssÿqppÿtttÿvvvÿwwwÿJJJÿIHHÿIHHÿVVWÿJJKÿIHHÿoooÿdghÿedfÿbbcÿfffÿnnoÿlklÿlklÿMMYÿklnÿ@@@ÿfffÿDCdÿCCFÿMLNÿfffÿmlnÿnnoÿ__€ÿkkkÿTTTÿjjjÿIHHÿihhÿBBCÿjjjÿijkÿjjjÿgggÿPOQÿII_ÿooyÿxwwÿzzzÿxxxÿzzzÿxxxÿxwwÿxwxÿxwwÿwwwÿwvvÿvvvÿtttÿwvvÿwvvÿffrÿhhyÿRRRÿRRSÿBBBÿdcdÿoooÿgggÿIHHÿgggÿGGGÿ\[\ÿDCVÿQQdÿ@@@ÿCC`ÿffgÿmllÿhghÿrrsÿxxxÿzzzÿxxxÿxxxÿvvvÿstvÿzzzÿzzzÿzzzÿxx}ÿxxxÿzzzÿzzzÿxxxÿvvvÿwwwÿxxxÿstvÿstvÿstvÿvvvÿwwwÿzzzÿyxzÿxxxÿxxxÿxxxÿxxxÿxxxÿxwxÿxxxÿxxxÿxxxÿxxxÿxxxÿwwwÿxxxÿxwxÿxxxÿxwxÿxwxÿxxxÿxxxÿxxxÿvvvÿsstÿtttÿsstÿstvÿsstÿvvwÿstvÿvvwÿvvvÿvvwÿvvwÿvvwÿvvwÿsssÿqppÿqprÿrrsÿvvwÿsstÿmllÿnopÿtttÿsssÿqprÿsstÿqprÿvvvÿnopÿlnoÿqprÿcccÿklnÿZZZÿrrrÿnopÿqppÿsssÿ`_`ÿccfÿdghÿlnoÿklnÿffgÿddgÿhklÿklnÿffhÿjjlÿklnÿghjÿ__bÿ``dÿUTVÿSRTÿXWYÿ__bÿklnÿnopÿqppÿqppÿqppÿnnoÿnopÿnopÿqprÿqprÿqprÿqprÿoosÿnopÿnopÿrrsÿnopÿrrsÿnopÿqprÿrrsÿrrsÿmmxÿmm~ÿII[ÿGGOÿ99Bÿ99Bÿ^_jÿTTTÿ99Bÿ99BÿBCDÿedfÿsstÿwwwÿvvwÿklnÿPOQÿFFGÿBBCÿBBBÿBBCÿ99BÿcccÿVVVÿ>>FÿQQiÿ779ÿ??@ÿBBCÿCCCÿDCDÿ>=>ÿA@BÿFFGÿFEIÿHGHÿHGHÿIHJÿIHJÿEDFÿEDFÿFFGÿKKKÿCCCÿ@@@ÿ^\^ÿNNOÿ^^_ÿXXXÿihhÿddgÿ^\^ÿGGGÿHGHÿVVWÿffgÿKKKÿbbcÿ{z{ÿJJKÿLKLÿLKLÿcccÿbbcÿHGHÿGGGÿHGHÿGGGÿIHHÿJJKÿPOQÿUTVÿedfÿgggÿrrrÿtttÿxwxÿyxzÿzxxÿxwwÿzzzÿxwxÿxwwÿxwxÿxwwÿvvwÿxwwÿrrsÿsssÿwvvÿwvvÿtttÿtttÿvvvÿtttÿsssÿwwwÿSSSÿGHJÿGGGÿGHJÿJJJÿGHJÿLLLÿihhÿsssÿrrrÿsssÿrrsÿrrrÿsssÿtttÿstvÿtttÿvvvÿvvvÿtttÿsssÿsssÿsssÿrrrÿsssÿsssÿsssÿwwwÿkkkÿGGGÿa`bÿJJLÿXWYÿedfÿmlnÿoooÿjjjÿkkkÿmllÿnnnÿjklÿjjlÿON`ÿcccÿEDDÿ\\^ÿ??ƒÿFEIÿNNNÿgggÿnnoÿoooÿpopÿZZ~ÿjj€ÿmm~ÿgfÿ__€ÿ__€ÿgfÿccÿ__€ÿvvÿccÿ^^lÿxwxÿzzzÿ{z{ÿzxxÿxxxÿxwwÿxxxÿxwxÿvvwÿwvvÿtttÿvvvÿutvÿwvvÿtttÿsssÿrrrÿ``dÿON`ÿccrÿfffÿPPPÿQPRÿVVfÿccxÿRR`ÿZZ~ÿhghÿoosÿQQnÿ__bÿkkkÿnnnÿihhÿnopÿxxxÿyxzÿzzzÿxxxÿxwxÿqprÿvvvÿxx}ÿzzzÿ{{{ÿzzzÿ{z{ÿxxxÿxxxÿvvwÿxxxÿwwwÿvvvÿxwxÿstvÿwwwÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxwxÿwwwÿxwxÿxwxÿxwxÿxxxÿxwxÿxxxÿxwxÿxwxÿvvwÿstvÿvvvÿstvÿrrsÿsssÿvvvÿvvvÿwwwÿvvwÿwwwÿwwwÿxwxÿwwwÿvvwÿwwwÿxwxÿwwwÿxwxÿvvvÿsssÿsssÿsstÿvvwÿrrrÿlnoÿsssÿsstÿsssÿsssÿstvÿghjÿfffÿfffÿsstÿqprÿnopÿrrrÿdddÿhklÿghjÿklnÿlnoÿjjlÿjjlÿklnÿlnoÿhklÿhklÿnopÿklnÿdghÿhklÿghjÿklnÿghjÿghjÿqprÿqppÿqprÿpopÿnnoÿklnÿnopÿqprÿqprÿnopÿqprÿqprÿqprÿnopÿrrrÿrrrÿrrsÿrrrÿrrrÿrrrÿrrrÿqprÿZZ~ÿ``dÿWWWÿEDDÿFFFÿFFFÿ```ÿcccÿ??NÿHHOÿjjjÿwwwÿxxxÿxxxÿxwxÿzxxÿxwwÿtttÿnnnÿbbbÿQPRÿ>>Fÿihhÿ\\\ÿ;:;ÿYYjÿ779ÿ>=>ÿ@@@ÿBBBÿBBBÿ@@@ÿ<<<ÿFFGÿGGGÿFFGÿEDFÿEDFÿFFFÿCCCÿDCDÿEDFÿqppÿGGGÿTTTÿjjjÿedfÿxwwÿkjkÿqppÿZZZÿmllÿFFFÿJJKÿWWWÿJJJÿKKKÿzxxÿ^^^ÿ\\\ÿ^^^ÿYXZÿtstÿZZ[ÿgggÿqppÿtttÿxwwÿzzzÿzxxÿ{z{ÿ{z{ÿzzzÿyxzÿzzzÿzxxÿxwwÿxwxÿyxzÿzzzÿzxxÿxwwÿvvwÿzxxÿxwxÿxwwÿwvvÿtttÿvvwÿutvÿwvvÿtttÿvvvÿwwwÿvvvÿxxxÿvvvÿtttÿGHJÿJJJÿJKLÿTSTÿLLLÿNNNÿtttÿsssÿsstÿtttÿtttÿsssÿvvvÿtttÿsssÿwwwÿwwwÿvvvÿtttÿvvvÿstvÿsssÿrrrÿrrrÿqppÿvvvÿsssÿvvvÿsssÿXXXÿZZ[ÿjjjÿqprÿkkkÿgggÿffgÿfffÿfffÿnnnÿmllÿmlnÿMMzÿ\\^ÿIHHÿZZZÿ==}ÿAAEÿLLLÿfffÿmllÿnnoÿpopÿoooÿpopÿrrsÿtttÿvvvÿvvwÿvvwÿxxxÿzzzÿzxxÿxxxÿxxxÿ{{{ÿ{{{ÿ{{{ÿxxxÿxxxÿxwwÿxxxÿxxxÿtttÿtttÿtttÿvvvÿvvvÿwvvÿtttÿrrrÿrrrÿoooÿrrrÿmmxÿjjoÿddoÿmmqÿffmÿdcdÿmllÿlklÿnnoÿmllÿmllÿoooÿoooÿnnnÿffgÿjjlÿxxxÿyxzÿzzzÿyxzÿxxxÿtttÿtttÿzzzÿzzzÿzzzÿ{z{ÿxxxÿzzzÿzzzÿwwwÿsssÿvvvÿxxxÿvvvÿvvwÿxxxÿxxxÿyxzÿzzzÿyxzÿxxxÿxwxÿxwxÿyxzÿyxzÿxxxÿxxxÿxxxÿxwxÿwwwÿxxxÿxwxÿxwxÿxwxÿxxxÿxwxÿxwxÿwwwÿxwxÿxwxÿtttÿtttÿvvwÿvvvÿvvvÿvvwÿvvvÿvvwÿvvwÿvvvÿxwxÿvvwÿwwwÿvvwÿwwwÿxwxÿwwwÿxwxÿwwwÿxwxÿxwxÿxxxÿwwwÿvvwÿstvÿvvvÿwwwÿxwxÿwwwÿxxxÿvvvÿfffÿnopÿnopÿstvÿwwwÿvvvÿlnoÿghjÿrrrÿrrsÿnopÿrrsÿqprÿqprÿnopÿqppÿrrsÿqprÿSRTÿffhÿqqvÿlnoÿrrsÿnopÿqprÿrrsÿnopÿoosÿnopÿpopÿmlnÿnnoÿqprÿqprÿqprÿqprÿqprÿqprÿqprÿrrrÿqprÿrrrÿnopÿrrrÿrrrÿqppÿqprÿ__€ÿdddÿPPPÿ^^_ÿ^\^ÿDCDÿCCCÿihhÿ??NÿUU_ÿrrrÿvvvÿwwwÿxwxÿxxxÿzxxÿxxxÿwvvÿxxxÿxxxÿzxxÿPPXÿoooÿgggÿBBBÿddoÿCCCÿ[[[ÿedfÿZZ[ÿCCCÿBBCÿ;:;ÿlklÿ{{{ÿihjÿFEIÿMLNÿwvvÿJJJÿ^^_ÿOOOÿsssÿMLNÿ```ÿtttÿ^^_ÿzxxÿkkkÿZZ[ÿ^\^ÿtttÿFFGÿIHHÿ^^^ÿrrrÿgggÿtstÿzxxÿ\\\ÿ```ÿzxxÿtttÿkkkÿ{{{ÿyxzÿyxzÿzxxÿ{z{ÿ{z{ÿzzzÿzzzÿzxxÿyxzÿzxxÿzzzÿzxxÿzxxÿzxxÿyxzÿxwxÿzxxÿxwxÿxwxÿzxxÿxwwÿxwwÿtttÿrrrÿwvvÿvvvÿwwwÿvvvÿwwwÿwwwÿwwwÿsssÿxxxÿedfÿJJJÿbbcÿQPRÿ[[[ÿihhÿtttÿvvvÿtttÿvvvÿtttÿtttÿtttÿvvvÿvvvÿwwwÿvvvÿstvÿvvvÿvvvÿtttÿsssÿsssÿqppÿoooÿsssÿqprÿrrrÿvvvÿtttÿvvvÿqppÿrrrÿjjjÿgggÿfffÿbbcÿa`bÿnnnÿlklÿlklÿMMzÿ___ÿEDDÿ```ÿCCiÿFEIÿMLNÿdddÿkkkÿnnoÿoooÿoooÿnnoÿrrrÿtttÿtttÿwwwÿxwwÿwwwÿxxxÿxxxÿyxzÿzxxÿzxxÿ{{{ÿzzzÿxxxÿzzzÿxwwÿxwxÿxwxÿxwxÿvvwÿvvvÿvvvÿtttÿxwwÿtttÿrrsÿqprÿqppÿqppÿqppÿqprÿnnoÿoooÿnnnÿkkkÿkkkÿmllÿmlnÿmlnÿmllÿoooÿoooÿnnnÿdddÿdcdÿtttÿxxxÿxxxÿyxzÿxwxÿvvvÿsstÿzzzÿzzzÿzzzÿzzzÿzzzÿxxxÿxxxÿxxxÿxxxÿxwxÿwwwÿvvvÿxxxÿyxzÿxxxÿxxxÿxxxÿyxzÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxwxÿxwxÿxxxÿxwxÿxwxÿwwwÿxwxÿxwxÿwwwÿxwxÿwwwÿxxxÿxwxÿxwxÿstvÿstvÿstvÿvvvÿvvwÿvvwÿstvÿxwxÿwwwÿvvwÿwwwÿwwwÿxwxÿwwwÿwwwÿwwwÿvvwÿxwxÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿvvwÿwwwÿwwwÿwwwÿwwwÿwwwÿklnÿrrrÿfffÿwwwÿvvvÿwwwÿnopÿZZ\ÿnopÿnopÿqprÿqprÿrrsÿnopÿnopÿqprÿlnoÿMLOÿhklÿqqvÿlnoÿrrsÿqprÿqprÿqprÿqprÿqprÿqprÿqprÿoosÿklnÿihjÿnopÿoooÿqprÿqprÿqprÿqppÿqprÿrrrÿqprÿqprÿrrrÿqppÿqprÿqprÿqprÿrrsÿmmqÿjjlÿqqvÿttwÿttwÿttwÿjjlÿXWYÿkkkÿvvvÿtttÿwwwÿwwwÿzxxÿzxxÿzxxÿxwwÿxxxÿxwxÿxwxÿRR[ÿqppÿihhÿEDDÿffrÿGGGÿbbcÿwvvÿxxxÿxwwÿbbbÿMLNÿzxxÿ{z{ÿqprÿHGHÿRRRÿzxxÿTSTÿkkkÿ^\^ÿcccÿGGGÿ___ÿmllÿdddÿa`bÿGGGÿGGGÿQPRÿ\\\ÿGGGÿLKLÿVVWÿSSSÿoooÿNNNÿ```ÿtstÿzxxÿ{z{ÿzzzÿmllÿoooÿmllÿwvvÿwvvÿzxxÿ{z{ÿyxzÿzzzÿzzzÿzxxÿyxzÿyxzÿzxxÿzxxÿzxxÿzxxÿxwwÿzxxÿxwwÿxwwÿvvwÿxwwÿwvvÿvvwÿwvvÿxwwÿwvvÿvvvÿvvvÿtttÿvvvÿsssÿsssÿvvvÿwwwÿsssÿXXXÿ___ÿsssÿvvvÿvvvÿsssÿsstÿvvvÿvvvÿsssÿtttÿvvvÿstvÿvvvÿxxxÿvvvÿtttÿvvvÿtttÿvvvÿsssÿsssÿqppÿsssÿrrrÿvvvÿsssÿtttÿrrrÿqppÿnnnÿcccÿfffÿihhÿbbbÿcccÿnnoÿmllÿklnÿQQdÿgggÿ@@@ÿkkkÿ??NÿAAEÿLLLÿedfÿlklÿlklÿmlnÿnnnÿqprÿrrsÿtttÿtttÿwvvÿwwwÿwwwÿxwxÿwwwÿwwwÿxxxÿxxxÿzzzÿzzzÿxxxÿxxxÿxxxÿyxzÿwwwÿxwxÿxwwÿwvvÿtttÿsssÿutvÿwvvÿsssÿrrrÿrrrÿqprÿrrrÿqppÿrrrÿqppÿoooÿmlnÿnnnÿoooÿqprÿoooÿoooÿoooÿnnnÿmllÿdddÿ^\^ÿijkÿxxxÿyxzÿxwxÿxwxÿxxxÿvvvÿzzzÿ{z{ÿzzzÿxxxÿxxxÿyxzÿxxxÿxxxÿxxxÿstvÿvvvÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxxxÿxwxÿyxzÿxxxÿxwxÿxxxÿxxxÿyxzÿxwxÿxwxÿxwxÿxwxÿxxxÿxwxÿxwxÿxwxÿxxxÿxwxÿxwxÿxwxÿxwxÿvvwÿvvvÿvvvÿvvwÿvvwÿvvwÿvvvÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿvvwÿvvwÿwwwÿvvwÿxwxÿwwwÿwwwÿxwxÿvvwÿwwwÿvvwÿvvwÿxwxÿxwxÿwwwÿxxxÿwwwÿxwxÿwwwÿfffÿa`bÿvvvÿwwwÿbbbÿghjÿsstÿqqvÿqprÿqprÿqqvÿnopÿqprÿbbdÿrrsÿ^^`ÿsstÿnopÿqprÿrrsÿrrsÿqqvÿqprÿqprÿqprÿrrrÿqprÿqprÿqprÿpopÿhghÿmllÿqprÿqppÿqppÿqprÿqprÿnopÿqprÿqprÿqprÿrrrÿqppÿqppÿrrrÿrrrÿqppÿqppÿkjkÿutvÿwvvÿwvvÿsssÿqppÿfffÿtttÿwwwÿxxxÿxxxÿxxxÿyxzÿyxzÿxxxÿzxxÿzzzÿzxxÿyxzÿRR[ÿqppÿgggÿCCCÿccnÿGGGÿcccÿwvvÿzxxÿwvvÿutvÿNNOÿVVWÿXWYÿQPRÿJJLÿLLLÿ[[[ÿPPPÿVVVÿWWWÿRRSÿmllÿgggÿqppÿrrsÿihhÿOOOÿjjjÿkkkÿtstÿJJJÿYXZÿedfÿedfÿzxxÿzzzÿzzzÿ}||ÿzzzÿzxxÿ{z{ÿ{z{ÿ{z{ÿzxxÿwvvÿzxxÿzzzÿzxxÿzzzÿzzzÿzzzÿzzzÿyxzÿzzzÿzzzÿyxzÿyxzÿyxzÿzxxÿxwxÿzxxÿxwwÿzxxÿzxxÿzxxÿtttÿrrrÿxwwÿxwwÿwwwÿwwwÿwwwÿwwwÿvvvÿtttÿwwwÿwwwÿwwwÿxxxÿwwwÿxxxÿwwwÿvvvÿvvvÿwwwÿvvvÿtttÿtttÿvvvÿtttÿvvvÿvvvÿvvvÿvvvÿwwwÿvvvÿtttÿsssÿsssÿrrrÿrrrÿrrsÿqppÿsssÿtttÿrrsÿrrrÿrrrÿnnoÿkkkÿgggÿihhÿkkkÿihjÿnnnÿmllÿlklÿMMYÿnnnÿEDDÿmllÿ>>Fÿ>>AÿLLLÿdcdÿkkkÿmllÿmllÿmllÿqppÿtstÿtstÿtstÿwvvÿxwxÿxxxÿzxxÿxwwÿxxxÿwwwÿxxxÿzzzÿzxxÿzzzÿzzzÿzzzÿxxxÿxxxÿxwxÿwvvÿtttÿsssÿtstÿtttÿtstÿsssÿqppÿrrrÿrrrÿrrrÿpopÿoooÿqppÿoooÿnnnÿnnnÿpopÿpopÿoooÿpopÿoooÿoooÿoooÿhghÿ^^_ÿ___ÿtttÿutvÿwwwÿxwxÿxwxÿsssÿwwwÿzzzÿyxzÿwwwÿxxxÿxxxÿyxzÿwwwÿvvvÿwwwÿyxzÿxxxÿzzzÿzzzÿzzzÿzzzÿxxxÿxxxÿyxzÿxwxÿxxxÿxxxÿxxxÿxxxÿyxzÿxxxÿyxzÿxxxÿwwwÿxxxÿxxxÿxxxÿxxxÿxxxÿxwxÿwwwÿxxxÿxxxÿstvÿvvvÿvvwÿvvwÿvvvÿwwwÿwwwÿwwwÿwwwÿwwwÿvvwÿvvwÿxwxÿwwwÿwwwÿxwxÿxwxÿxwxÿxxxÿwwwÿwwwÿxwxÿwwwÿxwxÿwwwÿwwwÿxwxÿxwxÿwwwÿwwwÿxxxÿxwxÿghjÿghjÿvvwÿvvvÿ^^^ÿqppÿnopÿrrsÿrrsÿqprÿqprÿrrrÿQPRÿedfÿMLOÿlnoÿrrsÿrrsÿrrsÿrrsÿqprÿqprÿqprÿrrsÿqprÿrrsÿqprÿqprÿqprÿqprÿgggÿlklÿrrrÿqprÿqppÿrrrÿrrrÿqprÿrrrÿrrrÿrrrÿqppÿrrrÿrrrÿrrrÿrrrÿrrrÿsssÿkkkÿtttÿxwwÿwvvÿtstÿrrrÿoooÿwvvÿxwxÿxxxÿyxzÿzxxÿyxzÿyxzÿzxxÿzxxÿzxxÿyxzÿzxxÿOOSÿqppÿfffÿCCCÿffuÿGGGÿcccÿxwwÿxwxÿzzzÿqppÿ\[\ÿFFGÿXWYÿpopÿtttÿtttÿxwwÿihhÿ[[[ÿWWWÿRRSÿgggÿmllÿrrrÿwvvÿtttÿRRSÿoooÿzxxÿ|{|ÿ|{|ÿqppÿwvvÿzxxÿzzzÿzzzÿzxxÿ{{{ÿ{z{ÿzzzÿ{z{ÿzxxÿtttÿxwwÿzxxÿzxxÿzzzÿzzzÿzxxÿzxxÿyxzÿzzzÿyxzÿzzzÿzzzÿzxxÿzxxÿyxzÿzzzÿzxxÿzzzÿzxxÿzxxÿxwxÿxwxÿwvvÿrrrÿyxzÿxwxÿxxxÿxwxÿxxxÿwwwÿwwwÿwwwÿvvvÿxxxÿwwwÿxxxÿwwwÿwwwÿwwwÿvvwÿvvwÿvvvÿtttÿvvvÿvvvÿvvvÿvvwÿwwwÿvvvÿvvvÿvvvÿwwwÿvvvÿvvvÿsssÿsssÿsssÿrrrÿqppÿtstÿsssÿtttÿqprÿqppÿoooÿmllÿedfÿcccÿcccÿdddÿbbcÿnnnÿmlnÿmllÿJJSÿihhÿTTTÿ^^_ÿDCdÿ>>AÿLKLÿbbbÿihjÿihjÿggjÿkjkÿnnoÿqppÿsssÿrrrÿsssÿtttÿtttÿwvvÿtttÿtttÿxwwÿvvwÿwvvÿxwwÿwvvÿzxxÿzxxÿwvvÿtttÿwvvÿsssÿrrrÿqprÿqppÿqppÿrrrÿoooÿoooÿoooÿpopÿoooÿoooÿmlnÿmlnÿmlnÿmllÿmllÿmllÿoooÿnnnÿnnnÿmlnÿmlnÿihjÿ```ÿNNOÿLLLÿkkkÿvvvÿ\\^ÿrrrÿfffÿqppÿtttÿklnÿYXZÿjjjÿwwwÿvvvÿ^^^ÿsssÿtttÿxxxÿfffÿvvvÿvvvÿvvvÿ\\\ÿZZZÿtttÿvvwÿwwwÿwwwÿxwxÿvvvÿmllÿUTVÿedfÿsstÿwwwÿZZ[ÿ___ÿtttÿwwwÿqppÿnopÿqprÿhklÿvvvÿvvvÿwwwÿtttÿsssÿtttÿtttÿvvvÿtttÿvvvÿvvvÿvvvÿtttÿvvvÿvvwÿvvvÿvvwÿvvwÿvvwÿvvwÿvvvÿvvvÿtttÿvvvÿvvvÿtttÿtttÿtttÿvvvÿvvvÿvvvÿwwwÿvvvÿvvvÿvvvÿqppÿhklÿsssÿqppÿihhÿnnnÿnopÿnopÿnopÿnopÿoooÿnopÿjjjÿlnoÿoooÿnopÿnopÿoooÿnopÿnopÿnopÿoooÿnnoÿqppÿpopÿrrrÿnnnÿnnoÿqprÿoosÿmllÿmlnÿnopÿoooÿoooÿnopÿoooÿnopÿlnoÿnopÿpopÿqprÿoooÿqppÿnnoÿqprÿpopÿlnoÿijkÿrrrÿtttÿtstÿrrsÿsssÿrrrÿutvÿxwwÿxwwÿwvvÿwvvÿxwwÿxwwÿxwwÿxwwÿxwwÿvvwÿvvwÿRR[ÿoooÿdddÿEDDÿ^^lÿGGGÿdddÿwvvÿzxxÿzxxÿzxxÿzxxÿwvvÿqppÿ}||ÿ{{{ÿ|{|ÿ{{{ÿ}||ÿ{z{ÿzxxÿzxxÿzxxÿzxxÿ{{{ÿzzzÿ{z{ÿ^^_ÿwvvÿ{z{ÿwvvÿzzzÿzxxÿxwwÿtttÿzzzÿzzzÿzzzÿ{{{ÿ{{{ÿzxxÿ{z{ÿtttÿzxxÿzxxÿzxxÿzzzÿ{z{ÿzzzÿzxxÿyxzÿzzzÿzxxÿzzzÿyxzÿyxzÿzxxÿzxxÿyxzÿyxzÿxwxÿzxxÿzxxÿzxxÿzxxÿzxxÿwvvÿqppÿxwwÿxwwÿxxxÿwwwÿxxxÿxxxÿvvvÿutvÿwwwÿvvvÿvvvÿxwwÿxwwÿxwwÿwwwÿvvvÿvvvÿwwwÿvvvÿvvvÿutvÿwwwÿutvÿvvvÿvvvÿtttÿvvvÿvvvÿtttÿvvvÿqppÿsssÿrrrÿqppÿsstÿtttÿtttÿtttÿrrrÿrrrÿnnoÿihhÿihhÿdddÿgggÿcccÿ`_`ÿnnnÿmlnÿlklÿRR`ÿZZZÿ```ÿRRSÿCC}ÿ>=>ÿFFFÿUTVÿYXZÿZZZÿYXZÿZZ[ÿ\\\ÿ^^^ÿ___ÿ```ÿ```ÿ```ÿbbcÿcccÿbbcÿa`bÿbbbÿcccÿbbcÿcccÿcccÿdddÿcccÿcccÿcccÿcccÿbbbÿ```ÿ```ÿ___ÿ^^^ÿ^^^ÿ___ÿ^^^ÿ^^^ÿ^^^ÿ^\^ÿ\\\ÿZZZÿ[[[ÿ[[[ÿ\\\ÿ\[\ÿ\\\ÿ\\\ÿ^\^ÿ^\^ÿ\[\ÿ\[\ÿZZZÿTTTÿHGHÿBBCÿSRTÿbbbÿbbbÿJJJÿGHJÿ```ÿa`bÿ^^_ÿYXZÿfffÿdddÿdddÿ___ÿ^^^ÿdddÿdddÿ^^^ÿ^^_ÿdddÿ```ÿRRRÿdcdÿdddÿdcdÿdddÿcccÿdcdÿdddÿbbbÿ___ÿGGGÿedfÿbbbÿTSTÿXXXÿbbbÿcccÿdddÿKKKÿVVVÿ\\\ÿdddÿdcdÿdddÿcccÿbbbÿbbcÿbbbÿcccÿbbcÿcccÿbbcÿcccÿcccÿcccÿbbcÿcccÿcccÿcccÿcccÿcccÿcccÿcccÿcccÿcccÿbbcÿbbbÿcccÿcccÿcccÿcccÿcccÿcccÿcccÿcccÿbbcÿcccÿXXXÿUTVÿZZZÿ\\^ÿ^^_ÿ___ÿ^^^ÿ___ÿ^^^ÿ`_`ÿ`_`ÿ\\\ÿ```ÿ___ÿ___ÿ`_`ÿ^^_ÿ^^_ÿ^^_ÿ___ÿ^^_ÿ^^_ÿ___ÿ```ÿ^^_ÿ```ÿ^^_ÿ^^^ÿ^^_ÿ^^^ÿ^^^ÿ`_`ÿ^^_ÿ^^^ÿ___ÿ`_`ÿ^^^ÿ`_`ÿ^^_ÿ__bÿ```ÿ`_`ÿ`_`ÿ```ÿ___ÿ```ÿbbbÿZZ[ÿ^\^ÿbbbÿcccÿcccÿa`bÿcccÿcccÿcccÿdddÿcccÿdddÿdddÿdddÿdddÿdddÿdddÿcccÿdddÿJJSÿoooÿdddÿEDDÿ[[pÿGGGÿcccÿvvwÿxxxÿxwwÿzxxÿzxxÿxwwÿsssÿ|{|ÿ{{{ÿ{{{ÿ}||ÿ{{{ÿ{z{ÿzzzÿzxxÿ{z{ÿ{z{ÿ{{{ÿzzzÿ|{|ÿihhÿwvvÿ|{|ÿzxxÿtttÿ{{{ÿ|{|ÿ{{{ÿtstÿ{{{ÿ}||ÿzzzÿ{{{ÿ{{{ÿ}||ÿqppÿ}||ÿ{z{ÿ{z{ÿ{z{ÿzzzÿ{z{ÿzzzÿ{z{ÿzzzÿzzzÿzzzÿzzzÿzxxÿyxzÿzzzÿzzzÿzzzÿyxzÿzxxÿzzzÿzxxÿzxxÿzxxÿzxxÿqppÿrrsÿxwxÿxwwÿwwwÿvvwÿwwwÿvvvÿwwwÿwvvÿvvwÿxwwÿzxxÿxwwÿxwwÿxxxÿwwwÿvvvÿwwwÿvvvÿvvvÿvvvÿwwwÿvvvÿvvvÿvvwÿtttÿtttÿvvwÿwvvÿtttÿsssÿrrrÿnnnÿqppÿqppÿtttÿtttÿtttÿsssÿrrrÿqppÿkkkÿihhÿbbcÿcccÿ^^^ÿ\\\ÿnnoÿmllÿlklÿMMzÿRRRÿfffÿNNNÿMMÿ>>AÿAAJÿFEIÿFEIÿEENÿFEIÿBBOÿBBOÿCCIÿCCIÿCCIÿEENÿEENÿJJSÿLKNÿHHOÿEENÿGGJÿGGGÿFEIÿFFFÿFFGÿFEIÿFEIÿFEIÿFFGÿFFGÿHGHÿEENÿJJLÿJJLÿLKNÿJJLÿHHOÿHHOÿGGJÿGGOÿGGOÿGGJÿHHOÿIHJÿJJLÿJJLÿGGJÿGGJÿEENÿBBOÿBBOÿFEIÿBBOÿAAJÿBBOÿ>>Fÿ>>Fÿ>>IÿAAJÿJJLÿGHJÿAAEÿMLOÿLKNÿMLRÿCCIÿJKLÿJJSÿHHOÿGGOÿAAJÿHHOÿHHOÿJJLÿCCIÿLKNÿLKNÿAAJÿGGOÿEENÿLKNÿHHOÿHHOÿHHOÿMLOÿHHOÿAAEÿGGOÿHHOÿHHOÿHHOÿFEIÿHHOÿHHOÿHHOÿHHOÿAAEÿGGOÿHHOÿHHOÿHHOÿHHOÿHHOÿGGOÿGGOÿGGOÿGGOÿEENÿEENÿEENÿEENÿEENÿGGOÿGGOÿEENÿEENÿEENÿGGOÿEENÿEENÿEENÿEENÿEENÿFEIÿGGOÿFEIÿGGJÿHGHÿDFGÿGGJÿGHJÿFEIÿFEIÿGGJÿAAEÿAAEÿGGGÿEDFÿDFGÿDFGÿHGHÿCCIÿEDFÿFFFÿAAEÿAAEÿFEIÿFEIÿFEIÿDFGÿFEIÿDFGÿFEIÿEDFÿFEIÿCCIÿEDFÿ>=>ÿAAEÿ>>AÿFEIÿBBOÿ>>FÿGGJÿJJLÿJJLÿAAJÿ>>FÿFEIÿEENÿFEIÿ99BÿFEIÿ<<<ÿCCIÿFEIÿFEIÿ99BÿAAJÿ>>IÿFEIÿCCIÿ99BÿFEIÿAAJÿEENÿEENÿEENÿGGOÿGGOÿHHOÿHHOÿHHOÿEENÿHHOÿHHOÿGGOÿGGOÿHHOÿEENÿCCIÿoooÿcccÿEDDÿ[[pÿGGGÿcccÿutvÿzzzÿzzzÿxxxÿzxxÿzxxÿwvvÿrrrÿ{{{ÿ{{{ÿ{{{ÿ}||ÿ{z{ÿzzzÿ{{{ÿ{z{ÿ|{|ÿ{{{ÿ{{{ÿ|{|ÿqppÿwvvÿ}||ÿ{{{ÿ|{|ÿsssÿ{{{ÿ|{|ÿ}||ÿtttÿzzzÿ}||ÿ{{{ÿ{{{ÿ{z{ÿqprÿyxzÿ{z{ÿ|{|ÿzzzÿzzzÿzzzÿzxxÿ{z{ÿzzzÿzzzÿyxzÿzzzÿyxzÿyxzÿzzzÿzxxÿyxzÿzxxÿyxzÿzzzÿzxxÿzxxÿzzzÿzxxÿzzzÿzxxÿrrrÿwvvÿwwwÿwwwÿxxxÿxwxÿvvvÿwvvÿxwwÿxxxÿzxxÿzxxÿxwxÿvvwÿwwwÿvvvÿwwwÿwwwÿvvwÿxwxÿwwwÿwwwÿxwxÿvvvÿwwwÿvvwÿtttÿtttÿtttÿsssÿsssÿoooÿqppÿrrrÿsssÿqprÿrrrÿqprÿqprÿrrrÿnnoÿhghÿcccÿ```ÿ\\\ÿ[[[ÿnnnÿnnoÿnnnÿHHyÿSSSÿdddÿPPPÿ__€ÿ>>FÿCC`ÿCCZÿ??Nÿ>>Iÿ>>Fÿ>>Fÿ>>Fÿ>>Fÿ>>Fÿ>>Fÿ>>Iÿ@@TÿDCdÿMMÿgfÿtt„ÿppƒÿgfÿZZ‚ÿIIÿ==}ÿ==}ÿDDoÿ??ƒÿIIÿgfÿtt„ÿZZ‚ÿ==}ÿCCZÿ@@Vÿ??Nÿ??Nÿ??Nÿ>>Iÿ??Nÿ@@TÿCCZÿCC`ÿCC`ÿCCZÿ@@Vÿ@@Tÿ>>Iÿ>>Fÿ>>Iÿ>>Iÿ>>Iÿ>>Iÿ>>Iÿ>>Fÿ99Bÿ99Bÿ>>Iÿ??Nÿ@@VÿDCdÿ==}ÿEEÿIIÿMMÿMMÿQQ‚ÿTU†ÿQQ‚ÿQQ‚ÿQQ‚ÿQQ‚ÿTU†ÿQQ‚ÿQQ‚ÿQQ‚ÿQQ‚ÿTU†ÿQQ‚ÿQQ‚ÿTU†ÿQQ‚ÿTU†ÿQQ‚ÿTU†ÿQQ‚ÿVVÿTU†ÿVVÿZZ‚ÿZZ‚ÿZZ‚ÿ__€ÿ__€ÿccÿccÿccÿhh„ÿccÿhh„ÿhh„ÿgfÿmm‚ÿjj€ÿmm‚ÿmm‚ÿjj€ÿmm‚ÿmm~ÿppƒÿmm‚ÿmm‚ÿppƒÿmm‚ÿppƒÿppƒÿppƒÿtt„ÿppÿppƒÿppƒÿmm‚ÿppƒÿppÿtt„ÿvvÿtt}ÿtt„ÿmm~ÿppƒÿppƒÿmm‚ÿmm‚ÿjj€ÿjj€ÿjj€ÿjj€ÿmm‚ÿjj€ÿmm‚ÿjj€ÿjj€ÿmm‚ÿjj€ÿgfÿmm‚ÿmm‚ÿppƒÿmm~ÿppƒÿppƒÿmm~ÿppƒÿmm~ÿmm‚ÿmm‚ÿmm‚ÿjj€ÿmm~ÿppƒÿppƒÿppÿccÿCC}ÿCCuÿ==}ÿMMÿjj€ÿppƒÿtt„ÿtt„ÿmmxÿvvÿmmxÿtt„ÿtt„ÿppÿppÿppÿppÿppƒÿppÿppƒÿjj€ÿjj€ÿppƒÿmm‚ÿmm‚ÿjj€ÿgfÿhh„ÿgfÿhh„ÿgfÿhh„ÿgfÿccÿhh„ÿccÿ>>FÿQQ‚ÿihhÿXXXÿFFFÿVVnÿIHHÿcccÿvvwÿzzzÿzzzÿzxxÿyxzÿzzzÿvvwÿtstÿzxxÿ{{{ÿ}||ÿ}||ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ}||ÿ{{{ÿ}||ÿwvvÿtstÿ{{{ÿ{{{ÿ{{{ÿ{z{ÿtstÿ{z{ÿ{{{ÿ}||ÿtttÿzzzÿ}||ÿ|{|ÿ{z{ÿzxxÿzzzÿyxzÿyxzÿyxzÿyxzÿ{z{ÿyxzÿ{z{ÿzzzÿyxzÿzxxÿzxxÿzxxÿzxxÿyxzÿzxxÿzxxÿxwwÿzxxÿxwwÿutvÿxwxÿyxzÿzzzÿ{{{ÿyxzÿxwwÿxwwÿqppÿsssÿzxxÿxxxÿvvvÿvvvÿxwwÿxxxÿxwwÿxxxÿxwwÿvvvÿvvwÿwwwÿxxxÿwwwÿvvvÿwwwÿvvwÿxxxÿwwwÿtttÿvvwÿwwwÿwwwÿutvÿtttÿvvvÿrrsÿsssÿrrrÿrrsÿqppÿrrrÿsssÿtstÿsssÿqppÿjjjÿfffÿbbbÿbbcÿ___ÿ[[[ÿoooÿnnnÿnnoÿVVfÿXXXÿfffÿfffÿSSSÿRRRÿNNNÿIHHÿEDDÿCCCÿBBBÿBBBÿBBBÿBBBÿBBBÿBBBÿCCCÿJJJÿVVVÿbbbÿkkkÿoooÿoooÿmllÿgggÿcccÿ___ÿ\\\ÿ\\\ÿ```ÿihhÿqppÿjjjÿZZZÿNNNÿGGGÿEDDÿCCCÿBBBÿBBBÿCCCÿFFFÿIHHÿJJJÿJJJÿKKKÿGGGÿEDDÿBBBÿ@@@ÿCCCÿBBBÿCCCÿEDDÿCCCÿCCCÿ@@@ÿ@@@ÿA@BÿEDDÿIHHÿNNNÿTTTÿZZZÿ___ÿ___ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿbbcÿbbcÿcccÿcccÿcccÿ```ÿ```ÿ```ÿa`bÿbbbÿ```ÿ```ÿ```ÿcccÿbbbÿcccÿcccÿbbbÿcccÿfffÿdddÿfffÿfffÿfffÿfffÿihhÿihhÿihhÿjjjÿjjjÿijkÿjjjÿkkkÿkkkÿhklÿmllÿmllÿmllÿmllÿmllÿnnnÿnnnÿlnoÿmllÿmllÿnnnÿoooÿlnoÿnnnÿlnoÿlnoÿnnnÿnnnÿnnnÿoooÿqppÿqppÿnopÿoooÿlnoÿnnnÿnnnÿnnnÿlnoÿmllÿhklÿmllÿkkkÿmllÿmllÿmllÿnnnÿnnnÿnnnÿjjjÿmllÿmllÿmllÿnnnÿmllÿmllÿmllÿmlnÿmllÿnnnÿnnnÿmllÿihhÿnnnÿnnnÿnnnÿoooÿdddÿ[[[ÿSSSÿSSSÿ\\\ÿhghÿmllÿoooÿoooÿjjjÿoooÿjjjÿoooÿoooÿnnnÿihhÿoooÿmllÿnnnÿnnnÿklnÿihhÿkkkÿjjjÿjjjÿihjÿihhÿjjjÿjjjÿjjjÿjjjÿihhÿjjjÿihhÿgggÿgggÿgggÿSSSÿXXXÿPPPÿTTTÿFFFÿ[[wÿLLLÿfffÿtttÿxwxÿxxxÿzxxÿxxxÿxxxÿzxxÿvvwÿsssÿ|{|ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ|{|ÿ{z{ÿ|{|ÿ{{{ÿ}||ÿ}||ÿzxxÿnnnÿ{{{ÿ{{{ÿ{z{ÿzzzÿ{z{ÿtstÿ{{{ÿ}||ÿ}||ÿwvvÿzzzÿ{z{ÿ}||ÿrrrÿzxxÿzxxÿzzzÿzzzÿzxxÿzzzÿzzzÿzzzÿzzzÿzzzÿzxxÿzzzÿxwwÿzxxÿxwxÿzxxÿzxxÿyxzÿxwxÿxwxÿxwwÿvvwÿxwxÿzzzÿ{z{ÿzxxÿzzzÿzxxÿrrrÿmllÿsssÿxwxÿxxxÿzzzÿxwwÿxwwÿxwwÿxwwÿvvwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿvvvÿwwwÿwwwÿwwwÿwwwÿvvvÿtttÿsssÿutvÿtstÿsssÿtttÿsssÿtttÿutvÿsssÿtttÿrrrÿnnnÿnnnÿkkkÿdddÿdddÿdddÿdcdÿnnnÿnnnÿmlnÿON`ÿ___ÿjjjÿihhÿjjjÿihhÿgggÿcccÿ___ÿ[[[ÿ[[[ÿXXXÿXXXÿ[[[ÿ\\\ÿ\\\ÿ```ÿfffÿkkkÿgggÿbbbÿ\\\ÿVVVÿOOOÿKKKÿGGGÿFFFÿFFFÿGGGÿJJJÿSSSÿ___ÿjjjÿjjjÿdddÿ```ÿ\\\ÿ[[[ÿ[[[ÿ[[[ÿ___ÿ```ÿcccÿcccÿcccÿbbbÿ```ÿ\\\ÿXXXÿTTTÿSSSÿPPPÿOOOÿOOOÿNNNÿPPPÿTSTÿZZZÿ___ÿdddÿffgÿgggÿfffÿghjÿjjjÿjjjÿjjjÿjjjÿihhÿjjjÿihhÿihhÿihhÿihhÿihhÿghjÿihhÿihhÿihhÿihhÿihhÿihhÿihhÿihhÿihhÿihhÿihhÿihhÿihhÿihhÿgggÿdghÿfffÿfffÿfffÿdddÿdddÿdddÿdddÿcccÿcccÿbbbÿcccÿ```ÿbbbÿ```ÿ___ÿ```ÿ___ÿ___ÿ___ÿ`_`ÿ^^^ÿ^^^ÿ^^^ÿ^^^ÿ^^^ÿ[[[ÿ[[[ÿ[[[ÿ^^^ÿ^^^ÿ^^^ÿ^^^ÿ^^^ÿ^^^ÿZZZÿWWWÿRRRÿNNOÿNNNÿNNNÿKKKÿLLLÿLLLÿKKKÿKKKÿJJJÿLLLÿJJJÿKKKÿKKKÿKKKÿKKKÿJJJÿFFFÿLLLÿKKKÿKKKÿLLLÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿLLLÿMLNÿIHHÿKKKÿLLLÿOOOÿVVVÿ[[[ÿihhÿjjjÿgggÿgggÿ^^^ÿTTTÿTTTÿSSSÿPPPÿTTTÿOOOÿVVVÿVVVÿVVVÿQPRÿXXXÿVVVÿZZZÿ[[[ÿZZZÿWWWÿ\\\ÿ\\\ÿ\\\ÿXXXÿ\[\ÿ___ÿ^^^ÿbbcÿbbbÿ```ÿcccÿbbcÿdddÿdddÿcccÿ```ÿVVVÿRRRÿSSSÿFFFÿccxÿfffÿqprÿxwwÿxxxÿzxxÿzxxÿzxxÿzxxÿzxxÿzxxÿnnnÿzxxÿzzzÿ|{|ÿ{{{ÿ{z{ÿ|{|ÿ|{|ÿzzzÿ{{{ÿ}||ÿ|{|ÿ|{|ÿkjkÿ{{{ÿ{{{ÿzzzÿzzzÿ{{{ÿ|{|ÿtstÿ{z{ÿ{{{ÿ{{{ÿwvvÿzxxÿ{z{ÿqppÿyxzÿzxxÿzxxÿzxxÿyxzÿzxxÿyxzÿzxxÿzzzÿzzzÿyxzÿzzzÿyxzÿzzzÿxwxÿyxzÿzxxÿzzzÿzxxÿxwxÿxwxÿxwwÿzzzÿxwxÿyxzÿzxxÿyxzÿzxxÿzxxÿtttÿpopÿtstÿxxxÿwwwÿxwwÿzxxÿxwwÿxwwÿxxxÿxxxÿwwwÿxwxÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿxxxÿvvvÿwwwÿwwwÿwwwÿxwwÿwwwÿtttÿvvvÿvvvÿutvÿsssÿvvvÿtttÿoooÿrrrÿqppÿmllÿmllÿmlnÿihhÿgggÿdddÿcccÿmllÿpopÿmlnÿMMYÿIHHÿBBBÿBBBÿCCCÿCCCÿFFFÿKKKÿNNNÿPPPÿPPPÿPPPÿRRRÿOOOÿOOOÿOOOÿLLLÿFFFÿBBBÿCCCÿFFFÿIHHÿNNNÿRRRÿVVVÿZZZÿ\\\ÿZZZÿWWWÿRRRÿJJJÿEDDÿCCCÿHGHÿLLLÿPPPÿRRRÿSSSÿSSSÿPPPÿRRRÿOOOÿOOOÿLLLÿNNNÿOOOÿRRRÿTTTÿXWYÿVVVÿXXXÿXXXÿ[[[ÿ[[[ÿ[[[ÿWWWÿPPPÿIHHÿBBBÿ??@ÿ??@ÿ??@ÿ@@@ÿCCCÿFFFÿGGGÿGGGÿGGGÿFFGÿGGGÿFFFÿFFFÿGGGÿGGGÿGGGÿGGGÿGGGÿFFFÿFFFÿGGGÿGGGÿGGGÿGGGÿFFFÿGGGÿGGGÿFFFÿGGGÿIHHÿGGGÿGGGÿIHHÿIHHÿIHHÿIHHÿIHHÿJJJÿJJJÿKKKÿLLLÿLLLÿLLLÿLLLÿLLLÿMLNÿNNNÿNNNÿOOOÿOOOÿOOOÿOOOÿOOOÿOOOÿOOOÿOOOÿOOOÿPPPÿPPPÿPPPÿRRRÿPPPÿOOOÿOOOÿOOOÿOOOÿPPPÿSSSÿWWWÿ[[[ÿ^^^ÿ```ÿ```ÿ___ÿ___ÿ```ÿbbbÿbbbÿ^^^ÿ`_`ÿ```ÿbbbÿ```ÿbbbÿ```ÿ```ÿbbbÿbbbÿ```ÿ```ÿ```ÿ```ÿbbbÿ```ÿ```ÿa`bÿ```ÿ___ÿ___ÿ___ÿ___ÿ^^_ÿ^^^ÿ[[[ÿVVVÿLLLÿEDDÿCCCÿCCCÿCCCÿJJJÿRRRÿXXXÿWWWÿXXXÿXXXÿXWYÿVVVÿVVVÿVVVÿTSTÿTTTÿTTTÿRRRÿRRRÿSSSÿPPPÿPPPÿNNNÿNNNÿLLLÿLLLÿLLLÿKKKÿKKKÿKKKÿKKKÿJJJÿJJJÿJJJÿJJJÿJJJÿJJJÿLLLÿPPPÿRRRÿpopÿMMÿvvwÿxwxÿvvwÿyxzÿxxxÿyxzÿyxzÿzzzÿzxxÿyxzÿxwxÿrrsÿzxxÿzzzÿ{{{ÿ{{{ÿ}||ÿzzzÿ}||ÿ{{{ÿ|{|ÿ|{|ÿ}||ÿrrsÿ|{|ÿ|{|ÿ}||ÿ|{|ÿ|{|ÿ}||ÿ}||ÿtstÿ|{|ÿ}||ÿ|{|ÿtttÿtttÿhghÿzxxÿyxzÿxwxÿxwwÿzxxÿzzzÿzzzÿzzzÿyxzÿyxzÿyxzÿzxxÿzxxÿzxxÿzxxÿyxzÿzzzÿzxxÿzxxÿxwxÿxwxÿzxxÿzxxÿzxxÿzzzÿzxxÿzzzÿzzzÿyxzÿzxxÿwvvÿxwwÿtttÿxwwÿxwwÿxwwÿwwwÿyxzÿxwwÿxwwÿxwxÿxxxÿxwxÿxwwÿxwwÿxwxÿwwwÿwwwÿxxxÿwwwÿxwwÿwwwÿxxxÿtttÿwwwÿwvvÿtttÿwwwÿwwwÿvvvÿvvvÿsssÿtttÿsssÿnnnÿqppÿlnoÿoooÿjjjÿgggÿlklÿfffÿnnoÿnnoÿmlnÿZZ\ÿON`ÿQQiÿLLpÿMMzÿMMÿQQ{ÿVVÿVVÿZZ~ÿZZ~ÿVVÿZZ~ÿQQ{ÿVVÿVVÿQQ‚ÿOOvÿQQiÿRR`ÿQQ^ÿMMYÿSSVÿMMYÿRR[ÿMMYÿOOXÿPPXÿOOSÿRR[ÿQQ^ÿQQiÿQQ{ÿQQ‚ÿZZ‚ÿZZ‚ÿ__€ÿ__€ÿ__€ÿccÿccÿ__€ÿ__€ÿZZ~ÿ__vÿ__€ÿccÿgfÿccxÿccxÿhhyÿgfÿgfÿgfÿgfÿZZ~ÿMMzÿIIjÿII_ÿDDTÿDDTÿBBOÿBBOÿGGOÿVUaÿQQ^ÿQQ^ÿUU_ÿQQ^ÿUU_ÿQQ\ÿRR[ÿUU_ÿQQ\ÿUU_ÿQQ\ÿRR[ÿUU_ÿPPXÿUU_ÿRR[ÿRR[ÿUU_ÿPPXÿUU_ÿQQ\ÿRR[ÿUU_ÿPPXÿUU_ÿRR[ÿRR[ÿUU_ÿPPXÿRR[ÿRR[ÿRR[ÿUU_ÿMMYÿRR[ÿPPXÿPPXÿUU_ÿOOXÿUU_ÿPPXÿPPXÿVVYÿMMYÿUU_ÿPPXÿPPXÿVVYÿOOXÿVVYÿPPXÿRR[ÿRR[ÿOOXÿPPXÿPPXÿPPXÿVVYÿOOXÿUTWÿPPXÿRR[ÿUU_ÿQQ^ÿVVfÿVUaÿRR`ÿVVfÿQQdÿVVfÿVVfÿVVfÿON`ÿQQdÿVVfÿVVfÿQQiÿVVfÿQQdÿDCVÿQQiÿQQiÿVVfÿQQdÿVVfÿVVfÿQQiÿVVfÿQQiÿYYjÿQQiÿQQiÿVVfÿON`ÿVVfÿQQdÿQQdÿRR`ÿMMYÿRR[ÿOOXÿVVnÿVVnÿON`ÿRR[ÿOOXÿOOXÿRR`ÿMMYÿRR`ÿQQ^ÿOOXÿQQ\ÿMMYÿRR[ÿOOXÿOOXÿPPXÿJJSÿRR[ÿOOXÿOOXÿRR[ÿMLRÿPPXÿOOSÿOOSÿOOXÿMLRÿPPXÿMMYÿMMYÿMMYÿJJSÿOOXÿOOSÿPPXÿRR[ÿMMYÿppƒÿVVnÿjj€ÿzxxÿxwxÿxwxÿzzzÿzzzÿzxxÿzzzÿzzzÿzxxÿrrsÿvvvÿzxxÿjjjÿxwwÿzzzÿ{z{ÿ{{{ÿ}||ÿ|{|ÿ{{{ÿ|{|ÿ|{|ÿ}||ÿtstÿzxxÿ}||ÿ|{|ÿ|{|ÿ}||ÿ}||ÿ|{|ÿ}||ÿrrrÿ}||ÿ}||ÿ|{|ÿtttÿsssÿvvwÿzxxÿyxzÿyxzÿzxxÿzxxÿzzzÿzzzÿ{z{ÿzzzÿzzzÿyxzÿzzzÿzxxÿyxzÿzzzÿyxzÿzzzÿzzzÿzxxÿzzzÿzxxÿzxxÿxwxÿyxzÿzzzÿyxzÿyxzÿzzzÿzxxÿzxxÿzxxÿwvvÿxwwÿxwxÿzxxÿzxxÿxxxÿxwxÿxwwÿxxxÿxxxÿwwwÿwwwÿvvwÿzxxÿzxxÿzxxÿxwxÿzxxÿyxzÿzxxÿxwxÿxwxÿwvvÿwvvÿwvvÿutvÿtttÿvvvÿvvvÿvvvÿutvÿsssÿrrrÿpopÿoooÿkkkÿjjjÿhghÿmllÿnnnÿmlnÿmllÿmlnÿmlnÿnnnÿmllÿmlnÿmlnÿmlnÿkkkÿkkkÿijkÿijkÿihjÿhghÿihjÿihjÿmllÿmllÿnnoÿpopÿnnoÿqppÿtstÿrrrÿsssÿtttÿtttÿwvvÿwvvÿtttÿtttÿtttÿtttÿrrrÿtttÿsssÿrrrÿqppÿpopÿoooÿnnoÿoooÿnnnÿoooÿlklÿihjÿhghÿkkkÿkjkÿmlnÿjjjÿjjjÿihjÿkkkÿkkkÿkkkÿhghÿccfÿdddÿ__bÿZZ\ÿYX[ÿXWYÿSSVÿVVYÿ```ÿzxxÿ|{|ÿ{{{ÿ{{{ÿ|{|ÿ|{|ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{~ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{z{ÿ{z{ÿzzzÿ{{{ÿ{{{ÿ{z{ÿ{{{ÿ{z{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{z{ÿ{z{ÿ{{{ÿ{{{ÿ{z{ÿ{{{ÿ{{{ÿ{{{ÿ{z{ÿ{z{ÿ{{{ÿ{{{ÿ}||ÿ{{{ÿ{{{ÿ{{{ÿ|{|ÿ|{|ÿ|{|ÿ}||ÿ|{|ÿ{{~ÿyxzÿyxzÿxxxÿxwxÿ{{{ÿ{{{ÿ{{{ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿzzzÿxxxÿ{z{ÿxx}ÿyxzÿzzzÿxxxÿvvwÿtttÿrrsÿrrsÿqprÿvvwÿPOQÿsstÿsstÿutvÿutvÿutvÿstvÿutvÿstvÿtttÿutvÿstvÿtstÿtttÿsssÿoooÿrrrÿsssÿsstÿtttÿtstÿtstÿtttÿtstÿtttÿutvÿtstÿutvÿutvÿutvÿutvÿtstÿutvÿutvÿutvÿtstÿutvÿvvvÿutvÿutvÿtttÿvvvÿvvwÿvvwÿvvwÿqprÿoooÿrrsÿqprÿpopÿnnoÿsssÿtstÿrrsÿqppÿmllÿihjÿnnnÿrrsÿxwxÿzxxÿzxxÿxwxÿzxxÿzxxÿxxxÿxwxÿzxxÿzzzÿzzzÿzzzÿmllÿvvvÿzxxÿzxxÿzxxÿlklÿzxxÿzzzÿ}||ÿ}||ÿ|{|ÿ{{{ÿ|{|ÿ{{{ÿ}||ÿ{{{ÿ|{|ÿ}||ÿ}||ÿ}||ÿ{{{ÿ}||ÿ}||ÿ}||ÿ}||ÿtttÿ}||ÿzxxÿ{{{ÿzzzÿtttÿxwwÿxwwÿ{{{ÿ{z{ÿzxxÿzxxÿzzzÿzzzÿzzzÿyxzÿzxxÿzxxÿzzzÿzzzÿzzzÿzxxÿzzzÿzxxÿzzzÿzzzÿzxxÿxwxÿzxxÿzzzÿzxxÿzzzÿzxxÿyxzÿ{z{ÿzxxÿzzzÿzxxÿsssÿxwwÿzzzÿyxzÿyxzÿyxzÿzxxÿzxxÿxwxÿxwxÿxwwÿzxxÿzxxÿxwxÿxwxÿxwwÿzxxÿxxxÿxwxÿxwwÿxwwÿxwwÿvvwÿxwwÿxwwÿwwwÿwwwÿvvvÿvvvÿutvÿtttÿtttÿqppÿmllÿmlnÿdddÿfffÿihhÿbbcÿmlnÿlklÿnnoÿmlnÿmlnÿlklÿlklÿijkÿijkÿjjlÿijkÿihjÿffgÿhghÿfffÿihhÿjjjÿkjkÿmlnÿoooÿpopÿpopÿrrsÿsssÿsssÿtttÿtstÿrrrÿsssÿsssÿsssÿrrrÿtstÿrrrÿrrrÿrrrÿqppÿqppÿqppÿpopÿnnnÿnnoÿnnoÿnnoÿoooÿmlnÿkjkÿjjjÿjjjÿkjkÿjjjÿkjkÿhghÿgggÿgggÿddgÿdddÿdcdÿ`_`ÿa`bÿ__bÿYX[ÿYX[ÿVVYÿUTWÿUTWÿ\[^ÿvvwÿ|{|ÿ{{{ÿ}||ÿ|{|ÿ{{{ÿ{{{ÿ{{{ÿ}||ÿ|{|ÿ|{|ÿ{{{ÿ{{{ÿ|{|ÿ{{~ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{z{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ|{|ÿ}||ÿ|{|ÿ}||ÿ{{{ÿ{{{ÿ|{|ÿ{{{ÿ|{|ÿ}||ÿ{{{ÿ{{{ÿxxxÿyxzÿwwwÿ{z{ÿ}||ÿ}||ÿ}||ÿ|{|ÿ{{{ÿ|{|ÿ|{|ÿzzzÿzzzÿ{z{ÿ{z{ÿyxzÿyxzÿyxzÿijkÿutvÿsstÿtttÿsstÿsssÿrrsÿvvvÿtttÿtttÿtttÿutvÿtttÿutvÿtstÿstvÿutvÿsstÿtttÿutvÿrrsÿkkkÿqprÿstvÿtstÿtstÿutvÿtstÿtttÿtttÿtttÿutvÿtttÿutvÿutvÿutvÿtttÿtttÿtstÿutvÿvvvÿvvvÿwvvÿtttÿtttÿtttÿvvvÿvvvÿvvvÿvvvÿwwwÿqprÿoooÿutvÿsssÿqprÿqprÿtttÿrrsÿutvÿutvÿrrrÿqppÿkjkÿkjkÿoosÿxwwÿzxxÿzxxÿyxzÿvvwÿzxxÿzxxÿzzzÿzzzÿzxxÿqppÿzxxÿyxzÿzxxÿzxxÿzxxÿzzzÿsssÿzzzÿzxxÿzzzÿzzzÿzzzÿ{{{ÿ{{{ÿzzzÿ}||ÿ|{|ÿ}||ÿ}||ÿ}||ÿ}||ÿ}||ÿ~~~ÿ}||ÿ}||ÿrrrÿnnnÿ{{{ÿ}||ÿwvvÿvvwÿzxxÿzxxÿzxxÿzxxÿzzzÿzxxÿzxxÿzzzÿzxxÿzxxÿyxzÿzxxÿzzzÿzzzÿzxxÿyxzÿzzzÿyxzÿyxzÿyxzÿxxxÿzzzÿzxxÿzzzÿ{{{ÿ{{{ÿzzzÿzzzÿ{{{ÿzzzÿ{z{ÿzzzÿpopÿutvÿyxzÿzxxÿzxxÿyxzÿyxzÿzxxÿxwwÿzxxÿxwwÿyxzÿzxxÿzxxÿxwwÿzzzÿxxxÿxwxÿxwwÿxwwÿxwwÿvvwÿvvwÿwvvÿwvvÿwvvÿwwwÿvvwÿwvvÿtttÿvvvÿsssÿqppÿqppÿsssÿfffÿffgÿbbbÿbbcÿnnnÿlklÿoooÿmllÿmllÿmllÿmllÿmllÿmlnÿlklÿjjjÿihhÿhghÿijkÿffgÿhghÿlklÿkkkÿlklÿnnoÿnnnÿoooÿoooÿpopÿqppÿrrrÿrrrÿrrrÿsssÿrrrÿrrrÿrrrÿsssÿsssÿrrrÿqprÿoooÿqppÿpopÿoooÿnnnÿmlnÿmllÿmlnÿnnnÿmllÿmllÿjjjÿjjjÿkkkÿjjjÿihjÿihhÿfffÿedfÿcccÿa`bÿ`_`ÿ^^_ÿ[[[ÿYX[ÿYX[ÿVVYÿVVYÿVVYÿVVWÿZZ\ÿqprÿ}||ÿ|{|ÿ{{{ÿ{{{ÿ|{|ÿ|{|ÿ{{{ÿ}||ÿ}||ÿ}||ÿ|{|ÿ{{{ÿ{{{ÿ|{|ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{z{ÿ{z{ÿ{z{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ|{|ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ|{|ÿ{{{ÿ|{|ÿ}||ÿ}||ÿ}||ÿ{{{ÿ{{{ÿ|{|ÿ}||ÿ{{{ÿ{{{ÿ}||ÿ|{|ÿzzzÿxxxÿ{z{ÿxxxÿ{{{ÿ|{|ÿ|{|ÿ}||ÿ{{{ÿ}||ÿ}||ÿxxxÿ{z{ÿzzzÿ{z{ÿ{{{ÿyxzÿutvÿffgÿtttÿrrsÿsssÿsssÿa`bÿstvÿsssÿtstÿtttÿutvÿtstÿutvÿtstÿtstÿtstÿutvÿtttÿsstÿsstÿrrsÿlklÿrrsÿutvÿutvÿtstÿutvÿtstÿtstÿtstÿutvÿtstÿutvÿutvÿutvÿtstÿutvÿtstÿtttÿutvÿutvÿvvvÿvvvÿvvvÿutvÿutvÿvvvÿutvÿvvvÿutvÿvvwÿsssÿqprÿsssÿtttÿrrrÿrrsÿvvvÿtstÿtstÿtstÿrrsÿpopÿpopÿqprÿmllÿrrrÿxwxÿzxxÿzxxÿxwxÿzxxÿzzzÿzzzÿsssÿtttÿzzzÿxxxÿzxxÿxxxÿzxxÿyxzÿzzzÿzxxÿxwwÿ{{{ÿ{{{ÿzzzÿzxxÿ{{{ÿzzzÿ{{{ÿ{{{ÿ{{{ÿ}||ÿ~~~ÿ}||ÿ}||ÿ}||ÿ}||ÿ|{|ÿ{{{ÿtstÿzzzÿrrsÿtstÿzxxÿzzzÿ{{{ÿzzzÿzxxÿzxxÿ{z{ÿzzzÿzzzÿzxxÿzzzÿzzzÿzzzÿzzzÿzxxÿyxzÿzzzÿzzzÿzzzÿzxxÿzzzÿxxxÿzxxÿzxxÿxxxÿ{z{ÿzzzÿzzzÿzxxÿzzzÿ{{{ÿzzzÿ{{{ÿ{z{ÿwvvÿqprÿzxxÿzxxÿzxxÿzxxÿzxxÿyxzÿzxxÿzxxÿxxxÿzxxÿxwxÿzxxÿzxxÿzxxÿyxzÿzxxÿzxxÿxwwÿxwwÿwvvÿxwwÿvvwÿxxxÿwwwÿvvvÿutvÿwvvÿwwwÿsssÿtstÿoooÿvvvÿrrrÿkjkÿgggÿdddÿdddÿmlnÿnnnÿnnoÿmllÿmllÿkkkÿlklÿmllÿmlnÿjjjÿihjÿgggÿgggÿihhÿffhÿihjÿihjÿkkkÿkjkÿjjjÿmlnÿnnnÿnnnÿmllÿnnnÿnnnÿnnnÿqppÿsssÿrrrÿrrrÿsssÿsssÿsssÿrrrÿpopÿnnnÿnnoÿnnnÿnnnÿnnnÿlklÿlklÿmlnÿnnnÿnnoÿkkkÿggjÿjjjÿffhÿihjÿhghÿihhÿdcdÿbbbÿ``dÿbbcÿa`bÿ^\^ÿZZ[ÿXWYÿVVYÿVVYÿVVYÿUTVÿYX[ÿZZ[ÿ`_`ÿmllÿ|{|ÿ|{|ÿ|{|ÿ{{{ÿ}||ÿ|{|ÿ|{|ÿ{{{ÿ|{|ÿ{{{ÿ{{{ÿ{{{ÿ|{|ÿ|{|ÿ{{{ÿ|{|ÿ{z{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{z{ÿ{z{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{z{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ|{|ÿ{{{ÿ{{{ÿ|{|ÿ}||ÿ{{{ÿ|{|ÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ}||ÿ}||ÿ|{|ÿ}||ÿ{{{ÿyxzÿ{z{ÿxxxÿyxzÿ{{{ÿ{{{ÿ{{{ÿ{{{ÿ}||ÿ|{|ÿxxxÿzzzÿzzzÿzzzÿxwxÿtttÿjjjÿddgÿ```ÿRRRÿMLNÿYXZÿtttÿvvvÿtttÿutvÿtttÿtttÿtttÿutvÿutvÿutvÿtttÿutvÿsstÿutvÿtstÿrrsÿlklÿrrsÿsstÿtstÿutvÿtstÿtstÿtttÿtttÿutvÿtstÿutvÿtttÿutvÿtttÿtttÿtttÿutvÿutvÿvvwÿvvvÿutvÿvvvÿtttÿutvÿvvvÿvvvÿutvÿutvÿvvwÿutvÿtttÿtttÿvvvÿvvvÿvvwÿvvwÿutvÿutvÿvvvÿutvÿtstÿtttÿtstÿrrrÿqprÿvvvÿzzzÿzzzÿyxzÿzxxÿzzzÿoooÿtstÿzxxÿzzzÿzzzÿzzzÿzzzÿxxxÿyxzÿzzzÿxxxÿrrrÿpopÿrrrÿzzzÿ{{{ÿzzzÿzzzÿ{z{ÿ{z{ÿzzzÿzzzÿ{{{ÿ}||ÿ}||ÿ|{|ÿ~~~ÿ}||ÿxwwÿzzzÿ{{{ÿzzzÿzzzÿzzzÿzzzÿ{z{ÿ{z{ÿ{z{ÿzzzÿxxxÿzzzÿzzzÿzzzÿxwxÿzxxÿzzzÿzzzÿzzzÿ{z{ÿ{z{ÿzxxÿzzzÿzxxÿzzzÿzzzÿyxzÿxxxÿzzzÿ{z{ÿzzzÿ{{{ÿzzzÿ{{{ÿ|{|ÿ{{{ÿ{{{ÿ{{{ÿyxzÿqppÿxwxÿyxzÿzzzÿ{z{ÿzzzÿzzzÿzzzÿzzzÿzzzÿxwwÿxwwÿzxxÿxwxÿzzzÿzxxÿzxxÿzxxÿzxxÿxwxÿzxxÿxwwÿxwwÿwwwÿvvvÿvvvÿvvvÿvvvÿvvvÿvvwÿvvvÿsssÿoooÿoooÿnnnÿkkkÿkkkÿgggÿlgeneral-1.3.1/lgc-pg/convdata/reinf0000664000175000017500000002313712140770460014235 00000000000000Poland { unit { nation = pol id = 118 trsp = none delay = 3 str = 10 exp = 0 } } Warsaw { unit { nation = ger id = 11 trsp = none delay = 1 str = 10 exp = 0 } unit { nation = ger id = 38 trsp = none delay = 1 str = 10 exp = 1 } unit { nation = ger id = 0 trsp = none delay = 1 str = 10 exp = 0 } unit { nation = pol id = 118 trsp = none delay = 2 str = 10 exp = 0 } unit { nation = pol id = 118 trsp = none delay = 3 str = 10 exp = 0 } unit { nation = pol id = 118 trsp = none delay = 5 str = 10 exp = 0 } } Norway { unit { nation = ger id = 0 trsp = none delay = 1 str = 10 exp = 1 } unit { nation = ger id = 11 trsp = none delay = 1 str = 10 exp = 0 } unit { nation = nor id = 149 trsp = none delay = 3 str = 10 exp = 0 } unit { nation = nor id = 149 trsp = none delay = 3 str = 10 exp = 0 } } LowCountries { unit { nation = ger id = 0 trsp = none delay = 1 str = 10 exp = 0 } unit { nation = ger id = 0 trsp = none delay = 1 str = 10 exp = 0 } unit { nation = ger id = 0 trsp = none delay = 1 str = 10 exp = 0 } unit { nation = ger id = 0 trsp = none delay = 1 str = 10 exp = 0 } unit { nation = ger id = 19 trsp = none delay = 2 str = 10 exp = 0 } unit { nation = ger id = 19 trsp = none delay = 2 str = 10 exp = 0 } unit { nation = ger id = 11 trsp = none delay = 2 str = 10 exp = 0 } unit { nation = ger id = 104 trsp = none delay = 6 str = 10 exp = 0 } unit { nation = ger id = 104 trsp = none delay = 6 str = 10 exp = 0 } unit { nation = ger id = 104 trsp = none delay = 7 str = 10 exp = 0 } unit { nation = ger id = 104 trsp = none delay = 7 str = 10 exp = 0 } unit { nation = ger id = 104 trsp = none delay = 8 str = 10 exp = 0 } unit { nation = ger id = 104 trsp = none delay = 8 str = 10 exp = 0 } } France { unit { nation = ger id = 0 trsp = none delay = 1 str = 10 exp = 1 } unit { nation = ger id = 11 trsp = none delay = 1 str = 10 exp = 1 } unit { nation = ger id = 19 trsp = none delay = 2 str = 10 exp = 1 } unit { nation = ger id = 0 trsp = none delay = 2 str = 10 exp = 1 } unit { nation = ger id = 47 trsp = 86 delay = 2 str = 10 exp = 1 } unit { nation = ger id = 104 trsp = none delay = 3 str = 10 exp = 0 } unit { nation = ger id = 104 trsp = none delay = 3 str = 10 exp = 0 } unit { nation = ger id = 104 trsp = none delay = 3 str = 10 exp = 0 } unit { nation = ger id = 104 trsp = none delay = 3 str = 10 exp = 0 } unit { nation = ger id = 38 trsp = none delay = 2 str = 10 exp = 1 } } Ardennes { unit { nation = usa id = 379 trsp = 354 delay = 16 str = 10 exp = 2 } unit { nation = usa id = 379 trsp = 354 delay = 16 str = 10 exp = 2 } unit { nation = usa id = 386 trsp = 354 delay = 16 str = 10 exp = 2 } unit { nation = usa id = 371 trsp = none delay = 16 str = 10 exp = 2 } unit { nation = usa id = 376 trsp = none delay = 16 str = 10 exp = 2 } unit { nation = usa id = 355 trsp = none delay = 16 str = 10 exp = 2 } unit { nation = usa id = 377 trsp = none delay = 16 str = 10 exp = 2 } unit { nation = usa id = 363 trsp = none delay = 16 str = 10 exp = 2 } unit { nation = usa id = 367 trsp = none delay = 16 str = 10 exp = 2 } unit { nation = usa id = 393 trsp = none delay = 3 str = 12 exp = 3 } unit { nation = usa id = 393 trsp = none delay = 2 str = 12 exp = 3 } unit { nation = usa id = 390 trsp = none delay = 2 str = 13 exp = 3 } unit { nation = usa id = 339 trsp = none delay = 16 str = 10 exp = 3 } unit { nation = usa id = 343 trsp = none delay = 16 str = 10 exp = 3 } unit { nation = usa id = 347 trsp = none delay = 16 str = 10 exp = 3 } unit { nation = usa id = 347 trsp = none delay = 16 str = 10 exp = 3 } unit { nation = usa id = 346 trsp = none delay = 16 str = 10 exp = 3 } unit { nation = usa id = 346 trsp = none delay = 16 str = 10 exp = 3 } unit { nation = usa id = 377 trsp = none delay = 18 str = 12 exp = 3 } unit { nation = usa id = 364 trsp = none delay = 18 str = 10 exp = 3 } unit { nation = usa id = 364 trsp = none delay = 18 str = 10 exp = 3 } unit { nation = usa id = 363 trsp = none delay = 18 str = 10 exp = 3 } unit { nation = usa id = 363 trsp = none delay = 18 str = 10 exp = 3 } unit { nation = usa id = 376 trsp = none delay = 18 str = 10 exp = 3 } unit { nation = usa id = 376 trsp = none delay = 18 str = 10 exp = 3 } unit { nation = usa id = 371 trsp = none delay = 18 str = 10 exp = 3 } unit { nation = usa id = 368 trsp = none delay = 18 str = 10 exp = 3 } unit { nation = usa id = 368 trsp = none delay = 18 str = 10 exp = 3 } unit { nation = usa id = 384 trsp = 354 delay = 18 str = 12 exp = 3 } unit { nation = usa id = 386 trsp = 354 delay = 18 str = 12 exp = 3 } unit { nation = usa id = 386 trsp = 354 delay = 18 str = 12 exp = 3 } unit { nation = usa id = 386 trsp = 354 delay = 18 str = 12 exp = 3 } unit { nation = usa id = 383 trsp = 354 delay = 18 str = 12 exp = 3 } unit { nation = usa id = 383 trsp = 354 delay = 18 str = 12 exp = 3 } unit { nation = eng id = 213 trsp = 210 delay = 24 str = 13 exp = 3 } unit { nation = eng id = 213 trsp = 210 delay = 24 str = 13 exp = 3 } unit { nation = eng id = 226 trsp = 210 delay = 24 str = 10 exp = 3 } unit { nation = eng id = 202 trsp = none delay = 24 str = 10 exp = 3 } unit { nation = eng id = 202 trsp = none delay = 24 str = 10 exp = 3 } unit { nation = eng id = 192 trsp = none delay = 24 str = 10 exp = 3 } unit { nation = eng id = 192 trsp = none delay = 24 str = 10 exp = 3 } unit { nation = eng id = 198 trsp = none delay = 24 str = 10 exp = 3 } unit { nation = eng id = 198 trsp = none delay = 24 str = 10 exp = 3 } unit { nation = eng id = 189 trsp = none delay = 24 str = 10 exp = 3 } unit { nation = eng id = 199 trsp = none delay = 24 str = 13 exp = 3 } unit { nation = eng id = 199 trsp = none delay = 24 str = 13 exp = 3 } unit { nation = eng id = 200 trsp = none delay = 24 str = 13 exp = 3 } unit { nation = eng id = 212 trsp = 209 delay = 16 str = 10 exp = 2 } unit { nation = eng id = 212 trsp = 209 delay = 16 str = 10 exp = 2 } unit { nation = eng id = 198 trsp = none delay = 16 str = 10 exp = 2 } unit { nation = eng id = 191 trsp = none delay = 16 str = 10 exp = 2 } unit { nation = eng id = 201 trsp = none delay = 16 str = 10 exp = 2 } unit { nation = eng id = 202 trsp = none delay = 16 str = 10 exp = 2 } } Crete { unit { nation = ger id = 0 trsp = none delay = 3 str = 10 exp = 1 } unit { nation = ger id = 0 trsp = none delay = 3 str = 10 exp = 2 } unit { nation = ger id = 25 trsp = none delay = 3 str = 10 exp = 2 } unit { nation = ger id = 25 trsp = none delay = 3 str = 10 exp = 2 } unit { nation = ger id = 21 trsp = none delay = 4 str = 10 exp = 2 } unit { nation = ger id = 21 trsp = none delay = 4 str = 10 exp = 2 } } Barbarossa { unit { nation = ger id = 1 trsp = none delay = 1 str = 10 exp = 2 } unit { nation = ger id = 1 trsp = none delay = 1 str = 10 exp = 1 } unit { nation = ger id = 12 trsp = none delay = 2 str = 10 exp = 2 } unit { nation = ger id = 21 trsp = none delay = 2 str = 10 exp = 2 } unit { nation = ger id = 48 trsp = none delay = 12 str = 10 exp = 1 } unit { nation = ger id = 44 trsp = none delay = 7 str = 10 exp = 1 } unit { nation = ger id = 104 trsp = 85 delay = 7 str = 10 exp = 1 } unit { nation = ger id = 104 trsp = 85 delay = 12 str = 10 exp = 1 } unit { nation = ger id = 1 trsp = none delay = 2 str = 10 exp = 2 } unit { nation = so id = 273 trsp = none delay = 13 str = 10 exp = 0 } unit { nation = so id = 273 trsp = none delay = 21 str = 10 exp = 0 } unit { nation = so id = 273 trsp = none delay = 21 str = 10 exp = 0 } unit { nation = so id = 273 trsp = none delay = 19 str = 10 exp = 0 } unit { nation = so id = 273 trsp = none delay = 17 str = 10 exp = 0 } unit { nation = so id = 273 trsp = none delay = 15 str = 10 exp = 0 } unit { nation = so id = 273 trsp = none delay = 13 str = 10 exp = 0 } unit { nation = so id = 273 trsp = none delay = 13 str = 10 exp = 0 } } Kiev { unit { nation = ger id = 104 trsp = 86 delay = 18 str = 10 exp = 1 } unit { nation = ger id = 104 trsp = 86 delay = 18 str = 10 exp = 1 } unit { nation = ger id = 48 trsp = none delay = 18 str = 10 exp = 1 } unit { nation = ger id = 45 trsp = none delay = 18 str = 10 exp = 2 } unit { nation = ger id = 104 trsp = none delay = 1 str = 10 exp = 0 } unit { nation = ger id = 104 trsp = none delay = 1 str = 10 exp = 0 } unit { nation = ger id = 104 trsp = none delay = 1 str = 10 exp = 0 } unit { nation = so id = 250 trsp = none delay = 22 str = 10 exp = 1 } unit { nation = so id = 250 trsp = none delay = 19 str = 10 exp = 0 } unit { nation = so id = 273 trsp = none delay = 19 str = 10 exp = 0 } unit { nation = so id = 273 trsp = none delay = 19 str = 10 exp = 0 } unit { nation = so id = 272 trsp = none delay = 11 str = 10 exp = 0 } unit { nation = so id = 273 trsp = none delay = 11 str = 10 exp = 0 } unit { nation = so id = 273 trsp = none delay = 8 str = 10 exp = 0 } unit { nation = so id = 278 trsp = none delay = 8 str = 10 exp = 0 } unit { nation = so id = 273 trsp = none delay = 6 str = 10 exp = 0 } unit { nation = so id = 278 trsp = none delay = 6 str = 10 exp = 0 } unit { nation = so id = 273 trsp = none delay = 4 str = 10 exp = 0 } unit { nation = so id = 273 trsp = none delay = 4 str = 10 exp = 0 } } Sevastapol { unit { nation = ger id = 76 trsp = none delay = 8 str = 11 exp = 3 } unit { nation = ger id = 76 trsp = none delay = 8 str = 11 exp = 3 } unit { nation = ger id = 100 trsp = 87 delay = 8 str = 11 exp = 3 } unit { nation = ger id = 100 trsp = 87 delay = 8 str = 11 exp = 3 } unit { nation = ger id = 100 trsp = 87 delay = 8 str = 12 exp = 3 } unit { nation = ger id = 100 trsp = 87 delay = 8 str = 12 exp = 3 } } lgeneral-1.3.1/lgc-pg/convdata/air2.wav0000664000175000017500000027273312140770460014573 00000000000000RIFFÓuWAVEfmt D¬D¬LIST*INFOINAMair2IARTMarkus Koschanydata}uppqqrtuwy{}€‚ƒ…†‡‡ˆˆˆˆ‡‡†…„‚€}|{zzyxxwvutssrrrsstuvwxyzz{||}~€‚ƒ…†‡‰ŠŒŽ’”•––––•”“‘ŽŽŽŽŽ‹Š‰‡†…„„ƒƒƒƒ„„„„„„ƒƒ‚€~}{ywutsrrrrsstuvvwxyyyyyxwusqonlkkjjjkklmnoooppppppqrstvwy{}€‚„…†‡‰Š‹ŒŽ‘’”••––––•”“’‹‰‡…„‚€€€€‚„†ˆ‹Ž“•—˜™™˜—•“‘ŽŒ‰‡…„‚€€~~~~~}}}|{zxwusqponnnoqrtvxz{|||{zywutrpommlmnoqtvz}€„‡ŠŒŽŽŒŠˆ†„‚€€‚„…‡‰ŒŽ’”–—˜˜—–•“‘Œ‹‰‡…„ƒ€~}}~~€‚‚ƒƒƒƒ‚‚€~}}{zyxwvvvwxy{}€€~|zxvtsqponmmmmnopqstuvwwwwwwwwwwxxyzz{{|||||||{zywvutsstuvx{}€ƒ†‰‹ŒŽ‘‘‘‘‘‘‘‘‘‘‘‘‘‘’’’’’’’‘ŽŒŠ‰‡†…„‚~}{zywvvutssssssttuuvvvvuutsrponlkjihhghhiijklmnnooppqrstuwxyz{|||||{{{z{{|}~€ƒ„……††‡‡ˆ‰Š‹Ž’“”””””“‘ŽŒŠ‰‡††††‡‰‹’“””“’‘Ї…‚}zywwwwxyz{|}}}}}}}}~~~~~~~~€ƒ„…†‡‡ˆˆˆ‡‡‡‡†††…„ƒ‚}|zyxwvvvvwwxyzz{||}~€‚ƒ„…†‡ˆ‰‰Š‹‹ŒŒŒŒŒ‹Š‰ˆ‡†…„ƒ‚€~|zxwutssrrrrrrrrrrsstuvwxyyzz{{{{{{{{{{{{{{{zzyxwvtsrqqqqrsuwy|~€ƒ„†‡‡ˆˆ‡‡†…„„„ƒ„„…†ˆ‰‹ŒŽŽŒ‹Š‰‰ˆˆˆˆˆˆ‰‰‰‰‰‰‰‰‰‰ŠŠŠ‹‹ŒŒŒŒŒŒŒ‹Šˆ‡…ƒ‚€~|{zyyyxxwwvuttttuvxy{}‚ƒ„„„„„ƒ‚€~}}|}}~‚ƒ„…………„ƒ€~||{zyyxwwvuttsrrrrrrstuwx{|~€€€~}{zyxwwvvwwwxyyzzzzzzzzz{{{{||}}~~~€‚ƒƒƒƒƒƒ‚‚€~}||{zyxvuutttttuuvwxyyzzzzzzzz{|}~€€€€~|{zyxwwwwxxyyzz{||}~~€€ƒ…‡‰ŒŽ‘“•—™š›œœ›š™˜——–••””““‘ŽŒŠˆ†„‚€~}{zywvtsrrrrstvwy{|}~~€€ƒ„…‡ˆŠ‹‹ŒŒ‹Š‰‡…ƒ~}||{{{{zzzz{{{||||||{{zyxwvuutssrrrssstuvwxyz{|}}~€‚‚ƒ„„………†††‡‡ˆˆˆˆ‡‡††……„ƒƒ‚€~}{ywutsrssuwy|„†ˆŠ‹ŒŒŽŽ‘’“”••••”’Ž‹ˆ…‚|zwusrpomlkkjjjkklmnopqrsstttuuuuuuuuuuuuuutttttttuvvwxyzz{{|}~€‚ƒ„…††‡‡‡‡††……„ƒƒ‚‚‚ƒƒ„…†‡‰ŠŒ’“”””“‘Œ‰†ƒ€}zxwvvwxy{}‚ƒ„„ƒƒ€~|{yxvvuuuuvvwxyyzzzzzyxwvvuuuvwxz|}€€€~}}||||}~~€€€~}}|||||}}}~~}}}||||||}~€‚ƒ„…†‡‰Š‹ŒŒŒ‹‹Š‰‰‰‰‰ŠŠ‹ŒŽŒŠ‰‡†„ƒ€~~~~€ƒ„†ˆ‰Š‹Œ‹‹Šˆ†„‚€~|{zyxxxxxyyzz{{{||}}}}||{{zyxwvvuuuuuuvvvwwwwxyz{}~€‚ƒ…†‡‡‡‡‡‡‡††……„„„„„„…†ˆ‰‹ŒŽŽŽŒ‹Šˆ‡…„ƒ‚€€~}}|{{{{{{zzzyyxwvvvvvwxy{|}€‚‚‚€~|{yvtrponnnoprtvy{}€€~}|{{{{|}~€‚ƒ„…††††……„ƒƒ‚‚€~}|{zyxxwwwxxyz|}~€‚‚ƒƒƒƒƒƒƒ‚€~~€‚„†ˆ‰‹ŽŽŽŒ‹‰‡…„‚€€€€‚‚‚ƒƒƒƒƒƒƒƒ‚‚€~}{zyxxwwxxyzz{{{{{zyxwwvuuuttttttttuuvwwxyzzzzyxwvutssstuvxz|~€‚ƒ…†ˆ‰Š‹‹ŒŒŒŒ‹‹‹‹‹‹‹ŒŒ‹‹Š‰ˆ‡…„‚€~}}}|{{zzyyyyyyyzzz{{||}~€‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚ƒ„†‡‰‹ŒŽŽŒŠˆ†„‚€~}||||}}~~~~~}}||||}~€‚ƒƒ„„„……††‡ˆ‰Š‹ŒŽŽŒŠˆ†„‚€~}||||||}}~~~~~~}|{ywusqomlkjjjjklmoprsuwxz{}~€€~}|{zzzzz{||}}}}}}|||{{{||}~€‚ƒ„…†‡‡ˆˆˆˆ‡‡††……„ƒƒƒƒƒƒ„„„„…………††‡‰Š‹ŽŽŒ‰†ƒ{wspmjihghikmortwz|~€‚‚‚‚€~}{ywvtrqppppqrsuvwxyz{{{||}}~~~~~~~~~~€‚‚ƒƒƒƒ‚€€€‚„…‡ˆ‰Š‹ŒŒŒŽŽ‘’’’’’‘‹‰‡…ƒ€~}}|||||}~€€‚‚‚‚‚‚‚€€~}{zyxwwvvvvvvvvvvvvuuuttuuwxz|}‚ƒƒƒƒ‚€~~€€€€€€‚„†ˆŠŒŽ‘’’’‘ŽŒŠˆ†ƒ~|{zzzz{||}}}}}|{zyxxwwwxyz{|}~~€€‚‚‚‚‚‚‚€~~}|{{{{{|}}~€‚‚ƒƒ‚‚€~~}{zywvtsqpoonnooprsuwyz|~€€€€~~~€€‚ƒ„…†‡‡ˆ‰‰ŠŠ‹‹ŒŒŒŒŒŽŽŒ‹‰ˆ†…„ƒƒ‚‚€€€€‚‚ƒƒƒƒ‚€~}|}}~‚„…†‡‡‡†„ƒ~|{zzzz{{|}~€€‚‚‚‚€~}{zxwwvvvvvvvvuuuttttssrrqqqppqrrtuvwxyyyzzzzz{{|}~€‚ƒƒƒƒƒ‚€€€€€‚ƒ„…‡‰Š‹ŽŽŒ‹‰‡„‚€}|zyxxxyz|}‚„……………„ƒ‚‚€€€€€€€€€€~}|zywutsrrstuxz}€‚„†‡ˆˆˆ‡††…„„ƒƒ‚‚€€~~}}}}}}~~€€€€€€‚‚ƒƒƒƒƒƒƒ„ƒ„„„„„„„„„„ƒƒƒƒ‚‚‚‚‚‚‚ƒƒ„…†‡ˆˆ‰‰‰ˆˆ‡†…„ƒ‚€€€~~}|zyxwvvvwxyz|}~~~}|{ywvtssrrrrrrrrstuvwy{|~~}|{yxwvvvwxy{|~€‚ƒ„„……††‡‡ˆˆˆˆˆˆˆˆˆˆ‰‰Š‹ŒŒŒŒŒ‹Š‰ˆ‡†††‡ˆ‰ŠŒŽŒŠˆ†„€~}|{{{||}}}}}}|{zzyxxxyyz|}€‚ƒƒƒƒƒ‚~|zxwvuttuvwyz|~‚ƒƒƒƒ„„„„„……††‡‡ˆˆ‡††„ƒ‚€~~}}}}}~~~~~~~€€€}|zxvtrqpoooppqqrrrrrrrrrsstuvwxz|~ƒ„…†‡‡‡†„ƒ~|{yxxxxyz{}~€ƒ„…†‡ˆ‰‰ŠŠ‹‹‹ŒŒŒ‹‹‹Š‰ˆ†…ƒ‚€~~€‚ƒ„„„„„„„ƒƒƒƒ‚‚‚‚‚‚‚€€€€€~~~}}}}|||}}}~€‚‚‚ƒƒ„„„„ƒƒƒ‚‚‚‚€€€€€€~}|{yxwvutsssssssttttuuvwwxyzz{|}~‚„†ˆ‰‹ŒŒŒŒ‹Š‰ˆ†…„‚€~}}}}}~€‚ƒƒƒ‚‚€~}||||}~€ƒ„…†‡‡‡‡††…„„ƒƒƒƒƒ„……†††……„ƒ€~}|{zz{{|}~€€‚‚ƒƒƒ„„„„„…………„„„ƒ‚‚€€€€€€€~~~~~€‚ƒ„„…†‡ˆˆ‰ŠŠŠ‰ˆ‡…„}{yxwvvvvvwwxxxyyzz{{|||||{{zyxwvuuuuuvwyz|~€ƒ„…††‡‡††…„ƒ‚€}{zyxwvuuuuuuuuuvvwwwwwwwvutsrrrrrstuwxz{{||}}}}}~~~€€‚‚ƒ„…†‡ˆ‰‰Š‹‹‹ŒŒŒŒŒŒ‹‹Š‰‡†…ƒ‚‚‚„…†‡ˆ‰‰‰‰‰ˆ‡†…„ƒƒƒƒƒƒƒƒƒ‚€~}{zyxwvvuuvvwxyz{|||||{zzyxwwvvvvvwwxz{}~€‚ƒƒƒƒƒƒ‚‚€€€€‚ƒ„„……†††††……„ƒ‚~}}|||}}~~€‚ƒ„……†‡ˆˆˆˆˆˆˆ‡‡‡‡‡‡‡‡ˆˆˆ‰‰‰ˆˆˆˆˆˆˆˆˆ‰‰‰‰ˆˆ‡…„ƒ‚€€€€€~~}{zyxwvvvvvwxyyz{{|||||{zzyxwvuuuvvwxyz{{||}}|||{{zzyyyzz{{||}~€‚‚‚€€~~}}}}}}~€‚ƒ„…†‡ˆˆ‰‰‰‰ˆ‡†…„‚€~~~~~~€‚ƒƒƒ„„„ƒƒ‚€}|zxwvutsssssssttttuuvvwxyz{|}}}}}}}}}}}}}~~€€€€€€~~~~}}}~~~~~~~}}}||||}~~‚ƒ„„……„„ƒƒ‚€€€€€‚ƒ„…†‡‡ˆ‰‰‰‰‰ˆ‡†…„ƒ‚€~}||{{|}~€‚ƒ„…†‡ˆˆˆˆ‡‡†…„ƒ‚€~~~~€€€€€€€€€€€€€€‚‚ƒƒ„„„ƒƒ‚‚€~~}{zyxwwvvvwxxyz|}~€ƒ„†‡ˆˆ‰‰‰‰ˆˆˆ‰‰‰‰‰‰ˆˆ†…„ƒ‚€€€‚ƒ„……††‡‡‡‡‡‡‡‡‡††…„ƒ‚€~}}|{zxwvuttssrrqqpoonnnopqsuwz|ƒ„††‡‡†…„ƒ~}|{{|}~‚ƒ„„„……„„„„ƒƒƒƒƒƒƒƒ„„„„ƒƒƒ‚‚‚‚‚‚ƒ„…†ˆ‰Š‹ŒŒ‹‹Šˆ†„ƒ~}}||||||}}}}~~}}||{zyxxwwwwwwwwxxyz{|}€‚„…†‡ˆˆ‰‰‰ˆˆ‡†…„ƒ‚‚€€~}|zywusrqpoopqrstvwxyyzyyyxxxxxxxyyzz{{{|||}}~€‚‚ƒ„„„„……………††‡ˆˆ‰‰‰ˆˆ‡‡†…„ƒƒ‚‚‚‚‚‚€€~~~~~€ƒ„†‡ˆˆˆˆ‡†„ƒ}{zyxwwwxyz{|}~€~~}|{zyyxxwwwwwwxxyz{|}~~€€€€€€~~~~€€‚ƒ„…†‡ˆŠ‹ŒŒ‹Šˆ‡…„‚€~~~~}}}|||{{{{|||||||{{zzyyzz{|}~~€€‚‚ƒƒ„„„…………………………†‡‡ˆ‰‰ŠŠŠŠ‰‰ˆˆ‡†…„ƒƒ‚‚‚‚ƒ„„……†……„ƒ‚€}|{{{{|~‚„…†††††††…„„ƒ‚€~}|{zyxwutrqponmmnopqstvxy{|}~€€€~}|{yxwvvvvwyz{}~€‚‚ƒƒ„„…†‡ˆ‰ŠŠŠŠŠ‰ˆ†…„‚€~}|{zzzzz{{|~€€‚‚‚‚‚ƒ„…†‡ˆ‰‰‰‰ˆˆ‡†…„„ƒ‚‚€€~~~~~‚ƒ…†‡‡‡†…ƒ‚}{ywutsrrrsstuvvwwwwvuutsssrsstuvxyyzzzzzzzzzzzzzzz{{||}~€‚‚ƒƒ„„„„„„„„„…………††††††††††††††††††‡‡‡‡‡‡‡†…„„ƒƒƒƒƒƒ„„……†††‡‡‡‡‡‡‡‡†††…„„ƒ‚‚€~}{zywvvvvvvwwwxxxxxyyz{|}€‚ƒ„„„ƒƒ‚€~}{ywvtrqqqqrsuwy{}~€‚‚‚‚€~}}}|}}}}}}}}}}}}}~~~€€€‚‚ƒƒ„……†‡‡‡‡‡‡‡‡‡‡‡ˆ‰Š‹ŒŽŽŽŽŽŒŒŒŒŒŒŽŽŽŽŒ‹‰ˆ‡…„ƒ‚‚‚ƒƒƒƒƒ‚‚€€~~~~}}|{zzyxxwwwwxxyyzzzzzyyxwvutsrqpoooooopqrtuvwwwwvusrponmlllmnprsuwxz{|}€ƒ„…†‡‡‡†…ƒ‚€}||{||}~€‚ƒ„„„„„„ƒƒƒƒƒ„„…††‡‡ˆˆ‡‡†…„‚~}|{zzzyyzzz{{{{{{{zzzzz{{|}~€‚„†‡‰Š‹ŒŒŒŒ‹Š‰‡†…ƒ‚€€€€‚„†‡‰Š‹ŒŒŒŒ‹Š‰ˆ‡†…„ƒ‚€~~}}}|||{zzyxvutssrsstvwyz|}~~~}}|{zyxwwwxyz|}~€€€~~}|||||}~€‚ƒ„……††……„ƒ‚€~~}}~~€€€€€‚„…‡ˆŠ‹ŽŽŒ‹Š‰‰ˆˆˆˆ‰‰‰‰‰ˆˆ‡†…„„ƒ‚€€€€€€‚‚ƒƒƒƒ‚‚€~}|{zyxxwwwwwwwxxxxxwwvvutsrrrrrrstvwy{|}~€€~~}}|}}~€‚ƒ„…………„ƒ‚€€‚ƒ…‡‰‹Œ‹Šˆ†ƒ}|{zzzzzzzzzyxxwvvuvvwxyz|}~€€}|zyxvvvvvwxz{|}}}}}}||{{{{{||}~€ƒ„†‡‰ŠŠŠŠ‰ˆ‡…ƒ€~|zyxwvvvwxyz{}~€€€€€~}{zxwutsrqqqqqrssuvxz|„†ˆ‰ŠŠ‰ˆ‡†„ƒ‚‚ƒ„…†‡ˆˆ‰‰‰‰‰ˆˆ‡†…„„ƒƒ‚‚‚‚ƒƒ„„…††‡‡‡ˆ‡‡‡‡ˆˆˆˆ‰‰‰‰‰‰‰ˆˆˆˆˆ‰‰Š‹Ž‘’’““’‘ŒŠ†ƒ|xusqpppqsux{~„†ˆŠŠŠŠˆ‡…‚€~{zxwvuuuvwxy{|}~€€~}{zyxwvvvwwxyzz{{||||{{zyxwvvutsssrrrsssttuuvwwyz{|}~~€€‚‚ƒ„…††††††……………††‡ˆˆˆˆˆ‡†…„ƒ€~~~€ƒ„…‡ˆˆ‰‰‰‰ˆ‡‡†…„ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ„…†‡‡‡†…ƒ€~|{{zz{||}}}}||{{{{|}~€‚ƒ…†††…„‚€~~~~€‚ƒ„„ƒ‚€~|ywutsttuwy{}‚ƒƒƒƒ‚€~}||{{zzyyyyyyzz{||}}~~~~}|{zyxxwxxyz{}~€‚‚‚€~}||||~‚„…†††……„ƒƒƒƒ„…‡‰ŠŒŽŽŽ‹‰‡„‚€~|{zzzzz{{|||{{{zyxxwvvuuuuuuuvvwxxyz{{|}~€ƒ„…†‡‡ˆˆˆˆˆˆˆˆˆ‰‰ˆˆˆˆ‡‡†††………„„„„ƒƒƒ‚‚€€€€€€€€}|{zzyyyyz{{||||||{{{z{{|}~€‚‚‚€~|{zyxwwvvvwwxyz{|~‚ƒƒ„ƒƒ‚~}}||}~€‚„†ˆ‰Š‹‹‹‹Š‰ˆ‡†…„ƒ‚€~}|{{{{{|}}~~~}}|zyxvuuttuuvwxxyzz{{|}~€‚ƒ„„„„ƒƒ‚€~~~‚„‡‰‹Ž‘’“’’‘ŽŒ‹Š‰‰‰‰‰ŠŠ‹‹‹‹ŠŠ‰‰ˆˆˆ‡‡‡‡ˆˆˆ‰‰ŠŠŠŠ‰‰ˆ‡…„ƒƒ‚‚‚‚‚‚€}|zxvtsrrrrstuvvwwwwwvvuttsrqppppqrstuvwxyyxxwwvvwwy{}€‚„†‡‡‡‡†„ƒ}{yxwvvvvwxxyz{||}}}}}}}}}}}}}~~€‚‚ƒƒƒ‚‚€~~~€‚‚ƒƒƒ„„„„……†‡‡ˆˆˆˆ‡††……„„ƒƒƒ‚‚€~}|{zzz{|}€‚ƒƒƒ‚€~}|{zzzz{|}~€€€€}|zyxwvvvvvwxy{|~€‚„†ˆŠ‹ŒŽŽŽŒŒ‹Š‰‡†…ƒ‚‚‚„…†ˆˆˆˆ‡…ƒ€~{yxwvvwxy{}ƒ„†ˆŠ‹ŒŒ‹Šˆ†„‚€~|{yxwvvuuuuuvwxz{}~€‚ƒƒƒƒ‚‚€€€‚ƒ„…‡ˆŠ‹Ž‘’’““’‘ŒŠˆ‡…ƒ‚€~}||||}~€‚‚‚ƒ‚~}|{zyxvutrpnlkihhhijkmnpqrrrsssstuuvwxyzz{{zzyyxxwvvvuuvvwxz|~ƒ…‡‰‹ŒŒŒŒ‹‹Š‰‰ˆˆˆˆˆˆˆ‰‰ˆˆ‡‡†…„ƒ‚€€~~}}}}}}~€‚„……††……„‚~}||{{{||}}~€‚ƒ„…†‡‰‰Š‹‹‹‹Š‰ˆ‡…„ƒ‚€€€€€€~~}}}}}||{yxvtrpoonoopqsttuuttsrrqqrstuwxyzzzzyxxwwwwxxy{|}€‚ƒ„…††††††††‡‡‡‡ˆˆˆˆˆˆˆˆ‰Š‹Œ‘’“”””“’‹‰ˆ‡‡†††††…„ƒ‚€~~~€‚‚ƒ„„„…„„ƒ‚€}{yxvuuuuuvwxyz{|}~€‚ƒ„…†‡ˆ‰‰‰‰‰ˆ‡†„ƒ‚€€€€‚ƒƒ„…†‡ˆˆˆˆ‡†…ƒ‚€~~}}}}~~€€€€~}|{zyxwvutssssttuvwxxxxxwvusrqppooopqsuwy|~€ƒ…†ˆ‰Š‹‹‹‹‹‹ŠŠ‰ˆ‡‡†……„ƒƒ‚€~}||{zyxwvuttsttuwxyz{||}}~~~~~~}|{zyxxxxxyz|~€‚„†ˆŠ‹Œ‹‹‰ˆ‡…„„ƒ„„„……………„„ƒƒƒƒƒƒ„„„……††‡‡ˆˆˆ‰‰‰‰ŠŠŠ‹‹ŒŒŒ‹Š‰‡…ƒ€~{yvtrponmmmnprtwz|~€‚„…†††…„ƒ}{yxwwwxz{}‚ƒ„……………„ƒ‚‚€€~~~~~€‚ƒ„…†‡ˆˆˆˆ‡‡†„ƒ€~|{zyxwwvvvwwxxyyzzz{{{|}}~~~~}|{ywvtsrrrrstvwy{|~€‚ƒ„………„„ƒ‚~}}}}}}}}}~€‚ƒ„„…„„„ƒ‚€}|{zzyyyzz{{||}}}}}~}}}}}}}}}}}~~€‚ƒ…‡ˆŠŒŽŽŒŠ‰‡†…„ƒƒ‚‚‚ƒƒ„…†ˆ‰Š‹ŒŒŒ‹Š‰‰ˆˆ‡†††………„„„ƒ‚€~}|{zz{{|}}~~~~}|{zyyxwwwxxyz{|}~~~~}}}}}}}~~~~~}|{zyxwvuuuvvwxxyyzz{{|}~‚„…†‡‡ˆ‡‡†…„ƒ‚€~~}|{{zyyyyyyzz{|}~€‚ƒ…†ˆ‰Š‹ŒŒŒŒ‹Šˆ†„‚€~|{zyyyyz{|}~€€€~}|zyxxwwwwxyz{}~€€~}{ywvtsrqppppqstvxz|~€ƒ„„………†††††‡‡‡ˆˆ‡‡‡††…………††‡ˆˆˆˆˆ‡††…„„„„„……†††††††…„ƒ‚}{ywtrqonmmlllmmnnopqstvwyz{}~€ƒ„†‡ˆ‰ŠŠ‹‹‹‹‹ŠŠ‰‰ˆ‡‡‡‡ˆˆ‰Š‹ŒŒŒŒŒ‹Š‰ˆ†…„ƒ‚€€~~}}}}|||||}}~~€€€}|{zyyyyzz{|||}}}}}}}}}|{{yxwutsqqppqrsuxz}ƒ…‡ˆŠ‹ŒŽŽŒŒ‹‹ŠŠŠŠŠŠ‹ŒŽ‘‘‹ˆ…‚|ywtrpomllllmnoqsuxz}‚ƒ„ƒ‚|zxwvuuvwxz|~€ƒ†ˆ‹‘‘‘Ї„€}zwusrrstwy|ƒ„„„„ƒ‚€}|zyxvvuvwxz}€ƒ†ˆŠŒŒŒ‹Š‡…}zvroligfeeefhjmqtx|‚„………„ƒ‚‚‚‚ƒ„…†‡ˆˆ‰‰‰‰‰ŠŠŠ‹‹ŒŽ’“•–˜™š›œœœ›™—”‘ŽŠ†‚~zwspmjhfedddefgikmortvxyz{|||{{zzyyyzz{|}~€‚‚ƒ‚‚€~}{{zzz{}~€‚‚€}|zywwwwxyz|}€‚‚‚‚€€€€€€‚ƒƒ„…†ˆ‰Š‹ŒŒ‹‰‡†„€~|zyxwwvvvvvvvwxz{}€‚„…†‡ˆˆˆˆˆ‡…„ƒ~|{{zz{|}€‚ƒ„…†††…„ƒ‚€~}|{zzyyxxxxyyz{{|||||||}}}~~~~~~}}~~~€€€~}|{yxwvuttssrrrsstuuvwxy{|}~€‚„……††‡‡‡‡‡‡‡‡‡‡‡†††……„„„„„„„……………„„„„„„„……………„ƒ‚€}|{{zz{{||}}~~~€€‚‚‚‚‚€}{zyxwxyz{}ƒ„†‡ˆˆ‰‰‰‰‰ˆˆ‡‡ˆˆ‰Š‹ŽŽŽŽŒŠˆ†…ƒ‚€~~~}}|||{{zzzzz{|}~€‚‚‚‚€~}{yxvuttttuvwxyyzzzzzzzzz{|}~€€‚‚ƒ„…†‡‰ŠŒŽ‘’““““’‹Šˆ‡‡††††††††††………„ƒ‚}{xvtrponnnnoprsuwxyzzzzzyxxwvtsqpnmlkjjjklnprux{~ƒ„…††……„‚€€€‚ƒ…‡‰‹ŒŽŽŽŽŒ‹Š‰ˆ†……„„„„…†ˆ‰Š‹ŒŒŒ‹‰ˆ†„}{ywvuttuvxy{}€€~|{yxwvuutuuutttsrqppppqrstuuvwxyz|~€‚„…‡ˆˆ‰‰ŠŠ‹‹ŒŒ‹‰ˆ†„ƒ‚‚‚ƒ„…‡ˆ‰Š‹ŒŒŒŒŒ‹‹ŠŠ‰‰ˆ‡‡†…„ƒ‚€~~}|{{zzyyxxwwvvvuuuuuvwxyz{|}~€ƒ„…‡ˆ‰‰ˆˆ†…ƒ}|{zyyyyzz{|}~€€€€~}|{zyyxxxxyz{|}~~€€€€‚‚ƒƒƒ„„„„ƒƒ‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒ‚‚‚‚€€~}|{zyxwvuuuutuuvwx{~„ˆ‹Ž‘’““’Šˆ†„ƒ‚€€€€€~|{zxwutrpomkihgfffhilorux{~ƒ…‡ˆ‰‰‰‰‰‰ˆ‰‰Š‹ŒŽ‘’’““””••••••”“’‘ŒŠ‡„~|yvtrpoonnnmmnnnopqrsuvwyyzzzzzzyyyyyyyzz{|}€‚ƒƒƒƒ‚‚ƒ…†ˆ‰Š‹ŒŒŒŒ‹‹ŠŠ‰ˆ‡†…„ƒ‚‚€~|{ywvutttvwyz|~‚ƒƒ„……†‡‡‡‡‡‡‡†……„ƒ‚€}zxvtrqpppppppqqqrsuvy{~„‡‰Š‹ŠŠ‰‡†…„„„„……………„„ƒ‚€€~~~~~€€€€€€~}|{zyxvtsqpooppqstvxz|~ƒ…ˆ‰‹ŒŒŒ‹Š‰ˆ‡‡‡†††…„„ƒ€~}{zyxwwwwwwxxyzz{{|}~€‚ƒ„„„ƒƒ‚€~~}|{ywusqomlklmnqtwz~„‡‰‹ŽŽŽŽŒŠˆ‡…ƒ‚€~}{{zzz{}‚…ˆ‹Ž’“•–––—––•”’‘‹‰‡†„ƒ€~~~~}|zxvtsrrstvy{}‚‚ƒƒƒƒƒƒ„„„„„„ƒƒ€~|{yxwvvvwxz|~„†‰‹ŽŽŒ‹‰ˆ†…ƒ‚€~}||{zzz{{||}}}}||{{{|}}~€~|{ywutrrqppppqqqrrsttuvvwxyyzz{||}~€‚ƒ…‡‰ŠŒŽŽŒ‹‰ˆ‡†…„ƒ‚‚€€€~~}}}}|}||||{zyxvusrpoooopqstuvvwwwvvuutttuvwy{}‚„†ˆ‰‹ŒŒŒŒ‹Š‰ˆ‡†…„ƒ‚€~}|{{z{{|}~€‚ƒ„„„„ƒƒƒƒ„…†ˆŠ‹Ž‘‘ŽŒŠˆ…ƒ€~}{zzzyyyyxwwvutsrrrrsstvwxy{|}~€‚ƒ„………††‡ˆ‰‹Ž‘‘’’‘ŽŒ‹Š‰‰ˆˆ‡‡†…„‚}{ywvtrqpooooopqqrsstuuvwxy{|~ƒ…†ˆ‰‰‰‰‰ˆˆ‡††…………………„ƒƒ‚€~~~~~~~~~~~~~}}|{zyxwvuttttvwyz{|}~~}}}}~€‚„†‰Œ’”–—˜˜—–•“‘ŽŒ‰†‚|yvspnmkkkkmoqsvy{}~~~}||{{{zzzzzzzz{{|~‚ƒ„…†‡‡‡ˆˆˆ‰‰‰‰ŠŠ‰‰ˆˆ‡†…ƒ‚€~~}||{zxwvuuttuuuvvvwwxy{}ƒ…†‡‡‡‡‡††††‡ˆ‰Š‹ŒŽŽŽŽŒ‹Š‰ˆ‡‡†…„„ƒƒ‚‚‚€~|{zxwvtrqpnnmmmmnopqrstuvwxyyyxwvutsssstuuuuuutttttuvxy{}~€ƒ„…†‡ˆ‰‹ŒŽ‘’’“““””””””““‘‹‰†„‚€~}}}~~€€€€€€€€€€~~|{zywvutsrqponmmmnoqsvx{~€ƒƒ„„„ƒ„„„…†‡ˆ‰Š‹ŒŽ‘’“”•••”“’Œ‹‹ŠŠ‰‰ˆ‡‡†…„ƒ‚‚€€€€‚‚‚ƒƒƒ‚‚€~|zxwutssrssttuvxy{}~€‚ƒ„„„„ƒƒ‚‚‚‚‚ƒƒƒƒƒ‚}|zxvutssssssssttuvwy{}~€‚‚‚€€€~~~~}}}}}}}}~€‚ƒ„…†‡‡‡†…„ƒ‚€€‚ƒ…†ˆˆ‰ˆ‡†…„ƒ‚€€€€€€€€€€€€€€€€€~|{yxwvuuttssrqpnmmlkkklmnopqrstuuuvvvvwwxyz{|}}~~~~}}||||}~€‚„†ˆŠŒŽ‘‘‘‘ŽŽŽŽŽŽŽŽŽŽŒŒ‹‰ˆ‡†„ƒ€~}|{zyxxwwwwwxyyz{{{{{zyxxwwxxy{|~€‚‚‚‚‚‚€€~~€€€€€€€‚‚ƒ„„„„„„„ƒ‚‚~~}}}}~‚„…†‡ˆ‰‰Š‰‰‰ˆˆ‡††…„„‚€~|{zyyxxyyyzzz{{||}}}~~~~~€‚„†‡‰‹ŒŽŽŒ‹‰‡†…„„„„„…†‡ˆŠ‹Ž‘’’‘Ž‹‰‡…ƒ€~}|zyxvusrpomlkkjjjjiiihhiijkmpruwy|~€‚‚ƒƒ‚‚€€‚ƒ„…‡‡ˆˆˆ‡‡‡††††‡‡ˆˆˆˆˆˆˆˆ‡††…„„„„…†‡‰ŠŒ‘‘‘‘ŽŒ‹Š‰ˆ‡‡†……„ƒ‚€}|{ywurpmjhfdcbbcdegikmnpqrsstuvwxyyyyyxxwwwwwwxxyz{||}~€€‚ƒƒ„„………………„„„„ƒƒƒƒƒƒƒƒ„„„„………………„„ƒ‚‚‚‚‚‚‚‚‚‚€~€ƒ„†‡ˆˆˆˆ†…ƒ€~|zxwvuuvvwwxyz{|}€ƒ„…†ˆ‰Š‹ŒŒŽŽŽŽŽŒ‹Š‰‡†…„ƒƒƒ„…†‡ˆ‰‰‰‰ˆ‡…„‚~~~}~~~~}|{zyxvvutttssrrrrrstuvwxyz{|}~~€€€€€€€€€~~}||||||}}~~~~~}}}||}}~€‚ƒ„„„„„„ƒ‚€~}}|||{|||}~€‚ƒƒ„„„„„………†‡ˆŠ‹Ž‘’’’’‘ŽŒŒŽ‘’“”””“‘‹ˆ…‚€~|zyxwwvvuutsrqpomkjhgfffffghiklmopqrstuuvvwwxyz{||}}~~~~~~€€€€~~€‚ƒ„……†††††‡‡ˆ‰Š‹ŒŽ‘’’““”””””“’‘ŽŒŠ‰‡…„ƒ‚‚‚‚‚‚‚‚‚€}|zywvusrqqppoonnnnnnnnoppqrtuuvwwxxxxxyyzz{|}~~€€€‚‚ƒƒ„……†††……„ƒ‚‚‚ƒ„…††‡‡‡†††††‡‡ˆˆ‰‰‰‰‰ˆˆ‡†…„ƒ€~}|{{zzzyyxwvutsrrrrstuwy{|~€‚‚ƒƒƒ„„………††‡‡‡‡ˆˆˆˆˆˆ‡†…„ƒ‚€€€€€€‚ƒ„„„„„ƒ‚~|{zyxwwwwwwxxyyz{|}~€€€€‚‚ƒƒƒƒƒƒ‚‚€~}||{zyxxwwwwwxxxyyyyyyyyyz{|}‚ƒ„„„„ƒ‚‚‚‚ƒ„…†‡ˆ‰‰ŠŠŠŠŠ‰ˆˆ‡†……„„ƒƒ‚‚€~}|{zzzzzz{|}€€€~~}}}~€‚ƒ„„……………††††‡ˆˆ‰Š‹‹‹‹‹‹Š‰ˆˆ‡†…„„ƒ‚€~|{zxwvutssrssstuvwxz{|}€‚ƒ„„„„„ƒ‚€~~}}}}}}}}||||||||}}}~~~~~~~}}}}}|||{{zzyyxwwwvvwxyz|~€‚„…‡ˆˆˆˆˆˆ‡‡‡ˆˆ‰ŠŠ‹‹‹‹Š‰ˆ‡†…„ƒƒƒƒƒ„„„………„„„„„„„„ƒƒƒ‚€~}||{{{zzyyyxxxxxxxxxxxxxxxxxxxxwxxxyzz{{{{{{{{{{{||}~€€€€€€‚‚‚€~~}}}}~~~€€‚ƒƒ„„……††††††……„„ƒ‚€€€€~}}|{zzyyxxxxxxxyzz{|}~€‚ƒ„…‡ˆŠ‹ŽŽŽŒ‹Š‰‰ˆˆ‡‡‡‡‡‡‡‡††…„ƒ‚€~}}|||{{||}}~€‚ƒƒ„„„„ƒ‚€}|{{{{{||}~€€€~}{zxwutssssssttuvwwxxyyzzz{{{{{||||}~€€~~~~€€ƒ„…††††…„ƒ‚€~}{{{{|}~€‚ƒ„„„„‚}|zyyyyz{|~€‚ƒ„……†‡ˆ‰Š‹ŒŒŒ‹‹Šˆ‡†„ƒƒ‚‚€€~}|{yxwvvuuuuuuuuuuutttttttttuvvwwxxxyyyyzz{||}~€‚ƒƒ„„„„„„……†ˆ‰ŠŒŽŽŽŽ‹Šˆ‡††††‡ˆŠ‹Ž‘‘‘‘‘Ž‹Šˆ‡…ƒ‚€~}}}}}}~~~~~}|{zyxwvuuuuuuvwxz|}ƒ„†‡ˆˆˆˆˆ‡‡‡†††………„„„„„„„„„„ƒ‚}{yvtrpoonoopqrrssssrrrrrstvwyz||}}}||{{zzyyyyyyyyyyyyyyzzzz{{{{{{{{{{{{{|}~ƒ…‡‰‹ŒŽŽŽŽŽŽŽŽŽŽŒ‹Š‰ˆˆ‡††…„ƒ‚‚€€~~~}|{zyxxxxyy{|}€‚ƒƒƒƒƒ‚‚‚‚‚‚ƒ„…†ˆ‰‹ŒŒŠˆ†„}{yxwwwxxyyzzzyyxwvvutsssstuvwxz{{||}}}~~€‚‚‚‚€€~}|{zzz{{|}~€‚‚ƒƒƒƒƒ‚‚€€~~~}}||{{{||}~‚ƒ…†‡‰‰Š‹‹ŠŠ‰‰ˆˆ‡††††††‡‡‡ˆˆˆˆ‡‡†„ƒ€~|{yxwvuttsssrrrrrsstuvxy{|~~}|zyyxxxxyz{}~€ƒ„„…†††‡‡‡‡ˆˆˆ‰‰ŠŠ‹‹‹ŠŠ‰ˆˆ‡†…ƒ‚€~}}|||}}~€‚ƒƒƒ‚~|{zzzzz{|}}}}}}|{zyyxwwvvvvvvvvvvvvwwxy{}~€‚„†‡ˆ‰‰ŠŠŠŠ‹‹‹‹‹‹‹‹‹ŒŒŽ‘’’’’‘ŽŒŠˆ†„‚~}|||{{{{zzyxxwvuuttsssstuvwxz|}€‚ƒ„……†‡‡‡‡‡††…ƒ‚€~}||{{zzzz{{|||}}}|||{{{||}~€‚ƒ„…†‡ˆˆˆˆˆ‡†…„ƒ€~}{yxwvutsssrrrrssssttttuuuuvvvvwwxxyz{|}€‚ƒ„…†ˆ‰‹ŒŽ‘‘’’’’‘‘ŽŒ‹‰ˆ†„‚~}|{{{zzzzzzyxwvusqomljhgggghikmoqsuwxyzzzzyyxwwwwwxxy{|}€‚ƒ…†‡‰Š‹Ž‘‘‘‘‘ŽŽŽŽ’“”••••”“’‹‰‡…„ƒ‚‚ƒƒ„……†††…„ƒ‚€}|{zyxwwvvuttsrqpponnnnopqrstuvvwxxxyyyyyyyzz|}ƒ†ˆŠŒŽ‘‘ŽŒ‹Š‰ˆˆˆˆˆˆˆˆˆˆˆˆˆ‡†…„ƒ‚€~}}|||{{zyxwvutsrrqqpppqqrstvwxz{||}}}||{{zzz{{|}}~€€€€‚‚‚‚‚‚‚‚ƒƒ„„………††††‡‡ˆ‰Š‹‹ŒŒŒ‹Š‰ˆ‡†…ƒ‚‚€€€€€‚‚ƒ„„„„„ƒ‚~}|{||}„†‰‹ŽŽŒ‹‰‡…ƒ‚€~~}}}}|||||{{{zzyyxxxxxxyyzz{|}~€€}{ywusqonnmnoprsuwyz{|||{{{zzz{{{||}}~‚„…‡ˆˆ‰ˆˆ‡†…„ƒƒƒƒƒƒ„„……………………„ƒ‚€~~}}~~€€€~}|{zzyyzz{|}}~€€€€€€€€~}||{{{{{|}~~~~~}}||{zzyxxyy{}‚…ˆ‹Ž‘’‘‹ˆ†„ƒ€€€‚ƒ„…††‡ˆˆˆˆ‡†…„ƒ‚‚€€€€€€€€€€€€€€€~}|{zzyyzz{|}}~~~~~}}|||}}~€€€€~~}||{zyxwvvvwxyz{{{{{zzyyz{|~€‚„†ˆ‰ŠŠŠŠ‰ˆ‡†…„‚€~~}}}||}}}~€ƒ„†ˆ‰Š‹‹‹ŠŠ‰ˆ†…„„ƒ‚‚‚‚ƒƒƒ„„„„„ƒ‚€~}|{zyxwvuttsstttuvvwxyz{}~€ƒ„…†††‡‡††…„ƒ‚€~|zwutrqpoooooooopppqqrstuvxy{|~€ƒ„…‡ˆ‰Š‹ŒŽŽŽŒ‹Šˆ‡†„‚}{zyxwwwxyyzz{{{zzzyyyzzz{{||||}}~~€ƒ„…††‡ˆˆ‰ŠŠ‹‹‹‹‹Š‰‡…ƒ€~}{zyxwusrpnlkjihhhhhijklmoprsuwxz}„‡‰ŒŽ‘”–˜šœž ¡¡¢¢¡ Ÿžœš™—–”“‘Šˆ…ƒ€~{ywvtsrqppppppqqrstuwxyz{||}}}}}}}}}}}|||||{zzyxwvuttsssssstttuuuuuuuvvvwwwwwwwwxxyz|~ƒ†ˆŠ‹‹‹‹Š‰ˆ‡†………†‡ˆ‰ŠŒŽŽŽŽŽŒŠˆ†…‚€~|zxwusrpoooopqrstuvvvvvvvvwxyz|~€‚…‡‰‹ŒŽŽŽŽŒŒŒ‹ŠŠ‰‰ˆ‡‡†…„ƒ‚€~}}}}~€‚‚‚€~|ywutssstuwyz|}€‚ƒ„…†‡‡‡†…„ƒ€~~}|{zyxvuttsssttttssqpomllllmnprtuwxyz{|}~‚ƒ„…††††……„„„ƒƒƒƒƒƒƒƒ„…†‡‰‹ŒŽ‘’’’’’’‘ŒŠˆ†„‚€~}|{{{{{{{{{{zzzyyyyz{}„†‰Œ‘“•—˜™šš™˜—–”’‹‰ˆ†…„ƒƒ‚‚€€~}{zxwusrqponnmmlkkjjihhgggggggghijlnpsvz}€ƒ†ˆŠ‹‹ŒŒŒŒ‹‹‹ŒŒŒŒ‹‹Š‰ˆ†„ƒ}{yxwwwwxy{|~€‚„†‡ˆ‰‰ŠŠŠŠŠŠ‰‰ˆ‡†…„ƒƒ‚‚€€~}||||}~ƒ…†‡ˆˆ‡†…ƒ€~}|||}~€‚ƒ…†‡‡ˆ‡‡††…„ƒ€}|{zyxxwwwwxxxyyyzzzyyyyxxxxyyz{|}}~€‚‚ƒƒ„„„ƒƒ‚~}{zyyyyyzz{{|||{{{zzz{{|}€‚„†ˆŠ‹‘’’’‘ŽŒŠˆ†„‚‚ƒƒ„„…………„„„ƒƒ‚€~|{zyxwwwxxxxxxwvutrqponooprsvxz|~€‚ƒƒƒ‚€~~~~~€‚ƒƒ„„„ƒƒƒ‚€~}{zyyxyy{|„†‰‹ŒŽŽ‘’“”••––•”“‘Šˆ†„‚€~}|{zyxxxxyz{|}~~}{zwusqomljihhggghhijklnpqsuwy{}€‚„†ˆŠŒŽ‘’““““’‘ŽŒ‹Š‰‡†„‚}|{zyxxwwwwwxxyz{{|||}}}~€‚‚‚‚€€}||{zzzzz{||}~€‚ƒƒ„„„„„ƒ‚€~}||{||}~~€‚‚‚‚‚ƒ„†‡‰‹‘’““““’‘ŽŒ‹‹Š‰ˆˆ‡‡†…„ƒ‚€~|zxusqonmmnoqsvy{~€‚„…††‡‡‡ˆˆˆˆ‡‡††…„ƒ‚€~~~}|{zxwvuuuuuvwwxxxxwvutrponmllkllmnoqrtvxz|~‚ƒƒ„„„………†‡ˆ‰Š‹‹‹‹‹ŠŠ‰‡†„ƒ}{yxvtsrqppppqrsuvwxyz{{|}~€‚…‡Š’”•–––•“’Œ‹Š‰ˆˆ‡‡†……ƒ‚€~}|{{zzyxxwvutsrrqqpppqqqqrrrrqrrrstvwy{~€‚…‡ŠŒ‘’““““““““’‘ŽŒ‹Š‰ˆ‡†……„ƒƒ‚‚€€€€‚‚ƒƒ„„…………„„ƒ‚€~}}|{{zyxwvusrqqppppppqqrrstuwxz|~ƒ…‡‰‹ŒŽŽŽŽŽŽŽŒ‹Š‰ˆ‡‡††………„ƒ‚€~}||{{{{{{{{{{||}}~~~~~~}}||{{{zzyyxxwvvvvvvvvvvvutsrqonnmnnopqrstuvvwxyz{}~€‚„†‡‰‹ŒŽ‘’“””••””’‘Ž‹‰‡…‚€~|zxvtrpnmkjiihijknptw{ƒ‡‹Ž’“”““’ŽŒŠˆ†„‚€€€‚ƒ„………††††……………„„„ƒƒ‚‚‚‚‚‚‚‚‚€~}{zxwvvuuvwxy{}~€‚ƒƒƒ‚‚€~}{zxvutrqppoonnnoopqrstuvwxy{|~‚„…†‡‡‡‡‡††…„„ƒ‚€~}|{zzyxwwvvvvvwwxy{|}}~€‚ƒ…‡‰‹‘“•–——˜˜˜™™š››œœœ›š™˜–”’‹‰‡…„ƒ‚€€€€€€€~~~}}}}||{zxwvtsrqpoonmmllllmmopqsuvxy{|}}~~~}|{yxvtrpnlkkjjklmoqsuwy{}~€‚ƒ„…††††††††††††‡‡‡†…„‚~}}|||||||||||{{zyxwvuuuvwy{}‚„†ˆŠŒŽŽŒ‹Šˆ‡††…„„ƒ‚€€~}}|||}}~‚ƒ…†‡‰ŠŒŽŽŽŒ‹‰‡…ƒ~|{zxvutrrqqqrstuvwwxxxxwwwvvvvvvvwwxz{}~€‚ƒ„…†‡‡ˆ‰Š‹ŒŽ‘’“”•••””“’‘Ž‹‰‡…‚€~{zxwvvvvvvvwwxyyyyyyyxyyz{}€‚„†ˆ‰ŠŠŠŠŠ‰ˆ‡†…ƒ}{ywvuuuvxy{}€‚ƒ„……………„ƒ‚‚€~}}}}~€‚ƒƒƒ‚}{yxvutsssstuvwxz{}~€€€}|ywusqomkjiihhijjlmoprsuvwxyyzzzzyyyxxyyz{|}~€€‚ƒ…†ˆŠŒ‘‘‘‘ŽŒŠ‰ˆ‡‡‡ˆŠ‹‘’“”“’‘ŽŒ‹Š‰‰‰ˆˆ‡†„‚€~|zxwvvvvvwxz{}€‚‚‚‚‚ƒƒƒƒ‚€}|{zyxxwwvuutttttuuuuvvxy|‚…ˆŠ‹‹‹Šˆ†„‚€}||{{{{{|}}}~~~}~~~€‚‚‚€€ƒ„†ˆ‰ŠŠŠ‰ˆ‡†„ƒ‚€}|zyxwvvuuttttuvy|ƒ‡‹’”–—˜˜˜˜—–•“’ŽŒŒ‹‹ŠŠ‰ˆ‡‡†…„ƒ‚€}|zyyyz|~…ˆŒŽ‘‘‹ˆ†‚|yvsqomljihgfeeefhjmortvwwwwutrpomlkkklmnprtvxz{|}~€€€€€€€€€ƒ…ˆ‹Ž‘“”•••”’ŽŒ‰…}ytplifcba```abdfhlosw{~ƒ„…†‡‡ˆˆˆ‡‡††…………………††‡‡ˆ‰‰Š‹ŒŽ‘“–—™š›œœœ›š™—•’Ї…‚€}zwtqnkhfdb``___`acfimquy}„†ˆ‰Š‹ŽŽŒ‰†‚~zwtsrqrtvx{~ƒ†ˆŠŒ’”••••”“’‘‘ŽŒ‹‰‡†………†‡‰‹Ž’”•––•”“Ž‹ˆ…‚€~|zxwvtsqpnmljihgfddcccdfgikmprsuvwxyz{|}~€€€€€~~}~~€‚ƒ„……†††………„„ƒ‚€~}{zzyyzz{{{zywuspnlkjjkmortwz}€ƒ†‰ŒŽŽ‹‰†ƒ€~{ywuttttvwz|‚…ˆ‹‘“”•–––•”’‹ˆ…‚}|{zz{|}ƒ„††‡†…„‚~~~€‚„‡‰‹‹Šˆ†„}{yxwvuttssssstvxz|~€‚ƒƒƒƒ‚€}{zxvsqoljhfeeefgikmortvxyzz{zzzz{|}~€‚ƒ„„ƒƒ‚€~}}}}~€‚ƒ„……†††‡‡‡ˆ‰Š‹ŒŒŒ‹Šˆ‡†…„„……†‡ˆˆˆˆˆ‡†…………‡Š’–› £¦§§¦¤¡˜”‹‡„}|{zzzzzyyxxwwvwwyz}€ƒ†‰ŒŽŽŠ‡„€|xtpligeddddfgjmpswz}€‚„…†‡‡‡‡†…ƒ‚|yuplgb_[YXXY[]`cegiklmnoqsux{ƒ†‰ŒŽ‘’“”•–—˜˜˜——–••”“’‘ŽŒŠˆ…ƒ€~|zxwvvuuttttuuvxz|~€‚ƒ„„„„ƒ‚€€€€‚‚ƒƒƒƒƒƒƒ„…†ˆŠŒŽŽŒŠ‡…‚€~|{zzz{}ƒ†ˆ‰‹ŒŒŽ’“”•–•”“‘Œ‰‡„|zywvtsqpnlkjihhiijjkklllkkkjihhgfecb`_^]]^_acgkosx}…‰Œ‘“•–——˜™š›œžŸ ¡¢¢¢¡ Ÿ›™—”’Œ‰†ƒ€}zwtrpnmlkklnptx|…‰‘“””””•”””“‘Šˆ…ƒ€~~~}}|{zyxxwwvvutsrqonmlkjjjkmoqtwz}€‚„…†‡‡††…„ƒ‚€‚‚ƒ…†‡‰ŠŠŠŠ‰‡„~zwsoligedddefhjlorux{}€‚ƒ„…††††††………„ƒ€~}}}~ƒ…‡ˆ‰ŠŠŠ‰‡†ƒ~|zxwwvvwwxyz{|}~€‚‚‚‚‚‚‚ƒ„†ˆŠŒŽ’“”•••––––––––––•”’‰†‚~zvsokhda_^]]^`cgkpuz„‰Ž’•—™™™™—•“‘ŽŠ†‚~zvrnkheca`_^^_`acfhknrtwz|ƒ†ˆ‹ŽŽ‹‰ˆ†„‚}|{zyxxxyz|~€ƒ†‰Œ“–™›žžžœš˜•‘‰…€{wsoljhggffgghjknqtx|…ŠŽ‘”–˜™ššš™˜—•”’‘Ž‹Šˆ†„|zxvtrqpoooprux|ƒ†‰‹ŽŒ‹‰‡„~{xuqnkigeddddegiknrvz~‚†Š’’’‘Œˆƒ~yuplhfdcbcdfhjmptw{ƒˆŒ•™ £¦¨©ªª©§¥¢Ÿœ™•’ŒŠˆ†„ƒ‚€~}|zxvtrponnnopqsuwxzz{{{zyxwvuuttuuwxy{}~€‚‚‚‚‚ƒ„†‰‹‘‘‘‘‹‰‡„‚~}|{zyxvutrqqppoooopqrsuwy{}~€€€€€~}}|{zyxwvutssrrrrstuvwxyz{|}~€ƒ…†‡ˆ‰ŠŠŠŠŠŠŠŠŠ‹‹‹ŒŒŽŒ‹Š‰‡…„ƒ‚‚ƒ„…†‡ˆˆˆˆˆ‡†…„‚~}|||||}}~€‚‚ƒƒ‚}{ywutsssstuwy{~€ƒ…‡ˆ‰‰‰ˆ‡†„‚~|{zyxwvutttuuvwxy{|~‚ƒ„„„„„„ƒƒƒ‚‚€€}|{zzzz{|~€‚„†ˆŠŒŽŒŠ‰ˆ‡‡††……„ƒ‚‚‚‚‚‚ƒƒƒƒƒƒ‚€~}}}||}}~~~~}|{yxxwwwwwwxxxxxxxxyz{|~€ƒ…‡‰‹ŒŽŽŽŒ‹Šˆ†„ƒ~|zwtqnkgdb`__`adfilortuwwxxxxxyyz{}~€‚ƒ…†ˆ‰ŠŒŽ‘‘ŽŒŠ‰‰ˆ‰‰Š‹ŒŽŽŽŽŽŒŠ‰‡…ƒ}{zxwvuuttuvxy|~€ƒ…‡ˆ‰‹‹ŒŽŽŽ‘‘‘ŽŒŠ‰‡…ƒ~|{yyxwvusrpomlkjiihiijklnoqrtuwxy{|}~€€€€~}|{zyxwvvuttsssstuwy{}‚„†‡‰Š‹‹‹‹ŠŠ‰ˆ‡‡†………„„„ƒ‚€~}||||||}}}}}|||}}~€‚„†‰‹‘’““’‘‹Šˆ‡†…„„„„„„„„„ƒƒƒ‚€€€€€‚‚ƒƒƒƒ‚€~~}}||{zyxwusrpomllkjjiiiijkmpsw{ƒ‡‹’”–˜˜˜˜–•“‘Ž‹‰ˆ†„ƒ}{yxvuttttuuvxyz{{|{{zyyxwwwwxy{|~€‚„†‡‡‡‡‡†……„„ƒƒ„„„……††‡‡‡‡†…„ƒ}{ywutsrqqrrsuvwxxyyyzzz{|}~€ƒ…‡‰‹ŒŽŽŽŽŒŠ‰†„‚}{yxwuutsssssstuvwyz{|}~‚ƒ„†‡‰Š‹ŽŽ‹Šˆ‡…„ƒ‚€€€~~}}|{zyxwwvvvvuuttsrqppooppqstvxz|~ƒ…†ˆŠ‹Ž‘’“““““’‘ŽŒŠˆ‡…ƒ‚~}|{zxwvtsrrqqqrsuwy{}€‚‚‚‚€€~~~~}}|{{yxwvtsrrqqqqrrrrrrqqrrstuwy{}ƒ…‡‰‹‘’“”•”””“’‘‘ŽŽŒ‹Š‰‰ˆˆ‡‡‡‡‡‡‡‡‡‡ˆˆˆ‡‡‡†…„„‚~|zxwutssrrrsssttuvwxz{}~€‚‚‚ƒƒ„……†‡ˆ‰‰ŠŠŠ‰‰ˆˆˆ‡‡‡‡‡†††………„„„ƒƒƒ‚€}|{zxwvtsrponmmlllkllllmmmnnopqrtvxz|~€‚ƒƒƒƒƒ‚‚€€~}}}||}}}~~€€‚‚ƒ„…†‡ˆ‰ŠŠ‹‹‹ŠŠŠ‰‰‰‰‰‰‰ŠŠŠŠŠ‰‰ˆˆ‡†……„„„ƒƒƒ‚‚€€~~}}||{{{{{{{{{{zyxwvutssstuwy|~„†ˆŠ‹ŒŒ‹Š‰ˆ‡…„ƒ‚€~~}}||{{||}~€ƒ„…‡‡ˆˆˆ‡‡†……„„„ƒƒ‚€}|{yxwvuttssssttuvxyz{|}~~€€€€~}|{yxwwvvvvwxyz{|}€‚ƒƒ„…†‡ˆ‰ŠŒŽ’’“”””“’‘ŽŒ‹‰‡…„‚€~}}}|||{zzyxwvvvuuvvvwwwwwwwwvvuttssssssttuuvvwwwwxxxyyz{||}~€‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ„…†‡ˆ‰Š‹‹‹ŠŠ‰ˆ‡…„ƒ‚‚‚‚‚ƒƒ„„………………„„ƒ‚€}|{zzyyyzz{||}~~~~~~~}}~~€€‚ƒ„……†††††††‡‡‡‡ˆˆ‰‰‰‰ŠŠŠŠŠŠ‰‰ˆˆ‡…„ƒ‚€~~}}|||{zzyxwvuuuuuuvvvuutsrqponnmmmmnnopqrsuvwxyyzzzzyyyxxxyz{|~€‚„†ˆŠŒŽŽŽŒŒŒŒŒŒŒŒ‹‰ˆ†…ƒ‚€€‚‚ƒƒ„„………………„„ƒ‚€€~~~~~~~~€€€€~~}}}}~~~~~}}|{zzyyxxxxyyyzz{{{|||||||{{{zzzzyyyyzz{{|}}~€€€€€€€€€€€€€‚‚‚‚‚‚ƒƒ„„…†ˆ‰‰ŠŠ‹ŠŠŠŠŠŠŠŠŠ‹‹ŒŒŒ‹‹Š‰‰ˆ‡‡††…………„„ƒ‚€~~}}}~~~}}|{{zzzyyxxwvutsrqqqppppqqqqrrrrqqpponnnnnoprsuvxyz{{||}}~~~~€€‚ƒ„…†††‡‡‡‡ˆˆˆ‰Š‹‹ŒŽŽŽŒ‹ŠŠ‰ˆˆ‡‡††††………………„ƒ‚€~}||{{{{||}~€‚ƒ……†††††…„ƒ‚€~}|{zzzzzz{|}~€‚‚‚ƒƒ„„„„…„„„ƒ‚‚€€~}|{zyxwvuttttuvwxz|~€ƒ„……†……„„ƒƒƒƒƒ„„„„„„ƒ‚~}{zyxwwvvuuuuuvvwwxyz{|}~~€‚‚‚‚‚‚‚‚‚‚‚ƒ„„………†…………………†‡‡ˆ‰Š‹ŒŒŽŽŽŽŽŽŒŒ‹‹Š‰ˆ‡†…„‚€~|{zywvutsrrqqqrrstuvwxy{|}~~~}}|{zyxwwwwwxyz{|}~€€€€€€~~}||||||||||||||||||{zzyxwvutssrrssstuuvvwwxxxyyzzz{{|}~~€‚ƒ„†‡ˆ‰Š‹ŒŽŽ‘‘‘‘‘‘‘ŽŒ‹‰ˆ‡…„ƒ‚‚€€~}}}||||||}}}~€‚‚‚€€~~}}||{{{zzzzzzzzz{{||}}~~€‚‚‚‚‚€~}}||||||}}}~€‚ƒ„†‡‰Š‹ŽŽŽ‹Š‰‡†„‚~|{zyxwwvvvwwxyyz{{||}}~~€€€‚‚€€€€€€€‚‚ƒƒ„„„…………„„„„„ƒƒ‚‚~}{yxvutsrrrrrrrsstttuuuvvvvvuuttsrrqqqqqqrstuvwwxxyyz{{|}~€€‚‚ƒƒƒƒƒƒƒƒ„„„„……††‡ˆˆ‰ŠŠ‹‹‹‹‹ŠŠ‰‰ˆ‡‡‡††††……………„„„„„„„„„„„ƒ‚€~}|{zyyyxyyyyzz{|||}}}}}}}~~~€‚ƒ„……†‡ˆˆˆˆˆˆˆ‡††………††‡ˆ‰‹ŒŽŽŽŽŒ‹Š‰ˆ‡†…„ƒ‚€~}}|{zyxxwvuuuuutttttssssssttuuvwwxyz{|}~€‚ƒ„„………„ƒ‚€~}|{{{{{||}~€€‚‚‚‚‚‚€~}|{{zzz{{|}}~€‚ƒ„„………†………………††‡ˆ‰‹‹ŒŒ‹Š‰ˆ†…„‚€~~}||{zyyxxxxyz{|}~€€‚‚‚ƒƒ„„„„„„ƒ‚€~}{yxvutssssssssssssssttuuvwxyzz{{{zzyyxxyyyzz{{|||{{{{{{||}~€‚ƒ…‡ˆŠ‹ŒŒ‹Š‰ˆ‡†…„ƒƒ‚‚ƒ„…†‡ˆ‰ŠŠŠŠŠŠŠ‰‰ˆˆ‡†…„„ƒ‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚€~}}||{{{{{{{{{{{{{{{{{|||||}}}~~~€€€‚‚‚€~}|{zyxwwvvvwwxz{}~€€€~~}}}}}}}}~~~~€€‚‚‚ƒƒƒƒƒƒƒƒ„„„…††‡‡ˆˆˆˆ‡‡‡†……„„„ƒƒƒ‚‚€~~~~~€‚€€€€€€€€€€€€~~}|{{zzzzz{|}~€‚ƒƒƒƒƒ‚€€€€€‚ƒ„„……††††…„ƒ‚€}|{zzzzz{{|}~~~~~~}}}}|||||{{{zzyyyyxxyyzz{||||||{zzyyyyz{|}~€‚ƒ„……††‡‡‡††……„ƒ‚‚€~~}|{zyxxwwvvvvwxyz{}ƒ…‡ˆŠ‹‹ŒŒŒ‹‹‹Š‰ˆ‡†……„ƒ‚‚‚‚‚ƒƒ„………………………„„„ƒƒ‚€~}{yxvutsrqpoonnmnnopqrtvxz{}€‚‚‚€€€€‚ƒƒ„„„„„„„„……………„„„ƒƒƒƒƒƒ„………†……„ƒ‚~}}}}}}~~~€‚ƒ„…†‡ˆˆˆˆ‡‡†…„ƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ„†‡ˆ‰ŠŠ‹ŠŠ‰ˆ‡†„ƒ€~}|{zzyyyzzzzzzyxwvuttssssrrrrrrrsttuvxyyzz{{{zzzzyyyzzz{{||}~~€€‚ƒ„……†††…„ƒ‚€~~}}~~~€‚ƒ„…†‡ˆ‰‰ŠŠŠ‰ˆˆ‡…„„ƒ‚‚‚‚‚€€~}}|{{{{{{||}~€‚ƒ„„……††…„ƒ‚€~}|{zyxwwwwxyz{|}€€‚‚ƒƒƒ„„„„„„ƒ‚‚‚‚‚‚ƒƒƒƒ‚‚‚€€~~~~~~€€‚‚‚‚‚ƒƒƒ„„„………„ƒƒ‚€€€‚‚ƒƒ„„………††……„„ƒ€~}}}||{{zzzzzzzzzzzyyyyyxxxxxxxxyyyyyzzzzz{zzzyxxwwvvvwwxyz{{|}}~~€€‚‚ƒƒ„„„……„„„ƒƒƒƒƒƒƒƒƒƒ‚‚€€€€‚ƒƒƒ„„ƒƒƒƒƒƒƒƒƒ„„ƒƒƒ‚€~}}|{{{zzzzzz{{{||}}~€‚‚‚‚‚€~~~~~€€‚‚ƒƒƒƒ„„„„„„„„ƒƒ‚€€€€‚‚€~}|{zzzzzz{|}}~€‚ƒ„„……†††††††……„ƒƒ‚‚‚‚‚‚‚‚‚‚‚€€~~}|{zyxxwwwxyz{}‚„†‡‡‡‡†…„‚€€‚„…†‡ˆ‰ŠŠ‹‹‹‹‹‹ŠŠŠŠŠŠŠŠŠŠŠŠ‹‹ŒŒŽŽŒ‹Šˆ‡†„ƒ‚€}||{zzzzz{{{|||{{{zzyyxwwvvvuuvvwwxyzz{|}}~~~}}|zyxwvuuuuvvwxyzzz{{{zzyyxxxwwwxxxyyyyyyyxxxwwwwwwwxxy{|}~~€€‚‚‚‚‚‚€~|{zyyxyy{|~ƒ…†‡‡‡ˆ‡‡‡†††††††††††‡‡‡ˆˆˆ‰‰‰‰‰ŠŠ‹‹‹‹‹‹Š‰‰ˆ‡‡‡††††……ƒ‚~|{{zyyyyxxxxxxxxyyz{||}~~~~~~}|{yxwwvvvwwxxyyyyyxwwvvwwxz{}~€ƒ„„…………………………††††‡‡ˆ‰ŠŒŽŽŽŒ‹‰ˆ†……„………†‡ˆˆ‰‰ŠŠŠŠ‰ˆ‡…„‚€~}{zyxxxxxxyzz{||}}}}||{zyxwvvuuuuuvwxyz{|}~€€€~}|{zyxwwvuttsrrrrrstuvwxxyyyyxxwwwwwxxyz{}~€‚ƒ„……†††………„„„ƒƒƒƒ‚‚‚‚‚ƒƒ„…‡ˆŠ‹ŽŽŒŠ‰‡†…ƒƒ‚‚‚ƒ„„…†‡ˆ‰‰ŠŠŠŠŠŠ‰‰ˆ‡‡‡†‡‡ˆˆ‰‰‰‰ˆ‡†„‚€}{yxwvvvvvwxyz{}~~~~}|{zyxwwvuutssrrrrrrsstttttttttuuuvwxz{}ƒ„†ˆ‰‹‹Œ‹‹Š‰ˆ‡†…„ƒ‚‚‚‚‚‚‚‚ƒƒƒ„„„………………„„ƒƒ‚‚€~}}|{{{{{{|}~€‚ƒƒ„„„„„„„„……†‡‡ˆ‰Š‹ŽŽŒ‹Š‰ˆ‡‡†††……„„ƒ‚€~}|{{zyyxxwwvvvuuuutuuuuuvvvvvvvvvvvvvvvvvvvvwwxxyyyzzzzzzzzyyyxxxxxxxxyyzz{{{{||{{{zzzz{{|}~€‚‚ƒ„„„„„„„„„„„„„„„………†††††††††††††††‡‡†††…„„ƒ‚‚‚‚‚ƒƒ„†‡ˆ‰Š‹ŒŒ‹‹Š‰‰‰‰‰‰‰‰‰ˆ‡‡†…„ƒ‚€~}}||{{zzyyxxxxxxxxyxxxwwvutssrqqqppppppqqrstuvxyz{{|}}~~~~~~}}}}}~~€€‚ƒƒƒ„ƒƒƒ‚‚‚‚‚‚ƒ„…†‡ˆ‰‰ŠŠ‹‹‹‹ŒŒŒŒŒŒŒŒŒŒŒŒ‹ŠŠ‰ˆ‡†…………………………………………„„ƒ‚€~~}}}}~~~€€€€~}||{{{{||}}~~~~~~~€€€‚‚‚‚‚ƒƒƒƒƒƒƒ‚‚‚€€~~~€€€€~}|{{z{{{{|||}}}}}}||{{zzyxxwwvvvvvwwxyyz|}~€‚ƒƒ„„„„„ƒƒ‚€€~~}}}||{{zzzzzz{{|||}}}||}}~~€‚ƒ„…†††††…„„ƒ‚‚€€€€~~~~}}}|||||||||{{{{{{|||||||{{{zzyyxxxxxxxyyyzz{{{|||}}}}~~~~~~~~~~~~~~}}}||||||}}€ƒ„†‡ˆˆ‰‰ˆˆ‡††………††‡ˆˆ‰‰‰‰‰ŠŠŠŠ‹‹‹‹‹Š‰‰ˆ‡†………††‡ˆ‰ŠŠŠ‹‹ŠŠ‰ˆ‡†…„‚€~}|{zzyxxwwwwwwwxxxxxwwvvutsrqppppqrstuvxyz{||}~€€€€€‚ƒ„…†‡ˆ‰‰ŠŠŠ‰‰‰‰‰Š‹ŒŽ‘‘‘Œ‹Š‰‰ˆˆˆˆ‡‡‡†…„ƒ‚€~~~~~~€€€€€€€€€€€€€‚‚‚‚ƒƒ„„„„„ƒ‚€~}|{{zzzzzzzzzyyxwwvutssrrrrrrssssssssssttssssrrqqppppoooooooppqrrstuvwxz|~ƒ„…………„ƒ‚‚‚ƒ„†‡‰‹ŽŽ‘ŽŒ‹‹ŠŠ‰‰‰‰ˆ‡…„‚€~}|||}}~€‚‚ƒƒƒ‚‚‚€€~}}|{{{{|}~~€€€€€€~~}|{{zyyxxxxxyyyyyyxxwwvvuttsrqqpppqrstuwwxxxyyyyzz{|}}~~~~~}}}}}}~€‚ƒ„„…†††‡‡ˆˆ‰Š‹ŒŽ‘’““”””““’‘ŽŒŒ‹ŠŠ‰‰‰‰‰‰Š‹‹ŒŒŒŒŒ‹ŠŠ‰‡…„}{ywutsrrqqqqrsttuvwwwxwwwwwwvvvuuutttssssssttuuvvvvuuttssrrssttuvxy{|~‚‚€}|zzyyyz{|~‚ƒ…†‡‡ˆˆ‰‰‰ŠŠŠ‹‹‹‹‹‹‹‹‹ŠŠ‰‰ˆ‡‡††…………………………††‡‡ˆ‰Š‹ŒŒŽŽŽŽŒŒ‹‹Š‰ˆ‡†…„ƒ‚‚‚‚‚‚ƒƒ„„„„„„„ƒƒƒ‚‚‚‚‚‚‚‚ƒƒ„……†††††…„„‚€}|{yxwvuutttttttttttsssrrrssssssssssssrrsssssttuvvwxyyzzzzzyyyyyz{|}~€‚ƒƒƒƒ‚‚€€€€€€€€€€€~~}}}}}}}~~~~~~~€‚‚ƒ„……†‡‡ˆ‰Š‹ŒŒŒŒŒ‹‹‹‹ŠŠ‰ˆˆ‡†…„ƒ‚‚‚‚‚‚‚‚‚‚‚‚€~}|{zzzz{|}~€‚‚‚‚‚‚ƒƒƒƒ‚‚~|zywvtttttuvwxy{{|}}}}||{{zyyxxxxyyz{||}}~~€€‚‚‚‚‚€~~}}~~€ƒ„……††††………„ƒƒ‚‚‚‚ƒ„……………„ƒƒ‚€€€€‚‚‚‚‚‚‚€€€€€‚ƒƒ„„„„ƒ‚‚€~~~~~€‚ƒ„……†††‡‡†††††‡‡‡ˆˆˆˆˆˆˆˆ‡‡‡††…„ƒ‚€€€‚ƒƒ„………„„ƒ‚€~~}}}~~~~~~}}||{{zyyxwvuttssstuuvwxyz{|}}~~~~€‚‚‚‚~}{zyxxxxxxyyyyxxwwvuutttsssrrqpponnmmnnopqrrstuuvvvwxyz{|}€‚ƒ…†‡ˆ‰Š‹ŒŒŒŒŒ‹‹‹ŠŠŠ‰‰ˆˆˆˆˆˆˆ‰‰ŠŠŠŠ‰ˆ‡…„‚€~€€‚ƒ„„…†††‡‡‡‡‡ˆˆˆˆˆˆˆˆˆˆ‰ŠŠ‹ŽŽŽ‹Š‰‡†„ƒ€~~~~~~~~~~~~~€€€€€€~}|{zyxxwvvvvvuuutsrqonmkkjjjjjkllmnnoooopppqqrrsstttuuvwwxyyzzzzzzzyyyyz{|}~€‚ƒ„…………†††‡‡ˆ‰Š‹ŒŒŒ‹‹‹‹ŒŽ‘“”••••””“’’’’““”•••••”““’’‘Ž‹‰†„~{xvtrqqqqrsuvwwwwwwwwxxxyzz{{|}}~€‚‚ƒƒƒƒ‚‚€€€~~}|{zyxwwvuuutttsssrrrssstuvvwxxyyyzzzzzzzz{{||}~€‚‚‚ƒƒƒƒƒƒƒ‚‚‚‚‚ƒ„…†‡ˆ‰‰‰‰‰‰ˆ‡‡††…………„„…………„„„ƒ‚‚€~}}}||{{zzzzzz{{{{{{{zzyyyyyzz{|~€‚ƒƒƒ„„„ƒƒƒ‚‚‚‚‚‚ƒƒƒƒƒƒƒ‚‚‚‚‚‚€€~~~}}}|||||||||{{zzyxxxxyyzz{|||||{{zzzzzz{|}~€‚‚ƒ„„……†‡ˆ‰ŠŠ‹ŒŒŽŽ‘‘‘‘ŽŒ‹Šˆ‡†…„ƒƒƒƒƒƒƒƒ‚‚€~}}|{{zyxxwwvwwwxyyz{{{zzyxwvvuuuuuuvvwxxyyzzzzyyxxwwvvuutttuuvwxyz{||||{{zzzzzz{{||}}~€‚ƒƒ„„……„„„ƒƒƒ‚‚‚‚ƒƒƒƒƒƒ„„……†‡‡ˆ‰‰‰ŠŠ‰‰‰‰‰ŠŠ‹ŒŽŽŽŽŽŽŽŽŽŽŽŽ‹Šˆ†„ƒ‚€€~~}{zywvvuuuuuutttsssrrrrrrrrrrrrrrrsstvwy{}~€‚„…†‡ˆ‰‰‰‰ˆˆ‡†„ƒ€~}{zywvtsrqonnmmmmnnoppqstvxz}€ƒ†ˆ‹ŒŽ‘‘‘‘’‘‘‘ŽŽŒŒ‹‹Š‰ˆ‡‡†…„„ƒ‚€~}|{{zzyyyzz{||}~€€€€€~~}}||||||{{zywvutsrqponmmlkkllmnoppqqrrrssttuuuuuuuuuvwxyz{|}~€€‚ƒ„……†††††††††††††…………„„„„„ƒƒƒƒƒ‚ƒƒƒƒƒƒƒ‚‚€€~~~~~~€€€€€~~}}}}}}}}~~€€€‚‚‚ƒ„„…††‡‡‡‡‡††……„„ƒƒ‚‚‚€€~}|{zyyxxxyz{|}~€€‚‚ƒ„…†‡‰Š‹‹ŒŒŒŒŒ‹‹‹ŠŠ‰‰ˆ‡‡†…„ƒ‚‚€€~~}}}|||||||}}}}}}}||||{{{zzyyxxwwwwxxyyz{|}~€‚‚‚ƒƒƒ‚‚‚‚‚ƒ„„………………………†††‡‡‡‡‡‡‡‡†††……„„ƒ‚‚€~}|zyxwvutsrqpoonnnopqrsuvwwxxxyyyyyyyyyyzzz{{|||||||}}~‚ƒ„…†‡ˆ‰‰ŠŠ‹ŒŒŒŒŒ‹Š‰ˆ‡†……„„ƒƒƒƒƒƒƒ‚‚€}|{zzzzzz{{|}}~€‚ƒƒ„…††‡‡‡‡‡††††††††‡‡ˆ‰‰‰ŠŠŠŠ‰‰ˆˆˆˆˆˆ‰‰Š‹‹‹ŠŠˆ‡…ƒ‚€~~}~~~~~~}|{zywvutttttuuvwxyz{|}~~€€€‚‚‚€}|{zyxxxxyyyyyxwwvutssssssssssssttuvvwxxyyzz{||}~€‚‚‚‚‚€€~~}|{{zyxwvvvvvvwwwxxxxyyyxxxxxwwwwwwxxyzz{|}}~€€‚‚€€€€‚ƒ…†ˆŠŒŽŽŽŽŽŽŽŽŒ‹Šˆ‡…ƒ‚€€€€€‚‚ƒ„……†‡ˆ‰‰Š‹‹ŒŒŽŽŒ‹Š‰‰ˆˆˆˆ‰‰ŠŠŠŠ‰‰ˆ‡…„‚€~}{zyxwvvuuutuuuuvvwwxxyzz{{|||{{zzyyyyyyyzzzzzzz{{}~‚ƒƒƒ‚‚€~~}}|||||||}}}}}}}}||{{zzz{{{|}~‚„…†‡ˆ‰‰ˆˆ‡‡††………„„ƒƒ‚€€€€‚‚ƒƒ„„„……†††††……„„ƒ‚€€~~~~~}}}}}}}}}}}}}}||||||||||{zyxvuttsttuvwxxyxxxwwvvvwxyz{|~€€‚‚ƒ„…†††‡†††……„„„ƒƒ‚‚‚€€€€€‚‚ƒ„„………†††………„„ƒ‚€~}|{zzyyxxxwwvuutttttuwxz{}~€‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ„„„„ƒƒ‚€€€€‚ƒ„…†‡‡‡‡†…„ƒ‚€€€~}|{zzyyyz{|}~€‚‚ƒƒƒ‚‚‚‚‚ƒƒƒ„„„……††‡‡ˆˆˆˆˆ‡†„ƒ‚€~~~~~}}||{zzyyxxwwwxxxyyzz{{{{{{{|}}~~~}|{zyxxwwwwwwxxyyz{{||||}}}~~€‚ƒƒ„„„„„„„„„……‡ˆŠ‹‘‘’’’‘‘‘ŽŒŠ‰ˆ†……„„„„„„„ƒ‚€~|zxvtrqpoooppqrsttuvvvwwxxyz|}~€‚ƒƒƒ„„„„„„…††‡ˆ‰ŠŠ‹‹‹‹Š‰ˆ‡†…„ƒ‚€~}}|}}~€‚ƒ…†‡‰Š‹‹‹Š‰ˆ†„‚}|zzzz{}ƒ…†ˆ‰Š‹‹‹‹‹Š‰‰ˆ‡‡‡‡‡ˆ‰‰ŠŠ‹‹‹Š‰ˆ†…ƒ}{ywutsrqqqqrrrssssttuvwxyz{||||{{zzyyyyyyzyyyxwwvuuuuvvwwxxxwwwvwwwxxyyyyxxwvuuuutttttsssssstuvxy{}ƒ…‡‰Š‹‹Œ‹‹Šˆ‡†…„ƒƒƒ„„…†‡ˆ‰Š‹ŒŒŒŒŒ‹Š‰‡…‚€}|{{{{|}}~~~~}}||{zzzz{{|}~€‚ƒƒ„„„„ƒƒ‚‚‚‚ƒƒ„„„„„„„„„………††††…„ƒ€~}}}}}~€€€€€ƒ„†‡ˆˆˆ‡††…„ƒ‚€€€~}|{zzzzz{|}}}}|{ywusrqqqrtwy|‚„…†‡‡†…„‚€~}}}}ƒ…ˆŠ‹ŒŒŒŒŒ‹‹‹‹ŠŠ‰‰ˆˆˆ‡‡†…„ƒ‚€~}||{{{{{{{{{{{{{zzyxxwwwwxyz{}~€€€€~}|zzyyyz{|}}~~~}}||{||}~€‚„………………„ƒ‚‚€~}{zyxwvutsrqpnmkjiiijkmorux{~€ƒ„†‡‰‰ŠŠ‹‹ŒŽŽŽŽŽŽ‘‘‘‘‘’’‘‘‘ŽŽŒ‹Š‰‡…ƒ‚€~|{yxwvvuuuuvwyz|}~~~}{ywtrpnmlmmoqsvxyz{{zyxwvutssrrrrrqqqpponnmmmnnopqstvx{}€ƒ‡ŠŒŽ‘‘‘Œ‹‹ŠŠŠŠ‹‹ŒŒŒŒŒŒ‹‹Š‰‰ˆ‡‡†††……„„ƒƒƒƒƒƒƒ„…†‡‡ˆˆ‡‡†…„ƒ‚€€€€~}}|||||}}}}}~~~~~~€€€€}{ywtrponnopruwz}‚‚€~|zxvtrqpooopqrtvx{~„†‰‹ŒŒ‹‹Š‰‡†……„„„…†ˆ‰‹ŒŽŽ‹‰†ƒ€|yvsqonmmmoprtvxz{|}~~~~~}}|{zyxwvtsrqonnmllmnortwy|~€‚‚‚~}{zyyxyyz{|~€‚ƒ„……††‡‡‡‡‡‡‡ˆ‰Š‹Ž“–™œžŸŸŸž›™—•“‘ŽŒ‰†„‚€~}|{zzzyyzz{|}~‚ƒ„„„„„ƒƒ‚€~}||{|||}~€€€~|{{zz{|~ƒ†‰‹ŽŽŽŒŠˆ…‚|ywvuuuuvwxxyyyyyxxxyz{}‚…‡‰‹ŽŽŒŠ‰‡…ƒ€~|zywvutsstuvwyz|}~€€€€€€€€~}|||}~ƒ…‡‰‹ŒŽŽŒ‹‰ˆ…ƒ~|ywusqponnnnnnnoooopppppppqqrrssttuuvwxz|~€ƒ…ˆ‹Ž“•—˜˜™˜˜–•“’Œ‹‰ˆ‡†„ƒ€~}|zyxwvuttsrqqponmlkjihgfeeeefhjmptx|‚…‡‰‹‹ŒŒŽŽ‘‘‘‘ŽŒŠ†ƒ{vsomkiiijlnpsvx{~€ƒ…†‡ˆˆˆ‡††…„„„…†‡‰ŠŒŽ‘’““”””””““’‘ŽŒŠˆ‡…ƒ€~}{zyyxxxxxyyxxwvtsqpnmlkjjjklmoqtwz~‚†Š‘“•————–”“‘ŒŠ‰ˆ‡††………………„„ƒƒ‚€~}|zyxwvutssssstuvxy{|}}~~~~}}|{zywutsrrrstvy|‚†‰Œ‘“”•••””“’‘‘ŽŽŒŒ‹Š‰ˆ‡‡†……„ƒƒ‚€€€€~~~~~~€€‚‚‚€~|{yxwwvwxyz|~€‚„…†‡ˆ‰‰Š‰‰ˆ†„‚€}zwurponmmmnooqrstuuvvvvvuuuttttttttuuvvwxyz{|}€€€€€~}}}|||}}}}}||{zyxwwwwwxyz|~‚ƒ„…†††††……„„„„„„„„………………†††‡ˆˆ‰ŠŠŠ‹‹‹‹‹‹‹ŒŒŒŒŒ‹Šˆ†„‚}{yxwvvwwyz{}~~€€€€~~~~€‚„†‡‰‹ŒŽ‘‘‘‘ŽŒ‹‰‡…„‚€~}}|{zyxwwvvwwxxyzz{{{{zzywvutsrrqqrssuvxz|}‚‚‚‚‚~}|{zzzz{{||}}~~}}}}|||||||||||{{zzyxwwvvvvwxyz|}€‚ƒ„„„„ƒ‚€~}|{{{||}~‚„…†‡ˆ‰ŠŠ‹‹ŒŒŒŽŽŽŽŽŒ‹Š‰‡†…ƒ‚€~}|||||}}~€€‚ƒ„……†††…„ƒ€~}|{zzzz{|}~€€‚‚ƒƒƒƒ„……†‡ˆ‰‰‰‰ˆ‡†„‚€~|zxwutsrrqpppppqrstvxz|~€‚ƒƒƒ‚€~}|{{zzzz{{{|}~€ƒ„…††‡‡‡‡†††………†‡‡ˆ‰‰ŠŠŠŠ‰ˆ‡†„‚€~{ywutsrrqrrstuvwxxyzz{|}}~€€€€~~}||{{{{{|}~‚ƒ„„„ƒ‚€~|zxvtrqppppqqrtuvwxyz{{{||||{{{{||}}~€‚„†‡‰‹ŒŽŽ‹Š‰‡†…„ƒƒ‚‚‚‚‚‚‚ƒƒƒƒ‚~|{ywvtsrrrrrsstuvxy{}ƒ…‡‰‹ŽŽŒ‹‰‡…„‚€€€€‚ƒƒƒ„„„ƒƒ‚‚€~~}}}}~~€‚ƒ…†‡ˆˆ‰‰‰‰ˆ‡‡†…ƒ‚€~}|||||}€‚…‡‰‹ŒŽŽŽŒ‹‰ˆ†…„‚}{zxvtsrrrstuwy{}€‚ƒƒ„„„„„„„„„………„„„ƒƒƒ‚‚‚‚‚‚‚‚‚€~|{ywutsrqqqrrsstuuvwwwwwvvutsrrqqrrstvwy{}~€‚ƒ„…†‡ˆˆˆ‰‰‰‰‰‰ˆˆ‡‡††…„ƒƒ‚€€€€€‚ƒƒ„„„ƒ‚€~}{zxwvuuuvwxy{|}€€€€~}|{zxxwwwwwxyz{|}~€‚ƒ„…††‡‡‡†…„ƒ‚€~}}}}~€ƒ„„………………„„„ƒƒƒƒƒ‚‚‚ƒƒƒ„…†‡‰Š‹ŒŒ‹‰‡„}zvsqomllmnoqsvxz|~€~}|{{zyxxwvuutsssstuwy{}€ƒ†ˆŠŒŽŽŽŒ‹Š‰ˆ‡‡‡‡†††……„ƒ€~}{yxwuutttuvwy{}~€‚„…†‡ˆˆˆˆ‡‡†…„ƒƒ‚‚‚ƒƒ„†‡‰ŠŒŽŽŒ‹Šˆ‡†……„„ƒƒ‚€~}{ywvtsqqqqqrsuvwxxyyyyyyyyyyz{|}~€ƒ„……………„ƒ‚€~}}||{zzyxxwvuuttssrqppooopprsuwy{}ƒ„†‡ˆˆˆˆˆ‡‡†……„„„……†‡‰Š‹ŒŒŒ‹Šˆ†„ƒ€~~~€‚ƒ„„……………„„„ƒƒƒƒƒƒƒƒƒƒƒƒ‚‚€€€‚ƒ„„……†††………„ƒ‚‚€€€€€€~~€‚ƒ„……††††††……„„ƒƒƒƒƒƒƒ„„„„ƒƒ‚€~}|{zyyxwvvuuuuuuvvvwwwwwwwvuutssrrqqqrrrsttuuvwwwxxxwwwwwxxyz{{||||{{zzyyxxxxxyyzz{|}}~€€‚ƒ„„…††‡‡ˆ‰‰ŠŠ‹‹‹ŒŒŒŒ‹‹ŠŠ‰ˆ‡††……………††‡ˆˆ‰‰‰‰‰ˆˆˆ‡‡†††…„„ƒƒƒ‚‚‚€€~}||{zzzzzzz{{|||}}~€‚‚ƒ„„„„„ƒ‚€~~}}}}}}}~~~~~~~~}}}|||||}}}}}}||{{zzyyyxxxxxwwwxyz{}€‚„†ˆ‰Š‹ŒŒŒ‹‹Š‰ˆ‡†„ƒ‚€€€€€€€~}|{zyxxxxxxxxxxxxxxxyyz{{|}}}~}}}}}}~~€‚ƒ…†‡‰Š‹ŒŒŒŒ‹Š‰ˆ‡†……„„„„„„„„„„„ƒƒ‚‚€€€€€€€€€€‚‚ƒƒƒƒƒƒƒƒƒƒ„…††‡ˆ‰‰‰‰ˆ‡†…„ƒ‚€~~~~~~}}|{zxwvtsrrqqqqrsttuvwxyz{|}~€‚‚‚‚‚‚€~}|{zyyxxxxxyyz{|}~~~~~}}|{zyxwwvuuuuvvwxz{}€‚„†‡‰ŠŠ‹‹‹ŒŒŒŒŒŒŒŒŒŒŒŒ‹Š‰ˆ‡…ƒ‚€~}|{zyyyyyyyzzz{{|}}~€€€~}{zxwvutttttttuuuvvwxyz{|}~€€€€€€‚‚‚‚‚€€€~~}}}}||||||}}}~~€€‚‚ƒ„……†‡‡ˆˆˆˆˆ‡‡††………„„„„„………†‡‡ˆ‰ŠŠŠŠŠ‰ˆ‡†…„ƒƒ‚‚€€€€‚ƒ…†ˆ‰‹ŒŽŒ‹Šˆ‡†……„„ƒƒƒƒƒ‚‚€€~~}}}}}}}}}||}}}~~€€€€€€~}|zyxwvuuuuvvwyz{}~€‚‚€€~~}}||{zzyyxxxwwvvuuttssssssssttttttttttttuuvwxy{|~€‚ƒ„……†‡‡ˆˆˆˆ‡†…„ƒ‚€€€€€€€€€€€~~~~~€€‚ƒ„…†‡ˆ‰‰ŠŠ‹‹‹ŠŠŠ‰‰‰‰‰‰‰ŠŠ‹ŒŒŒŒ‹‹Š‰ˆ†…„‚€~~}}}}}~~€€‚‚‚‚‚‚€€~}|{zyxxxxxyyzz{|||||||{{zzyyxxxxyyyzz{{||||||||||}}~~€‚‚ƒƒƒ„„………†††††††…………„„ƒ‚€~}|{zyxwvvutsssssttuuuvvvvvvvvwwxyz{|~€ƒ„…†‡ˆˆ‰ŠŠŠŠŠŠ‰ˆ‡†…„„ƒƒƒƒƒ„„„„………††††††††††………………………„ƒ‚~|{zyxwwwwwxxyzz{||}}}}}}}|||{{{zyyxxwwwwwwxxxxxxxxwwwwwxxxyz{{|~€€‚‚ƒƒƒ„„„„………………„„ƒƒ‚‚€€€€€€€€~~~~~€‚ƒƒ„„„„ƒ‚‚€~~€‚ƒ…†‡ˆ‰‰ŠŠ‰‰‰ˆˆ‡‡††††…………„„ƒƒ‚‚€~}}|||||{{{{zzzzzzz{{|}~€€‚ƒƒƒƒƒƒƒ‚‚‚€€‚‚‚‚‚ƒƒƒƒƒƒ‚‚‚‚‚‚‚ƒƒ„„„„„ƒƒ‚‚€~}}||||||}}~~~~~~}}}}}}}~€ƒ„†‡ˆŠŠŠŠŠ‰‡…ƒ~|zwutrqpoooprsuwy{}~€€€€~}|{zyyxwwvvvvuuttttstttuvwwxyz{}~‚„…‡ˆ‰ŠŠ‹ŠŠ‰ˆ‡†„ƒ‚€€€€‚ƒ„„…………………„ƒ‚‚€€€€€‚ƒ„„…………„„„ƒ„„„…†‡ˆ‰Š‹ŒŽŽŽŽŽŒŒ‹ŠŠ‰ˆ‡‡†…„ƒ‚€~}|zywutrqqpqqrtvxz|~‚ƒƒƒƒƒƒƒ‚‚€~}{zxwvuttsstttuvvwwxxyyzzz{{||}~~~~~~~}}}||||||||}}}}~~€~}|{yxxwwwxxyz{||}}~~~~}}||{{zzzzzz{{|~€‚ƒ„††‡‡‡‡‡†…„ƒƒ‚‚‚‚‚ƒƒ„……†††††††……„„„ƒƒƒƒƒƒƒƒƒƒ„„„……††……„ƒ‚€€~~~~~€‚ƒ„…†‡ˆˆˆˆ‡†…„„ƒ‚€€€€€‚‚ƒ„…††‡ˆˆˆˆˆˆ‡‡‡‡ˆˆˆ‰‰‰ˆ‡†„ƒ€~}}||}}~~€‚‚ƒƒ„„„ƒƒƒ‚€~~}||{{{{|||}}||{zyxwvuttssssstuvwy{|~€€€€€~~}}||{{{zzyxxwvvuuuuuuuuuuuuvvwxyz{|~€€€€€€~~~}}}}}~€‚„…††††††…………„„„„„„……†‡ˆ‰ŠŠŠŠŠ‰ˆ‡†…„ƒ‚‚‚‚‚ƒ„…†‡ˆ‰ŠŠŠŠŠŠŠŠŠŠŠŠ‰‰ˆ‡‡††…………………„ƒ‚€~|{yxwvuuuuuvwxxyyxxwvutsrqpoonnnnooopqqrrsttuvvwxz{|}~€‚‚ƒƒ„……†††‡‡†††…„„ƒ‚‚€€€€€‚ƒ„…††‡‡‡‡‡‡‡‡‡ˆ‰‰Š‹ŒŒŽŽŽŒ‹Š‰ˆ‡†††‡‡‡‡‡†…„‚}{zyxxxxyyz{||}}~~}}}|{zzyxxwwwwwwwwwwwwwwwxxyyyzzz{|}~€‚ƒƒ‚‚€}|{zyxwwvuutttttuvvwxyz{||}~€€€€€€€‚ƒƒ„…†††‡‡††††………„„ƒƒ‚‚‚‚ƒƒƒ„„……†††††††………………„„„ƒƒ‚€~}||{{{{{||||||||||}}~~~~}|{{zyyyyyz{{|}~~~~}|{zzyyzz{|}~€€€€‚‚ƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ„„„…………††……„ƒƒ‚€€€€€€‚ƒƒƒƒƒ‚€~|zywvvvwwyz|~€‚„……†……„ƒƒ‚‚‚‚ƒ„……†‡ˆ‰ŠŠ‹‹‹‹ŠŠˆ‡†„ƒ‚€€€€‚ƒ„„…†‡‡‡‡††…ƒ‚€~}||{zyyyyyz{|}~~}}||{{zzz{{{||}}}}}}}}}}~~~~~~~}}|||{{zzyxwvvuvvwxz|}€€€~}}|{{{{{{|}}~~~~}}|{zyyxxxxxyyyyyyyyz{{|}€‚ƒƒ„„„ƒƒ‚€~~~€ƒ„…†††……„ƒƒƒ‚ƒƒƒƒƒƒ‚‚€~}||{{{{{{{||}~€ƒ„…‡ˆŠ‹ŒŒŒŒ‹Š‰ˆ‡‡††††‡‡ˆ‰ŠŠ‹‹‹‹‹ŠŠŠŠ‰‰‰‰ˆˆ‡††……„„„„„„„ƒ‚}|zywvvuuuuvvwyz{|}~€€€~~~}}}~~~~}|{zxwvttsssssttuvwxyyzzzzzzyyyxxwvvuttssstuvxz|~€‚ƒ…†‡‡‡‡‡††…„„ƒ‚‚€~~~~€‚„…†††……„ƒ‚€€€€€€‚‚ƒƒ„„„„„„ƒƒƒ‚‚‚€€€€€€‚‚ƒƒ„„„„„„„„„„„„………††††††……„ƒ‚€~~~~~~€€‚€~~}|||||}~~€€€~}{zyyxxyzz{|}}~~}}}}|}}~~€‚‚ƒ‚‚€~}|||||}}~€‚‚‚‚‚‚ƒ‚‚‚‚‚ƒ„†‡ˆ‰‰‰‰ˆ†„ƒ~}|{{{|}~€‚‚‚‚‚€€~~~~~~~~~~~}}}}}}}~~€€‚‚ƒƒ‚‚~|{zyyyyz{|}~~~~}||||||}}~€‚‚‚ƒƒ„…†‡‡ˆˆ‡‡†…„ƒƒ‚€~|{yxvuttttuvwxyz{{||}}}}}}}}}}~~~~~~}||{{zzyyxxwwvvvvvwxyz|}€‚ƒƒƒƒƒƒƒ‚‚‚‚ƒ„…†ˆˆ‰‰ˆ‡†„ƒ€~~}}}}}}}|||}}}~€‚‚ƒ„„…………††‡‡ˆ‰‰ŠŠŠŠ‰‰‡†…„‚‚‚‚ƒƒƒ‚‚‚‚ƒƒ„…†‡ˆ‰Š‹ŒŒ‹Šˆ†„‚~}|{zyxwvutsrqppppqqrstuvwwxyyz{|}~€‚ƒ„„„„„„„„„„ƒƒ‚€~|{zzyyzz{|}~€‚ƒ„„„„„„ƒƒƒ„„……†††††…„„ƒƒ„„…††‡ˆˆ‡‡†…„„ƒƒƒƒ„„„……„„„ƒƒ‚‚‚‚‚‚€~}|{zzzz{{{{{{zzzyyyxxwwwwvwwxxz{}~€‚ƒ„…………„ƒ‚€€€~}|{{{{{|}}~~~}|{yxvutssstvxz|~€ƒ„…………„ƒ‚€~~}}}}}}~~}}}||||}}~€€€~~€‚‚ƒ„„…††††††…„ƒ‚€~}{ywutrrqrrtuxz|‚„„……„„ƒƒ‚‚‚‚‚‚ƒ„……†‡‡††…ƒ‚€~}|{z{{|}€‚‚€€€‚„…†‡ˆˆˆˆ‡††…„ƒ‚€€€‚‚ƒƒ‚€~}|{{{{||||||||}}~€€€€€~}|{zyxwvvuttssstuvwyz|}€‚‚‚€€€€~~~}}}~~‚ƒ„„……………„ƒ‚‚€€€‚ƒ„„„„„ƒ‚€€€‚„…‡‰Š‹‹‹ŠŠ‰‰‰‰ˆˆˆˆ‡†…„ƒ‚‚‚‚‚ƒƒ„„„„„ƒ‚€~}}}~€‚„†ˆŠ‹ŒŒ‹‰ˆ†„‚€~~€€€~}{zyxxxxxxyyz{{|}~‚ƒ„…††‡‡†††……„„ƒƒ‚€}|{yyxxxyyzz{{|||||||{{{zzyyyyyyzz{{|||}}}}|{zywvutsstvwz|~€‚ƒ„………………………††††…„„ƒ‚€~}{zywvuttttuvwxxyyyyzz{|}€€€~~~~~~€€‚‚ƒ„„„…………………„„ƒƒƒ‚‚ƒƒƒ„„…………………………†††‡‡‡‡‡‡†…„‚}|zyyyyyzz{{||}}}~~€€‚‚‚ƒƒ„„……††‡‡‡††………„„„„ƒƒƒ‚€~}|zzyyyz{|}€ƒ„…††‡‡‡‡‡‡††……„„ƒ‚€}|{zyyyyyzzzzyyxxwwwwwwwwwvuutsrrqqqpppppqqrstuwxyz{|}}~~€€‚‚ƒƒ„„„………………………………………„„„„„…………††††††‡ˆˆ‰ŠŠ‹‹‹‹ŠŠ‰ˆ‡†…ƒ‚€}|||||}}~€‚‚ƒƒƒƒƒ„ƒƒƒƒ‚‚€€€€€€€€€~}|{zyyxxxxyyz{|}~~~~~~~€€€€~~}||||}}}~~~~~~~~€‚ƒƒ„„„ƒ‚‚€~~}}~~‚ƒ…†‡ˆ‰‰‰‰‰ˆˆ‡‡††……………††‡ˆ‰‰ŠŠ‹‹ŠŠ‰‰ˆ‡‡††…………………………„ƒ€~}|{{zzzzz{{{||||}}}~~~~~~~~}|zywutrqpppqrstuuvvvvvwwxxyzz{||}~~€€}|zxwvuttuvwy{}~€‚‚‚‚€~}|{zzzzz{|}~€ƒ„…‡‡ˆˆˆˆˆ‡‡†…„„ƒƒ‚‚‚‚‚ƒ„…†‡ˆˆ‡†…ƒ‚~~}}}}~~€‚ƒƒƒƒƒ‚€}{zyxxxy{|„†‰‹Ž‘’“““’‘Ž‹‰ˆ†„ƒ~|zyxwwvvvvvuuuuttttssssssttuuvvvvvvvvvwwwxyyz{{|}€‚ƒ…†‡‡‡†…„‚€€~~~~}}||{{zzzzzyyyyxxxxxxyyz{}~€ƒ…‡ˆŠ‹‹ŒŒ‹‹Š‰ˆ‡…„ƒ‚€€€‚ƒ…†ˆ‰ŠŠŠŠŠŠ‰ˆ‡‡†……………††‡ˆˆ‰‰ˆˆ‡…ƒ}zxwvuuvwxz{}~€ƒ„…†ˆ‰Š‹ŒŒŒŒ‹‹Šˆ‡…ƒ‚€~|zxwusrqpoooooopppqrrstvwy{}€‚ƒ„………………„ƒƒ‚€€~}||{zzzz{|~ƒ…‡ˆŠ‹ŒŽŽŽŒ‹‰‡„‚}{zyxxxyyz{{|}~~€€‚‚ƒ„…†‡ˆ‰Š‹ŒŒŒŒŠ‰‡…ƒ€~}|{zyxxwwwwwwwwxxxxxxwwwwvvvvvvwwxxyz|}~€‚‚‚€€~~}}||{{{zzzzzzz{{{||}~€€‚‚ƒƒƒ‚‚€}{yxvuuttuuvwxyz{|}~€€‚€€€‚‚ƒƒ„„„„„„ƒ‚€}|zyxvuutttuuvxy{}~€‚ƒ„„………………„„ƒ‚‚€~~}}}}}}}}|||||||||||}}~€‚„…†ˆ‰ŠŠ‹‹‹‹‹‹‹Š‰ˆ‡†„ƒ‚€~}||{{{{{{|}~‚„…‡‰ŠŒŽŽŒ‹ŠŠ‰‰‰‰‰ŠŠ‹‹ŒŒŒŒŒ‹‹Š‰ˆ‡†„ƒ‚€~}|||}}~€€€€~}|{zyxvutssrrrqqrrrstuvxy{|~€ƒ„†‡‰Š‹ŒŽŽŒ‹‰†„|zxvuutttuuvwwxyzz{|}}~~~~~~~}|{yxvutsrqqrrsstuvwxyz{}€‚„…†‡ˆˆˆ‡†…ƒ}|zywwvvvwwxyz{|}~€‚ƒ…‡ˆŠŒŽ‘’’’’‘ŽŒ‹‰ˆ†…„ƒ‚€~~~~~~~~~€‚‚ƒƒƒƒ‚€~}|{{{{|}~~~~|{zxwvuuuvvxy{}ƒ„†‡‡ˆˆ‡‡†…„ƒ‚€~~}}||{zzyyyyyyzz{{|}}~€‚‚‚‚‚€~}|zyxwvvuuuuuuuuuttttttuuwxy{}~€‚ƒ„„„„„ƒƒƒƒƒ„„„„„„„ƒ‚~|zywvuuuvwyz|ƒ„†‡ˆ‰Š‹‹ŒŒŽŽ‘‘’’‘‘ŽŒ‰‡„~{yvusrrrrsuvxz}‚„†ˆŠŒŽ‘’““”””“’‘Ž‹‰‡…ƒ}|{{zzz{{{{{||}~€‚ƒ„……†……„ƒ€~}{zyxwvvvvvvvvvvwwwwwxxwwwwwvvvwwxyz{|}~~~~}}|{zzzz{|~€‚„†‡ˆˆˆˆ‡†…„ƒ€}|zyxxxxyz{|}~€‚‚‚‚‚‚‚‚€~}}|||||||}}}}}}}}}}}~~€ƒ„…†‡ˆ‰‰‰‰‰‰‰ˆˆ‡‡†……„ƒ‚€€€‚ƒ…‡‰ŠŒŽ‘’“””””“’‹‰ˆ†…ƒ‚~}|{yxvusqponmmmmmnnooppqqrrstuvwyz{}~€€€€~|zywutrqponnmmllllmmnoppqrsstuvvwxyz{|}€‚ƒ„…††‡‡‡††…„„ƒƒƒ‚‚‚‚ƒƒƒ„…†‡ˆˆ‰‰‰‰ˆˆ‡††………………††††‡‡ˆˆˆˆˆ‰‰Š‹Œ’““““‘Šˆ…ƒ~}|{{{||}~€€‚‚ƒ„…†ˆŠ‹ŒŽŽŒŠ‰‡…ƒ}{zyyxyyzz{{{||{{{{{{{{zzzyxxwvvutsrqpoooooqrsuvxyyzzz{{|}€ƒ„……………„ƒ‚‚€€€‚ƒ„…††‡‡‡‡‡‡‡‡†††††††‡ˆ‰ŠŠ‹‹‹‹‹Š‰ˆ‡††…„ƒƒ‚€€~~~€€€€‚‚ƒƒƒ‚‚€~|{yxvutrqpooopqrtvxz{}~~~~~~~~€€‚‚‚ƒ‚‚‚€}|{zzyyyyyyzzz{{||}~€‚ƒƒ„„……††‡‡ˆˆˆˆˆ‡‡††……„„ƒƒƒƒƒƒ„„…†ˆŠ‹’“”””””“’ŒŠ‰‡†…„ƒ‚€~~}}}}~~~€€€‚‚ƒ„„………„ƒ‚€~|zxvtrqonmlkjjiijjklmopqrssttttttsssttuvwwxyyyyxxwvvvuvvvwxyyz{|||}}}}}}}}}}~~€‚ƒ„…††‡‡ˆˆˆ‰‰‰ŠŠŠŠŠ‰‰ˆ‡…„‚€~}}||||||}|}}}}}~~€€‚ƒ„„…†‡ˆˆˆˆˆ‡††…„‚€}|{{zyyyyzz{{||}}~~~~~~~~€‚„…†‡ˆˆ‰‰‰ˆˆ‡‡‡††……………††††‡‡‡‡‡‡‡‡‡ˆˆ‰‰‰‰ˆ‡†„‚}|zzyyzz{{{{zzyyyyzz|}~€€‚‚ƒ„…†‡‰Š‹ŒŒ‹Šˆ†„‚|zwtqnkhfdcbabbcefhjlnoqstvwxz|}€‚ƒ„„………†††††………„ƒ‚~}|{{{{}~ƒ„†‡ˆˆ‰‰‰‰ˆˆˆˆ‰Š‹ŒŽŽŽŒ‹Šˆˆ‡††††††‡‡ˆ‰Š‹‹‹Œ‹‹ŠŠ‰ˆ‡‡††……„„ƒƒ‚‚‚‚‚‚ƒƒ„……†††††……„„ƒƒƒƒ„„………………„ƒ‚€€~~}|{zyxxwwwwwwwxxyyzzzzzyxvusrqpppppqqrrrqponmlkjjjjjjkllmnopqrtuwxy{|}~€‚‚ƒ„„……††††‡†††……„ƒ‚€~~~€‚ƒ…‡ˆŠ‹ŒŽŽŒŠ‰‡†…„„„……†‡‡‡‡‡‡††…„ƒ‚€~}|{{zzzzzzzzyyxxwwvvvuutsrqpnmlkjjjklnoqrtuvwxyz{}~‚„…‡‰‹Ž’“”•––—––•”“’‘ŽŒ‹Š‰ˆˆˆ‡‡‡††…„ƒ‚‚‚‚ƒƒ„„…††‡ˆˆˆˆˆ‡†…„‚€~~~~}}}||{zzyxwvvuuuuuvvwxyzz{{{{|||}}~~~~}}|||{{zzzzzz{{{{|||}}~€€‚‚ƒƒ„„……………„„ƒ‚€~}|{zyxxwwwwwwwwxxyz{{|}}}}}}}~~€‚ƒ„†‡ˆŠ‹Ž‘’’“““’’‘‘ŽŒ‹Š‰‰ˆˆˆˆˆˆˆˆ‰‰‰ŠŠ‹‹‹‹‹Š‰ˆ‡††………††‡‡‡‡††…„ƒƒƒƒ„„…††‡‡‡†…„ƒ‚€~}|{yxvtsrponmlkjihgfecba_^]]]]^_abdfgijkmnoprstuuvvuutssrrqqrssuvwyz{}~€€€€€~}|{{zzzzz{|~ƒ†ˆŠŒŽ‘’’’’’’’’’’“““”””””””“’’‘ŽŒ‹ŠŠ‰ˆˆ‡‡‡‡ˆˆ‰ŠŠ‹‹‹ŒŒŒŒŒŒ‹Š‰‡†…„„„„…†‡ˆ‰Š‹‹ŒŒŒ‹Š‰‡†„ƒ‚€€~~}|{zyyxxxwwvvuuttttttttssrrqppoonnmmllllkkkkjjjiiiiijklnoqsuwxz|~‚„„…††††††……„ƒ‚€~}|{{{{|}€‚ƒ…†‡ˆˆˆˆˆ‡†…ƒ‚€€€€‚‚ƒ„…†‡‰ŠŒ‘‘’‘‘‘‘ŽŽŒ‹Š‰ˆ‡†„ƒ}{zxwvvvvwyz|}‚ƒ„„„„„ƒƒ‚‚€€~~~}}|{zyxwwvvvvuuuttsrrqpppppqrstuvwyz{}~€‚„…‡‰‹ŒŽ‘‘‘‘‘ŽŒ‹Šˆ‡†„ƒ€~}{ywutrqqqrstvxy{}€‚ƒ„„………………„„ƒƒ‚€~}|{zyyyyzz{||}}}}}}}}}||{{zyxwwvvvvvwxyz{||}~~~~~~}}||||||||||||||}~€ƒ„…†‡ˆˆ‡‡†„ƒ‚€~||{zzyyyyz{|}‚„†‡ˆˆˆˆˆˆ‡‡†††††††††‡‡ˆˆ‰‰ŠŠ‹‹‹ŠŠ‰ˆ‡…ƒ€~|{{zz{{||}~€‚ƒ„„……†††††††‡‡††…„ƒ‚€~~~}}}}}}}~~~€‚‚‚€€~}|{{zyxxxxyyzzzzyxwvtrpnljigffefgikmoqtvxz|}€‚‚‚€~}}|{zxwvutsrqpppqrsux{~‚…‰Œ‘“•––———–––•••••”””””““’‘ŽŒŠˆ‡…„„„„„…†‡ˆŠ‹Ž’“”•–—————–”’‹‡„~{yvtrqpppqrsuvxz{|}}~~€€‚‚ƒƒƒ„„ƒƒƒ‚€~}{yvtrqpoopprsuvxyz{||}}|||{{{{{{|||||{{zyxwvutssrrqqrrsstuvwxyz{|}~€‚ƒ„…†ˆ‰ŠŠŠŠ‰ˆ‡†…ƒ‚€}|{zzyyyyyyzzz{{{|||||}}}~~~€€€€‚‚‚ƒƒ‚‚€€~}||{{{{{{{{||}}~€‚‚ƒ„……††‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡††…„ƒ‚€€€€‚ƒ„†‡‰Š‹‹‹‹Š‰‡…„‚€~}{zyxwutsrrqqqqqrstvwxyz{|}~€‚ƒƒ„„„ƒƒ‚€~}}|||{{{zzzzzzzz{|}~€€‚‚‚‚‚‚‚ƒ„…†‡ˆ‰Š‹‹‹Š‰ˆ‡…„ƒ‚‚€€~}||{{||}~‚ƒ„†‡ˆ‰‰ŠŠŠ‹‹‹‹‹‹‹‹ŠŠ‰‰ˆ‡†…„ƒ‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒ„„ƒƒƒ‚€~}|{zywvutsrqponnnnnnnooppqrrsuvwyz|}~€€~}|{zyxwwvvuutttttttuuvvwxyyz{{}~€ƒ†ˆŠŒŽŽŽŒŒ‹‹Š‰‰ˆˆ‡‡‡‡‡‡‡‡‡ˆˆˆˆˆˆˆˆˆˆ‡‡††…„„ƒ‚€~~}||{zzyyxwwwvvvwwxyz{|}~€€€~~~~~~~~}}||{{{{||}~‚ƒ„†‡ˆ‰‰Š‹‹‹ŒŒŒŒŒ‹‹‹ŠŠ‰‰ˆ‡†…„ƒ‚€~|{yxvutssstuvwxy{|}~~€‚ƒ„„………„„ƒƒ‚€€€€‚‚ƒ„„……††‡ˆ‰ŠŠ‹‹ŒŒŒŒŒ‹‹‹Š‰‰ˆ‡†…„ƒ‚~}|{zyxxxxyz|}€‚‚‚‚€~}|{zyxxwwwvvvuttsqponmkkjiiiiiijjklmnopqrstuvwwxxyyyyyzz{||}~€€‚‚ƒƒ„……†‡‡‡‡‡‡‡†…„„ƒ‚€~~}}}||||||}}}}~€‚‚ƒƒƒƒƒƒƒƒƒƒ‚‚‚€€€€€‚‚ƒ„…†‡ˆˆ‰‰ŠŠŠ‹‹ŒŽŽŽŽŒŒ‹Š‰‰ˆˆˆˆˆˆˆˆˆˆ‡‡†……„ƒ‚€€€ƒ„†ˆ‰Š‹‹ŒŒ‹‹ŠŠ‰‰‰‰‰‰‰‰‰‰ŠŠŠŠ‰‰‰ˆ‡‡†…ƒ‚~|{zyxxxxxxxxxxwwwwwwvvuutssrrrrrrssttuuvvvvuuttsssrrrrrrsstuvvwxxyyyxxxxwwwwwxxyyzz{||}~~€‚‚‚‚‚€~~~}}}}}||{zyxwvtsrqpppooppqrstuwxz{|}~€‚ƒ„…†‡ˆŠŠ‹ŒŒŒŒ‹‹ŠŠ‰‰‰ˆˆˆ‰‰‰ŠŠ‹ŒŽ‘“”•––——–•”“‘‹‰‡…ƒ‚€€€€€€~~}|{{zyyxxwwwwwvvvvuutsrrqpppppqqrstuuvwxy{|}~€€‚‚ƒ„†‡ˆˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰ˆˆ‡††…„ƒƒ‚‚€€~}}||||||}}~~€‚ƒƒ„„„………………††††††††††††††††††……„ƒƒ‚‚‚ƒƒ„„………„„ƒƒ‚€~~~€‚‚ƒƒ‚‚~|zxwutsrrqqqqqqqrrrrssstuuvwxyz{||}}}~~~~€‚ƒ„†‡ˆ‰‹ŒŽŽŽŽŒŠˆ‡…ƒ‚€~~~~~}}||{zzyxxxwwxxy{|~‚„……†††††…………………„„„„„„„ƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚€~}{zzyyxxyyzz{}~€‚ƒ„…†‡‡‡‡‡††…„ƒ‚€~~}}||||{{{zzyyxwvutrqponmllkkllmoprtvxz{}~€€€€€~~~~~€‚„…‡ˆ‰Š‹ŒŒ‹Š‰ˆ‡†„ƒ‚€€€€€€€€€~}}|{{zzzyyyxxxxxxxxyzz{{||||||{{{{zzzzyyyyyzz{{||}}}}|||{{||}~ƒ„†‡ˆ‰‰ŠŠŠŠ‹‹‹‹ŒŒŒŒŒŒ‹ŠŠ‰ˆˆ‡‡‡‡‡‡ˆˆˆˆ‡††…„ƒƒƒƒƒƒ„…†‡ˆŠ‹ŒŒŒŒ‹Š‰ˆ‡†„ƒ‚€~~~~~~€€€~}{zyxwwvutttsstttuuvvvvvvvvvvwxyz|~€‚„†‰‹ŒŽŽŒ‹ŠŠ‰‰ˆˆ‡†…„‚€~}}}}}}~~€‚‚‚‚‚‚€~}|{{zyxwvvuttttuvxz{}€‚ƒ„„„„„„„ƒƒ‚‚‚‚‚‚‚‚ƒƒƒƒƒƒ‚€~|{zyxxxxxyz{|}~€‚‚‚‚‚€~|zxwvutttuuvvvvvutsrponmlkkkjkklmnpruwz|ƒ…†‡‡‡‡‡†††††††‡ˆˆ‰Š‹ŒŽ‘’““”“““’’‘‘‘‘‘’’’’’‘Ž‹‰‡…ƒ€~~~€€‚‚‚‚‚‚€~}{zxwvvuuvvvwwxxxxwwwvvutssrqqqrstuwyz|}~€€€~~~~€€‚‚‚ƒƒ„„„„ƒƒ‚€~|{zzz{|}~€ƒ„„……„„ƒ‚€€~~}}}||||||||}}~~~~}|{{zzzz{{{|}}~€‚‚‚‚‚‚€~}|{zyxwwwxyz{}~€‚ƒƒƒƒƒƒƒ‚‚‚‚€~}|{zzz{|}~‚„…†‡‡‡‡‡†…„ƒƒ‚‚ƒ„…†‡ˆˆˆˆˆ‡†…„ƒ‚‚€€~~~}}}}}~~~~}|{zyxwwwwwxyz|}€‚‚ƒƒ‚‚~}|{{z{{}~€‚ƒ…‡ˆ‰‰‰‰ˆˆ‡††……………††‡‡ˆˆ‰‰ŠŠŠ‰‰ˆ‡†…„ƒƒ‚‚‚‚ƒ„„…†‡‡‡††…„ƒ‚€~}||{{zz{{|}~€‚‚‚ƒƒƒ„……†‡ˆŠ‹ŒŽŽŒ‹‰ˆ‡†…„‚~|{zxwwvuutsrqponmljihgfeeefghikmnpqrrrrqpponnmmmmmnnopqrtuwxz{|}}}}|{zyxxxxz{}€ƒ†ˆŠŒŽŽŒ‹‹ŠŠŠ‹‹Œ‘’““““’’‘ŽŽŒŒ‹ŠŠ‰ˆ‡†„‚€~|zxvtrqppoooooooppqqrrssttuuuutttssrrqqqqrstuvwyz{|}~~~~~}|{zyyyyz{}~€‚„†ˆ‰Š‹‹‹‹‹Š‰ˆ‡†…ƒ‚‚‚ƒ„…††‡‡††…„ƒ‚‚ƒ„…†‡‡ˆˆ‰‰ŠŠ‹ŒŒŽ‘’”•—˜™š›œœœœœœœœœœœ››š™˜—–•”““’‘‘Ž‹ˆ†ƒ€}zwurqoonnnnnnooooonmlkjihgfffefffghijklmnooonnmlkjihhhhhijjkmnoqsuvxz{||||{zyxwvvuvvwxy{}~€ƒ„……††††……„ƒ‚‚€€€‚‚ƒ„…………„„„ƒƒƒ„…†‡‰‹’’“’‘Ž‹‰‡…„ƒƒƒƒƒ„………………„ƒ‚€~~}~~~€€‚‚ƒƒ„„…………„„ƒƒ‚‚€€€‚€~|{yxwvwwxz{|~€€~~}}||{{{{{{{{|}~€€‚€~}|{zzyyyyzz{{|}}~~}}|{yxvtrponmmmnoprtwy{}ƒ„…†‡‡ˆˆˆ‰‰‰‰ŠŠ‹‹ŒŒŽ‘‘’’’’‘‘ŽŽŒŒŒ‹‹‹‹‹ŒŒŽŽŽŽŽŽŒŠ‰‡…ƒ~|{zyxvutssrrrrsstuuuvvvvwwwxxyz{||}~~~~~~~}}}|||{{{{zzyyxwvutssrsstuwyz|~€€~}|{zyyyyz{|}~€€€‚‚ƒƒ„„„„„ƒ‚‚„…‡‰Š‹ŒŒŒŒ‹‹Š‰‰ˆ‡††………„„„ƒƒ‚€€~}|zywvusrqponnmmmmnoqstvxyzzzywvtsqpooopqstvxz|}€‚‚‚‚‚‚‚€€€‚„…‡ˆ‰ŠŠ‹ŠŠ‰ˆ‡†…„„„…‡ˆ‰‹ŒŽŽŽŽŽ‘’“”•––——˜˜˜˜˜˜˜˜—–”’‘ŒŠ‰ˆˆˆˆˆ‰Š‹‹ŒŒŒŒ‹Šˆ†„‚€}{zyxwwwwwwwwwwwvvuttssssstttuuttsrqppooooonnnmlkjihgffffghijklnoqstuvwwwwwvvuuuuvvwyz|}€‚ƒ„…††††††††††……„„ƒƒƒƒ„„…†‡ˆˆ‰‰ˆ‡†…ƒ‚€~}|{zyyxxxxxxyzz{{||}}|||||||}~€‚„†ˆ‰‹ŒŒŒ‹‹Š‰ˆ‡‡‡‡ˆˆˆ‰‰‰Š‹Œ‘’”••–••”“’‘‘ŽŽŒŒ‹‹ŠŠŠŠŠ‹‹‹‹‹‹ŠŠˆ‡…„‚~}}}}}}}}|{{zyxwvuuutttuuuvwxy{|}€‚‚ƒƒ‚‚€~}|{zyyyz{}ƒ…‡ˆŠŠŠ‰ˆ†ƒ~|zyxwwxyz{||||{zxvsqonmlmnoqsuwy{|}}|{zxusqponnoprtvx{}ƒ„……………„ƒ‚€~}{zyxwwwxy{}€‚…‡‰‹ŽŽŒ‹Š‰‡‡†††††‡‡ˆˆˆˆˆˆ‡†„‚€~|zxwvwwxz|~‚‚‚€|zwtqolkjjjkklnopqqrstuwxyz{|}~~€€€€€€€€€‚‚ƒƒ‚‚~}{zyyyy{|„ˆ‹Ž‘“•––•“‘ŽŒ‰†„ƒ‚‚‚ƒ„…‡ˆŠ‹ŽŽŽŒŠˆ†„‚~~~~€‚„…‡‰‹ŒŽ‘’’’‘Ž‹ŠŠ‰‰ˆˆˆ‡†…ƒ‚€}||{{||||||||{{||}~€‚ƒ…†‡ˆˆ‡…„~|{{{|~ƒ„…„ƒ~{wspmjhggghiklnoqrsttuuuuuuuttsrrqqqpqqrstvxz|}€‚‚ƒƒƒƒƒƒ„„„……††‡‡‡ˆˆˆˆˆˆˆ‡…„|yvtrppopqsux|„‡‹Ž‘’’’ŽŒŠˆ†…………†ˆ‰ŠŒŽŽŽŒ‹Šˆ‡†…„„„ƒƒ‚‚€~}}|{{{zzzyyyxwvutsrqppppqrrsttttttssssstuvxyz{|}}}}}}}}}}~~€‚‚ƒƒƒƒ‚‚‚ƒ„…‡‰‹ŒŽŒ‹‰ˆ†…„„…†‡‰‹‘’“”””“’‘ŽŒŠ‰‡†„‚~‚„‡‰ŠŒŒŒ‹Šˆ…ƒ€}zxvtssstuwx{}€‚ƒ„…†‡‡‡ˆˆ‡‡†…„ƒ‚€~}||||{|||{{{{{{{zzzyxxwvuuuvvxy{}ƒ„……„ƒ‚‚„…ˆŠ‘“•–––•“‘Œ‰‡…ƒƒ‚‚ƒ„„………„‚|xsniea][YXXXY[]^`bdegghhhhgghijmpsw{ƒ†ˆŠŒŒŒŒŒ‹‹ŠŠŠŠŠŠŠŠŠ‰ˆ‡…ƒ€~|{zyxxwwwwwwwwwxxxyyyzz{{|}€‚„†‰‹Ž“”•–––––——˜™š›œœœ›™—•’Ї„‚€~}|{||}~~~}{ywusqomkjhhgghijlnqsuwyz|}~€€€€€€€€~~}}}}~€‚…‡ŠŒŽŽŒ‰…€zuojfb`__`beinsx|€„†ˆˆˆ‡†…„ƒ‚‚ƒ„…‡‰ŒŽ’”•–––•”“‘ŒŠ‰‡‡‡‡ˆ‰ŠŒŽŒŠ‰‰ˆˆˆˆˆ‰ˆˆ‡…„‚~~}}}}}}}}}}~€‚ƒ…†‡‡‡††…„„„…†ˆŠ‹ŽŽŒŠ‡„€}{yxxy{}€ƒ†‰Š‹‹‹‰ˆ…ƒ€~}|zxwurpomlllmnpqrstssqpmkheb`^]\[[\]^`bdfgijkklllllllllmnnpqrtvxz|~‚ƒ„…………„ƒ‚€€€‚ƒ…†‡‰Š‹ŒŽ’“”•••••””““’’’’’’’’’’’’’’’’‘ŽŒ‹Š‰‰Š‹ŒŽ‘“–˜š›œ›š˜•‘‰†ƒ~~€ƒ„†ˆŠ‹‹‹Š‰‡…ƒ€~€‚ƒ„…………„„ƒ‚€~}|zyxvutssrssstuuvvvvuutsrqqpppppqqqqqponmmllllmnopqrstuvwxyz{|~‚„†‡‰ŠŠŠŠ‰ˆ‡…„‚€~}|||}ƒ†ˆ‹ŒŽ‹‰†„‚€€ƒ…‡‰‹ŒŽŽŽŒ‹ŠŠ‰‰ˆˆˆ‰‰Š‹ŒŽŽŒŒ‹‰ˆ‡…„ƒ‚€~}|zxvsqmjgeb`_^]\\\\]]^`abdefgijkmnpqrstttsrrqqqqrtvwy{|}}}|{yxvuttttttuuvvvvvuutsrqponmmmmnpsvz~ƒ‡‹‘’““’ŽŒ’”–—™š›œžŸŸŸŸžœš—”‘Ž‹ˆ†„„„„…‡ˆ‰ŠŠ‰‰ˆ†…„„„„…‡‰‹’’“’‘ދЉˆˆˆ‰‰ŠŠŠŠŠ‰ˆ‡…„ƒ‚‚‚‚ƒƒ„„„„„„ƒ‚€~}|{zyxwvvuuuuuvwxyz{{|||{{zzyyyyzz{{|}~€‚‚€€~}}|{zyyyxxxxwwwxxz{}€‚…ˆŠ‹ŒŒŒ‹‰ˆ†„‚€~|{zxwvuutsrrqqqqrrsttuuuuvvwxxz{|}}~~~€€‚‚ƒƒ‚€~|ywusqpooopqrtuvwxxxwvutsrrrsstuuvvvvwwxyz{}~€‚ƒ„…†‡ˆ‰ŠŠ‹‹ŠŠ‰‡…ƒ~{ywussrrsstuvxyz{}~€ƒ…†‡ˆˆˆˆ‡†…ƒ€~|{{{{}‚†‰Œ’”•••”“‘ŽŒŠ‰ˆ‡‡‡‡ˆ‰Š‹ŽŽ‹Šˆ†„‚€~~}}||{zywusqponnnopqsux{~‚…‰‘•—™››š™—•’ŽŒŠ‰ˆˆ‡‡††…………………††……„ƒ‚€~~~€ƒ„†ˆŠŒŽ’“”••”’Œ‰…‚}|{{{|}~€€€€~}{ywvtsrrrrstuuvwyz|}‚ƒ…†‡‡‡†„‚€~|zxvtrpnkihffffgiknpsuxz{}~~|{ywusqomlkjjjiihgfdcaa`abehlosvy{|}}~~€‚„‡Š‘”—šœœ™–’‹‰‡‡‡‰‹Ž‘•˜šœžŸŸŸž›š˜–“Œˆ„€}ywuttuuwxyzzzzyyxxxxxyz{|}€‚„…‡ˆˆˆˆ‡†…„„ƒƒƒ„„„„„„ƒƒƒƒ‚‚€}{zyxwwwxxxwvuspnkhfdbaabcehlquzƒ‡ŠŒŽ‘‘‘‘‘‘‘‘‘‘’’”•–—˜—–”‘ŽŠ‡ƒ€|zwusrqqqqqrtuwy{~€‚„†‡‡‡‡†…„„„…†‡‡ˆ‡…ƒ€}zxvuuwy|ƒ‡‹“–˜šœžŸŸžžœš™˜–•”’‘ŽŒ‰…}yurommmnoqrtttsqomjhfeddccbba`_^]\[[[\]_adgjmqtwz}€‚‚ƒ…†‡ˆˆ‰‰‰‰ŠŠ‹ŒŽ‘“”•––——–•”’ŽŒ‰‡„‚€~|zxwusrqppqrstvxz{||}}}}}}~€‚„…‡ˆ‰Š‹ŒŽŽŒŠˆ‡†…„„„……†‡‡‡‡‡†…„ƒƒ‚‚‚ƒƒƒƒ‚~{xuromllkllmmnnmlkjihffefghjmoruxz}‚„…†ˆ‰‹Ž‘‘‘ŽŠˆ†ƒ~}||||||||||||}~ƒ…ˆŠ’”–˜š›œœœ›™–“‹‡„}|{{{||}~€‚„…†ˆŠ‹‘‘‘‘ŒŠ‰ˆ†…„‚~|{yxvtrqomljjihhhhhhiijklnpsw{ƒˆ‹Ž‘“””“’‹‰‡†„‚€~|zxwvvwwyz|~€‚‚ƒƒ„„„………††‡ˆ‰Š‹ŒŒŒ‹‰†‚~ysniea^[YXXWXYZ]_beiloruwxyyyxwvutrqpooopqsvy}…ŠŽ‘•—™™š™™˜–•“‘‹ˆ†„ƒ€€€‚ƒ…‡ˆŠ‹ŒŽ‘’’’’‘ŽŒŠˆ†„}|zyxwwvvvvwwwwxyz{}€‚„†ˆ‰Š‹ŒŒŒŒ‹Šˆ†ƒ€}yvroljiiijlnqtvy{|}}}}}}}}~€‚„…‡ˆ‰ŠŠŠ‰‡…ƒ€}zxurpmkigecbaaaabdeghiklnortw{ƒˆŒ”–˜˜˜—•”’‘‘’“”””“’Šˆ†„„…†ˆ‹Ž‘”–˜šš›››››››ššš™˜–”‘Ž‹ˆ„~zxusqpomllkklmnpsvz~‚†‰Œ‘‘Ž‹‹ŠŠ‹‹ŒŽŽŽ‹‰†ƒ|xuromlkjjijjjjjkkklllmmnnnnnnmlkjigfeeefghjlnoqrsttuuvwwxyyyzzyyyxxwwwxyz{|~€‚ƒ…†ˆ‰Š‹ŒŒŽŽŒŠ‰‡††††ˆ‰‹‘’’‘‘ŽŽŒŒŽ’“•–—˜˜˜˜——–•”’Ž‹‡„{wsomkkkmpsw|€„ˆŒŽ‘‘‘Ž‹ˆ…‚~zvrokhfeeegimpuy~…‡‰‰‰ˆ†„~|yxvuuuvwxy{|~€€~}{yvspmjgeba__^_`bdfhjlnpqstuuvvwwwwvvvvvvvvvvvvwxxyz{|}~€‚„†ˆ‹’”–˜›Ÿ¡£¥§¨¨¨§¦¤¢ ž›™—•“’‘‘’’“““’‘ŽŽŽ‘‘‘‹ˆ…‚~{xuromljigffeeffghiklmmmmmllkkkllnoqsuwy{|~€€‚‚‚‚ƒƒƒƒƒ‚}|zxwvuttuuuvvvvwwwxxyzz{|}~~~~}}|{zyxvusqnligedcbbbcdefhjloruy~‚‡Œ•˜›žŸ  Ÿžœ™—”‘Ž‹‰‡†††‡ˆŠŒ“–šž¡¤§©««¬«©§¤¡™•’Ž‹‰‡…„„„„……†‡ˆˆ‰‰‰ˆ‡…ƒ~|{yxxyz{}€‚…ˆŠŒŽŠ‡ƒ{vrnjgfdddfgjlortwz|ƒ…†‡‡†…ƒ€}zvroligfeeefghjkmnopqrrsstuvxy{}~€€~}{zxwusrpomlkjjjjjklnprtw{~‚…‰“–˜š›››™—”Œ‡‚}xtoligfffhknrvzƒˆŒ’”–———–”’‘Œ‹ŠŠŠŠ‹‹‹‹ŒŒ‹‹‹ŠŠ‰ˆ†…ƒ‚€~}}}~€‚„…‡ˆ‰Š‹ŠŠ‰ˆ‡…‚€~{yxwwxyz|~€ƒ„†‡ˆˆ‰ŠŠŠŠŠŠŠŠŠ‰‰ˆ‡…„‚€~|{yxxwwxxyyyzzz{{{{{{zywusqonllkkkklmnoprtuwy{}~€‚ƒ„……†‡‡‡‡‡‡††……………………††††………„ƒ‚‚€€€€‚ƒ…†ˆ‰‹ŒŽŽŽŽŒŠˆ†„‚€~|{yxvuttttvwy|~€ƒ…‡‰ŒŽ’”•–——–•“‘Šˆ†„‚€~|zywvvvwxz|~€‚‚€~|ywtqoljhfdca`_^]\\[[[[\]^_acfhknqsvxz|~€‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚‚ƒ…‡Š‘”—šœžŸŸŸž›™•’Ž‹ˆ…ƒ€€€€€‚‚‚‚‚‚‚ƒƒ„†ˆ‹Ž‘”–˜šššš˜—•“ŽŒŠˆ†…„ƒƒƒ„…†‡‰ŠŠŠŠ‰ˆ†„‚€~|{yxwwvvvvvvwwvvvuuuuvwxyz{{{{zyxwvtsrrrrsstvwxxyyyxwvutsrrqqrstvx{~ƒ†ˆŠŒŽŒŠ‡ƒ{xurqppprtvx{~„‡‹Ž’•˜›œœ™–’ŽŠ‡ƒ€~{ywusqomlllmnoqrtuvwwxxxxyz{}‚„†ˆ‰‰Š‰‰ˆ‡†…ƒ}{xuspnljiiijknpsw{~‚†‰ŒŽ‘ŽŒ‹‰ˆ‡†„ƒ€~~}|{{zzyyxxxyz|~€‚„†ˆ‰ŠŠ‹‹‹‹ŠŠ‰ˆ‡†„‚€}{ywvuuuvwxyyyyxxwwwxyz{}~€€‚ƒ„†ˆ‰‹ŒŽŽŽŽŽŽŽ‘‘‘ŽŒŠ‡…ƒ€~~}}}~~€€€~}|{yxvutsrrrssttuuvvvwxz|~„‡‰ŒŽŽŒ‰†ƒ€|yurpmlkjjjkklmmnooppqrsstuvvvvvvuuuttuuvwxy{|~€ƒ…‡ŠŒŽ‘‘‘Ž‹Šˆ†„‚€~}{zyxxwwwxyz|~„‡‹Ž’–™›žžœ™–’Ž‹‡ƒ€}zxwvvvvwyz|~ƒ…‡‰Š‹ŒŒ‹Š‰‡…‚€~|{yyxxxxxyz{{|}}~~~}|{yyxwwwwwwxyz{|~€‚„…†‡ˆˆˆˆ‡‡‡†…„ƒ}{xvusrrrstuvwxyzzz{{{{{{|||||}}}}}||||{{{zzzyyxwvutsrrrrsux|€„‰Ž“—›Ÿ¢¤¦§§§¥£¡žš–’ŽŠ†ƒ€~|{zyxxxyyz{}„†ˆ‰Š‹‹‹Š‰ˆ‡†„ƒ‚‚€}|zxwutsrrrrstuwxyz{|||{zyxvtsqponnmmllkjjihhhhijklnoqtvy|‚…ˆ‹‘‘‘‘ŽŒ‹‰‡†„ƒ‚€€€€€€€€€€€€€€€€€€€~}|{zyyyyz{||}~€€€€€~~~€‚„†‡‰‹‘“”•––•”“‘ŽŒŠˆ†…„ƒƒƒƒ„…†‡ˆˆ‰ŠŠŠ‹‹ŒŒŒŽŽ’“•—™›œžœ›˜–’‹‡ƒ|xusqomlkjjiiijklmoprstuvvvvvutsrponlkihfdca_^][ZZZZ[\]_behkosvy|~~}{zyxwwwwwxyz{|}~~~~~}}|{{zyyxxxyz{|}€‚„…‡‰ŠŒŽ‘’”•–––•”“‘‹‰ˆ‡‡††‡‡‡‡‡ˆˆˆˆ‰Š‹Œ’”–˜™›œœœœ›š˜–”‘ŒŠ‡…ƒ~}}||||||{zzyxwwwxy{}ƒ…‡‰Š‹ŒŒ‹‹‰‡…‚€}zwurpomllkkkllmnopqrstuvwwxxxxwwvutsrrqqqrrrssstttttttuuvwwxyz{|}~‚„…‡ˆŠ‹ŒŒŒŒ‹ŠŠ‰ˆˆ‡‡‡‡‡‡‡‡ˆ‰ŠŒŽ‘“•—˜š›žŸŸ   Ÿž›™—”’Šˆ…ƒ~}||||}~€‚ƒ…‡‰Š‹ŒŒ‹Š‰‡…ƒ€}zwusqpppqqstuvvwwvvuttssssrrrrrrsstuvwxyzzzzyxwvusrqpooopqsvy|€ƒ‡‹Ž‘“•––•”‘Ž‹ˆ„€}zxwvuuuvvvvwwwvvutsrqonmmmmnoprtvx{}ƒ„…††††††††††††††……„„„ƒƒƒ‚‚€~|{ywusqpnnmnoqsvx{~ƒ…‡‰‹ŒŒŠ‰‡†„ƒ€€€€€€‚ƒ„……†‡‡‡‡††…ƒ‚€~~}||{{zzyyxxxxxxyyyxxxxxyz{}~€ƒ„„……††‡ˆ‰Š‹ŒŒŒŒŒ‹‹ŠŠ‰‡†„‚€}}}}~€ƒ…†ˆ‰‰ŠŠŠ‰‰ˆ‡††…„„„…†‡ˆŠ‹ŒŽŽŽŒ‹‹ŠŠŠŠŠŠŠ‹‹‹‹‹ŠŠ‰ˆ†„‚€}{yvtrpnlkjihgghhiklmopqrrsssttttttttttuvwy{}€‚ƒƒ‚€~}}~€‚…ˆ‹Ž“•–————–•”’‘Šˆ…ƒ€}{xvtsrqppoonmljhfeca````bdfiloqtwy{|}~~}|{yxwuuttuvwy{}„†‰‹ŽŒŠˆ…ƒ€~}|{{|}€‚„…‡ˆ‰‰ŠŠŠŠŠ‰‰ˆˆ‡‡††††‡‡‰Š’•˜œž¡¢££¢¡ž›˜”Œˆ„€|xurpnmllmnopqrsttsrqpomlkjjjklnoqtvxz|~€ƒ…‡ˆŠ‹Ž‘’“”–—˜™š›››š™˜–•“‘ŽŒŠ‰‡…ƒ~{yvtrpooopqrtvxz|~€‚„…‡‰‹’“•–––•”“‘Ž‹ˆ…‚~{xurponnnpqsvx{}ƒ„„„„„ƒ‚€~~}}||{zyxwvuttttuvvwxyyzzzzyxwvtromkhfecbaaabcdfilosvy|‚‚‚€~|{{zzz{|~€‚„‡‰‹ŒŒ‹ŠŠ‰‰‰‰ˆˆˆ‡††……„„„ƒ‚}{ywusrqqpqqrstvxy{}€‚„†ˆŠŒ‘ŽŒ‹Š‰‰ˆ‡‡†…„ƒƒ‚‚‚‚‚ƒ„„………††…………„„ƒ‚€~|{zyxwvvutttssstuvwy|~€‚…†ˆ‰‰‰‰‰‰ˆˆ‡‡‡‡‡‡‡‡‡‡†…„‚~}|zzyxxwwvvvvvvvvvwwxz{}ƒ…‡‰‹ŒŽŽŽŒ‹ŠŠ‰‰ˆˆˆˆˆ‰‰Š‹‹ŒŽ‘’”–—™šš™˜—”‘ŽŠ‡ƒ€}zxvvvvwyz|~€‚‚~|zxwutsrrrrstuvwxyyyyxwvusrqonmlkjiihhhijkmortvxz{{||{zzyxwvvvvvwxyz{|}}}}|zywusqpooopruw{~„‡‰‹ŒŒ‹Šˆ†ƒ€}yvsqonmmmmnpqstvxyz|}~€‚„…†ˆ‰Š‹ŒŽŽŽŒŠ‰‡†…………†ˆŠŒŽ’”–—˜˜—–•“Ž‹ˆ†ƒ€~|zxvuuuvwxz{}ƒ…ˆŠŒ‘‘’’‘ŽŒŠ‡…‚€}zxvtrqonnnnopqsvx|‚…‡‰‹ŒŽŽŽŽŒŠ‰‡†…„ƒ„„…†‡ˆ‰Š‹‹‹‹‹‹‹ŒŒŽ‘’’“’’‘‹‰†„~|ywusrqqqqrstuvwxxyyyyyxxwwwwwwxyyz{||}~~€‚‚‚‚~|zwurpmkihfeeddeefgijkkkkjihfeeefgiknqsuwyzzzzyyxwvvuvvxz|‚…ˆ‹ŽŒ‰‡„}{zzz{|~ƒ†‰‹Ž‘’’‘Ž‹‰‡…ƒ‚€€€€ƒ…‡Š’”–—˜˜™™™˜˜–•’Œ‰…‚~{yvtrpnmkjiiiijjklmmnopqqrsuvwy{}€ƒ†‰Œ‘’“”““’‘ŽŒ‹‹‹‹‹ŒŽŽŽŽŒ‹Š‰ˆ‡‡†‡‡ˆ‰ŠŠ‹‹‹Šˆ†ƒ€{wrnjfca_^^_abdgilnqtvy|„†ˆ‰‹ŒŽ‘’““““’‘‹‰‡„‚€}{ywvuuvwxz|~ƒ…‡ˆ‰ŠŠ‹ŠŠ‰‰ˆ‡‡‡‡‡‡ˆ‰Š‹ŒŽ‘‘‘‘ŽŒŠˆ†„‚€~~€‚ƒ„…………„ƒ‚€~}{ywuspnljigfedddddefhijkmnoopqqrsstuuvvvvvvvwxyz|}~€‚‚ƒ„…‡ˆ‰Š‹ŒŽŽŽŒŒ‹‰‡…ƒ}|{{||}~~~}|{{zyxwvuttttuvvwxxyyzz{{|}~~~~}}~~€€€€€€~~}~~ƒ†‰Œ’•—™ššš™—•“Ї…‚€€€‚ƒ„†‡‰‹ŒŽŽŒ‹‰‡…ƒ‚€~|zxvsqomkigfdcbaaabdgjnsx~„‰Ž“—šœœš—“Š…€|xurpoopqsvy}„ˆ‹Ž’““““’‘ŽŒŠ‰ˆ‡‡†…„ƒ|yvspljgfdddegilpty}‚†‹’•—˜™™˜—•’Ї…„‚€€~}}|{zyxwvutrrqqqrstuvxy{|}~€‚ƒ„……††††„ƒ€~{ywutstuvxz|~€‚ƒ„…†‡ˆˆˆ‡†…„‚€}{ywusqpoooqrtvxyzzzzyxvtrpnmkjjiijklmortx{‚…ˆ‹‘’’“’’ŽŒŠˆ†„ƒ‚‚‚‚‚‚‚‚‚‚}{ywtrponnoqtx|‚ˆŽ•šŸ£¦§§¦¤¡™•’Ž‹Šˆˆˆ‰‰ŠŒŽŽŽ‹Š‰‡†…„„ƒ‚€|zwtpmjfca_]]^_beinrvxzzywuroligfffghkmqty}†ŠŽ‘“•–—˜˜˜˜˜—–•”“‘Ž‹Šˆ‡†………„„„„„„ƒ‚€~|zwutrqqpqqstvy|€„ˆŒ‘•𡤦§§§¥¢Ÿ›—’ŽŠ‡„‚€~}}|||{{zzyyxwvvvvwy{}€‚…†ˆ‰‰ˆ‡…ƒ€}zwtronllllmorux|‚…‡‰ŠŠ‹ŠŠ‰‰ˆˆˆˆ‰Š‹ŒŠ‡ƒ~yuqmjgedcccbcccdefghijkkkkjjjijjkmnprtvxyyyxwusqnljhgghilosx~ƒˆ‘“•••”’ŽŒ‰‡…„„„„…‡ˆŠ‹‹‹ŠŠ‰‰‰Š‹Ž”—šŸ ¡ Ÿš–’ŽŠ†ƒ€~|{{{{{{|||}}~€‚ƒ…††††…„ƒƒ‚‚‚‚‚€}{zxxwwxyyzzzzywvtrpmkjhfedcccegimqv{€…‰Ž’•˜šœœœ›š˜•“‹ˆ†„‚€€€‚‚ƒ„………„„„ƒƒƒƒ„…†‡ˆ‰Š‹‹Œ‹‹Šˆ‡…ƒ‚‚ƒ…ˆŠ‹Œ‹ˆ†ƒ€}{ywvvvwx{}€ƒ…‡‰ŠŠ‰ˆ†„ƒ€€€‚ƒ…†ˆ‰Š‹ŒŒ‹Š‰ˆ‡†„ƒ‚€€€€€€~|zvrmhd`]ZYXXXYZ[\^`bdfikmprtvxz|~€‚‚‚‚‚€€~~~~~~~~~~~€‚„†‰Œ”˜ £¥¥¤¢˜’Œ†€{wusrqqqqpponmllkkkkklmnpsw{€…Œ’™Ÿ¤©¬®®­ª¦¡›•‰‚|vpjfb`_^_adhlquzƒ‡ŠŽ‹‡ƒ~ytokhfddefikoruxz|}}|zyxwwxy{}€ƒ…ˆ‹‘”˜›Ÿ¢¥¦§¦£ ›•އ{uqnllmorvzƒ‡‹‘’’“““”””““““’““””•••”’Œˆƒzvrpnmmnorux|€ƒ‡‰Œ‹‰†ƒ|xvsrqqqrtuuutspnkhecbabcehknpsvxz|„†‰‹Ž’“•––—––•“І‚~yuplheb`__`behloswz~€ƒ…‡ˆˆ‰ˆˆ‡†…ƒ‚€~}|{zzyyyyyyyyzz{{{{{{{{zz{{}„ˆ‹“—šœœš—”‹‡‚~{xvutssttuvwyz{{||{zywusqomllllnprtwz|~€‚ƒ„…††…„ƒ|yuqnjgdb`_^_`beimqvz~‚†‰Œ‘”–™œž¡£¤¥¦¥¤£¡Ÿ›™—•”““’’’’’’‘ŒŠ‰ˆ‡††‡ˆ‰Š‹ŒŽŽ‹Šˆ†ƒ~|zxwwxy{}ƒ„„„„ƒ€~|zywvuuuuvxy{|~€‚ƒƒƒ‚€~|zwuromjgdb_]\[[\]`cglquz~„…††…„‚~}|||}~€‚‚‚€~}{ywutrrrstvx{~ƒ…‡ˆ‰‰ˆˆ‡†„ƒƒƒƒƒ„†‡‰ŠŒŽ’•˜›ž¢¥¨ª««ª¨¤Ÿš•‰„€|xusrqqqrstuwxz|}€€~}|zxvtrpooooprsuvwxxxwvuttttuvvwxxxwwvvvvvvvwwxyyzzzyyxvutrrrrstvxy{|}~~~~}}|||||||}~€ƒ„…‡ˆ‰‰ŠŠŠ‹‹ŒŽ‘‘’’‘Ž‹Šˆ†„‚}zxutsrstvx{~„‡ŠŒ‘“•–——–•“‘Ž‹‰†„‚€€€‚„‡Š‘”—™š›š™–“‰ƒ}wqkfb_]]]^`cfhkmopqqpponmlkjjjjjklmoqsuwxz{||}~€ƒ…‡‰Š‹ŒŽ‘’”—™œŸ¢¥§ª«­®®®­«¨¥¡œ—’‡‚~zwutsssstttuuuuuuuttssrrqqqqqqqppoonnnmmmmmmmmllllllmmnoprux{ƒ‡ŠŽŠˆ„~{xvsqpoooqtwz~‚†‰‹ŒŒŒ‹Š‰ˆˆ‡‡†…„ƒ‚~|zxvusrrsux{€„ˆŒ‘‘ŽŒ‹Š‰ˆˆ‰Š‹’””””“‘ŽŒ‰†ƒ€}|zyyz{}‚…‡ŠŒŒŠˆ†ƒ€~{yxwvvvwxz|ƒ„†††……„‚€~}||{{{{{|}~€‚‚‚‚~|zwuspnmkjjjklnprtwy{|}}}|{ywtromkigfedddefhkosw|€„ˆŠŒŽŒ‹Š‰ˆ‡†………„„„„„„………†‡ˆ‰‹Ž‘’“””•––—˜™™š››››šš™—–“‰…}yusqooopqstvwxxyyyz{|}~€ƒ…†‡ˆˆˆˆ‡…„‚}{ywvutssrrrrrrrrrrqqpppqrtvx{}€‚„†‡ˆˆˆˆˆ‡‡†…„ƒ‚‚‚ƒ„…‡ˆˆˆˆ†„‚|ywusrrrrrstuvxy{|}~~}|{zyyxxxxxxwwxxy{}„†ˆŠ‹‘“”–˜™™™˜–”‘‰†ƒ€}{ywusrpommllmnpqtvx{}€‚„†ˆŠŒŒŒ‹Š‰‡†„ƒ‚€~}||{{{{{{zzyxxwvvvvvwwxyzz{{zzyxvtromlkkkmoruy|€ƒ†‰‹Ž’”–˜š›œœš˜•’‹‡„€}zwutrrqqrstvwy{}ƒ…†ˆ‰‹ŒŽŽŽŽŽŽŒŒŒŒŒŒ‹‹ŠŠ‰ˆ‡††…„„ƒ‚€}{ywvtssrqqqrrstuvxy{||}}}}}}}}}~~‚„†‡‰Š‹‹‹‹ŠŠ‰‰‰‰ŠŠ‹ŒŒŽŽŽŒŠ‡„}yuqmjhedba`````acdfhjlnprtvwy{|}~~}|{zxwwvvvwwxz{}~€€~}|{{zyyxxwwwwxxyyzzyxvspmifdbaaabcdeghjmpsvy|€ƒ…ˆŠŒŽ’“”••–•”“‘ŽŒŠˆ‡†………†‡ˆ‰‹ŒŽ‘’“•–˜™›œžŸ ¡¡¡¡ žœš—•’ŽŒ‹ŠŠŠ‹ŒŽ‘‘‘‘ŽŽŒŒ‹‹Š‰ˆˆ‡†…„ƒ‚€}{zxvusrqqpqqqrstuwxz|~€‚„…†‡‡†…„‚€}{wtqnkifecbaaaaabcdeghiklmoprtvxz|}‚ƒ„……††…„„ƒ‚€€~}|{zyyyyyyyzzzyyxwvussrrsuwy{}€€~~€‚„‡Š‘”˜›ž ¢£¤££¡Ÿ›˜•’Œ‰…‚€}{ywvttsrqponmkjiihhhiijklmoprtuwyz|}~€€‚ƒ„†‡ˆŠ‹’“”””“’Ž‹‡„€|yvsrpoonoopqsuwy{|~‚‚ƒƒƒƒ„„„„„„„„……†ˆ‰‹‘’”––———––•”’‘ŽŒ‹Šˆ‡…„ƒ€}|{yxwvvuuuuvwxyz|}‚„…†ˆ‰ŠŒŽ’“”••”“‘Œˆ„{vroljihijkmoqrtuvvvutsrpomlkiihggffeeddcccbbaaaaabcdfhknqtwz}€ƒ†Š“–˜š›œœ›š˜—”’‹‰‡…„ƒ‚ƒ„…‡Š“—™œžŸŸŸŸœš˜•“‹‰‡…ƒ‚€~|{zyyxxxyyzz{{||}~€‚ƒ„…††……ƒ‚€}{xusqommllmnoprsuvwy{|~‚ƒƒƒƒƒƒƒ„„„„ƒƒ‚€~|zwtqomkihgfffgijmpsvz}„‡ŠŒŽ‘‘‹ˆ…~{xvtsrrstvx{}€ƒ†‰Œ‘”–˜š›žŸŸ  ¡¡¡¡ Ÿžœš—”Œˆƒzvqmiea^\[ZZ[]`dhmqv{ƒ‡Š‘“””•••”””““’’‘‹‰‡…‚€}zxvutuvx{~‚†ŠŽ‘•—™š›š™˜–“Œ‰…}yuroljhggfgghiklnpsvy|‚„†ˆ‰‰ˆ†…‚€~}{{zzz{{{{{{zxvtqomkihgffffhjloqtwy|}€€€~|{zyyz{}€„ˆŒ‘•™ ¢££¢ ™”Š„~ytplheb`^\ZYXWWWXY[]_adgiloqtwz|‚…ˆ‹Ž‘“•—˜™š›œœœœš™˜–”“Ž‹ˆ†ƒ€~€‚„…‡‰‹Ž‘’““’‘ŽŒŠˆ†„ƒ‚‚‚ƒ„…††‡‡†…„ƒ}{zzzz|}ƒ„…†‡ˆˆˆ‡‡…ƒ|zwusqponnnnoprstuvwxyyzzzzzz{{|}ƒ…‡‰Š‹ŒŒ‹Šˆ…‚{wsokheca``abdgkosx}‚‡Œ‘•™œž   Ÿ›˜”Œˆ„}{xwutssrrrrrrstuvxz|~€‚„†ˆŠ‹ŒŒ‹‹Š‰ˆ‡‡††…„„ƒƒ‚‚ƒ„…‡ˆŠŒŽ’“”•–———–•”’Ž‹‰‡…ƒ~|{yxwvutrpnljihhhijklnopqrrrqpnmjheca_^]]^`begjlnprtvxyyzzyyxxxxxyz{}~~€‚„†‰‹Ž‘“”•––•”’Ž‹ˆ†ƒ€}}}}~€‚‚ƒ„†‡ˆŠ‹ŒŒŒŒŽ‘’’““”””••–—˜™š›œœœ›™˜–•’Ї…‚€}{ywutssstuvwxyyyyzzzzyyxvtrqonmmmnnoopqrtuvxyzz{{||||||{zywusqpnmlkkjjjiihhggggggijlnqtw{ƒ†ŠŽ‘”—šœžŸ ¡ Ÿžœš˜–•”“‘‹Šˆ†„‚~}{zywvutsssstuuvvwvvvuutttuvwy{}€ƒ†Š‘”—šœž ¡¢¡ ž›—“ŽŠ†‚~{ywusqponnnoopqrstuvvwwwwwvutrqomkigeddccddefgijlorux{‚…ˆŠŒ‘‘‘‘ŽŒŠ‡„~|ywvutttttsssssttuwy{}€„‡‹Ž’•™œŸ¡¤¥¦¦¥£ ™”‹†‚~zxutsrrstvwy{}ƒ…‡‰‹‘“”••••“‘Œ‰†ƒ}|{zzyyxxxxyz{|}~€‚ƒ…†ˆ‰‹ŒŒŒŒ‹Š‰‡…ƒ}|zyxxxxxyzzzzyywvtrpnljhgedcccdefhiklnopqrsuvxy{}~‚ƒ„…†‡‡ˆ‰Š‹ŒŽ‘’“””””“’‘ދЉˆˆ‡‡‡‡‡‡‡ˆˆ‰Š‹‹ŽŽŠ‡ƒzvqmifc`_^]^^`bdgjnquy|‚„…††††…„ƒ‚€~}||{zyxwvvuuuvvvvuttsrqppopqrsuwy{}‚„‡‰ŒŽ‘‘ŽŒŒŒŒ’“”•––––•””““’’‘‘ŒŠˆ†„‚€~}{ywvtrqonmllkkllmoqsuwy{|}~~~~~}}}||{{{{{|}~€ƒ„†ˆ‰‹ŽŽŒŠˆ…ƒ€|yvtqomlkkjjkklmnpqsuwy|~ƒ…‡Š‹’“”––———–•”’ŒŠ‰ˆ†…„‚€}{zxwwwwxy{~„ˆŒ“–™›žžœ›™–“Ї„~{yvtrpnmllkllnoqsuwxz{||||{{zzz{|}~€€~|zwtqnjgeb`_^]^_`bdgjmqtx{~€‚ƒ„„……„„„„„„„„ƒ‚~}|{{{|}~€‚ƒ…†‡ˆŠ‹‹ŒŽŽŽŽ‘‘’’““““’’’‘‘ŽŽŒ‹‹Š‰‰ˆˆˆˆ‰‰Š‹ŒŽŽŽŒŠ‡…‚|ywusqpnmkjhgedba`__^^__``abcdefgikmortwz}€‚„…†‡‡‡†…„ƒ‚€~~~}}~~~~~~}}|{zyxwvvuuuvwy{}„†ˆŠ‹Ž‘“•—™›ž  ¡¡  Ÿžœ›š˜—•“‘Œ‰†‚|ywutssttuvwxxyyyzzzz{|}€‚ƒ…††‡††…„ƒ‚€€€€€€€€€~}|zxvusqpoonnnnnoppqstvxz{}€‚‚‚€€€€‚ƒ„…††††††††‡‡ˆˆ‰Š‹‹‹‹‹Š‰ˆ†…„‚€~~}}}}}}~€‚„…†‡‡‡‡‡‡‡ˆ‰Š‹ŒŒ‹Šˆ†ƒ}{zzyyyzzzyyxwvtsrqpoooooooooooooopppqqqqqpoonnnnoqsvy|„†‡ˆ‰Š‹‹ŒŒŒŒ‹Šˆ‡„‚€}{xvtqonlkjiiijjlnpsvy}„ˆ‹‘“”••••••”“’‘Šˆ†„ƒ€€€‚ƒ„†ˆŠ‘“•–———–•“‘ŒŠ‰ˆ‡…„ƒ‚€€€€€€‚‚ƒƒ„„„……†††‡‡‡‡‡‡‡††…„„ƒ‚€~}|{zxwvutssrqqppppqqqrstuvxy{}ƒ„…†‡††…„‚€~|zxvtsrrqqqqqrstuwxz|}€‚ƒ…‡ˆŠŒŽ‘’““““’ŽŒ‰‡…ƒ‚€€€~}|{yxwvutsqqppoppqqrstuvwxyyyyyyxwvutsrqqqrrstvwxy{}~€ƒ…‡ŠŒŽ‘’’’‘ŽŒŠ‡„~{xurpnlkihhgghhjkmoqsuvxyzzz{{{{{{{|}~€‚ƒ„………††‡ˆˆ‰Š‹ŒŽŽŽŒŠˆ†„‚€}|zywvtsrqppqrstvxz|„‡Š‘“•–—˜™™™™™˜˜——•”’ŽŒ‰‡…ƒ€€€‚‚ƒƒ„„…………„„ƒ‚€~}||{{zz{{|}~€‚ƒƒ„……†††††……„‚~|{yxxwwwxxyyzz{{{zzyxwvuttssrrrrrrqqqqpppooonnoopqrtvxz}‚…ˆ‹’”–—˜™™šš™™˜—–•“’ŽŒ‹Š‰ˆ‡††…††‡ˆŠŒ’’“““’‘ŽŒŠˆ†„|ywtrpnmllllmnopqrtuwxz{|}}}|{zxwvtsrqqpppppqqrstuwxy{|~€‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚€€~}{yxvtrqonmllkkjjjjjklmoprtvwyz{|}}~€‚„†ˆ‹‘’””””“’‘ŒŒ‹Š‰ˆ‡‡†……„„„„……†‡ˆˆ‰ŠŠŠŠŠŠŠ‰‰‰‰Š‹ŒŽŽŒŠˆ†„‚€~}|{{||}€‚ƒ…†‡ˆˆˆˆˆ‡‡†„‚€}yvrmieb^[YWVUUVVXY[]`cfiloruxz|}€ƒ„†ˆŠŒ‘’““““’’‘ŽŽŽŽŽŽŽ‘‘’“”•–——˜™šš›››š™˜–“‘‰…€{vrnjhfeeefghjkmoprstuwwxyyyzzz{||}~€‚ƒ„„„„„ƒƒ‚‚€€~}{zxvtsrponmlkkjjjjjkkllmnpqtwz~‚‡‹”˜›ž ¡¡¡ Ÿžœ™—•’ŒŠ‡…‚€~}{zyxvutssrqppppqrstuwxyz{{||}}}}~~~~~~€‚ƒ„…†‡‡‡††…„‚€€‚ƒ„………„ƒ‚€~}{zyxvuuttsssssssttuvwxyz{}~€‚„…‡ˆ‰‰‰ˆˆ‡††††‡ˆ‰‹ŒŽŽŽŽŒ‹‰ˆ‡†………………††‡‡ˆˆˆˆˆ‡†„‚|yuromkjjjlmoqsuxz|}€‚ƒ„„„„ƒ‚€}{ywvutssrrrrsstuvwyz|~€ƒ…†ˆ‰Š‹ŒŽŽŒ‹‰ˆ‡†„ƒ‚~|{zzz{|~€‚„†‰‹‘’’’‘‘Ž‹‰‡…ƒ~|zxwutsrqqqqrstuwxz|}~€‚„…‡ˆ‰Š‹‹‹‹‹Š‰ˆˆ‡†……„„ƒƒƒƒ‚‚‚€~~}||||}~€‚‚ƒƒƒƒƒ‚‚‚€~|zxvsqonmllllmmnnoopqrrstuvvvvutsqponmlllllllllllmmnnopqrssuvwy{}€ƒ…ˆ‹Ž‘“–˜™›››››š™˜—•“‘Šˆ†…„ƒƒƒƒ„„…………………„„„ƒƒƒƒ„„„………………„„„„ƒƒ‚€~}|{zzz{|}ƒ…‡‰Š‹ŽŽŽŽŒ‹Š‰‡…ƒ€}zwtpmkhfdcbbbcefilosvz}ƒ…†‡‡ˆˆ‰‰‰Š‹Œ‘”–˜šœžžžœ›™˜–•“‘Œ‰‡ƒ€}zwurpnmkjjiiiijjjkllmnoqrstuvwxyz|}}~€€€€€‚‚ƒ„„…††‡‡‡‡‡‡‡‡‡‡‡‡††…„„ƒ‚€~}}||||||||||||||||}}}}||zywvtrqponnmmmnnopqstvx{}ƒ…‡‰‹Ž‘‘‘‘ŽŒŠ‰‡†…„„ƒƒƒ„„…†‡ˆˆˆˆˆˆ‡†…„ƒ‚€~|{ywvusssstvwyz{|||||{{{{{||}~€‚ƒ„…‡ˆŠŒŽ‘’“”••”“’ŽŒ‰†ƒ~|zxvtsqpnmlkjjjkklmnprtvx{}€ƒ†‰Œ‘“•––––”“‘Šˆ…‚€}{yxwwwwxyz|}€‚„…‡‰‹‘’”””“‘Ž‹ˆ…‚|zxvtsrqponmmmllllllkkjjiijjkmnprtuwyz|}€‚‚ƒƒƒƒƒƒƒ„„…†‡ˆ‰Š‹ŒŽŽ‘’“””””“’‘ދЉ‡†„ƒ~|{zzzz{|}~€€€€€~}||{zzzzz{|}ƒ…‡ˆŠ‹ŒŽ‘’”•–˜˜˜˜—–”’‹‰‡…‚€|yuroljhggfgghijkmnpqrssssrqqppppqqstuvwwxxyy{|~€‚„†‡ˆˆˆ‡†…‚€~{ywusqpnmlkjihhgffffffghjmoruy|~„†ˆ‹’”•–——————˜˜™™ššššš™˜–•“‘‹‰‡…ƒ~|zyyxxyz{|}~€€€€€€‚ƒ„…‡‰‹‘’“”•–—˜™™š›››š™˜–“Œˆ„{wsolhec`^\[YXXXXYZ\^adgjmoqstuuuuttsrrqqqrsuwz}€„ˆ‹“–™›œœš—•’Œ‰‡„‚}|zywvuutttttttttttstttuvwxz{}~€‚ƒ…†‡ˆ‰‰‰‰‰ˆˆˆ‡‡‡‡‡ˆ‰‹‘“•—˜š››œœžžŸŸŸžžœš˜–“Šˆ…‚{xtpmifc`_^^^_adgjnrvz}„‡‰‹’““””“’‘Ї„}yvrolifdb`_^]\\[[[\]^`bdgjmpsvy{~€‚ƒ…†‡ˆ‰‰ŠŠŠ‹ŒŒŒŒ‹‹Š‰‰ˆˆˆ‡‡ˆˆˆˆ‰‰‰ŠŠ‹ŒŒŽŽŒŠ‰ˆ†…„‚€}|zyxwwvvvuuvvwxyz{|}}~~~~}}}||{{zyxvutsrqppoooopqqrsttuuvvwwxyyz{||}~~€‚‚ƒƒƒƒ‚‚€~}|{{{||~‚„…†††††…„‚€€€€‚ƒ…†ˆŠŒŽŽŽŒ‹‰ˆ†ƒ}zwspmkjiiijkmoqsvxz}€ƒ†‰Œ“—šŸ¡££££¢¡¡ŸŸžœ›™˜–”’‹ˆ†ƒ}|{zz{{{||}}}||{zywvtssrrssuvxyz|}~€€‚‚‚‚€~|zxvtrqpoopqrrstuuuuuttssrqppooooopqrstuvxy{}~€‚„†ˆ‰‰ŠŠ‰ˆˆ‡†…„ƒƒ‚‚‚€€~}}||{{{{{{{{{{{{zzyyxwvvuuuttuuvxz}ƒ†‰’•–˜˜˜˜—–”’Œ‰†ƒ€}zxusqponnoprux{ƒ‡Œ”—šž ¡¡¡¡ Ÿžœ›™—”’Œ‰†ƒ~|ywusqomkigedddegilorux{~ƒ†ˆ‰Š‹‹‹‹Š‰ˆ‡…ƒ}{ywvvvvwxy{~€ƒ…ˆŠ‹ŒŒ‹Šˆ…‚|xuroljhgffghijklmmmmmllllmnoqsuwy{~„†‰Œ‘“•–———–”“‘ŽŒ‰†„~|zyxwwxyz{|~~~}|{yyxxxz{~…Š”™¢¥¨ª¬­­¬ª¨¦¢Ÿ›—”Œ‰†„‚€~}|{zyxwvvuuttssrqqppppqrtuwy{|~€€€€€€~}|{zyxvutsrrqqqqqqrrrssssrrqqqqqqrstuvwyyzz{{zzzyyyz{|~„†Š’”•–——–•”“’ŽŒŒŒŒŒ‹‹ŠŠ‰ˆ‡††…„ƒ‚€}{zxwvvvvvvwwxyz{}ƒ…‡ˆŠ‹ŒŒŒ‹‹ŠŠ‰‰‰‰‰‰ŠŠŠŠŠŠ‰‰ˆˆ‡‡††…„ƒ‚€~{yuroljhgfffgikmpsvy|ƒ„……………„ƒ‚~|{yxvutsrponmlkjihhhiijlnprux{~€ƒ…†ˆˆ‰‰‰ˆ‡†…ƒ‚~}|{{{{{|}~€‚ƒ„†ˆŠ‘“•—˜˜—–•“‘ŽŒ‰‡…ƒ€~~~}}}}}}}}~€‚„†ˆŠ‘“”•––••”“’‘ŽŽŒ‹Šˆ†„~zwtpmjhecbaabcegjmquy}…ˆ‹ŽŒ‹‰†ƒ€}zvspnkihgghhiklnpqstuvvvwwwwxxyz{|}~‚ƒ…†‡ˆ‰‰ŠŠŠŠŠ‰‰ˆ‡††„ƒ‚€}|zyxxxxxyyz{{|}}}}}}||{{zzzz{|}€‚…‰Œ“—šŸ¡¢¢¡Ÿ™–’ŽŠ†ƒ}|{zyxwvutsrqpponlkihfedcccdegjmquy}‚†Š“•–—˜——–•“‘ŽŒŠˆ†…ƒ‚€€~}|{zywvutsstuvxz|~€‚ƒ„…†††††……„ƒƒ‚‚‚‚ƒ„…‡ˆŠ‘“•——˜—•“Œˆ„€|yvtsstuvxy{|}~~~}|zxvtqomkjiiijkmoqtwz}…ˆ‹Ž‘“”•••”“‘Œ‰‡„}{zyyyzz{||}~~€‚ƒ…†‡ˆˆˆ‡…ƒ}|{z{{|~€‚ƒ…†‡‡‡‡‡‡‡†††……„ƒ~|zyxwwwwwxyyz{|}~~€€~|zyxwwwyz}€‚…ˆŠŒŽŽŽŒ‰‡„€}zwtrqpoooppqrstvwy{|~€‚‚ƒƒƒ‚€|zwtronmlmmnopqqrrrrrrrrrqqqqqqqqrsuwy|€ƒ‡‹Ž‘”—™›œœœ›ššš™™™™˜—–”’Ї„}|{zz{{|}~€‚ƒƒ„„„„ƒ‚€~|{zzyxxxyyz|}‚…ˆ‹Ž‘“–˜™™™˜–”Œˆƒ~ytokheb`____`acegjlnprstuvvwxyz{|}}}}|{zywutrqqqrsux|€…‰Ž“—›Ÿ¡£¥¥¥¤¢Ÿœ™•‘‰„€{wspmjihijknpsvy|~€‚„…†‡ˆˆ‰‰Š‹Ž’’“““’ŽŒ‰‡„‚~}||}~€‚ƒ…†‡ˆˆ‡‡†…„„ƒƒ‚‚‚‚‚ƒƒ‚‚‚€~|{ywvtsqponnmmmmnnooppppppppoopprsuwz|‚…‰Œ’”–˜™™™—•’‹‡ƒ{wspnljjjkmorux{}‚‚‚‚‚‚ƒ„†ˆŠ‹ŽŽ‹ˆ„€{vqmifdccdfhknqux{‚…ˆ‹Ž“•—™›žŸŸž›™–’ŽŠ†}zvtqponnnopqrstuvwxyzzz{{{{|}‚…ˆŒ‘•šž£¦©«­­«©¦¢˜’ˆ„€|zwvutsssrrqponmkjhgfeedddeeffghijkklmnoqsux{~ƒ†ˆ‰ŠŠ‹‹‹‹Š‹‹‹ŒŽŽ‘‘’’‘‘ŒŠ‰‡†„‚€~|yvtqoljhfdcbaabdgjnsy~„‰‘”•–•“‘Ž‹‡„~}|{|}ƒ†‡‰ŠŠ‰ˆ‡…ƒ€~{ywutsrrrrstvxz~…ŠŽ’–™œž    žœ™–’Ž‹‡ƒ€~|zzyzz{|}~~~~~}|{zxwwvwwy{~„ˆ‹Ž‹‰†ƒ~|zywvusrpnljhfdcbaaabbdegiknqtw{‚…ˆŠ‹‹Š‰‡…ƒ€~~}}~€‚„†ˆŠ‹’“”•––––••”“’‹‰†ƒ€}zvspnljihhhijlmoqtvy}€„ˆ‹’•—™››œœ›™˜–“‘ŽŒŠˆ†…ƒ‚€~|{ywvtrpnljihfeeddccddfgilorvz~ƒˆŒ‘•™œžŸŸŸš—“މ„zvsponopruwz|~€‚ƒ„…†‡ˆ‰ŠŒŽŒŠ‡„}yvroligfedeefhjlnquy}†ŠŽ’•˜š›œ›š˜•’Œ‰†„‚€~}|{{{{{||~€‚ƒ„…†††††…„ƒ‚}{xvspmjhfdcddfilptx}…ˆŠŒŒŒŒ‹Šˆ‡††††††‡‡‡‡‡‡†††…………„„ƒƒ‚‚€€€~~}}}~~€‚‚€~|ywtrponnnoprtwy|~„†‰‹Ž‹‰†ƒ~}}~„†ˆŠŒŒŠˆ†ƒ€~{xvtsrrrrstuvwxz|}€‚„‡‰‹ŒŒŒŠˆ…‚~{xusrrrsuwy|~„†‰‹ŽŽŒŠˆ†„‚}|zywvuttsrrrrstuwy|~ƒ„†‡‡ˆ‡†…„‚€~|{yxwvvvwwxyyz{{{{{zyxwvuutttuvxz}ƒ†Š’•–—˜˜—–”‘Ž‹‡„€}zwuttuvxz}€ƒ‡Š‘’’‘Їƒ€}zwutsrqponmljhgfedddefhjmoruy|‚…‡‰‹ŒŽŽŽŽŽŽ‹Šˆ†„ƒ‚‚‚ƒ„…………„„ƒ‚~}||{{||~ƒ„†ˆ‰Š‹ŒŽŽŽŒŒŠ‰‡†„‚}{zyxwwxxyz{|}~~|zxvsqonlkkjkklmnprtvx{}€‚ƒ…†‡ˆˆ‰‰‰‰‰ˆ‡‡†…„ƒ‚€€~~€‚„…‡ˆŠ‹‹ŒŒŒŒŒŒ‹‹Š‰ˆ‡†…„ƒ‚€~}|{zyxvusrqppppqrrstuuuuuuttttuvwxy{|}~€€€€‚‚ƒ…†‡‰‹ŒŽ‘’’’’‘ŽŒ‹Š‰ˆ‡…„ƒ€~}{zyxxxwwwxxxyz{}ƒ†ˆŠŒŽŽ‹‰‡„‚€~}}}€ƒ…‡‰‹ŒŒ‹Š‡…‚|zwusqponmlkjiiiijjkmoprtvxy{}~€‚ƒ…†‡ˆ‰‰‰‰ˆ‡…„‚€~}{ywvuuuvxy{~€‚ƒ……†††………„……†‡‰‹Ž“•—˜™™™—•’Ž‹‡‚~zwsqnmlklmnpsux{~€ƒ…‡ˆ‰ŠŠ‹‹ŠŠ‰ˆ†„ƒ€~{yvtrpoopqsuxz}€‚„…††…„‚€~{ywvutttuvwxz{|}}~~}}|{zywvutssstuwy|ƒ†Š“–™›žŸŸŸžœ›˜–“Šˆ…ƒ€}{xtqnjgda_^\\[[\]^_acfhknqtwz|ƒ„…†‡‡ˆˆ‰ŠŠŠ‹‹‹‹‹Š‰‡†„‚~|{zyyz{}ƒ†ˆ‹’“••––•”’Іƒ|yvtsrrrstvxz}€ƒ†ˆ‹‘‘’’’’’’’’’’’’’’‘‘ŽŒ‹‰‡„‚€~|zyxwwwxyz{}~€‚ƒƒƒƒ‚€~}zxvtrponnnoqsux|ƒ†‰ŒŽŽ‹‰†„‚€~}|||}~€ƒ„…†‡‡‡‡†…„‚~|{yxwvtsrpomlkjiiiiijjklmmnoqrstvwyz{|}~~€€‚‚‚‚‚‚€~~}}~~€€‚‚ƒƒ„„„„„„ƒƒƒ‚‚€€~}{zywvvvvwy{}‚„†ˆ‰‰Š‰‰‰ˆˆ‡‡‡†††††††…„ƒ‚€€€€€~}|{zzzzz{{||}}}||{{{{{{|}~€‚ƒ„………„ƒ‚€~|{zzzz{|~€‚‚‚ƒƒƒƒƒ„…†‡‰ŠŒŽ‘“””••””“’‘ŒŠ‰‡††………†††‡††…„ƒ}{yvtsqpooppqrsttttsrqomkjihghhiknqtw{‚†‰‹ŽŽŒ‹Š‰ˆ‡††…„„ƒƒ‚‚‚ƒ…‡‰ŒŽ‘’‘ŽŒˆ…€|wrnkhfefhlpv|‚ˆ’•—˜—–”‘Іƒ~~€‚…‡‰‹ŒŒ‹Š‡„€{vqlgc_\ZYXXYZ\_bdhknqux|€„‡‹Ž‘“•––•”’‰†ƒ€}|{{}ƒ‡Œ‘–šž ¡¡ žš•Š„~ytqnmlmnpruwy{}€‚‚ƒ‚‚€€€‚„…‡ˆŠŠ‹‹‹Š‰ˆ†…‚€~{yvtromjgda_][[[[]_behlosvy|~€‚ƒ„„„„„ƒ‚‚‚ƒ…‡ŠŽ‘•šž¡¥§©ª©§¥¡œ–‰ƒ|vqlhfdcdegjnrvz}„†‡ˆ‰ˆ‡†…ƒ€~{yvtrponnmnnopqrtvxz}€‚…‡ˆ‰Š‰ˆ‡…ƒ~|||}~€ƒ†Š“•——˜—–”’Œ‰…‚€~}}}‚…ŠŽ’—›ž¡£¤¤¤¢ š–‘Œ‡‚}yuqnlkjjjklmnopqqqqqqqqqqqqqqrrrstuvwxyz{||||||||||}}~~~~}||||}}~~}{zxvtrqponoopqrstuuuuuttsrqppopqrtwz~‚†‹”—›Ÿ   Ÿž›š™˜—–•“’‘Ž‹Šˆ‡…ƒ‚€}||{{{||}~€‚ƒ„……†‡‡ˆˆˆˆ‡‡‡††…………„„„„„ƒƒƒ‚‚‚‚‚‚‚‚}{xvsqommmnoqsvy{}€}{ywusrqqqrtuvxyz{||}}~~€‚ƒ…†‡ˆ‰‰‰ˆ‡†…ƒ‚€~}}}}~~€€€€€€~|{yxvutstuvx{~‚…‡‰‹ŒŒŒ‹Šˆ‡…ƒ}|zxwvvvwwyz|}~€ƒ„†‡‰‹Ž‘’’’‘‹Šˆ‡†…„„ƒ€~}{xvtrqqqqsux{~„‡‰‹ŒŽŽŒŠˆ†…ƒ‚€€€€€€€~|zwsplifdccdfilptwz}€‚‚‚„…‡ŠŒ‘“”””’Ž‹‡„€|yvrpmkiggfghjmpsw{~„†ˆ‰Š‹‹‹‹Œ‹‹‹Š‰‡…ƒ€}zxusrqqrstvxz}ƒ…†‡‡†…„ƒ€~}|{zz{{}~ƒ„†‡‡‡‡‡†…„‚|yvsoljhfffhjnrw}ƒ‰–›Ÿ£¥¦¦¤£ ž›˜•“‘ŽŒ‹‰ˆ†„|yvsqommlmnoqsuwyz{|}~€‚ƒ„…†‡ˆ‰ŠŠ‹ŒŽŽŒ‹‰‡„~{ywuttuwy|~„‡ˆ‰Š‰‡„€|wqlgb_\ZZZ\^`cehjlmnpqrtwz~ƒˆ’—›žžœ™•Œ‡ƒ}{zzzz{}~‚ƒ…†‡ˆˆˆˆˆ‡…„ƒ€€€‚ƒ„†‡‡ˆˆ‡†…„ƒ‚€€‚ƒ„„……„„„„„†ˆ‹’–™››š—“‡€ysnigefgjnsx}„‡‰‰‰ˆ†„‚€~{zxxxyz|‚…ˆŠ‘’’’’‘‹‰‡„‚|yvspnljiihijklnpqstuuuutsrrqponmmlllmnoqtvy|}}{yvtqpnnnnoqsvx{~„‡‰ŒŽ‘’”””“‘Ž‹ˆ…ƒ‚‚ƒ…ˆ‹Ž‘”–—˜™™ššš››››››š™˜–•“‘‹‰ˆ‡††………††‡ˆŠ‹‘’““’‘Œ‰†‚~zvspmkihgffffffffffeeedddcccddefhjmpsux{}ƒ…ˆŠŒŽ‘’““’ŽŠ†‚~yvsqppprtwz}€ƒ†‰‹ŒŒ‹‰‡„‚€€ƒ…†ˆˆ‰ˆˆ‡††…††‡ˆ‰‰Š‰‰‡†„}{yxxxxy{|~€ƒ„……†††……„ƒ‚}{ywusqpopqsuy|€ƒ†‰Š‹‹‹‰ˆ†ƒ}{yxwvuuvvwxxyz{|}}}}}||||||||{zywvtrqppppqsuwy|€ƒ‡Š‘‘‘Ž‹‡„€|yvuttuwy|‚…‡‰Š‹‹Šˆ†„|yvtqnljhgghilnruy}‚†‹‘—£¨­±´¶¶´²­¨¢›”Žˆƒ|zyyyz{}~€‚ƒƒƒ‚}{zxwvuttsssssstuwy{~ƒ†ˆ‰‰‰ˆ†„}yvrolkjklorvz„ˆ”–—˜—•‘‡ztokhggilpuzƒ†‰Š‹Š‰†„~{ywvvwxz|~€‚ƒƒƒƒ€~|zywvvuvvwxxyz{|}~~€€€‚‚‚ƒƒƒƒƒ‚€~}|{{|}~€ƒ…ˆ‹Ž“”–––•“Œˆƒ~yuqnlkklmnprtvwyzz{{{{{zzzyyxxwxxyz|}ƒ„„„„ƒ~|{zyxxyyz{|~ƒ‡‹Ž’–™š›š˜•‘Œ‡‚~{yyz|€„ˆŒ’““’‹†‚}yusrrsux{~ƒ…†††…„ƒ‚‚‚ƒ…‡‰ŒŽ‘Œ‰„yrlgb^ZYXXY\_bfjnqtwz|~€ƒƒ„„„„ƒƒ‚‚‚„…‡ˆŠŠŠ‰ˆ†ƒ€|yvsqoonooqrtvx{~„‡Š’•—˜™šš™™˜–•“’Ž‹Šˆ‡…„ƒƒƒƒ„…††‡ˆˆ‡‡†„‚€}{zyxxwwwvvutsrponmmmnoqtwz~…ˆŠŒŒ‹‹ŠŠŠŠ‹‹ŒŒŠˆ…‚|yvsqomlkjiihhhijkmoqstvwwwvuutsstuvx{}€‚…‡ˆŠ‹‹‹‹Š‰ˆ‡…ƒ‚€}|{{{{||}~~}{xvsqonmmnpruz~ƒˆ’•˜š››š™—•“’‘‘‘‘‹‰‡†„„„…†‡‰‹ŒŒŒŒ‹Šˆ‡†…„„ƒƒ‚€~~}||{{{{{{{{zyxwusqpoopqstvxz|}~‚ƒ„„„„„„„ƒƒƒƒ„„……†‡ˆˆ‰‰ˆ‡…‚€}yvsqomllmoqsvy{}€~}|{zzz{|}„†ˆ‰Š‹Š‰ˆ†„‚€~}}}ƒ†‰’”•••“‘Ž‹ˆ…|zxvuttttuwy|~€‚‚‚€}yuqmifdcdefiloruwz{|}}||{{|}~ƒ†Š’•–——–•“’ŒŒ‹‹Šˆ†„~zvrnjfc`_^]^`bfjnsw{‚„………„„„„…†ˆŠŒ’“““’‘‹‰‡†„ƒ‚€~}|{yxwvutttuvwy{}€‚„†ˆŠ‹ŒŒŒ‹Š‰ˆ†„ƒ~}}~~€ƒ…‡‰‰‰‰‡…‚|yuspommnoqtvy|~€‚‚€~|zwusrqqqrrsttuvvwy{~€ƒ…‡‰ŠŠŠ‰ˆ‡†…„„ƒƒ„„„……………………………†‡‡ˆ‰‰‰ˆˆˆ‡‡††……„„ƒ‚€~}}||||{{{zzzzz{|}€‚„†‡ˆ‰ŠŠ‰ˆ‡†…ƒ‚€~}|||{{{||~ƒ„†‡‡‡‡†…„‚€~~}}|{zyxvtsqqpqsvz„‰‘“””’Ž‹‰‡†††ˆ‰‹ŒŒ‹‰†ƒ€~|{{|}€‚…‡ˆˆ†…‚{xvtssstvwy{}€€}zwtqomlmmoprsuuvvuuutuuvwxyz{|}~€€‚‚‚€€‚ƒ„†‡ˆ‰ŠŠŠ‰ˆ†„‚|yvtqpnnnnoqruwz|‚…‡Š‹ŒŒŒ‹Šˆˆ‡‡‡ˆ‰ŠŠ‹Š‰‡„~{xutsstuvxyzzyxvtrponnoqsux{}€€€€€€ƒ„†‡ˆˆ‰ˆˆ‡†…„„„„†‡‰ŒŽ‘“”––—––•“‘Ž‹‹ŠŠ‰‰‰‰‰ˆˆ‡††…„ƒ‚€}|zxwutsrrrrrssssssssttuuvxy{}ƒ„„„„ƒ‚€}{zyyz{}€‚„†‡‡‡…ƒ~|{zzz{|~~~}|{yyxxyyz|}~~~}|{{zzzzzzz{|~€‚†‰’—›Ÿ¢¤¤£ œ—’Œ‡ƒ€~|||}~‚ƒƒƒ„ƒƒ„„„……††…„ƒ}{ywvvuuvvwwxyz{|}~€€€€~}|{zywvutssstvx{ƒ‡‹Ž’”–––•“‘Ž‹ˆ…~{ywuutuuvwxxxxwvutsrqqqqrstuwyz|}~€€€‚‚ƒ„„……„ƒ‚€}{zxvusrponmmlllmmmnnoppqsuxz~ƒ†‡‡†„‚|zxwwwxz|~ƒ†ˆŠ‹Œ‹‹‰‡…ƒ~}||||}ƒ…ˆŠŒŽŽŒŠ‰‡…ƒ€~|{zz{|}€€€€}|zyxxwxxyz|}€‚…‡‰ŒŽ‹ˆ„}zxvvvwx{}€‚…ˆŠ‘’‘Ž‹ˆ…‚}|{{|}ƒ…‡‰Š‹ŒŽŒŒ‹ŠŠ‰‰‰ŠŠ‰‰ˆ†…„ƒ‚€€€~~}|{yxuspnkihfeeffhilnqtvy{}‚ƒƒƒ‚€}{zyyz{|~€ƒƒƒƒ‚~|zxwvuuvwy|~€ƒ…‡ˆ‰‰ˆ‡…„‚€~~€‚‚‚‚€€~~~}|{zxwvvvvxy{}~~~}|zyxwvvvvvvvvuuuuuuuvvwxxyz{|}~‚„…††‡††…„ƒ‚‚‚‚‚ƒ„†ˆŠŒŽ’“““’‹‰ˆ‡‡‡‡‡‡ˆˆ‰ŠŠ‹‹Œ‹‹Š‰‡†„ƒ‚~|{ywusqpoopqrtwz}€‚…‡ˆ‰‰ˆ‡…ƒ~|zyxwwwvvvvvvwwxxxxxxwvvvvwwxyz{|~‚ƒ„……„ƒƒ‚‚‚‚‚ƒ…‡‰Œ“–™š›š˜•‘ŽŠˆ…„ƒ„„…†‡‡‡‡…„‚}zxusrqppqrtvy{~€€}|zyxvutssrrsstuwxz|}~€‚ƒ„„………………††‡ˆ‰‰‰‰‡†ƒ~{yvtqomljjjjklmopqrsttuuvwxyz|~€‚„†ˆŠŒŽ’“”•••”“’Œ‹Š‰‰ˆˆ‡†…ƒ‚€~}}|}}}~~~~}|{zxwvuuuvvwwxxyyz{}„†ˆ‰Š‰‰‡†„‚€€ƒ†‰Œ’•—˜™˜˜–”‘Œ‰†„‚~|zyxwwwwwxyyz{{{{{zzzyyxwvtsqonmlllmortwz|}~~}|{zyxxxyz|~€‚ƒ„„„ƒ€~}}||{{zyxwwwwwxz{|~€‚‚‚‚€~~}}~€‚„†ˆŠ‹ŒŽŽŽŽŽŒ‹ŠŠŠ‹ŒŽ‘‘‘ŒŠ‡„~|yxvuuuuuvwxy{}~€‚„„……„ƒ€~}|{zzzz{{||{{yxvusrqqqrsuwz~‚†ŠŽ’“’‘ŒŠ‡„‚‚ƒ…‡‰‹ŒŒ‹Šˆ†„|zyxwxy{}€‚…ˆ‹Ž“”•–•“‘Ž‹ˆ†„‚€€‚„…†‡‡‡…ƒ€}yuromkjihhhijkmpswz}€€}{ywutssssttttttttuuwx{}€ƒ†‰ŒŽŽŒ‰†‚~zvspmkjjjkmptx}‚†ŠŽ‰…€zvrpppruy}‚‡Œ”—š››š˜•‘Œˆƒ|yxxy|ƒ†‰‹Œ‹‰†ƒ€|zxwwxz|‚ƒ„ƒ‚~|{yxvutssstuwy|ƒ„…„‚{wrnjfedegjnsx}‚‡‹Ž‘‘Ž‹‰‡…„ƒƒ‚‚‚‚‚€~|{yvtrqpqsuy}€„‡‰ŠŠŠ‰ˆ†„ƒ~|zxvtsrrsuwz~ƒ‡Œ“•––•“Ї„‚€ƒ†‰‘•˜›žŸžž›˜•’‹ˆ…‚}{ywtrponopsw{†‹’””“‘‹‡ƒ~zvroljiijlpuz€†Œ”—˜—•‘ˆ‚}wspmllmnprsuwy{|~~}zwsokfc_\ZYXY[^afkqv|†Š“•–——–•“‰…‚~|yxwwxz|‚†‰‹‹Š‰ˆ‡‡ˆ‰‹ŒŽŽŒŠ‡ƒ€~{zyyyyz{{|||{zxwvuuvwy|~€‚ƒƒƒ‚‚€€ƒ„†ˆ‰‰ˆ†„€|xtqommmnopppppoooprsuwz|}ƒ„†ˆ‰ŠŠŠ‰‡…‚{xurqppqsuxz}‚„…†‡‡‡‡†„ƒ€~ƒ†ŠŽ’•™›œœ›˜“‰„zvsqooprtvy|~ƒ…‡ˆŠ‹ŒŒ‹‰†„}{yxxwvutssrrrsuwz}€‚…†‡‡†„‚|zxwvwwy{}€‚…ˆ‹Ž’“”•”“‘Œ‰†„‚€€€‚ƒ„…†ˆŠŒ’–™›žœ™–‘Œ‡‚}ywuuuvxy{}‚„…‡ˆ‰‰ŠŠŠŠ‰‡…‚|xurpnmmmmnopqqrsstvwy{}~€€}zxuqnkhfcb```bdfjmqtwy{|||||||}€‚ƒ„…††……„ƒ‚‚‚‚ƒƒ…†‡‡ˆˆˆˆ‡†…„„ƒƒƒƒƒƒƒƒƒƒƒ„„„…††‡‡‡‡†…ƒ‚€~}|{{|}~€€€€€~~}}}}~~€‚‚ƒƒ‚€~}{zyxxxxxyyzzzzzyxxwvuuuvvwxyzzzyyxwvvvwxz|ƒ……†…„‚}zwusqpppqqstvxy{}‚„…†‡‡‡†…„„„„…†ˆŠŒŽ’”–—˜™šš›››šš™—•“‹‰ˆ‡‡‡ˆ‰‰ŠŠŠ‰ˆ‡†…„ƒƒ‚‚‚‚€€~~~}}|||{|||}~€‚‚€}{ywutsrrstvxz|~€‚ƒƒ„„„……†‡‡‡‡†…ƒ‚€~}|{{||}}}}|{ywutrrrstuwy{}€€€€~~~}~~~€€€€€€€~~}|{{zzyyyzzz{{|}~ƒ…‡‰‹‘‘Ž‹‰ˆ†„‚€~}}~ƒ…†ˆˆˆˆ†„‚|ywusrqqqqrsstttttssrrrrrrsstttuttssqpomlkjjjjlnpruxz}€‚ƒ„„„„„„ƒ€~}{zyyyz{}„…‡ˆ‰‰ˆˆˆ‡‡ˆˆŠ‹Ž‘‘’‘‘Œ‹‰ˆ‡††…………††‡ˆ‰‹ŽŽŒ‰†‚{yvuttuwx{}€‚„…‡ˆ‰ŠŠ‹‹ŠŠ‰ˆ†…„‚€~|{ywutsrrrstvx{|~~~}|yvtqnlkjjklmortw{~ƒ†‡‰‰‰‰ˆ‡†…„ƒ‚‚ƒ„†‰‹‘’’’‘‹‰‡†…„„„…†ˆŠŒ‘“•——˜—–•“‘ŒŠ‰ˆ‡‡††‡‡‡ˆˆ‰‰ŠŠ‹‹‹ŠŠ‰‰ˆˆ‡‡‡ˆˆ‰‰‰‰ˆ†„~zwspmkihhhijlnqtvy|~~|zwtqnkigedcccccbbbaaaaabcehknrux{}~~~}{zxvussrrstvwz|~€€€~}{yvussrstvy|ƒ‡‹’”–˜˜˜—–”‘ŽŠ†‚|ywvvwxz}€„‡‹“–˜š›››š™˜—•“’ދЉ‡†…„‚~}|{zzyyxwwvvwwxz{}ƒ…‡ˆˆ‰ˆ‡†…‚€}zwtqnkihgffghijlmoqsuwyz|}}}}|{{zyyz{}€ƒ‡ŠŽ’““’ŽŒ‰‡†…„„…†ˆŠŒ’”—™›Ÿ¡£¤¦¦¦¥£¡Ÿœ™–“‹‡„€}ywtsrrrstvwyz|}~~}||{{{{||||||{{{{{{}~‚ƒ„………„ƒ~|{zzz{|}}~}|{ywusqpoooopqrsuwy{~ƒ„…„ƒ~zvspnllkllmoprtvxz}€‚„…†‡††„ƒ}{ywusrqpqrsuvxz{|}~‚ƒ…††‡‡†…„ƒ€€‚ƒ„†‡‰Š‹ŒŽŽŽŽŒŠ‰‡†„ƒ€}|zxvtsrqrrtuxz}‚ƒ„„ƒƒ}{xurpnlkjkkmnpruwxz|}~€‚ƒ„…………„„„……†‡ˆ‰Š‹ŒŒŒŒŒ‹Šˆ‡†„ƒ‚€€€‚‚ƒƒ„…†‡‡‡‡†„ƒ}|{zzzz{{||||||{{{{{{{||}~€‚ƒ„„„„„„ƒ‚‚‚‚ƒƒ„…†‡ˆ‰‰‰‰‰‰‰‰‰‰‰‰ˆˆ‡††††‡ˆ‰Š‹Œ‹‹Šˆ‡…„ƒ‚‚‚‚‚‚‚ƒƒ„„…††‡‡††…ƒ‚~}}}}~€‚ƒ„„…„„ƒƒ‚€€~}}|{zzyyzz{{{{{zzyyyzz|}€‚ƒƒƒƒ‚€}|zywwvvwwy{}~€‚ƒ„„…„„„„„„………††……„ƒ~|zxvtrponmmmnoqrtvy{|~€€~}|{yxvuuuuuvwwwwvtsqponnnoqsvy|‚„†‡ˆˆ‡†…ƒ‚€}|{zywvutsrqpppqqrsstuuvxy|~…ˆ‹ŽŽŒ‹‰‰ˆˆˆˆˆ‰ŠŠ‹ŒŽ‘“”•–••“‘ŽŒŠˆ‡‡‡ˆ‰Š‹ŽŽŽŽ‹‰‡„€}zvtrqpqrtvy|€ƒ†‰‹ŒŒ‹Šˆ†„‚€€€€‚ƒ„„…†‡ˆˆ‰ŠŠŠ‰‰‡†„}|{zz{{|}~€€€€€€€~~~}}}}}~€‚ƒ„…†‡†††…„ƒ€~}|zzyxxxyz{}ƒ…†††…„ƒ}{zxwvuuuuuvwxz{}~€‚€}|zyxwvvvvvuuuuttttttuvxy{}€€~}|{zzzz{{|}~ƒ„†‡‰Š‹‹Œ‹‹Š‰‡†„‚€~}{zyxwwvvvvvwxyz{||}}|{zyxwvvvvwyz|}€‚ƒ„„……†‡ˆ‰Š‹‹Š‰‡…‚|zwusrqqrstuwyz|}~~~}|{yxvuttsssstuvwyz|~ƒ†‰Œ’”–——–•”’ŽŒ‹Š‰‰ˆˆˆˆ‡‡††…„„ƒ‚€€€€‚ƒ„†ˆŠŒŽ’“•–––––•“’‘ŽŒŒ‹Š‰‡…‚|yvsqonmlmmnprtvy{}ƒ„…†††…„ƒ‚€~~€€€‚ƒƒ„…†‡ˆ‰ŠŠŠ‰ˆ†„‚€~}|||}}~~~~~~~~}}|{zxwusqpnmmllmnoprsuvxy{|~‚ƒ„„„„„„ƒ‚‚‚‚ƒ„„„„„ƒƒ‚€~}}}~~~}|{zzyxwwvvvvwxy{}~€ƒƒ„„………„„„ƒ‚~|{yxwwvvvwwxxyzzzzzzzzzzzzzzzzyxxwvuttsssrrrrrrrrqqqqrrstvwyz|}€‚„†ˆŠ‹ŒŒ‹Š‰ˆ‡†……„„ƒ‚~|{yxwvuuuvxy{}ƒ„„………†††††††……„„„„„……†ˆ‰Š‹ŒŽŽŽŽŽŽ‘’““”•––—————––••””““’’‘Ž‹‰‡…„‚€€‚ƒ…ˆŠ‘’“’‘Œ‰†ƒ|yuromkihhhijklnoopppoonmmmmmmnopqrtuwyz|}€€€€~}{zyxwwxy{~€ƒ…‡ˆ‰‰ˆ‡†„‚~|{zyxxwwxxy{|~ƒ…†‡‡‡‡†…„ƒ€~|{ywvtsrrqrstvx{~ƒ†ˆ‰Š‹‹‹‹Š‰‡†„ƒ€€‚ƒ…†‡ˆˆˆˆ‡†…ƒ‚€€€€€€€€€€€€€€€‚ƒƒƒƒƒƒ‚€~}|zyxwwvvvuuvvvvwxyz{|}~~~~~}}|}}~€ƒ„†‡ˆ‰Š‹‹‹‹ŠŠ‰ˆ‡†…„ƒƒ‚‚ƒƒ…†‡‰‹ŒŽŽŒ‹‰ˆ†„‚€}{zywvvuuuuuuvvvwwxxxwwvutsrrqqqrstvxz|‚…‡‰ŠŠŠ‰‡„}yuqnjhgffgiknquy}…‰ŒŽ‘‘‘ŽŒ‰‡…‚€~}}}~€€€€€€€‚‚‚‚‚‚‚ƒƒ„„…†‡ˆ‰ŠŠ‹‹Š‰‡…ƒ~|zxvuttuuwxz|„†‰‹ŒŽ‘‘‘ŒŠ‡…ƒ€~|zxwvutssssttuvxyz{|}}~~~~~}}}}}}}}}}}|{zyxwwvwwxy{|~€‚„†‰‹ŒŽŽŽŒ‹‰ˆ‡…„ƒ‚€€€‚ƒ„…………„ƒ‚~}|||||}~€‚ƒ…‡‰Š‹ŒŒ‹Šˆ†„‚€~}{yxwvuttsttuvwyz|~€‚„…†‡‡†…ƒ€}yvrnkhecba`aacdgiloruxz|}~~~~~~~~}||{{zzyyyxxxwwvvvvvvwxy{|~€‚„…‡‰ŠŒ‘“•–˜š›œœ›š˜–”‘Œ‰‡…ƒ‚‚ƒ…‡ŠŒ’•—™›œœœ›š˜–”‘Œ‰†„~|zxvutsssstuwy{}€ƒ…‡‰‹‹‹Šˆ†„~zwurpnmllmnprsuvwxxxxxwwvutsqponmmllllmmmnnoppqrtuvwxxyyzz{|}~‚ƒ„…†††……„ƒ‚€~~}|||{{{|}~ƒ…‡‰ŠŒŽŽŽŽŽŒ‹Š‰‡†„ƒ‚€€€€ƒ„†‡‰Š‹‹‹Š‰ˆ‡†…ƒ‚€~}}}~~‚„†‡‰‰Š‰ˆ†„~zvspmkihghhjlnpsvy{~€ƒ„…………„‚}{ywutsrrrqqrrssuvxz}ƒ„………„„ƒ‚€€‚„†ˆ‰‹ŒŽ‘‘’’“““““““’’‘‘ŽŽŽŒŒŒŒ‹‹‹ŒŒŒŒ‹Šˆ†„~{xvsqpoooopqrssttuutttssrrrrrrrssssrrqqppqqrtvxy{|~~~~}|{zyxwvutsrqqqpqqrsuwy|~ƒ…‡‰Š‹‹‹‹‹ŠŠŠ‰‰ˆ‡†…„ƒ€~}}}~‚„†ˆ‰Š‹‹‹‹‹‹ŠŠ‰‰ˆˆˆˆˆ‰‰Š‹ŒŒŒ‹‰ˆ†…ƒ€~|{yxxwwwxyz{|}~~~}|{zyxwvutsrrrrrsstuvwxz|}ƒ„……„ƒ~{xurpnlllmoruy}…‰“–—˜™™™™˜—•“’‹Šˆ‡†††‡ˆ‰Š‹ŒŒŒŒ‹‰ˆ†„‚€€‚ƒ„†‡ˆŠ‹‹‹‹Šˆ…‚{xtqnljiiijlnqtwz}€‚„…†††…ƒ‚~}||{{{z{{{{||}}}}}|{yxvusrqqqqrsuwz}‚„…†‡‡††…„ƒ‚‚€~}|zywtrqonnnnoqrtuvxyz|}€‚„„…††††††………………„„ƒ‚€~~~~~€€€€~}}|{{{{{{{{|||}}}~~~~}}||{zyyyyyz{|~€‚„‡‰‹‘’’’’‘Ž‹‰‡…ƒ€~|{zyyyyyzz{{||}}~€‚ƒƒ„…………………………†††……„„ƒ‚€~~}}~~€ƒ„†ˆŠ‹ŽŽŒŠˆ‡…ƒ‚€}|{zyxwwwwwwxxxxyxxwwvuutttuuvwwxxxxxyyyz{|}~~~|zxvsqonmmnpruy|€„‡‹Ž“•–———–•“‘Œ‰†„}|{{{{|}€‚ƒ……†††…„ƒ‚€€€‚‚ƒƒ„„„„„„„ƒ‚‚~}{zxwvutsrqppppprsuwy{}‚„……††‡‡‡‡‡†…„ƒ}|zywvvuttsrrqqppqrstuwyz{|}}}}||{{{zzyyxwvvuuuvwxz|~„†‰ŒŽ’“””••••––———˜——–•”’‘ŽŒŠ‡„‚}zyxwwwxyz|}‚ƒ…†ˆ‰Š‹ŒŽŒŠˆ†„|{yyxxyz{||}~€€€€€€€~~}|{{zzyyz{|}€‚„…‡‡‡‡†„‚€~|zyxwwwwxxyyzzzyyyxwwwvvvvwxxy{|}~~~~}{zywvtsqpoonnopqrsuwz|~ƒ…‡ˆ‰‰‰‰ˆ‡††…„ƒƒ‚€€~~~~~€€‚‚‚ƒƒƒ‚‚€~}|zyxwvvwxy{|~ƒ„†‡‰Š‹‹ŒŒŒŒ‹Š‰ˆ‡†…„ƒ‚‚‚‚ƒƒ„„„ƒ‚}zxusrppoopqrtuwy{}ƒ„†‡ˆˆˆˆˆˆ‡‡†……„„„„„„„…†‡‰Š‹ŽŽŒ‹‰ˆ‡†……„„„„………††‡ˆˆˆ‰‰ˆ‡†„‚€}{xvtrqppppqrtvxz}‚„‡‰ŠŒŽŽ‹ˆ†ƒ€}{xvtsrqqqrstvxy|~€ƒ„„…„„ƒ‚€}||{zzyyxxwvuutsrqppoonnooopqrstuwxz|~ƒ…ˆŠ‹ŽŽŒŠˆ†„‚~}|||||||||||}}~€‚ƒƒ„„„„„„ƒƒƒ‚‚‚‚‚‚ƒƒƒƒ„ƒƒƒƒƒ‚‚€€€€€€‚„†ˆ‰‹ŒŽŽŽ‹‰‡…ƒ}|{zzzzz{|}~~~~}}||{{{zzzyyxxwvvuuttttssssssssttuuvwwxxyyyyyyxxwvvuutttuuvxy{|~‚ƒ„…‡ˆ‰‹ŒŽŒŠˆ†„ƒ‚€€€‚„…‡‰‹Ž‘’’’’’‘ŒŠˆ†„‚€~}||{{{|||}}}}}}||{{{{{{{||}~~€€€~|zxusqponnnopqsuwy{}~€‚ƒ„„„„ƒ‚€~}|{zzzzzz{|}€‚„†‡ˆ‰Š‰‰‡†„|zxvutsrrstuwx{}€ƒ‡ŠŽ‘”—™ššš™–”‰…‚|zyxwxxy{|~ƒ„†‡ˆ‰‰ŠŠŠŠŠ‰‰ˆˆ‡††…„„ƒƒ„„…†‡ˆ‰ŠŠŠ‹ŠŠ‰ˆ‡†…ƒ‚~|{zywvvutttttuuvwyz{{|||{zxvtrponmmmmnopqstuvwxyyz{|}~€‚ƒƒ„……†††………„„„„„„„„ƒ‚~|zywvvvvwxyz{|}~€‚ƒ…‡‰‹Ž’•–—˜˜—–”’Ї…ƒ~}}~~€€‚‚ƒƒ„„„„„„ƒƒ‚‚~}{yxvutsssssttttsrqomljhgeddddefghjkmnpqsuvxz|~‚„…†‡ˆ‰ŠŠ‹‹‹‹Š‰ˆ‡†…ƒ‚‚‚‚ƒ…†ˆŠŒŽŽŒŠ‰ˆ†…„ƒƒ‚‚‚‚‚‚‚€€}|{zzzz{|~ƒ„…†‡ˆŠ‹ŒŽ’“”•–––•”“’‘ŽŒ‹‰ˆ†„ƒ~}|zzyyxxxxxxxxwwwvvuutssrponmmlllmnnpqrstuvxyz{||}}~~~~}||{yxwvvuuvvwxyz{}€‚„…‡‡ˆˆˆˆ‡†„ƒ€~}|{{{|}€ƒ…ˆ‹Ž‘“”•–•”’Ї„‚€~~}}~~€‚‚‚‚‚‚€€€ƒ…ˆ‹Ž’”•–•”“‘ŒŠˆ†…„ƒƒƒƒ‚‚€~}|{{zzzzz{{{||}}~~~~~}|zxvusqponnnnnnooooooopprsuwz|‚„†ˆŠ‹‹‹‹Š‰‡†…ƒ‚~|{zywvvuuuuuvwxyz|}~€€‚‚‚ƒƒ„…†‡‰Š‹ŒŒŒŒŒ‹Š‰‡†„ƒ‚€€~~~~~~~~€ƒ„……††……„‚€€‚ƒ„…………„„ƒ‚€~~~~}}}}}~~~€€€‚‚ƒƒ„„……………„ƒ}|zxwvvvvwwxyyzzzzzzzyyyyxxxyyyzz{}~€‚ƒ…‡‡ˆˆ‡†„‚}{ywuutttttuuuvvvwwxyyyyyyyxxxxxxyzz{|}~€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚ƒ„…†‡ˆ‰ŠŠŠŠŠ‰ˆ‡…ƒ|zxvtssstvxz}€ƒ…ˆŠŒ‘‘‘ŽŒ‹ŠŠ‰ˆ‡†„ƒ|zxwvuuuvwxy{|~€ƒ„…†ˆ‰ŠŒŽŽŽŒŠ‰ˆ†„ƒ~||{{{|}~€ƒ„†‡ˆ‰Š‹‹‹ŠŠˆ‡…ƒ€}{xurolifdb`^]\[[\]^`bdgjmqtx{‚…ˆ‹ŽŽŽŽ‹‰‡…ƒ‚€€€€€€€€€€€~}||{{{{|}ƒ…‡ŠŒŽ’“““’‹‰‡…„‚€€€€‚ƒ…†ˆŠ‹ŒŽŽŽŽŒŠ‰‡†…„„ƒƒƒƒƒƒ‚‚€}|{yxwwwwwxyz{|}}}||zywvuuuuwy{~€ƒ…‡ˆ‰‰ˆ‡…‚€~{yxwvvvvwxy{|}}~}}|zxurolifdbbbbdfjmqvz~„†‡‡†…ƒ€~}}}~€‚ƒ……††††…„ƒ‚‚‚‚ƒ„…‡‰‹ŽŽŒ‰‡„~|zxxxyz}‚„†ˆ‰‰‰ˆ‡…ƒ‚€~~€ƒ…‡ˆŠ‹ŒŒŒ‹‰‡„‚|zxvuvvxz|‚…‡‰Š‹‹‹Šˆ†…ƒ€~~~€€~|zxvtqpnmmmnopruwy{}~~~}}}}}~‚„†‡ˆ‰ŠŠŠ‰‰ˆ‡††…„ƒ‚€~|{zyxxwwwwwwwwwwwxxyyzz{{zzyxxwwwwxy{}‚„†ˆŠ‹ŒŒŒ‹Š‰‡†…ƒ€~}|{{{||}€ƒ„†‡‰‹ŒŽŽ‹‰†„‚€~}|||||{{zzxwutrqppopqrtvy{~„‡ŠŒŽ‹ˆ†ƒ€}{xvusrqppoooppqrstvxz|ƒ…‡‰‹ŒŒ‹Š‰ˆˆ‡†…„ƒ‚~|zxvtssrstuwz|€ƒ†‰Œ‘“•–—˜˜˜——–•”’‘‹‰ˆ†…„ƒƒƒƒƒƒƒƒ„„„„„„„ƒƒ‚€~}||||}~€‚ƒ„………………„„ƒ‚~|{yxvutrrqponnnmnnopqstvxyz{{{zyywvvuuuuvwyz{|||||{{zyxwvvuuuvvwxz{|~€€€€€€€€€~~}}||{{zzyyyyyyzz{{|}}~€‚ƒ„…†‡ˆ‰Š‹ŽŽŒ‹Šˆ‡†……„„ƒƒƒƒƒƒƒƒ‚‚€~}|{{{|}„†ˆŠŒŒŠˆ†ƒ€~|zyxxxxyyyyyxxxwwwwwvwwwxyz{|}~€€~}|{zzyyyzz{|}~€€€~}|zyxvuutuuvxz|‚…ˆŠŒŽŽŒŠˆ†„‚~}|{{{{{{||}~~€‚ƒ„†‡‰Š‹ŒŽŽ‹‰‡…‚€~|{zz{{|~ƒ„…†‡ˆˆˆ‡†…„ƒ‚€€€€ƒ„†‡‰ŠŒŒŒ‹Šˆ†„ƒ€~~€€‚ƒƒ„„…††‡‡ˆˆˆ‡‡†…ƒ}{xvspmkigedddefgikmoqrstuvvvwwwxxyz{}~‚ƒ„†‡ˆˆ‰‰ŠŠŠ‹‹‹‹‹Š‰ˆ†„‚|yvspnmlkkklmnprtwz}€ƒ†‰Œ’”•–––•”“‘ŒŠ‰ˆ‡‡‡ˆˆ‰Š‹‹ŒŒŒŒ‹‹Šˆ‡…ƒ€~}||{{zzyyxxwvvuuuuuuvvwwxxxyyyyyyyyyyyyyyz{{|}~€€‚‚‚‚€~}}}}~~€ƒƒ„…………„ƒ‚€}|{zyxwvvvvwxxyz{|}~‚„…†‡ˆˆˆˆ‡†…„‚~}|{zzzz{||}~€€€€~~~}~~~€€‚‚‚€€~~~~~~~~€€€€‚‚ƒ…†‡‰Š‹ŽŽŽ‹Š‡…ƒ}{zyxxxxyyzz{{|}}~€‚‚ƒ„„„„„ƒ‚€~||{{zz{{{{|||||}}}}}}~~~€‚ƒƒ„„„„ƒ‚€~}}|{{zzzyyyzzzzzzzzyyyyxyyyz{|}~€‚ƒ„†‡‰Š‹ŒŒŒŒ‹‹ŠŠ‰‰ˆˆˆˆˆˆ‡‡‡†……„„„ƒƒƒ‚‚€~~}}|}}}~‚ƒ„…‡ˆˆ‰‰‰‰‰ˆ‡†…ƒ~|zxwuttsssrrssstuvxy{}‚„…††‡†††…„ƒ€~}}}}~€‚ƒ„……††††……„ƒ‚€~~}|{zyxwvuutssssssttttssrrqppppppqsuwy{}€‚„†‡‰ŠŒŽŽŒ‹‰‡…ƒ}|{zyyyyyyyyxxxxxxxxyyyzz{{|}}~€€‚ƒƒ„……†††††††††††‡ˆ‰ŠŒ‘’’’’‘ދЉ‡†…ƒ‚€~}|{zyxwvvvvvvvvvwwwxxxyyzzzzzyyyyyyzz{{||}}}~~€€€€€€~}}}}}~~~~}}||{zzyyxxxxyyz{|}~€‚ƒ„…††‡‡‡‡‡‡‡‡ˆˆˆ‰‰‰‰‰ˆ‡†…„‚~|{zyxxxwwxxxxwwwvvvvvvwyz|~€‚ƒ…‡ˆ‰‰Š‰‰ˆ‡††…„„ƒƒ„„„…………………„„ƒƒ‚€€€€€€€€~~~~~~~~~€€€€€€€€€‚‚‚‚‚‚€~}{zyxxwwwxxyz{{|}~~€‚ƒ…†‡‰Š‹ŒŒŒ‹‹‰ˆ†…„ƒ‚‚‚‚‚€€€~~~}}}}}}}~~~€€€€€~~~}}~~~}}}}|||||||||{{zyxwvtsrrqqpqqqrstvxy{}€ƒƒ„„„„ƒƒ‚€~~~€‚ƒƒƒƒƒƒ‚€~~~~~~€€€€€€€€€€€€€€~~~}}|{zyxwvuttsssttuuvvwwxxxyyzz{{||}}}}}}||||}~€‚„‡‰‹‘’“”””“’‹‰ˆ†……„„ƒƒƒƒƒƒƒƒ„„„ƒƒƒƒ‚‚‚‚‚‚ƒ„„†‡ˆˆ‰ŠŠ‹‹‹‹‹‹‹ŠŠ‰‰ˆˆ‡‡‡ˆˆˆˆˆˆ‡‡†„ƒ‚€}|{zxwwvuuuuuvvvwwxxxxxxxxxxxxxyz{|}~€€€€€€€‚‚ƒƒ„„„ƒƒ‚€~~}|||{{{zzyxwwutsrrqpppppqrstvwyz{|}}~~~~~~}}}||{{{{{|}~‚„„………„„ƒ‚‚€€€€€€€€€€€€€€€~}}||{{||}}~€‚„…†‡ˆˆ‰‰ŠŠŠ‰‰ˆˆ‡††……„„„„„„………††††††…„ƒƒ€~}|{zzzz{|}~€‚ƒ„„„………………†††††………„„ƒƒ‚‚‚‚‚‚ƒƒƒ„„„„„„„„„ƒƒƒƒ‚‚‚‚‚‚ƒ„„…†‡‡ˆˆˆ‡‡†…„‚€~}{zxwvvutttsssrrrsstuwxyz{{{{{zyyxxxxxyzz{|}}~€€€€€€‚‚ƒƒƒƒ‚‚€€€€€€€€€€‚„…†‡‡‡‡‡†……„„„ƒƒƒƒ‚‚‚‚‚€€~~}|{zzyyyxxxxxwwwwvvvvvvwwxyz|}~~€€€€€~}}|{{zzyyyyyyyyyyyyzz{|~€‚„…‡ˆŠ‹ŒŒŒ‹Š‰ˆ‡†…„ƒ‚‚‚‚‚‚‚‚‚‚€~~}{zywvutsssstuvwxyz{|}}~€€‚ƒ„…‡ˆŠŒŽ’“”•••””“’ދЉ‡†…ƒ‚€~}}}}}}}||{zywvtrqonmkjjiiijklmnpqsuwy|~€‚„†ˆ‰Š‹Œ‹‹Š‰‡…„‚€~}|||||||||}}}||{{zyyxxxxyz{}ƒ…‡‰ŠŠ‹‹ŠŠ‰ˆ‡‡††‡‡ˆ‰Š‹ŒŽŽ‘‘’’’‘‘Ž‹Šˆ†„‚€~|{{zzzzzz{{||}~~€€€‚‚‚ƒƒƒ„„„ƒƒ‚~|zywvuttsssssssstttttuuvvvwwwwvuutsrqqqqqrsuvwyz{|~€‚„…†‡‡ˆˆˆ‡‡‡‡‡††‡‡‡‡‡‡‡ˆˆˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ˆˆ‡†…„ƒ‚€~~}}}}~€‚ƒ„…†‡ˆˆˆˆ‡‡†…„„ƒ‚‚‚‚‚ƒƒ„………………„ƒ‚€~|{zywwvuuuuvvvwxyz{|}€‚ƒ…†‡ˆˆˆ‡†„‚€~{yvtsqppoppqrstuvvvvvuutssrrrsstvxy{}€‚ƒƒ„„„ƒ‚~|zxwutsrqqqqrstuvwyz|}~€‚ƒƒ„„„„„„ƒƒƒƒƒ„…†‡ˆ‰Š‹ŒŽŽŽŽŒ‹Š‰‡…ƒ~|{yyxyyz{|}}}||{zyxwwwwwwxxyz{|}~€€‚‚ƒƒ„„„………††††††‡‡‡‡ˆˆ‰‰ŠŠŠ‹‹‹ŒŒŒŒ‹Š‰ˆ‡†„ƒ‚€~~€‚‚ƒƒƒƒƒ‚€~~~~~~~}|{{zzzzz{{|}}~~~~~}}}}}}}}}}}}}}}~~~€€€‚‚ƒƒ„„………………„ƒ‚€~}}|||}}~~€€‚‚ƒƒƒƒƒƒ‚‚€~}||||||}}~~~~~~}}}}~~~€€€€~~}|{zzzzz{|~€‚ƒƒ„„„„„ƒƒ‚~}|{{zzzzz{{{{{{|||||||{{{{zzzzzzyxxwvuuuuuuvwwxxxyyyzz{|||}}}~~€‚ƒƒ„„…†‡ˆŠ‹‘’’‘‘ŽŒŠ‰ˆˆ‡‡‡‡‡††…„ƒ}|{zzzz{|}~€€€€€€€€~~}}}}}}}}~~€€€€‚‚ƒ„…†‡ˆ‰‰Š‹ŒŽŽ‹Šˆ†…ƒ‚€~}|||{{{zyxwvuttsssssttuuvvvuuttssssstuvvwxxyyyyzz{|}~€‚‚ƒ„……††‡‡‡‡‡‡†……„ƒ‚€~~}}}}|||{{{|}~€‚ƒƒ„ƒƒƒ‚€~}}|{{zzzzzzyyyxxwwvvvuuvvvvvvvvuuuuvwxy{}‚ƒ„……………„„„„„„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒ‚‚€~}||{{zzzzzzzzzz{{|}}~€€‚‚ƒƒ„…‡ˆ‰Š‹ŒŒŽ‘’““““““’‘‘ŒŠ‰‡…ƒ‚~~~~€‚ƒƒ„„„„„ƒƒƒ‚‚€~}|{yxwvvuttttuvwyz|}~€€‚‚ƒƒ„„„………††††‡‡††……„ƒƒ‚‚€€~}|zyxwvvwwxxyyyyxxwwvuuutttttuuwxz}‚„‡‰‹ŽŽŽŒŒ‹‹Š‰ˆ‡†…„ƒ‚€}|{yxvutrqpoonnnnooppqrtuwyz|~€‚ƒ…†‡‡ˆˆˆˆˆ‡‡†…„ƒ‚‚€~}{zyxwutsrrqqqpppqqrstuvwxyzz{{{{{zzzzzzzzzzzz{{|}}~€€€€€~}}|||}}~€‚‚‚ƒ‚‚€~~}|{zyyyxyyyz{|}~€‚ƒ„…††‡‡ˆˆˆˆ‰‰‰‰‰‰ŠŠŠ‹‹ŒŒŒŒŒ‹Šˆ‡†…ƒ‚€€€€€‚‚‚‚‚‚‚‚‚€€€€€€€€€~~~}}}}}}~~€€‚‚‚‚‚‚ƒƒƒ„„……†‡‡ˆ‰‰‰ŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠ‰ˆ‡†„ƒ~}|{{{{||}~~€€~~}|{{zyxxwwwwwxxyzz{{{{{zzzzz{{{{{{{|||}~€‚‚ƒ„„„„ƒƒ‚‚€~~}|{zyxwwvvvvvwwxyyz{{|}~~€€€€€€€~~}|zyxwvvuuuvvwwxxxyyyyyyzz{|~‚„…‡ˆˆ‰ŠŠŠ‹ŒŽ‘“•–—˜™™™™˜—•”‘ŒŠ‡…‚~~~~~~~~}|{zyyxxwwwwwwwvvuttsssrrrrrrrrrqqqppqqrtuwy{}€‚‚ƒ„„„„…………………„„ƒƒ‚€€~~}|{yxwutrqqpppqqrtuvwxyz{|}}~€‚ƒ„…‡ˆ‰‰Š‹‹ŒŒŽŽ‘‘’’’““““’’‘‘Ž‹Šˆ‡…„ƒƒƒƒƒƒƒƒƒƒƒ‚‚€€€~~}}}}}}}}}~~€€€€~}||{{{{{{||}}}}}}}}||{{{zzzzyyyyyyyyzzzz{{{||}~€ƒ„†‡‰ŠŠ‹‹‹ŠŠ‰‰ˆ‡‡†…„ƒ€~|{yvtrpomljjiiijklnprtvxz|}~€€‚ƒƒ„…††‡ˆˆˆ‰‰ŠŠ‹ŒŒŒŠ‰†„‚}{yxwvvuttsrqqpppqqrsttuvwxyz{}€‚ƒ„……††††††††††††……„„ƒ‚‚€€~}||{{zzzzzzz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘“”••–––••”“’‘ŽŒ‹Š‰ˆ‡…„ƒ€~}|{zyxxwwwwwwxxxxxxyyyzz{|}~€€€€~}|{zyxwvvvvwwxxyyyyyyyxxxxxxyz{|}}}~~}}}}}~~~€€€€€€€€€€€€€€€€€‚„…†ˆ‰Š‹‹‹‹‹‹‹‹‹‹‹‹‹ŠŠ‰ˆ‡†…ƒ‚~|{yxwvuutssrrqqqrrsuwy|„†ˆŠ‹ŒŒŒŒ‹‹Š‰ˆ‡‡†††……„ƒƒ‚€~~~~~~~}}|||{{zzyxwvuttssttuvvwxxxxxyyyz{|}~€‚„……†††††††††††‡‡‡‡‡‡‡‡‡ˆˆˆˆˆˆˆ‡†…„‚€~}||{{{{zzzzzzyyxxwwwwwwwwwwwwwvvvvvvvvvvwxxyz{{||}}}}}}}~~~€‚ƒ„…†‡‰Š‹ŒŒŒ‹Š‰ˆ‡…„ƒ‚€~~~}}}||{zzyxxwwwwxxyz{{|}~~€‚ƒ„……††††…„ƒ‚€€€€€€€€€€€€‚‚ƒƒ„„„……………†††‡‡††…„‚~|{zyyyzz{|~€‚ƒ„…†‡ˆˆ‰‰‰‰ˆˆˆ‡‡‡‡†††…„ƒ‚€}|{zyxwvuuuttttuuvwxy{}ƒ…†ˆ‰‰ŠŠ‹‹‹‹‹‹ŠŠŠ‰ˆ‡†…„ƒ‚‚€~}|{{zzzzzyyyyyyyyyzz{|}~€€€~~~€‚„†‡‰Š‹ŒŽŽŒ‹Š‰ˆ†…ƒ|zxusrponnnnnmmmllkkkkkkkkkkkllmnoprsvxz}‚„†ˆŠ‹ŒŽŽŽŽŒ‹ŠŠ‰‰ˆˆˆ‡‡††…„ƒ‚‚€€~}{zyxwvutttuuvwxxyzz{||}~~€‚ƒ„†‡ˆ‰Š‹ŒŒŒ‹‹Šˆ‡†…ƒ‚~}|{zyxwvvuuuuuvvwwxxyyzz{{|}~~€€€‚‚ƒ„„…†‡‡ˆˆˆˆˆˆ‡‡†…„‚€}|{zyyxwvvuuuvvwxyz{{|||||||}}~€‚ƒ„†‡ˆ‰Š‹ŒŒŒ‹Š‰ˆ†…„ƒ‚€€€€~~}||{{zzzyyxxxwwwvvwwwxyyzz{|}}~€‚ƒ„…†‡ˆ‰Š‹ŒŽŽŽ‹‰‡…ƒ}{ywvutsrqqqqqqqqqqqpppppqrstuvwyyz{{{||}}~€‚‚‚‚‚€~~}}}~~€‚ƒ„……†‡ˆ‰Š‹ŒŽŽŽŽŒŠ‰‡…ƒ‚€~|{zyxxwwwwvvwwwxxyz{|}~~~~~~}}|{{zzyyyxxxxxxyyzz{{||}~€‚ƒ„…††‡‡‡‡‡‡‡‡ˆˆˆˆˆˆ‡‡†…ƒ‚€~}{zyxxwwvvuutssrrrrrrstuvxyz|}}~~~~~~~}}}}}~~~~€‚ƒ„…†‡‰‰ŠŠŠ‰ˆ†…ƒ‚€~}|||{{{{zzyyxwvuutttuuvwxxyzz{{||}}~‚„†‡‰‹ŒŽŽŒ‹Šˆ‡…„ƒ‚‚€€~~}}}|||||}}~€‚‚ƒƒ„„„„„ƒƒ„„…†‡‰ŠŒŽŽŽŽŒ‹Š‰ˆ‡†…„ƒ‚€€€€€€€‚ƒƒ„„………„„ƒƒ‚‚€€€€‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒ‚‚€~}|{zyxwvuuuuuuuuuutttttttuuvwwxxxwwvuuttttuvxz{}~€€€~~~~~~~~~~~~}}}}}}~~~~~~~~~~~~~~~€€€‚‚ƒƒ„„„…………††††††††††††……„ƒ‚‚€€€€€€€€€€€€~~~~~}}}}||{zyxwvutttuuwxy{|~‚ƒ„„………„„„ƒ‚‚‚€€€~}}}||||||}~~€€€‚ƒ„„…†‡ˆ‰ŠŠ‹ŒŒŽŽŽŽŒ‹‰‡†„ƒ‚€€€‚‚ƒ„„…††‡‡‡ˆˆˆ‡‡††…„‚~|zywutsssssttuvvwwwxxyyz{|}~€‚ƒƒ„„„ƒƒ‚‚€€€~~}}|{zyyxxxxxxxyyz{{||}}~~€€€~~}|{{zyyxxxwwwwvvvvwwwwxxyyzz{|}~€‚ƒ„…‡ˆ‰ŠŠ‹ŒŒŒ‹‹‰ˆ‡…„ƒ‚€‚‚ƒ„…††††††……„„ƒƒƒ‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚€€~~}||{{zzzzzzzzz{{{|||||||{{zzyyxxwwwvwwwxz{}~€‚ƒ…†‡‡ˆˆˆ‰‰‰‰‰‰ŠŠŠŠŠŠŠŠ‰‰ˆ‡††……„„ƒƒ‚€}{ywvtrqonnmmmmnopqrtuwxz{|}~€€€€€€€€€€‚‚‚ƒƒ„„„„„………………††††††……„ƒ‚‚€€€‚ƒ…††‡‡‡‡‡††…„ƒ‚€~~}||{{zzzz{{|}~€‚ƒ„„„„„„„ƒƒ‚‚€€€€€€€€~~}||{{{{{{{||}~€‚‚‚‚‚€~|{zyyxxxxxyyz{|}~‚„…†ˆˆ‰‰‰‰ˆ‡†„ƒ‚€~}|{{{||}~€‚ƒ„………†††……„ƒ‚~}}||}}~‚ƒ„„…………„ƒƒ‚€€~}}|{zzyyxyyzz|}~€‚ƒ…†‡ˆˆ‰ˆˆ‡†…„‚~}{{zyyyyyzz{{||}}~~~~~~}}||{{zzyyyyyzz{{{||}}}~~~€€‚ƒƒƒƒƒƒƒƒ‚€~~}||{zzyyyxxxxxxxxyyyyzzz{||}~~€‚‚‚ƒƒƒ‚‚‚€€~~€‚ƒƒƒƒƒƒ‚‚€€~~~}}}}}}}~~~~~~~~~~~}}}}}}}~~~€€‚‚ƒ„„……††‡‡‡‡‡‡ˆˆˆˆ‰‰‰‰‰‰ˆˆ‡††…„ƒƒ‚€~}|{zyyyyyz{|}‚„…†‡ˆ‰‰‰‰‰‰ˆ‡‡†…„ƒ‚€€€€€‚‚‚€~~}|{zzzyyyyyyyyyyzzzzzzzzzzz{{|}}~€€‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„„„„ƒƒƒ‚‚€}|{zyxwwwwwwxxyzz{|}~~€‚‚ƒƒ„„„„„„„„„„ƒƒ‚‚€~}}|{zyyxwvvvuvvvwxyz{|}~€‚‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€~~~~€‚ƒ„…†‡ˆˆ‰‰‰‰‰ˆˆˆ‡‡††……„„„ƒƒƒƒ‚‚‚€€~~}}}||||||||||}}}}}~~~~~~}}||{zzyxxwwwvvvvvwwwwxxxyyzz{{|||}}~~€€€€€€~~~~}}}}}}}}~~~~€€‚‚ƒ„„„„„„ƒ‚€~~}}|||||||||}}}}~~~€€‚ƒ„…†‡ˆ‰Š‹‹‹ŠŠ‰ˆ‡†…„ƒƒ‚‚€€€~~}}}}|||||||||||}}~~€€‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„„„ƒƒƒƒƒƒƒƒ‚‚‚‚€€€€€€€~~}|{{{zzzzzzzzz{{{|}~€‚ƒƒ„……………………………………„„ƒƒ‚‚‚€~}|{zxxwvvvwwwxyyz{|}~~€€€~~}||{{zz{{||}~~€€‚‚‚ƒƒƒƒƒƒƒƒƒ‚€~}|{{zz{{{{|||||||||{{{{zzzzzz{{|}~‚„…†ˆ‰Š‹ŒŒŒŒŒ‹ŠŠ‰ˆˆ‡‡†††…………„„„ƒƒ‚‚€~}|{zzyyyyzzz{{||||}}}}~~~~~~~}}||{{{zzz{{{{{{{{{{{{{{{||}~€‚ƒ„…†‡‡ˆˆˆˆˆˆ‡†…„ƒ€}|{{zzzzzz{||}~~€€€€€€€~}|{zyxwwvutttssssssstuuvwxz{|}~~€€‚‚ƒƒ„„„……………„„ƒ‚‚€~}|||{|||}}~€€‚‚‚ƒƒƒƒ„„„………†††………„ƒ‚‚€€€€€‚‚‚ƒƒƒ„„……††‡‡‡‡‡‡‡‡‡†††……„„ƒ‚€~}|zyxwvvvvvwxyz|}€‚ƒ„…†‡‡‡ˆˆˆ‡‡††…„ƒ‚€~}}}||||}}~~€€€€€€€€€‚‚ƒ„………†††††††††…………„„ƒ‚€~|{{zyyyxyyzz{|}~~€€‚ƒƒ„„……††††‡‡††††…„„ƒ‚€€~}|{{zyyxxwwwwwxyzz||}~~~}||{zywvutsrqpooopqsuwy{~€‚ƒ„„„ƒƒ‚€~}}}}}}~~~€€€€‚‚‚‚‚‚‚‚‚‚‚‚ƒ„„……††‡‡‡ˆˆˆ‰‰‰‰‰‰ˆ‡†……„ƒƒ‚‚‚ƒƒƒ„„……„„ƒ‚~}|zyxwuttsssstuvwxz{|}~€€‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚€€~}|{{zyyxxxxxxxxxxxyyzz{{|}}~€‚ƒƒ„„„„„„„„„„………†††††……„ƒ‚€~~}||||{{{{{{{{{||}}~€‚‚‚‚‚€€~~~~~€‚ƒ…†ˆ‰ŠŒŽŽŽŽŒ‹Š‰ˆ†…ƒ}{yxvutttttuvwxz{}~€‚ƒ„„……†††††…„„ƒ‚‚‚‚‚ƒƒƒ‚‚€~~}}|||{{{{{{{{{{{{{zzzyyyyyyyyyxxxxwwwwwwwxyyz{|}}~~~~~~~~}}}}}}||||||{{{{{{||}}~~~~}}~~€€‚ƒ„…†‡‡‡‡‡‡††……„„„„…††‡‡‡‡‡†…„ƒ‚‚‚ƒƒ„…†‡‡‡‡‡‡†††……„„„ƒƒƒƒƒƒ„„…††‡ˆˆ‰‰‰ˆˆ‡†…„ƒ‚‚‚‚‚ƒƒƒ„„ƒƒƒ‚€~~}||{zzyyxxxxyyz{{||}}~~~~~~~~~~}}}||{{{z{{{|}}~~~~}}||{{{{{|||}}}}}}}}}}}}}}||||||||}}~€ƒ„…††‡‡ˆˆˆ‰‰‰ŠŠ‹‹‹ŒŒ‹Š‰ˆ‡…ƒ‚€}|{zyxxwwvvvvuuuuuuuvvvwxxyz{{|}}~~€€€€€~~}}|||||||}}}}~~~}}}}}}~~~€€€€€€~~~~~~€€€€€~}}|||||}}}}}}}}}}}}~~~~~~€€€€€€~~}}|||}}~€‚ƒ„„„„„„„„ƒƒƒƒƒƒƒƒ‚‚‚ƒƒ„……††‡‡‡ˆˆ‰‰ŠŠŠ‹‹ŠŠŠ‰ˆ‡†„ƒ‚€~~~}}~~~€‚‚ƒ„………†††††††††††‡‡††……„ƒ€~~~~€€€€€€€€€€€€€€~~~~~~~}||{{{{{{{{{{{{{{{||}}~~~}|||{{{{{zzzzzz{||}~€‚‚‚‚‚‚‚€€€€€€€€~~~}}}}~~~~~}}}|||||||||||{{zzyyyyyyzzzz{{{{{zzzzz{{||}~€ƒ„…††††††…„ƒ‚€€~~~}}}||{zzyyxxxyyzz{||||||||{{zzzzzzz{{|}~€‚„†‡‰‹ŒŽŽŽŽŽŒŒ‹Š‰‰ˆˆˆˆˆˆ‡‡‡‡‡‡‡†††……„ƒƒ‚‚€€€€€‚‚‚ƒƒ„……†††††††………„„ƒƒƒ‚‚‚€~}|{zyxwvuttssssstuuvwxxyyzz{|}}~€~~}}|||||||||||||||||||}}}}~~~~~}}}}}|||||||||||||}}}}}|||{zyxxwwvvwwxyz{}~€ƒ„†‡ˆŠ‹‹ŒŒŒŒ‹‹Š‰‰ˆ‡†……„ƒ‚€€€€€€€‚‚ƒ„„………†††……………………………………††††††††…………„„„ƒƒƒ‚‚‚€€~~}}||{{{{{{{{{{|||}}}~~€~€€‚‚‚‚‚€~}|{zzyyxxxxxxxxxxxxxyyyzz{{|||}}}}}}}|||{{{zzzzz{{|}~€‚‚ƒƒƒ„ƒƒƒƒƒ‚‚‚‚‚‚ƒƒ„„…………………„„„ƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚€~}}||||||||||||||||||||||||||}}}}}}}}}}}||||{{{{{|||}~€‚‚‚ƒƒ‚‚‚‚ƒƒƒ„„……†††††††……„„„„„„„„„„…………………„„„„„ƒƒƒƒƒ‚‚‚€€€‚‚‚‚ƒƒƒƒƒƒƒ‚‚‚€€~~~}}}||||||||||||||||{{{{{{||}}~€€€€€€~~}}}||{{zzyxwwvuuuuuuvvwwxyyzz{{||}}~€‚‚ƒƒ„„„„„ƒƒ‚€~}|{{{{{{{||}}~~~€€€€‚‚ƒƒ„……††‡‡‡‡‡‡‡‡†††††……………„„„„„„„„„„„……………„„„ƒƒ‚‚€~}}|{{zzyyyzzz{|}}~€€‚€€~~}}}|}}}}~~~~~~~~~~~€€€€€~~~~~€€‚ƒ„„………„„ƒ‚€~}}}}}}}}}}}}}}|||{{zzzyyyyyyyyyyzzzzzzzz{{{{{{||||}}}}}}~~~~€€‚‚ƒ„……††‡‡‡‡‡‡††……„„„ƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚€€€€€‚‚ƒƒ„„………„„„ƒƒƒ‚‚‚ƒƒƒ„„……†‡ˆˆ‰ŠŠ‹‹‹ŠŠ‰ˆ‡…„ƒ€~}|{zyyxxwwwwwwwxxxxxxxxyyyyzz{||}}}~~~~~}}}}|||||{{{{{{{{{||}}~~€€€€€€~~~}}||{{zyyxxwwwwwxxyzz{|}~€‚‚ƒ„…†‡ˆ‰‰ŠŠŠŠŠŠŠ‰‰ˆˆ‡††……„„ƒƒ‚‚‚‚‚‚‚‚€€€€€€~~~~~~}}}}}}}}~~€‚ƒ„„………………„„ƒƒ‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~}}}}}}~~~~~~}}}}}~~~~€€‚‚ƒƒƒƒƒƒ‚‚€€~}}}||{{{zzzz{{{{{{{{{{{{{{{{{|||}}~~€€€€€€€€~~}}|||{{{{{{{{zzzzzzzzzzz{{{{{{{{zzzzzzz{{{{|||}}}~~€‚‚ƒ„…†‡‡ˆˆˆˆˆˆˆˆ‡‡††…„„ƒ‚‚‚€€€€€€€€€‚‚ƒ„„…††‡‡‡‡‡†…„ƒ‚€€€€‚‚‚‚‚‚‚‚‚‚‚ƒƒ„„„„„„„„ƒƒƒ‚‚‚€€€~~}}}}}}~~€€‚‚‚‚‚‚€€~~~~€€€€€€€~~~}}}}}}}}~~~~~~~~~~~~~~}}}||{{{zzzyyyxxxxxxxyyzzz{{{{{||||||}}}~~~€€‚‚ƒƒ„„„„„ƒƒ‚€€~~~~}}}}}||||{{{{{{{{{|||}}~~€‚‚ƒƒ„„„………………„„………††‡‡ˆˆˆˆˆˆ‡‡‡††………„„„ƒƒ‚‚€€€€€~~~}}||||||||}~€‚ƒ„……††‡‡‡‡‡‡‡†††……„„ƒƒ‚‚€€€€€€€€€~~}}||{{zzyyyyyyz{{|}~€€€€€~~~}}}}}}~~~~~~~~~~}}}||||||}}}~~~~~~}}||{{{{zzzzzzzz{{||}~~€‚‚ƒƒ„„„„„„„„„„„„„„……………†††††………„„ƒ‚‚€€~~}}}|||{{zzzzyyyyyyyyyyyyzz{{|}}~€€€€€~~~~}}}}}}}}}}}}}}}}}}}}}}~~~€€€€€€€€€€€€€‚ƒƒ„„……†††††††††………„„ƒƒ‚‚€€€€€€€€€€€€€€€€‚ƒƒ„……††‡‡‡‡‡‡‡‡†††………„„„„ƒƒƒƒƒ„„„„„ƒƒƒƒ‚‚€€~~}}||{{{{{{{{{{{{{{{{{{{{{{{{||||}}}}}~~~~~~~~~~~~~~}}}}}}}}~~~~~~}}}}}}}}}~~~~~~~}}|||||||||||}}}}}}}~~~~~€€€‚‚ƒ„……†‡‡ˆˆˆˆˆˆˆ‡‡††…„ƒ‚€~~}}|||||||}}}}}}}}}}~~~€‚‚ƒƒƒƒ„„ƒƒƒ‚‚€€~~~~~~~~~~~~~€€€€€€€~~~}}}}}}~~~~~€€€€€€€€€€€€€€€€€€€€€~~}}}||||||}}~€€‚‚‚ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ„„„„ƒƒƒ‚‚€€€€€€€€€€€€~~~~~}}}}}}}}}}}}~~€€€€~~}}|||{{zzzzzzzzzz{{{{|||||||||||||||||}}}}~~~~~~~~~€€‚ƒƒ„„„…………………„„„„ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ„„„„„„„„„„„„„„ƒƒ‚‚€€~~~~~€‚‚‚‚‚‚‚‚€€~~~~}}}}}}}}}}~~~~~~~~}}||{zyyxwwvvvvvvvwwwxxyyyzz{{||}}~~~~~€€‚‚ƒ„………†††††††††…………„„„ƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ„„„„„„„„„„„„„„„ƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚€€€€€€€€€~~~~~}}}|||{{{{zzzzzzz{{{||}}}~~~€€€€€€€€€€€€‚‚‚‚€€~~}}}}}}}}~~€€‚€€~~}||{{{zzzzzyyyyyyzzzz{{{{{{{{{{{{{{{{{{{||||}}~~~€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€~~~~~~~~€€‚‚ƒƒ„„„„„„ƒƒƒ‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ„„„„„„ƒƒƒƒ‚‚‚‚‚ƒƒ„„„„„ƒƒƒ‚‚‚€€€~~~~~~~~~€€‚‚ƒƒ„„…………„„ƒ‚‚€~~}}||||||||||||}}}}~~~€€€€€€€€€€€~~~}}|||||||||||{{{{{{{{{{{{{{||}}~~~~~~~}}}}}}}}}}}}||||||||}}}~~~€€‚‚ƒƒ„„„„„„ƒƒ‚‚€€~~~}}}}}}}}}}}}}}}}}}}}~~€€‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€‚‚ƒƒ„„„………………„„„ƒƒƒ‚‚‚‚€€€€€‚ƒƒ„…††††††……„ƒ‚‚€€~~~~}}}}}}||||||||}~~€‚‚ƒƒ„„„„……………„„„„„ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€~~}}}}}}}}}}}}}}}|||||{{{{{{{{{{{zzzyyyxxxwwwwwwwwwwwwwwwxxxxxxyyyzz{{|}}~~~~~~}}~~~€‚ƒƒ„„„ƒƒ‚‚€€~~~~}}}|||{{{{{{||}~~€‚ƒƒ„„………………………††††††……………„„„„ƒƒƒƒƒ‚‚‚‚‚ƒƒƒƒƒƒ„„ƒƒƒƒƒ‚‚€~~~~}}}}}~~~~~€€‚‚ƒƒƒƒƒƒ‚‚€€~~}}|||||||||}}}~~~€€€€€‚‚‚ƒƒƒ„„„………„„„ƒƒƒ‚‚‚‚€‚‚‚ƒƒƒƒƒƒƒ‚‚‚€€€~~}}}||||{{{{{{|||}}}~~€€€€€~~}}}}}||||}}}~~€€‚‚‚‚‚‚‚€€~~~~~~}}}}||||||||||}}}~~€€€€€€~~}}}}}}}}}}}}}}}||||}}}}~~€€‚‚ƒƒƒ„„„„„„„„ƒƒƒ‚‚‚€€€€‚ƒƒ„„…………………………„„„ƒƒ‚‚€€~~}}}|||||||}}}~~~€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~}}}~~~~~~~~~~~}}}}}|||||}}}~~~~~~~~~~~~€€‚‚‚‚‚€€~}}||||||||}}~~€€‚‚ƒƒ„„„„„„„„„ƒƒ‚‚€€~~~}}}}}}}~~~€€‚‚‚‚‚‚‚‚‚€€€~~~~~~~~~}}}}}~~~~€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€‚‚‚‚€€€€~~~}}}}||||{{{{{|||}}~~€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚€€€€€€€~~~}}}}}~~~€‚‚ƒ„„„…………„„„„„„ƒƒƒƒƒƒƒƒƒƒ‚‚‚€€€€€€‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚‚€€€~~}}|||||||||}}}}}~~~~~~~~}}}||{{zzyyxxxxxxyyz{{|}~~€€€€€€€€~~~~}}}}||||{{||||}}~~~€€€€€€€€‚‚‚ƒƒƒ„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚€€€~~}}||||{|||}}~€‚‚ƒƒƒ„„„ƒƒƒ‚‚‚€€€~~~~~}}}}}}}}}}}}~~~€€‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒ‚‚€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}||{{zzzzzzzzzz{{{{{{{{||}}~€€€€€€~~}}}|||||||||||}}}}}~~~€€‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚€€~~~}}}}}}}}}~~~€€€‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚€€~~}}|||{{{{{{{|||}}~~€€‚‚ƒƒƒ„„„„ƒƒƒ‚‚‚€€€€€€€€€€€€€€€€€~~~~~}}~~~~~€€€€€€€€€~~}}}|||{{{{{{{{{{{{|||||}}}}~~~€€€~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€‚‚‚‚‚ƒƒƒ„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒ‚‚€€~~~~~~~~~~~~~~~}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€‚‚‚‚ƒƒƒƒƒ‚‚‚‚€€€€€€€€~~~~~}}}}}}}}}}}}}}}~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}~~~€€€€€€€€€€€€€€€€€€€€€€‚€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚ƒƒƒƒƒƒƒ‚‚‚‚€€~~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~€€€€~~~€€€€€€€€€€€~~~~~~}}}}}}}}}}~~~€€€‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚ƒƒƒ„„„„„„„„„„„ƒƒƒƒ‚‚‚‚‚€€€€~~~~~~}}}}}}}|}}}}}}}}}~~~~~~~}}}}}}|||||||||||||||}}}}}}}~~~~~~~~~}}}}~~~~€€€€€€€€€€€€~~~~~~~~~~~~~~€€€‚‚‚‚ƒƒƒƒƒƒƒ‚‚‚‚€€€€€€€€‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚€€~~}}}}}}}}}}}}}}}~~~~~€€€€~~~}}}}}}~~~~€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~}}}}}}}}}}}}~~~~€€€€€~~}}||||||{{|||||}}}~~€€€€‚‚‚‚‚‚‚‚‚‚€€€€€€~~~~€€€€€€€€~~~~~~~~~~~~~~~~~€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~€€€‚‚‚‚ƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„ƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚€€€€€~~~}}}}}||||||||{{{{{{{{{{{{{|||||||}}}}}}}}}}}}}}}}}}}~~~~€€€€€€€€€€€~~~~~~~}}}}}}}}~~~€€€€€€€€€€€€€€€€€€€€€~~~~~~€€€€€€€€€€€€€€€€€€€€€€~~~~~~€€€€‚‚‚‚‚‚‚‚‚‚‚€€€€€~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€~€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€lgeneral-1.3.1/lgc-pg/convdata/tracked.wav0000664000175000017500000005077212140770460015350 00000000000000RIFFòQWAVEfmt í*í*LIST:INFOINAMtrackedIARTMarkus KoschanyICRD2012dataŒQ~~€€€€€€€€~~~~~~~~~~€€€€€€€€€€~~~€~~~~}~}}~}~}~~~~~€€€‚ƒƒ‚‚€€~~~~~€€€‚€~~}€€€€€€€€~}||{{|}}~~~~€€€€‚‚‚~}~||{zxwxxwxyz{||}~~€‚ƒƒ‚ƒ„„††…„……ƒ„„ƒƒ‚€€~~~}}||z{{{|}||zxwvuvuvutvxy}€‚ƒƒ„…‡ˆ‰‰ˆ‰ˆ‡†…††‡‡ˆ‰ˆˆ‡†…‚€~~‚„…†…ƒ€~}}{zxvusrqpooqtw{~‚„„„ƒ‚€€~€€€€€~||}||}}}~€ƒ„……„„}|xwvtutuvvyyz|}|}~}~}|zxvwx|~~…ˆŒ“”•––•‘ŽŒ‹ŒŽŽŒŠˆ†…ƒ~{xvtsrstuvy{|}}|{zyxwvusrpooppqrstuvwxz|ƒ†ˆŠŒŽŽŽŒŠˆ†„‚€~|{{zxxwvwvwvwwy{|‚„†ˆˆ‰ˆ‡„‚€€€€€€~{xvtsqpopqpruwx{|}}}~}€ƒƒ„…††ˆˆˆ‰Š‹Œ‹‹Š‰ˆˆ†…ƒ€~|}|{||{zyxwvusqpoopqsuwy|~~€‚‚„…†‡ˆ‡ˆŠŠŒŒŒŠ‹Šˆˆ‡…„…„„…†ˆŠ‹Š‹Š‰‡…ƒ~}|||}~€ƒ…††††„‚}{yusrpqqrqqpopoonmnmlljkklmoprtvyz|~~€‚‚ƒƒ„…†ˆ‰Š‹ŽŽŽŽŽ‘ŽŒ‹‹‰ˆ‡ˆˆ‰ˆ‡†…‚~{xtrmjgedcdcbcdefhjjkkmoprvy|…‰Œ‘”–——˜—˜—˜—•“’“”““‘Ž‹Šˆ†„‚€~}{yxwusqpponmopqsvwxz{{zxwxvuvwxx{|}~€ƒ„ƒ‚‚„…†‡ŠŒŽ‘’“”“’‘’‘’“”’‘‹Š‡ƒ{xvqmkihjklmnlhgedcdhiknnmnmkkjjiiklorstwxy{~‚†Š‹Œ“”—𛡥§ª­¯®®¬¦¢ž™”’މ‡‡„‚ƒ‚„…ƒ€}wpkhc^\ZXZ]]]acehlnnoolihebbdceilotyy{~‚…ˆˆ‰ŒŽ“˜›ž¤©ª¬­«©¨¦¡˜’Ї„€}~~‚€~{vrplgefffkopsyz{}~zxxsppnlostx€…‡Œ’‘‘“’’‘‘“•–˜›œŸžœ™–’Œˆƒ{vsrpooopqtttutqrspoqqqrtrnlkihihinoquwrmlib^[TPONOV\cktw|…‹“™¢¤¥¦¤¡  ¡¤©¬²¸¼½¿¾¹·³°«¦ž”Œ„|vqomlmkhghfddbab`^]^]]]`cflquwyywwwtpnlhhgiklprtx{~‚‡ŒŽ’•–œ¢§­²µ¶¸·¶µ²¯¬©§¤ š—•‘ˆ„ztpkfc^\YVTUWX]`chnpsvwy{{|{{xvttuvx{~‚…‡ŠŽ‘‘‰…{xvuvvyy{}}~}~|zyuqmjhfgfeefghihijklmpqswzƒ„~|wy}†Œ‘’“”’“”ˆ„ƒ‚€~€…Ž•š›˜Ÿ¡¢¤¥¨¯´³°­ª©­°®°°¬§ž˜“ŽŠ…wohelk`XSNIBA>9<@EIILTW[ccccejosw~„ˆŠˆƒ{rqwzƒ‘——Œ‚{x|ƒ‰–£¦§£ ¥«°¸½¾ÄÆÄĸ«¢š’‰€||wrk`SIC?=;=FNUXZ^agntz}}}yvplorz}yxwy€„ƒ…‰Ž”™›™™˜™˜–‘ˆ~zuonoqtuvuxww{~€yphedb``cipvwupijmkhhlrwzwstux{}}ƒˆ•—˜™™ž£§®´µ´¯§”•™¡¤¦©®±²´µ´¯©¢”†}wtrrvx~„…„yog^XTQLF?6-('(1@O^kv|‚ƒƒˆ˜™šœ™˜š˜—•’Žˆ‰Š‰Š‹‰‡ˆ‡†ˆ‹Ž’–”‘”˜›ž™…{tqrqrtvrlheghgedcbacfeeilrtu|‚†„‚€|{wtvtx€…ˆŠ“””—›š¢¤¥£œ“zskmkihfc]Z[\[_dhprtssuquxz€†Œ‘¢§®³·¸¹ºÀÈÎÏÍú²§¡œ•‰€ypeZTPMOMIHDAA?AGLNNPMLMMSSUXVX]bemtz‚Š’š¡©±·¹»»¼¾¼»·®¬­²¸º¹¶²®§¤¡›–…ynea^\ZWWUVUW[\`fdc_]^[[ZYZ[`hnx‚Š“›¡¥«²¶¹¼»¸¹µ¯«¦¡™–ކ…€{umga[XWVVWWXZ^aabdca_]YX\\[_dglrsuwvwwwyyz„†…‡‰“™ ¦­¶º½ÃÅÃÄÆÁ½¿½¸¸¶¬¤¡œ“Œ†{plhc^[VNJIDDEGKMRSUZ\`diorv{‡ŒŽ“•“““Šˆ‡}~{upolhjkgggfdcecbcdcdgjimtx~…‹Ž•ž¤©°¶¹¿ÇÊÉÉÈľ¾»´°­¦ š”Œ‡{xromlhghgffgfdffdfihgkmlmonjggb_a`_bfhhkonotutuxxvy|}ƒ‡‰Š“”˜œ¡¢ ŸŸ›—˜˜’‘‰‰‹‰†„‚|{~|}€yurmjklga_^ZVYYVV[bis{„†‰ŠŠŽ•–’‘Š„…ˆŠŠ–™¢¥š‘Žˆ~z}…„ƒƒ{z|z~{w|xphchdfqlb`fcZ[`juƒ’–—š˜”•“Œ“‘Œ•„‰ˆˆ˜•”‘…zw}~„ˆ…€Ž–‡ƒ‡……‚ƒ‹€{}~{{yrpnlruvtwr`_gggjogalw{€‡„~ƒ…~~{ƒ…†‰Š‹‰—›¢¢”†|v{vzznjihjoz{vwuopsrpsuvvuux|‚‰“•”•™›œ¡ Ÿ£¦¥£¨«¥¤¢™Ž‰…}z{wrqkb[ZYUWYVVWVXUUUPQTTXahlpw{x}ƒƒ„‹‘Ž“””˜œž£­¯¯³±­«©¥žš™”’’Š…†‚~{xtnkkfaa]YVRPMOSPSYZZ_dcfmrt}…†‡”–›£¨©«¯®¬®­¬©¨¦£ ž™––’Љ‰‚€~{z{yrongdegfec`][ZYZ\\_decep†‰Ž‹‹’𢍩ª§ž ¤¡Ÿ˜“ކ†Š‰„yi``dgikllfcmpjs†Ž‹„~raUPP[luy„ˆ‚|{€zˆ‰„ƒ}tqnxˆŽ‰Ž“ƒ|{y~ˆŠ†‡†€{uu}…‹”“‡}xx}ƒ‡Ž•„‚‚zy}wpt{{z‚‡†‡…‡‹‹ŽˆˆŠŠŒŒ‡ŒŽ“ˆˆ‡ƒ€€‚~‚†„„……}unmifedbdfa^``_aelnnspjlihljnw~…Ž”›¤ª±µ´´·º»¼¼¹··¹³¬©¥Ÿ™”Œ‚zm`UI?86740,)'(,1:?BIMNSWZainw~€…ŠŽ’˜ ©¯¶»»»½¾ÀÄÄÄÅÅÃÁ½¸³­¤›†~ysmkheb`_]]`bdikknqpqrsvttuwxwuvspspkhd`^[XX[\`hnu{„†‰ŒŠˆ†€€„‡‰‹“–“Š„}{zz}|~ƒ‡”𡥍­²³µ¹¸´´±­¬ª¨¥¢ š™–‘Œ‡‚}yvsoliihebca`_`__]Z[[XTRNKKGB?<=<>BFJPV^hpy‡Ž•¢©°²±²±®­«©§¦¤£¢¡žœ˜•‘Œ†„‚}ytsqqpqprsvxwxwvttsqpnlnmmpqty}…‰‹”—š›™•‘ŽŠ‡†…ƒ€~~~|{xusnje`\ZYXWVXZ\_behlortuvxz|€„†‰Œ‘’”˜›ž£¨¯´¸»¼»¹¸µ¯«¥žš•’‹ˆ…‚}{zvtrmhb]ZWWYZ]afiow{}€ƒ„ƒ„ƒ…†ŠŽ–ššœ™™š˜•”“’Œ‰‡„‚{vrnjgeb^YWUSSRPNMLKJHHGHILOSX\biqw}‚…‰‹”™ž¡£¥¤¥¦¦¥¦¨¨ª¬­®¯¯°¯®­««¬­®¯®­¬©¤ž˜’‹…€yqke`]XURPNLIHFEFEFGHJLQV[afjmoqtvy|~€ƒ‡ˆ‰ŠŠ‹‘“”“””–˜—™œœœ›š››š™˜”‘ŽŽŽŽ‹ŠŒ‹Šˆ†„€~zwuqomkheca```a``bca^]\[ZXVSQPRW]agnty~…‹”šž¡¤¥¤£¥§§«®±³µ··¹º¸µ³¯¬¨¤¡š–’ˆ‚zusqqqomkkhc]VPHB>:8:<@GOU\dkoprrtvwyz{|}‚…‰Œ’”•–™žŸ¡£¤¨¬®°±³³±¯«¦¡Ÿž›š–‹…wof\RJC;61,)*+*,/38@FKPVZ^bfintyˆ’œ¦°·½ÄÉÎÒÕÔÒÑÑÎÌÊÈÇÆÄÁ¿½º¹¶±«£™†~wqkgc`\XVSPMMKIJKJIHFCCDFGHKMOSWY\`bcfhkotx|ƒ†ŠŽ‘“–˜›žŸ ¢¤¥§©¨©ª¬¯±´´µµ²°¬¨¢œ˜“Šˆ†„‚€}|zwurolheb^[XYY[]\^``__\YWUTSSTTX]bhntz€…‡Š‹Š‹ŠŠ‰ˆ‰ˆ‰ˆ‰ŠŒ’•—˜š›œœ›œ›œœ›š˜—•“‘ŽŒ‹‡„€|wqnkfc`^\[ZZ[]_bfgjnqsvy{z|~~€‚ƒ„†ˆ‹“˜œ ¤©­¯±²²³´´³²¯®­ª¦£Ÿš•‘‹ƒ{tlc]XQNKHGFEDEGHJMOSW[^`ehkoqsvyz}€ƒ†ˆ‰‹Ž‘“—š›š›š›ž¡¥¦¥£ ž›—–••’‘Œ‰†…ƒ|{zyvutqoqponljhgghgge`YROMQY_elssmid__ejifdfc_XUizz}‹ž”}z}{wv|…Šš­»ÊÕÒÙîðãßÛÌ¿·«ž£¬­¶½°£¬³ Š‹„ljwufWL:&"!1LY`ebXPJ?9@KNQWV[mx|‰ ª¦¬±²½Áº¶¹´¨£¡  ”‹ŠŽ•”‘‘“——‘”•Š‚ƒƒ|rle^ZTRQRPLLF?CGQ\ahvzww|}{‰‰‰Œ†}}xwxux†‰–¤§©°²­«¨¢›šš˜˜•”–’“”“•š›œœ—ŽŠ†~|{z€|}‚‹‹‚{rfYUSOQOHC?;9;=AHLORSRU[[`hkhhklox}„‹“™ §«®²¸»ÁÆÇÇÊÈÈÇÈÊÍÐÎËü¶´±ª¦£˜‹ƒysqmkmlf`WMC942/+,1327=?DJQW\__adhouux‚†‡‡‹Ž‰ˆŠŒ–ššœ¡£¦¬¯¯­«§¢ š”މ„ƒ}ywrnomjlnnonllmlljga^]`fmsv{}|~~||~€~~€~~€‚‰Ž”–™›žžœ™—••”“’’“‘Ž‘ŽŽŠ†€{wmecdbbc\TQMMOTZahnruwwvuw{€†Ž“”•”’‘‘’““’‘‘ŽŽŒ‰ŒŽ“›  ¡¡¡¥§§¨©«¬­¬¤š“‹…€†‹Ž‹…}ulgeb`\WOEA=97335:>ACCGMTZ_fmrz€€€~~~{z|€ƒˆ’––—œ¡¥«±´·»½¼»º¶´²¬¦Ÿ™’ŽŠ…ztnjgdcbba__]__^accdedcdedeijjkkjjmpu|€ƒ‡‰‹“•™™šžŸŸžœ›œŸžŸ Ÿ  ¡ž›™•’Šˆ…‚|zvttstvurpojhea_\ZVUTTUXZ[_bcfghjoqruvutvz|Š’š¢§ª­®­®­­­ª§¢žš”’’Œ‹Š‰‰…zuqmkhhjjhgf`\ZXZ[\]_^]]YUWZ]ainpuxz}€‚„…„‡ŒŽ“•’‘”–™œ  ž¡¤§¬±²¯«¦ž–’‹†‚€|wvrmkjebcdcehfccda`bb`_acgjloqomklsuty}ƒ‰ŠŠŒ‡‰’’•—ž­ªª°¥¡¥›†{|}ƒˆˆ†”’—šž–‘•”‹‰‹}x€}w}‹Š„‡…xqmj]VS?78258APQ\ddijmninpr~€‡‹“Ÿ›ž¦©¦£¢’ˆ…|wvvrs€}||}‚…—˜šž §¬ªª©©©¤¢ŸžŸ™•ƒzmc[WYWSWUPOLJIKJFA>>>@EMXfnz†™ ­³µ´²°®ª¦¢ ¤¥¨««°²³¸½¾¼·³¬¥œˆ{vsrqooljid\UNHB=7200.148BFMUZbgkrx~‚†‹’”›£¨¯²µ¶¸º¹¸µ´²®§¡¢™œ›œœœ››˜–’Œ‡„}wspjc\WQMKDB>;96679:>ADFILOQTZ[[`ehouwwwyxy~‚ƒ…‡‰ŒŽ‘”˜Ÿ¦¬´¼ÁÅÊÎÏÍËȺ²ª¤Ÿ›–‘†~ywtrqmihe]VSOKLRXY_egjqvtsspnopprvy{}~‡Œ“––•”Š…„…‚ƒ„…„…„ƒ‚‚€‚~zywtronouy|ƒ†‰Ž’“•”’‹Š‰Š‹ˆ„{xtnf`[WTRQRSY\^cfjlnprw{~~}{~„ˆ‹’“•˜š›ž¡¢¢£¡žœ››—“‹†…„€}|xsqnic`[URRNMMNNQVY]bfhmqsv{€„…ˆˆ‡Œ“•™›œ £¡ ŸžŸ¤¨§§¥££¢Ÿ¡ Ÿ¢š’ˆ}}‚‰‘–˜œ”‘Œ…ri[H<659GW[bmov|srwsy~~€€ƒ|{|z|ƒ‡ŒŽ’…†}ssmh`UPJ=59?J[n‡ˆ††‡ŠŒˆ‡‡ƒ†Ž‘›¦­¸ÀÌÓÏÑÐÊÉÇÀ·«Ÿ“‰††„}~}|~yrne\TLIEDHMSRPPMMRTSTSQRMIIQ^l{‡Ž‘‘‰†…‚}yzwx‚‹˜žŸžŸ ž›”Œˆƒ~„ˆ”ž¤©¬­¬­°¯¨¡–Œ…{xtrwy}„†ˆ‹ŽŽ‡€zqg`^[YZ[[_cgjrz€†‹Š…€}||‚‚ƒ„‚„„ƒƒ††€|ztpqrpruttvyzz}~}}z|€‚„…‡Š‰ˆŒŒ“ŒŒ‡ƒƒ‚‚„„…ƒ|ussorwuttoigeb_]_^aghjnsz€†ŒŽŠ…ƒ}zywvtwz}…‰’—šžŸš–Ž…{tnihglorw{‡Ž“•——”ŽŠ‡…„ƒƒ„‡ŠŽ’”•˜šš›š˜˜™˜™˜–”““”“•˜—˜—“އƒ}wrmigdba]\ZWWVUVWURPOLIGCEHJOSTUWY\^_behlpw}ƒ‰”–™Ÿ¢¢¨©©¯³³³³±®¬ª¥¢£¥¥£¡ŸžŸŸ Ÿš–’ŽŽŒŠ‰†‚~{wwvwwurolhgec`]YVWZ[Z[^_adgjmrx|€~~…‡‹ŒŒ‘’‘’‘Šˆ‡†‰ŒŽ“•˜œžš—”Š„}wsnkjhffcbbcdcdcehijjmpqtxy}~‚…‰ŒŒ‹Šˆ‰ˆ‡xurqw}‚ˆ˜¡§«­¯°¯©¥¢ š™”ˆ„……†ˆ‡†…€xrnga^\WWZWVY\[\^]\\`dgknprqnf^XSSTV[eox‚ŠŽŽ”˜™œ £¥©«­°±´¹¼¼º¸µ°¬§¢˜•‘‰„€{tnllkljhgedb`]ZZ\]_dhhhmpopopqrtvx{~‚ƒ„…‡ˆ‡ˆ‰‰‡†‡ˆ‰‰†‚~~€‚†ˆ‡ˆ‰Š‹‹’““‘’‘’“”–šš˜•‘Œ‡ƒ{tpje`[YXWXY[[\]^]^]\ZZ\ZZYXYZZ\`dhlv~„‰‹ŒŒ‹Ž“˜œ¡¤§¬¯³µ¶¶´µ·¹»¼½»¶±«¤Ÿœ˜“Œ…xsld^XVUSQPQUVWUQTY\___`aaccddbddabcchov~…‘˜œ¢¥ª¯³¸¶¸ºº»º¹µ°«¦¡š—•Žˆ‚}zxz}€„ˆ‰‡„|wusrqojcZUOJKJIIKNSZ^adehlqux{}||~~‚„…†ˆˆ‰‹‹‘“•—˜šœŸžŸ¡ ¡£©­¬¬­­ª¥•Œ…€}yxupidedhkifb^]ZZ`b`^ZVX^cdjmiljggc`bbejpu{€„ˆ€}tqxxzz{}z||x‡‘”¢´¿ÉØæìöÿùðçÝн¨—Œƒ…‹‹†ƒ~q`N?5.%'/58>BBC>?=;KTYekjlpohbabht~‡Ž™ž¡¡¢«°®¨¥™¡¢¤®³¼ÈËÌÑÏÈÆ¾°§œ”•™•‹€rfa]WSLFC:31(!!$(1:CIJLKJIIMU^ju‚–™ ©±·¹·¹»¾À¿À¾»½½¹¸¸¶¶¹»¿ÅÇÅÅÁ¹·±«¦œ‘…xpi`ZVQIB<1'&.15BEJPV\bgmquxz}„Š“˜š›ž ¡£¨¬°³¶¸¹¸¹¸¹¹µ±­¨£ žœœš–’މ…~zwsolhc``__aa`adefhhffec`abcfikosw|ƒ‰”𠣤¥¥¦¥¤¤¢¡Ÿœœš—”‹‡‚~|xtsrrrtsrsrrrrqsuvuvvsrsrsuvwz|||~€‚…‹Ž’“””–—™™˜˜——••”‘‰†ƒzxtpnkhgfeeeffhjjklmkjjfca^[YWWWXXWXWVUVWUTVWY\`cdhmpuz†Œ‘–™œž¡£¨¬¯³¶·¶¶µ´µ·¶¶·¶µ³¯«¨¤¡Ÿ›˜“Š„zvsrrstsrpkhebdfkoqsutqlihhikmoopnllmosw~ƒ‡Œ’•”’‘’”–™œ ¤¤¥¥¤¤¢¤¥¨ª©§¡š–“ކ~}}{zwtqomjjjjkmlic^ZVU\a`dgeglortqnnry~‚‡‹‹ŒŒŠ‡yrrsuyzwohe`ZVTNA<<;=BGMNKMT[blw‚‰‘›ž››œ˜•“”˜™š¡¨¬­±¸¿ÂÁÂÀ¹²°¬¦¤¥¢›••”“’Š„„‚}}zvx{|††ˆˆ†„ƒ„…ƒ~}|{|~}{xvvuvuqkd_\[ZYXXTONMLLMMMKKJIKOSW^flqv|‚…‡‘’”𡢤¨ª¬±·º¼¿ÄÉÎÑÒÎÇ¿¹²®«©§¥¡•‰€zupnmkid]YWUSQOQSUXYXUNJHHIIOX\\^_bdkt|„†ˆŠŠˆ†ˆŽ‘Œ‹Š‰ˆ…‚€}yusqruy|€ƒ‚€…ˆŒŒŠ†~‚…‡‰ŽŠŠ‹•  ¢¦¨¨¥ ›˜•’‘’‘Œ‰‡†„„…„ƒ‚ƒƒ„……‡ˆ‡ˆ‡ˆˆŠŠ‰‡„ƒ„†ˆŠŠŠ‹ˆƒ~vkghfaYPIDB@@ADIOUXZ`belsx{}~|xtv~€‚‡ŠŒ”¡£¤¦§¨§¡š•‘Љ‰‡†…ˆ‹‰‰ŠŠ‰†zxwxvsstwyz…‡„}}ytoea[SQNQUXhqw†…|…‹˜ŸŸŸ™“‘ŽŒ‡…‡‰‡…ˆ‡€wghljox||ˆ‹‡”–•’’ŒŒ†vpmmrutwxuyyqpmgaWU\dlqrmmpqy„Œ”š›’’’’”–‘™˜•š–”™™ž«²°²¬ž—‘Ї…„~{{„ŠŒŒ…€yswuqk`RF@<@IPRTQPUWZ\\XOQQPUWX[cr€Ÿ©¯³¶¸¸¸´­¨Ÿ›œœ£¬¯­ª¦¥¦¦¥¢šŒ„~{wrh[NDABDEEFHPW^dda`ado}Š“˜šœž¡¥¥£ ›•—𣤧§¦¬µ·¶·²ª¥£Ÿœ•Ž‚uk^YVUYYY\^cfe`\\WUSPOLKJJMT]dgijnqw‡Ž‘“—œ ££Ÿ£ ¢¦ª«ª§¡—•—”‹…~xtnic]YZ[[`bcachmsy}€}z|„•™™œ £¦©ª¨¦¢œ™•Žˆ…ywxz}|yxwvwvrmhb`adhkppqsspsrlgcdgghijighkkmpqpsuyˆŽ’—˜›¢ª°°¯¬¨¥¦¦§§¥¤£¡ ¡•†znhdbdaacfhiklkklnsvwvsqrv}†˜œž ¦¬±µ´±«£œ˜–•“‹ˆ…‚~{xtnhb\YSMGCA@AAA?;6667;?@?@BFLSZ`fls|ƒŠ“œ ¤¨¬°¶½¿ÁÄÆÈËÏÑÔÕÓÓÖÕÓÎÈÀ¹²ª¥¢œ•އ‚€|zwslihfec]VRLFEDCFHILQUY[^`bbcefghjnsz‚‰“˜› £¤¡—‘Œ‰ˆŠŠ‰Š‰‰Žˆ€yrlihijikoqpqsqqnfcddfikjnux|‚…„ƒ„†‰“”•˜š¡§«®­¥—ˆ€{xrmklknqrtvwwy{|{yy~†Ž“™Ÿ ¡¤¦¤¢Ÿ—‘Ž‹…}wrmjhjmkigb^^_^cgfeghkpsxxz|}€„„‚„ƒ~}ytpnjhkqu{€„†ŠŽ—›œœ›šœžŸžŸ¡¡¡¤§¨©¨¦¤¢¡Ÿš—“މˆ…zuojda\UOJD@?;9;=>DIMSX\_cehkorstwy|ƒ‹’—šœŸ¡£§©©¨¤ œ™™™˜™˜——–•’Ž‹ˆ‚~}{vqnmigeb\ZYZ^aehjnsy€€~wxzz}‚‚€}~‚ˆ”•‘Œ‰‰Šˆ…‚ysu{z{†–˜–—˜˜›¡£¢¤¡›˜™›ž¡¡›•’ЉŒ‰„|sme]Z[_cis}€|ysmhaYUSMOYadlw~†‰Š‹‡‡…zof^UQV_gsƒ•›£¦§¦¤¢ž˜”–™ššœ¡¢¡¢ ™Ž„€|uqog_]]\\`dipspmg]VUSRW\^`fpw}„ŠŒ‰‚ƒ„ƒ„ˆŠŠŒŽŽ—œœš˜–—˜—˜–ŒŠ††ŠŒŽˆ„ƒ‚|yshb]TLKGFIMSX_emtvyƒƒ‚€}ywwxy}‚ˆ—¢«²·»¾¾»·²«§¤ ¡¢£¦¦¥¢Ÿœ˜’‹ƒ{tlhda]\\[[\\ZXWWVWXYXXZ[^bfkoruy{{}}zwtqomnmoooprtuyzz||{{||zyzz|‚„‡ˆ‡ˆŒŽŽŒŒŒ‘”™ž¢§­±²±±¬§¥¢š˜”‘“•–—–”Œˆƒ~xsnkigeeebaa`^\]_`_`_`accbbbcejnnppqt{„‰Ž”—””–“Œ‡‚}{xzƒ‡Ž‘‘‘މ…‚zvsmfbbbekpsw|€ƒ‡‰‰ˆˆ‹’˜ž¤¨«¬¯²¶¸¼½¼º¸µ´´¯©§¥££ ›”Š€vj_YRJC?;3,("%*1>FINPORX`fp}‰›¥¬³º¾¿ÃÄÄÇÌÏÎÏÓÒÎÌÇÀº¶±­¨¤žš–‡‚€|xwtstqmfcb\X[bjpuxy{yxxyyspkfgktޙ𗗓ދ‹Š†‡ˆ‡†ƒ{vrssrv|‚†ˆ‚xnbYQHA@EKS\`eikhe^]ab`\WQMMSZalz…œ§­°µ¶´´³¶»»ÁÇÌÓÕØÚÕËü²ª£œ›™“Ž‹ŒŒŒŽ–•’’އ€}xrolklqvvwvnfa[X\dhjmljjkiikjged]RME93/+&#!!&*2=GPYbjt~‡‘œ¦°¹¿ÄÊÏÔÚàäèëíëçãÝÔÍÆ½µ¯§£ž—‘‹„zqje``b`^ZSOIEDABCAACDEFHLNQX]`fjlpswy|~}}…ŠŽ”—𠥫°²´µ´µ¶·¸»¿ÂÄÅÆÂ½¸±§Ÿ–ˆ~ztpmf`[WSOMKKIHGHFGLS[bgotzƒ‰‹‹‰„}wtrpnmhaZTPIGDBAEIMVaku~‹˜¥²ÀÊÑ×ÛàßÜÚØÔÒÒÎËÇý³¨ –ˆ…|ri`XPKJJMNPTWZ^a`^^]]][\Z[[WSPNMMOQSX[]_cfkr|ƒ‹”¥ª°³¹½ÂÅÆÅÆÊÍÐÎÌÈ¿º´®ª§¦¢žš“Œ†voibZTQJGHE@=<9>FNV^dghlpsyƒ…‡…‚€~yrpqnoqruy…˜œœ™œ¡¦¨©§£ ›•ކwsruwvrmf_XRNHGDCCEPWZ_bjmr{~ƒ†‰—Ÿ ŸœšŸ¡¥§¨©«­ªªª¥ž˜”ŽˆŠ”š¡§­°±¯ª¦£¢ Ÿž˜“‹€xqomhb^ZWUTQKIGDB@=>CKSWYZY[]^`_]YVXWWZ]^bhmt|‚…Œ‘•›¢§¨¨¦¥¥§¨©ªª«¬°¯°²¯¬¨§¦¤ žš—“““ŽŽ‹ŽŠƒ~tkaZSPMIGIIIIIKNU`gpv†„……‡Š‰‰‰ƒ€€ƒ…|{zz{{|||~‚†‰’•—žšž’އƒ„†ƒ‡yx|x{…Œzyofe^XXUZebisfglt€Ž›™¤¶³À¿±·¶¯°´¬¥¤‡~{‚‡Š}|xgY]]Zgs€’œ¤¦¥¢‹‚‚Š|wm[XXPKB>EJHJLLFBFF?>JYZd|‹ŒŒŠ…ˆ— ¦··±«›šŸ­¯°·°¨¦›—ދނtjeaYPNQWY`lyƒ‡”‡‡Ž‘””’‘‘“•šŸ£ ™’ƒ€€ƒƒ}vlebcmsy„†‡‡|qebc^_a`cfhggjhgd\UNKKHJOQY^fs{†•Ÿ¨¬²¹¹»ÀÃĽ¸²®¬©«§¢¤ •‘ˆ~uke_\`ehnrx{‚…ˆ‰…ƒ€vph`\VRPU_ahnpstwyx{|}„‰˜Ÿ¦°·½¿ÁÁ¾º²¨ –…}xrmlifd_YVSQOJHEB??@BDFJMPVZ^chou|‚‡Œ“™ž£¦«±´µ¶´´µµ·¸¸¶µ³±®«¢›˜’Œ‰†ƒ~{yvrnifeccdefikjkjihfgiklptuuwz|~€€€ƒ‚ƒ‚„‡ˆŒ’•––”’‘‘’”“‘‹†{vspljhc_\XVSTSSUWZ^bfkpv{€†Œ’—› ¤§©©ªª««ª©ª¨¤ ›–“‘‰…{wrpmmlkkihgea\YURSTVZ`ejnprrqonmmnptw{€…‰Ž‘–›ž¢¤£¡£¡Ÿž›—”’‘ŽŽŠ‰‡…‚‚}|{{|}~}}zuttrquwuvxwuvvuvuporstvyyutvvuuvtqruvvz€€‚‰‹‹Œ‘’“•—•’“‘ŽŽ‹‡‚yuqnifhilpv|ƒˆ’˜ž£©®±°±¬¤˜“Œˆ…€ztpjd`ZRNJGDA?<<@@AFHJRZ_dlqrwƒ‰“—¡¥«°²²³±®«ª¨¤¢ž›˜˜•“”“ŽŒ†††||xpmmhb`_YWYYWZ[Z\^\[]^]afikqwy~†‹ŒŽŽ‘“—œŸ¢¥¨ª¬®¯±±¯«¥¢™˜—••–—–•””ˆ†‚{sle]UQPNPSTTUUTUTSSTUTX\^bhnsy€‚„‡ŠŠ‹’‘–œ›œ ¡Ÿž›–Š…~|{zy{{{~‚€~}|{xwxyy|€‚…ˆŠŽ’““”‘ŽŠ‡ƒ{wurqponnliffedcdedehknpsuv{€„†ŠŽ“–™Ÿ£¨¯µ¸¸¼¼º»¹¶±¯®§¢˜“‘‹‡{wqid]VQONNPTUWYYZYVTROMLMKKNQSW\achmoruvwz|~}€‚„‰“˜ ¥¬¯³º¼»º¼½¹¹º¸´³¯«©©¦¢ š“ˆyungb]VRPNKIIGDDCBAACGLOSW[_fmrw|€ƒˆ”˜œž¡¤¥¤¦§¤¢¡ž››œš›ž›š™•І}zytprrpquuwz{ywuroomjihgfjmnruwvxzxyxwuttrruyz}ƒ‡Š–™œ £¤¨©¨¨©¨§¨§¥£ Ÿ›˜—”’“‘‰†}{xtsqomnljkhddc`]\ZURSRQUZ\`cca^[XXY\__bfinpostw€„…ˆŠ‰‰‰‡††„…†…„ƒ„Š‘—œ ª´½ÄÉÌÉÆÂ¹³­§¥¢ £§®¯©¢š”‘ˆ|tiZMB:3*'##').4:AFOX^emoorw~…Œ”Ÿ¬¹ÇÒÚÝÜÖÌû´©Ÿš—•“”š›™˜•‘ˆ„}pke^[YWQKKNPQTVX[\ZZXTSTZ`bhpptxy{}}~~}|z{~€…ˆ‹‘”—¢¥§¨¥Ÿ—yphb_]bhoz„Ž—Ÿ¦¬°±¯ª¦¢œ™˜–•–›¡¦­³´³­¤š‹|obWNG@>?ACEEDEEFGJNPRUTRQQPPQSTX`hpzƒ‹”œ¥¯¸ÀÆÊÏÕÙÝàãæææçäãàÝØÑʹ°¨¢™ˆ~rg^ULFB=7531479=ADEILNSX\_adedfhjlotvwz}~ƒ„ƒƒ}{||{~~}}|{ywvtsutstutrpnkgfeddgijlptuy~„‡‡‰“˜œž£§ª­±µ¹º¾¿¼¹¶³­«©¤Ÿœ›—–••“‘‘Œ‰ˆ‚}|wromkiijlpv{||}yuojd]XQJEB?>=@AACGJMRUVY^aelrx}†’˜Ÿ¥¨­±³±±°¯¬©§£¡Ÿ›››œŸ¢¥¨­³¶º¾¿¼»¸¶³±®«©¦£Ÿ›—’Œ‡{tld]UNIC>;9779;<=>=>=:866558<=@FILQWZ^elryƒ‰’˜Ÿ¦«¯²¶·¸·¹º¹·´¯©¦¢žš•Їƒ|yvttsssuw|ˆ”–š›œ›–’‹ˆ„‚€‚‚€{xuolheecacefijntwy}€ƒ…ˆ‰Š‹Š‹Šˆ‡…‚€~}}~€‚ƒƒ‚€}ywsokgd`^]]`beiknrtwzz}€ƒ†‰‘“”—˜˜œžŸ¡¢¥§¨«¬«¬««ªª«©¨¦¦§§©ª««ª¨¦ ›•އ~tj_UKE>74/-.--..0//00148DOT`pzŠœ«¸¿ÁÅÁ»¶´µµ´²²­¥ žŸ¡¤££¦¤¤£ Ÿž›•”‘ˆƒ€yuvspnkotx{}}z|yvspnkijkjjoqx{{{slgb]YYYVWVTRRUYafjmnpqtu{ƒ‡‰Ž’–ž¥¨©«§¢¡žžœžœ˜“‘Žˆ†‡ˆŠŽŒŠˆ…~{yxvsuwvwyxy||}}|~~‚€}||{{zxvx|‚‡‹‹Š‡…€|{ywsnmlkmqqstuxwxzzyxwvvyz}‚†Œ’–™œ›—“Œ„|vqnkhiloqrusqnjhhiilrsw~ƒ‡–ž¤©«¬«¬¬ªª«©©¨¤¡ š™˜’†yslfb]YTRRQRSUX[^afloqsuwzyz|}€‚†‰ŒŒŒ‹ˆ…ƒ‚‚€~{{zwusqqsvwxyz|}~„ˆŒ‘•šž¡¤¦©¨©¨ª©§¦¥¥£Ÿš—“‡ztoje_WQNKIGHILNQTUTUVUVVWY\`ejnquxyxwwvwvxy{ƒ‡‹“—œ ¢£¢¡ž›—’ŽŒ‰ˆ‰‹Ž’“”“Œ‡ƒysoljlkjkoux{‚‚ƒ„†‰Š‹‹Š‰‡…„ƒƒƒ†Š’”—›š›žžŸ žš–’ŽŒŒ‹ŠŒŠ…|wpmida_]\]adhnsuy€‚…‰“—šž ¢¥¨©«­®±µ¸µ´²¯©£–ކ}vpjd^ZUPMLJIIHFEFEDDEFGIORX]cilpswyy{|}||}|{{zyyxwxz{{}{xwwutvxxx|}|}|yxxutsponpnnpppstuy}~~‚„ƒ…‰ŒŽ“––™žŸŸžœ›˜”’“’ދЉˆ„€zusqmkkiffgedefdcedegikpux|„†Š“˜¡¦¬±¶¼ÀÂÄÅÅÄÂÁ¿¼º¸´°¬§ š”މ…ytnhc_[VSRSRUX[_cglrw|†Š““’‰†‚}}„‡ˆŒ’“‘މ~tkc]WVYYZ_dlwƒŒ’“Œ„ƒ|z|…ƒŠ‘”››˜”މ€tme^YTVXWWY`cfnrtyy|ƒ„†ˆŠ‹ˆ†‰ˆ‹ŽŒ‰‡ƒ}zuojfc_^\\`cgklpty}€‚€}zvqkd__abcgjow~ƒˆ“™œ››™˜—”‘ŒŽ’–™žž›—”ˆ{vsoooouz}…‰‹Š‰‰†ƒ~~„‰Ž‰…‚}{yxtrsrtuvvstspolhd`^\[Z[^cglqu{}‚€ƒ…†‹‘”˜œ  ŸŸ›•‰„zvttv{€‰˜Ÿ¡¢¡¡™•’Š…ƒ€ƒ„…„~}zvromjgedca`chkpv{€…‰Ž”—›Ÿž  žš˜”ˆƒ€|yusqrpkhfda_[YXYX[`ekptw{z{|~~€~zvuvx{„‹Œ’˜›Ÿ¢£¢¤¥¤¤£ žžœ—’‘““‘Œ‡xqlhdfinnnnjjjc_cipvx|‚……„ƒypifgisz~‰–£¦¥ª²·º¹´°¦™Š~usoiaZWWZ`cfga]^a]\`bdks{„‹’Ÿª°¶½À½·´®§žšššžžž¡•„~yvrlf^WOE?>=>CKRUY[YUNE;4./7BO]lsx|„…‡ˆˆ…~{yˆ‘˜ž¤©¬®±²¯ª¤›‘Š…ƒ„ƒ…Š‘–›¡¢¦«¬­¬¤›‘‰‡†…„‡…}{wvsrvtnic`bbfimt|ƒŠ”𛡥£¢™—–•’‹‡„}xwvwwtooje`[XVX[_babbccfijoruwuvx{~€ƒ††‡ˆ‰Š‰ŠŠ‹ŠŽŒ‰‡…‚‚‚„ˆŽŒŒ‹ŠŒŽ”˜˜šœœžž™“Œ†€}wrpjed`ZXVSSVXUUWTSTQPSVUUXWX^bbbc^YXYX[aekrwvy€„‹–œŸ§®°³¹»¾ÆÎÒÔØ×ÕÙÜØ×ÙÕÒÑ͹²§œ™“Š……}|yuvwrnme\\\WRQLEEE?97416965987>CEKZehntw}ˆŽ•˜˜œ££¢¨©¨«­¨¢¢ ›œœ—–œžœ ¡›˜™˜“”‘‰ˆˆ‚|~|||y}€~€‚€}yz{xvwvrstpopnklmkgge`^]WVZ[Z\^[^iqw…„‚„‚…‘™¡®´´¶¶³±´¸¶¶¸µ¬§ ˜—š•‘’ˆ††~usoge`XUVVUWVSSTSQTVRTYVSUUU[`fmv€„‰’”“˜Ÿ¢¥«¬«®¯¬­±³´³®§£•ŽŒˆ€€~}€ƒ‚{tlb[WPHDA<8:98;?@ACB?ACGO\en{„‡Œ’“”›¢¦ª­©¥¨¨§«¯­°¸ÀÅÌÍÉÇÆÅÆÈÇÆÇÇÄÄ»¯¢˜’‘•˜•ˆ~siaYWVPONE=:82+)$"'++(!*5?IQV[adhq{‹—›žŸžž£¯¿ÍÕØÝßÝÜÙÔÎżµ°°¶ÀÆÉÌËǾ·°¢œ˜Žƒxk^VSTSOJGHHDBDGD>6,%&,16HOU]bfnsy„‡ˆˆŠ’𢩱¶½ÄÇÌÐÒÒÏÌÊÈÆÃÂÁ¿º¶²¯¯¯«¥ž“‰tkcZRHA>;<=?ABA;75346;?EKOV\aflqw~…‰Œ’—™›š™—––™œ £¤¥§¨©ªª¬­®®­¬­¬­°°­ªª¦ ›—‹†~xsnlkkihfb`bcfijkjjkjijkjlooqsstttrqnljhea_]\[[]^]ZYYWXWWYZ\ahnu~‡—Ÿ¤¨«¬®±³¶¹¼ÀÃÄÆÈÇÆÄÀ½¶­¤šˆ€wph_YTOMJFDCBCDFKQY`fksy}ƒˆŠŠ‹Œ“••–—™œŸ¡£¤¦¤¥¦¦¥£¢žœš—•Œ‡{uojea^ZUPKKJKKJIKKMOPRUZ]chknqvyz}€ƒ†ŠŽ’’”•—™ £¥§©«¬­®¯°²±°±°­ª©¨§¥¤¢ žš”Œ†|xtpkfa_\XVTSRQRQRPNMNONOPQSVWXWVUTSSUVX]`dilnrw{†‹•—š›œž ¢£¥¨«­°³·¹½¿¿ÁÁÂÂÀÁÀ¿¾½º·¶³®ª¦ ›“Š€xphaZTNID@>;;:9:;<=AFKQW_gpx~ƒˆŠŒ’”•˜™™™›œœ›œœ›œ›œœœ›š˜–•‘Žˆ…€xph`XSNJFDBCGHHHGHKPU[`fjnpsuw{~‚Š‘—ŸŸ  Ÿžœ˜•Œˆ„€‚……„ƒ„‚€€€zwsppqqsrsuttw{€„„‚}yyxuqmf]WX]cfjmnlnu|„‹’—šŸ¢£¤§¬³º¿ÂÇÉÇÊÎÎÏÍËǾ¶°©¦¥¤ š–‰„‚‚~ytlhklmpsrpnhca_`ceb_]\ZXYY[XUQMMLLLMNMNRVX]chlmorv{€†–œ¢¤£¡–Œƒ}zwsopu{„•𡤥¦¤¢¡ ¡ žŸŸ ˜–‘Ї†„€}uj`VOIC>:853434227<@HOU[]\ZYXYXX]djs|„˜¡©°¶º¾À¿ÀÃÅÇËÎÎÍÐÒÔÖØØÖÓÑÐÍȼ´ªž“‰vme`[WTQRTVWXYZ[^bcdedgjnruz€‡”—™š™——•““‘‹‰ˆ‡…ƒztoidb^[YUQNKIHIJKLPTVX[ZZZYWWYZ[_bglsy~†‹‘˜ ¥©¬®®°±°³·º»¿ÄÇÈÌÎÍÌÍÉÆÄ¿¹³«¢™‘ˆ‚~zvtstsrqomjgeb^\XTQNKHFEDDCCCDEDCA??>?>@CEGKPTY_bdhjkmqvy~‚…ŠŽ“–šŸ¥«°³·¹»ÀÃÆÉÎÒÔÕÔÒÐÐÎÉžº¹º·µ²«¥ œ”‰„€{tnjfda_\XSNJEB@??@DIKLNOPSV[^cfghimpprssv{ƒŠŒŽ‘‘”–š›š—–•––”’Œˆƒ~zwvvxwusokhebcefggfc`]\^biqz‚Š—› £¦¦¨©ª««ª©«¬¬­¬«ª¨¦¤¡žš—“†ƒ}{{ywusqnmkihe]VQJD@=<;=><;<;;<>@BGKQX^cgimpty{}„Œ’œ¤©«­®®±°±µ¶¸¿ÃÇËÌÍÎËÉÌÌÌÎÎËÆÀ¹²ª£™‘ˆ~ytmgc\RKFB;41./27:=@>==>>CJPTVX[]]^afjotz„†ŠŠˆˆŠŠ‹‘–›¢§ª­®­¯²³µ·¸¹»¹··µ³±®ª¥¢š—’ˆ€wphdb_^[WTQPONOPSRQONORW]elt}ƒ‡Œ‘’“””“””•˜šœ ¡¡¡ žŸš••”“’‘ŒŠ‹‹Œ‹ˆ…wpkhda]XQMIFE?842359?DGKPTY]gpw~„‹‘’”•—ž«·¿ÅÇĽµ²°¬¨¤ œ˜’ŒŒ‰‚ƒ‡Š‹‘•“‰ƒ}xywrqrpmlmlmlighijkligkorturoqtz„„zwyŒ’˜œŸ£¦§¨ª¨£š‘І„…†‡ŠŒŒˆ†…„…‡†ƒzurruy„‡‰ˆ„†ˆŠ‰‰†‚}yxwvwustutuwvvwyzwtplkjjhknmlkkjmruzyvsqqpqrrtuvwy|€ƒ‡ŠŽ‘“–•””•–••–••––•“‘Œˆ„~xsojda[VSNIECDDEFHJMMMPSUZbinqvy{~†Š”—œ¢§«¯´··¸··ºº¸·³±°±±­¬­¬¬ª¦¡Ÿ ›“Œ„ysoiie^[YZ]bfmrtx„‰Š‡…‡ˆ„}…‰ŒŽŽŒŒ”–—”Œ…}y{}‚†ˆ‹ŽŒŠ„|{~€}zungdcdimrtrrqmkligjmptvututttuxxz|z|}xx|‚„……†…†…‡ŒŽŒ‰ƒwlcYTQMJIJLLORUY^ceggedffegjot{„›¦°¶¹¸´±®­ª¨¢š–”“’‹‡‚ztojhiknotxxxwvv}ˆ’œ¡ œœžœš•‘Ž’‘’“““𡤬·ÃÎÒÒÐÊÁµ¨£žœš˜¡Ÿš˜ŠzvpkeTE9+#""'.488:AC=;;=?BDJPRVZanzŠ›§¨©§¢££¦¦¨¬­³²ª§  ¢¢œ•Œ…}yvsvz~€~||ƒ|ytpme_[TRTW[\]\]\WUVY[]`aaciox€Š“œ¦ª®±¯¯­®¯©¨§ ˜‘‹†ƒ‚|wvsqsvvurlgd_XTRRSUW\ep|…Œ’–œŸ ¡¢¡žžœœœž £¦¨ª¬¬¨¦¤Ÿš˜•‹ˆ††ŠŽŒ‹‹Š‹ŠŒŠ†|xpjgc`^]ZXZ^bfjmmptvxz|}~‚ƒƒ…ƒ„„…ƒ}yvsrpnnnlmprtwyyxy}€‚„†ˆ‹ŠŠ‰‰ŠŠŒ‹ˆ…„„‚ƒ„‚„ƒ„…†……†„„†‡‡ˆˆ‡†„…ˆŠŠŠ…{wrpnjfc^YWXWWXWUUVWZ\`bflsx|‚ˆŒŽ’•–—™š™šœ›¡££¢¡ ¡£¢Ÿš•‘ŽŒŒ‹Š‡…„‚€|zzuokhc`_^ZZZY[`dcbaa`bcdfjlrvx}‚‡Š““—žŸŸŸ ž™˜“’ŒŠˆ…‚€|ytqprtvvvz}†‰Ž‘”™¢£¥ªª§¥£ žœ˜–“‹†wqjd`]XUQLEB?<;?A@DIMSZ_beilqw}†’©±¹ÀÅÈÊËÈÇÆÆÇÄÀ½¹²­¦›–’‹‡‚}wrjea\XSPNKJHEBA@@CADGHJNSY]bhmquy~…Œ“™Ÿ¦«°´¹»¼¿ÁÃÅÆÅÃÀ»¶±«¥Ÿ™“‹„~wphaZSNIGFDEFEDFEEDCDGHLQTY]bgmrx‹• ¨°¶¸º¹¸·¶³±¯®­®¬©¥—’ŽŠ†‚{xsnjecbbccehjlmnprtwy|€„‰Œ‘“”—šœŸ£¥§§¦¤¡™”‹…€}{yyz{{zvtpnkgeffghkpw|†‰‹‘“’Š„~wtpkgc_\[YWTPMIEDA??>?>?ADIOV[ajq{„™£¬³¸¿ÂÄÆÃ¾»¸·µ³±®«¦¢›˜–˜–“‘Œ‹ˆ†…†„„†‡ˆˆ‰ˆ‰’‘І€{wrlgb^]^]_diotwxz}~€}{xwutrrtuxyxwxy|~ƒ„‡ŠŒŒŒŠˆ…ƒ‚ƒ‚ƒ…„„„‚€€€‚‚|{zyzyzxusrpoomjheb_]\\[Z[ZZ[\\^_`acfjoty}…‡ˆ‰ˆ‰Š’“’“”•˜š ¡¢¤¤£¢¢¡Ÿ›—’‹‰‡…ƒ‚‚ƒ‚€|ytponooqsvz~„‰•𠥩­°°±±¯«©¥Ÿ›”މ‡„€|xuqnlkjkjihgghhjklnoqsssrsqomjgdb_][ZYXYYZ\^^_acdgjmqtwzzyyuronnopuwz}„„‡‰Œ’•˜š›šš›Ÿ¦«²·º¼¾¼¼»¸µ²®ª¥¡žš”ˆ‚{xtnigijilmnlicZULDFMNKOSMHGHHNVX[cjmuƒ‹”˜¡¯·¼ÂÅÁ¼·³²²²¶»¼¹¶´¶¶µ´±¬¦ š’‰€wroga`_bcgmnookfec_YPJECBCGLOQTZ`hpz„‹“””‘Šˆ‰Œ‘””’…~|yvuwwz€‡‹ŽŠ†ƒ‚€}xtslffd`]\^acehjmsxz{~}zxuqmjhhijpu}„‹”šžŸ››™˜—˜˜›Ÿ¤¦¨«®±°®«¦ š–‘‰Š‹‹‰…ƒ~}zxvtqnjfca_`acdcb`^[ZWU[^adhmpu|€„‰Š†„ƒ‚€€ƒ€}{yy|……ˆŠŒ““‘‘‹Š‰Œ’“••““’‘ŽŽŒŒŠˆ…ztpmkgdc`^\WTSSUW[`hnppnmnosy„‡‰Š‰ˆ†…„‚€~}~}||{z{z{z|‚‡Š“—›œ ¢¦ª¬®­¬©¥¡˜•’Œ‰‰ŠŠŠŒ‹Š†„‚~yurnjea][XWVTVVWY\`dhkptvx{}€‚„…‡‰ŠŒŽ’“‘ŒŽ’““‘‘‹ˆ†‡†‡†…„~{xvsqomlkjihghffilotx{„†ˆ‹ŽŽŒŠˆ‡†…„…ƒ„„ƒ„ƒ„†‡‰Š‰ˆˆ†„ƒ‚‚~}~~}||zyzyyxz|{zywttqnmlkmoprssuwxz{|{|{}€€}{z{}€‚ƒ……†…‡††ˆ‰ˆŠŠŠ‹Œ‹Œ‹‹ŠŠ‰ˆ‡‡ˆ‰ˆ‰‹ŽŽ‹Š‡„‚€}|{{yyxwvuuuvwxyxutsrqqrrstuutsrqrtvwxxyz|~„…†ˆ‰Š‹‹ŒŒŒŽŽŒ‹‹Š‰ˆ‡…ƒ‚€}|zyyz{zzxvtrqponopopppomnpruy{€„†‡ˆ‰Š‹ŠŠˆ††…„ƒ~}~~€ƒ‚ƒ„…„……†ˆ‰Š‹Š‰ˆ†„‚~|{yxwwyxy{}}~€€‚„……†‡†‡†‡ˆ…††‚‚‚€€~|zwustuw{}|}€ƒƒ…………ƒ„„‚€€~}}||}}|~}}€€‚‚ƒ„…†„‚€}|{{zxwxwuvuvwxyyxwxwyzzz{|{|zzyz{|~ƒ„…†‡‡†‡†‡‡‰‹Œ‹Š‰‡……„ƒ„ƒ‚‚‚€~|zzywvuuuuxxyz||{yxyxwvvwxyz}}~ƒ…„‡‰Š‹ŠŠŠ‰ˆ…~|}‚„„„ƒ„ƒ„…†…ƒ‚~~€€€~}}}~}~~|}|}~~~}|}|{{|}}~}~~}~}}|}|}|{{yzyz{}€€€€€€~€€‚‚‚‚ƒ‚ƒ‚ƒƒ‚ƒƒ‚ƒ‚ƒ‚‚€€~~~}}{zzyzzyz{{|{{|}~~€‚‚ƒ„ƒ„ƒ‚ƒ‚‚ƒ‚ƒ‚‚€€€€€€€€€~~~~}}|{|{z{|{|{|{|{|{||{|{|}}~~~€€€‚‚ƒ‚ƒƒ‚‚‚€€€€€~€€€€~~~~~~~~~~~~~~~~€€€€€€~~~€€€€~~~~}~~}~}~}~}~~~~~~~~€€€€€€€€€€€€€€€€€€€€~~lgeneral-1.3.1/lgc-pg/convdata/battle.wav0000664000175000017500000034236012140770460015203 00000000000000RIFFèÄWAVEfmt D¬D¬LIST,INFOINAMbattleIARTMarkus KoschanydataÄ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~€€€€€€~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚€€€€€€€€~~~}}}~~~~~~~~€‚‚‚‚‚‚€€€€€€€€€€€€€~~~~~~€~~~}~~~€€€~~~~~~€€‚‚‚€€€€€€‚‚€~}||||}}~~~~~~}}|||||}}~~€‚‚‚‚‚€€~~~~€‚ƒƒ‚‚€€€€€€€~}}~€€‚‚‚‚€€€€€€€€€‚‚‚€€~~}}|}}~~}}|{zz{{|}~€€€~~}}~~€€€€€€€~~~~~}}||||}}€‚ƒ‚€~}|||}~€€€€‚‚ƒ„…†††…„‚€€€‚‚ƒ„„„ƒ‚€€€€€€€~}||{{|||}}}|}}}~€‚‚‚‚‚‚‚‚‚ƒƒ‚}||||}~‚‚ƒ‚}}}~€€€~|{z{|~€‚ƒƒ€~}|{{{z{{||{{zz|}~ƒ„……„ƒ€€€€€€€€€€ƒ„„ƒƒƒƒ‚}~‚‚ƒ„„„„„„……†ˆŠ‹‹Šˆ‡†„ƒ~}|{{|}}~€‚~~~~‚…‡ˆ‡…„„„ƒƒƒ„…†‡†…„„„……„‚‚|{{|}~€€}|}~€„‹’—š ¢¢¡ Ÿ  ŸžžŸ  Ÿžžžœ–‹|ohgjoy‡“šžžœ–Œ}la^_`]]]__^_`achs‚™–†„€yrkdaaba^]]]]]]]]]]]_`a`_agpz‚…†ˆ‹Œ‰‚xj]]]]`cefgfdb`]]]]aiv‡–œš‘†}upqux{|{yz‰‘’Œ…ˆ—œ ¢¢¡Ÿ›‘tr}Ž›¢¢¢¢¡žš–‘І…‡ˆˆ‡‡„€{vqliks€ŒŠ€ywurqqsvy|€{y{~}ywx{€ˆ–˜˜—”Œ‹•™›œž ¢¢¡ ¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡™˜˜˜—”‘Œ‰…~}}}|{yvspmkjjkkkigeca`__^]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]_abaaa`aabcdefghjkklmnoprtvwyz{{{|}€‚ƒ„…††††††‡ˆŠ‹ŒŒŽŽŽŽŽŽ‘‘‘’“”••–—˜™››œžŸ ¡¡¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¡¢¢¢¢¡ ŸŸžžœœœ›š˜•“““’‘’“””““””•”””–—˜˜˜˜™™™˜—––••“’’’’”•—˜šœžŸžžžžŸ       ¡¡¡     Ÿ™ƒwnjknoooopnkhhklmlllllmoqrsttsrqruyyvqlhghijmoomljhfedeefhoxƒŽ–šœœš–’Œ…|skgfhijnswxtlfddfedb`^]^`beipyƒxqkgca_^]]]]]]]]]]^_``__^_`acccbbcddefeecbaaabbceggffeddcbbaaa`^]]]^`bbccccccb`_^]^`beggfdccdeffdcbbcfiloppnmnnonlkheb`^]]]_`aaaabbbbbcegjov€Œ—žžžŸžœš›Ÿ    ŸŸžœœ™’…uga``_^^___^]^______^]]]_`bcegggjpx~~ztqonmmnnnprtutpligeccdgjmprqnheflu~ˆ–™™™š›œŸ¡¢¢¢¢¢¢¢¡  Ÿ›šœŸ ŸŸŸ Ÿœž¡¢¢¢¢¡ žœœœœ™“Œˆ„€|yxxz|}|zyyyxvqlgc_]]]]]]_bcca_^^_```bcba`_^]]]^`abbba_]]]]]]__`aceghihgfgghjkkklmnpqrqqppoomlkjigdba``__`acdeeeeeeefggeb``beffeeeffggfecaaciouy|‚„……„ƒztpptz€…‰”˜›žš•Œ‹‘’”–šŸ  žš”Žˆ††‰“–›ž¡¡ Ÿ˜’Œ‰ˆ‰‹Œ“•–––˜š››š™™›žžœ›ššššš›š˜–––——–—™›žŸŸœ›ššš™šœžŸŸŸ  ŸœžŸŸœœ›››š››œœœžžœššš››œž ¢¢¡¡¡ ŸžžžžžŸ  Ÿœ››š™™™˜———•“’’’‘’“”•”“’’’“••––˜šš™™™š›œžž›—‘‹‰‹“”•–˜™˜—”Ž“˜™—”’‘ŽŠˆ‰Œ‘–šš˜”Š‡‡‰‹‹ˆ„~wqljiigeca_^_```_^]]]]]]^_`bbbbbbccddcccccddccccccbbbbba_^_`aaaabcccbbabdedccdefedbbbbbbbcefeefhjklkkjiiiknppponlkjjknqtx|„„}zvpieehlr{‡’œ¡¢¡  ¡¡  Ÿš—“‘‘•˜š›œœœ›››™——šž¡¢¢¢ Ÿ  ŸžžŸ   ¡¢¢¢¢¢¢ ŸŸ Ÿžœ››››š›œž›š–’’–¡¡ž™’ˆ~…Šˆ|zyvqkd``dgfb__`abcehjpz†ˆ„ƒƒ|wutrsutoga`aa`__`___`bdffedddddddefffgiigcbccdddefghhhhgfdb`_^^^`acefeeeipw}€€†ŒŒ„ypjgeca^]]]]^_^]_bfhgggffdb___`````__`bfiigddfhijjhecabbccddfhiheb``cgiheb````_____^^__^^_``abcccfksy|ysnifddca_^^_`bgntwvsoje`]]^_aeilllnu}ƒ…€ukdaab`]]^chlnkfdeffdba``bcefggfeeffffeddddeeecbabcdcb_^]^^__^]^]_abcdfgffeefgilmnmnpqoljiihffecachq}ˆ’™žžžœ››œœš˜——˜™››œž ¡¡¡ ŸŸžžŸŸŸŸ ¡¡¡¡¡¡¡¡ žœ›™˜————––—˜˜——˜˜–“‘ŽŠˆ†…‡ˆ†|xvrmjihea``aaaa`aaaaaaaa`__^^_acegfdbbaaabdghigfffeeeeefggfeddefinswy{}‚‡‹‹†}…™œœžŸŸŸŸŸžœœœœŸ ¡¡¡¡¡¡ ŸŸŸŸŸ ŸžžŸ¡¡ žœž  ŸžœœŸ¡¡¡¡¡¡¡   ¡¡¡¡¡¡¡¡¡¡¡¡¡ ŸŸŸŸŸŸŸžžžŸ¡¡¡¡   ¡¡¡¡¡¡¡¡  ŸžžŸ     Ÿžœœž  Ÿžž ¡¡¡¡¡¡ŸžžžŸŸ      ŸžžŸ ¡¡¡¡¡ŸžœœžŸžœŸ¡¡ žš˜—˜™šš›œŸŸŸžœž  ŸžžŸ  Ÿ›™™™™˜—˜›ž Ÿœ™—–™›œœœœž ¡ ŸžžŸŸŸ     ¡¡¡¡¡ ŸŸŸ       ŸŸŸŸŸžœ››žœ—€wtvy}…‘›  œ—”ŽŽŠƒ{ww}„ˆ…}sidcdddeffeeffeefgecbaaaaa`^^^^____`bdeeedca`_^^^^^^`bdglry||{yxwrib^^^^^bddca_^^^`bccba```bcefggfdb```cefeeeefhijklmoqrsrponorx‚|{yxvutsrpmiggilopnkhgghjlmoqqpnljhhhhhhgedcbcehikkkihffffgijkigedegjmnopppqqrsuxz{{zxwwxz|~€€|yvtssstuvwwwusqqstusojgfgjlnnmmmlkhfeeghiiknrtsojd`^^^^^^fp|‡Ž‘“””‘Œ„{snlkjklqw}‚…†ƒ~xrlgcabccb`__`ceedcceffecbcehkmmmmmmmlkjiikkjihggghkpuyzxsnlnquxzyxwx|€‚ƒƒ„†‹‘–šš˜”–›žŸŸŸžžŸ¡¡¡¡¡¡¡¡¡¡¡¡Ÿžž ¡¡¡¡¡ ˜’‰ˆ‡‡††„‚~yuronnnoqrrplhfegjnrttsqpoppqrsuwxxvtpkgefhjklkjiijlmnnlihghiiiijklnqsttsqppqrrqpnljhhiklllllllmnnnmkifddefghhgggffeffgggedcbbbcdedddddeeffeddcbbbdghihfcbcgnu~ƒ„€zutvxxvsrt|‡‘——…{wz‚Œ“–—–”““•™Ÿ  žœš˜——™š›š™šœž ¡¡ žž ¡ Ÿžœ›ššš››œœœ›™˜—˜˜˜˜™šš›œœš™˜——––—˜š›œ›ššš››œœœžžŸžœœœžŸ ŸŸŸ   ¡¡¡¡¡  ¡¡¡¡¡¡¡¡¡¡¡ Ÿ ¡¡¡¡¡¡¡¡¡¡  ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ žš–”•™ž¡¡¡ Ÿ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ŸžžŸŸžš‘…{y{ƒˆ‘‘’“•™žŸŸ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ žžŸ –‹yvtsqmhhnv~€}wuvxwtoiffilljhhikllljihiijjkkkigedddefgggghhggiklllkklnnmkhfeedca^^^^addcbbccccbbbbbcbbbbbceffda_^^`bcddcdegijjijloponmjihhhjkmorux{}}|zxwwvtpmlmmlkkmr{…ŽŒ‰†„‚}umjnx„“’ދЋІ{xz~}yxz‡–˜˜šš™—’‰‡†ˆŠŽŽ‘’“”“’‹‹’—šœ››œ›˜”‘ŽŽŽŽŽŽŽŽŽ‹‰‰ŠŠ‹ŽŽ‘—›žŸž›—•–—˜˜™› ¡ œ™–’Ž‹ˆ…ƒ‚‚…ˆ‰Š‹Ž’“”’‘ŽŽ“—šŸ  ¡¡¡ ž›•Œ€rhfjqz‚††~ƒŽ˜˜’’“’ދЋŒŒ‹‰…}{xsonruvvx|…ˆŠ‰‹‘šœœŸ ¡¡¡¡¡ Ÿœ™˜—–“’–˜™™™™—”’‘’’Œ}ldddccfhfddcdhpwz|{vnhdbbfnw‚€{upjfdeedb`^^_`_`abbbcdccb`^^^_`abcdfhiiggghjjihhhgeeehjkjhhjjigedb`^^^^^^^^^^^^^^^^^^^^^^^^^^`bcb`_`bcccdddeeeca``cgow„ˆ‰Š‹Ž’–™›œœ›œžŸŸŸžœ›››››ššš›žžžžœ˜“Ž“˜œžžœ››œœœš™˜—–—™›››šššššššššš›Ÿ¡¡¡¡    Ÿœœœœœœœ››››œžŸ Ÿžž ¡¡¡Ÿžžžžžœ›™——˜™™˜˜˜š››šššš››š™˜˜™››ššœŸ¡¡¡¡¡¡¡¡¡¡¡Ÿ›™˜™œžŸ™”‘“””•—˜˜—˜šŸžœ›››ššš››šššš˜“““‘’•˜˜‘„sd^^^^^^^^^^^^^^^^^^^ais{{vqoquxxwtplgb^^^^^^^^^^^^^^___^^^^^__^^^^^^^^^^`ba_^^^^^^^^^___`_^^^^^^^^^^^`bcccdefgecaaaa`____^^_`accccdefghgedcb`^^^_acegjmoomlljgddeghgfghjjheb`_`ceeedegknoqu}‡Ž’’”—šš˜˜™››››š›œ™Ž€uu}ˆ’’’’”™žŸžš“‰|}‚ˆ‹ŒŒ•šœ ¡¡¡¡¡¡¡¡¡ Ÿžžž ¡Ÿš“Š…„ˆ‘”˜ ¡¡¡¡¡Ÿœš™˜˜—––˜™š›žŸ¡¡¡¡¡¡¡¡¡¡¡Ÿ—’“š¡¡¡¡¡¡¡¡¡Ÿžžœ›š›Ÿ¡¡¡¡¡¡¡ Ÿš™™œžŸ Ÿ›š™™š›œ›™˜™›žŸ  ŸŸŸžœœœœžžžžžžž—Ž‚xvy€‰“™›š˜˜˜—”ˆwx€‡†ƒ…Љ„}wphb^^^^^^^_`_`beghigecba`_^^^^^^^^^^^^^__acdca_^^^^^____`acfhihgfffeb`_^^^^^^^^`bcca^^^^^__^^^^^__^^^`cdd`^^^^^^^^^^^^_aab`^^^`acehjllklpu{}zsia^_bbaaa```aaaaa```bfiklkhffgijjigedhpx|yrh`^^_`acegijkjkllljfb``aaabcbbbbcehlmmmmljgcabca^^^`cegjouyzxtplhda````aaaaceghiijjkmqstrqruvsnjhikmmnqxƒ‹’•¡¡¡š€tmnvƒ”ž™—–”‘‡ƒ‚ƒƒ„„…‡‰‰…|rkfcabeghijls}‰”¡¡¡ž–‹ƒ€ƒ‰ŽŠ‹‘…|tlhggimsy‡‹‹‡‚}zyxvtty…€wpnqttqnnooonligfhlv‚Ž–™™˜˜˜–•“‹„~€|rg^^^^chlnmihikmmmmliffhllieba`_^^^^`djqxzvlda_^_`bdefghjnrsngb```acgjiijkjhfhkoqqnjfcabfkpuwuqooopv€Œ•™˜–“‘ŒŽŽˆ~sjc_`goyƒŠ‹‰ˆ‰ŠŠ‰…{nd__aejpw‚Œ•¡¡¡¡¡¡ž˜“‹€vompv{yrmjifca`befedfjotz‹”›š”Œ„|xtpprvy}€ƒ‡Œ’––“Œ„ymghms{‚ˆ’•˜›   ¡ ¡¡ ¡ ¡œ˜–””•—•‘Œ‰‡‰“”†}vmggmx‚‹’—™™–†€‚†‰‹Ž’–šž     žš—”’’”–——˜™™˜™šœœ˜’ŽŒ‰„~yx|ƒ‹‘”–™ž  Ÿž    Ÿœœž      Ÿžœ™˜˜˜™š›Ÿ ŸŸžŸ Ÿžžœ™—–•–——•‘ŽŽ”™œžžŸ    Ÿ˜‹ŠŽ”––———–––——•‘ŒŠ‹’–™š˜•‹„{snkmrx}€‚‡’–—•†|vtvz€‡ŒŒŒ•›Ÿ    Ÿ˜‘Œˆ†ˆ“–˜™™šŸŸ›˜–••••””’އyvvurlgeejr|…Š‹ˆ„ƒ„|xy†Š‹Œ‰vja_biqx~‚†ˆˆ„xphcbbcdefedcddeeeebabeilljhffhmtwtolou{„††„ƒƒ†‰Š‰…~wqoqqnns€••Ž‚wokijntz…ŠŒ‰„|pa___l|†’”•——–”““““”””•—™™–’‰†…‡Ž—ž  Ÿ™”‘”™ž       Ÿžœš—“‘‘‘“—šœ›™•‘‰…„ˆŽ‘Œˆ„‚ƒˆ•›Ÿ            ŸžžŸ   Ÿ›š™—“Ž’’’’”—™›Ÿ    žœ™—––––———–•“ŒŒŽ’—        š—–—™œŸ Ÿ›–’’”–˜š                 žœ››      ŸœŸ        ž›˜”‹ŠŒ‘—œžŸ  ”ˆ~{|ˆ’›   Ÿ˜†|zyy{Š•Ÿ     žš—’ˆˆŒ‘•—–•—šŸ     ›˜–”ˆ{negsƒ‘   œ’†|urpljijkkhdb``djnpqrrrokhhjlnqtwwvrnlklmoruvvusqpppprw|€|{~…Œ’—šš™™™™™ššš—–—šœœš–ˆ}~‚‰‘˜œžžŸŸŸŸžœš™šœž›š™™™™™™˜˜™›žžœš˜•“”•––“’‘“•˜›œ›š—’Šxvy€‡ŒŽŽŒŒŽ‘’‹„~ysmgb___`dijigjr}†‰†‚~ztld___`beiqz‚……„ƒƒ‚{uqmigebaacgloqqomjhfeeddbabht…— Ÿ—‚wnhfglsz{ukc___aceilprqpoomhb_____ciprld_______`_____________`abbbccba```````__`bccbcdeeedcbbaaa____`abbcefghhgfedb``aeimnptz€…†ƒ{rkhkr{„“•”””–™œŸ     ž—Љޔ——–•’‹–œžœ–ŠŠ‘˜œ››œœ›šœž    ž›—‡~vqonmkgc____bfhjjhfdbaaabbccdeedbabccdeeca________acddcbabcdeeda___`aacddbaa`__`acfjostsojfddefecbbdgiiiijlpttrmjjmqrplfccefghjjhgffeddddddfhjiiihhgedb`________aeilnoppolihjkmmkhecbbbcccba`________`abdgknpsw}ƒ‡ˆ†‚€~~~~{vqlijpx€‡Ž‘‹‰‡„€{uojfcbbdhnuxvsuz€…†‚|xvtpnpv}ƒ‰“—œ      ž›˜’‹†„…‡Œ‘•–˜œŸŸžžŸ    ž›™˜˜˜™œ   Ÿœ›š™™™™š›œžžŸ ŸŸžœ›˜•‡€|{yurpppomjhhklkigeefffedb__________``aaabcba__`aa`_____``________________`acehhhghjllic____``____acefdb`__`bdeeedegijkkkklopqqrsstvy}ƒˆŠ‹‰‡„€€ƒ†ƒypmmlighjklmmmnooooprtuvwyzzxxxwustx|~~{wttvwxwutuvy|}}|{zyzz{}…ˆ…}vronmnoomlnt‰Ž‹„~xsrw€ˆˆ…‡Ž’‘Œˆ…{xy}ƒ„‚xqmpv{~€€~}}||}€|ywwyyxvuuuvvwwwvuvwwvvvvutsrswyzxvuux{~€€€€‚„ˆŠŠ‡„ƒ„†‡†„‚‚…ˆ‹Ž‹ˆ††ˆŠ‹Šˆ††‡‰‹‹ŒŽ‘”••“‘’•—˜˜—•““““’’’“•—˜™™˜˜———™™™—•”’“”••“Œ‘’ŽˆˆŒ‘’–™˜–•–—™œŸ   žœœž    žœ     žœœœœœ›š˜–‘ˆ~uty€…‡ƒxnihknolhdbbcdcb``acdcbbbba``abcb`_______bfhheb``aabbbbccdddb`__abcba``a`````______________acca_____adfecbcehjjjhfddeeegjmoonpx‚‹‘”””–™›œœœ›šš›     žš——™›œž                   žœœ›™—–•”•–˜™š™™˜—–•••••””•–—˜˜™œžžžœ››š™˜˜˜˜™š››œžŸŸš˜—˜šœžžžžžžžžœœŸ   Ÿžš™™›žž–‡vnt„”œ›“Š~~~xoijpx{ysmhffhlsz{thcgorpmmlkhfedefghkqx†‹‹„zrnmmnmkhgfgimppjda_``bdedbaabba___``aaa`____`bdca_______```_____`aa`___acddfjkid`___aceiotwz|}~…‹’˜šš™—–”“““•–—˜™š˜–••—™›œœžŸž›š™™™›ŸŸžœ›™—––˜™š›œ›š˜˜™™š™˜˜˜šœœœœœ›š™™™šš›œœ››š™˜–””–˜šœœš™™š  žœš™——˜šœœ›››››››š™™›ž  Ÿž›š›œœœž     ŸŸ     žž    Ÿ      ž›˜––“Œukea`acegijihgdcdfggedeffeddeffeca`_____`ehigeb______________`aa``cirz|zupkgdbbcbbcehknpomida_____`ehiijlorsrruz{xqjfhmomiedb_____acdefhntyyuolkkjihhhhhggggggjostttsqpponlkjigffffghjkmmjfcaabbbdfilmmmlmoruwxuplkkkkkllje`___dipux{„ŠŒ‡|nedfijifa_______cecaabdeghfdcddcceipyƒŠ‹„xkc`djpv}ƒ‡‡ƒzpf`__`aaaaadfijijov†‡„~~ˆ—  š˜—––———˜™›œ›˜••–—šŸ   ŸžžŸŸ     ›“‹ƒ|uqnmnqv|‚‡ˆ…wmgb``bfmrtrnkiiihhhgeca``aa``bdec`___begea________________`bdeeb______________________________________cp‹’“‘ˆ‚}yz~ƒˆŽˆunovŒ‘’’’‘’““‘‘ŽˆwtxŠŽŽŠ…„‡‹ŒŒ‰ˆ‹‘™     Ÿ›™™›Ÿ            ˜•““–š    š˜™›œ™–”Œ‡ƒƒƒ€zuu{…‘™œ™—™œš—–•“‘މ„ysja_alz‡’—”‹~slhghiklljimv‚›             Ÿ   Ÿ˜‡†‹’”‘‹‡††ˆ‹‹†ƒ„Œ– Ÿ™—˜š›Ÿ   ŸŸ  Ÿ Ÿ Ÿ Ÿ  Ÿ Ÿ Ÿ  Ÿ ŸŸ ŸŸ›˜–”’ˆyuuxyzzytmfdeimt|‚„„ƒ‚€}{xustvy}…ˆ‹”•’‹…~xromkjkq{†’†wg```````````````bgiheb```acfhhhiklnqsspmjilqyƒ„‚|yz€‡‹Švlhfedccdgkpsrnifddfimprssqmhcbdiouxvrqsx~…‹‘‰Š——‘‹‡ƒ€„Š‹‡ulghpy€„„‚ƒˆ—š–ƒ||„˜™“ŽŒŽŠˆ‚ujfjmmjfefipy€‚|zywustwy{†–˜—”‹‰‹‘–™ššš˜•“‘“”’‹ƒ~ƒ†‡††ˆŽˆzutv{‰’“’’’’Œ‡unnw„–™™˜˜™›ŸŸŸžœœžŸŸš˜˜™šœœ›™—••—šŸŸŸ›šš˜’Šƒ„Š”—œŸŸž›˜”““–›ŸŸŸŸŸŸœš—––˜›žŸŸœšššš™™š›››š›™’†{uw|~‚‚ƒ…ˆŒŽˆvrqu}‡’™››™™šš–’‘’’Ž’•˜˜—–•–™šš—“’”–™ŸŸŸŸŸŸŸŸŸŸž›˜——™šœœš˜–”“’”—™˜•’Ž‹‰‡…ƒ|tha``abaa```dm{‹—š–Ž‰†„…‰Ž‘‘ŽŠ…‚{unhgjnrsuwwvusnhecdgkqvz|ztlfcdlwƒ”–“Œ‚zsopqrvz}€{xx{„ˆ‰†}xutuy€†Š‰ˆ‡‡‰˜ŸŸŸŸ—ƒ{y}…šŸŸž™•‘Ž‘ŽŒˆ…„†…ƒ}zwvwxywtsuy~„ˆŒŽ‘“”’Œƒ{tnkknqttrqrvy{{zxvwz~|yvrmiggedeghfeegkpqokijlmkhfgggfgghihhfcabdghjlnnmlkihffedbaabcdca`````````abbcceggfdbbbdffdbbdfggfcaacdccca````bdfghgfffghjkkjhhjnsutrpnotz~}{{|~„†…ƒ‚ƒ…ˆŒ‹‰ˆˆŠŒ‘”•“Ž“•••”’Ž’’’‘Žˆ„„‡‡‚zuuvwvutpnmosy‚‰‹‡{wtsstwzyxutx€‰‡~voidekt€Œ—ŸŸŸœ˜•’‘‘‘“”“‹‡†‡ˆ‰‰ŠŒ“˜œžœ›šš›œ™–‘ˆ„„ˆ‹Œ‹ŒŽ“—™˜–’ŽŒŒ˜›››™•‘Љ•ŸŸŸš“†vkijllllllljhhiigedegilpv|~zvuvx}…Ž“’Ž‹‡„€€„‰‹ˆsjhkqvz}‚‰”’Œ‰‹‘‹…~xqjfglu”‘І‡‰‹ŒŒ‰†ƒ€{tmkms}‰“——•’Ї…}{z{~„‹–™š˜”†~xuuvuspnmlkjgecbaacdeffffdc``````aba`````abddehow}xy„ˆŠŠ‰ŠŽ’’Žˆ|||ww€–šœš–’Œ„€ˆ’™›››™•’‘ŒŠ‰‹—žŸŸœ›ššŸŸŸŸŸŸœ›š˜———™›››™–’Ž’—›ŸŸ—‰…~{z{}|yvutpmmmmlkigfdbabcccccdgkopolihhhgecaabdeedcbbbcbbbcdeddcdddca````adfgfdcba```cgkoqpmjjllkhfeefggeeeeeeghgfffijkkkidaaegfdca`bfhhhilpssplgb```cfjnqqqpmigffgilnmjea``dffggc``aachpx~yrkgfeb`````bdeeeec`````````````bccehiihhhfc`````bit€ŠŠƒzussstuux~‚…„€{uplijmsz‡‰‡ƒ}yx|†—ŸŸŸžžžžŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸž›šššš›œš˜––—™›œœš™—”’‘’•——˜˜–”’Œ‹Œ‘””““”˜››˜”‘‘’“•––“ŽŽŽŒŠˆˆŠ“–—”Ї‡‹‘’‘Š„|zwvyŠ…|z~…’”””•••–––•’ދЋ’“’‘’’‘Œ‹‰…}||}~{|†‘“‰€vpligeb````eilnolgegihecbcehihfdbbcefggeb```````bfmw‚‰‰ƒ|tojghnw€‰‘‹‘‹yzƒ•šœžžžŸŸŸŸŸŸŸž—Šˆˆ‡††Š’›ŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸœ›œžžžžŸŸŸŸŸœ–‰„}{|ƒ…ˆŠŠ‰‰Šˆ‚|ywvtpkhikmmmkgfgijhfgmtyzvpjedefffecbcejopokhfdca``cfffeedcbbdeghhgebaabbbbccccddddegjosusnkknt|€~xogddefhkmkfcbcehloty}}zsmhfgimrx|~{tkeejrz€ƒ†‡‡…}ywx{ƒ‰—œžœš˜˜™šœ›š™›ŸŸŸš—••––—™šœœ›™˜™››œœ›››››››š››œžŸŸŸŸžžžœ››œžžžœœžŸŸž››œžžœ›šš™™šš››š™™™š›››™—˜™œžŸžœ™™›žž›™——™›œ›š™˜˜˜———˜™›œœ›šš™™š›››››œœœš™™™™šœœ›š™™™šœœ››œœ›ššš››š™™šššš™˜™™šššššš˜–”Œ†}}€‡‰ƒ}}|wttvy{||}~€‚‚‚„‡‡…ztpnjfbaaceghilqx„‡…‚‚ƒ…‰Ž“—˜˜•’‹‡‚}wroqw|~~|zxwy}„†ˆŽ“•’ŠŠŽ”•„zx|…“ˆ~rkkpx‡ˆ†ƒ‚ƒ†Œ’——”…~zyvqlhfeefhhgeb```abbdffdbbba``aceggfecbccegggghijihfeeefgimprsspkfcccbbcdefgijiiihhijlnpoljihhijklmnmnqvy|~~}{yxxy{}}{z{||zwrnljigffeefhkmnoopppmjgfeefhlpsttrqsux{{xronnllmnorw}‚ƒ‚€~‰”žŸŸŸŸœ—‰ƒ}xroquxxuoifhlry€‰–ŸŸŸŸŸŸŸœ•Žˆ……‡ˆ‡xqot}‡‘˜™•’”™ŸŸŸŸŸŸŸžœžŸžŸŸŸŸŸœœœŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸŸžœœœžž™—•’Œ‹‰‰Š’“••••–•“‘ŽŽŽŽ‘”˜š››ŸŸŸŸž›˜“ŽŒŽŽ‰{wutvy}ƒ‡‡zsomlmmlheb```````````aabaabdc```cmv~ƒ‚|tolklnoomifdcddcb`````abeimquxwtqppruwxupida``````fnrspjd``````````````aba`````behklmoswywsollnpqqruwvtpliiknqsuwvrmklnsz‚ˆŠŠ‡ƒ€~~|ywvutuy~‚‚„†ˆˆ‡ˆ‹”˜š˜”Ž‹ˆ†‡ŠŒ‹…|ofejqy€}}€„Š•–“…~zxx}…Œˆ„‚€~|zyxvtsstw}‚„ƒxqkiijigc`````````````bccb```adhlmmjebaba`````````````bcbbbcfijkmnoonoqstsqnkighjnrssstspljjkllllmosz€„…†‡ˆ‰ŠŠŠŠˆ†…„‚}wqljklnnlmorvyzwqjedeghhggghilquvtqolighlpsrpnosy}}xqkfca`a`adimnkgfjt}„‰‹ŒŒŽ‘‘Œ‰‡ƒ|xvvw|†‹Šƒ{snmqx~„‡Š‹‘“”“‘”›žžžžžžž›™˜–”“•—˜–“‘Ž’”•”””•™žžžžžžžžžžžžžžžžžš—”“‘‹…zxz~}xuromlosxz|~†‹“•—™››š˜•‰„xqmllkihijkmnopqrux}‚‡“–——•‰€xtv~‰•œœ››œžžž›š›œžœ›š™˜–•–˜š›œœœ››œžœœžžžžžžžžž›š™—“І„…‰Œ’“””””•–˜š›œ›š˜——˜š››™•‘Œ‡„}}ƒ……ƒ{vqmjjnu}…‹‘•˜˜˜——•‘Š‰ŠŽ’–˜šžžžžœš™˜™›žžžžžžžžžžžž›˜•””–™œžžžžžžžžžž›š˜—————˜š›œœœ›š˜˜˜™šœžžžžžœ™–”“•–˜šœžžœœœœ›š™šš›››™–••—˜—•”“’“”—˜———˜™š›œ›—І‚|vqmlklkjgefksz~~|yuqmjgecbcdeeeedaaaaaaaabccbaabccccdegiiihfedbaaabdddcbbdfhgecbbbbccdccccddccccaabdeedcabfnv}~ypfaaccceggfedddeeeeeefhhhfedccdfhkmmkhhhhijlljhebabcdddefghjjjijlmljhggiklljhfedccbbcbbcddddddccdfghgedccdeeeedbaaaaaaaaaaaaaaabbdgknnjecejpv}ƒ‰’“‹‰…€}{}€†Œ’—›žžžžžžžžžžžœœœ›šš›œœ›š™š›œœœœ›™——˜šš››››š™˜—–••–˜šœžžžžžœš—”’“••ˆyvw~‡‘†~yz~‚„‚|unigfgghils|…‰‡ztpoopruvtnigghhiihils}ˆ”žž›˜–”“‘Œ†~…Ž—›™™›žžžš•’މ…ƒƒƒ€zrkhhls}ˆ“•–—–”‘Ї†Š‘™žžžš™—“„yojjntz|xqlkmrx~€}wpjgfeefhkorrojfeeedcdefilptusqpruwxwtrsuvvwx{‡Š‹‹Ž‹‡„~{xvutuz€…‡…}|ƒ‡Œ•˜ššš™˜™š››š™—”Ž…zogccccdefeddcbbbbdgjjfaaaaacefgfdcbccejqy€„††„€ysnlkkjhhilmnmligfgknoonljhghhijmqsvx|€€|xuttuspmlnpruz€‚~wqmkihiknqrpmkihfeeegikmnnmlkkmpsuwyyxvtqppqrstttttuw|…™ž—…‚ƒ„ƒƒƒƒ‚€~{wvw{€‡Œ‰yspppqqruy}}xrlijosw{‡‘’‰…‚ƒ‡‹Š„|}‚ˆ–›œš˜–”“”–—™š›š™šœ›—•“’“–˜š™™™šš™™š›››››™˜˜™›œœ›š˜——–—˜š››››š˜–•””–˜—”‘‘‘Œˆƒ|tlfddbaaaaabhpy€xkaaaadfgdaaaaaaaaaaaaaaaaaaaaaabbbaaaaaabeilookfdefhijlliedbaaaaaaaaaaabdffecbbdeghhhhgffefiklkigfeeeddeefedcdeghhgfcbcfjmnnlmqw~ƒ…‚|xwxzywuvx{}~|xsmhdccdegjmnmkiijmnmkkmqtvy|~zslfefhilry‚ƒ}yvsqponnoprrqqqqqrtuusqonoqrrqonlkkjjiiijjlosvvvuusqonnljigfhlprrpmkkjjiiijklmlkjlqy‚‡‡„~yy†‹Ž‰„zxz€ˆ‘ŽŠ‡†††‡ŠŒŽ‘•šžžžž™–”“•—˜˜˜˜˜˜˜——–––––—™››š˜––—™››šš›œžžžžžžžš™˜—––˜›žžœš˜—–••–———–’Œ†ƒ‚€~|xtokihijmpsutrpppponmnnkgdbaaaabdhklifefhkmnnllotz…Š‘•š›š˜––––——–——˜˜™š›š™™š™—“‡„…‹“™œššš™•‰††‰•™™–“’”—™™™˜———˜šš˜–’ŒŒŽŽ‹†‚ƒ‰”•‘‹‚yttx}‚‰““‘Œ†~ywwvsommptutpnnoooljiijklmmkjlosutsssrnifefilnonns}‰”›œ›™™š›žžžžžžž›™™›œ›™–”“““’’’”•—™žžžžžžžžžžœššœžžžžžžœš™˜—–•••—˜™ššš›œž›˜”Œ‰ˆ‡ƒ~{|‚‹”˜–‰…ƒƒ…ˆ‹’’މ…„†ŠŒ‹‡ƒ€€ƒˆŒŽŒ‰…‚|wqlhfgjlmmnrvz}~~}{yxy{€…‹Š†ƒ€~€†Ž“””’Œ…€€ƒ‰“’Ž‹‡…†Š”˜š–ˆ…‡“˜›œœžžš•‘‘“’‡„ƒ†”™š™™šœžžžžžžžžžž›˜˜™š™“Š€ytqqqrqqrv{€‚‚€~~~|yvuuvvutsstx„†‚{rlknrttogaaacehlonmjggimopu|ƒˆŠ‰…€‚‡‹ŒŠˆ†„„„„„‚~ysoou}†ŽŽ‹‰‰‹”˜›››ššš›žžžžœš™—––—šš–Š‡Š”–—•““”–™œœœš—••™žžžž›˜•“’’’““–œžžžžžžžœš˜–••”’Ž’–™šš˜–“‘ŽŽ‘““ˆ}|{zz{„‰‹Œ‹ŒŽ‘“””’‹Š‰‹•˜™˜˜–“‘‘”˜œœ˜•““’’‘‘’’‘‘‘’“”””””••••–˜›žœ›œœœœœœœœœœœœ›™™™™˜–•”–™›œœœœžžžžžœš›œœœžžžžœœœœ›››š››œ›š™šœžžžžžžžžžž”Š‚†Ž“•”“’‘‹‹ŒŒŠ‡…„‚}|}€†”˜™•Ž…~{|~ƒˆ‹ŒŒ‰„~xqkhhiiihhhgghggfffggebadfhijkkjgbaaabdedddehjjigffghjkllkifdddfikmnonmljhfcaaabdfhhgebaaaaaaabbbbcccaaaaaaaaaabddeeddefgghikkjhfeefilnnnmkhdaaaacfjouz|~~‚€|wrolkkjihfdcaaaacdfhjjjklmmmnqv|ƒ‰’’ކzojikmopnkgcbabaaaaabehigcaaaabdedbaaaabbaaaaaaaaagklhbaaacjqvvrlfbaaaaaceinv~}xtpmlmpswz}‚†‰ŠŠŠ‹ŒŽŽŒ‡‚|wromosw{~€€~{xtpkfbaaaaaceffgggfefjotwxwuqlihhfcacfgffipx‡ˆxmdaadhkqwzzwtnhcbbcddffecaabceghheaaaabcdddcaaaaaabdfgfdaaaaabcdglrz€~||}~‚„…†‰‹‹ŒŽŽ‰ƒ†‹‘“’ŒŠ‰Œ’——–”’‘•šžžžœš˜——˜™šœžžžžžžœš™™š›œžžžžžžžžžžœš™šžžžš’Šƒ„†‰Ž’“‹„|unigggfeegkprqnlmoquy||}}}}‚‹“•’ŽŽ‘•™œœ››œžžž›™—•”“““•–•”””•”“’“”•••–——–•“ކ{qieccddgjnruvuuuux}„Œ‘’Švldbcjsz}}~‚‰ŒŠƒ{pfbbdhjkkkjknqroljjklmlkigdbbbbbcdfghfcbbbceedddegjmnnmkjkmoqsrqpoonlifefghiijknswyytmjjkkihggggghggijkkkjjmptusqponmjfddefimsx|~€‚„‡‰ŒŒŠ‰ˆ‰‹Ž’’’”–—–”’“–˜˜–•••–—™›œ››š›œ›š™™™›œœš™˜–”‘ŽŽ‘““‘Ž’”’Œ‡…„ƒ‚‚‰“’ˆ†‡‹Ž‹‡ƒ}wrrv~ƒƒ~xsonnnmkgcbbfjmmlifddfggggikmmkiiijjjigeefikmnmljifddgkosvxywtponmmnptwxvsqqrssuz„‡‹‘Žˆyrnljhiou{‚‰“•–•“‘‰‡‡‰Š‰„~ywxy{||}|yupmkjhfeeefgfebbbbbbelt|~yurnllmoqtwwvuuwz}|xrlgfiklnpruy{~€‚‡Ž–šš™™šš˜•”•—˜™˜–”””•”‰‚}{}‚ˆ‹Ž‘’“”””””–˜šœ›˜•“’‹‰ˆŠ•™šš™˜—––˜™™˜–•”•—˜šššš˜”’’”–˜–’Œ†ƒƒ…††…ƒ€€„Š”•“ŽŽ‘ކ|rjedddbbbdfimprrpoptz„‰Ž‘Ž‹‡…„ƒ€†Ž•˜™—•““’’’’’’‹„|uqoprrplihimopoooooonnopqssrqqsx}ƒ„„……„ƒ~{ywvvtrqpppqruy{{xtppsy€‰‘•—–“Žˆ‚~}€„‡‰‰†€wnhdcbbbbbbbbcddddedcbbbbbbehjlnqv{€ƒ†ˆˆ‡ƒ}yxxy{}€€}|}€€~|{z{}€~|yvvx}„‹Š‡ƒ~}|}‚„…†‡†ƒzvsqoopqrsux}€€|{{}ˆ–›œš—’Œ‡‡‹‘•–˜šœœœœœœœššššš›œœ›ššœœš™˜–””•––•”•—™››˜••–˜š››šš™™™™™™š››››››™˜——˜˜˜——˜™š›››šš™™™˜˜™šš›š™˜–•”•˜šœ›š™—–––—˜™š››š˜–•””•–—˜™™™™™™™™˜˜˜—”‘‹…|zyxusrsttsssqomlkihgfffggghiijmqw{{wqlijnswzzvqjebbcgjlmnmkgedfhjllkjikotx|~€€€€ƒ‡‹ŽŽ‰zvuvwy{}€‚ƒƒ‚‚‚|zxwxy|€„‡‡†„‚€~{{}€ƒ„„ƒƒ„…†„xqmjgeccddeefeeeeeeefeeeeeeddddddddcccddeddddeffeeddccccccdfghgfeddefffgggfeedddccbbbccddeffffedddeeeeeedcccccccccccccccddeeeeeeefggfedcbbbbdefggfedddeffggffeeddeefffggghhhhiihgggffedcccdegijigfffgffeeeddcdegikljgedfjnqsvxxuojgfeeeedeeghkmprstuvz}€‚}xrmihgfgiloqrsromlnty}€ƒ„……ƒ}xtqoonljjjmquxwvsqpooquz}€}{zzzyxxy{}~{wrnjhffffhkpstsqqqrrsttstuwy{}‚€~|xurqruy|{yuttsqoooooonlifdeeecccefgiihgffegiloqsuvwxz|ƒˆ‘“”“‘Œ‹Š‰‰‰†ƒ€‚€~}ƒ‚~yvx~…“–•‰‚|xx{€…ˆŠ‹‹Š‰‰‰‹Ž’–™š™˜–––•”“”–™›››ššš›››š™™™šš››œ›šš›œ››››››ššš›œœ›šš››œœš˜•“““•——–•”“’І„ƒ‚yrlhghknqrokgbbbbbbbbbbbbbbbbbbbbbbcccbbbbbbbbbbbbbbbbbbbbbbbbbcdeddcbcekqvxxvqmjikostsstwz~ƒƒ‚€€€ƒ…‡‡…ƒ€‚…‹‘–˜šœ›™—”’‘‘‘‘‘‘“”–˜™šœœœœœš—’Œ‡†ˆ‹ŽŒ‡ƒ~zwtrsuy}„†…‚zpgbbbgkmnmkigcbbbbdfffdbbbbdfhkouz~~{yxy{}~zvronoqqpmjiiihhijkjgdbbbbbbcefhhggffedddeeeeddceghhfdbbbbbbcdeffedccegiloqqolihgghikllkjhhgeccddedddcbbbbbbbbbbcfikllkiijklmpuy|‚‡Œ’•—š››ššœœœœœš™š›››œœ›››œœ›š™———˜š››››œœœš˜–•••–—˜šœ›š˜–••–—™šœœœ›šœ›–‘Œ‹‰†ƒ‚‚ƒƒ…‰‹‹Š‡„€}|~‚…‡†ƒ€|ywxz~„‹’”•••”’‘“•–˜˜˜—–”’’”–˜˜˜–•“‘‘‘’“’’’““•—™›œ›™™™š››š™—–”“”—››››š™™š›œœ›˜“‡‡ŠŽ‘“–˜—––—˜™˜—––˜™šœœ™—–”“““”••–•“’”™œœœ›šš™—•’‹†‚†‹‘””’Ž‹‰…€€}zy{~‚‡Ž”˜œœš™™™™˜˜˜šœœ—‡}uoljklnqu|‚‡ˆ‡…‚}zvronnqtwzzywvwyywsokihhhfeeefghhhhhggffggfdbbbbcddeeffgfffeeefgfffffdccbbbbccdefffhlquxxvtssstvwy|€{uokfcbbbbbbbbbbbbbdfinrvy|€€}yvuw{€‡ŒŽŒˆ€xqljkkllnopponmlkkkklnoqsvxyyxwwwwwurponnnqsw{€ƒ„‚~{z|ƒ‹“šœ™•’’”˜›œœœ››š˜————˜™™˜—••••–—–––––••””••–—˜™˜˜——–•”““““”–˜™˜—–••–—˜–”’‘Œ‰‡„{vrppsw|‚ƒ‚}|{zywsnjhimqtuvusolmopqsvwxyyzzzzyxwwutsrqpnmljhgghhhfghjkmooqt{ƒŒ•š›š™—–––—˜™š›››š˜–•”•—™š›œš—“ŒŠ†„„‡“˜›œ›šš˜–“’’”–˜™™˜–•”““’“”•–˜™™™˜—•”’’’’“““””””–˜š›œœœ›››œœ›š™™™š››œ››››œœ›š˜—˜™›œœœ›š™™—”І„‚€}yutvy}€‚}xspopqrsrqpponlllmmoqssqmiggijihgghjlosx†‹“••“‘‘”—˜—•’‘“•——•“‘Š„}wtuy}€€€€‚„†‰Œ’”–—–“…~wsponllmmnnlkihgfedddddeeghihgggjpw€‡ŒŽŽŒŠˆ‡ˆ‹”˜š›š˜–”””–™›œœœœ›››››œœ›—‘І„„…†ˆŠ‹Œ‹‰Š’—š›š™˜—–––•“’’’ˆƒ|yxxz|€}}~€‚…‰‹‹Š‹–œ˜‘‹†‡•›œš˜–•“‘‘’•˜™™—••—™š™™™š™™˜—–•”””•–—˜™š›››œœ››š™™™™ššš™™™ššššš™˜˜˜™™ššš™˜˜——–•“’’‘‘‘’‘‘‘’“”•——————˜˜˜™šš›šš™˜˜——˜™™šš››››››œœœ››š™˜———–•”“’‘ŽŒˆ…ƒ‚‚‚€€‚†ŠŽŒ‰†„‚‚„…‡‰ŒŽŽŠ†€}…Œ’–™šš˜•‡}slhfgjoty{{{zyxxyyyyy{‚ƒ€~}|{yvtqpoooprtwz|ƒ†ˆŠŠ‡‚}yvtssuutrpqu{€~zvtssstvwxz{}…Š•——•••—˜—”ˆyqliiknppokgccdegjlnnmifddeddefffeefghhggffedccccccddeddcccccdefedccccccdfffeccccccccccdfggedcccccccccdfhjkkjjjjkmnnmljjiiiijkkjjkmpssrpmkjkjhffghihgfdccccccdfghgggghijjihhghijklmmmljigffffhijlnqv{~~|yvsolihggffeeeefhikosvxwtoljjkosw{‚„†ˆ‰‰‰‰‹Ž“–˜™™™™š››ššš›œœœœœœœ™–’Š‰ŠŠˆ†„‚€‚†‹’’Ž‘””’‘‘’•šœœœœœœ›™—––™œœœœœœœ›š™˜——–—˜˜˜™™™˜˜———˜™™š›œœœœœœš—•“‘‘’“•˜š››œœœœœœ›˜”†€†–™š›››ššš™˜˜˜™šœœœ›š™˜——•“ŒŠŠ’’‘Œ‰ˆ†„|xurrsw|„}yvuvwvvvvwwvtstuxzywrlhfedccccehkorux|‚…‡ˆ‡……†‰Œ‘“”–––––—˜™™˜˜—˜˜˜˜˜™š›››š™—–•••••••”““””””””’މƒ~{{{}…ŠŽ‘‹‰ˆŠ’”•—˜š››š™—”Œ‡ƒ}{|}€€€~}{wuvz‚Š’—™™˜—–”””•–—™ššš™–’‰‡…ƒ~zwvvvvvsojgddddccdfhkosvyz{}‚ƒƒ}xtpliedcddddeffeddccdfggfeeefhijjihhhgedcccccdeeeeddeghiiiiiiihhfeefjmnmljhijlnoponoqsvy}~}|{zzz{}~€ƒ…ˆŠŒ‹‰†ƒ‚‚‚‚‚†ŠŒŒˆ€ukfeghiiikoty{{ywvvwxz|}‚†‹ŽŽŒŽ‘‘Ž‹‰ˆ‡…‚~zvrqpqsuutttttrqpqsvxxvtqqsvwuspoorvz~€‚‚‚ƒ…†…„ƒ‚€|ywuuuspkgeegjpuy|}~}zxutuwz~yphcccccccegggghhhgfeefgghhhgggggffedefimprrrrssrqomjiijklmoqrstsrqruy„ˆŠ‹ŒŽŽŽŽ‹‰ˆ‡‰Œ‘–™š™™š››››››››››ššš™š›››œœœœœœ›šš™˜—•”’’““”•–————————˜˜˜˜–––—˜™š™˜˜—–•––––”“““”•–——˜™™˜”Ї„‚~yrmigghjjjjjlqx„‡†……†ŠŒ‡{wvwz~‚…†…‚~€ƒ…‡ˆˆˆ‰ŠŠ‹‹ŒŒŽ“–™šš™˜˜™š›œœš™˜˜˜˜˜˜˜˜˜˜˜˜˜—–”“”•—™™™˜˜————˜˜™™šš™™—––••••••––——––•••”””””””•––——––––—˜˜™˜—————˜˜˜˜™™™ššš››œœœ›™˜———˜™™š™˜•Š…}{xuroljihgghimu~†ŠŒŒ‹‰†‚~zwtsrrpnkhhikmpsvy|‡‹Œ‹‰‡†††‡‡ˆˆ‡………†‰’“’ŽŒ‹‹‹ŒŽ‘”—˜™™™™™˜˜˜˜™ššœœœœœ›š™˜˜˜˜—–•••––˜˜˜˜˜—–––—˜™šš›šššš™™˜˜˜™š›œœœœœœ››››šš™™˜˜˜™™™™™™—“Œ’”•”’ŒŠŠ‹ŒŒ‰†„ƒ„ˆŒ‘”–”‰ƒ~{zz{|{zyyy{}~}ysmihkptvutqnligggijkkjigfefhkmopomjgedeffggggfffffgffeeedddddeeedddddeeeeeeefggggffeffffeedddeeeeefffffgggggfedccccccccccccccdefgggggggggggffeeeffeeeeffgffeeffggghhggffeddeghhihggggggggggfffffffggggggggghiiihgggghijjjiihgffeeeeeeeeeefgghikmpsuwxyyywuromlllnqtwz}…††‚~zyz}€‚|yuqmkkmqv{‚‚„‡ŠŒŒŠ†‚}ytpmkkmpsvz}}{xusqpoquy}€€~}~‚ƒ‚~|zz{|}~€}|{{|~ƒ„…„ƒ}||}€„‡‰‹ŒŽ’–˜™˜˜˜˜˜˜˜˜™™š™™™™™™ššš™˜˜˜™š››šš™——––”’”—˜˜˜™š›š™™™šššš˜—–•••–————–—––••””””••––—––•””””““’’“”•–––•”““”•––––•”“‘‘’’”•––––————–––———˜˜˜˜˜˜™™™™šš›œœ›šš™˜˜˜˜˜˜™š›œœœ›š™˜˜˜˜————–——–––––––—˜—•””“””•–˜™š™˜˜˜˜™™˜˜–•“’‘’“”••••”‘‰…„ƒƒ…‡‰‹Œ‹ˆ„€{vromlkklnpsuwy{|{ywusqppqtx|‚ƒƒƒ‚‚‚ƒ„ƒ‚€€ƒˆŽ‘’’”–˜™š››š˜–‘Œ‡{tmiffhkosvx{…Œ‘”–—˜™™™˜—–”“““‘ŽŠ…‚€€‚…‡ˆ‰Š’—›œœš˜–“Œ‰‰‹Ž‘”—˜˜–••––—˜™™™™™™˜–‘‰€zy{~‚„…ƒ€}zyxyzz|€…‰ŒŽŒŒŽ“”“‘‹„}xvvx{„‰Ž“–™›œœœ›™—”‘Œ‡}{{|}~€€|{{}~€€~{yy{‚„‡Š‘Œ‰†ƒ€€ƒ†ˆ‹’•—˜˜™™˜•‹†~|zz{}‡’–˜˜•Œ‰‰‹“—˜™™š››››šš™™™š›œœœ››š™—“ŽŽŽŽŒŠˆ†„…‰’’’‘Œ‰…‚~zvspmmotx|€…ŠŒ‹‡‚}zyz{{yvqlihgfeeefghggfeedddddddcccccccccehjlnoponnmljheddeedcccccdfggiklnqv{~|vnihiiiiijlmmljhgghhhhjjjigffgijjiihghhijiihgffffgghhijihfegiklmmmlkjhfdddfgggggfeeghjkkkkllllkigfeeeeffghhijjjigfghjlnnljgfgilnppnmllkjiijjkkjigfefhjlnprsuvxz~ƒ‡‘–™š››š™™™™˜—”‘’–›œœœœ›š™˜˜˜™šš™™˜˜——–————————˜™š›››™—“Œ‰†„ƒ~}}~€‚ƒ„‚|yvtqoligdcccccccdfghgfedddcccdefffedddeeefgggggfdcccccccdeeefilpuy}€€€‚‚‚‚‚‚€}}}}}}}~~€€‚„‡‹‘’““”•••”‘ދЋ‹ŽŽŠ‡††††…ƒ€€‚…ˆ‹ŽŽŒŠ‰ˆ‰Š‹ŒŽ‘“”–—˜˜–•“Ї†…†‡ˆ‰ŒŽŠ†‚}|}~€‚„†ˆˆˆˆˆ‡…ƒ€~~‚…‡ˆ‡‡††††…………†††‡ˆ‰ˆ‡…‚|yvsrqqsvz}€€{vqnnosy€‡Œ‡‚~{{}€‚ƒƒ‚ƒ…ˆ‰‰ˆ…€ztolihgffgkosuwxwurnkiikoruvtqonnnmmmmlkkklkjjjklnpqstvvxyzywtpmjihiklnprsuvvvwz|ƒ……ƒ€|wspnmlkkkkjiiijjkmmmlkkkjjijjkklkigedddeghhgfeddddddddddddegilmnmlkhedefggggggfeddddddddegikllkigffghijklmoswz|}}~€‚ƒƒ‚~{yyz}€{upjgfhlquy{|zxtojfdddefgilou{€„…„ƒ‚‚‚‚€~|{|€…‹‰…‚‚ƒ„ƒ€}|{zxtqnmopqqrsuvwx{|}|zywutssrpmjihiiiiiiiihhijkllllkkjihhijkkkjihgffgikkkjhfeddddefgijkllkjiiijmquxywtpmkkmqvz‚‚‚‚ƒƒ‚}|yupkgeglsz}{yxxz}€‚„‡‹“—™šš™™˜–•”““’’”–—–•’މ„ƒ…Š”—™››š—“ˆƒ€€€|xutuy}€€}vpljkmnmkihilortvy|ƒ…„vmgeddfhkmmkihfedegggginsx{~~~€ƒˆ“—–’‹‚ztpnoprtuvx{~~}zuplihhhihgfffhmswxxvsqpooqv|„‹”••’Іƒ‚„‡‰Š‡ƒ}vrqsw{}}|yrjddddddegiijkmqv}…‹Š„|vrppqrrstux{„Š•–•’މ„€~}||}~€‚…‡ŠŒŽŽŒŽ’–—˜˜———————˜˜™šššš™˜˜˜˜™›››››››››˜”ŽŽ‘“•—™š›››˜•“’“•˜š›››››™—––——˜™™˜˜—–•”““””“““”–˜š›››š˜•”““”•–•”“’‘‘’”•–—˜—–•”““”–—™™˜˜˜˜˜˜™™™™™™™™˜—–•”•–™››››››››™™™™™˜—–•”“‘Œ“•—˜˜––•––—™››››››››››››››š—”‘“•–——–”“’‘‘‘‘’“•—™››››››™•‹ŒŽ‘’’‘‘‹‰ˆ‡†…„ƒ‚‚€~zurpqu|ƒŠ‘—š›š˜•‘Ž‹‰ˆ‡†††ˆŠ’•˜™˜“‡‚~€„‰•˜™ššš™˜˜—•’ŒŒ”˜š›››››››˜†|uqptzˆŒŽŒŠˆ†…ƒ€‚‚‚€~{ywvvvvutsssrqomlkkmoqrqomlmmnnnmmmnopqrqoljihhfdddddddeimopppoomlkjihhhijlmopqrrrtx|€‚ƒ„„„„………ƒ~zvrppprrrpnlklnoonljhgghhhgfeedddddddddddeffghhgfdddddeghhiiiiiihhhgfedddddddddefffedddddeeddddddddddddeggggffeeddddddefggggggffhjlmmllkjihgfddefhknqtvxyyxwusrrssrpmllnprrpmifdddddddddddddeeeeeefgggggghjmpsuvwvrmifgjnsuvvvvwxxxwvx{€}xsoljjihijlnqtvvtsssrplgdddddddddeghiihhhggfeeeeedddddddegiknquxzywtokgddddeddddddfhiiiiijjkklnqu{‚ˆŒŽŽŠ‡„~{xusrsuwz|}~}}~€…‰‘”–˜™˜–”’Ž‹ˆ†‡‰ŠŠ‡…ƒ‚€|{{|~}||~ƒˆŒŽŽŒ‰†††‡†ƒ{wuuwz~ƒ…†ˆ‰ŠŠ‰‡†…†‰ŒŒ‹‰‡†……ƒ}ytqpqtw{|~€€}xrlihhhhiknpqpomjihfedddddgkmooonnnmligddddfimrvz}€‚{xutux|…ˆ‹Ž’”–—˜™™—”‘Ž‹‡„ƒƒ…‡ˆ‰‹Ž‘“”–––”’‰…ƒƒ†‰Œ’’‰…~|}ƒ†‡‡…‚}wrlgdddddddeeeffeddddddddddegjlmmjgedddddddddddiou|€„ˆŠŠ‰ˆ„~wrppruy}ƒ…†„|vqnnqw‹“™š–‰‚{tomoppommljiiiiiiihhgfffghiihhhhikmljgfedddddddddefgghhgfeddddeghjlnoprtx{~€~{wsqpprw}‚†ˆŠ‹ŒŒŒŽ‘“”•–——˜—•“‘‘“””’ŒŒŠ‡…„„…†‡†ƒ€}{{|{zyywvttuvxy|~€ƒ‡ŠŽ’“””””””““’’‘’‘ŽŽŽŽŽŒ‹ŠŠŒŽŽŒ‰…~|{|~€„‡ŠŒ‹ˆ…ƒƒ…ˆ‹‘“““’‘‹†}{zyxwxz|~~|ywuvx|€„†ˆ‰‹‹Šˆ††‡ˆ‰‰‰‹“––”“’’”•——˜˜—•“ŽŽ‘“”–——˜˜—–”“’“•—˜™™ššššš™™˜˜™ššš™™˜—•“‘‘‘ŽŒŒ‹ŠŠ‰‰‰‰ˆ‡†…†ˆŠŠˆ„€}|}ƒ†‡‡††‰’”•”‘ŒŒŒ‹ˆ„€}{|}}{xsnkhfedeiow€‡Ž“–˜™™˜–”“’‘‘“•—˜˜—–•”“’‰ˆˆ‹Ž‹‹‹†‚€ƒ‡‰‹‹‰‡†„‚ysmhffeeefgghggeddddddehlpuy{{zxvsqmjhinswy{}†‹’’‘ŒŠ‡„€ƒ‡“˜››™–’‡‚~}|}€‚…†…‚~zvsrrtvz€ˆ–𛙕І„‚€~|ywurpnkihggggffghiihggffghikkjigfffghhhhhjklmljgfeefgggffghhhgfeefgijkllmmmnnnnnoopppponmmlkihhhhhhhhiiiihhhhhhhgfdddddddeghjkkjihgghhjkllmmnnopponnmlllmnoonmkihgggghhhijkkkkkklnooonnnnopqpnmmpu{€‚‚‚„‡‹ŽŽŒŠŠ‰‰ˆ‰‹‘”˜š›››š™˜˜˜™š››››››››š™˜–”’‘”——•’ŒŠ‰‡…‚€„Š“•–•”“”–™›››šššš™™™™™—•’’“’‹ŠŒ’””“‘‘’•—˜˜™™™™™˜—–••–—™››››™˜—–•‘Œ…zwvvxzzxupljijiihhhggfeddefghhhgfeedddefghhhgffgiiiijkmpqrrrqonmmmotz‚„…ˆŠŒŒŠ‡ƒ€€ƒƒƒ‚€}zvrnlkjihhiiiihhgfffggggfeeefffghiiihijloqstttvz~‚†‰Šˆ„||„‹‘•˜™šš™™˜—–•””“‘‘’‹…~yvvwz|ywvttuwz|~€‚…ˆ‹Ž‹‰ˆˆ‰Š‰‡†…„ƒ‚€‚‚ƒƒ„„„ƒƒ‚€~€‚„†‰Œ“•–—––•““•–”’‘ŽŠ†}zxxwvutsrrqqonljijklnptx{||{zyxusrrsv{ˆŽ‘’’‘Œˆ„‚€€€}zvtsuwy{}‚…ˆŒ’’‹‰‡‡‰ŒŽŽ‹‡‚}xvvwxxwurnkhfeeeefghijiihhhijjjihggghhhgfeddddddddddddddddeeedddddddegjklljheddddeefgggggggffffghhhiiiihgfeeefggggggffeddededededededeeeedededeededededededeeeeeededeededeeefffffffffggggggggfeeeeeeegkosuuspmkjlqw~†”˜™™™™ššš™˜˜———˜˜™™˜–’ŽŠ‰‹Ž’”•”’Їƒytqpsw{‚€€~{unjhikpuz}zyyz{}}~}|{zz{}‚€ƒ…‡ˆ‡‡…ƒƒ„‡ŠŽŒŠ‡††‡ˆˆˆ†„‚{xuuvy}€‚ƒ…‡Š’“”•”’Іƒ‚‚‚‚}zz{‚†‰‹ŽŽŽŽ’“””’ŽŠ†„„†Š•™š™™˜˜˜˜˜™™™šššš™˜—–––•””•–—™™š™™˜—–“ŽŒŒŒ‘’‘‰…ƒƒ„‡ŠŽ’”•–—˜™™™™˜–”’ŽŽŽ‘’““’‘Ž‹ŠŠŒŽ“–—˜™™ššššššššššš—•”•–˜šššššššššššššššššššššššššš™™˜˜˜™™ššš™–”‘’•˜ššššš˜—––—™ššššš™˜–“Œ‰‡†‡ˆ‹’•—™™˜–“‹ˆ‡††…„ƒƒ„…‡‰‹ŒŽ‘‘‘‘‘’““””“’Ž‘’’’“”•—˜™˜—–”“’’‘’’’’’““”••”””••••••••–—™šššššššš™™˜—–•“’’“”•–—––•”““““’‘‘‘‘“”–———–””””•–——–•”””””’‰†…ƒƒ‚‚ƒ…‡‹“•––”’ŽŽŽŒŠ‰ˆˆ‰‹Ž‘“””“’‘‘‘‘‘‘Ї†……†……ƒ€|ywvwz}€ƒ„ƒ‚€~}{zxvspnkjklnoomjgeeeegikkkjihhffefghjjjkklmnmmmmlllnqu{€„……ƒ‚‚‚‚‚€~}{yxwvwz~‚„…„ƒ‚‚‚‚ƒ‚€€‚‚€~|{zxurolkklmnoooprstutqnkjlortutrqqsvy{{||{zwtqonnmllllnprtttutttuuvwwwvurpnmmmnopqsstuwz~„ŠŽ‘‘‘’’““““”“’ŽŽŽŽŒ‹‹Œ“—™™™™™™™™™™™™ššššššššššššššššššššššššššššššššššššš™•‰ƒ~|{{{zzz|~„‡‰Š‹Œ’–˜™šš™——––•’Ž‹‹Œ’““’‘‘‘‘ŽŒŠ‰Š‹‹‹Š‰‰ˆ†„‚€}||||~„‡ˆ‰‹”—™˜–’Œ…€‚„…††…ƒ}}‚†ˆ‰‰‡„ƒƒ†‹‘‘‘‘’““’‘Ž‹‡ƒ€‚…‰’““”“’‹†‚~|{{{}€„‡ŠŒŒŒŽŽŽŽ’•——–––—––——–•““”•–———˜˜˜–”’Œ‰‡‡Š•—˜—–“І„„‡Œ‘•—–“‘‘’”–˜˜˜˜˜˜–”““•™ššššš˜–•”“‘Œˆ„zurqqrsuvutrqqpqsuvwxyzzzxwwxyyyxwvvwx{}†‹ŽŽ‹‡‚}ytplihjnsx|€‚„„‚zurqrv{‡Š‘“•–——–•“Œˆ…‚‚ƒ†ŠŽ‘”•”“‘ŽŒ‹ŠŠŠŒ“•––˜™™—”’’’“““’’’’“•••“’’“•–—•’ŽŒ‘–˜˜—––••”””•––––——˜™š™˜—•””““”••––•”“‘‘’““““”–•“ŽŽ’’’Œ‰ˆ‡‡ˆ‡…‚~}~€‚ƒ„††‡ˆ‰ŠŒ“••”“‘’”˜ššš˜–•”“‘‘‘Ž‹†‚~||}‚…‡‡…ƒ€~}||zxuromllmprttsqomllmoqqolihhijlnooonljihilrx~‚ƒ‚~xsommoquxzzywtssuxz}}}{ywusponnnnooppoliffgiklkihfeeeehmrw{ƒ‡Œ”—™™˜–”’Œ‰‡‡‡†…„ƒ‚ƒ†‰Ž“—™˜˜—––•”’ŒŠŒ•˜™™™ššššš™˜˜˜˜˜˜˜˜™ššš™˜•’ˆ‚}yvvwz}~}zwspppqsux|‚ˆŒŒŽ’•˜™™˜˜˜™šššššš˜•‘Ž‹ˆ†……ˆŒ‘””‰ztrrsvy{|}|zwtsstvyz{zxvtssstuwyzz{{{yvromnptx{||{zzywvuuvx|‚„ƒ~|{{~ƒ‰”™šššššššš™—•”””“‘‰‡ˆŠ‹‹‰‡…„†ˆŠŠˆ„~yvtttuvvvtsrpnmmlkklllkjhfeefhiklnoonlkjjjihggfffhlrx|~€„‡‹’’Œ‰‰‹“—˜˜–”’ŽŠ„|upmllllmnmmkjiijkmmmljihggfgghiknruy}„…†††‡‰‰‰‡„€{wsstx|~}zuqnnptx|}}{yxvvvvvvwz|~~{wtqqrtvxz{~ƒ„ƒ‚‚ƒ…‡ˆ‰ˆ…~|{|„ˆ‹ŒŒŽ’”–˜šššššššš™˜˜———˜˜™™™™—•“’“”–˜šš™˜–•””•———–––——˜˜˜˜˜———————–––••••–––••–——˜˜–’ˆƒ€}||{{{{}…‰’“••––—––”“‘ŽŒŠ‰ˆ†…„ƒ‚€~|ywusokgeegjmopqponmkjjjjjhgfeeeeegijkkjjiijjlpuz€…‰‹‹Š‰Š‹“˜šššššššššššššššššššššššššš™—”І‚€€‚…Š“”’ŒŠ‰‰‰ˆ‡„~€‚…‡ˆˆˆ‡†…„„‚}{yxwvuttttuwxyz{{{{{z|~€ƒ†ˆ‰‰ˆ†ƒ~}{wrmhgghikoswz}~}|zyyyyyz|ƒ†ŠŒ“–™ššššš™™™™˜˜˜™ššššššššššš—•’ŽŠ„~xspprtvxyzzzxurpnmoruxyz{|||}„……|tnjijnruwwusrponmkhfeeeeeeeeeeefghikkklmorux{}€‚ƒ…‡‡‡††…„ƒ„„…„‚~xsomorvy{||zyxwxwwwvusqonmllkjjjklmnpruvvtronnnnmkjhggghijjigeeeeeeeeeeeeeeeefiow€†ŠŒŽ‘’“”•••”’ŽŽŽ‘“””“‘ŽŠ†ƒƒ‡‹Ž‘““”••––––––––—————˜˜˜˜˜˜——––•“ŒŠ‰Š‹‹ŒŒ‹Šˆ…‚€~~~|xtpkgeeeeeeeeeeeefimqsuvuusrpppqqpmkigggghiklmnnoprstuvwwxyyyyz{|}€ƒ†‡‡‡…ƒ€}{z{~‚†‰‹‹‹ŒŽ‘“•–—————•’‹‰ˆˆˆˆ‰‹ŒŽ‘““’‘‘“•————————•”’‹Š‰‰ŠŒŽŽ‘“•–—–•”“‘ŽŒ‘”––•“ŽŒŠˆ†…„ƒ‚ƒ†ŠŽ’”–––––•”““’‘ŽŠ†ƒ€ƒ†ˆ‹ŽŒˆ…‚‚ƒ†‰‹ŒŒ‹Š‰‰‹’”•––•”“‘Œ‰ˆ‡ˆŠŽ‘”•”’Іƒ„†‰ŠŠŠ‹ŠŠ‹’”••“’‘‘“–˜šš™˜–”ŠŠŠŒŽŒ‰†„‚~|zxusrqqstvxzzxuqlighijkmopqqrtwy|‚‚{xtqooopqsuwyzzyuqkgeeeeeeeeeeeefhjmpsuvvuttuvy|~€€}{xwx{‚…‡‡‡‡ˆ‰‰ˆˆˆ‰‰Š‘‘‘‘‘’“””•••””””“”•–—˜˜——–––•“‘‹‰‰‰ŠŒŽŒˆ„~{ywvvvwwwxyyywvtsrsssssstuvy|~€€~{xutstuwyz{yvrnkhhhjmpsuvvtssstuvvvvvvvuspmjhhhiiiihhhhiijjiihgffefhiklmmmlmoty~„„ƒ€|wsommmnooopqsuwxyxvtromkihgggffeffghkmpsux|‡‹ŒŠˆ‡‡Š‘“’‘‹‡„‚ƒ„…††…~{z{~€‚„…„ƒ‚€}{yz|…‰Œ‘“”•••••–———–•“‘’”•–——–•“‹ŠŠˆ†…„ƒ‚‚€€‚ƒ„„~zxwvvvvvusqomlkklllllkjjjklnoqrsssrqqrtvxwurnkjihhhiiiiijlnpqrrsstuvvvutsrqqqrsuvusqqqpnnnnnoppqqqrrrqpnlkiiijklmmllmoqtvwwwwvutrqqppqqqqqqqqpooppqpnmlkkkklkjhgfffggghijjkkkkllnoppppponmlkjjjjjknruwxxy|ƒ‡Š‹Š‡{wsqpoonnnnnoppqqqpponoprtuvvutsrqqqponmmnortvwwtplhghlqv{‚ƒ„„„„„„…‰Œ“””‘Ž‹‡ƒ€€‚‡Œ“••–––––—˜™˜–“†xspmlkkklotyƒ……†‰‹‘“”•••”““””“‘Ž‹ˆ†…†‡ˆˆ‡‡†††‡‡ˆ‰ˆ‡ˆŠ‘”–—————–––—˜™™™™™™™™˜˜——–––––————–•””””•••••••••”””•••––––––•••––•”••––––—––————˜™™™™™™™˜˜˜™™™™™™˜———–•”“’‘ŽŽŽŽ‘’”••–——————————––––——˜™™™™™˜——˜™™™˜—–••••”••––——˜˜™™™˜————˜˜˜˜˜˜—“Žˆ€xqlhghjmpuz~€}|}~„††‡†††††††††…‚|{yxvtrqonnnnmlkjjkmprsroljiiijkklmmmkjhhhjlpsuusokhffffffffffgiijkklnpsvwxxxxxwwwxz|~€‚‚ƒƒƒ„…†ˆ‰ŠŠ‰ˆ‡…‚}{z{}€…ˆ‹‹‡„‚‚„‡‰ŒŽ‘‘’’Ї‡ˆŠŽ’•—™™˜˜˜˜˜˜™™™™™™™™™™˜˜˜™™™˜—•”“‘‘’“•—˜˜™™™™˜˜™™™˜—•”‘Ž“—™™™˜—––”“‘Ž‘“””””••–––––•””““’’’’‘‘ŽŠ„~yxyz{||{ywurqqsux{|||}}~~}}}‚„ƒ}||~…ˆŠŠ‰‡††‡ˆ‹Ž‹‡„‚‚„‡‹’““’‘Œ‰…|yvuuw{‚…††…†††‡‡†…„ƒ„‡ŠŽ‘“”•–———–”‹†„†Š‘”–—–“‘ŽŒŒ‹Šˆ‡…ƒ{xtrqsvy{~€}{zz{{{{{{{ywtqpprtuvwwvtpmklot{‚ˆ‘“•–––”’Їƒ€~||}€ƒ…‡‡†„ƒ‚‚ƒ„…††…„~|zyxvtromjgffffffgkptvusqonnorw}ƒ‰ŒŒˆ„€|yyz}€„‡‹ŽŠ‡„‚€}zvrnjihiklllkihhijlpu|‚‡‰ŠŠ‹‹Œ‹Šˆ„€}zxwvuttttuwy{}}|{ywtrrsuxz|}„ˆ‹Ž‰„|z{|~€‚„…†‡‡ˆ‰Š‹Œ‹‹‹ŒŒŽ‘’’’‘Œˆ„‚…‡ˆ‡„‚}|||~€‚„‡ŠŒŒ‹ŠŠŒŽ“•—˜™™™™™™™™™™™˜——•“Œ‹Š‰‡…ƒ€}}|{zyy{~„‡‰ŒŽ‘‘‘’”•••”“’‘’“”””•–––•••–––––••••–••”“‘ŽŒŠ‰‡…„ƒ‚‚‚ƒ……„‚‚‚„†‰’•—™™™˜—–––—˜˜™™™˜˜˜˜˜˜™˜˜—•“’‘‘’“””“’Šˆ‡‡††…„‚€~~€}|zxwxz}€‚‚‚„‡ŠŠ†ƒ€‚…‡ˆˆˆ‡†…„‚{wspljjkoswy{|}~~~}|{zxwvsplihhhiijkllmnqsuxz{{{{|}~€‚…‰‘’“••–––––––•”’’‘‘‘‘‘‘’’’Œ†€{xvuuwz}€‚ƒƒƒƒƒƒƒ„„†‰Ž’•––”“‘ŒŒ“––•””““’’‘Œ‰†ƒ‚‚ƒ…‡ˆˆ†„~}||||{yvsoljjknprttroligghhggffffffffggggffffffffffffggghhgfffffffffgjmnmljknrvwxvsnjgfghknpqpnmkjiiiiiiiiiiijlnppomljhgghjlnnmlkkklmmmmmnopqrrrrtuutrqppqrssqnjhhiknsw{|}||{{{|}~~|{yxwvtsrqqponmmmmnnnnnopqssssrstvxz{{xtpnnnmjihhjloppnllmoqstvvwwxxxxxyyzzzz{|}}|{ywvvuvwwxxwuuttsqqqrsuuutrpnmlkjjijjklmnoomjhghiklmmmlllkkkmoqtuutromlllllkkkmosw{}|zvrnlmoruwy{}~~|zwutuvxyywvuvwy|~€‚ƒƒƒƒƒ„…†ˆ‰Š‹‹‹‰…‚}|||{ywtrppqsuvvsnjgfffffffffffffghhhhhgfffffffghiiiihggfghiklmlljihhhhhgffffhkmnonnmmmmnopqrtuwy{|~~|zyy{„‰Ž’‘‰†‚}{zyyyywvutssrqpopqtwz|~€‚ƒƒ‚€€ƒ‡Š‹Šˆ†„ƒ„†‹‘–˜˜–•’Žˆƒ€€‚„†ˆ‰Š‹ŒŽ‘‘‘ŒŠ‡…„ƒ‚‚„‡ŠŽŽŽŒ‘“”“’‹ˆ„€|ywutttvwxwvtrsuy}‚…‡‡…‚~|z|~‚…ˆ‰‰ˆ‡……†‡‰ŒŽ‹ˆ…‚|zxvtqnljjkmorsttuvwwvtrpnnpqstuvwwxxyyyyyyz{{yxwwwxxwwvuuuvy{~„‡ŠŒŽ‘‘‘’‘‘ŽŒŠˆ‡ˆ‰ŠŠŠ‰‰ŠŠŠ‹‹‹‹‰ˆ‡…„ƒ‚‚‚‚‚‚ƒ„‡Š‘’“•–˜™™™™™™™™˜——–••––—˜™™™™™˜—–––———˜˜˜˜˜˜˜˜˜˜———˜˜˜˜˜——–––•’‹ŠŠ‹ŒŽ‘‘‘ŽŽŒŒŒ‹‹ŠŠŠŠ‹ŒŽŽŽ‹‰‡„€}ywvvvwxz{{zywvuvwz}„†‡‡‡ˆˆˆˆ†„‚€€ƒ†ˆ‰ŠŠŠŠ‰ˆ‡††‡ŠŒ“”••”“““““““’‘‘’‘‘‘Ž‹‰ˆˆ‰Š‹‹‰‡„~}}€‚„†‡‰‰‰‡…‚‚‚„†‰‹Ž‹Š‰ˆˆ‰ŠŒŽŽŒŒŒŽŽŽŽŽ‘’””””““““”””“’Ž‹ˆ‡‡‡‡‡†…ƒƒ„†‰ŒŽŒŠ‰ŠŒ‘“”••”’Œ‹‹Œ‘“•––——–•“’‹Šˆˆˆ‰‰‰‰ˆ†„ƒ~|ywutsttuvvuusrqponljihjlorsttsqqqqrrqpoooprsttsqonmlmmnnnlkjiiiihggghijkkkklmoqtvy|€€~}}~€ƒ…‡ˆ‰‹Œ‘”–˜™™™™™—”‘ŽŽŽ’“•–—™™™™™™˜˜————–••””””•••––——˜˜—–”“““““”””””•”’ŒŠˆˆ‡‡‡††‡ˆŠŒŒŒŽŽŒŒ‹ŠŠŠ‹ŒŒ‹ŠŠŠ‹‹‹Œ‹‹ŠŠŠŠ‹ŒŒŽŽŽŽŒŠˆ‡…ƒ€€‚„†ˆ‰‰‰ŠŠŒŽ‘‘’““’‘‘“•–—˜™˜—–•”””•—˜™™™™™™™™™™™™™™™™™—–”””•–•”’’“•—˜™™˜—”‰„~€‚„…†††……„„…†…ƒ~{zy{~€‚„„‚}wqligghikmoqsttrpnkjiiiiihhggghijjkjjihhgghijklmmnprtw{}~€ƒ…†‡‡†„‚€~~€‚„†‡‡†„ƒ‚€~{xusrstuvvutromkjjjjiihhijklmmnnmmmmnnoonnmmmmmmmnonljhgghijklmnnnnmlllmnoopqsuvurpopqrsrqpooppqrsttsqponnnnopqqrrqponmllkkklmnopqsvy|~€‚‚‚€~{xtpnmllmnpruy}„…†††ˆ‹Ž‘‘‘‘‘‘‘‹‡„‚‚ƒ„„…††‡‡‡‡ˆˆ†„€|yvsrqrtw{ƒ†‡‡†„€}zxwvuutuvy}„„‚|yvutrpmkjjkklmoqsvxyyxvrnkjiijjkklllkkklmmmkjjjjkkllllkkklkkihhhhhiijkkkkkjkkklmnmlkjiiijjiijjklmmmnoppponmmmmmnnmnnoppoonnnmmmmnnnnnmmlllllllllkjjiihhhiiijjjjjiiiiihiiijjkmqtwyywusrqponnopqqpnljiiijjjjjjiiihhiijmpuy~ƒ‡‹Ž‘‘‹ˆ†††‡‰‹ŒŽ’“•––———————————˜˜˜˜˜˜˜˜˜˜˜˜˜———˜˜˜—–•••––——–––••”’’”•–––——˜˜˜˜˜—–––•”’‹‰‰ŠŒŽ‘‘‘‘‘“•—˜˜———˜˜˜˜—————˜˜˜˜˜˜˜˜—”‘ŽŠ†ƒ~}}}}~€€ƒ…‡ˆ‰‡…‚€~}}}}~€‚ƒ„…†‡‡ˆ‰‰‰‰‰ˆ‡†††‡ˆ‰‰Š‹Ž‘’ŽŒŠˆ…ƒ~{xutssssstsrpnkigggggggghjlnprux{}ƒƒƒ‚€}|{zzyyyzz{zzxvtrppponnmmlllmmnnmlkjjjklmmmmlkjjjiiiiiiiiiijklllkjjjjjklmnnnmllmmnnooopoooonnnnnnnmmlkkkkkkkjjjjkkllmlllllkkkjjjjjkmoppoonnnnonnmmmmnoqrtvxz|~~}{yxvtqomllmortuuspnnnoonljhgggghiijknsw{~‚„†††„}ytqopponmllllmnoppnljijklosvz}~|xusrtuvvwvvwwxy{|~…ˆŠŠ‰†ƒ€€€|xuttuxz|}~~}|{ywwy}€„†ˆŠ’”•–”’މƒzxvvvwwwvtrpmjjjjjklnqtvxxxvusqonnmmlkjklnqtwz|~}{wtqonnnpqsuvwxxwvurpnlmosw{~~}|zvrnkihiknqtx~„‹”–—•“‘І„ƒƒ„†ˆŠŒŒŠˆ†„‚‚‚ƒ‚~|yxxxyzzz{|~€~}|}ƒ†Š’“““““““““““’‘ŽŽŒŒ‹Šˆ‡††……„ƒ‚€}{zyyz|ƒ‡‹Ž‘ŽŒŒŒŒŽ‘’””••••••–•••••–————––••””•–––––•••••”’‘‘‘“”––——––––—————–––•”“‘‹ŠŠ‹“•——–•”“’‘‘‘‘’’’’““”•–———–••••–––––•••––———––––––––••••••––––•’‹‡„ƒƒ‚‚ƒ…ˆŠ“•––––––•“ŽŒ‹‹‹Œ‘’“’‘‘‘““’ŽŒ‹‹ŒŽ’”–————————––•”““’’‘‘ŽŽ’”•–———–••••–—˜˜˜˜˜˜˜——––•”“’‘‘‘‘‘‘’’““”•–——–”““””•–——˜˜˜˜————˜˜˜˜˜—–•”““””””•–—˜˜—•“‘Œ‰†‚|ywvtsrqpqruy}„†‡…„‚€~}|{{zzyyyzzzxvtqomkjiiijjiihhhjlnpppoonnnnopqrstuvvusqnmllllmnpqrstuvwxxwvuuuttrppprtvxyzz{{|}€‚ƒ†ˆ‹‘“”•••••”“‘Œˆ„}{yxxxxxy{|~€~|{yxwwutsrqpooooppqqqrstuvwwxyyz|}€‚‚ƒ‚€~~~€‚‚‚|zxvvvvvwvtttuwxxwvutuvxy{|}~€€€}{ywvutuvwxz{|}}}{zxvuttvwz|}~}zvrnkiihhgghiijjkkllllkjkloruwyzzyxwvwxxwusqpqrtwyzzyxvsokhggghknquxz}~~~~€ƒ†ˆ‰ŠŠŒŽ‘“”•––——˜˜˜˜˜˜˜˜˜—–•••••”‹‡„ƒƒ„…†††…………„ƒ€~{{{|}~~€‚„…††††………†‡ˆˆ‰‰ˆ†ƒ€}{xvusrqponmljihijmptwz{|~€„†‰‹Ž’“”““”•––––––––•“‘ŽŒ‹Šˆ…‚€„‡Š‹‹‰‡„~}~„ˆŠŠ‰‡†…†ˆŠŒ‘’“““’‘Ž‹ˆ…‚~{zzz|~‚€|uokjjjiihhhhhgghijjkkkkjjjjjjjjiiihhhhhiihhgggghiijjjihhhhhhhiiiihgggggggggghijklmmlllmnoqrtvy{}~€€€~|yuqnkjiiiiihhhgghhihhhgghjlmnoopqsuvxwwuuuuwz|}}{xvvwxz|}~~~~}|{{|}~€‚ƒ„…†‡ˆˆˆ‰‰Š‹ŽŽŽŽŽ‰„zvtsstuvvusqonnmmmnopqrrqponmmmorw{€‚„ƒ‚€~}}„†ˆ‹Ž‘’“”•–˜˜˜˜˜—––••––––••”“’‘‘“”””“’ŽŽ’”––—––––————––••””””••–———–•”““’’‘ŒŒ‹‹Ž‘’’’‘‘‘‘‘‘‘‘‘’““”””““’“”••–————————˜˜˜˜——–—˜˜˜˜˜˜˜———––•””””””•••••••••–––•”“’ŽŽ‘‘‘ŽŒŠˆ†„‚€~}{ywwwxz|~€‚‚ƒ„„……………………………†‡‰‹ŽŠˆ…ƒ€€ƒ„…………„„…†…„‚}||||~€‚„†ˆ‰‹‹‹‹ŠŠŠ‹ŒŽ‘‘ŽŒŠ‰‡†……„‚~~~~}zxwxz~‚…ˆ‰‡ƒ}vqppsvz}€‚‚‚‚‚‚‚€}|zyyyz|~€€}{xvtsrsvy{||xsnkjkorvy|~€‚…ˆŒ‘‘‘‘‘ŽŽŒ‰…€{xvuuutrponnoqsuwz|}~}|zwutstvx|…ˆŠŠ‰ˆ‡‡ˆŠŒŽŽŽŒŠ‡„ƒ‚‚…ˆŠŒŒ‹‰‰‰‰Š‹‹‹‹‹Šˆ†ƒ{xusrqommmmmmljjiiiijjjklorvy{}}}{zxwvutsqooopqrrqpomlkkklllllkkjjjklllkjjiiiiijjjjjiihggggghiiihhhhhhiiijlnqsvx{~„†ˆˆ‡†ƒ€|yurppsvz~ƒ„……………†‡ˆŠ‹Œ‘’”••”’’’‘ŽŒŠˆ†……‡Š‘‘Ї…ƒ‚€}zwusrqomjhggiijjklllkjjiiihhhgghhjlnppomllmmmlkkkjjjkkllmmmlllkkkkjjjjjjkkllmnopqqqpppoonopty~ƒ‡Š‹‹‹‰‡„‚}}}‚ƒƒƒ‚€~|ywwxyzzzyyzzzzyyxxxxyy{}‚…ˆ‰Š‰ˆ…ƒ}yupmlkklmnqtwz||{zywusstuxz}ƒ†‡‡‡†……………††‡‡†…„ƒ‚‚~}}~‚„†‡‡†…„ƒƒƒƒ‚‚‚‚ƒ„…††…„ƒ€}|yvrolkkklmmnnnoppqrsuvvwvuuuvwyyz{|}~€€~}{zyyyyzyyyyyz{{|}~€€~{wtpmjhhhhhhhhhhhhhijkklllllkkjkmptw{~‚…‡ˆˆ‡…„„…‡‡†„~{yyz|}~~}{zyyxwvvuutttssrqppqtw{€…‰ŒŒŠˆ„}zyxxz|€„†ˆˆˆ‡‡‡ˆŠŒŽŽŽŒ‹‰ˆ†„}{zz{|~€~{yvtrqqrtw{‚†‹“–—————––•”““““”•–———–•••••––——–•“Œˆ†††‡‰‹’”•”’‘ŽŽŒŠˆ††ˆŠŒŽ‘ŽŒŠ‰‡…ƒ‚€‚ƒ„…††…„‚€}{yxxxyz{}}~~„‡ŠŒŒ‹‰‡…„ƒ‚€€~}|{{{|}~€ƒ†‰Œ’”•–––——————————––••”””“”””“““’‘‘ŽŽŽŽŽ‘’”””““’‘‘ŽŽ’“”••”“’‘‘‘‘‘’’‘‘‘‘‘‘’’’’’’’’’““””••–––––•”“’‘‘’’“”•••”“““””•–———————––––––––––––––•••””“’‘‘‘’’‘‘‘‘‘‘’’’“““’’’’’‘Œ‹ŠŠ‹Ž’“”•–•”“’’’”–——————————–”“““”–——————————————•”’ދЉ‰ˆˆ‡‡‡ˆŠ‹Œ‹ŠŠŠŠŠ‹‹ŒŒŒ‹‰ˆ‡†…ƒ€}zvrolkkkjjkkjhhhhhhijklnprvy{}~~}|{zz{~…ˆ‹Œ‹‰‡…„ƒ‚‚ƒ„…‡Š‘’‘‘‘’“’’Œ‡ƒ}|zxusqomljihhhhhhhhijjkjjiiiijkkkkjiihhhiijjjiiiiijjjjjjkkklmnnnmlllmnoppqqqqpppoooppooopqrsttttsrrsuz„‡‰ŠŠ‰ˆ‡…„„„„„‚~~€‚„………………„ƒ€~}{yxvtsrqqpppoooppppppponnnnnnnnooooonnmlkklmnoqruw{~…‡Š‹Œ‹Šˆ†…†‡‰‹Ž‘“”••••”‘ŒŠ‡…‚~zvsrsux{}€‚‚‚‚‚‚„‡ŠŽ‘“•––——–”’Ž‹‰‡…ƒ€~}}{xtpljiknrux{ƒ…†‡ˆ‡‡…ƒ‚€~}|zzyxurolkjjkkkkjiiiijjkkkllkkkllmmmlljihhjlorttspnljjjkkjkkmoqtwz|~~}|zz{}~€€€}{wtqoljhhhhhhiijkmpsvwwvtsrqqrtwxxwwwy{„…†‡‡‡ˆ‡„€|ywtsqponmmllllmnopqqpomjhhhilnopponmmmnopqrrqpppqsuwy{}€‚…‡‰Š‹‹‹‹Š‰‡…ƒ‚‚‚ƒ‚}{zyxxwxy{}„‡Š‘‘’“••”’ŽŽ‘’”••––•”“’’’’’’’’’’‘‘‹‰ˆ‡ˆ‰‹’”••••–••“‘‹Š‰ˆ†„‚‚‚ƒƒ„†ˆ‹Ž’””•”“‘Іƒ|xusrrstuvutsqonmmnnnnnnnpqrsrqpoonnnnmmmlllkkjjjklmnnnnmmllkjiiiiijjkkkkkkkjjklmnprtvusqpppoonmlkkkjihhhijlnoonmmmnnnmlkihhhhhhiiiiiijklmnnnmlkjjjjkkkllmmmmllmmmllllkkjjjjjjjjjkklllkkllnpswy|€€~}{z{|~€~~‚…‰‹ŽŽŽŽŒ‹Š‰‡‡‡ˆŠ‘’’“”–—————–••”””“’‘‘‘’’“”––——–•”“’‘‘‘’“”””“’‘‘ŽŽ‹‰†…„„………„ƒ}{{{{{{ywvuuttttuvwxxwvtttvx{}‚„††…‚~yvtsrqpooooooqsvzƒ‡‰Š‰‡„‚€~}|zwtsrsuvxz}‚‚‚‚‚ƒƒ„„ƒ‚€€‚„‡‰‹‹Š‰ˆ‡†‡‡ˆ‰‹ŽŽŽŒŒŒŽŽŒŒŒŒŒ‹Š‰ˆ‡††‡ˆ‰‹ŒŽ‘’’““‘‹‡„‚‚ƒ…‡ˆˆˆ‡†„ƒ~{wusrsvxyyz{|}~€‚€€‚„†‡‡††…„„………………††‡‰Š‹ŒŒ‹ˆ…ƒƒ†‰ŒŒ‰…‚}|{zwsoljjiihhhhjlnpsuwyz{|}~€‚„„ƒ‚‚…ˆŒŽ‘‘‘‘‘Ž‹‹‹ŒŒŠˆ…ƒ~}||{||~€‚„…†‡‡††……††‡ˆˆ‡†…„ƒƒƒƒƒ„†ˆŠŒŽŽŽŽ‘“””•••––——•“‹‡„€~€‚†ŠŽ‘“’‘ŽŒ‹‹‹ŒŒŒŒŽ‘’’‘ŒŒŒŒŽ‰ƒ}vqnmlnooooooprtvxz|}~~}{zyxwutrqpnnmnmmlkkkkkkkkkkkllmnopqqqonmmnqtx}€‚‚€}yvsrqpppooooooponljiijkllmoruvwvtrponmllnqtx|~€‚ƒ‚€}xtrrtvy|}~~ƒ†‡‡‡††‡ˆŠ‹‹‹Š‰‡…ƒ€€€€€€€~~~~}|{{|}~~|zxvtrqpppqsuwxz{|{yvsqooonmmmmmmmmmnmmlkkklmnnnmkjiijmpsuuspnnorvy{|{xuqnmlkkjjjkklmnnnnopppomkjkklmmmlkkjkmorvz}€€}{xvtromkihhhiiiijklnpswy{{{{|}}|{yxwwxz|~€€}zwutvy|€~~}}{xurpnmmmmmlllkklnprtuvwz}€ƒ…†…ƒ‚‚ƒ„†‡‡†…‚€}zvtrqqrtw{‚„…„}|}‚„†ˆŠ‹‹Šˆ†„ƒ}{zxvtrqoopqstuwy{~‚‚‚€~|yurpppqrrqomkkmnprtuvutsrssuvwxyz|ƒ‡‹‹‰†„„†‰‘“”“’’’““”••””“’ŽŒŽ‘‘’’“““““““”””””““’’’’““““““““’’’“”•–—––••••––———————––––•”“’‘ŽŽ‘“••••”””•••–––––––––––––——––••–••“‘Ž‹Šˆˆˆ‹Ž‘”••–•”’Ž‘’””“““””•–––••””““”•–––”“‘ŽŽ‹‰ˆ‡ˆ‰ŠŠŠ‹Ž‘‘‘ŽŒŒ‹Š‡…ƒƒ‚€~|zvrnkiijklmmmmmljihhhhijkmmoprtvy{~„‡Š“•––––••“’‘ŽŠ…€|zxyyyxwvtttuvwwwvuvz~„Š’’’Ї†††‡‰ŒŽ’“”•••––––•”’‘“–————–•••••••••••••••••••••”““’‘‘‘’“••––––••”“““““““’’’’““”••••””””””””“’’’“”•••””““’’’“””•–––––––•••••””••••””””“““’“““““’‘Œ‰…‚~~€€|xurpnnnmlkkkllmmnpsw{ƒ†‰Š‹ŒŒŒŠˆ„~~€ƒ†‰‹‹‹‹ŒŽ‘‘‘‘‘‘’’“““’’‘‘‘‘‘’’“’‘Œˆ„‚~}{zzz|ƒ†‰ŠŠ‹ŒŽ‹ˆ…„ƒ„†ˆ‰ŠŠ‹‹ŽŽŽ‹Š‰‰‰Š‹ŒŒŠ‡ƒ{xvtrqoonnmnooonmmmnnnmmllmnoqtuwxxwvsqonmmmnopqrstvwy{}‚„„„‚|zzzz{{zywvvutsrrstvwxvtrqqqponnoruxz{|}~}}|{yxwvvwxxyyywutstuutsqomkiiijjkkkllmmllkkkkklmnopqqrrqqpponnmmlmnptwy{||{ywutromkjjkllmnoppppppoonmmmmnnnoqtwz|{yvsqpopqrrrstttrqonnmmmmnnnooonnnnmmlkjjjkkkklorvy}€‚ƒ„„„„…‡ˆ‰‰‰‰‰ˆ‡„€zuqpppppppoonmmmpsvxxxvtronmmnnooprtvwxwvtsrrrtwz~ƒ……„‚~~~~~€‚…‡‰ŠŠˆ†‚}wrmjiijklnqstttsrrrsuwz|}~€ƒ…‡‰‰ˆ‡„~{xvvvwxy{}~€€}zwtsrrsstuvvvvvusqmjiiiiijlmoqrrrrrstvwxxwuttux{‚…‡‡†ƒ€}||}‚†‰ŒŽ‘‘‘‹‰ˆˆ‰‹‹ˆ„‚ƒ†‹‘“”•–––•”“’’’’‘ŽŒŠˆ‡†…„ƒ|{zyxwvtrpnmosw|€~||||}~~~~~~€„†ˆ‹ŽŒŒ‹‹‹ŒŽ‘’’‘ŽŽŽŽŽŒ‹‰ˆ‡†…………„}yuqonopqrtx{~ƒ…‡ˆˆˆ†ƒ}|{||}~€‚ƒ…†‡‡‡‡‡‡†…„‚€€€‚‚€}{yxxxyyxvspmlkkkjjjjkklmnnooooonnooonmllkjjkkklnoppponnmmlllkkkjjiiiiiijjkkkjjjjjkkkkjiijklnprux|~~~}}}}~}|{zyxxy{|}~„‡‹ŽŒŠˆ†ƒ€}zwvuutuvwxxxvspmkklnrv{€€~}‚‡Œ‘‘Šˆˆˆ‰‹Ž‹‡ƒ{vqliiiiiiiikosvxyz{|}€‚ƒ…†ˆ‰ŠŠˆ…|xtrpoonnnoquy|~{xvuuwy{~€€€€ƒ‡‹’”••””””“““““““’‘ŽŽ‘’“”•––––––––•”““’’‘Šˆ‡†„‚~ytpmlllmoppoopsvxyyxxyz|~€€€€€~}}|zxuqnkjjjjjjjiiiiiijkmnprstutromkjjkkkklllmmmmlkkjjjmqv{~‚„‡‰ŒŽŽŒŠˆ†…„„†ˆ‹Ž‘‘‘Ž‹ˆ…‚‚‚„…‡‡†††ˆŠ‘‘Љˆ‡†…………………†‡ˆ‡†„ƒ‚€€€„ˆ‘•––––––•”“’‘‘‘’’’І„ƒ„„„ƒ~zvsrrtvxyzz{{||{ywvutuvwy{}€ƒ…††…ƒ~}{zxvuuvwyzywusponmllmnquxxwusqpqqqqqqqrux}„††…ƒ€}zxvtsstuvxxxwurolkkkkkkkjiiiiiiiijjjjkkkjjjjjjjjjjjjkkllllmnopqqqqppoonnnoonmlkiijloqsttsqomlkjjjkkkkllmnooppponmmlkkjjkkkllmmmllkkjjiiiijjjjkklmmmmmmmmllmmnpqsuwyyywusqpppqrsuxz|}|zxutsssqomllllmnnoonmmlmmmnoqtx}€„†††„‚}{zzzzzzyxwvuttuvwvspmlkkklmmmmnptxz{zxuqonoqsvx{~„…„‚~zwtstuwxz{}‚„„„„„„ƒ‚€€ƒ†ˆŠŒŒ‹Š‰‡‡‡‡‡ˆ‰ŠŠ‹‹‹Šˆ‡…ƒ‚€€€€~}}}|zyxwxyzywsoljiiijkmooomlkklnpsvy|~€ƒ…ˆŠŒŒ‹ˆ†„ƒ„†ˆ‰ŠŠ‰ˆ‡‡‡‰ŠŒŽ‘’”•––•••“‘ŽŽ‘’”””“’Šˆ…ƒ€€‚ƒ‚€~|yxxyz|}}}}|{{{|~€‚ƒ…†‡ˆ‰ŠŠ‹ŒŽ’”–––––”“’‘‘‘’““””“’‘ŽŒŒ‹‹ŠŠ‹ŒŽ‘‘ŽŽŽŽ‘‘’““””””””““’’’‘‹‡ƒ‚ƒ…ˆ‹ŽŽ‹‡„€|zxvtrqqrtw{€ƒ……ƒ~{zz{{{||}}~€ƒ„ƒƒ|zyxxyzz{|}€‚ƒƒ‚~}~€„ˆŒ‘““”•––––•”’‘ŽŒŒ‘“”•••”‘ŽŠ‡„„„†‰‹ŒŒŒŒŽ‘‘‘Ž‹…€{vspnnoprstttttux|€„‡‰ŠŠ‰ˆ‡†……†‡ˆ‰ˆ†„‚€~|{{{{|{zwtrqqqqrrssssssssstuvwwxxxxxxwwvuuvwxyyyxxxwwvutttttuvx{~„‡Š‘’“’Ї…„„…‡ˆ‰‰‡„|xtrqrstuvwwvvutssrqpppqqrrrrrsttuvvvvvtromjjjknquxz{{{{zzzzzzyxwwvuttuvx{}€~{xvvvwxz|~€~|{zyyxwusqponnnnnoqty…‹“”””“‘‹ˆ†„‚ƒ…ˆŠŒŒ‹‰‡„ƒ‚‚„‡‹Ž‘’“”””“’‘‘’“””““’‘ŽŒŠˆˆ‡‡†…„ƒƒƒ„†‰“””“’““•–––•“ŽŽ‘‘’“””••••”””“‘ŒŒ‹‰‡„~zvsponnnoqtw|†ŠŽŽŒŒŒŒ‹‰ˆˆ‰‹Ž‘”••””““““‘‹†~||}€„ˆŒ‘“”””“ŽŠ‡„}|zxvuttsttuvxz|~€~~}|zwusqpoprstttrpommmmllmnnopqpponmlllmmmmmmllkkkkkkllmmmmmnpswz}€‚ƒ‚€}|{||}~~~~~~~}}|{{zyyz|~…ˆ‹Ž‘‹ˆ†„‚€}{xvutttsrqonmmoqtwyzzzyxwwwxy{~€‚„…†ˆ‰ŠŒŒŠˆ‡††††…ƒ}{zxvtrpomlkkklmnooopqrstttsrqqppqsvy|€ƒ…ˆŠŒŽŽŠˆ…‚€~~~€‚ƒ…†‡ˆ‰‰‰Š‹ŒŽŽŽ‹Šˆ†„~{xusstwz~‚†ˆ‹‘‹Š‰‰ŠŠŠŠŠ‰‡…}yvsrrsstuwxz{}‚ƒƒƒƒƒ„„…‡ˆˆˆˆ‡‡††„ƒ€~}}}||{{{{}‚„‡‰ŠŠ‰ˆ†…ƒ~}}}~„‡ŠŽŽŽŽŽŽŒŠˆ†………‡‰Œ‘’“’’’Ž‹‡‚~{xvuvwyz{zxuspnlkkkjjkklmnopqqqponnnoqsvxyxvtsrqqqqppppppqqqpnmlkkklmmmmmnosvxzzyyxwwxy{}€‚„„…„…†ˆ‰ŠŠŠŠ‰‰ˆˆ‡‡‡ˆ‰ŠŒŒŽ‘’““”””””””””””••••”“’‘ŽŒŠ†„ƒ„†‰ŒŽ’’“““‘‹‹‹‹ŒŒŒŽ‘‘‘‘Œˆ†„„…†‡ˆ‰‰‰ˆ‡…ƒ€|yvtrponnmmmmnoopppoonmmmmoqtwy{{|{zxwutttvxz}€‚ƒ…‡‡‡…‚~{xuroljijkmpsvwxyxwvtqolkjjjklmmnooonnlkklnqtx}„†ˆ‰‰ˆ‡…ƒ€}{xvtrrrstttsrqqrtvy{|||zywusqnmlkkklmmnnnnoppppqrstuvwwwvtqnlllmlllnqtxzzyxvtssuvxyyxwuuuvwxxwusqqqrtvx{~‚ƒƒƒƒ„…‡‡ˆˆˆ‰Š‹Œ‹‰‡ƒ€~}}‚…ˆ‹ŒŽŽŠ‡„‚~~~€‚‚‚‚€~|zxvutuvx{~„†ˆ‰ˆ‡‡‡‡‡†…ƒ‚‚‚ƒ†‰Ž‹‡ƒ€|xtqonmmmmlkjjjjjkmoswz|}}|{z{|ƒ…‡ˆŠ’“”””’‘‹ˆ…‚‚†Š‘’’’‘Šˆ†ƒ|xusssstuuuttuuvvuutsrqponmmnoquy~‚ƒƒƒ„ƒ‚~zvtrqrrssstttuwy{‚„†††…ƒ‚ƒ„…ˆ‹Ž‹ˆ†ƒ€}yvrpoopqqqqqqrrrpoljjjjjjjjjjjjjjkptwy{{||{{zyyxxxwxyz|~}{xvutuvvwwwvuspnmmmlllnpsvxyxvtrqqqrtuvvvvwwxyyxuromllmmmlkkkklmmlllllkkkkkkjjjjknruy{}€~}{ywvutstuwyz{|~€‚…‡‰‰‰ˆ‡†…„‚€~~~~}|{yxxy{|}|{ywvuuuvvuuuvwwwvvuuvwyz{|zxvtqqqqqqonlkjjjjjjkmnopqrrssssqpnmlllmmmmmmmmlkjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkklllkjjjjjjjjjjjjjjjjjjjjjkkklllllllmmllkkkjjjjjklmnnnnmlllllllmmlllllkllllmoruwyyyxvtqommmmmmmmmllllllmmnpqsssrqpoonopruxzzyxurponoqtvy|~€€€~}{zyzz{{zyyxwvvvwxyzzzyyy{~…ˆŠŒŽ‘’“”””•••••••””“““““““’ŒŒŽ’”••””““’‘ŽŽ‘’”••””“’’‘‘’’‘‘‘ŽŽŽŽŽŒ‹‰‡†„‚€~~€‚ƒ„…†‡ˆˆˆ‰‰Š‹ŒŽŽ‹Š‰‰‰‰Š‹ŒŽŽ‘‘’““””””“’‘‘’’’“““”””““’‘‘’’“’’’’‘‘’’’’’’‘‘‘‘‘ŽŽŽŽŽ‘’“””••”””””•••••••”””””””””””““””””““’’’‘ŽŽŽŽŽŒŠ‡…„ƒƒƒ„„„„„„„„„„†‡ˆˆ‰Š‹‘“””””“““””••””””””””””“““““”””“““’’’’’“““”““’’’’““““““““””””””””””““’’’““”••••••””””””””””””””•••”””””“““’’’“”•””““““’‘ŽŒ‹‹‹ŒŒŽ‘‘‘‘‘’“”””••••••••••••••••••”’‹‹‹Œ‘‘’“”””“‘Œ‰‡„‚~{xutsssssrrqpoooppqrrssrrqqppooonoooppppppqrsttrpooopppqqppooooopppqqqqqqppoonnnnooooooonnnopqrrrrrrqppppqqqponmnpswz|}~~|zxvuuvwy{}€€‚€~~€‚…‡ˆˆ…‚{xwvwxyz|~„‡‰ŒŽŽŒŠˆ†„ƒ‚~}}}~€‚‚€~|{zz{|}}}|{zyyyyyyxwvutsrqqqqqrstvxz{{{zyxwvvwwxxyyz|}‚‚‚‚‚ƒ…‡ˆ‰‰ŠŠ‹ŒŽ‘‘‘ŽŒ‹Š‰ˆˆˆ‡†…ƒ‚€~}|{{zzz{{|}}~~€ƒ…ˆ‹ŽŽŒŒŒŽŽŽŽ‘‘‘‘‘ŽŒ‹‹ŒŒŒŒŒ‹‹Š‰ˆ‡„}zxwx{~€‚ƒƒƒ‚€|zvrommnquy}ƒ„„ƒ‚€~}||zywvvvwxyyyywvtsrrrrqpoooprtuuuttssssrqonmmmmmmnnoqsvx{}€€€€€‚ƒƒ„…………„ƒ~}||}~~}||}ƒ„„„ƒ€~~}|zywurpnmnpswz}~~|zxvutttsssttuvwxyyxxxyzz{{zywusqoonopqsuw{ƒ‡‰‰‰ˆ‡‡‡†††…„ƒƒ‚€~}||{{{{{{zzzzyyxxxxxyz|}€€€~}|||}~€‚‚€ƒ„…†††‡ˆŠ‹ŽŽŽŽŒŒ‹Š‰‡…‚€~|{||~~}{ywvvvvuutsrqpppppppqrtuwxxxwusqpooopruwz}‚ƒ„„„„„„ƒƒƒƒ‚€€‚„‡ŠŒŽŽŽ‘‘‘‘‘‘’“””””“‘ŽŒ‹ŠŠŠ‹‹ŒŽ‘’“””““““““’’‘ŽŒ‹‹‹ŽŽŽŒŒŽŽŒ‹ŠŠŠŠ‹‹‹Š‰‡†„„…†‰ŒŽ‘“”••””’‹‡„€€€€}|{zzz{}€„‡‰Š‹Šˆ†„ƒ€~}}||{{z{|}ƒ…‡‰‹ŒŒŠˆ…‚€}|{zzz{{|}}~€‚ƒ…††††„~zwtrpoonoqsuxz{{{zyxxxxxxvtqnlklmoruxyzzyxwvvvwxz{||{yvtqomllmopppomlkjjklmnoppqqrrtvy|€„‡ˆ‡‡†…„…†‡‰Š‹‹‹‰ˆˆ‡‡†…„‚€~}}~ƒ„„„ƒ~}||||{ywvtrqpooooqstvwwwvtrqonmmllllllllllkkklmmnoppqpppoonnmmkjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkkllmmmmlkkjjjjjjklmmmlkjjjjjjjjjkkmnpponnnmmmnnopqqqpnmlkllllllkkkkkkllmmmmmllllmnnoonnnnoqstuvvuspnmlkkkkklmmlkjjkkllllllllllkkklllmmmllllllllllkkjjjjkjjjjjjjjkkklllkjjjjjjjjjjjjjjjkkkkjjjjjjjkklllllllkkkkkkkkkkkkkkjjjjjjkmnooooopqrsssrrssttuvvwxz{|}}~€€~|zywvvuuuuuvwyz{{{{|}~€‚ƒ„………†††††……†ˆ‰‹ŒŽ‹ˆ…‚€€‚…ˆ‹Ž‘‘‘‘’’’““””••””““‘ŽŒŒŒ‘’’Ž‹ˆ†„ƒƒƒ…†ˆŠŒŽŽ‘’’““”“““’’‘‘‘‘‘‘‘‘‘’’’‘‘‘’’““’‰…}zyxxxxxwwwvvvvvwxyz{{||}}|{zyxwvwxyyyyxwvutsrqqpqrsuvwxxwwxyz|‚…ˆŠŒŒ‹Š‡…ƒ‚€~€‚…ˆŠŽŽŽ‘“••••••”“‘Ž‹‰ˆˆ‰ŠŠ‹Šˆ…‚€}|{{{{zxvusrpnmlmmnpsw}ƒˆŒŽŽ‰…{wtstvz~ƒ‡‹Ž‘‘‘‘‘Ž‹‹ŠŠ‹‹Œ‘’’’“””””“““““““”””””““’‘‰†††ˆŠ‹ŒŒŒŒŒ‘’’“““’’’’’’’’’’’““”“’‘‘’’’’““““““““’’’’’’“““““’’’’’’’’’““““““““““’’’’’““““““““““““““““““““““““““’’’““““““““’’’’““““““““““““““““““’’’““““““’’’’’’’’’“““““’’’““““““““““’’’’’’’’’’’‘ŽŒŠŠŠŠŠ‰ˆ…ƒ|zwtqooqswz}~|ytqnmmmmmmmmmmmmmnoonmllllllmmllllmmmmmmmmlllllllllllmmmmmoqstuutsrqppqqqrrrrqpooopqssttuvxz}€ƒ…†††………„ƒ‚€€€~~}}|{xuromlllmnoqrssrqqpponmkkkkkkkklllllmmnoonmmmmmmmmmmmmmmmmmmlllllmmmmmmmmmmmmmnoqrttuttsssrrqponnnnoopppomllmmnnnmnnoqsvy{~€€~~}|zxwutsrqponmlkkkkkklmmmmmmmmnnnmnnnnnooppqqqpnmkkkkkkllmmmoqtvwxxxyzzzzzyxwvvvwy{||zwspnmmllmnprsuvwyz{||{ywutsrqqpppqrstvxz|}}}||{{}„‡‰‹‘‘ŽŽŽ’’““’’‘‘‘‘ŽŒŒ‹ŠŠŠŠŠ‹‹‹‹Š‰‰‡…ƒ€€ƒ…‡ŠŒŽŽŒ‰…‚~…ŠŽ‘’““““’’‘‘‘’”””””””””“’’’’’““““’’‘‘‘‘‘‘‘’’’’’’““““’’‘‘‘‘‘‘‘‘’””””””““’‘‘‘‘’”””””””””“““““““’’’’’’“”””””””””””””””””””““““““““”““’‘‘’’’‘‘‘‘’’‘‹‰†ƒ~}||}€‚ƒ„…††‡‡‡‡†…„ƒƒƒ…‡ŠŒŽŽŒˆƒ}|||{zzz{|~ƒ†‡‰ŠŠ‹ŒŽ‘’““““’‘‹‰‡„‚‚‚„‡Š’“’‰†ƒ‚€€€€€€}|{zzzyyxwwwvvvwxxyzyxvtrqpppppoonnoprtuvuutsrqqqqrsuvwxwvusqpnnnnnmllklllllllllllllmmmmmmmmnnnnnmlkkkkkkklmnppqpponnnnnnnnmmmmmnnnoonnnnmmmlllkklllllmmnnnopqstuutsqonnnmmmllllmmmmmmmmmnprtuvwxyzz{||}}}}~~~~}|zxurpoopqsuvvvusrpoooqsvx{||{yvtqonnnnopqrtuvwyz{|}}|{zyxxxyyzz{{zywusqpppqqponmlllllmnoppqqqpponlkkkkkkklnpsvwwwvvuttuvwxxvtqnmmmmlllllkklllllllkkkkklmnnooppppppooonnnoppooopppqqrtvx{}~~}|zxxxyzz|}~~‚„…††…ƒ€|wtqoopsvz~„…„ƒ€~{zyxyyzz{{|}ƒ„…‡ˆ‰ŠŒŽ’“””””“““””””””””””““’‘‹‰‰ŠŒŽ‘‘‘‘‘’“”””””””””“’‘ŽŽŽŽ‘‘’’“””””””“’‘’’’““““’‘‘ŽŽŽŽŽŽŠˆ‡†………†ˆ‹‘“””””“’’‘‘‘‘’’““““““““’’‘‘‘’“““””””““’‘‘‘’““““““’’‘‘‘’’’’’‘ŽŽŽ‘’“““’‘‘ŽŽŽŽ‘‘’’‘‘‘’’’’’‘‘‘‘ŽŒŒŒŒŽŽŽŽŽŒŒŽ’“““’‘ŽŽŽ‹Šˆ†„ƒ‚‚‚‚ƒ…‡‰ŒŽ‘‘‘‘‘‘‘‘‘‘ŽŒŒŒŒŒ‹ŠŠŠŒŽ‘‘‘’’‘‘ŽŽŽ‹Šˆˆ‡‡ˆ‰ŠŒŒŒŒŽŽ‘‘’’‘Œˆ„~}}~‚…ˆŒ’“““’‘‘‹‰ˆˆˆŠŒŽ‘’“““’’‘‘ŽŽŽ‘‘ŽŒ‰†ƒ{wtqpprvz‚„…††…„ƒ€}{yxvuuttuvwwwvtssstvxz|}ƒ…‡‰Š‹‹ŠŠ‰ˆ‰‰Š‹ŒŒ‹ˆ…‚}{zzz{}„†ˆ‰ˆ†„ƒ‚€€~~€}zxutstwy}„†‡†…ƒ‚€~~}~~€ƒ„„…………††‡‡‡ˆ‰ŠŒ‘ŽŒ‹‰‡…„ƒ€~|zyyz{{{zyxyy{{{zxvtsrqqqpppqstutsqomlllmnnnmmmmmmllllllloruvwvuttuvvwwwwwxz|}~~}|zxwutsrqpooonmmllllllmnopqrrrrrqpoopqstuvutrqonmmlllkkkllmnnpqrrqpnmlmmortwy{~„†ˆ‰‰ˆ†‚~{yy{|}}|{zywutqomlkllmmnnnnnnnnnnmmmnpsuwy{{{{ywtrqpoooppppoonnnmllkkkkkkkkkkkllmmnnoooppponnmmmmmmnooonnnnooonmllkkklllmnnoooooooprtvxyyz|}}~~}|zywvvvvvtqonnnnnnmmlkkkkkklllllmnoqrstttsrpooonnmmmmmnnnnmmlllllmmmllllllmmnnopqstuuutrqqrtuvvvvuuuuvwy|~€‚ƒƒƒ‚‚ƒ„…‡‰Š‹ŒŽ‘’’’’’““’’’‘ŒŠ‡†……………†††‡‡‡††…„‚€€ƒ…‡‰Š‹‹‹‹‹‹‹‹ŒŽŽŒ‹‹‹ŠŠŠŠŠŠŠŠ‹Ž’“““““““’’‘‘Ž‹ˆ†ƒ‚‚ƒ„…†ˆˆˆˆ†„}zxwuuttuvxz}‚‚€~|{zz{|~ƒ„„ƒ‚€‚ƒ„…„„ƒƒ‚‚‚ƒ„…†‡ˆ‰‰‰‰ˆ‡†„ƒƒƒƒ„…‡ˆˆ‡…‚|ywvwxy{~€‚„†‡ˆˆ‡…„}{zywusqonmmnnooonnmmmmnnnnnnnooooonmmllkkkkkklmmnnnnmmmmmmmllkkkkkkkkkkkkkllllmmnnnnnnnnooppppppppooooooonnnnnmmllkklllllmmnnnnnnoopponnnoooppppppoonnmmmmnnnnnnmmmmmmlllllmmmmmnnoonnnnmmllllmmmnnmmmlllkklmnnnmllllmmnnnopqrrssttttuuutsqonmmnoqsvxz}‚ƒƒƒ‚‚€~~€‚„†ˆŠ‹‹ŒŽŽŽŒŒ‹‹ŒŽŽ‹‰†„ƒ‚ƒ…††‡‡‡‡‰‹‘’’’’’’’’’’’“““’““““””””““““’’’’’’‘ŽŒ‹ŒŽ‘’’“““’ŽŒ‰ˆ†…„„ƒƒƒ„…†‡‡‡†………†ˆ‰‹ŒŒŠ‰ˆˆ‡†……„ƒ‚‚€€€€‚ƒ…†‡‰‰ŠŠŠ‹ŒŒ‹‰†ƒ€~{yxwwwxz|~€~}|{{||||}}}}|{yyxyz{|}}}}|{zyxwxxyyyyyyxxxyyzzzyxxxyz|ƒ„…††……„„ƒ‚~}||zyxwwvvuttssssssssssttttsrqonnnoprtvwxyzzyxvtrqppooooooonnnnnnnnmllkkkkmortvvvutsrrssuvxy{|||{ywutttuuuvvwxz{}~~~~~~~€‚„†‡ˆ‰ŠŠ‹ŒŽ‘’’“““””””“‘Šˆ‡†††‡‡†…„‚}|zyxxz|~ƒ…†‡‡‡†„ƒ‚‚‚ƒƒƒƒƒ‚ƒ‚‚€€‚„†ˆ‰ŠŠŠ‰ˆ‡‡††‡ˆ‰ŠŠŠŠ‰‰‰‰Š‹Ž‘‘‘‘’’’‘‹‡„€~||}~€}zwussrrsrrqpoonnnoopppoonmmllllllllllllmmnoppqqrrrrqppnmmllmmmnnnoooooopppppppoppqsttttssrqpooonnmmmmllllllllllllllllllllmnprtuuvuutrqonmlllllllllllmmmmlllmnprtwz}€€€~}|{zyyxwwwwxyyz{{{{||~€‚…ˆ‹ŽŽŽŒ‹‰ˆ…ƒ~~}}~€~|zyxxyz{}~€‚ƒ„……………„ƒ‚‚€€‚„…†‡‡‡‡‡ˆ‰Š‹ŒŒŒ‹‰ˆˆ‡ˆˆ‰‰‰ˆˆ†…ƒ‚€€‚„‡ŠŒŒŒŒŒŒŒŽŽ‘’’“““““““““““““““““’’‘‘‘‘‘‘’’““““““““’’‘‘’’’““““““““““““““““““““““““““““““““““’‘ŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽ‘’’’“““’’’’’’‘ŽŒ‹ŠŠ‰‰ˆˆˆˆˆˆˆˆ‰‰‰‰‰‰‡†„‚€~~€€€}{zxvuttsssttuvxyz{|~€€‚ƒ„…„ƒ}||||{{zyxxyz|~‚‚ƒ‚‚‚ƒ„„„„ƒ‚‚€€~{yvtrqqqqrrrqqpppqrtvxy{}€‚ƒ„…………††‡ˆ‰ŠŒŒŽŽŽŒŠ‡…ƒ€~}|{yxxwwwwwwwwwwvvvwwwwuspnmllllmnoonmmlllmmmnnoooppppppppoonmllllllmnoooooooprtuvwwwwxxxxvutssstttsrqpnmmllllllllllmnoopppppppqqqqqqqppoooppqqqqpppppooooooonmllllllmnooooonmlllllllmmmmmmmmmmmmnnnnnnnoooooonnnmlllllmmmnnnnoooooonnnnmmmmmmmmmmnpruxzzzzxvtrpnmlllllmmnnnnnmmllllllmnoppqqqqqrrrrrrrrrrrrssssssrrqponmlllllllmmmnnnnnnnnnnnooooonnnnoooppppqqrtuwy{|}}|zxvtsrrqqppoopqsvxz{|{zywvvvwwxxy{}€ƒ…‡‰‰ˆ‡„}zwusrqqpqqrsuuvutsrqqqrrtuwyz|}~}|{zxwutttuvxyz{{zxvtronmmnnoprux{}~€€€‚‚ƒ„„„………†‡‡ˆˆˆˆ‡‡†……„„„„„……†‡ˆ‰Š‹Ž‘‘‘‘‘‘‘‘’’’’‘‹Š‰‰ŠŒŽ‘‘’’’’’’“’’’’‘‘‘‘‘‘‘‘’’’’‘‘‘‘’’’“““’’‹ŠŠ‹ŒŒŠ‡„‚€€‚…‰Œ‘’‘‘‘‘‘’’’’’’‘‹‰‡‡†…„ƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒ„…‡‰‹‘‘’’’’‘‹‰‡…„‚€~}}|{{{{|~€‚ƒ„†‡ˆŠŒ‘’“““““’’‘‘‘‘‘‘ŽŽ‘‘‘’“““““““’’’““““““’’‘‘ŽŽŽ‘‘’’““““’’‘ŽŒŒ‹‹‹ŒŒŒ‹‹‹ŠŠŠ‰ˆˆˆˆˆˆˆˆˆ‡†…„‚}{zyyyyyz{}~€ƒ…ˆ‰‹ŒŒŒŒ‹Š‰ˆ‡†…„ƒƒ‚‚€~}|{zyxwvvvutrqpppqrtvxz|~~}||{{{}~€‚‚€~}|{zyyyyz{|}}}}}|{zyxxxxwvusrpnmllllmnooppoooooooooopqrtvwxxxwusqonmmmnnoqsuwyz||||{zywutsrrqonnmmmnnooooooopppqrsuvwwvusrqppqqrsstuuuttssrrsssssrrrrssttuvvwwxyyyyyxwvutttssrrrrrrrsssstuwxyz{{{{{{{|||}}~€‚‚‚ƒƒƒ„„„„„…†ˆ‰‹Ž‘‘’’’’‘‹‰‰ŠŒŽ‘’’’’’‘‹‰ˆ‡‡†††‡‡‡‡‡††‡ˆˆ‰‰ˆ‡…ƒ‚€€€€€~}{ywutsuvx{~€‚ƒ„ƒƒ‚‚‚‚ƒƒƒƒƒ‚‚‚‚ƒƒ…†‡ˆ‰ŠŠ‰‡…„‚€ƒ„…………†††…„ƒ|xurqprtvxyz{{{{{|}~~~}}~€‚ƒ„„…†‡‡ˆˆ‡‡††…„ƒ‚‚„…††‡‡ˆˆˆ‰Š‹ŒŒŽŽŒŠ‰ˆ†…„ƒ€~|{{{|}~~~~}{zywvtsssstuvvvusrqpoooopppqqrrrrsssrqpponnoopqstttttttttuvxz{}~€€€~}||||~€‚„†ˆ‰‰ˆ†ƒ€}{{{}€ƒ†‰‹ŒŒ‹‹Š‰‰‰ŠŠ‹ŒŽ‘’“““““’‘‘’““““““’’’’’’“““““““““““““““““““““““’ŽŒ‹‹ŠŠŠ‹‹ŒŒ‘‘ŽŒŠˆ†„„ƒ…‡Š‘‘ŽŒ‰†„‚€~}}}}~€‚ƒƒƒ„„………„ƒ}{ywusqonnnnoopppppppooppqqqponmmmmnnnnnopqqqqqpoonmmllllmmnnoopqstuvwxz|~€‚…‡‰Š‹‹‹‹Šˆ‡„‚‚ƒ„…††‡ˆˆ‰Š‹‹‹‰‡††‡ˆŠŒŒŠˆ…ƒ~~€ƒ…‡‰‹ŒŒŠ‰‡†……………†‡ˆ‰ŠŠŠ‰‰ˆ‡‡‡‡‡ˆ‰Š‹‹Œ‹Š‰‡…ƒ€~~€€‚ƒ„„„…††‡‡ˆˆ‰‰‰‰‰ˆ‡†…ƒ‚€~~}}||||}}~€‚‚ƒ„……„„ƒ‚‚‚‚‚ƒƒ„…†ˆ‰Š‹‹‹‹ŠŠ‰ˆ‡†…ƒ€~{ywuttttuvxz|~€‚ƒ„…‡ˆŠŠŠŠˆ‡†………†‡ˆˆˆˆ‡‡‡††††‡ˆ‰Š‹ŒŽŽŽŽŽŽ‘’’’’’’’‘‘‘‘‘‘‘‘‘‘‘‘ŽŒ‹‹‹‹‹ŒŒŒŒŒŽŽŒ‹Š‰‰ˆ‡‡†„ƒ‚€~~~€€€€~}||{{zzyyxwvusrqpppqrsuvwxyyzzz{{|}~~€€‚ƒ„…‡ˆ‰‰‰‰‰‰‰ˆ†„‚€€‚„…‡ˆ‰‰‰‰ŠŠŠŠ‰ˆˆ‡‡ˆ‰Š‹‹ŒŒ‹‹ŠŠ‰‰ˆˆ‡‡‡‡†††………„ƒ‚€~}}}}}~~€€€€€}|{zxwvuttsrrqrrssttttttsttttssttuvwwwwvvvuutssrqqppoppqrsssrqppooonnnnnnoopppppoopppqqqqqqpoooooprstuuuuttsrrqqqpoonnmnnnnnnnopqqqqppppooonnnnnpqsuuutsrrqqppppqstuvvvutsrrqpoooopqsuvxyyyyxwvusrrqqqrrsssttuvwyz{|}}}}||{{{|~€‚„†‡‡ˆˆˆˆ‡†„‚€~~~€‚€€~}|||}}~~€‚„…‡‰ŠŠ‰ˆ‡…„ƒƒ‚‚€}{ywvuuvwy{~€‚ƒ……††…„ƒ‚€€ƒ…‡ˆˆˆˆˆˆˆˆˆ‡‡‡‡‡††…„„„…†ˆŠŒŽ‘’’’‘ŽŒ‹‰‰ˆˆ‡†…„ƒ‚€~}{zyxxwwwwwxxyz{|||||}}~€‚ƒ……†………„ƒ|zxvutuuvwxyyzzzzzyxxxxxxwwvuutssssstuwy{}€‚ƒ„„„„ƒ€~}|||~ƒ…†‡‡††………†ˆ‹‘‘‘ŽŒ‰‡…„ƒ„…†‡‰ŠŒŽŒŒ‹‹ŒŽ‘‘ŽŒŠˆ‡‡‡††††††‡‡ˆ‰Š‹ŒŒŒŽŽŒŠˆ†…„„„„„„ƒ‚€~}||||}~‚ƒƒƒƒƒƒ„„…†‡ˆ‰‰‰ˆ‡††††‡‡ˆˆˆˆ‰‰‰‰‰‰ˆ‡‡†††…††……………………†‡ˆ‰Š‹Ž‘‘‘‘’’’’‘‘‘‘‘ŽŽ‘‘‘‘‘‘‘‘‘’‘‘‘‘‘‘’’’‘‘‘‘‘‘‘‘‘‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘‘‘‘‘‘‘‘‘ŽŒ‹Šˆ‡†„ƒ‚€~}{zyxxwwwvvvuttsrrstuwy{}‚„…††‡‡ˆ‰‹‘‘‘’’’’’’’’’’’’’’’’’’’‘‘‘ŽŽŽŽŽŒ‹‰ˆ†„‚€€‚ƒ„„ƒ‚€~}}}}~~€€€€€€€€‚ƒ„…†††……„ƒ‚€~}||||||{{{{zzyyyxxxyyyxwvtsqqpppqqqrrssssssssrqqppqqqrstuwy{}~€‚ƒƒ„„„…†††††‡ˆ‰‹ŒŽŽŽŽŒŠ‰‡‡‡‡ˆŠ‹ŒŽŽŽŒŒŽ‘’’’’’’’’’’‘‘‘‘‘‘‘‘‘‘‘Ž‹‰‰‰ŠŒŽ‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘’’’’’’’’’‘ŒŠ‰ˆˆ‡ˆˆˆ‰‰Š‹ŒŒŒŒ‹ŠŠ‰‰ˆ‡‡†††‡‡ˆ‰ŠŠ‹‹ŒŽŽŽŽŒŒŒ‘‹Šˆ‡‡†††††‡ˆ‰‹’’’’’‘‘‘‘‘‘‘‘‘‘Ž‹‰‡…„ƒ‚‚‚€€€‚ƒ„†ˆ‰‹Œ‘‘‘‘‘‘ŽŒ‹‰ˆ†…„„„„„…†ˆŠŒŽ‘‘‘’’’’’‘‘ŽŽ‹‰‡„~}}~‚ƒƒ„„„ƒƒƒƒ€~}}}~~~~|zwsqonnnnoprsuvwyyz{||}~€‚„…††‡ˆˆ‰‰‰ˆˆ‡†…ƒ‚~}|{zywvtsqponnnnnnnnnnooqrtuvwxxxwvutsrqponnmmmmmmmmmmnnnnnnmmmmnnnnnnooooppoooonnmmmmmnnooooonmmmmmmmmnmmmmmmoprrsssssrrqqqppoonnnnnnnnnnnnnooopppppppppppppoonnmmmmmmmmmmmnnnooooooonnnmmmmmmmmmmmmmmmmmmmnnnnnnnooppppoooooonnnmmmmmmmnnnnnnnnnnnnnnooooppqppppppppppppppooooooopppppooooooooooonnnnmmmnnnnnnnnnnnnnopqrstuwyz{{{{{zzyxxxxxxwvusqoonnmmmmmnnnnnnnnnoopqrssssrrrqqpoonnooooonnnnnnnnoooooooooooppppppoooppqqqqppoooopppppppqqrtuwxyz|}~~~~}}|{zz{{{{zywvutsrrqqqqrstvvwwwxxxxyyyxwvuuuttssrqqppppooppqrtvxy{{|||||{zyxxyz{}~€€€€‚ƒ„…†‡ˆˆˆˆ‡†„‚€~}}}}~€€€€‚„†ˆŠ‹ŒŒ‹Š‰ˆˆˆ‰Š‹ŽŽŒ‰‡„~}|}~€‚‚‚€~|{zzz{}‚„†‡‡†…„ƒ€€€€€‚ƒ„…††‡‡‡‡ˆˆ‰‰‹ŒŽŽ‘‘‘‘‘‘‘‘‘‹‰†…ƒ‚ƒ„†ˆŠ‹ŒŽŽŽ‹Šˆ‡‡ˆ‰ŠŠŠ‰ˆ‡†…………††‡‡‡‡ˆˆˆ‡†………„„………††††††††‡ˆˆ‰ŠŠ‹‹‹Š‰‡†„‚€~}}~~€€}||{{|}~€‚„†ˆ‰ŠŠ‰‰ˆˆˆˆˆˆ‰‰Š‹ŒŒ‹Šˆ‡†…„„ƒƒƒƒ„„……„„ƒ‚€€€‚ƒ…†ˆ‰ŠŠŠŠŠŠŠŠ‹‹‹‹ŠŠŠŠ‰ˆ‡†„„„…†‡ˆ‰Š‹‹Š‰ˆˆ‡ˆ‰ŠŒŽŽŽŽŽŽŽŒ‹Š‰‰‰ŠŠ‹‹ŒŒŠ‰‰‰Š‹ŒŽŽŽŽŒŠˆ†…ƒ‚€~}||}~€‚ƒ„…†††……††‡‡ˆˆˆˆˆ‡††††‡‰Š‹ŒŒ‹‹Š‰ˆ‡†„ƒ‚€}|{zyxxwwwxxyyzzzzyyyxxwwvuusrponnopqrstvwxxxxwutttuvwwxwwusqponnmmnnnonnnnmmmnnnmmmnnnnnnmmmmmnnoooonnnnnnnnnmmmmmnoopqqrrrrssssttttuvvvtrqpooooopqrstuwxyyyyyz{}ƒ„………„„ƒƒƒ‚ƒƒƒƒƒƒƒ‚‚€~}~~€‚„†‡ˆ‰ˆˆ‡†…„„ƒƒƒ„…†‡ˆ‡†„‚}{ywvvuuttsrqpppoooooooppppqqqrrrrrqqppoooopqstuvvvuuuvwxz{|~~~}{ywvusrqqppqqqqqqqqrrrssrrqqpppqqqrrsssttttuuvwwxxyzz{{|}~ƒ…†ˆ‰‰‰ˆ‰‰‰ŠŠ‰‰ˆ‡††…………………………†††‡‡ˆ‰Š‹Ž‘‘‘‘‘ŽŽŽŽŽŽ‘‘’’’’‘‘‘Ž‹ŠŠ‰‰ŠŠ‹‹ŒŒ‹ŠŠ‰‰ˆˆˆˆ‰‰‰ŠŠ‰‰ˆ‡†…„„ƒƒƒƒƒƒ‚‚€~}}~~€‚ƒ„„„„ƒ‚€‚‚‚ƒƒƒƒ‚‚€~}{zzyxvutrqqppppppqpppponmmmmmmmnnnnnoopppqqpppopqsuvxy{}~€~}{yxwvvvvwwwvutsrqponnnnnnnnnnnnnnnnnooooppqrrssstsssssttuvwy{~ƒ†ˆ‰Š‹‹‹‹Š‰ˆ†„‚€~|||}€‚ƒ„…†‡ˆˆ‰Š‹‹ŒŒŽŽŽŒ‹Šˆ†ƒ~}||||{{{{{|}~€€€€~|zxvusrrqqqqqqrrssrrqqqqqrtuwxyyyyyyzzz{|}€‚„…†‡ˆ‰ŠŠ‹‹‹ŒŒŒŽŽŽŒ‹Šˆ‡†…„„ƒƒ‚‚‚‚‚‚ƒ„„…†‡‡‡‡‡‡‡‡ˆˆŠ‹ŒŒŒŒ‹‹ŠŠŠŠŠ‰‰ˆ‡…„ƒƒƒƒƒƒƒƒƒ„„„„„ƒ‚€€~}|{zyxxxxyz|}~€‚‚‚‚‚‚‚‚‚‚‚‚‚€~}}~€‚‚ƒƒƒƒ‚‚‚€€‚‚ƒ„„„„„„„„„„ƒƒƒ‚‚‚‚‚‚ƒƒ‚‚~}||}~€‚‚‚‚€~€‚„†‡ˆ‰‰‰‰ˆˆˆˆ‰Š‹ŒŒŒŒŽŽŒ‹Šˆ‡‡††…………„„ƒ‚‚ƒ…‡‰‹ŽŽŽŽŽŽŽŒŒ‹Š‰ˆ‡†……†‡ˆ‰Š‹ŒŒŒŒŒŒŽ‘‘‘‘ŽŽŒŒŽ‘‘‘ŽŽŽŽ‘‘‘‘‘‘‘‘Ž‹ˆ…ƒ€~€‚„…††‡‡‡†…„ƒ‚‚‚‚‚‚€~}|{{{{|}}}|{zxwwwxy|~€‚„„„„ƒ‚‚ƒ…‡‰‹‘‘‘‘‘‘ŽŽŒ‹‹‹ŒŒŒŒŒŒ‹‹‹‹‹‹ŒŒŽŽŽŽŽŒŒŒŒŽŽŽ‹Šˆ‡†…„……†ˆ‰‹ŒŒŒŒ‹Šˆ‡†„ƒ‚€‚ƒ…†‡ˆ‰‰‰ˆ†ƒ€}zwtrqrstvwxyzzz{{||}~€€}|zyyyyz|}~€€€~}||||}}~€‚ƒ„„„ƒ~|ywvuuvvvvusrponnnnnnnmnnnoooonnnmnmnnnoooppppppppqqrrssssrrqqqpppppppprtvxz{|}~~~}|zxvtrqpooopqrtvxz}€‚„…††‡ˆ‰ŠŠ‹‹‹Š‰‰‰‰‰‰ˆ‡†„‚|zwusqpoonnnoopqrrrrqqppppqrsuvxy{|~€‚ƒ„…‡‰ŠŒŽŽŒŠˆ†…ƒƒ‚€~}{zzzzzyyxvutsrrrrsssssrrqqqqqqqrrstuuuuttttttuuwxz|}}~~}}}||||{{zxwvuttsssttttuuuuvvwxyyzz{{|}~€€€€~}|{zzzzz{{||}}}~~‚ƒ„…†…„ƒ‚‚ƒ„…†††…ƒ‚€~|{zyyyyz{||}|{yxvttssrrrrstvwxyyyxwutrqqqqqrrqqqqqqqqrrrrrrrrrsstuvvwxyz{|||{zyyxxyyzz{{||}~~€‚ƒ„…†‡ˆˆ‰‰‰ŠŠŠŠ‰‰‰‰‹ŒŒŒŒŒŽŽŽŒŒŒŽŽ‹‰‡…‚€‚ƒƒƒƒƒƒ‚€~|yxvvvvwxyzzzzyyxwwwwyz|}~~}|{zyxxxxxxxxwwvuuvvwxxxyxxwutsrqpooooprtvwxwvtrpnnnnnnnopppppppppqrtuvvwxxyzzz{||}~€€€€~}}|{zyxyyz|}€€€€€€€‚‚‚‚€€~~~~~€€‚€}|zyxwwwvwwwxyz{|||||}~€‚‚ƒ„…†‡‡‡‡‡‡‡‡ˆˆˆ‡†…ƒ€~~~€‚ƒ„…†‡ˆˆ‰ŠŠŠŠ‹‹ŠŠŠŠ‰ˆˆˆˆˆ‰‰Š‰‰ˆ‡†„ƒ€€€ƒ„„…‡ˆŠ‹ŒŒŒ‹‹‹‹ŠŠ‹‹‹‹‹Œ‹ŒŒŒŒŒ‹‹‹ŠŠ‰‰ˆ‡††‡‡ˆˆ‡†„ƒ‚‚‚‚ƒ…‡ˆŠ‹‹‹‹‹ŒŒ‹‹‹‹‹‹‹‹‹‹ŠŠŠŠŠ‹‹Š‰‡„‚€€€€€€~~}}}}}~€€‚‚‚‚‚‚ƒ…†‡‰ŠŠŠ‰‰ˆ‰‰ŠŠ‹‹‹‹ŠŠŠŠŠŠŠŠŠŠŠŠ‰ŠŠŠŠ‹‹‹ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒ‹Š‰ˆ‡‡††……………………††‡‡‡†…„ƒ‚€‚ƒ„…††‡‡‡‡‡††…………„„……†‡‡ˆ‰‰‰ˆˆ‡†…ƒ‚~}}}}}~€‚ƒ„…††‡‡‡‡ˆˆˆˆ‡‡‡‡‡‡‡‡‡‡‡††…„ƒ‚‚€~}||{{zyxvusrrrrrsstuwxxyyxxwvuttssrrqqppqrrrrrrrrrqqqqqqrrrqqqqqqqqqqqqqqqqqqqqqqqqppqqqqqqppooooooopqqrrqqqqrstuwxyyzzzzzzz{{zzzz{{{{{{|}}~~~~~}|{yxwuttssstuuvvwwwwwwvutssstuuvvvuuttttttuvvxy{}€‚ƒ„„„„ƒ‚€~|{zyyxwwvvuutsrqpooopprsuvwxyz{zzyxxxxxxxxxwwwvvvvvvwwvvuuttsttuvvwwwxyyzz{{||}ƒ…‡‰Š‹‹ŠŠ‰ˆ‡……„ƒ‚‚‚‚ƒ„†‡‰‹ŽŽŒŒ‹‹Š‹ŒŽŽŽŽŽŽŽŒŒ‹ŠŠŠ‰‰‰‰‰‰‰‰‰‰‰‰‰ˆˆ‡††††‡‰Š‹ŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒŒ‹Šˆ‡†„„ƒƒ‚‚‚€€€~}}|||||||}}~€‚ƒƒ„…††‡‡†††……………†††…ƒ}{zyyyyyyyyyxxwwvvvvuuuvvvwwwxwwwvvvvvwxyz{|||||{{zz{{{|||{{{zyyyxxwvvuttssstuuvvutsqppqqqqqqpppppppoooonnnnnooooopppppppppppppqqqppppoooppppppppooooooppppppqqqqqqqqqqqqqqqqqqpppqqqqrrrrrrqqqqqqqqqqqqqqrrrrrrqqpppppppppppooooppqqrrrrrqqqqqqqpppoooopppppppppoooooooooooppppoooopprstuuvwyz{|||{zxwusrqqqqqqrssttttuuuvvwxy{}ƒ„†‡ˆˆˆˆ‡‡†„ƒ€€€‚ƒ„†‡‡ˆˆ‰‰‰‰‰ˆ‡†……„ƒƒ‚€}|{zzz{||}}}}}}||||{{{{{{{zzzzzzzz{{{||}}}}}|{zzzzzz{{{zzzzzzzzyyxwvvvwxyyzzzzzzzzyyxxxxxxyyz{{||}}~‚ƒ„„…………†††‡‡‡††……„ƒƒ‚‚€€~~~~€‚„…†‡‡‡‡‡†††‡‡‡‡‡‡‡††……………††‡‡ˆˆ‰‰‰‰‰‰‰‰‰ˆˆˆˆˆ‰‰ŠŠŠŠ‹‹‹ŒŒŒ‹Š‰ˆ‡†…„„ƒ‚€~|zywusqpoooooooooooooooooooppqqqrrstuwxz{{|{zyxvutttttttttsssrrstuvwwxyzz{{|}}~€€€~}{yxwvuuuuvvuutsrqqqqqqqrrqqqqppoooooooooooonnnoooooooooooppppppoooooooooooooooooopqrssttuvwxyz|}~€‚ƒ„„„„ƒ€~|zyyyyzzzzzyyyxxxxxxxyz{|}~‚„†‡‰Š‹ŒŽŽŽŽŒŒŒŒŒŒŒŒŒŒŒŽŽŽŽŽŒŒŒŒ‹‹‹‹‹ŠŠˆ†„~{ywutsqqpppppppoooooooppqqrsuvxyz{{{{{zzzz{{|}~€€‚‚‚ƒƒ„……†‡‡ˆˆ‰‰ŠŠ‹ŒŽ‘‘‘‘‘‘‘‘‘‘ŽŽŽŽŽŒ‹Šˆ‡†…„ƒƒƒ‚‚€€~}||||}}~~~~~~~~~~~}}}|{{zyxwvtsrrrqqppoooopppooooooopqrstuuuvvvvvvwxz{}ƒ„„„„ƒƒƒƒ‚‚‚‚‚ƒƒƒƒƒ„„„„„„„………………†‡ˆ‰‹ŒŽŽŽŽŽŽŽŽŒ‹ŠŠ‰‰ŠŠŠŠŠŠŠŠŠŠ‹‹‹Œ‹‹‹‹‹ŒŽŽŒ‹ŠŠŠ‰‰‰‰‰‰ˆˆ‡†„‚€~}}|||{{{{zzzyxwutrrqqqqqqqqppppqqqpppppppppqqrsttttsrqpooooooooppqqqqrrstuvwxyyyyxxwwvvvvvwwxxxyyyyyzzzz{{{||}}}}~€‚„…†‡‰‰‹ŒŽŽŽŽŒ‹Šˆ‡†…………††‡ˆˆˆˆ‡†……„„„„„ƒƒ‚‚‚„…‡ˆ‰Š‹‹‹‹‹‹‹‹‹‹Š‰‰ˆˆ‡‡‡‡‡ˆˆ‰ŠŠ‹‹ŠŠŠŠŠ‹ŽŽŽŽŽŽŽŽŽŽŒ‹Š‰‰ˆˆˆˆˆ‰‰ŠŠŠŠŠŠŠŠ‹ŒŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒŒ‹‹ŠŠ‹‹ŒŒŒ‹‰‡…„ƒ‚‚‚‚‚‚€~}{ywusqpoooooooppqrtuwxyz{{|}~€‚„…‡‰Š‹ŒŽŒ‹Š‰ˆ‡†…„ƒƒƒƒƒƒ„„……†‡‡ˆˆˆˆ‡‡ˆ‰Š‹‹ŒŽŽŽŽŽŽŒ‹Š‰ˆ‡…„„ƒ‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚€~~}|{zyyxxxxxyyyyyxwvutssrrrrrrrrrrssssssssssssssssssssrrrrqqqqpppqqqqqpppppppppppppppppppppppooooooppppqqqqqrstuvwxyyz{{||||||}}~~~~}}~~~}|{zzyxwvtrqppppppqqqqqqqqqqqqqqqrtuwxyz{{|||||{zywvtssrrqqqqqqqrrrrrrqqqqppppqrstuvvwwwxxxxyyyyxxxxyzz{{|{{zzzyyyyyyyyyyyz{}‚ƒ„………†††‡ˆˆ‰‰‰‰ŠŠ‹ŒŒŒŒŒ‹Š‰ˆˆˆˆ‡‡††……„ƒƒ‚€€€€‚ƒ…†‡‡‡‡†……„„„„„„„„ƒ‚‚€~}}}}~€‚„…‡ˆ‰Š‹ŒŒŒ‹ŠŠ‰‰ˆˆˆˆˆ‰‰ŠŠ‹‹‹ŒŒŒŽŽŽŽŽŽŽŽŽŽŒŒ‹‹ŠŠ‰ˆˆ‡‡††††………………††‡‡‡‡‡‡††……„„„„„„„„„„ƒ‚€€~~~}}~~~}}}}}}}|||}}~~~~~~}}||{{{{{{{{{{{{zzzzyxxxxxyyz{{||}||||{{{zzzyyxwwwvvvvvvwwxxyyzzz{{||}~€‚ƒ„„ƒƒ‚‚€~}{zxwutsssssssrrrqqqppppppppppqqqrrrsstttssrqqqqqqqqqqqqqqqqqppppqqqrrrrrqqqqppppppppqqqqqppppppppppppppppppppppppppqqppppppppppppppppppqqqqqqqqqqqqpppooooppoooooooooooppppqrtuvwxyyz{||}~~~}||{zz{||}}}||{{{|}~€‚ƒ„„„„ƒ‚‚€~}}}}|||||||||{{{{zzzzyzzz{{|}~€€€~~~€€€€~~~~€‚ƒ„„„„ƒ‚€€€‚‚‚‚€€€€€€‚‚ƒƒ„„…††‡‡ˆˆˆ‰‰‰‰‰Š‹ŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽ‹Šˆ†…ƒ‚€~|{yxvutsrqqqqqqqrrstuutssrrrrrrrqqqqqqqqqqqqqqqrrrrsrrqqqqqqqqqqqqrrtuwxyz{{||}}~‚ƒ…†‡‡‡ˆˆˆˆˆ‰‰ŠŠ‹ŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒŒŒŽŽŽŽŽŽŽŽŒŒŒŒ‹‹‹Šˆ‡††…„ƒƒ‚€€~~}||{{{{{{{||}~€€‚‚‚‚‚‚‚ƒƒƒ„„„„„„„„„ƒƒƒƒƒ‚‚‚‚ƒƒ„„…††‡ˆˆ‰‰ŠŠŠ‹‹ŒŽŽŽŒ‹Šˆ‡‡†…„„„ƒ„„„„„„„ƒƒ‚‚€€~}|{yxwvutsrqqqqqqqpppppppppppqqqqqppppppppppppppqqqpppppppppppppppppppppppppooooooopppppppooppppppppooppppppppppppooooooooooooopppppppppoooooopppppppppoooooooooopppppppppopppppppppppppqqrssttttttssrrrrrrrssssssrrrrrqrrstvwxyzzz{{{{|}}~~~€€€€~}|{zyxxxyyyyzz{{{{{{{{{{{||}}~~€€‚ƒƒ„…††‡ˆˆˆˆˆˆ‡†…„ƒ‚€~}|{zyxwwvvvwwyz{{||||{zzyxwwwwxyzz{{{{zyxwvutssssssstsssrrqqqqpppppppppppppoooooopqrsstuvxz|}ƒ…†‡ˆˆˆˆˆ‡††…„„……†††‡‡‡††……„„„„……††‡ˆ‰ŠŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒ‹‹ŠŠŠŠŠ‹‹‹ŒŒŒŒŒŒŒŒ‹‹ŠŠŠŠŠŠŠŠŠŠŠ‹ŒŒŽŽŽŽŽŽŽŒ‹Š‰ˆ‡††……„„„ƒƒ‚€€€‚ƒ„„…††‡ˆ‰Š‹ŒŽŽŒŠˆ…„‚€€~}|{zyxxxxxxxxyyyyzzzz{{{{{|||||||}}~~€€€€€~|{ywvtsrrrrrrrrsssrrrqqpppppppppppoooopppqsuvwxyyxxwwvvuutttssrrqqpppppooooooooppqqqqqqqqqqqqppppppppopppqqrrrrrssrrrsstuwxz{}~~~~~}}}}||{{{{{|}~€‚„…†‡ˆ‰‰ŠŠ‹‹ŒŒŽŽŽŽŽŽŽŽŽŽŽŒŒŒŒŒŽŽŽŽŒŒŒŽŽŽŽŽŽŽŽŽŽŽŽŽŒ‹‰ˆ†…„„ƒƒƒ‚‚€€}|zyxwwwwxxyzzz{{||}~~€€€~~}}||||}}~~€‚ƒ…†‡ˆ‰ŠŠ‹‹‹‹ŒŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒŒŒ‹Š‰ˆ‡††………†††‡ˆˆ‰ŠŠ‹‹ŒŒŒŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒ‹Š‰‰ˆˆˆˆˆˆ‰‰‰‰ŠŠŠŠŠŠŠ‹‹‹ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ‹Š‰ˆ‡††…„ƒƒƒƒƒƒ‚‚‚‚‚‚‚‚ƒƒƒƒƒƒ„„„„„„„„ƒ‚‚€€~}}}}}~€‚‚‚‚€€€~~~}}}}}}}}}}||{{zz{{|}}~~}}||{zyxwwwwxxz{|~‚ƒ„…†‡ˆ‰ŠŠŠ‹‹‹‹‹ŠŠŠ‰‰‰ˆˆ‡‡††…„ƒ~|zywvutsssrrrqqpppppppppqqqqrstuvwxyzzzzyxwutssrsstuuuuuutsssrrrrrqqppppppppqqrsstuuvwwxy{|~€€~~~~~~}}}}||{zzzyyyyyzzzzzyyxxwwwwwwxxxyyzz{|||}}~~€€‚‚‚‚‚‚‚€€~~~~~~~}}}}|||||||{{zzzzzz{{||}}}}}}||||||}}~~}|{zyxvuutssssttuuvvwxyyyzz{{|}~€‚‚ƒƒƒƒ„„…†‡‰‹ŒŽŽŽŽŽŽŽŽŽŽŽŒ‹‰ˆ‡†…„„ƒƒ‚‚€€‚‚ƒ„„…………………†‡‡ˆ‰‹ŒŽŽŽŽŽŽŒ‹‹‹‹ŠŠ‰‰ˆˆˆ‡‡‡††……………†‡‡ˆ‰‰‰‰ˆˆˆˆˆˆˆˆ‡‡†…„„ƒƒ„„„„ƒ‚‚€€€~~}||{{{|}~€‚‚ƒ„……††††††…„„ƒƒƒƒƒƒ‚‚€~}}||{{z{{||}}~~~}|{zyxxxxyzzzzzyxwuttsssssssssrrqqqppppqqrrssttssrrrrrsssssssrrrqqqqqqqrrrrrsrrrqqqpppppppppppqqqqqqqqqqqqqqqqqqqqpppppppppqqqqqqqqqqqpppppppqqrrstvwxy{|~‚ƒ„……………„„„„……†‡ˆˆˆˆˆˆˆˆˆ‰‰ŠŠ‰‰‰ˆˆˆˆ‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡†††††††‡‡‡‡ˆ‰‹ŒŽŽŽŽŒŒ‹ŠŠ‰ˆˆ‡‡‡ˆ‰‰Š‹‹ŒŒŒŽŽŽŽŽŽŽŽŽŒ‹Š‰ˆ††…………†††††††…„„ƒƒ‚‚ƒƒƒ„„……††‡ˆ‰‰ŠŠ‹ŒŒŽŽŽŽŒŒŒ‹‹‹‹‹‹ŒŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒŒŒ‹‹‹‹‹‹‹ŒŒŒŒŒŒ‹‹‹ŠŠŠŠŠŠŠŠŠ‹‹‹ŠŠ‰ˆ‡†…„ƒƒ‚‚‚‚‚‚‚ƒƒƒ„…††‡ˆ‰Š‹ŒŒŒŒ‹‹Š‰‰ˆˆˆˆˆˆˆˆˆˆ‡‡‡‡†††……„„„„„ƒƒƒ‚‚€€~~}}}}~~~~~}}}}}}}~~~~~~€€‚ƒƒƒƒƒƒƒƒƒƒ‚‚€€~}||{{zzzzzzzzzz{{|}~~€€€€€€€~}}|{{zzyyxxwwvvvvwwwxxxyyyyyzz{||}}~~~~~~}}|||}}}|||{{zzyyxwwvuttttttttssrqqqqqqqrrrstuvwxxxyyyzz{{|}~€€~~}|{zyyxxxxyyzzzyxwvuuttttttuuvwxy{|}~~~~~~~~€€€~}|{zyyxxyyyz{|}~~€€‚ƒƒ„…††‡‡‡‡ˆˆˆˆ‡†…ƒ‚€~~€‚ƒ„„„„„„ƒƒ„„……†‡ˆ‰‰‰‰‰‰‰‰ˆˆˆ‰‰Š‹ŒŒ‹‹ŠŠ‰‰ˆˆˆˆˆ‰‰Š‹ŒŽŽŽŽŽŽŽŽŒ‹ŠŠ‰‰ŠŠŠ‹‹ŒŒŒŒŒ‹Š‰ˆ†…„„ƒ„„……†‡‡‡‡‡‡††…………„„„„ƒƒƒƒƒƒ‚‚‚€€€€€€€€€€~}|{zxwusrqpppppppqqqqqrrrrrrstuvwwxyz{{||}}~~€‚€~~}}|}~€€€~}|{{{{|}~€‚‚‚‚€~}|{zyxwvutsrrrrrrrrrrrrrrqrrrrsssssssssttttttssssssttuvwxxyz{|}~~€€€€€€‚‚ƒƒƒ‚‚€€~~~~~~~~~€€‚‚ƒƒƒƒƒƒ„„…†‡ˆ‰‰ŠŠ‹‹‹Š‰ˆˆ‡‡†††††††……„ƒƒ‚‚‚‚ƒƒ„„……††‡‡††…„„ƒ€~}|||{{{||}}~€€‚ƒ„…†‡‡ˆˆ‡‡‡††…††‡ˆˆ‰‰ŠŠŠŠŠŠ‰‰ˆ‡†…„ƒ‚€€€€~}}|{{zz{{|}}~~€‚„†ˆ‰‹ŒŒŒ‹Š‰ˆ‡†…………„„ƒƒ‚€~}}}}}~€ƒ„†‡ˆˆ‰‰‰ŠŠ‹ŒŒŒŒŒ‹‹ŠŠ‰‰‰ŠŠŠ‹‹‹‹‹‹‹ŠŠŠŠŠŠ‹‹ŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒŒ‹‹ŠŠ‹‹ŒŒŒŽŽŽŽŒ‹‹‹‹‹‹ŒŒŽŽŽŽŽŽŽŒŒŒŒ‹‹ŒŒŒ‹‹ŠŠ‰‰ˆˆˆˆ‡‡‡‡‡‡‡††………………………†………„ƒƒ‚‚‚‚‚ƒ„……†††‡‡‡††…„„„„„„…††‡‡ˆˆˆ‡‡‡‡‡‡‡‡‡‡‡‡‡ˆ‰ŠŠ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ŠŠŠŠŠ‰ˆ‡†…ƒ‚€~}||{{zyyxwwvvuuuuvvvvuuvvvwwxyzz{{zzyyxwwwwxxxyyyyzzzzyyxxwwvusrqqqqqqpppqqqqqqqqqqqqqqqqqqqqqqqrrrssttuvvwxyyyzzyyyyyyzz{{zzywvtssssttuvwwxyyyyyyxxwwwwwwxxyyyyyxxwwwwwxxyyzzzzzzz{{{|||||||{zyxwwvvuuuuvvvwwwwxxxxxxwwvuttuuvwxxyyyyxxwwvvvvvvwwxyyzzzyyxxwwvvuttssrrrrssstuuvwxz{|}~~~~~}}}}}}||{{zzyxxwvvutttssssssssssttuvvwwxxyyz{{{|||{{zyxwvvuuuuttttttsssttttttttssrrrrrsssssssssrrrqqqqqrrsstuvwxyz{|}~€‚ƒ„…††‡‡ˆˆ‰Š‹‹ŒŒŒŒŒŒ‹Š‰ˆ†……„„ƒƒƒƒƒƒ„„„………†††††††…………………………†††‡ˆˆ‰‰ŠŠŠŠŠ‰‰‰‰‰ˆˆˆ‡††…„‚€~~}}}}}||{{zzzzzz{{zzyxwwvuuuuvvwwxxwwvuutuuuvwwxxxxxxxxxxxyyzz{|}~€‚‚ƒ„„„„„ƒ‚€~~}||{{{zzzzz{{{{|}~~~~~~~~~~~~}}}||||||||}}}}~~~~~€€€€€€€~~}||{{{zzzzzzyxxwwwwwxxyyyzzyyyxxyyyzzzzzyyyyzzzzz{{{||}~€‚‚‚‚‚‚‚€€~~}}||||||||}}~~€‚‚ƒƒ„„„…†‡ˆˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰ˆˆˆˆˆˆˆ‡‡†††‡‡‡‡ˆˆ‡‡††…„„ƒƒƒƒƒƒƒƒƒ‚€€~}||{{zz{{|}~€‚ƒƒ„„„„„ƒƒƒ‚‚‚€€~~~~~}}{zyxwwwwxxyyz{{||||}}}~€‚‚ƒƒƒ‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒ„„…†‡ˆ‰ŠŠ‹‹ŒŒŒŒŒŒŒŒŒŒ‹‹Š‰ˆ†……„ƒƒƒƒƒ„„„„„„„„„„„„„„„„„„„„„„„„„„………††‡‡‡‡‡ˆˆˆ‰‰‰ŠŠŠŠ‹‹‹‹‹ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŽŽŽŽŽŒŒŒŒŒŒŒŒŒŒŒŒŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒ‹Š‰ˆ‡†…„ƒ‚€~}|{zzyxwvutsrrqqqqrrrrrrqqqqqqqrrrrrrsssssssssssssssttttssssssssssssttuvvvuuutsssssssssttuuuvvvvvvvvvuuuuuuuvvvvwwwwwwwwwxxyyyzzzyyxxwvvuuuvvvvvvutsrrqqqqrqqqqqqrrrrrrrrssssssrrrrstuvwxyyyzzzyyxxwwwwwwwwvvvvwwxyz|}~€€€€€‚‚€€€€€€‚‚‚ƒƒ‚‚‚‚‚‚‚ƒƒƒ„„……†‡‡ˆ‰‰ŠŠ‹ŒŒŒŒ‹‰ˆ‡‡††…„„„ƒƒƒƒƒƒƒ‚‚‚€€€€€€€€€€€€€€€‚‚‚‚€€€€€€€€€€€€€~}|{zyxwvuttttttuuvvvvvvvvvuuuuuuvvvvvuuuuuuuvvvvvwxxyyyyyyyyxxxwwwwwxyy{{|}}}}|||||||}}~€€‚‚‚‚‚‚‚ƒƒ„„………………………………………………„„„„……†‡ˆˆ‰‰‰ŠŠŠ‹ŠŠ‰ˆˆ‡‡†††……„„ƒƒ‚€~}|{{zzzzzzzzzz{{{|||}}~~~~~€€‚‚‚ƒƒƒƒƒƒƒ„„…††‡‡‡†††…„ƒƒ‚€€€€€€‚€~}|{zzzyzzz{|}~€‚‚‚€~~}}}~~€‚ƒ„„„„ƒ‚‚€€€€€‚‚‚ƒƒ„„…††‡‡‡ˆˆˆˆˆˆˆˆˆ‡‡‡‡††…………………†††††…………………„„„„„……††‡‡ˆ‰‰Š‹‹‹‹‹‹‹‹‹‹‹‹‹‹ŒŒŒŒŒŒŒŒŒŒŒŒŒŒ‹Š‰‡†…„„„„……††‡ˆˆˆˆ‰‰‰‰‰‰Š‹‹ŒŽŽŽŽŒ‹Šˆ‡†……„ƒƒ‚€€€‚„…†‡ˆ‰‰ŠŠŠ‰‰ˆˆˆ‡‡‡‡††………††‡ˆˆˆˆˆˆ‡‡‡††……„„ƒƒƒƒƒƒƒ‚€€~~~~~~~~}}}}}}}|||{{{||}~~€€‚‚‚‚ƒƒƒƒ„„„ƒƒƒƒƒƒ‚‚‚€€~~}|{zxwwvvwwxxyyxxwwwwxxyyz{{{||||||||||{{zzzyyxxwwvvvuuttssrrrrrrrrrrrrrsttuvvwxyyz{||}}}}}~~~~}}||||||}||zywvtsrrrrrrrsssrrrrrrrrrrrrrrrssstttttuuuuuuttttttuuuvvvvvvuuttsssssssrrrrrrrrrrrrsssssrrrrrrrrsssssssssssssssssssttuuvwwwxxxyyz{{|||||||}}~€€‚‚‚ƒƒ„„……†‡‡ˆ‰Š‹ŒŽŽŽŽŽŽŽŽŽŽŽŽŒŒ‹ŠŠŠŠŠ‹‹‹‹‹‹ŠŠŠŠŠ‰‰ˆ‡‡††††††††††‡‡‡ˆˆ‰‰Š‹ŒŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒŒ‹‹‹ŠŠ‰ˆˆ‡‡‡‡††……„„„ƒƒƒƒ‚‚‚‚‚‚ƒ„…†‡‡ˆˆ‰‰ˆˆ‡†……„„„„„…………††††‡‡‡‡‡‡‡††……………††‡‡‡ˆˆ‰‰Š‹‹ŒŒŒ‹‹‹‹‹‹ŠŠŠŠ‰‰ˆ‡†……„„„……†‡ˆˆ‰ŠŠ‹‹‹‹‹‹ŠŠ‰‰ŠŠ‹ŒŒŒŒŒ‹‹‹‹ŒŽŽŽŒŒ‹‹ŒŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒŒŒŒŒŒŒŒŒŒŒŒŒŒ‹Š‰‰ˆˆ‡‡†††††……„„ƒ‚‚€€€€€‚‚‚‚‚€~~~~~~~~~~}}|{{{{|||||||{{{zzzzyyyyxxwwvvuttsssttuuuuvuuuuuttsssstuvvwwwwwwvvuuuuuttttssssstttttsssssrrrrrrrrrrrssssssssrrrrrrrrrrrrrrrrrrrrrrrrrrrrrsssstttuvvxyz{||||{{{{{zzzzzzzz{{||}}}~€‚‚ƒƒƒ‚€~}||||}}}}||||||||}~€‚‚ƒƒƒ‚‚‚‚‚ƒƒƒƒ„„ƒƒ‚€~|{{zzzzzyyyyyzz{|}~~€€‚‚‚ƒ„„………†………„ƒ‚€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ„„………†††‡‡ˆˆˆˆ‰‰ŠŠ‹‹ŒŒŽŽŽŒŒ‹‹ŠŠŠŠŠ‹‹‹‹‹‹‹ŒŒŒŒŒŒŒŒŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŽŒŒŒ‹‹‹ŠŠŠŠŠŠŠŠŠŠŠ‹‹‹‹‹ŒŒŒŒŒŒŒŒŒŒ‹‹‹‹‹ŠŠŠŠŠŠŠŠ‰‰‰‰‰‰‰‰‰‰‰‰‰ŠŠŠŠŠ‹‹‹‹‹‹ŠŠŠŠŠŠŠŠŠŠŠŠ‹‹‹‹‹‹‹‹‹‹ŠŠŠŠ‰‰‰‰ˆˆ‡‡‡††……………††††††††‡‡‡‡‡ˆˆˆ‡‡‡‡†††††††††††††…………†††††…„„ƒ‚‚€€~~~~~€€‚‚‚‚‚‚‚‚ƒ‚‚ƒƒƒƒ„„„„„ƒƒ‚‚‚‚€€€€ƒ„…††‡‡‡‡‡‡‡‡‡ˆˆˆ‰‰ŠŠ‹‹ŒŒŒŒŒŒŒŒ‹ŠŠ‰ˆˆ‡‡††……„ƒ‚‚‚‚‚‚ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ‚‚‚€~}|{zzzzzz{||||||{zzyxxxxxxxwwxxxxyyyyyyyyzz{{|}}}~~~~~~~~~~~}}}||||}}~~~~}}}}~~€~~}|{{zyxxwxxyyz{{||}}~€€€€~}|||||||||{{{zzzzyyyyyyyyyyyyyyxxxxxxxyzz{||||{{zzyyyxxxxwwwvvvuuuutttttsssssssrrrrrrrrrrrrqrrrrrrrrrrrrrsssssrrrrrrrrrrrrrrrrssssttsssrrrrrrrrrrsttuvvvwwwxxyyyyyyxxwwvvuuuvvvwwwwxxxxxxxxxxxyz{|}~€€‚‚‚‚‚€€€€€€€€‚‚‚‚‚‚‚€€~~}}|{{{zzzzz{{{|||}}~~€‚‚‚‚‚‚‚‚‚€}|{yxwvutttssssrrrrrrrrrrrrrrrrrrrrrrrrssssssrrrrrrrrrrrrrrrrrrrsssssssssssssssssttuuvvwwwwwwvutssssrssttuvwxyz{{{||||}}~~~}|zzyyyyzz{||}}~~~~}}}~~€‚‚‚‚‚‚ƒ„„…†‡ˆ‰‰ŠŠŠŠŠŠŠ‹‹‹‹‹ŒŒŒŒŒ‹‹‹ŠŠŠ‰‰‰‰‰‰‰‰‰‰‰ˆˆ‡‡†………………………………………………………„„„ƒƒ‚€~~}|||{{{{{{{{{{|||}}}~€€‚‚€~~~~}~~~~}}}}|||||{||||||}}}}}}}~~~~~~~~~~€€€€€‚‚ƒƒƒƒƒ„„…………††…………………………„„„ƒƒ„„„„„„„„……††‡‡‡‡‡‡‡†††………†††††††………„„„„„„…†‡‡ˆ‰‰‰‰‰ˆˆˆ‰‰‰ŠŠ‹‹‹‹ŠŠ‰‰ˆˆ‡†…„ƒƒ‚€€€€‚‚ƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚€~}||{zyxwwvvvvvwwwwvvvvvvvvvvvwwxxyyyyyyyyyyyyxxxxxyyyxxxwwvvvuuuuuuttttsssssssssstuvwxxyzz{{|||}}}}}}}||||{{{{{{{{{{{zzzzzzzzyyyyyyxxxwwwwwwwwwvvvuuuuuvvwwxxxxxxxxxxyyzz{{||}}~~~}||zyxxwwvvvwwwxxyyyyyyzz{||}~~€€~~~~~~~~~~}|{zyxxwwvvuuutttttsssttttttttttttttsssssssssssssttuvvvwwwwwwvvuttssssssssssssssssssstssssssssssttttttttssssrrrrrrrssssttuvvwwxyyz|}~€€€€€€€€~~~}}~~~~~~€€€€€~~}}|||{{{{{||}~~€‚ƒ„………††‡‡‡‡‡‡††††††††††‡‡‡ˆˆ‰‰‰‰‰ˆˆˆˆ‡††…„„„„„„„„……„„„„„ƒƒ„„„„„„……………„„ƒƒ‚€€€‚‚ƒƒ„„…………………„„„ƒ‚‚€€€€€€€€€~~~~~~~~~~~}}||{{zzzyyyzzz{{||||{{{{zzz{{{||||||||||||}}~€€‚‚ƒƒ„……††‡‡‡‡††…„ƒƒ‚€€€~~~}}}}}}}}~~~~~~~~~~~}}}||{{{z{{|}~€‚‚‚ƒƒƒƒƒ„„„……†††††…………„„„„„„ƒƒ‚‚€€€~~~~~~~}}}}}~~~~~~}}}|||{{{{{{{{{{||}~€‚‚‚‚€€€~~~€€€€€€‚‚ƒƒƒƒƒƒƒƒ‚‚‚€€€€€€€~~~€€‚‚ƒƒƒ„„……†††††……„„ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒ„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚€€~}}||||}~~€€~~~~€€€‚‚‚‚‚‚‚‚ƒƒ„„…†‡‡ˆ‰‰ŠŠŠŠŠŠ‰‰ˆˆˆˆ‰‰Š‹ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ‹‹‹‹‹‹ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒ‹‹Š‰ˆ‡††…………„„………††‡‡‡‡‡ˆˆ‰ŠŠ‹‹‹‹‹‹‹‹ŠŠ‰‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡‡††……„ƒ‚‚‚ƒƒ„„……†‡‡ˆˆ‰‰‰ŠŠŠ‹‹‹ŒŒŒŒŒŒŒŒŒŒŒ‹‹‹ŠŠ‰‰ˆˆˆˆˆˆˆˆˆ‡‡‡†††††††‡‡ˆˆˆ‰‰‰‰‰‰‰ˆˆˆˆ‡‡‡‡††††……„„ƒƒ‚‚‚€€€€~~~}}||{{{{{{|||}}}}}}}|||||||}}}}}}}}~~~~€€€‚‚‚‚‚‚‚‚‚ƒ„…†‡ˆ‰Š‹‹ŒŒŒŒŒ‹ŠŠŠ‰‰‰‰‰ˆˆˆˆ‡‡‡†††…„ƒƒƒƒ‚‚‚ƒƒƒƒƒ‚‚€€~}}||{{zyyxwwvuttssssssssssssttuvxyzz{||}}}}}||{{{{{{{{{{{zzyyyyyyzz{|}}}}}}}}}~~~~~~~€€€€€€~~}}}}}}~~€€€€€€€~~}}~~~€€€€€€€~~~~~~~~}}||||||||{{{zzzzz{{{{{{zzyyxxxwwwvvuutuuvwwxyyzzzzz{{{{|||}}}}}|||{{zzyyyyyyyyyyyzzzyyyyzzz{{|}}~€‚ƒƒ„„„„ƒƒƒƒƒƒƒƒ‚‚‚€€€€€€~~}|{{zyyyyyyyz{||}~~~~~~}|{zzyxwvvuuttttttuuuuuvvvwwxxxyyz{|}~€€‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒ‚‚€€€€€€~~~}}}}||{zzyyxwwwwvvvvvvuuuuuuuuuuuttsssssssssssttuvwxxyzz{{{{{{zzzzzzzzz{{{{{zzzzyyyxwwvvuuutttttttuuuvvwwwxxxyyzzzzzzzzzzz{{{{||||}~~~~~~~~~~~~~~}}||||}}}~~€€€‚‚ƒ„…†‡‡ˆˆˆˆˆˆˆˆˆˆˆ‡‡‡††…„ƒ‚€€~}}|||||}}}}~~~€€‚‚‚ƒƒƒƒ‚‚‚‚‚‚€~}|{{zzzyyzzz{||}}~~~~~€€‚‚ƒƒ„„………††‡‡ˆˆˆ‡‡‡†………„„„„ƒƒƒ‚€€€€€€€€~~}||{{{||}~~€‚‚ƒƒ„„……††††††††††††‡ˆˆ‰ŠŠ‹‹‹‹‹Š‰‰ˆ‡††††‡ˆ‰‰ŠŠŠŠŠŠŠŠŠŠŠŠŠ‹‹ŒŒŒŒŒŒŒŒŒŒŒ‹Š‰ˆ‡†…„„ƒ‚‚€€€€€€€€€‚‚‚‚‚‚‚‚€€€€€€€‚‚ƒƒ„„ƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚€€€€€€€~~}|{{{{||}~€‚‚ƒƒƒ‚‚€€€€€€€€€~~}|{{{{{{{|||}}}~~~~~€€‚‚ƒƒ„…†‡ˆ‰ŠŠ‹ŒŒŒŒŒŒ‹‹‹‹‹‹Š‰‰ˆˆ‡‡‡†††……„„„ƒƒƒ‚‚€€€€€€€€€€€‚‚ƒƒ„„„„ƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ‚‚€~~~~}|{zyxwvuuuuuuuuvvvvvvuutttttttttuuuuutttssssssstttuuvwxxyyyyyyyyzz{|~€‚ƒ„„…………„„„„„…………†††††††……„„ƒ‚‚‚‚ƒƒ„„……„„ƒ‚‚€~~~~~€‚‚ƒ„……†††††††††††‡‡‡‡ˆˆ‡‡‡‡††………„„„„„………………………………………………………†………………„„„ƒ‚€~~~~~~~~~}}}}}}}}}}}|||{{{{zzzzz{{{{||}}~~€€€‚‚ƒƒ„„………………„ƒƒ‚‚‚‚‚‚‚ƒƒƒ„„„„„„„„„„„„„„ƒƒ‚‚‚‚ƒƒ„……††††……„ƒƒ‚‚‚‚‚‚ƒƒ„„……††‡‡‡‡‡‡†††††††………„„ƒƒƒƒ‚‚‚€~}|{{zzzzzzzzzzyyyxxxwwwwvvvuuuttttttssttttuuvvvvvvvvuuutttttttuuvwwxxxxxxxxxyyz{|}~~€€€€€€€€€€€€~~}}|{zzyyxxxxwwwwwwvvvvuuuvvwwxxxxxwvuttssssttttttssssssssssssssssssstttttttttssssssssstttttttttsssssttuuvwwxyz{|}~~€€€€€€~~}||{{{zzyyxxwvvvuuutttttttuuvvvwwxxyyyyzzzzzzz{{||}}}}}}}}|||{{{{{{||}}}~~~~~~}}}||||||{{{zzzzzzzzz{{||||}}|||||{{{|||||||||||||{{zzzzzzz{{{{{||||||||}}}}}}}~~~~€€€€€€€€€€€€€‚‚ƒ„„……††‡‡ˆˆ‰ŠŠ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ŠŠŠŠŠŠŠŠŠŠ‹‹‹‹‹‹ŠŠŠŠŠ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ŠŠ‰‰‰ˆˆˆˆˆˆ‡‡‡‡‡‡‡ˆˆˆˆˆˆˆ‰‰‰‰ŠŠ‹‹Œ‹‹‹‹‹‹ŒŒŒŒŒŒŒŒŒŒŒŒŒ‹ŒŒŒŒŒŒŒŒŒ‹‹ŠŠŠŠ‰‰‰‰ˆˆˆ‡‡†††………„„ƒƒƒ‚‚‚‚‚‚ƒƒƒƒ„„„……………„„„„„„„„…………††‡‡ˆˆ‰‰‰‰ŠŠŠŠ‰‰ˆ‡††…………………………………„„ƒƒƒƒƒƒƒ„„„………†††††……„„ƒƒƒ‚‚‚€~}||||}}}~~~~~~~}}~~~€€‚‚‚ƒƒƒƒ„„„………†††……„ƒ‚€€€€€€€~~}}|{zyyxxxxxxxxyyyyyyyyyzz{{{{|||||}}}}~~~~}}}|||||||}}}}||{{zzzz{{{|||}}~~~~~~~}}}}}|||{{zyxwwvvuuuuuuuuuuuuuttttuuuuvvvwwwxxxxyyyyzzz{{{{{zzzzzz{{{zzyyyxxxxxxxxxxxxxxwxxxxyzz{{|||||||||{{{{zzzzzzzz{{{{|||{{{{{{{zzzzyzzzz{{|}}~€‚‚‚‚€€€€€€€€€€€€€€~~~~~~}}||||||{{{zzzzz{{{||}}||{{zyxxxxxxyyyyyxxxxyyz{|}~€‚ƒ„„……††††††‡‡ˆˆ‰Š‹‹‹‹‹‹ŠŠ‰‰‰ˆ‡‡†††††††††††‡‡‡ˆˆˆˆˆˆˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰ˆ‰‰‰‰‰‰‰‰‰‰‰‰ŠŠŠ‰‰ˆˆ‡†…ƒ‚€~~}||{{{{{{{|||||||||{{{{{{{{{||}}}~~~€€€€€€~}}}|||||}}}}||||{zzyyyxxxxxxxwwwwvvvvwwwwxyyz{{{|}~~€€€€€€€€€€~~~}|||{{{|||}}}~~€€€‚ƒ„……†‡ˆˆ‰‰‰‰‰‰‰ˆ‡†…„ƒ‚‚€~~~}}}}}~~~€€€‚‚ƒƒƒ„„„„………††‡‡‡‡‡‡‡‡‡†††††††…„ƒƒ‚‚€€~~}}|||||||}}}~~~~€€~~~~~~~}}}~~€€€€€€€€€€€€‚ƒ„…†‡‡‡‡‡‡†……„„„ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€‚‚ƒƒƒƒƒƒƒƒƒ„„…††‡ˆ‰‰Š‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ŠŠ‰‰ˆˆˆ‡‡‡‡‡†††……„ƒƒ‚‚€€€€€€€€€€€€€€‚‚ƒ„„…††‡‡‡ˆˆˆˆˆˆˆˆˆˆ‡‡‡‡††……„ƒƒ‚€€€€€€€€€€~~~~~~~~€€‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒ„„„„ƒƒ‚€€€~~}}|{{zzyyyyzzz{{{||||}}}~€€‚‚‚‚‚‚‚‚‚‚‚€€~~~~€‚ƒ„„………………………………„„ƒƒ‚‚‚‚‚ƒƒ„„…………†††‡ˆˆ‰ŠŠŠ‹‹‹ŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠ‰‰ˆˆˆˆˆ‰‰‰‰‰ŠŠ‰‰ˆ‡††…„„„ƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚ƒƒƒ„……††‡‡‡‡††††††††………„„„ƒƒ‚€~~~€‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒ„„„„……†‡‡ˆˆˆˆˆˆˆ‡‡††……„„ƒƒ‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€~~~}}||{{zyyxxwwwwvvvvvvvvvvvvvvvvvvvvvvuuuutttttssssssstttttttttssssttttttttssssssssstttttttttttttttuuuuutttttttttttttssstttttttttttttttttuuuuuutttttttttttttuuvvvwwwwwwwwwvvuuuuuuuvvvvvvuuttttttttttttttuuvvwwwwwwwwwwwwwxwwwwwwwwwwvvvvwwwwwwxxxxxxxxxxxxxxxxxwwwwvvvvvwwwxxxxxxxyxxxwwvvutttstttttttttttsssstttttuuvwwxxyyyzzzzzzzzzz{{{{{{{{{{zzzzzzzz{{{{{{{{{{{{{{{{{{{{{||||}}}~~~€€‚‚ƒƒ„„……†††‡‡‡‡‡‡††…„„„ƒƒ‚‚‚‚‚‚‚‚€€€€€€€~~~~~€€‚€€€€€€‚‚ƒƒƒƒ„„„„„„„„„„„„„ƒƒƒ‚‚‚ƒ„„…†‡‡ˆˆˆ‰‰‰ŠŠŠŠŠ‰‰‰‰‰ŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠ‰‰‰‰‰‰ŠŠŠ‹‹ŒŒŒ‹‹‹‹‹‹‹‹‹‹‹‹ŠŠŠŠ‰‰‰‰‰ŠŠŠŠ‹‹‹‹‹‹‹‹‹‹‹‹ŠŠ‰ˆˆ‡‡††††††††††…………………„„ƒƒ‚‚‚ƒƒ„„………††‡‡‡‡ˆˆˆˆˆˆˆˆˆˆ‡‡††………„„„ƒƒ‚‚€€€€€‚‚‚ƒƒƒƒƒƒƒƒƒƒƒ‚‚‚€€€€€€‚‚‚ƒ„…††‡‡ˆˆˆ‡‡‡‡††……„„ƒƒ‚‚‚€€~}||{{{||}~€€€~~~~}}}}||||||||||}}}~~~€€€€‚‚‚€€€€~~~}}}||{{zzyyxxwwxxyyyzz{{||}}~€€€€€€€€€~~~~}}}}}~~~~~~~~~~~~}}|{{zzyyyyyyxxxxxwwwwvvvuuuuuuuuuuuuuuuuuttttttuuuuvwwxyyzzzzzzyyxxxxxxxxyyyyzzzz{{{{zzzzzzzyyyyyyxxxxxwwwwwwwwwwwxxxyz{||}~~~~€€€€€€€€€€€~~~}}}}}}}}}}}~~~~~€€‚‚ƒƒƒ„„„„„„„„ƒƒ‚‚‚€€€€€‚‚‚ƒƒ„……†††‡‡‡‡‡‡‡‡‡†††………„„„„„„„„„„„„„ƒƒ‚‚‚€€€€€€€€€€~~}}}||||{{{{zzzzz{{{{||}}~€‚ƒƒ„„………………„„„„„„„…………†††……………………††††‡‡ˆˆ‰ŠŠŠ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ŠŠ‰‰ˆ‡‡‡††……„ƒ‚‚€€~~}}||||{{{{{zzyyyxxxxxwwwwwvvvvvvvvvwwwwxyyzzz{{{{||{{{{zzzzzzzz{{{||||||{{zzyyxxxxxxxxxxxxxxxxxyyyyyyyyxxxxxxxxxwwwwwwwwwwwwwwwwwwwwwwwvvvvvvvvvvvvvvvvvvvvvwwxxyyyzzzzzzzzyyyxxxxwwwwwwwwwwxxxxxxxxxxxyyyzz{||}~~€€‚‚ƒƒƒƒ„„„„„„„„„„……………„„ƒ‚€~~~~~~~}}}}|||{{{{zzzzzz{{{{{{|||}}}}}}}}}}}}||||{zzyxwwvvwwwwxxyyz{{||}}}~~~~~~~€€€‚‚‚‚‚‚‚‚‚€‚‚ƒƒ„„„……††††‡‡‡‡‡‡‡‡‡‡†††……„„„„„„……†‡‡ˆˆ‰‰‰‰‰‰ŠŠŠŠŠŠ‹‹‹‹ŠŠŠŠ‰‰‰ŠŠŠŠŠŠ‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹ŠŠ‰‰‰‰‰‰‰‰ŠŠŠ‹‹‹‹‹‹‹‹‹‹‹‹ŠŠŠŠ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ŠŠŠ‹‹‹‹ŠŠŠŠŠ‰‰ˆˆˆ‡‡‡††††……………„„ƒƒ‚€€€~~}}}}}}}}~~~~~~~~€€€€€€€€€€€~~~~~~~~~~~~~~~~€€‚‚ƒ„„……†††††††††…………††††††‡‡‡‡‡‡†††‡‡‡‡‡‡‡‡‡††……„„„ƒƒ‚‚‚€€€€€€‚‚ƒ„……††‡‡‡‡ˆˆˆˆˆˆˆˆˆ‡‡‡‡‡‡†††††………………„„„„„„ƒƒƒƒƒƒƒ„„„„„„„„„ƒƒƒƒƒƒƒ‚‚‚€€~~~~~~~~~~~~~~~}}}}|||{{{{{{{{zzzzyyxxwwwwwwwwvvvvvvuuuttttttttttttttttttttttttttttttttttttttttttttttttttututttttttttttttttuuuuuvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwwwwxxxyyzz{||}}~€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€~~}}}||||||||}}}~~~~~~€€€€€€€€€€€€€€€‚‚ƒƒ„„„„………………………………………………………………„„„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒ„„„„ƒƒƒƒƒƒƒƒƒ„„…………††††………………„„„„„„ƒƒƒƒƒƒ„„„ƒƒƒƒƒƒƒ‚‚‚‚‚‚€€€€€€€€€~~~~~~~~~~~}}}}}}}}}}||{{{{{{{{||}~~€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚‚‚€€€€~~~~}}}}}}~~~~€€‚‚ƒƒƒ„„„………………………………………††‡‡‡ˆˆˆˆˆˆ‡‡††……„„ƒƒƒƒƒ„„………††††††‡‡‡‡‡ˆˆˆˆˆ‰ˆˆˆ‡‡†……„ƒƒƒƒƒƒƒƒƒƒ„„„„„……………††††††††††…………„„„„ƒƒƒƒƒ‚‚‚€€€€€€€‚‚‚‚ƒƒƒƒƒƒ„„„„„…………………………„„„„„„ƒƒƒƒƒƒƒ‚‚‚‚‚€€€~~~}}}}}}}~~~~~~~~€€‚‚‚‚‚‚‚‚‚€€€€€€€€€€€~~~}}}}}}}}}}}}}}}}}}}}}~~~~~~~}}}}}}}}}}||||||||||||}}}~~~~~~~~~~~~~~}}||{{zzzyyyxxwwvvuuuuuuuuuuuuuuuuuuvvvvvvvvuuuuuuuuutttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvwwwxxxyyyyyzzzzz{{{{|||||||}}}}}}}}}}}|||||{{{{zzzzzyyxxwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwxxyyyzzzz{{{{{{{{{{{{{{{{{||||||||||||||||}}}~~~~€€€‚‚ƒƒƒƒƒƒ„„„„„„„„„„ƒƒƒƒ‚‚‚‚‚ƒƒƒ„„„„…………………………………………………„„„ƒƒƒ‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„ƒƒƒ‚‚‚€€‚‚‚‚ƒƒƒ„„………††‡‡‡ˆˆˆˆˆˆˆˆˆ‰‰‰‰ˆˆˆˆˆ‡‡ˆˆˆˆˆˆˆ‡ˆˆˆˆˆˆˆˆ‡‡‡‡††††…………„„„ƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ„„„…………………………………††‡‡‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡‡‡‡†††††††……………………………††††††‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡††……„ƒƒ‚‚‚‚‚€€€~~~~~~~}}}}}}}}|||||||||{{{{{{{zzzzzzyyyyxxxxxyyxxxxxxxxxxxxxxxxyyyyyzzz{{||||}}}||{{{zzyyxwwvvvuuuuuuuvvvvwwwxxxxyyyzz{|||}}}}}}||{{{{zz{{{{{{{{||||||}}}}~~~~~~~}}}||{{zzyyxxwwwwwwwwwwwxxxxyyyyyzzzzzzzzzzyyyyyyyyyyyyyzzz{{{{{{{{{{{{{{{|||{{{{{{{{{{|||}}~~€€€€€‚‚‚ƒƒ„„„……††‡ˆˆ‰‰‰‰‰‰‰‰ˆˆˆ‡‡‡‡‡‡ˆˆˆˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ˆˆˆˆˆˆˆ‰‰‰‰‰‰‰‰ˆˆˆˆˆˆˆˆˆˆˆˆ‡‡‡††…………………†††‡‡ˆˆˆ‰‰‰‰ˆ‰‰‰‰‰‰ŠŠŠŠŠ‰‰ˆˆ‡‡‡‡‡‡‡‡‡‡‡††††…………„„„„„„„„„„„„„„ƒƒƒƒ‚‚€€~~~~~~~~~~}}}}~~~~~~~}}}~~~~€€€€€€€€€€€€€€€€€€€€€€~~}}|||{{{{zzzyyyxxwwwvvvvvvvvvvvvvvvvwwwwxxyyz{{||}}~~~~~}}|||||||||||}}}}}}}}}~~~~~~~~~~~~~}}}}~~~~~~~~~~~~~~~€€€€€€~~~~~~~}}}}}}}}}}}}|||||||||||}}}}}}~~~€€€€€€€€€€~~~~~}}}||||||{{|||||||}}}}}}}}}}}}}}|||||{{{zzyxxwvvuuuuuuuuuuuvvwwxxyyzz{{|||}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~€€€€€€€€€~~~}}}||{zzyyxxxxxxxxxxxxxyyyyyyzzzzz{{{|||}}~~~~€€€€€€€€~~}}}}}|||{{{{{{{{{{{{{{||||}}}}}}}}}}}}}}}}}}}|||||||||||}}}}}~~~~~~€€€€‚‚ƒƒ„„………††††………………………………………………„„„„ƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ„„„„………„„„„„ƒƒƒƒ‚‚‚‚‚‚‚€€~~~}}||{{{zzzzyyyyzzz{{|||}}}~~€€‚‚‚ƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~}}}|||{{{{{{{|||||||{{zzyyyxxxxwwwwwxxxyyzz{||}}~~€€€€€€€€~~~€€€€€~~}}}}|||||||{{{{{{{{{{{{{{||||}}}}~~~~€€€€€€€€€€€€€€‚‚ƒƒ„„„„„„„……††‡‡ˆˆˆˆˆˆˆˆ‰‰‰‰‰ŠŠŠŠŠŠŠ‰‰‰‰ˆˆ‡‡‡††……„„„„„ƒ„ƒ„ƒƒƒƒƒƒƒ„„„„„ƒƒƒƒƒ‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€‚‚ƒƒƒƒ„„„……………††††††††††††††‡‡‡‡‡‡‡‡‡‡‡‡‡‡†††††………„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„ƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒ‚‚‚‚€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~€€€‚‚‚‚‚‚‚‚ƒƒƒ„„„„„„„ƒƒƒ‚€€€~~~}}}}}}}}}}}}}~~~~~~~~€€€‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚ƒƒ‚‚‚‚€€€~~~~~~~~~~~~~}}}|||{{{zzzzzzzzzzzz{{{{zzzyyyyyyyyyyyyyyyzzzzzzzzyyyyxxxxxwwwwwwwwwvvvvvvvvvvvvvwwwxxxyyyzzz{{{{{||||||||||||}}}}}}}}||||||||||||||{{{zzyyxwwvvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvvvwwwwwwwxxxxxyyyyyyzzzzzz{{{{||||||{{{{{zzzzzz{{{{{{{{{{{{{zzzzzzzzzzzzzzyyyyyxxxwwvvvvvvvvwwwxxxxxyyyyzz{{|||}}}~~~~€€€‚‚‚‚ƒƒƒƒ„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ„„…………†††………„ƒƒ‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚ƒƒ„„„………………†††‡‡ˆˆˆ‰‰‰‰‰‰‰‰‰‰‰‰‰ŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ˆˆˆˆˆˆˆˆˆˆˆ‡‡‡‡††††††††††††††††††††††††‡‡‡‡‡†††††††††……„„ƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}~~~~~~~~~~~~€€€€€~~~~~}}}}}||{{zzzyyyyyzzz{{{{{{||||||||}}}}}}}}}}}}}}}|||||{{{zzzyyxxwwvvuuuuuuuuuuuuuuuuuuuuuuuuuuuvvvvvvwwwwwwxxxxyyyyyzzzzzzzzzzzzzzzyyyyxxxxxxxxyyyyyyyyyyyyxxxxwwwwvvvwwwwxxxxyyyyzzzzzzzzzzz{{{{{{{{{{{{zzzzzzzzzzzz{{{{{{{{|||||||||||||{{{{{zzzzzzzzzzzzz{{{{{{{{{{{{{{{zzzzzzzzzyyyyxxxxxxxxxxyyyzzz{{|||}}}~~~~~~~~~~}}}}}|||||}}}||||||||||}}~~~€€€‚‚‚‚ƒƒƒ„„……††††‡‡‡‡‡††††††††††††……………………………†††††‡‡†††‡††††††††……………„„„„„„„„„„ƒƒƒƒƒƒƒ‚‚‚‚‚ƒƒƒƒ„„„„„…………………………………………………††††‡‡‡‡‡‡‡‡‡‡‡‡‡ˆˆˆˆˆˆ‰‰‰‰‰‰‰‰‰‰‰ˆˆ‡‡††…………„„„„ƒƒƒƒ‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚€€€€~~~~}}}|||||||}}}}}|||{{{zzyyxxxxxxxxxxxxxxxxxxyyyyyyyyyzzz{{{||||{{{{zzzzyyyyyyyyxxxxxxxxxxxxxxxyyyyyyyyyyyyyzzzzzz{{{{zzzzzzzzzzzyyyxxxwwwwwwwwwwxxxxxxxyyyyzzz{{{{{{{{{||||||}}}}}}}}}}}}}}}||||||||||{{{{{{{{{{{{||||||||||||}}}}}}|||||}}}}}~~~~~~~~~~~}}}}}}}}}}}}}}}}~~~~~~€€€€~~~~}}}}}}~~~~~€€€€€€€€€€€~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€‚‚‚ƒƒƒƒ„„„„„„„„ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚€€€~~~€€€‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒ„„„„ƒƒƒƒ‚‚‚€€€€€€€€€€€€€€€€€€€‚‚‚‚‚ƒƒƒ„„……††‡‡ˆˆˆˆ‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡‡‡‡‡‡‡††††………………………………………………„„„ƒƒ‚€€€€€€€€€€€€€€€€€€€€‚‚ƒƒ„„……†††††‡‡‡‡‡‡‡‡‡‡‡‡ˆˆˆˆˆˆˆˆˆ‡‡‡‡‡‡††††‡‡‡‡‡‡‡‡‡‡‡‡ˆˆˆˆˆˆˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ŠŠ‰‰‰‰‰‰‰ˆˆˆ‡‡†††……„„„„„„„„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚€€€€~~~~~€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€~~~~~}}}}}}}}~~~~~~~~~~~~~~~~}}}}}}}}}}}}}|||||{{{{{{{{{zzzzyyyxxxxxxxxxxyyyyyyzzzzzzzz{{{||||||}}}}}}}}~~}}}}}}}}}}}}}}}}}}}}|||||{{{{{{{{{{{{{{{{zzzzzzzzzzzzzzzzzzzzzzz{{{|||||||||{{{zzyyxxwwwwwwwwwwwwwwwwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwxxyyyzz{{{||}}~~~~~~}}}}}|}}}}}}~~~€€€€€€€€~~~~~~~~}}}}}}}}}~~~€€€€€€~~~~~~~~~~}}}}||||{{{zzzzyyzzz{{{{||||||{{{zzzzyyyxxwwwwxxxxyyyyzz{{||}}}}~~~~~€€€€€€€€€€~~~}}}}}|||||}}}}}}}}}}}}|||||||{{{{{{{{{{{{{{{{{|||||||||||}}}~~~~~~~}}}}}|||||||||||||||||||||||}}}}}}~~~~€€€~~~~€€€€€‚‚ƒƒƒƒ„„ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒ„„„„„„……………………………„„„„„„………………†††††††‡‡‡ˆˆˆˆ‰‰‰‰‰ˆˆˆˆˆˆˆ‰‰‰‰‰‰‰‰‰‰‰‰ˆˆ‡‡‡†††…………†††††…………………………„„„„ƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ„„„„„„„„„„„„„„„„„„ƒƒƒƒ‚‚‚‚‚‚‚ƒƒƒ„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ„„„……………††††††††††††††††…………„„„ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚€€€€~~~~~~~~~~~~~~~~~~~}}}}|||{{{{{{zzzzzzzzzzzzzzzzzzzzzyyyyxxxxxxxxxxxyyyzzzzz{{{{|||||||||||||}}~~~~~~€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚€€€€€€€~~~~}}}}}}}}}}}}}}~~~~€€€€€€€€€€€~~~}}||{{zzyyyxxxxxxxxyyyyyyyyyxxxxxxxyyyyyyyyyyyyyyyyxxxxwwwwwwwwwwwwxxyyzzzz{{zzzzzzzzzzzzzzzzzzzz{{{||||||||||||||||||||}}}}~~~~~~~~}}}||||{|||||||||||||{{zzyyyxxxxxxxxxxxxxxxxxxxxxxxyyyyyzzzzz{{{{||||}}}}~~~}}}}}}}}||||{{{zzzzyyyyyyxxxxyyyyyzzzzzzzzzzzyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyzzzzzz{{{{zzzzzyyyyyyyyyyyyyyzzzzzzzzz{{{{{||||}}}}}~~~~€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒ„„„„……††‡‡ˆˆˆˆ‰‰‰‰‰‰‰ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‡‡‡‡††††‡‡‡ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰ˆˆˆ‡‡‡††…………„„„„„„„„„„„„„„„„„„„„„„ƒƒ„„„„„„„„„„„……………†††††††††††††††………………„„„„„„ƒƒƒƒ‚‚‚‚‚‚‚‚‚ƒƒƒ„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚€€€~~~}}||{{zzzyyyyyzz{{{|||||||||||||||||||||||||{{{{{{zzz{{{{{{{{{|||||||{{{{{{{{{{{||||||||||||||||}}}}}}}}}}}}}}}~~~~~€€€€€€€€€€€€€€€€€€~~~~}}}}}||||||{{{{{{zzzzyyyyxxxxxxxxxxxxxxxxyyyyyyyzzzzzz{{{{{{{|||||}}~~€€€€€€‚‚‚‚ƒƒƒƒ„„„„„„„„„………………†††‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡†††………„„„„„„„„„„„„„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒ‚‚‚‚€€~~}}|||||}}}}}~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~€€€€€€€€€€€€€€€€€~~~}}}}}}}|||{{{{{{{{||||||||||||||||||||||||{{{zzzzzzzzzzzzzzzzzzz{{{||||}}}}~~~~~~~~~~~~~~~}}}}||||{{{{zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{zzzzzzzzzzzzyyyyyzzzz{{{||||{{{zzzzzzzzzz{{{||||||}}}}}}}}}}}}}}}}}}}}||{{zzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{zzzyyyyyyyyyyyyyxxxwwwwwwwwxxxyyzzzz{{{{{{{|||||}}}}~~~~~~~~~~~~~}}}}}|||||||||||||||||||||||||||||||||||{{{{{{{{{{zzz{{{{{{{{{{{{{{|||}}}~~~~~€€€€€€€€€€€~~~~~€€€€€€€€~~~~~~~}}}||||{{{{{||||}}}}~~~~€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚€€€€€~~}}}||||{{{|||||||||||||{{{{{zzzzzz{{{{{{{{{{zzzzzz{{{{{|||}}}}}}}}}}}}~~~~~~~~}}}}}}}}}}}}}}}}}}}}}~~~€€€‚‚‚‚‚‚ƒƒ„„…††††‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡††††††‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡†††††††…†††††‡‡‡ˆˆˆˆˆ‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡†††††††††……………„„„ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ„„„„……………††††††††††††††††………………………„„„„ƒƒƒƒƒƒƒ‚‚‚‚ƒƒƒƒƒƒƒƒ„„„„„„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„„„„ƒƒƒƒ‚‚‚€€€~~}}}}||||{{{{zzzzyyyyyyyyyyzzzz{{{||||}}}}~~~~~~~~~~~~~}}}}}}}}}}}}}}~~~~~~~~}}}}}}}}}|||||||||||}}}}}}}~~~~~~~~~~~€€€€€‚‚‚‚‚‚‚‚€€€€€€~~~~~~~~~~~~~~~~~€€€€€‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ‚‚‚‚‚€€€~~~~~~~~~€€€€~~~}}}||{{{zzzzzzzzzzzzzzzz{{{{{{{{{{{{{|{{{{{{||||||||||{{{{{{{{zzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{zzz{{{{|||}}}~~~€€€€‚‚‚€€€€€€€€€€‚‚‚‚ƒƒ„„………………………„„„„ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚ƒƒƒ„„„…………†††††††††††††††††††††††††……………„„„„„ƒƒƒ‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€~~~~}}}}||||||}}}|||||||||||}}}}~~~~~~~~~~}}}}}}}}||||||||||||}}}}}}}}~~~~~~}}}}}|||{{{{zzzzzzzzzzz{{{{{{{{{{{{{{{||||}}}}}}}}~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€~~~}}}||||||||||}}}}}}}~~~~€€€€‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€‚‚‚‚‚ƒƒƒƒ„„„„„„„„„„…………††‡‡‡‡‡‡ˆˆˆˆˆˆˆˆˆ‡‡‡‡‡†††††……………………………………††††………………„„„„„„„„„„„„„„„„„„„„„„„ƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€~~~~~~~~~~~~~~~~~~~~~~}}}}}}~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~}}}}|||||||||||{{{{{{{{{{{{{{{||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}||||||||||||||||||}}}}}}}}}}}}~~~€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~€€€€‚‚ƒƒƒ„„„„„ƒƒƒƒƒƒƒƒ‚‚‚€€€€€€~~~}}|||{{{{{{{{{{{{{{{|||||||}}}}}}}}}}~~~~~~~~~~~~~}}}}}}}}}}}}}|||||||||{{{{{{{zzyyxxxxxxxyyyyyyyyyyyyyzzzz{{|||}}}}~~~€€‚‚‚ƒƒƒƒƒƒ„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€~~~~}}|||{{{{{{{{{{{|||||||||{{{zzyyxxxxxxxxxxxyyyyyzzzzz{{{{|||}}~~~€€€€€€€~~~~}}}}~~~~~~~}}}}}}~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€~~~~~}}|||{{zzzyyyyyyyyyyzzzz{{{{|||{{{{{{{|||||||}}}}}}}}}}}~~~~~~~~~}}}||||||||}}}~~~€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒ‚‚‚‚€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚€€€€€€€€€‚‚‚ƒƒƒƒ„„„„„„…………††††††‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡††††††††††‡‡‡‡‡‡‡‡‡‡†††††††††††††††††††††††††††††††………„„„ƒƒ‚‚‚€€€€€€€€€€€€€€€€€€€€€‚‚‚‚ƒƒƒƒƒ„„„„„………………„„„„„„„„„„„……………………………„„„„ƒƒƒƒƒƒ„„„„„„„„„„„„„„……………………„„„ƒƒ‚‚‚‚€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚€€~~~~~~~~~~~~}}}}}}}}||||||{{{{{{{{{{{|||||||}}}}}}}}}~~~~~~~~~~~~~~~~}}}~~~~~~~~~~}}}}}}}}}}}||||||||||||}}~~~~~~~~~}}}}}}~~~~~~~~~~~~~}}}}}}}}||||||||||||||||}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€~~~~~}}}}||||{{{{{zzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{||||||||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}||||{{{{{{zzzzzzzzz{{{{||||}}}}~~~~~~~~~~~~~~}}}}}}}}||{{{zzzyyyyyyyyyzzzz{{{||}}}}~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}|||{{{zzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{||||||}}}}}~~~~~~~~~~~~~}}}}|||||||||||||||||||||||||||}}}}}}}}}}}~~~~~~€€€€€€€€€€~~~~~}}}}}}}}}|}}}}}}}}~~€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„…………†††………„„„ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚€€€~~~~~~~}}}}}}}}}}}}}}}}~~~~€€€‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ„„„„„„„„„„„„„„„„„………†††††‡‡‡‡‡‡‡‡†††……„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒ„„„„„……………††††††††………„„„„„„„„……………………„„„„ƒƒƒƒ„„„„„„„„„„„„„„„„……………„„„„„„ƒƒƒƒ‚‚‚‚‚‚€€€~~~~~~~}~~~~~~}}}}}}}}}}}}}}}~~~~~~~~~~€€€€€€€€€€€€€€€~~}}}}}}}}}~~~~€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€~~}}|||||||||||||||}}}}}~~~€€€€€€€€€€€€€€€€€~~~}}}|||||||||||||||{{{{{{||||}}}~~~~~~~~~~~~~~~~~~~~~~}}}}}||||||}}}}}}~~~~~~~~~}}||{{zzyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyzzzzzzz{{{{|||}}}~~~~~~~~~~}}}}|||{{{{{{{{{{{{{{{{{{{|||}}~~~€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€~~~~~~~~~~~~~~~~~~€€€‚‚‚‚‚‚‚‚‚€€€€€€€€€€‚‚‚ƒƒƒƒƒƒ„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„ƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒ„„„„„„„„„„„„„„„ƒƒƒƒƒƒƒ‚‚‚€€€€€€€€€€€€€€€€€€~~~~~~~~~~}}}}|||{{{{zzzzzzzzzzzzzzzzyyyyyyyyzzzzzzzzzzzzzzzzzzzzz{{{||}}}}~~~~~~~~~}}}||||{{{{zzzzzyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyzzzzz{{{{zzzzzzzyyyyyxxxxxxxxxxxxxxxxxxyyyyyzzz{{{{|||}}}}}}~}}}}|||||{{{{{{{{{zzzz{{{{{||||}}}~~~~~~~~~}}}}}}||{{{zzzzzzzzzzzzzzzzz{{{{{{|||||}}}}~~~~€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒ„„„„„„………„„„„„„„………………………„„„„„„„„„„„„„„„…………†††††‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡††††††††††††‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡††††††…………………………†††††††††††††††††‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡††††††††††‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡‡†††††…………………………………………„„„„„„„„ƒ„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚€€€€€€€€€€€€€€~~~~~~~~}}}}}}}}}}||||||||||}}}}}}}}}}~~~~~~~~~~}}}|||||{{{{{{zzzzzzzzyyyyyyyyyyyzzz{{{|||}}}}}~~~€€€‚‚‚‚‚€€€€~~~~~}}||{{zzzyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzz{{{{{{|||||||||||||}}}}}}}}}}}}}}}~~~~}}}}||||{{{{{{{{{{||||||||}}}}}}}~~~~~~~~~~}}}}}}}}}~}}}}}|||||||||||||||{{{{{{{{{{{{{{{{{{zzz{{{{{{{{{{{{|||||||{{{zzzzzzzzzzzzzzzzzzzzz{{{{||||}}}}~~~~~~~~~~~~~~}}}}}}}}}}}}|||||||{{{{{zzzzzzzzzzzzzzzzzzz{{{|||}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}~~~~€€€‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~€€€€€€€€€‚‚‚‚‚ƒƒƒƒƒƒƒ„ƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ„„„„„„……………………………………„„„„„„„„„ƒƒƒƒƒƒƒƒƒ„„„„„„„„„…………††††††††††††††††††††††††………„„ƒƒƒ‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ„„„……………††††††††††……………„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„………………„„„„„„„„„„„……………………………„„„„„„ƒƒƒƒƒƒƒ‚‚‚‚‚€€~~}}}||||{{{{{{||||}}~~€€€€‚‚‚‚ƒƒƒƒƒƒƒƒƒ‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~}}}}}||||||{{{{{{{{z{z{{{{{{{{||||||||||||||||}}}}}}}}}}}}}}}}~~~~~~~~€€€€‚€€€€€€€€~~~~~~}}}||||||{{{{{zzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{|||||||||||||{{{{{{{||||||}}}}}|||||||||||||||||||||||||}}}}}~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~€€€€€€‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~}}}|||||{{{{{{{{{{{||||||||||||}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}|||||||||||||}}}}}~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~}}}}}}}|||||||{{{{{{{{{{zzzzzzzzzzzz{{{{||||}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„„„„„„„…………………………………………………„„„„„„ƒƒƒƒ‚‚‚€€€€‚‚‚‚ƒƒƒƒ„„„„„„„………………………………………………………††††††††††††††††††………„„ƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ„„„„„„„„„„„„ƒƒƒƒƒƒ‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„ƒƒƒƒƒƒƒ‚‚‚‚‚€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}|||{{zzzyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzz{{{{|||||}}}}~~~~~~~~~~~~}}}|||||||||||{{{{{{{{{z{{{{{{{||||||}}}}}~~~~~~~~}}}}||||||||||||||||||||||}}}}}~~~~€€€€~~~~~~~~~~~~~~~~~~€€€€€‚‚‚ƒƒƒƒƒƒƒƒƒ„„„„„ƒƒƒƒƒƒƒƒƒƒ‚‚‚€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€~~~~~~~~€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚€€~~~~~}}}}}}}}}}}}}}}}}~~~~€€€€€€€€€€€€€€€€~~~~}}}}|||||||||||||||}}}}}}}}|||||||||}}}}~~~~~€€€€€€€€€~~~~~~~~~}}}}}}}}}}}}}}~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚ƒƒƒƒƒƒƒƒ„„„„„„„„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚ƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒ„„„„„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒ„„„„………………………………………„„„„„„„„„ƒƒ‚‚‚€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~}}}}|||||||||||||||||}|}}}}}}}}}~~~~~~~~}}}}}}|||||{{{{{{{{{{{{zzzzzzzzyyyyyyyzzzzzzz{{{||||}}}}}}}}}}}}}}}~~~~~~}}}}}}}}||||{{{{{{{zzzzzzzzzzzzzzzzzzzzzzzzyyyyzzzz{{{{|||||||||||||||||||}||||||{{{{{{{{{{{{||||||||||||||||||||}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}|||||||||{{{{{{{{{{{{{{{{{{{{{|||||||||}}}}}}}~~~~~~~~~~~~~~~~~~~~}}}}}}||||||{{{{{|||||||}}}}~~~€€€€€€€€€€€€€€€€€€€€€€€€€~~~€€€€€‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚ƒƒƒƒ‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€‚‚‚‚ƒƒƒƒ„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒ„„„………………†††……………………………………………………„„„„ƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒ„„„„„„„„„„„„„„„………„„„„„„ƒƒƒƒƒƒ‚‚‚‚‚‚€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€~~~~~~~~~~~}}}}}}}}||}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}||||||||||||||||||||||||||||||||||||{{{{{zzzzzzz{{{{{{{{zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{zzz{{{{{{{{{||||||||||||||{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{||||||{{{{{{{{{||||||}}}}}}}}}}~~~~~~~~~~~~~~~}}}}}}|||||||}}}}}~~~~~~~~~€€€€€€€€~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒ„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒ„„„„„„…………………………………………………………………………………………………………………………………………„„„„„„„„„„„„„ƒƒƒƒ‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~}}}}}}~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~}}}}}}|||||||||||||}}}}}}}}}}|||||{{{{{{{{{{{zzzzzzzzzzz{{{{{{{||||||||||{{{{{|||||||||}}}}}}}||||||||||||||||||||||||||||||||||||||||||||||||||{{{{{{{{{{{{{{{{{{{{{{{|||||}}}~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒ„„„„………………………………………………††††††††††††††††††††††††………………„„„„„„„„„„„„„„„„„„„„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„„„„„„„„ƒƒƒƒƒ‚‚‚‚‚€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~}}}}}}|||||||{{{{{{{{{{|||||||||||||||||||||||||||||}}}}}|||||||||{{{{{zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz{{{{{{{{||||||}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~}}}}}}}}}}}}}}}}~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€~~~~~~~~~~~~~~~~€€€€‚‚‚‚‚‚‚‚‚ƒ‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€~~~~~}}}}||||{{{{{{{{{{{{{{{{{{{{{|||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}|||||||||||||||||||||}}}}}}}}~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒ‚‚‚‚‚‚€€€€€~~~~~~~~~~~~€€€€€‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€~~~~~~}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}||||||||||{{{{{{|||||||||}}}}}}}}}}}~~~~~~}}}}}}}|||||||||||||||||||||||}}}}}}}|||||}}}}}}}}}~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}||||||||||||{{{{{{{{{{{{{{{{{{{{{|||||||||||||||||||||||}}}}}}~~~~~~~~~~€€€€€€€€€€€€‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚€€€€€€~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~}}}}}}}}}}}}}~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€‚‚€€€€€€€€€~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€~~~~~}}}}}}|||||||||}}}}}}}}}}}}}}}|||||||||||||||}}}}}}}}}}}}}}~~~~~}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~€€€€€€€€€€€€€€~~~~~€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒ‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€~~~~~~}}}}}}}}}}}}}}}}}}}}|||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚ƒƒƒƒƒƒƒƒƒƒƒƒ„„„„„„„„„„„„„„„„ƒƒƒƒƒƒƒ‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}|||||||}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~€€€€€€€‚‚‚‚‚‚‚‚‚€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~}}}}}~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}}}}}}}}}}}}}}}}}}}}}}}}}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚‚‚‚‚‚‚‚‚‚€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€lgeneral-1.3.1/lgc-pg/convdata/grid.bmp0000664000175000017500000002153612140770460014635 00000000000000BM^#6(<2(#  €¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜€¤˜lgeneral-1.3.1/lgc-pg/convdata/leg.wav0000664000175000017500000007251312140770460014477 00000000000000RIFFCuWAVEfmt ++LIST*INFOIARTMarkus KoschanyICRD2012dataít€|z|}~}€€€~}}}€~~€}~||~€€€€€}€€}€€€€€€}€‚€€€€€}~{€{~~€~}~}€~‚€€€€€€}~}~|~~~}€€€‚€€€€€€€€€€€€€~€€~€{~‚}}~€€€€~~}€€€ƒƒƒ‚ƒ€€~}||{|}{}{|}~€€€€€€}}€€€~‚€…ƒu…}|~yx~}|„…~~Šƒƒ‚{ƒ~~|yzxwvuuy|~{€‚ƒ‡‡‚„ˆŒ…ˆŠŠ‰ˆ…ƒ~zwtvrpsvusuxyy||}}ƒ…ˆˆ‰Œ‹‹‹Š‡‡€€||zxwwxwuwvyvyxyx{z|ƒƒ„‰‡‰‡ˆ†„„„…z‡„„~~€{}}xzy}{€€€‚€~ƒ‚„ƒ‚€€€}||||{|}}~|{z}||}~€€~€€€ƒƒ„…„†„…ƒ„…‚€€~zzxyxrx~|}€‚{~~y~{y|„†ˆ‡…„„€€~€‚‚ƒ~y|z~y~z{{z|}|}~~€~€€€€~€~€‚‚‚€ƒƒ‚€€€†€€€‚}zzxyyzz{}{~}~}€€‚ƒ‚ƒ‚€ƒƒ…‚„ƒ€~~~~}~€€}€~€}~€~€ƒ€|{y{z~€‚…ˆ‡‡„……y{~xy‚„{€‚ƒƒŠ„~‚}xwqttqpoltŒ‰‘Šƒ€u{€~Ž‘‘Ž„˜¤¥£e./Acv Ÿ™‹‚x\[fvˆ’ ™š£¨Šxjjimigcahr~ƒ‰“…ywyxx€Ž–“ކ|yvu}~|ƒ|}wxknjnmwzƒˆ‰ŠŒ‰ˆ‹ŒŽŠ„~|{{~€€zspommnux|€}~}}~€‡ˆ‹Š‹…ˆ†‹ˆ†€ƒ{xx~„……ˆ„‚‚|{twwtyƒ‹…™‡q[]flhc†’‰œ®¬¦Œ|ozjhhiy‹nƒt‹–w“†€y}ysst„ptw’‘—~„mv~wuskƒ‰vƒ…‚pf…Œzqtpp|{~ŽŽž“††…v~‡ƒ{ˆzˆŠ…gALm|…‘™’Ž}iejmt…™’‰“Šƒ…Škgt€tn|†ƒŒ‘ŠŠƒ‹”Ž–‹OLy˜Š\^kyŒ™«˜‰…€|‚pemc\sw}{ˆ‘”€‹v“§ˆeŒ¡rW]{}y~†œ­¤¦¨ƒ~jZkbXpoƒ~‡‰…t|‚€uwx‚v{}†Š‘š„w€€ƒ€ˆ€…~zlw‰|Œ¡˜xŽ•e/UuxNpt™†žž¡‹„‘”tVpht‡Š–kbo„Љª¯«ƒE•©a.Ä…/Iƒhж’gt¢™tjrbY^}ik•{…˜¨°˜…—{r€rxŠ}o`^cjt|…–Ž‘ˆ‚}vusply…Їˆƒynuyy~}v†˜oxyƒsw|Œ•‡—Œ†‰~kkyvd_hivŽŠy‚…}–™‰‡†„wy|pr‚…lƒ›ž‰SZ€‚afkintŒ¬¬£›š‡trbZlyƒ‰n”‚Bh•–sjryt“£µ®•‰Žhe`U\qw…Ž‹‰wumt{ƒw€‰˜‹“‚p……`esg|Ž–ŠŒ—Š|zztltyrtt~y||…y~t‚‡„ƒŒƒ|‚€…~yƒˆ„wx|€yw|‚†Š†Œ„Ž{n…jgudwn|˜…p“¨–€qsy‡‰ˆyyx|yzsr~€ƒ€€xqxz~„‡‡¥“gƒ}rrl}†˜žŸ’„vxyb\Z[dry~Œ†‡†‚†‡Žž—Š|ˆ†–n‚€y€Šƒtsyulf]bjnuŠ–‘ƒ‚}yhmlvz’¡¤”Ž’Š€}xtowvƒ…ƒ}‚‡‰„}ƒ|…€€€{qrtzrqu{~{€}‚{…ŠŽ‹ˆŠ…~y}ƒq|{}|{z}†zukw€‚{}€„†ˆŽ‘Œ†…{wƒ~z~vxrxx|‚{€‡„€}~w}}…~|}€‚|xz‚€|€€†…„ƒ~†…€{}|{|{z…‚‚}€~~†‡†~{x}vˆ„…yŠŠ|py}tu€ŽŠˆ~o†‚z‡ƒƒ‡ƒwqhykoftktoˆŽ–Ÿž››–‹‚{v}wutsu|y}vqv{yx|}|~‰Šˆƒ‡Š‚†ˆƒysvz†|suƒ‹€|ƒ‰votwy}v}|vsxƒŠŽ•ˆƒ†…w}†Ї††€†‚trrru€w…–‚kjvumgy‡ž‹Ž‹|‚€qbhv‚ƒ‡s^Ê·i/”«x_x|ƒ–«¯—pcx”ry{m^qtods}€j_c{x©±›–‘zeflry‰™œ¦¦¦˜‹wrgb^[eluvz}~wy~xwwƒ………ŒŽŽ‹ƒƒƒ~z€‡†„‰‹‹ˆ†|zyxwv|vstsoppvsy|€…€ƒ™‹‘‰wtyuu}…ƒƒ‹ˆ…††}~wow~tr}{~~„€m{~ŠŠ|€Œ‘‹…Žˆ~wuivwrt‚tx††xtrs|v|zw|ƒ†€yst~€†›Œ””ƒs|ƒŽz{wtvytpu}Їƒ„‚}niikw†ˆˆ‰‚|rv‰Œ…†„~€…†…‹†‚{nuroiqxrtzxz}‚…Œ…€}{y~{“Ÿ~€†„v{txssyxz€††……}~xz{|}~Œˆ‰~zvxuvwz|x~„zzz{yyz„„…„І„ƒ‡†ƒ……|}zv|ywssuttz{€„„ƒ…‡‰‰ŠŒŒ‡†ƒ‚{zxuty{wyxzwyy€xwz‚‰…ƒ€†…Š‚€„€ƒˆ’…ƒˆ‡‚€zwwxupruwvwvyvwtwzxu~……ƒ†‘Œ–‘•Š•…|my{slfmwrpltsptyx‚wvž¦|nm€žˆw†„Ÿ—‰‚ˆ‹Š}qu€€}‚}}xzxqjhihzwkrzzv‚ˆˆ‰ŠŠ‰›™Ž’‹Œ‡ˆ||ztr~ojrtv~ooxrotwv|€€}ƒ„‡ˆŠŠŒ‹‚…ˆ||zvzxx{}|}†‡††{wsvw{‡ˆ…ƒ‚|xzxyv||‚}|{}}{|zw|…„†…‡Œ‡Š‹ˆ‰Š…~|~}{sg’jy{vqu}xty}}‚|}ƒ‡}Š‚†‡ƒ€„~€„ˆ…†‹„…ƒƒ€€w~„{}{urz}~{|€€|{yxy||€„…Œ‹y|„yz{~y‹–ˆŒ‚‰€ziniuxƒ‰Ž•–”ކ~~†utidaihjn{‹“’•’І„ƒ„†‚}zrpsxvt}‚|{|v|~‚~~}|€„€ƒ…€€}€}€}€~ƒ…{•Œˆ€vksurt€ŽŠˆŠ‹‡|zwwsosryqtupruuv}†„Ž—ž™š—˜™•†|z‚€ƒu}€{sihnuwttqtromriz|†Ž›•ŽŽ‚€|xs}~€~ƒ„„„„ŒŠ‚†‰…}~‚~z}vm^nz€y}‰‰ˆ‡€vt‚u{qyy~y‚€~‚ˆ‚‡ˆ†Š‡‹€}||„~~{|‚€ƒ}€}zvwvxy„~…ƒ†…ƒ†€€yxwtwv}wy~€…‰ˆŠˆ„ƒ„~zyy||€‚ƒŠ…†‚€}{{zxzz|{}|~}}{~€|~}€‚„†ŒŠ~qnnv{}{x{ˆŒ‹‰Š„}zuwxuz}„‰†‚ˆ…„‹„€y}‚ƒ€zxyutus{‹‰Œˆ„€zwuz}‚…ŠŒˆ…‚}}zttx||€…‚€}z|~|z|ˆ„‡‚…€€€€}ƒ…‚ƒ…‚|}}z€~zzzzyz||~€‚€}€}~€}€€€€€‚‚…„ƒƒ|zyy{z{€€€€€~€†~}|{~ƒ‚†……†zuttsux{|~‚‚ƒ€€ƒƒ|…Ž„…‰„ƒ€z~{y€‚ƒ†‚}{yywwuy{~€~}{{|€„†ˆŠ‡†„ƒ‚€~{~}~}}}||{|~€€‚€€‚‚†„ƒ†}~y{|z}}|€ƒ‚„€€}|{yxzx{|‚ƒ…‡…ˆ†……‚}}zyyz{{{|{||€‚‚ƒƒ‚~~}€€€~}~}~~~€~}~}€€ƒ„†…†……ƒ~|zz{|}{}{|yz{{}~ƒ„„„………ƒ}{|z{|{~|~|}}~}€€‚ƒ€ƒƒ~}€€€ƒ€€~}~€€€~~||}~~}€~~~~}}}€€ƒƒ‚ƒ„‚…ƒƒ€€}~~}|{|}{||~‚}yyy{{~€…„„‚€€‚„ƒ„ƒ‚~~}|xy{{|}€€€€‚ƒƒ‚…„ƒ€}~{}{|z}||zz|{~~€ƒ‚|x{}‚„„‚‚ƒ€€ƒ„ƒ„…‚‚€~}}||{{|{{yyz{z|~€€‚„ƒ‚‚…ƒ…‡†„‚~zywwxz|€€€~}||z{z‰Ž€‚†Š}}||z|………‚…ˆƒ{xzz}€~}~}||y{|}‚€€}€~||}€ƒ…ƒ€‚‚„}€ƒ‚ƒ€ƒ€€€‚‚‚~|~|wz~€~}}~~}z{~}~~ƒƒ‚€…ƒƒ€~€„€}|z}y~|z~ƒ~~~}}{€€‚…‡‡…ƒ~~z||z{||}|{}~}~€|€ƒ‚ƒ…ƒ€€€}€€€|zwyz|}~}||~€€ƒ€‚ƒ…„ƒ„ƒ…‚„ƒ‚‚‚€~}|{{y{y{|{zzzx~z{~€‚€ƒ‚‚ƒƒ‚~€€€‚‚‚‚€€€~}}||~~|~~~€~…‚‚„‚ƒƒ‚€€€|||}~}}{||}|~}~€€‚€€‚‚ƒƒ‚ƒ‚€~|}}~|}}~|{zyy{}€‚ƒ‚ƒ‚ƒ€€€€‚‚ƒ€~}|{|z{y||||~~€€‚ƒƒ…„…„‚€~~}~|{{{|zyzyy|}~€€ƒƒƒ‚„‚„ƒ„‚ƒ‚€~~€{zy||{{~}}~|~}~€‚‚€€€€€€‚ƒ€€€€€~~~~~€ƒ€€~}}~}~}~~~~~}~~}~}}~}€€€€‚‚ƒ‚‚€‚€~~~~}~|~||{|||{}~~~}~}€€ƒ€€€€€~€~€~~}~~€€€€~~~~~~€€€€€€€€€€}~}~~}~~|~}~~}€€€€€‚€€€€~~~~~~~|}{}|}|~}}~}€€ƒ‚ƒ‚ƒ‚‚€€€€€~~}~}~~}|}}}~}~€€€€€€€€€~}}{}{|{}|~~~€€€€€€~}~|}}~~€€€€€€€€€€€€€~~}}{|{|}}|~}€€€€€€€~}~}~~~}€€€€€~€~€~~€~~~}€€€€€€€€€€€€€€~~~~~~€€€€€€€€€€~€€€|‚}€|€€~~€€€~€€€€€~~€€€€€€}~}~}~}~}€€€€ƒ‚€€€€€~~~}~~~~~|~~€€€€€€€€€€€€~~~~~€~€€€€€€€€€€€€~€~~~~}}€~~€€€€€€‚€€€€€€€€€}}~~€€€€€€€€€€~~~}~}~}}}||||}}~€€€‚‚‚‚€~~}~}~~}~}~}}~~}~~€€€€€€€€€€€€€€€€€€~€€€€€€€~€€€€€€€€~~~~}~~~}~}~€€€€€€€€€€€~~~€}~~€€€€€€€€€~}~~}~}~}~}~}}~}~€€€‚‚‚‚‚ƒ‚€€€}~}~}}~|~}~~}~}~~€€€€‚‚€€€€}~~}}|~}~}~~~€€€€‚‚€€€~~}}~}~~}€€~~€~€~~}~~}~€€€€€€€€€€€€~}~~~~}}}}~}~€€€€€€€}€}~~}~~~~}~€€€‚€€€€€€}|‚ƒ|{}|~{|}€|}~~€€€€€‚€€€€~€}~~}}~€|}}}€€€ƒ}y‰†z~†ƒ{z}{€{~„y€‚€}}€}}~~~‚ƒ€‚‚€}€€€€}~}€||~||}|}}€€€€€~‚‚€€€ƒ~€€}~~{~{€€€~~€€}{}~ƒ€~~}€~~}€~€€€€€~€‚€‚€€€€~}~}~~}|~~~~~~~€}€~~~€‚€€€‚~€€€€‚€€€€~€€}~}}{||€}€~~~~~€€€€€‚€€€€€€€€€€~~~~~€}}}}}~}~~}}~~€€€€€€€€€€€€€€€€€~~}~~~€~€€€~€€~€€~}€}€~|}}€~€€€€€€€~€€€~€€€€€~}€€~~€€€}€€~€€€€€€€€€€€€€€€€€€€€€€€~€~€~€~€€€}€€€€€~‚‚‚€~~€}{|{~}~}€~€€€€‚‚€€~~}~|~}~}~}€€€€€€€~€€}|~€~~~~}~}~|~}}}~€€€€~€‚€€€~~~}~~~~~~~€~~€€€€€€€€€€€~~€}€€€€€z„{€‚{~~z}}~~€€€€‚€‚ƒ€‚€€~€€€€~}}}€€€€€‚€€€€€‚z„ƒz}€€|€~~‚€~€~€{€~~~€~~}}~}€~€~€€€€€€€~~~}~}~|~{~||}~}}~€€€€€€‚‚€€~~}€}~}}~}€~}~~~}€€€~~}€€€€€€~‚€~€~€€}ƒ€~}€€{}ƒ€ƒ€€€~€|€{v€ƒz‚‚†…}|~‚}„„ƒ‰~‚€z}|{{}€€‚~|{}{~}€|‚}|€|{„ƒƒˆƒƒ‚‚€~€€~‚}}yyx{zz|}||{|~ƒ‚„…„‚„ƒ€€€€€~}{{|zzy||~}~}€~€~€€€€‚ƒ„„‚ƒ‚€z|~}y{~{z€~‚„~{€}{}€~†…ƒƒ‚€€€||~~€‚€~}}~}€€~ƒ‚|||{~~€€€€€~€€€€€€€€~€€‚€€€}€€}~€~€€~~~€|~€~€€€€~}}~{}~}~€~ƒ€€‚}€~„€…ƒ€{|}~|}‚}}}|z}z|~€ƒƒƒƒ‚‚€€€}~|~|z}~{||~}||}€}‚ƒ‚‚‚‚€‚€€}€€~}z}z{|}||€~~}~~}€€€‚€ƒ€€~€€~€}~}€€€€€~€}€~}{€|~}|}„ƒz„Š‚{}ƒ~~~‚„ƒƒ„€€€~~}€€~€}|z}~~|‚‰{xswytx€††Š„€€‚~z~€~v{zyry{|y}€‚…ƒˆ„Љ‡‰‰ˆ„€}}|{|yzx|wzwxv{wz}€yy{~yƒ‡ƒ‡„…}€~‚ˆŠˆŽŠ‡„†€€y|yvysuuzwy|~y€€}~|}}|ƒ€…‹ˆ…€~~}~€~ˆ€~€€{y}}y~{~{€…|…‡ƒ€€€~‚}…‡ˆ‡‰…‡ƒ}{{wwvvvywuwuzqp‹‹ŠŽ‰}…‡}|}z{|‡–¢š“‡ƒujb^cbjr‚…ŠŠ{yyy|„“‰Œ‘…Œ‰ƒ‡‡yxvtnory|‚…€|yyyxxv{{wq†xyˆ‡Œ’”’ЋЇƒ‚‚|xwwsopntnjnpmmr{~„‹ˆŽ…‰ˆ€ƒ‰‡Š€“}|zmdlu|€’ˆœmno`Ympxƒ‹ž«•†€‚…ysfkmmnrz€ˆ…‚‡†Š‰‡‚|y{‚‰†ŽŒƒ}xrsˆ‡ljldumwy…š¢—Žˆ~oqxw|z}‚{q~supswzˆ€’ŽŽ”—“ŒŽ‹ŠŠƒŠ€~xnjflgmjw~€tkhfjrz€–¥¨œ˜„Š•š”Œ†ˆ€sgnuŠˆ†ƒwh`XT]kv„‡›•››”‰…€yypnnmhmmkkkluv‡˜¡¢’†€{|†“”ˆ~zrvqrqzrrqw{ysqrpomou~ƒ‰‹™™ž›Œ‰ˆ††€ƒ„„†……uz€~tngimpsv……†„ƒ„ywtnlginmz}‡˜žŸ£œ–‘“ŽŠŠ€||xywvurruiW„jlqzihwioyv|‹““™–Œ…€‚…|‹‚…€~{€z{znqlttxzyƒƒ‚€‡‰‡ŠŒ†…ƒx{{€‚‚‚~tx}wswztp}~xy€ˆŒ‰‰††…ƒ€ƒ€…‡‚‹‚„uldcflqw€†ŒŒ’”Œ~synss|ƒ‰ŠŒ‘Ž‹ƒ~}yx{wv~~||}zuww€w|~y{yy{}‚ƒŠ‹‡…Š…ƒ‡{xwzutxn‚yƒ|ƒ•‡vkhc_lz’’š¦£˜…‚yvs}}€Ž‘‰vuojmssqppoux~…ƒ„†‰ŠŽˆŠ”‰Œ€{yyux‚ƒƒzulryzqnty†‡‹‹‰ƒ„‰…„ˆ‰„|zw‡Šˆˆ†ƒzwsomqsvwzu{|{wvvv{‚†‹ˆˆŠ‹Œ‹††…„ƒ€~ƒ€€~uroomru|y~z~ƒ‰ƒ{oicgv…— ¤ž›™‰†‚ztxxywzz|€†…~zumlwo~†€„~{ndvŠr—ž–€‡tnttzs‹Šz††‡Šˆ‹‰nv„„|ptyƒ|xto|ƒ{~ˆ…~ˆ‡uhn{w‰‘„ƒx~†‰†ˆ’xu}€€zx~y€~}…}wƒ}‚|xy~v{‘’‘ˆ„wusywuuww|€yskis‚‰œ‰ƒŠ‰‰†w{ˆ‹Ž‰‡|‚Šv{yzpqpyxy|ypqrronz‚Ž‹‹ˆŠ‰‰€‚ŠŒ‡‰ˆˆ€~vpyzqywvwsmus{|{~sz{ƒ~…‘…ŽŒ‘“‹…ƒ€‚}wvoqpzv}w~ty}„€|xƒƒˆ†”‘‘„‚†~y€t€‚vv}tkipw~rx~zz~ˆ…†‚ˆ‘‹Š‰ˆ‚‚ƒ„…rw~|}w~…‚~…†€~ƒ‚{}…„~‹˜svulhjgmyv‡Œˆ‚‡ƒ‡|„‹’Љ„ƒ€€ryuxx‚‚ˆy{{pvwtoy€‚{‹‰†‚{}ƒ‹ƒƒ‘€Šipxy|{~Œ”€…}umssqj~‡‚ƒŒ‚ŠŒ„vts|tw€€{‘†‚{„…y€ysyyqsptw}ŠƒŽŠˆˆŒ‡‚‚Š‹ˆ†„€ywz|wvvttrtuvwwy{~}z~€†‡ƒˆ‹‹†…„ƒ„ˆ‡Š†ˆŒ…€|~vz|v|se}uYrz…€xmssx€}˜ }dy›Š“˜Ž„po€‚}„ƒ‚wzvzvvuuxtpq†‚~‡“ŠŒ‹‡††‚‚‚€€}zz~|wt{ynyw|{€}~z}||‚||†‘†yz~{†……†Œ†…ˆ‡…€wwpzzz|ƒƒ~qhhoy…ˆŽ“‹‡„{srswy~‰ˆˆ‚~‚ƒ}€yyx~yzŠˆuz{€}|zzx~‚ƒˆˆ…ƒx|{zytyy~{€‚„„…ƒƒyxzy~|~‡–—…€‚‚|~}yr}uf‡‹‚~xunps}w}ƒŠ‘ˆƒypvt{€Ž€Š……‚}vv~t “u}hxbzvkp|‰‘‘‘”…‡€umpyzy~nivttv|€Ž—‘……††ƒ„Љ‘ŒŒwy|zxstu}zwquuttwsswuy€„‰ŠŽ‹ˆˆ…Š‡Š‹ŠŒˆ~w}|{vzp{ŠŠriqw‡vs{tz‚ƒyywy‚…„†Šƒww„ƒ„~|€…Œ‡„€†ŠŒ†ˆ‚€|||{~~|€€„}||yxvwwvvuwy{|{}v~„ˆ~…‡††‚……‰………†ˆƒ„€~ƒ‚€xz||}y||~{|z}z~|}|z{~€‚ƒ|€~}}€‚€~€‚‚„†…„~{|xw|‚‚~€~}~€€‚€€~}z~}~~~{yzxyxyx}€€ƒ„‚‚‚†„ƒƒ…‚†…ƒ‚„€}|~|…ˆˆ‰‹‚wrmdflsz‡˜˜–Œˆ}wonqqsx{~€……„€‚„ƒƒƒˆ††ˆˆƒ~|zzx|}€ƒ……†„‚€}{wsuuwz{€€€€}~|{{|}€ƒ…‡‡ŒŽ‹‡…~yy}~„……„ˆ~|yxywwwyy|{}{|}€}}}|~~€€ƒ……ƒ„†ƒ‚~~€€‚…‚€‚~zz|€}|}|yyvz{zy€ƒ‚ƒ„…„„ƒ‚ƒ||{|~~€~‚}{€~~€ƒ‡~Ž…|€€}~{zz~z}z||||zy~|ƒˆŠŒxmiЉˆŒˆ€||€‚„ŠŠ…€yqlhhjpw~†Šˆ†„ƒ€~€‚…‹ŒŽŠ‰†€ƒ€|ywutttqqporpuy|}‚…††…‚~‚ƒ‰Š‘•‘’‹„Š„€zuttutxv}~|yvrmpoqw|„‰†…‚}y{~€‚…ˆ‰Š‹Šˆ…†ƒƒ‚…€}|~{|{}{}|{|~|~~~|~~}€~{€~€}~{~{}~~zƒ€€€€‚ƒ„„„……‚€~~€‚€~z|yyy{|{~|}|{|{~}~{€€„ƒ„„„„‚„…„„„‚ƒƒ‚‚~~~{yx}}€€~}~|y{}€~€€€€€€€‚‚€‚€€€€€€~|~}~{}|}~}|{€|~}~~}€€ƒ€‚ƒ‚‚€€}~|~~}~}~~}~€€€€€€€€€~~}~}~||~€~~~}€€€‚‚…‚€‚ƒ€€mw‰‹}h|€ytxЇ|€€v}†…‚†ƒ…„‚‚…‚z|z~{~w~€€{w|~z}€…€ƒ€€~z|€‚‚€€||{}|~€€~~ƒ†ƒƒ†………†‚‚€€~||~|xzzzzzx||}~~‚‚ƒ‚ƒ€ƒ‚‚‚‚ƒ„‚€€€}}zz|~~€€€€€~}|{|}}~€‚€€‚‚€€}~}}|}}}~}~~}}}€€€€€€€ƒ„„ƒ‚€~~}~~}}~|~}||}}€~z{||~€‚‚„ƒƒ„…„„ƒ€‚€€€}}{|{y}~~}{{{|~€ƒ„†„ƒ~}~€‚„„„„€€~~}~{|zzyzy{}~€€ƒƒ„‚ƒ€ƒ‚€~~|}|}}{|}~{~~€€€„……†„z|xwy}€„„„„ƒ‚~€}€|~|{z~|||~|~}~~€€„‚ƒ‚ƒƒ‚‚ƒ€€}~||z|{|€ƒ…{tvypr}ƒ„Š‹‰†…„}|}€~‚…†……€~yzyyz|}~}|}€‚~‚…~~‚„ˆƒ|w{ˆxpr€zu|€{}yw{ƒ‚z€‡‰ˆ‰‰Š‡‚…†{‚z~}ywxxuvwvuty{}€€€€ƒ…ƒ…„†…‰„‚~€~…„€€~{zzyz}}||€€€€}€ƒ‚€ƒ€€€~~}}||{|||}~}€~€€ƒƒƒ‡–|z}x~{ƒ‚~€„€y|zy|{z}€}}…„‚‚‚}~€€‚€€}~€€~€~€~~~€}~}}{{z|{z|}~}€‚‚…ƒƒ„‚ƒ‚ƒ‚ƒ‚ƒ€€}}}|||{|{|{zzyzzy|~}€€€ƒ„†……„„„‚ƒƒ€€~~}~}~|}|~}}~~~€€~}~~}~€€€€~€€€€€€€€€~~€€€€€‚‚ƒ‚ƒ‚€€€€~}~{}}}}{{}}~~~~~€€€€€€€€€‚€€€~}~}~€~€}}|~}~€€€€€€€€€}}~}~~€€~€€€€€€}~~~€~€}~}~€€€€€€€€€€€~~}}}€€€€€€€€€€€~~~}~~~~€€€€€€€€€€€€€€€~~~}~~~~~~~~~~€€€€€€€€~€~€€€€€€€€~€~~}~}~|}{||~~~€€€€€€}€}~~~~~~~€€€€€€€€€€€€~~}~}~~€€€€€€€€€€€€€€€}~~~~~€€€€}~€€€€€€€€€€€€~}~~}~~~€€€€€€€€€€€€€€€~~~|~}~~~€€€€€€~~~~}~}~|~~€€€€€€€€€€~}}}{|{|}|~}€€€€€€€€€~~}}~}}}~}~€€€€€€€€€€€€€€}~~~~}~}€€€€€€€€€€€€~}|{{}}}z~~€€€€ƒ„…„…‚|zy}€„‚~~{z{}~€~€€€~€~|ƒ}}€ˆ€€~|~|z{ˆ€ƒ€|‚€{~~}ƒ€}„yz~€…}„€}}}{€„‚|~}|~‚|€‚€~…x|€€€„|ƒ‹‚yhŽˆ}_dr‚”‰tx”–ƒ€‚}‚…„{denu€v}{‚Š‚„„€††Šƒ’‘ˆ‰‰„}||qnttyprmtu|xyx|~}…ƒ†ŠŠ‰‹’‘‹ˆŠ‰‡ˆˆ€z~„ˆ~t|ymllnvuy„{{}{vw{„‹‰ˆ‚…Љ‡‰ˆ‹Œ‡††zswyzz||~€{vytuy|~‚‚‰‡……‡€„€€‚}~€zyy}|}}~~~€‚~€‚‚€€}~}~~|~~~~}|~{zy{{~}€€€€ƒƒ‚ƒ‚ƒ‚~|~}}{~{zyxzz{{~~~~€‚€ƒ‚ƒ‚‚ƒƒƒ€€~~~||}~}~}~€€€€‚€€€~€€|~~}~|~~€‚|ƒ‚ƒ…ƒ€€~~}}~|~}|}}~~€€€€€€€€€ƒ€€€€|~€~€}~}~~}~}€~€€}~€€€€€}~}~~~~}}~~}~~€€€†‡…{yxu~~ƒ…‹ˆƒ‚|voqsvz‚…‹Š‰ƒ}|}~|~}ƒˆˆƒ~wx|ƒ€~|~†‡Š……~wspruz‚~{}}|~…†‹ŠŠ„†„{{~~€‚ƒ„…‚~|xxwz{~}€€€€~~~}~~{~€‚€€€~~€ƒ‚ƒƒƒƒ„„ƒ„‚€€~~~}z{}|}|}z~|{z|}~~}~‚ƒ€‚„€€€€€€€ƒ‚€€€€~€}~|{|{||~~}~€}€€€€€€~€~€€~}}~}~}~€€|…ƒ‚{Š~}‚x|€|{|z}{}~~~}~€~~}€ƒ€‚‚†„…~‚ƒ€}~|{~}}|{€€|€€}€y}}ƒ~‚€€ƒ€€~}€~€‚€€€‚€€€~~€€}}~~y‚y|ˆ~€uyqt{u—–›mSP‹r}—Ÿ•…‹›†Œz~ij‡^r‡rz›h]‰{h‰|h—‰£«……’ƒ~€t}rt€tfnlo{kuv}‰ˆŒˆ„ˆƒ‰Š…‰”Œ‚„~}yuyywtƒ~‚€€ƒƒ}{|s}€~u‡€€r‚t{……Œ}ƒ‚t}}‚{ƒ{w{{‚€…†„„{‚ˆ‚ƒŒ‡……ˆ…ƒƒ~€~|{|{vwvrt~wttrpzx†ˆ‰”Œ‚„Š„…‰‹…ˆ€€yyy~w~~‚w}zt……{‡{|„‹‚€y}„ƒvsqqs|}€•yqhŠ{n…|w”ž‘†x~ƒ…†{zirmyqu‚Šˆ„ƒ‚~tqwqrt~|…‚‚ŠŠŽŽ~‚‚|}|ƒ‰‚ukkkhcvxˆ†~ƒ‡‚wˆ„|~…‚‰†ƒ‡Œ‚€ƒz€†€~…~~v€~{t€„€}{~{vprutz€…’Šƒ{}Spœyf‹“†Œ§¬Ÿ…‘“{od\T_pƒ‰‡Œ™”‡tloqhu}Šƒˆ‚ŽŠ†ˆš“ƒvmtllpswv€€ˆ‰ˆˆƒ~vwpjkptƒŽ‰ŸŸ–‡zxo{t‚‡…Š‘’‚z~pienitz~~zvwwx~‚ˆ‡Ž–‰ƒ‚‚„€ƒ‚€zyvutwux||z~ƒˆŽ†qkw„’‰pmn~ƒ‘–—Ÿ™—ˆ}h]agrv’}mk†wOi•‚k‰ o…«Žq~œ˜Šˆ’mhtmaj~‚{|€‚tw‚…xt}‡…—Šly€–˜Œ…y{€ŽŽŠ}Ž‹€reX\ocnsw}ƒŠ†ŽšŒuˆ‹rs€…ŠˆŽ–Ž„‚‚znm~yuzyyjkw†|ƒ„…{…˜‰™Š{X_pa]‹¥£°²š|py‚\\buum|zziy‚™£ŸŒwz„€urŒˆ|syuneu€yvryw†{ˆ‹„{v~“z…€€|}•ƒx€}”†–ƒ†Ÿ‹~tƒvmrhnHdm—ž§•‘„w\dikm~ŠŠ‚€Ž€xz}p}’Žˆƒ|l~vw~‹…–™›’˜’?·X}tdJ~T€VlnªP˜‹…¦–ª‹ƒgbV}wx’˜¢š‘}~kW;[ƒ‰jv›|i‚siy‚Œ{Œ˜ƒx~or€ƒvy€ˆ€Œ”‰xr„`Ztsv–›¥ ˜‹v€rxlsyŠ…€y}pbdvn€‹––„ƒ€†‹ŠqŠ…vy„‡t…yy||{vmwmspmw„‡’sŒ¡™Œ‡‰~y{Žƒ…{’“‹opgb_ecƒ‚€†—‡k†Ž€zn|‰fnx„„‡‘’„ƒzty~vvnŠ‹„‚…€ylm~‡“Œ’…„vphx[yŽq‹y¡€p€‘Ž|}€z…’Œƒz‚wdkmwlfn€ys…}i}†uw‚‹–‘¥š˜‹‚ƒ|hu}ƒ„}}hiu‰|yTZyk€º¦Ÿ–™‡ifa„tpzŒ‰t|‰ahuyw‘‘‘{€ˆzqhotj|›£¡‘—¢Šˆwbdg}gt€€s‚tnr€~…{„€yt‚„„~r†|›ž“”Žzqmmchvwxnsy…}‚{kjtxƒ‰…Š’Œ‡ƒƒvy„yy}‚‡†‡‚‹ˆ…~rngwx‚ypm}…Ž…„{„€yoq€Ž…x€„Šƒ‡‡ŽŠŠ}txopkapkxugmv€v{€ˆœ¦­œ‘–•vt}wpvwlkptolmrqxnv~‡‰‹‹–€ty…{‡Œ“‹„~uzx€‡~{ncmcjuvnoz€ˆ‘—•ˆ€}ƒsty†ˆ‰‹Š€…Šw‡€„…„tpuochujp|‡Žƒˆ‹Šz|wxs€svŠƒ†™—•yv}vzv‰Œ‡šsm{na_\ay†|p}|‘’ŽŠ…~‚Šˆ’’Žwrnpt…€wzu„s{zvyЇ‡ˆŽyyy}}†ˆ‡‰‚}wtigwvzw}mn€‹‡Ž‘”–~~v€„utƒ‡uu€‚€s{{vvwx~}‹ˆ‡‘‰‹Ÿ‰yuyq}…€wrldn|Š•–“”“‡€snhjmmoqv}‰ŒŠŒ‡ƒ‚{}|}„…Œƒ~…’ˆy}z~wswyrw|yƒzyt{ytv|‹‡ŠŒ‚…„|„‡ƒŒƒŠ…yuwmussz‡}mqt}zwnzn€šˆ‹—’’|w…}ˆzn}vxuuovtxƒƒ†‰w‚‰|v~zˆ‹Š—‹‹‹…†yxsjnmwtoquzqu‚‹Œxt{ˆ’‡‹”–’’‘~tytpv…Š‹|z{rssr……}„›‰qbccdkzy~}Š–™™“’”ƒskekjkuŠŠŒ—€~zjw„xutpqy€’ŠŠ€njklioy~‡ŠŽŒŠŠƒwˆ˜yoƒx¢€uy}oŒ‰znpy~„~tsx€ŠŽ†‚|yimpmq€Œˆ’‹ŒˆŠ‰Šˆ|ƒ{nabi|wƒŠ„‚‡†Œ‰y†zƒzysxu}…‚|ztv~v{€‚ƒ‘ކ…ˆ‰……uz“te…|r|{wViny|‰…„‹ƒˆylu€~•˜š‰zq|w|…whzˆ–¢†|x‚ЇŽxwtƒ}sry{tqr†…s†Œ„u~|ry€yx€‡„„Š~{yux|w…€„‰‡…Š€vz{†sˆ‡…~‚‡‚€„~zzvsumtzs|€zyƒ{‚€wƒŒ‚‹ƒ†€†‡‚ЄІ~~yttrswu€y~~vƒ~|{iYt†|‡‘¡ Ÿ™”‹…{w}ylqx„‚€{|vnchqpls|†‹‚‹Š‰†Šˆ€…‡‘Š„‚{t}{zzx€ƒ‚~urzrrtyvrx„‚‡€ƒŠŠŒŒ…†…ƒ…ˆ…ˆ‰€€ƒvp|w|yzvrz|{zrn{ˆƒ†{y{xzƒ†„€„„ƒ…„~€|‚“Šw{wt…†‰ƒ†‚‹zy‚‚ƒxvptwsusu~z}~€‚€‚†……ƒ†ˆŒ’ˆ}€yutqrssw}{‚|}€|~‚ƒƒ…ƒ„€€‚|zzyƒ„…€„€{~xsux|†‚ˆ…ˆ„€„„€~}€{€~}{{{wtvvux~€‚ƒ‘Œ…‡ˆ’„|y‚……‚„†…€€{tspstsumr}‚~‚ˆ††{~€††„‰ŒŠ‰†‹Š„€z|yzx}{€wrqtx|ytyyƒ…„}{}…ˆˆ‚˜Ž†mWv‹™•‘ƒ~qhggpv‘”—’ˆ|pjgbchs|~~˜‚ГДЇ~|xrtvqint|Šˆ„„€}{vszttovz|ƒŒ‘ŠŠˆ†ƒ‚|s~‡‰„€tjwvouxxszyƒƒƒ~ƒ}‹ˆ‰€€‚‚ƒ‚†‚€nrtpqyy}ƒŽ‰…„ˆ…ƒ…ƒ}~ƒyyxwxx|z}„€ƒy~xttz{|{~}€~„…†…~‚…€†‚ƒ†‚ƒ„‚}yy}yx||~y|{~~~‚ƒ‚‚‚~~}€{€€||„{yz‚|€…ƒ…‚€zz{{}|{€ƒ~€‚ƒ€††„~~}~}~{yy|{~||€††ƒ…€|~€€€~{}}~~{{y|{z|„}ƒ‚„€‚†~~~~|~z~}€€~~~€„‚‚…†ƒ‚„}~{z{~~~}}}|}{|{{zy|~ƒƒƒƒ…‚ƒ~|€}|€…‚ƒ‚ƒ‚||€€}€€€€}~€}|zzzvzz…„„~{~z€~…ƒ|{~|‚…„€€~‚{zy|{€}€}€‚€‚€|€€ƒƒ‚€€|}}x|y~|~ƒ„ƒ€„‚‚€‚u}}‚~~|€|}|}~}t{|†}€Š~~ƒ€ƒ||††„‰€†„~|‚€‚}~}‚~€€yyx{y|wyz{}}}„‚…‚‡‚€~‚ƒ‚„……„~~~xz{z|yz}}~z€}~{~~|ƒ„ƒ„†…‚„ƒ‚|||wwwyy{xz{}|€}……‡††ˆ‡„‚€zz|x|{~€€~|yz€|}„„…‚‚„€~ƒ~~}~€}{|zz{|{|}}~~€ƒ€€€€€}€€†„„ƒ…ˆ„‚~}{vyz|{~ƒ€~‚€||}}}€€|~~~||€€€}~€‚€ƒ„…„ƒ„†‚~~{~|€€~||v{{}}€‚‰…~{€|~{~†…ˆˆ†|rœ†~|zymsupp|ŠŒ‹Š‹ƒyuxsqu|ƒ‡‹‡…}}€€ƒˆ‰ŠŠ‹‡„€{xwwtvrtrwsst{}|~{€ƒ…†‹Ž‹Œ‹‡‡€}|{}}~{}|yyxvxy|}‚ƒƒ€€€|€‚ƒƒ„„…‚~}~{y{{|{}€~~}‚ƒ…ƒƒ€{yyy~…„‚‚z{{{||‚‚ƒ…‚{{yxyy{}€‚ƒ‚†‡„‚€ƒƒ€‚‚ƒƒƒƒƒ}zxzyzz||€~~~~{zyz|{~„†„ƒ‚…ƒ„‚‚…„ƒ‚€~}€|}~{||||{|||{~|{~‚ƒ€€‚ƒ‚„‚‚~z{|}€„ކ~w|{wuyy€ƒƒ…‡†‚‚~wwwwv{|€€ƒ…‚~}~|z~€‚†…†……„‚‚~€€€}{|yzxxxwxx|{}€~€€‚ƒ„‡‡‡ˆ‡†ƒ€}€€~{{|{{yzz|}|}}}~}~~~€~€€‚‚‚ƒƒ‚€€€€€€€€€~}~{zyzzz|{}~}€€€€€€€€€€€€ƒ‚„ƒ‚ƒƒ‚‚€€}||{}{||}~}~~}~}~}~€€€‚€€€€}~}~}}~}~}~~~~€ƒ‚€€}~}~~~~~€€€€€~€€€€€€€~}~}~~€€€€‚€€€€€€€}~{||{|{|}~}€€€€€‚‚€€~€€€€~€~}€€€€€€~~}~{|||}}€ƒ‚€~}€‚ƒ„€€~||{|{~~~~~}{}}~~€€ƒ€ƒ‚‚€}}}|~|}|}|{|{|{|~}€€€€€€€‚ƒ‚ƒ€€€€€}~}z~}{z|{|~}||||}~~€‚ƒ…„„ƒ„‚„„…„‚‚€€~}}|}{||}~||}€~€}~€€€€€€€€€~~~|~€€~€€€€€‚‚ƒ‚ƒ€€€€~„†wu|‚€€|}}|}|}~~}€~~€~€€‚ƒ„„‚ƒ€€€~~~~}~€|}€}~~~}~~|}|||}|~€ƒƒƒ‚ƒ~|}~}€|||z€€}{€~‚€ƒ€ƒ‚€€}€zz~|~|{€~~~}€€€‚‡|€‚ƒ~€€~~€}~{|~}€}}~‚€~‚€€„‚€‚€~€}€}~}~~}||}}~}€€€€‚€€€~€~~€~~~€~~~}~~}~}}}}€~€€‚€€€€€€€€€}~}}}}}|~|}}~~}~~~~€€€€€€€€€€€€€€€~~€~~}€~~}~€€~~~~~€€€€€€€€€€€€€€€€€~€~~}~~~€€€€€€€€€€€~~~~{|||}|~~}~€€€€€€€‚€‚ƒ‚€€€€~}}}||~~}~}~~~~€€€€€€€€€€€~€~€}}~~}~}~~~}€€€€€‚€€€~~}|~}~}~~€~~~|~€€‚‚~€€~}}~}~~~~€}~€€€€€}€~€€€€€€€€€€€€€€€€~€€€~€€~€~€€€€€}‚y†€{€‚~ƒ…}€{|€}|~€€€€}€}~}~~}~~€€€€€€€€€€€~€€€€~€~€~~}}~~~~€€€€€€€€~€€€~~€€€€€~€€€€~€€€€~€€~€€€€€~€~€~€€€€€€€€}€}~}~~}~~~~€~€€€€€‚€€€€~}€}~}~}~}~~€€€€€€€€€€€€€€€€€€€€€~€}~}}~~~}}€€~€~€€€€€€€€€€€€~~}~~~}~|~~~}~}~~€€€€‚€€€€€~~~~|~}}}~~~~€€€€€€€€€€€€€€}€€€€€€€€€~€~€€€€€€€€€€€€€€€€€€€€€€~~€~}~~€€~€}~€~€~€€€€~~~}}~}~}}~}~}~}~~€€€€‚€€€€€~~}}~}~}~}}~~}~}~~€~€€€€€€€€€€€€€€~~~~}~~~~€€€€€€€€€€€~‚€€€€€€€€€~€}~~~}~}~}~}~}~}}€€€€€‚ƒ‚ƒƒ‚‚ƒ€€€€€€~}}~}|}|}}|||}}~}~~}€~€€€€€‚€€‚€€€~~}~~}~}}}|~{||~}~}~}~}~€€€€‚€‚€€€€€~~}~}~~}}€{€}}~}€€€€€€€€€€€€€€€€€€€€€€~~~~€€€€€€€€€€€€€€€€}~}~~~~~~~~}€yx„…€{€†ƒ~~€€€ƒ‚ƒ€ƒ€€~€~}~}~~~€~}€€}~€€~~€~€€€~~}}~~}}~}€~€€€€€€€€€~~€}}€~€~€€€‚‚yŠ€~€‚}|~~{x~€}|{{}}{}|w…}{‚„ƒ„‚€€€€~€€€€€~~€€~}€~€€€‚€€€…tlŽ|Іj€ru}~{}~…ƒ…‚€vŠ~Š‚}†‚€ytwwx{ƒ€ƒ…ƒ€‚}€z~~}zx|w‚‚„††„ƒ‚‚{z€}z|yz{~{|~€|{€‚€€‚ƒƒ€€€€€~~}~}~{}~{~~~{y{†zŠw‚†}…~‚}~|}~{|‚‚‚‚€ƒ€~}~~|€~}}}}}|{|€~ƒ‚ƒ€€ƒ€€‚„ƒƒ€‚‚‚~vz}„ƒ||{~‚Œ‡~{yy}ƒ€~|‡†q\\¢•ymmmxŽª©™Š‡‹†|kirswy|wwy}vw€ˆ††‹Œˆ†Œˆzy€€~€vnw~xvwrmr{t}ˆ……‹…‰‡ƒ††€ƒ‹’Œ‚ˆ…}vzutz€|xwyuztrnny{z}~€}Œ‚‰uw˜†y„DwŸ§ƒg›¦pu–˜†V\€lv‚އzrz~|vysŠƒ†’‡x|‚…vtz†zntyzrs„€}{€}}…††Šˆ‹Œ††€Š€’…ytŠ…rcnzyt}І†zvzwwuz€†ˆ€‚~€€‡††Š€€Š‡€zuvzyvtwz~|}{|{xzs}…ƒƒ†ƒ~z„€„…ƒ‡‡…‰…{€yz~€|z‚„{~~zyy~}|z|€}}€ƒ~z}‡‡†vmhts‡ŽŠ„ˆŠ…~utsx{~…†}…„€‚€wnmsx}‹ŽŠˆ‹ˆƒ{ƒ€urv{‚€‚ƒ}|}}yvtuuyƒƒ…ƒ‹•’~pr|„ЇБ‡€ssrpuuuv€ˆ…‚zufju~~r~”¤¥©¢šŠuspjgnlhnu„~€|}jlosy{‡Œ§¯¬§Ÿ–xsuvv~€{xxypfb\`bhlu}€†‹Ž‘”˜˜—™––‘Œ‰„„}yvuqnkoorqqsxzƒ~clysn…Œ•‘œš‘Œƒ~zx€€|ypnkiutŠ˜ˆyu„fgim}‘ £««¨ ’{caZabko…‹ˆŠ„|tjfedpŠŸ›Œ…mkhnjzެ®­¬§’ˆ{ul`b_]_ihihhppz…Љ…‰’’Œƒ…ˆ‹””ŽŒ‚…ˆ„…‚zuspmnrpppqv{zzw{‚ˆŽ‹ŠŒŽŽŽ„”ŒŽ‚y~tplmqwkdqmihr‡„•‹–‹~†x}nŽš¡¤˜–Š‚…ˆ|qpmgb]qmlq|„ƒ{zy||‚…‰†‹’ˆ•Ž…‚s~…y}~€vyjdehpjamxЇ™ £œ“Œ‡ˆ…‰‹ˆxneacms‡‡ˆ†‹Šˆ‰‚{rqljtsrƒˆŠˆ……{yvƒ‰ˆ}}x}~€‚Œˆ‡…„~|~…€}~|zy|yxxu€{‡€ywty‚€„‡‡š‘’—„{rkimknszzƒ~}|vuvsruy……ˆŽ˜¥§ž†}nep„’›¡§‹tcg\Ue`r~ŠŒ˜ƒqmrumqspq}ˆ‰–—ž™’Ž”ˆ|ƒ‚ˆ€qhhkx€ƒ‰…ui€ƒyilhou‡–——™–Žƒrdaaem€‰—‰‰€‚…|ƒ}€ƒƒ„†Š’Ž‹‚€~}zzzxvruplghffnqyyƒ†Š†‰…„ˆ‘•—–”ކ†}xwuwyty}ywzvtwsxz|ywz…Š“—“’ƒ€zw{{|z€„ˆ‹‰€}yumiabe`iz}ˆ‰”Š…†ŠŠ……Š“‘‹‰…|€z€~zyuw~zrqtyvtyƒznpyy€}…Šˆ€ƒŽ~†¡°}€”¤‚|~}ln}…udtzp^okj|ysku€Š”——Š„€„ŠˆƒŒ“’Œ’—–ŠƒuhnoiabanlwspsszƒŠ”––”…}€†…ƒvwolbazng}}uƒrzƒ‹˜žŒŠŒˆ†~|…†€ƒy~vuokltny„„~}}ts€vup‰€‚‡„~…І‰Ž‰Œ‚x‡|o‡n€‰sh‚}d}ކ|†zŒ—…}Еހz~ƒst€qly|w|rty}ˆ‚|€†Œ’…ƒzmvmutq„™‰‘qedj}Ž˜¡¥“™…qn_gX`h{€„Šœ‡uuttu}ˆ‹‘’†…urv|tww€†…Š„††€yypvtyzy‡|ytuvz|~…ƒŠ€‡‡Ž…‡ˆ‡ƒ‚€„ƒ†~yuqmbeco~˜‘‘‰shfbmxƒŽ”™š•™Ž}‚}wvyqz}€~ƒˆ{…†‚…€~xx€sŒmP–zŒiphk{u€ƒ…‡‘’Ž‘˜•†€v†uvy}zww~jyv}ontƒ…™™˜ˆ}yorommwx‡‹‰‡€umgkmqy†‹‡’Ž’Šˆˆˆ{yyy„‹…‚„„zuvqosvz~{ttyspv…‹‘“’•„}yysvxsrt|Šƒ„ƒ{vumus…•—–y…}yqy~y‰…„}ƒ~~wx~}t|tpvxrt~|~„€~…†…ƒ„†„…ˆŒ†‡ŽŠ‰‹€{onuy€~€‚‰Šnhvlrzll€•–“†„|pxut€{…„|y{€‰‘•Œ‹†{tuux|ƒz€~|v}xwmssssy~~|~€††ƒ‡†ŠŒ‰‹‡†……Œƒy€‡x~€|tptxxzz{|vuywtv„”Ž…„‚~ˆ‰zry}{zƒ‰‡ˆƒ‚†ƒ|{ztztrr€„ƒ~~‚‚~‚€€„„‡…††Ž”‚~uttzƒyuz‚„vopvtvm‘™–yxxƒ‘Šuqz…Š“››Žyspy|€vj\t~xssvur{~€ƒˆ‘š‡‰‘†}‰†…”ˆ~ˆ{trsutrwsoupxt€„…ˆŒ†ŽŠˆŒŽ†ˆ‘‹Šˆ…‚„…ƒ}wwvpqrpmponptsrw|~‚†‹‰Š‰Š…‹Š‚†…„‡‰†…‚…{ƒ||yzzyy||€€~ƒz}~~~|„‚{{|~yzzz~}zzzy…†x€‡wˆ…†Š…„‚…~~~„†€†||y‚}~xwvv}€}€z€€vpfryx~‰Œ…‰‹‰ˆ„‚…ˆ‹Šƒ‘˜t}wwq|ouvwt~~€€‚‚~€‚†~{€‚€ƒƒ€‚‚€~{ŠŽ…wz|…~tuy|‚z|~~‚†‡†„~x{y|{tp|…„†|v{~……ƒ„‹”–‘‚ustns|€…މ‡|ztnknmu{~{x}|~€††‰Ž‹‰†…‚ƒ……‡ˆ†xtxvx~~|yyywzywvvvz~{{|xx~ƒƒ„…ƒ†„…‰Š…‡Š‡„ˆ…€„‚}€~~~~zzz{{yxtyyuz…‚ŠŒ………~z}wqtyzwu||~{{………ƒ‡‹‰‹ˆˆ††……„ƒ{yyyyyuxqrywww}€…‚€€„~y„“‹Œƒ~€†‚ƒ„}|zwoqprrwy{xzz€€}€}€„†„……ƒ†„†…„„†„ƒ}€€ƒ}z{xxtwwwx|{|||ƒƒ}|~‚†ƒƒƒƒ‚…ˆ|~„~zx~‚}}…‡ˆ†‡„†‚|yztuuuyyyxyzxyww}|iuŸ •Š‚€{{~z{…™’‰Ž„~{snpjn{€„€…Љ}xy}~€}y{†‡ƒ}xzvp}}‚z…ƒ€„…‚€„ˆ………€„‚‡ˆƒˆ{yމrzxwxtrty{xzz{~yxz|€{~€†…ˆ‰‹ŠŒŠ‡…†ƒ‚ƒ‚€{wtqnnuxyz~€ƒ†‚~}}€‚ƒ‚ˆ‡‡…€}}|{|{~}}~€}~~~~}{~~{~~€€€€ƒ€€€€€€~~~~€z~‚{z~z~ƒ‚€€ƒ‚‚‚‚€~}~x|„{~‚€~z}|~~}€ƒ‚‚‚‚‚€|~}~~|~}~€€}€€‚‚„ƒ€€~€‚€€|}|||}{}~}}}~}€€‚}„vw…v~‚y€‚y‚†ƒ|€„}€ƒ…†„†ƒƒ~{wtxyzx|~€€}}‚€„……†‚„€~‚€{€z||x}{}zy}{}|~~~€‚€‚‚‚‚…„…„ƒ‚€~€~€~|{{zx{yz{}{|}}€~€‚‚ƒƒ„ƒƒ€~€€ƒ€€|€}yxy{~}z†‡‡‰{yzstty}„ŒŽ‘Žˆƒ~xuustwyz~}€…†ˆ…‚‚€€}‚†‹ˆƒ†…{iW˜ey“ƒtsmy}yvŒ‹ŽŠ†…ƒyy{wy}zy~…~zv}zy€|}~}}z‚ƒƒ„…‡‰……ƒ‚€€~‚€€€€}}{wwvzvwy|}~|}~}~|€~‚ƒ…†……††„ƒ€}~~€}‚~€}{||z||~~€€€‚‚~~ƒƒ€€~|}|{z||}~}}~}~~‚ƒ„…„„ƒ„‚‚„„‚‚ƒ‚€}~}€{}}|{zyxy|{y~~~€}~~€„…†…†……„‚ƒ‚|€}~€}||xyz|zy|}~}€‚‚ƒƒ‚€€€~ƒ€~}~~||~}}}~}€~€€€~~}}~}~}~€~}~~~~}€ƒ|‚†}€…|{ƒ‰~…ƒ‚‚~€|}€~}~~y|}~}|}€}€}~€~€}€€‚~~€€€€‚‚ƒ€€€€‚€€}}|~}~€€€€€€€~~€}~~}~}~~~€€€‚‚ƒ‚‚€€~€}~}{}}}}}}~~~{…†}w|…‡€}€‡‚|y€~}~~}€€€€€~}~|z|}‚ƒƒƒ€€~~~€€€}~€}~{}~}|{~}~€€€€~~€~}€~€€}€€€€€~|}~€}€€}}~|~}‚‚ƒƒ„„ƒƒ‚€€€€€~~~|}{}~{||~~}€€€€€~€€€€€€€€€€~~~~€}~€€€€€€~~~€€€€€~~~€€€€~}}}ƒ}„Œ~n„†nv…~m–vr‰ˆu~€~y{ƒ…ƒ€„€€‚|zzxzxu~‚€…‰……ˆ€‡‚{€~}€€yu€€z|€z|}z‚…|x{‚~ƒ…†€z{€}„ƒ€}~|~€……†‡……‚€€‚~~ƒ~y|yvvvvvxy{||~€}„ƒ‡ˆˆ†‡…†…‚„„€€~}x||yz||}|€~€‚€}‚‚€€€€}}~}|}}~}~~~€€€€€‚ƒ‚‚†„‚zy|y|~‚‚~{|z|}€€~}~}~~€€€‚ƒ„„„ƒ„ƒ~~}}~}|zzxyyxyy{{}}}€€‚‚…………ƒ…ƒ„ƒ……„…‚ƒ€€~}~}~{{||||}|{{{|}~}~}}}~€€€€‚‚ƒƒ‚‚€ƒ‚€€€~€~~€€~€€€€~}~}~}~~}~|~|~}~|~€€€€‚€ƒ‚‚‚‚ƒ‚€‚€~}~~}€~y~€yyyz}~|~}~}€‚ƒ€‚ƒ„…ƒƒ‚ƒ€€‚‚€~|yzyzyzyzy|}}~€€€‚‚…„„‚‚ƒ‚ƒ€€€€}|{|{}|}{}}~}~~}€€€‚‚‚€€€}€~~€€€€€€€€€€}~~}~}}~~}€~€€€€€‚‚‚‚‚€€€€€~€}€~~}|€~~}~}~€€€~€€ƒ€€€~~}~~~~€~€€€€€€€€~~~~}~}~}~}~}~~€€€€€€€€€€~}~~€~}~~|€€€€~€~€€€€€€€~~}~~}~~}~~~€€€€€€€€€€€€€€€€€€€€€~€~€~}~~}~}~€€€€€€€€€€€€€}~}€~€~€€€€€€€€€€~€~~~}~}~~~}~~}~~€€€€€€€€€~}~}~~~}}}~}}}~~€~€€}€~€€€€}€}€€€€€~~€€€~~~€€~€~~}~~€€}€~€€~€€€€€€€€tjšw{‡‚zxx~ƒ~|€~‚|Š{|…x}€|€€|{ƒ‚‚~ƒ€‚‚ƒ€„€‚„}{}‚‚€{€}}||yz}~z|‚{€}~~ƒ…‚‚‚€€€}€€~{z€yŠ€|v‡~z}~~~|}€ƒ‚€}‚€~||~||}}€€~€€€€‚€€€~}|}}~}~{…sˆ€x|zƒ~}}~€€€‚ƒ‚‚€€€‚‚ƒ€‚€}|}}y}~~€~}€}€~~}€~ƒ€€ƒ‚ƒƒƒ€‚~€€}€€}~~~~~€‚~€€ƒ‚€€€y~ŒsvvtŠˆ€w‘po~~x†‰i}†„ˆ‰„z…|…|€‡}‹yxƒyp‘zv{ƒy~ˆzƒ~u}„z…~†}{„~ƒ}z{ƒ}}~|}y{ˆ~~‚{x{…{…„{€}z€~‚€{~†€~~~€€€€‚|€}~{€}}ƒ|€~~~~~€}ƒ~€~€€~€~€€‚‚€‚€€€€}~~€~~„€€€}~~…†}ƒ}…~€‚{€{}}€|‚}~yƒ}}}€~}€ƒ~|~~„€ƒƒ€~~}€~~|}}~{|€~{~}€€€€€€€ƒ‚€~€‚~€}€‚}}|~„ƒ|vtuq||†‡ˆ|}zwz~{~~}}xzyy|~ƒ‚„……‚~~‚€…†ˆ‡„€~xzyzxzz||{|z{z|~€€‚}‚‡iƒ´‹‹‹€Yt‹}‚ˆˆw‰‡ƒzxo{v€‚||vnz|€„ƒz|„†‹‡‡€€ƒ€ƒˆ…{‚ƒƒ}||xzyy}|wy{|{z~‚ƒ…‰†ƒ†€ƒ…}„„‚‡ƒ}~|zyzzxy{x|xy{|y€‚‚€‚‚„‚ƒ‚ƒƒ~€~€{zy{yz}~€~€~~}€}x~y‡‰ƒr‡…|y€ƒ{|~~|~€~}|}~~|{€}€…|‚‚ƒ€ƒƒ~~~ƒ~{€€€€}~}{~|‚€€€€€€€€‚‚‚€‚€€~~}}€~}~}~~€€€€€€€ƒ€€€€€‚~€€€|~~||~|}~~€ƒƒƒ|€€}ytqy…ˆ†‰ŽŠ…ƒ}zuqpstyz„……ƒ…„€~€‚€‚‚€}€€€{~}}yzyxz||~}‚…€~‚|}€~€{€€ƒ€„€…„ƒ€ƒ€}}|z|}}~~}z{|z|{|}|~~€€„|€…|~ƒ„‚†ƒ‡€|€x~„€„€†€zzs|w}~€ƒ€{‚‚~~€y‚‚ƒ|ƒ€‚„†‡†…~yrqrx€††………ƒzzs|~‹”…yaV_p~…©š”Žytsv|ˆ’‰ynmhmw€‚ˆ‡†ƒ|{ƒ„‹‹Š‡z{xxr{w‡‹vn^ckuƒ’Š„€‰‹|‹–¢ž›’„qXRQ^pws†„І‘ƒƒwuwyŠ‹‡Š‰‚}~~}„†Š‰?Ez–o‹Š‹œ¢’fVs|n]zs€€z…”Œ…uŒŽŠŽx‡q„–˜„hiyrgnbhkkov‘Œ‚ˆ‹‹Œ‘Žˆ‚{u””€•˜…x``^ifhsy‡•—Ÿ¨¢‚utnjhjrhklp|…ŒŒˆ–Š…}sryœ©¤ ™‰~gnpbchw„‰…ˆŠŽ„yfhgY]swtj{ŠŽ’‹€…‘‡£™ ˆ‘—Žˆt}||}„…vbTO`Z_hprhk{‡‘…ƒˆœ°¤š§›š}„ƒ€‰ƒ|l††}z}{mnizm_Y`kc_kx†€‹•“Ž˜•’ˆŠ•~‹Š‹}v|tnikrorhnu„~ƒˆ‡‡ˆ‚€t€Š~ˆz“‡Ž‚€z‰‹‹†€…xgZ]hmu~•“• ‘~rzofbn~{‚ˆŠ…†„€v~…Š—š•‡tlebhx~€†ŠŒ‰„|tuxwz‚†…Šˆ‚|uroidfq||wq{‚†Ž”£ š‘‰’‰“ŒŽ†y|yqoez{nrnh\_utotxކ…•Їy†ƒ‹ƒŠŠ…‡Ž|ŒŽ¤tKcikQy„’™‘‘Œ€mom|Š•Œ‹‡qgfYZar€•¢§ ‡wrmoz~‚y€ƒŠ|uƒu„ˆŒ‚~|oftvty{~w}z„„†Š…ˆŠ‰~‡Œ‡•‡†uƒo~onyq†…Œ}x|}z|ucd`r€…ˆ”–•“‘‰sw~Š…†˜™ˆƒmoaa^vw~Ž—‘ЇrkScfpz~|žœ‚‰…€st–ª¨Ž~yw{„‹‡u~r{‚umb]OPch}ƒ€yt†ƒ†‘˜•ž›œ›‚{qwu‚ˆuugkprovzt~žœ›žš˜†wwomefoy}}‚yuqythhiuw‰Š…†‡~…•œ¥¥£—‰‚ue\UUhv–¨ª¢“o`PPSgdu€€…„…ƒˆŠ”•¬©’Šm\\es˜•ŠŠŽ}nc\Uaioxy‡Ž‹Ž”ut{ƒˆ”“˜“‘†xvxx|x|zyuukgit‚‡‹ƒŠŒ‡‚~xr|†‰“ŒŠ‚sx€yqu}ƒ||}ƒ‚††v†”‹p€th_jys|•’‡Œ‹†~‚vursu{{…ˆ‘|suqnokqx}~‚‚‡„†‰‹†„‰„„‚…ƒ†‡‚ƒ}|zwtt}{xxtwwuv}{€~‚€€…Šˆ‰‰†…†‚‚€~€‚}~€€€{~~~v{€}q€‚ƒ{~~tvvyxy„ŠŠ‰†„€€€}z€{€}xtz~~xtwz„ƒŸƒ{|‡rŠ‘…}wqtxk{ŠŠ„“~„ˆvtw|xqhdoozŠˆ~€Žˆ…{…†‡Ž“‘ˆ|‡“Žtmbfakt]t…‡„|x}~|zr{ˆ…“’Œ”v~{~qdƒŠrƒx††‹†qs‚ˆŠ‹†v‚~qpxstsxsmldeghr~‚––‘‡Šˆƒ…’  ¥¢˜“‹~wpmidhenlhfieadl{|uv€‚‹––––‹œŸ“‚Љƒzy‹‰ƒvxspdcnjmvЉ‡„€wkmv|‘“žŸ›‘zz}tsqyzz~ƒˆƒumosrtvz‚†‡‰ŠŒŠ}~y~~zw|€†„‰Š‹†ƒ~ytxs{xwtyyzzrw}v‚‚ƒ‡‡ƒ‡Š‡ŠŽ‹†ƒ{{xusorytzxu}|~|€…ˆˆŠ‘ŽŠŽ‰„}vxux|yx|‚…„„ƒxwmrnslz~„ˆ‹‰‹ƒ†…|€„„…~xyxy~}wƒ{~ztyzxwuyŽŽšš“‘ˆxxwtrrnuŽvsustyq|ŒŒŠ…‡ƒ~{|’Ž•˜…zmpnbms}|y€ˆ…z{€}y…‰‡ŒŠ‰ˆ„„yvqp}z~z||x}zsty…‡‹‹‰ƒƒ†€|„ˆ€{ƒ„†ˆ‡€}uy}|yyy|ux||{u{|€…~…€€І~…†{wŒ~Š{‚†roibiz‰‰’‘’shmmp|‰Ž‡wŒ……t…zyrhz€q{†ts†“•”Œ‰ƒ~{vzxy}‚€}r}xyyzwƒwtsz~ty………†‡‘ŽŒ†ƒ~‡†…‡†{mqzsnpury|~|zy|‡†€†‚‚€~}|€zz€‚Šˆ‹˜€qt€‚|sƒƒ†ŒŒ‘‡€€yqsqhm||€‚€ƒ|u{wwy~ˆ‡ˆŠŒˆ„~{€{||}|ywwv||z}|}ƒ‹ˆŠŽ‘Šƒ‚„ƒ~y€~{}{ywwvrotux{}~~}…‚†Š‰ˆ‡€€…|}~{ˆ‹†ˆ‡†ŠŠ…„|tvwutwvsqu{zx|}yxy‚‡‡‹˜‘†…€{|}~}†ƒ‡…‡}zzxtux~€~‚‚{~€~|{~€|{€„Їˆƒ~}}€€~|{{}}}{}€ƒ‡†„‚€}}~~|z||~~€~~}~{|~~}€…€‚……‡€zz~|}…‚€†‡…„ƒ}x{zyvxxxz}~€~~~||||y~ƒƒ‚†ˆˆˆ‡Šˆ†…€€€{x{zzz€~~~z{zwxvvuwxy~€‚……„„†‡…‡„…………‡„†‡…‚}~|z|yxuxwtutyyz|{~}€~€ƒƒ†…††††„„…ƒƒƒƒ€€€}|{~}~}~{|€~{z‚„~ƒ‚€}€}zzy|{|}~‚‚‚€€}€€€€€€€‚€|€€~€~}~}{|z}yz{|}}€€€…€ƒƒƒ‚…„ƒ……‚‚€€}{}}z{|{|}~~|~~|{||||{€…‡…€‚€€€ƒ€~~|~v|ˆ|z‚|{|{z{zy„…„†„ƒ‚„ƒƒ€€ƒ€~|||{{{}{z|~}|}~}~|~~€€ƒ€ƒƒƒ„‹„‚†…†‚€~ƒ|{}|||yvtx{~x||||}~|€ƒ„‡‰‡‚}€ƒ„ƒ‡‡‡…€|{|{{xxzzxzz{z|||}€€~€‚ˆˆƒ„„‚€€~~€„†‚~~{xyx{z{~{€‚ƒ~„‚}~}}~|~€‚€€~‚€†…zzz|€yzx‹‘†y}t€ƒ}nqz|…ŒŠ†„~ztrprs~‚€†„ƒ„ƒ}xury}€ƒ„‰Š…ƒ‚~wzwwz€‚„ˆ„ˆ„~~}|~~‚„„ƒ€€~}z|zz{|}€€„‚ƒƒ}~|}}€ƒ„‚€~~z{|~}€~}|~€ƒ€‡ˆ…€|}€„†…„ƒ|xwstvz{}„…†„ƒ~{yz}}~€…ˆ‡„‚‚}}}||}}€‚€€€€~€{~|{z~{}}‚€€€€~~}€€€}€€€‚€€~}|{€€~€€}}{|~~xz{~~‚…‚€€‚ƒƒƒ„€€€€~€ƒƒ€~|{}{|~}}|}}}~~~}€}€ƒ‚€„ƒ€{|{~~}~€€}€€€‚ƒ‚‚ƒƒ~€}||}}€{}~~€}}~}€~}~€€€ƒ‚ƒ‚‚€}€€€€~‚~|€~}}€~}€€€}~}€|€€~~}v|}{{€~~€ƒ€{~‚€{ƒ†ƒ‚†„ƒ€€}}|~}|{}|y|}|z~~ƒ€}€ƒ€‚‚‚€ƒ„~}€|||zx„„zx}…ƒ€€}}|y}{~…‡†Š‰ƒ€‚}{xwxzy|{tw{ww||„…†‰‡‡ˆˆˆ‹‹‹‹‰ˆ„|yussstsutwzzzz|}€…††‡‡‡‰†ƒ‚€{~~{~€‚€~|~}}}€}€€€~€~~}|}~~ƒ{‚‡~†‚}}{xy{z{~€€€€~|{{{~}€ƒ„…ƒ‚ƒ~€}€€€€ƒƒƒ€}|{z{{z{~~€~~{{zy||€ƒƒˆ…ˆˆ†ƒ‚~}}~~~}}~}}{~€‚€€€~€€€€€€~~}}~}~€~}~€€€€€€‚€‚‚€€€€€€€€€|}{|{}|~~€€~~~}||~€‚ƒ‚‚‚ƒ‚ƒƒ‚€€}~|~}€~€~~~~€€€€€~~}}}}|{}}}}~~~}~€~€€‚‚ƒƒƒ‚‚€€€€~~~~|y}€x}~~~~~}|xy„……€€~‚„„…„…‚~}}z|z||~€€~}{~€€‚‚‚ƒ€‚€€€€}~{~|{~|~€€€€€‚ƒƒ‚ƒ}}|}~~}€€€€€€}€~€€€€€‚€€€€}~|~}}~}~}}|~}}~€ƒ‚ƒ‚ƒ„‚ƒ‚€€€€}~}}|{{{{|{}}~~~~}~€€€‚€€€€€€~~}}}~}€€€€€€€€€€€€€~}~€~€}}~}}~}~}~„†…~}~~|~‚€ƒƒ}€‚€y{}}~|~{{€‚‡€…ƒ€€}…€}}~~}|ywxw{€…„ˆ‡ˆ‡‰ˆˆ†ƒ€|}xwytuwwwzyyy{y€ƒ……„†„……†ˆ‹ˆ„‚|~~wvzxwxzvxxywz}~€ƒ‚ƒƒ……†…………ƒ€~~|}{zyxyxx{{}~}€€ƒ€‚‚‚ƒ‚ƒ}}~|}{|~~}~}~~€€€ƒƒƒ‚ƒ‚ƒ‚€€~~{|{{|z{|||~}~}€€€€‚ƒ‚ƒ‚‚‚€€€~}~}~}~}~~~~}~~€€€€€‚‚‚‚‚€€~~}}||}|{}|}|~~€ƒ€‚‚ƒ‚ƒ‚€}~}~|~|~~~~}}~~€€~€€€€~}}~}€~€~€|~~€€€€€€€€€€€€€€~€~~}~€€}€|}~~}|€~€ƒ~€}€~€€~€€€€€€€€€€~€~~~~€~}€}{~„‚ƒwz€‚‚€‚€„€|€‚€xv‡ƒyz}€{|~~}€‚€ƒ€‚ƒ‚‚‚ƒ„…}|€„~€ƒ{}yz{|xy~}|{~}}~€„‚‚‚‚„‚ƒ€€€~~~}~}~}|||||}}~€€~~€€€€€€€€€€€€~€€~€}~~}~~~~|~~~€€€€€€€€€€€~~}€€€€€€€€€€€€€€€€€€€€€€€€€€~~~~}€~~€}€€~~~~}€€~}}€€€€~€€€}~€€€€€€€~~~}~~~~~}€€~€€€€€€€€€€€€€€~}~~}}~|{}}~~}~~€€€€€€€€€€€€€€€~}~}~}~}~~€€€€€€€€‚€€€€€€€€€}~}}|}}~~€€€€€€€€€‚ƒ‚ƒ‚‚€~~~|~~~€€~~}~~}~}~}€€€€~~~}€€€€~~~~€€€€~}~}~}~~~€}€~€~~~~~€€€€€€‚€€~}~}}}€€}~~|}}}|~€€‚‚‚€€~|~}~€€€€}~~€€‚‚€€}}|}|}}€€€}€~€€€€ƒ€ƒ€€~~}~}~€€€€}~€€‚€ƒ€~}}~~}}~}~~€€€€‚€€€€~€€€€~€~€~{€~€z}€}}€}€€€€€€€€€~~€}~~~~}~}~~}}€€€€‚‚€‚€€€€€€}~}~~{||~{|~€~~}~}~€€€€€€€€€€€€€€€~€~€€€~~~~}~€€€€€€€€€€lgeneral-1.3.1/lgc-pg/convdata/fog.bmp0000664000175000017500000002153612140770460014463 00000000000000BM^#6(<2(#  ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((lgeneral-1.3.1/lgc-pg/convdata/danger.bmp0000664000175000017500000002153612140770460015150 00000000000000BM^#6(<2(#ë ë ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlgeneral-1.3.1/lgc-pg/convdata/crosshair.bmp0000664000175000017500000002164212140770460015703 00000000000000BM¢#zl<2(#  BGRsÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlgeneral-1.3.1/lgc-pg/shptool.c0000664000175000017500000001204512140770460013240 00000000000000/* A command line tool for converting pg-shp into pixmaps. Copyright (C) 2005 Leo Savernik All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif #include #include #include #include #include #include // #include "list.h" #include "misc.h" #include "shp.h" #ifdef __GNUC__ # define NORETURN __attribute__ ((noreturn)) # define PRINTF_STYLE(fmtidx, firstoptidx) __attribute__ ((format(printf,fmtidx,firstoptidx))) #else # define NORETURN # define PRINTF_STYLE(x,y) #endif #define SHPTOOL_MAJOR 0 #define SHPTOOL_MINOR 1 #define SHPTOOL_PATCHLVL 0 enum Options { OPT_VERSION = 256 }; static void abortf(const char *fmt, ...) NORETURN PRINTF_STYLE(1,2); static void verbosef(int lvl, const char *fmt, ...) PRINTF_STYLE(2,3); static void syntax(int argc, char **argv); static int verbosity; static int show_help; static const char *output_file; static const char *input_file; int use_def_pal; // fake externals for shp.c const char *source_path; const char *dest_path; static struct option long_options[] = { {"defpal", 0, 0, 'd'}, {"help", 0, &show_help, 1}, {"verbose", 0, 0, 'v'}, {"version", 0, 0, OPT_VERSION}, {0, 0, 0, 0} }; /* aborts with the given error message and exit code 1 */ static void abortf(const char *fmt, ...) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); exit(1); } /* prints a message if 'level' is at least equal to the current verbosity level */ static void verbosef(int level, const char *fmt, ...) { va_list ap; if (level > verbosity) return; va_start(ap, fmt); vfprintf(stderr, fmt, ap); } /* handle the command line options */ static void process_cmdline(int argc, char **argv) { for (;;) { int result = getopt_long(argc, argv, "v", long_options, 0); if (result == -1) break; switch (result) { case 'd': use_def_pal = 1; break; case 'v': verbosity++; break; case OPT_VERSION: printf("%d.%d.%d\n", SHPTOOL_MAJOR, SHPTOOL_MINOR, SHPTOOL_PATCHLVL); exit(0); } } if (show_help) { syntax(argc, argv); exit(1); } /* first parameter is input file */ if (optind >= argc) abortf("Input file missing\n"); input_file = argv[optind++]; /* second parameter is output file */ if (optind >= argc) abortf("Output file missing\n"); output_file = argv[optind++]; if (optind < argc) abortf("Excess parameters: %s\n", argv[optind]); verbosef(2, "use_def_pal:\t\t%d\n" "verbosity:\t\t%d\n" , use_def_pal, verbosity); } static void syntax(int argc, char **argv) { printf("LGeneral Shp-format extraction tool.\n" "\n" "Syntax: %s [options] infile outfile\n", "shptool"); printf("\nOptions:\n" "-d, --defpal\tUse default palette.\n" "-v, --verbose\tIncrease verbosity.\n" " --version\tDisplay version information and exit.\n" ); } static void convert_shp_to_bmp() { PG_Shp *shp; verbosef(1, "Reading from %s\n", input_file); shp = shp_load(input_file); if (!shp) abortf("Input file '%s' could not be loaded\n", input_file); verbosef(1, "Writing to %s\n", output_file); if (SDL_SaveBMP(shp->surf, output_file) < 0) abortf("Could not write to '%s'\n", output_file); } static void init_sdl() { verbosef(2, "Initialising SDL...\n"); verbosef(3, "SDL_Init\n"); /* SDL required for graphical conversion */ SDL_Init( SDL_INIT_VIDEO | SDL_INIT_TIMER ); verbosef(3, "SDL_SetVideoMode\n"); SDL_SetVideoMode( 20, 20, 16, SDL_SWSURFACE ); verbosef(3, "Registering exit-handler\n"); atexit( SDL_Quit ); } int main(int argc, char **argv) { process_cmdline(argc, argv); init_sdl(); convert_shp_to_bmp(); return 0; } /* kate: tab-indents on; space-indent on; replace-tabs off; indent-width 2; dynamic-word-wrap off; inden(t)-mode cstyle */ lgeneral-1.3.1/lgeneral.desktop0000664000175000017500000000054512477622100013421 00000000000000[Desktop Entry] Name=LGeneral Comment=LGeneral is a turn-based strategy engine heavily inspired by Panzer General Comment[de]=LGeneral ist eine rundenbasierte Engine für Strategiespiele und wurde stark von Panzer General inspiriert Exec=lgeneral Icon=lgeneral Type=Application Categories=Game;StrategyGame; Keywords=turn-based;tiles;WWI;army;troops;battle; lgeneral-1.3.1/depcomp0000775000175000017500000003554512140770461011623 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2004-05-31.23 # Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit 0 ;; -v | --v*) echo "depcomp $scriptversion" exit 0 ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # Dependencies are output in .lo.d with libtool 1.4. # With libtool 1.5 they are output both in $dir.libs/$base.o.d # and in $dir.libs/$base.o.d and $dir$base.o.d. We process the # latter, because the former will be cleaned when $dir.libs is # erased. tmpdepfile1="$dir.libs/$base.lo.d" tmpdepfile2="$dir$base.o.d" tmpdepfile3="$dir.libs/$base.d" "$@" -Wc,-MD else tmpdepfile1="$dir$base.o.d" tmpdepfile2="$dir$base.d" tmpdepfile3="$dir$base.d" "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" elif test -f "$tmpdepfile2"; then tmpdepfile="$tmpdepfile2" else tmpdepfile="$tmpdepfile3" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: lgeneral-1.3.1/po/0000775000175000017500000000000012643745102010732 500000000000000lgeneral-1.3.1/po/README0000664000175000017500000000042312140770461011527 00000000000000This direction contains all the translations of every built-in domain of lgeneral. Each subdirectory resembles the names of an available domain. Domains: lgeneral Translations within lgeneral source code and tools pg Translations extracted from the PG-resources (pending) lgeneral-1.3.1/po/pg/0000775000175000017500000000000012643745103011341 500000000000000lgeneral-1.3.1/po/pg/pg-translations.c0000664000175000017500000036323312140770461014561 00000000000000/* Automatically extracted translations for domain 'pg'. DO NOT EDIT. */ int main(int argc, int argv) { auto const char *translations[] = { /* campaigns/PG:251 */ tr("Although you managed to capture and destroy Stalingrad, shortages in supplies, and winter weather have exhausted our troops. This allowed the Russians to cut off large parts of the 6th Army in Stalingrad and annihilate them, and drive back the Eastern front."), /* maps/pg/map15:7 */ tr("Conde-sur-Noireau"), /* campaigns/PG:285 */ tr("1st October 1942"), /* maps/pg/map21:7 */ tr("Makarska"), /* maps/pg/map24:7 */ tr("Mirgorod"), /* maps/pg/map03:7 */ tr("Namsos"), /* maps/pg/map17:7 */ tr("Trois-Ponts"), /* units/pg.udb:2248 */ tr("sIG II"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Thorin"), /* maps/pg/map03:7 maps/pg/map06:7 maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 maps/pg/map10:7 ... */ tr("Mountain"), /* maps/pg/map18:7 */ tr("Elbeuf"), /* units/pg.udb:11433 */ tr("FFR 57mm ATG"), /* campaigns/PG:47 */ tr("Despite your heroic efforts, Norwegian and English resistence was too strong to clean the territory from enemy influence. As the state of affairs is heating up on the Western border, we had to retract all forces from Noway, and divert you there."), /* campaigns/PG:649 */ tr("You have achieved a minor victory for the german Reich, Commander! Well done."), /* campaigns/PG:504 */ tr("Congratulations on your outstanding and brave counter-attack. Yet, bombing raids against our supply lines, and Allied reinforcements forced us to eventually abandon the Arnhem area, and to pull back behind the Rhine."), /* maps/pg/map13:7 */ tr("Catanzaro"), /* campaigns/PG:233 */ tr("Excellent! By taking Sevastopol and the Krim peninsula early, we could annihilate the Russian Black Sea fleet. There will be no more interference on our ongoing advance to the East."), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Essen"), /* maps/pg/map14:7 */ tr("Spoleto"), /* units/pg.udb:94 */ tr("Submarine"), /* maps/pg/map03:7 */ tr("Honefoss"), /* units/pg.udb:4432 */ tr("AD Mk II Fort"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Salzburg"), /* maps/pg/map24:7 */ tr("Berezna"), /* units/pg.udb:5945 */ tr("GB AEC III"), /* campaigns/PG:368 */ tr("Herr General, you fared excellent! Russia has signed a peace treaty, and we can fully throw our forces against the Allied."), /* maps/pg/map26:7 */ tr("Alma River"), /* campaigns/PG:2 */ tr("Nazi Germany starts World War II, attempting to seize the world."), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Rostock"), /* maps/pg/map01:7 maps/pg/map02:7 */ tr("Ozorkow"), /* maps/pg/map15:7 */ tr("Trouville"), /* maps/pg/map16:7 */ tr("Rhone River"), /* maps/pg/map19:7 */ tr("Best"), /* maps/pg/map05:7 maps/pg/map18:7 */ tr("Chartres"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Newbury"), /* maps/pg/map05:7 */ tr("Vichy"), /* units/pg.udb:7849 */ tr("ST 45mm ATG"), /* maps/pg/map14:7 */ tr("Caserta"), /* units/pg.udb:3452 */ tr("PO Cavalry"), /* maps/pg/map18:7 */ tr("Chateaudun"), /* maps/pg/map29:7 */ tr("Konstantinovka"), /* maps/pg/map36:7 */ tr("Brandywine"), /* maps/pg/map24:7 */ tr("Smela"), /* maps/pg/map19:7 */ tr("Wyler"), /* units/pg.udb:9389 */ tr("Bulgarian Inf"), /* scenarios/pg/Barbarossa:3 */ tr("June 22, 1941: Germany launches a surprise attack on its ally, the Soviet Union."), /* nations/pg.ndb:20 */ tr("Luxemburg"), /* maps/pg/map17:7 */ tr("Saar River"), /* maps/pg/map17:7 */ tr("Gembloux"), /* units/pg.udb:9977 */ tr("US B32 Dom"), /* units/pg.udb:4544 */ tr("LC Infantry"), /* maps/pg/map14:7 */ tr("Liri River"), /* maps/pg/map13:7 */ tr("Cosenza"), /* maps/pg/map29:7 */ tr("Valuyki"), /* maps/pg/map17:7 */ tr("Elsenborn"), /* maps/pg/map24:7 */ tr("Belaya Tserkov"), /* maps/pg/map26:7 */ tr("Lyubimuka"), /* maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 maps/pg/map07:7 maps/pg/map08:7 ... */ tr("Ocean"), /* scenarios/pg/Torch:3 */ tr("Nov 8, 1942: Americans face the veterans of the Afrika Korps."), /* maps/pg/map29:7 */ tr("Kupyansk"), /* units/pg.udb:8157 */ tr("AF Destroyer"), /* maps/pg/map12:7 */ tr("Djidjelli"), /* maps/pg/map17:7 */ tr("St. Trond"), /* maps/pg/map24:7 */ tr("Gomel"), /* maps/pg/map17:7 */ tr("Ciney"), /* maps/pg/map17:7 */ tr("Dyle River"), /* maps/pg/map21:7 */ tr("Kutina"), /* units/pg.udb:9081 */ tr("IT 75mm SPAD"), /* maps/pg/map08:7 */ tr("Al Maffraq"), /* maps/pg/map17:7 */ tr("Dasburg"), /* maps/pg/map21:7 */ tr("Gusnie"), /* campaigns/PG:650 */ tr("You have achieved a major victory for the german Reich, Commander! Excellent!"), /* campaigns/PG:45 */ tr("Excellent, Herr General! Your quick taking of Norway has enabled us to expel the English forces from Norway and station our fleet there. Our supply lines should be safe. You have been awarded command over troops at the Western border."), /* units/pg.udb:5021 */ tr("GB Stir MkI"), /* units/pg.udb:1380 */ tr("PzIIIJ"), /* campaigns/PG:24 */ tr("You managed to break resistence in time before the Allies could react. The gates to Warsaw are now wide open."), /* units/pg.udb:6813 */ tr("ST Il-2"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Kattowitz"), /* units/pg.udb:3732 */ tr("FFR M5"), /* maps/pg/map13:7 maps/pg/map14:7 */ tr("Cassino"), /* scenarios/pg/Kiev:3 */ tr("August 23, 1941: The Wehrmacht attempts to pocket and destroy Soviet forces defending Kiev."), /* units/pg.udb:5357 */ tr("GB Crom VI"), /* maps/pg/map16:7 */ tr("Monaco"), /* campaigns/PG:95 */ tr("Your failure to conquer England had given the enemy a chance to build up resistence and assemble a naval fleet of formidable strength crippling our supply lines. Thus, our expeditionary forces were severely decimated, forcing us to sign an unfavorable peace treaty."), /* maps/pg/map16:7 */ tr("Cannes"), /* campaigns/PG:402 */ tr("The mission was a disaster. Not sustaining allowed the Allies to invade Germany from the South. Thanks to your earlier victory over Russia, quickly established war industries allowed us to fend off the capturing of Germany, allowing us to negotiate a peace treaty at minor disadvantages."), /* maps/pg/map26:7 */ tr("Belbok"), /* units/pg.udb:5133 */ tr("GB Matilda II"), /* maps/pg/map29:7 */ tr("Trostyanets"), /* maps/pg/map01:7 maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 ... */ tr("Forest"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Dniepr River"), /* campaigns/PG:488 */ tr("Despite your initial success in the Ardennes, the Allies denied our peace offering. With reinforcements arrived, they managed to drive us back to the limits of the Reich."), /* maps/pg/map29:7 maps/pg/map30:7 */ tr("Belgorod"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Voroshilovgrad"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Nelidova"), /* maps/pg/map04:7 maps/pg/map17:7 */ tr("Brussels"), /* maps/pg/map16:7 */ tr("Aix-en-Provence"), /* maps/pg/map16:7 */ tr("Grand Rhone River"), /* campaigns/PG:275 campaigns/PG:331 campaigns/PG:418 */ tr("Byelorussia"), /* units/pg.udb:3284 */ tr("PO PZL P24g"), /* units/pg.udb:2696 */ tr("3.7 PaK35/36"), /* units/pg.udb:103 */ tr("Aircraft Carrier"), /* maps/pg/map24:7 */ tr("Petrikov"), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("El Agheila"), /* maps/pg/map26:7 */ tr("Nikoaevka"), /* units/pg.udb:106 */ tr("Land Transport"), /* maps/pg/map19:7 */ tr("Grave"), /* units/pg.udb:1660 */ tr("Tiger I"), /* maps/pg/map05:7 */ tr("Cholet"), /* units/pg.udb:9361 */ tr("AF Partisans"), /* units/pg.udb:5973 */ tr("GB Ram Kg"), /* maps/pg/map24:7 */ tr("Kalinkovich"), /* maps/pg/map04:7 maps/pg/map05:7 maps/pg/map18:7 */ tr("Abbeville"), /* maps/pg/map13:7 */ tr("Enna"), /* campaigns/PG:514 */ tr("You are now in charge of the Africa Corps to aid Italian troops in their battle against English mediterranean dependencies in North Africa. Strategically, High Commands attempts to take Egypt, and then to proceed towards Persia to open up a new Southern front into Russia. You have to take all objectives until the 27th of June at the latest, but to allow us to garrison sufficiently against counter-attacks, you should finish the mission earlier."), /* maps/pg/map13:7 */ tr("Caltagirone"), /* units/pg.udb:7037 */ tr("ST BT-5"), /* maps/pg/map29:7 */ tr("Izyum"), /* units/pg.udb:10817 */ tr("US Para 41"), /* maps/pg/map29:7 */ tr("Korocha"), /* campaigns/PG:628 */ tr("You bravely fended off the Russian onslaught from the Reich's limits. Combined with your earlier victory over England allowed us to return to the pre-war status-quo in the East."), /* campaigns/PG:522 */ tr("General staff is pleased with your success, and offers you the opportunity to lead the pocket operations around Kiev.##Herr General, would you like to stay in the desert, or participate in the Eastern theater?"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Salsk"), /* units/pg.udb:2836 */ tr("7.5 leFk 16nA"), /* units/pg.udb:1800 */ tr("StuGIIIG"), /* campaigns/PG:528 */ tr("26th May 1942"), /* maps/pg/map33:7 */ tr("Mor"), /* maps/pg/map18:7 */ tr("Evreux"), /* scenarios/pg/Crete:2 */ tr("CRETE"), /* maps/pg/map36:7 */ tr("Capitol Heights"), /* units/pg.udb:9165 */ tr("IT Fiat Truck"), /* scenarios/pg/Washington:3 */ tr("June 1, 1945: Yesterday Europe. Today America?"), /* scenarios/pg/Kharkov:2 */ tr("KHARKOV"), /* maps/pg/map16:7 */ tr("Arles"), /* maps/pg/map19:7 */ tr("Ijssel River"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Zwickau"), /* maps/pg/map08:7 */ tr("An Nabk"), /* maps/pg/map16:7 */ tr("Avignon"), /* maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Warta River"), /* maps/pg/map05:7 maps/pg/map18:7 */ tr("Rouen"), /* maps/pg/map04:7 */ tr("Hirshon"), /* maps/pg/map17:7 */ tr("Maubege"), /* units/pg.udb:9641 */ tr("US P51H Mustg"), /* campaigns/PG:153 */ tr("Let us battle the Soviet forces around Kiev."), /* units/pg.udb:10257 */ tr("US M4A3 (105)"), /* units/pg.udb:4264 */ tr("NOR F-DXXIII"), /* campaigns/PG:624 */ tr("We are now facing a massive force in the East invading German soil. Your order is to hold Berlin and at least five other objectives to prevent further detriment to the Reich."), /* maps/pg/map29:7 */ tr("Samara River"), /* campaigns/PG:206 */ tr("Moscow, capital and industrial, and logistical center of Russia, is the ultimate objective you have to strive for on the Eastern front. You have to capture Moscow and all other objectives by the 4th of December at the latest. Yet to prevent autumn weather to slow down our advance, you should finish your mission several weeks earlier."), /* maps/pg.tdb:32 */ tr("Snowing(Mud)"), /* campaigns/PG:179 */ tr("Moscow has fallen, and the Soviet Union surrendered to the Reich! You have achieved what Napoleon only dreamed of. All of Russia has been put under German administration, and we have already begun exploiting its vast resources. Your decision to take the early route towards Moscow was right, and therefore you get awarded the highest order medal of the Reich, the Knight's Cross with Oak Leaves and Swords."), /* units/pg.udb:9529 */ tr("US P38 Ltng"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Ulm"), /* maps/pg/map24:7 */ tr("Novozybkov"), /* maps/pg/map17:7 */ tr("Saarburg"), /* units/pg.udb:1352 */ tr("PzIIIH"), /* units/pg.udb:2808 */ tr("PzIVF2"), /* maps/pg/map15:7 maps/pg/map18:7 */ tr("Saint Lo"), /* maps/pg/map24:7 */ tr("Semenovka"), /* campaigns/PG:569 */ tr("10th July 1943"), /* units/pg.udb:9417 */ tr("Hungarian Inf"), /* maps/pg/map36:7 */ tr("Centreville"), /* maps/pg/map30:7 */ tr("Kromy"), /* maps/pg/map12:7 */ tr("Constantine"), /* campaigns/PG:563 */ tr("Your leadership skills are currently asked for at two places. You may choose to lead the upcoming Summer offensive in Russia against the pocket of Kursk, or to defend Italy against the expected invasion of allied troops.##Which battle do you want to participate in?"), /* campaigns/PG:109 */ tr("The quick and decisive blow you delivered to both Yugoslavia and Greece enabled High Command to prepare an airborne invasion of Crete. You have served the country well, and are awarded command over the operation."), /* units/pg.udb:708 */ tr("JU87D"), /* maps/pg/map26:7 */ tr("Kamyshly"), /* maps/pg/map24:7 */ tr("Gradizhisk"), /* units/pg.udb:2500 */ tr("Opel 6700"), /* maps/pg/map36:7 */ tr("Chester River"), /* campaigns/PG:111 */ tr("With Yugoslavia and Greece partially undefeated, we had to spare additional troops for the defence lines that will be missing on the Russian front."), /* units/pg.udb:11293 */ tr("US M20 LAC"), /* scenarios/pg/LowCountries:3 */ tr("May 10, 1940: Flanking the heavy fortifications of the Maginot Line, the Germans invade France through Belgium, Luxembourg, and the Netherlands."), /* maps/pg/map15:7 */ tr("St. Pierre"), /* maps/pg/map15:7 */ tr("Mortain"), /* campaigns/PG:210 */ tr("Your initial capture of Moscow let arise hope that Russia would surrender. Unfortunately, fresh Siberian reserves started a counter-attack and expelled our exhausted and worn down spearheads out of the capital. While we managed to establish a stable front line again, we could not attempt another advance in 1941."), /* maps/pg/map03:7 */ tr("Gol"), /* maps/pg/map15:7 */ tr("La Ferte-Mace"), /* maps/pg/map36:7 */ tr("Arlington"), /* maps/pg/map24:7 */ tr("Berdichev"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Roslavl"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Saratov"), /* scenarios/pg/ElAlamein:3 */ tr("May 26, 1942: Axis attempts to crush the Allied forces in North Africa."), /* campaigns/PG:302 */ tr("11th February 1943"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Vladimirovka"), /* units/pg.udb:4348 */ tr("AD Mk I SP"), /* units/pg.udb:512 */ tr("BF110g"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Nottingham"), /* maps/pg/map08:7 */ tr("Baghdad"), /* maps/pg/map21:7 */ tr("Dubrovnik"), /* units/pg.udb:8129 */ tr("AF LtCruiser"), /* maps/pg/map01:7 maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 ... */ tr("Clear"), /* maps/pg/map15:7 */ tr("Isigny"), /* units/pg.udb:8045 */ tr("AF Battleship"), /* campaigns/PG:120 */ tr("Excellent! Despite heavy resistence, the suppremacy over the Mediterranean Sea is ours. Nothing can stop our operations in Russia now."), /* maps/pg/map08:7 */ tr("Bierut"), /* units/pg.udb:3116 */ tr("43 Wehr HW"), /* campaigns/PG:257 campaigns/PG:263 */ tr("9th October 1943"), /* maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Oder River"), /* units/pg.udb:117 */ tr("BF109e"), /* maps/pg/map17:7 */ tr("Waavre"), /* maps/pg/map36:7 */ tr("Chevy Chase"), /* maps/pg/map36:7 */ tr("College Park"), /* units/pg.udb:764 */ tr("DO17z"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Gleiwitz"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Stralsund"), /* maps/pg/map19:7 */ tr("Ede"), /* units/pg.udb:6281 */ tr("GB 5.5 Inches Gun"), /* nations/pg.ndb:12 */ tr("Belgia"), /* units/pg.udb:4937 */ tr("GB Blen MkIV"), /* maps/pg/map05:7 */ tr("Reims"), /* maps/pg/map05:7 */ tr("Thierry"), /* units/pg.udb:10761 */ tr("US Inf HW 41"), /* scenarios/pg/Anvil:299 scenarios/pg/Anzio:329 scenarios/pg/Ardennes:491 scenarios/pg/Balkans:557 ... */ tr("Allies"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Cracow"), /* units/pg.udb:1072 */ tr("PzIIF"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Frankfurt AO"), /* nations/pg.ndb:76 */ tr("Rumania"), /* maps/pg/map17:7 */ tr("Verviers"), /* maps/pg/map17:7 */ tr("Dinont"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Peterborough"), /* maps/pg/map03:7 */ tr("Elverum"), /* scenarios/pg/France:3 */ tr("June 5, 1940: With the French outflanked the Germans drive into France and attempt to capture Paris."), /* maps/pg/map14:7 */ tr("Sacco River"), /* units/pg.udb:3816 */ tr("FR Amiot 143"), /* units/pg.udb:3200 */ tr("PSW 234/2-8r"), /* maps/pg/map16:7 */ tr("Valence"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Saarbrucken"), /* units/pg.udb:9613 */ tr("US P51D Mustg"), /* maps/pg/map13:7 */ tr("Termini"), /* units/pg.udb:7653 */ tr("ST ISU-152 AT"), /* maps/pg/map21:7 */ tr("Elbassen"), /* units/pg.udb:6561 */ tr("ST La-3"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Okehampton"), /* units/pg.udb:3564 */ tr("AF 37mm ATG"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Maikop"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Vienna"), /* maps/pg/map33:7 */ tr("Simontornya"), /* scenarios/pg/Norway:2 */ tr("NORWAY"), /* units/pg.udb:7177 */ tr("ST T-34/43"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Donets"), /* maps/pg/map03:7 */ tr("City"), /* units/pg.udb:10649 */ tr("US M26 "), /* maps/pg/map15:7 */ tr("Thiberville"), /* maps/pg/map01:7 maps/pg/map02:7 */ tr("Bzura River"), /* campaigns/PG:217 maps/pg/map07:7 maps/pg/map09:7 */ tr("El Alamein"), /* maps/pg/map12:7 */ tr("British Camp"), /* maps/pg/map21:7 */ tr("Athens"), /* maps/pg/map17:7 */ tr("Aarshot"), /* nations/pg.ndb:28 */ tr("Finnland"), /* maps/pg/map13:7 maps/pg/map21:7 */ tr("Taranto"), /* maps/pg/map17:7 */ tr("Monschau"), /* units/pg.udb:5441 */ tr("GB Comet"), /* maps/pg/map04:7 maps/pg/map17:7 */ tr("Namur"), /* units/pg.udb:4712 */ tr("GB Hur IID"), /* units/pg.udb:540 */ tr("ME210c"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Rzhev"), /* scenarios/pg/Sealion43:2 */ tr("SEALION (43)"), /* units/pg.udb:3340 */ tr("PO PZL P37b"), /* maps/pg/map13:7 */ tr("Sapry"), /* maps/pg/map36:7 */ tr("Wheaton"), /* units/pg.udb:8773 */ tr("IT AB-40"), /* maps/pg/map30:7 */ tr("Prokhorovka"), /* units/pg.udb:736 */ tr("Ju188a"), /* maps/pg.tdb:12 */ tr("Raining(Dry)"), /* maps/pg/map16:7 */ tr("Carpentras"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Kirov"), /* maps/pg/map03:7 */ tr("Arendal"), /* units/pg.udb:11153 */ tr("US 8 Inches Gun"), /* units/pg.udb:6001 */ tr("GB Bren Ca"), /* campaigns/PG:648 */ tr("We have only achieved a draw with the Allies."), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Kaluga"), /* maps/pg/map36:7 */ tr("Crestwood"), /* units/pg.udb:22 units/pg.udb:51 */ tr("Naval"), /* maps/pg/map21:7 */ tr("Sarajevo"), /* units/pg.udb:1296 */ tr("PzIIIE"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Cardigan"), /* maps/pg/map14:7 */ tr("Civitavecchia"), /* units/pg.udb:652 */ tr("JU87B"), /* maps/pg/map26:7 */ tr("Yukharina"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Ilinka"), /* units/pg.udb:904 */ tr("Ju52g5e"), /* nations/pg.ndb:80 */ tr("Spain"), /* campaigns/PG:370 */ tr("The russian offensive was too strong to overcome which forced us to retreat to the limits of the Reich."), /* maps/pg/map17:7 */ tr("Clervaux"), /* units/pg.udb:61 */ tr("Infantry"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Lida"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Baskunchak"), /* maps/pg/map15:7 maps/pg/map18:7 */ tr("Carentan"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Norwich"), /* maps/pg/map29:7 */ tr("Svatovo"), /* units/pg.udb:5721 */ tr("GB Archer"), /* maps/pg/map14:7 */ tr("Avezzano"), /* units/pg.udb:5553 */ tr("GB M5 Stuart"), /* maps/pg/map15:7 */ tr("Livarot"), /* units/pg.udb:6085 */ tr("GB HW Inf 39"), /* maps/pg/map05:7 */ tr("Chateauroux"), /* campaigns/PG:467 */ tr("You sustained long enough to allow High Command to build up defenses in the rear."), /* maps/pg/map13:7 */ tr("Gela"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Konigsberg"), /* units/pg.udb:8941 */ tr("IT Sem M-42M"), /* units/pg.udb:11517 */ tr("FFR M8 LAC"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Brest"), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("Benghazi"), /* units/pg.udb:10369 */ tr("US M4A3(76)W"), /* maps/pg/map13:7 */ tr("Pachwo"), /* units/pg.udb:10929 */ tr("US Eng 43"), /* maps/pg/map05:7 maps/pg/map15:7 maps/pg/map18:7 */ tr("Argentan"), /* maps/pg/map29:7 */ tr("Debaltsevo"), /* maps/pg/map17:7 */ tr("Bitburg"), /* maps/pg/map04:7 */ tr("Sedan"), /* units/pg.udb:4488 */ tr("LC PZLP24"), /* maps/pg/map03:7 */ tr("Trondheim"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Augsburg"), /* units/pg.udb:5525 */ tr("GB Sh Firefly"), /* maps/pg/map14:7 */ tr("Terracina"), /* maps/pg/map08:7 maps/pg/map16:7 */ tr("German Camp"), /* maps/pg/map29:7 */ tr("Krasnopavlovka"), /* maps/pg/map14:7 */ tr("Isernia"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Derbent"), /* maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Radom"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Brandenburg"), /* maps/pg/map15:7 */ tr("Port Facility"), /* units/pg.udb:10117 */ tr("US M3 "), /* units/pg.udb:9249 */ tr("IT 75mm Gun"), /* maps/pg/map29:7 */ tr("Vorskla River"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Weiland"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Puttusk"), /* maps/pg/map08:7 */ tr("Jerusalem"), /* maps/pg/map18:7 */ tr("Chateau Gontier"), /* units/pg.udb:4068 */ tr("FR 25mm ATG"), /* campaigns/PG:406 */ tr("22nd January 1944"), /* units/pg.udb:11237 */ tr("US 90mm AD"), /* maps/pg/map18:7 */ tr("Fontainebleau"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Munster"), /* nations/pg.ndb:32 */ tr("France"), /* maps/pg/map21:7 */ tr("Sisak"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Astrakhan"), /* nations/pg.ndb:88 */ tr("Sweden"), /* units/pg.udb:43 */ tr("Towed"), /* maps/pg/map14:7 */ tr("Turdino River"), /* units/pg.udb:8017 */ tr("AF Carrier"), /* campaigns/PG:477 */ tr("Herr General, your outstanding performance left a lasting impression to the Allied leader, enabling our Administration to sign a favourable peace treaty. Combined with your earlier victory over the Soviet Union, you have ended the war, and are herewith promoted to Generalfeldmarschall."), /* maps/pg/map18:7 */ tr("Pontoise"), /* maps/pg/map13:7 maps/pg/map21:7 */ tr("Reggio"), /* maps/pg/map19:7 */ tr("Oosterbeek"), /* units/pg.udb:7317 */ tr("ST SU-85"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Stargar"), /* units/pg.udb:1716 */ tr("StuGIIIb"), /* maps/pg/map29:7 */ tr("Slavyansk"), /* units/pg.udb:79 */ tr("Air-Defense"), /* maps/pg/map03:7 */ tr("Halden"), /* maps/pg/map04:7 */ tr("St. Quentin"), /* maps/pg/map19:7 */ tr("Uden"), /* maps/pg/map19:7 */ tr("Nijmegen"), /* maps/pg/map22:7 */ tr("Neapolis"), /* campaigns/PG:329 */ tr("In this situation, High Command offers you to contribute your experience in another theater, Italy.##Herr General, do you want to continue fighting in Russia, or do you like to be transferred to Anzio?"), /* maps/pg/map13:7 */ tr("Belice River"), /* maps/pg/map13:7 */ tr("Marsala"), /* maps/pg/map12:7 */ tr("Biskra"), /* maps/pg/map08:7 */ tr("Amman"), /* maps/pg/map21:7 */ tr("Pula"), /* maps/pg/map17:7 */ tr("Laroche"), /* campaigns/PG:85 */ tr("Balkans"), /* maps/pg/map15:7 */ tr("Touques River"), /* maps/pg/map16:7 */ tr("Asse River"), /* maps/pg/map12:7 */ tr("Aflou"), /* maps/pg/map21:7 */ tr("Pehcevo"), /* units/pg.udb:4600 */ tr("FR HFII"), /* scenarios/pg/Anvil:365 scenarios/pg/Anzio:378 scenarios/pg/Ardennes:549 scenarios/pg/Balkans:599 ... */ tr("Axis Minor Victory"), /* maps/pg/map36:7 */ tr("Anacostia River"), /* maps/pg/map33:7 */ tr("Kisber"), /* maps/pg/map29:7 */ tr("Kharkov"), /* maps/pg/map36:7 */ tr("King George"), /* units/pg.udb:6841 */ tr("ST Il-2M3"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Marjupol"), /* maps/pg/map05:7 */ tr("Chalons"), /* campaigns/PG:168 */ tr("After your stunning victory over Soviet resistence, we expect Russia's reserves of men an material to be depleted."), /* maps/pg/map30:7 */ tr("Sumy"), /* units/pg.udb:4124 */ tr("FR 75mm ATG"), /* maps/pg/map24:7 */ tr("Talnoye"), /* scenarios/pg/Cobra:2 */ tr("COBRA"), /* scenarios/pg/Kharkov:3 */ tr("February 11, 1943: The Germans race to capture Kharkov and crush the Soviet winter offensive."), /* maps/pg/map15:7 */ tr("Arromanches"), /* units/pg.udb:9445 */ tr("Rumanian Inf"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Volga River"), /* scenarios/pg/Byelorussia:3 */ tr("June 22, 1944: The Soviet thrust to destroy Army Group Center."), /* maps/pg/map04:7 */ tr("Leie"), /* campaigns/PG:429 */ tr("In Normandy, the expected landings of Allied forces have commenced. The is the biggest invasion even seen by man, and you must stop it. You have to hold all your objectives to inflict a defeat to the Allied operations."), /* units/pg.udb:3844 */ tr("FR Ch Lr H35"), /* maps/pg/map21:7 */ tr("Trun"), /* campaigns/PG:169 */ tr("After your victory over Soviet resistence, we expect Russia's reserves of men an material to be depleted."), /* campaigns/PG:78 */ tr("Congratulations for conquering France and for bringing an overwhelming victory to the Reich. France has surrendered, and its dependencies will be put under German protectorate."), /* units/pg.udb:7905 */ tr("ST 76mm ATG"), /* campaigns/PG:105 */ tr("6th April 1941"), /* units/pg.udb:960 */ tr("PzIA"), /* maps/pg/map17:7 */ tr("Neufchateau"), /* units/pg.udb:6953 */ tr("ST Z25mm SPAA"), /* units/pg.udb:6365 */ tr("GB 20mm SPAA"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Liverpool"), /* maps/pg/map17:7 */ tr("Arlon"), /* campaigns/PG:35 */ tr("Congratulations, you have won the war against Poland, Herr General! You besieged and captured all objectives before the Soviet Union was able to catch up. Your forces have been diverted to the Western border to guard against French and English aggressions."), /* units/pg.udb:3788 */ tr("FR Bloch 174"), /* maps/pg/map33:7 */ tr("Szentendre"), /* units/pg.udb:2556 */ tr("SPW 251/1"), /* maps/pg.tdb:2336 */ tr("Harbor"), /* units/pg.udb:31 */ tr("Halftracked"), /* units/pg.udb:9221 */ tr("IT Bersglri "), /* units/pg.udb:7065 */ tr("ST BT-7"), /* maps/pg/map13:7 maps/pg/map14:7 */ tr("Garigliano River"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Podolsk"), /* maps/pg/map21:7 */ tr("Levadnia"), /* maps/pg/map14:7 */ tr("Terni"), /* maps/pg/map26:7 */ tr("Kadykovka"), /* maps/pg/map19:7 */ tr("Hussen"), /* units/pg.udb:9277 */ tr("IT 105mm Gun"), /* maps/pg/map14:7 */ tr("Turano River"), /* units/pg.udb:64 */ tr("Tank"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Weser River"), /* units/pg.udb:7709 */ tr("ST Truck"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Leipzig"), /* scenarios/pg/Kursk:2 */ tr("KURSK"), /* maps/pg/map36:7 */ tr("Zekiah Swamp Run"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Armavir"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Vitebsk"), /* maps/pg/map07:7 maps/pg/map09:7 maps/pg/map22:7 maps/pg/map36:7 */ tr("Alexandria"), /* maps/pg/map15:7 */ tr("Granville"), /* maps/pg/map26:7 */ tr("Cherkez Kermen"), /* maps/pg/map04:7 */ tr("Sambre"), /* scenarios/pg/LowCountries:2 */ tr("LOW COUNTRIES"), /* maps/pg/map15:7 maps/pg/map18:7 */ tr("Avranches"), /* campaigns/PG:614 */ tr("This is the last stand. You have to fight against tremendous odds at either side of the front. Hold Berlin at any rate. Losing is not an option."), /* units/pg.udb:91 */ tr("Level Bomber"), /* units/pg.udb:6309 */ tr("GB 6 Inches Gun"), /* units/pg.udb:371 */ tr("HE162"), /* units/pg.udb:6337 */ tr("GB 7.2 Inches Gun"), /* units/pg.udb:2976 */ tr("3.7 FlaK36"), /* maps/pg/map21:7 */ tr("Agrinion"), /* units/pg.udb:4516 */ tr("LC F-DXX1"), /* maps/pg/map19:7 */ tr("Driel"), /* units/pg.udb:8549 */ tr("IT Re2005/S"), /* maps/pg/map21:7 */ tr("Bar"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Mozhaysk"), /* maps/pg/map33:7 */ tr("Budaors"), /* campaigns/PG:306 */ tr("With Kharkov retaken, and the Soviet strike force terminally beaten, we were able to thrust into the steppe directly towards Moscow."), /* units/pg.udb:4740 */ tr("GB Spit VB"), /* units/pg.udb:9193 */ tr("IT Infantry"), /* units/pg.udb:7681 */ tr("ST Para"), /* units/pg.udb:1492 */ tr("PzIVG"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Cardiff"), /* campaigns/PG:325 */ tr("While you were running against stiff resistence, the Soviets launched a counter-attack against the Germain pocket around Orel. Therefore, we had to retreat and divert divisions to aid against this massive attack. We have lost the initiative on the Eastern front and cannot allow for another attack in this year."), /* units/pg.udb:5217 */ tr("GB Crdr I"), /* units/pg.udb:5273 */ tr("GB Crdr III"), /* campaigns/PG:647 */ tr("You have totally failed us, Commander! The german reich suffered a major defeat!"), /* units/pg.udb:1128 */ tr("Lynx"), /* maps/pg/map36:7 */ tr("Prince Frederick"), /* maps/pg/map17:7 */ tr("Sambre River"), /* maps/pg/map21:7 */ tr("Kragujevac"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Aleksin"), /* units/pg.udb:2584 */ tr("PSW 222/4r"), /* maps/pg/map07:7 */ tr("Mersa Matruh"), /* units/pg.udb:1324 */ tr("PzIIIG"), /* maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Rhine River"), /* units/pg.udb:70 */ tr("Anti-Tank"), /* campaigns/PG:246 */ tr("25th June 1942"), /* nations/pg.ndb:16 */ tr("Bulgaria"), /* maps/pg/map16:7 */ tr("Arc River"), /* units/pg.udb:100 */ tr("Capital Ship"), /* maps/pg/map19:7 */ tr("Oss"), /* units/pg.udb:8689 */ tr("IT CA309"), /* campaigns/PG:164 */ tr("23rd August 1941"), /* maps/pg/map15:7 */ tr("Selune River"), /* maps/pg/map29:7 */ tr("Pereshchepino"), /* units/pg.udb:484 */ tr("BF110e"), /* scenarios/pg/D-Day:3 */ tr("June 6, 1944: Allies launch Operation Overlord... the Second Front."), /* maps/pg/map12:7 */ tr("Medjerda River"), /* scenarios/pg/Berlin:2 */ tr("BERLIN"), /* maps/pg/map36:7 */ tr("Chillum"), /* campaigns/PG:165 */ tr("There has risen an opportunity to terminally cripple Russian forces. Around Kiev we have encountered a large amount of Russian troops. Using blitzkrieg tactics to their fullest extent, you are ordered to pocket and annihilate Soviet resistence in Kiev and surrounding towns. In order to continue our advance towards moscow, it is imperative that you capture all of your objective by no later than the 20th of September."), /* campaigns/PG:211 */ tr("Not capturing Moscow in time gave the Russian adversaries plenty of opportunity to mobilise troops from Siberia and perform a counterattack. While we managed to establish a stable front line again, we could not attempt another advance in 1941."), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("Mechili"), /* campaigns/PG:570 */ tr("The British and American forces have begun invading Sicily, our ill-defended entrance gate to Southern Europe. Your orders are to hold all objectives. If this is not feasible, hold at least two objectives to slow down the Allied advance."), /* maps/pg/map18:7 */ tr("Chaumont"), /* maps/pg/map03:7 */ tr("Andalsnes"), /* units/pg.udb:9025 */ tr("IT M14/41"), /* maps/pg/map17:7 */ tr("Ourthe River"), /* maps/pg/map16:7 */ tr("Barcellonette"), /* scenarios/pg/Ardennes:2 */ tr("ARDENNES"), /* units/pg.udb:6169 */ tr("GB 2 Pdr ATG"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Birmingham"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Stoke"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Amsterdam"), /* maps/pg/map12:7 */ tr("Djelfa"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Merthyr"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Buelgorod"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map30:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Orel"), /* maps/pg/map13:7 */ tr("Corigliano"), /* campaigns/PG:320 */ tr("Since the front lines have stabilised, there is a pocket of Russian defenders around Kursk. Our strategy is to break through Soviet defenses from the North and South, and cut off and terminate all adversaries. Be aware that the Soviets have no doubt about our intentions, and have prepared their defenses well. You must take Kursk at any rate. Taking all other objectives by no later than the 24th of July will enable High Command to prepare for another assault on Moscow in 1943."), /* maps/pg/map33:7 */ tr("Pusztaszabolcs"), /* maps/pg/map15:7 maps/pg/map18:7 */ tr("Orne River"), /* campaigns/PG:532 */ tr("Excellent performance, Herr General! With the English expelled from Egypt, we could successfully prepare an invasion of England."), /* units/pg.udb:11573 */ tr("FPO M5 Stuart"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Nuremberg"), /* maps/pg/map21:7 */ tr("Larissa"), /* units/pg.udb:5301 */ tr("GB Crom IV"), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("Escarpment"), /* campaigns/PG:627 */ tr("Pushing back the Russian onslaught to the pre-war borders of the Reich gave us, combined with your earlier victory over England, a strong position to negotiate a favourable peace treaty."), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Bremerhaven"), /* maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 maps/pg/map10:7 maps/pg/map28:7 maps/pg.tdb:2012 ... */ tr("Desert"), /* maps/pg/map04:7 */ tr("Escout"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Mannheim"), /* maps/pg/map17:7 */ tr("Our River"), /* units/pg.udb:3144 */ tr("40 LuftW FJ"), /* units/pg.udb:6141 */ tr("GB Para 39"), /* units/pg.udb:400 */ tr("DO335"), /* units/pg.udb:6113 */ tr("GB Bridge Eng"), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("Mersa Brega"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Ryazan"), /* maps/pg/map08:7 */ tr("Al Kuwait"), /* campaigns/PG:553 */ tr("8th November 1942"), /* campaigns/PG:152 */ tr("We take the early route towards Moscow."), /* maps/pg/map13:7 */ tr("Alcamo"), /* maps/pg/map29:7 */ tr("Dnepropetrovsk"), /* campaigns/PG:303 */ tr("As a result of their winter offensive, Russian troops are spread thin in the area of Kharkov. This is an excellent opportunity to start a counter-attack, annihilate the Soviet strike forces, and retake Kharkov. If you take Kharkov and all other objectives by at least the 4th of March, we may continue our advance in 1943. To undertake the necessary preparations for an attack of Moscow, it is imperative that you finish your mission much earlier."), /* units/pg.udb:11097 */ tr("US 105mm Gun"), /* units/pg.udb:10229 */ tr("US M4A3"), /* maps/pg/map36:7 */ tr("Tacoma Park"), /* scenarios/pg/Sealion43:3 */ tr("June 15, 1943: Germany attempts to finish off England."), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Bristol"), /* maps/pg/map33:7 */ tr("Aba"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Vilna"), /* scenarios/pg/Washington:2 */ tr("WASHINGTON"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Voronezh"), /* maps/pg/map18:7 */ tr("Bolbec"), /* maps/pg/map29:7 */ tr("Alekseyevka"), /* units/pg.udb:6449 */ tr("GB Para 43"), /* maps/pg/map04:7 */ tr("Ypres"), /* units/pg.udb:6533 */ tr("ST MiG-3"), /* maps/pg/map30:7 */ tr("Psel"), /* scenarios/pg/Kiev:2 */ tr("KIEV"), /* units/pg.udb:7345 */ tr("ST SU-122"), /* units/pg.udb:3536 */ tr("GB HW Inf 43"), /* units/pg.udb:2948 */ tr("2 FlaK38 (4)"), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("Sidi Barrani"), /* maps/pg/map17:7 */ tr("Marche-en-Famenne"), /* nations/pg.ndb:52 */ tr("Turkey"), /* maps/pg/map24:7 */ tr("Chernigov"), /* maps/pg.tdb:36 */ tr("Fair(Ice)"), /* campaigns/PG:619 */ tr("The former mighty Reich is reduced to rubbles. No authority is left to even sign a peace treaty. Germany has ceased to exist."), /* campaigns/PG:574 */ tr("The total defeat on the Southern front made Italy surrender to the Allies."), /* maps/pg/map26:7 */ tr("Omega"), /* maps/pg/map13:7 maps/pg/map21:7 */ tr("Messina"), /* campaigns/PG:275 campaigns/PG:418 */ tr("D-Day"), /* units/pg.udb:6785 */ tr("ST PE-2"), /* units/pg.udb:11853 */ tr("Strongpoint"), /* campaigns/PG:407 */ tr("The Allies have fought up all their way from Sicily to the center of Italy. While we halted their advance at the Gustav line, the Allies performed a massive landing operation at the beachhead of Anzio-Nettuno. To prevent detriment to the Reich, it is imperative that you fend off this massive onslaught at all costs. You have to hold at least Rome and two other objectives to turn the battle into a more favourable direction."), /* units/pg.udb:1044 */ tr("PzIID"), /* units/pg.udb:8801 */ tr("IT AB-41"), /* maps/pg/map13:7 */ tr("San Stefano"), /* maps/pg/map14:7 */ tr("Viterbo"), /* maps/pg/map20:7 maps/pg/map21:7 maps/pg/map33:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Danube River"), /* campaigns/PG:83 */ tr("Now there are two front lines to take care of. Herr General, which theater do you want to participate in?"), /* maps/pg/map02:7 maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 ... */ tr("Bug River"), /* maps/pg/map14:7 */ tr("Orvieto"), /* maps/pg/map21:7 */ tr("Sofia"), /* maps/pg/map05:7 maps/pg/map18:7 */ tr("Tours"), /* maps/pg/map15:7 */ tr("St. Mere Eglise"), /* maps/pg/map15:7 */ tr("Courselles"), /* maps/pg/map29:7 */ tr("Pavlograd"), /* maps/pg.tdb:24 */ tr("Overcast(Mud)"), /* units/pg.udb:13 */ tr("Soft"), /* units/pg.udb:112 */ tr("Sea Transport"), /* maps/pg/map02:7 maps/pg/map03:7 maps/pg/map07:7 maps/pg/map09:7 maps/pg/map14:7 maps/pg/map16:7 ... */ tr("River"), /* maps/pg/map29:7 */ tr("Vasilovka"), /* maps/pg/map03:7 */ tr("Bjerkvik"), /* campaigns/PG:247 */ tr("Your next order is to lead the advance towards the industrial center of Stalingrad. Taking Stalingrad will cripple Russia's war industry, and cut supply lines over the Volga river. Thus, you must capture Stalingrad and all other objectives by the 22nd of November at the latest. Keep in mind that if we want to get another chance to advance towards Moscow this year, you have to finish your mission before October. Do not underestimate the vast distances of the steppe, and the supply shortage resulting thereof."), /* campaigns/PG:230 */ tr("We now set our sights on Army Group South which has besieged the Black Sea port of Sevastopol for nearly one year. The time is ripe for an eventual assault on Sevastopol, and you are ordered to conduct it. You have to force your way through the town of Sevastopol and capture all objectives by no later than the 23rd of June. After the Moscow desaster last year, we cannot allow for another defeat."), /* scenarios/pg/Husky:2 */ tr("HUSKY"), /* maps/pg/map17:7 */ tr("Huy"), /* scenarios/pg/Berlin:3 */ tr("April 1, 1945: The Last Stand."), /* campaigns/PG:638 */ tr("You bravely fended off the Allied onslaught from the Reich's limits. Combined with your earlier victory over Russia allowed us to return to the pre-war status-quo in the West."), /* maps/pg/map29:7 */ tr("Merla River"), /* units/pg.udb:11013 */ tr("US 57mm ATG"), /* maps/pg/map36:7 */ tr("Brookland"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Taunton"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Blagdernoe"), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("Berta"), /* units/pg.udb:6757 */ tr("ST Il-4"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Budweis"), /* maps/pg/map13:7 maps/pg/map14:7 */ tr("Benevento"), /* units/pg.udb:6393 */ tr("GB 40mm AD"), /* units/pg.udb:4236 */ tr("FR 40mm AD"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Mersey"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Kimry"), /* units/pg.udb:1772 */ tr("StuGIIIF/8"), /* units/pg.udb:2024 */ tr("JagdPanther"), /* units/pg.udb:5833 */ tr("GB AEC I"), /* maps/pg/map36:7 */ tr("Piscataway Creek"), /* maps/pg/map15:7 */ tr("Vire"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Kislovolsk"), /* units/pg.udb:11909 */ tr("Nebelwerfer"), /* campaigns/PG:517 */ tr("Your glorious advance along the North African coast has expelled the English forces out of Egypt, and allowed our troops to cross the Suez canal."), /* maps/pg/map04:7 */ tr("Mastricht"), /* campaigns/PG:573 */ tr("You managed to score a victory. Yet, our former Ally, the Italians have surrendered, thus making your efforts crumble in vain."), /* maps/pg/map18:7 */ tr("Vernon"), /* nations/pg.ndb:24 */ tr("Denmark"), /* maps/pg/map17:7 */ tr("Vianden"), /* units/pg.udb:2192 */ tr("Nashorn"), /* campaigns/PG:94 */ tr("Your brave efforts lead to the capturing of all Southern England. Unfortunately, bad weather and interference by the strong British fleet from the unattacked North have wreaked havoc on our supply lines. Thus, we were forced to retract all troops back to the continent."), /* scenarios/pg/Warsaw:3 */ tr("September 10, 1939: The Germans must capture Warsaw and end Polish resistance before the Allies react. "), /* scenarios/pg/Budapest:3 */ tr("March 6, 1945: Germany's last offensive."), /* maps/pg/map36:7 */ tr("Lexington Park"), /* units/pg.udb:10481 */ tr("US M10 "), /* nations/pg.ndb:92 */ tr("Switzerland"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Reichenbach"), /* maps/pg/map18:7 */ tr("Vitre"), /* maps/pg/map05:7 */ tr("Saumur"), /* maps/pg/map14:7 */ tr("Rapido River"), /* maps/pg/map05:7 */ tr("Mantes"), /* campaigns/PG:580 */ tr("Staying in Italy"), /* units/pg.udb:9109 */ tr("IT 90mm Breda"), /* units/pg.udb:7513 */ tr("ST KV-85"), /* maps/pg/map29:7 */ tr("Gorlovka"), /* maps/pg/map21:7 */ tr("Florina"), /* units/pg.udb:6589 */ tr("ST YaK-9M"), /* maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Posen"), /* maps/pg/map15:7 */ tr("Thury Harcourt"), /* units/pg.udb:1520 */ tr("PzIVH"), /* units/pg.udb:10509 */ tr("US M12 GMC"), /* scenarios/pg/SealionPlus:3 */ tr("September 1, 1940: With Gibraltar taken the Italian Fleet aids the invasion of England."), /* campaigns/PG:580 maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Moscow"), /* campaigns/PG:558 */ tr("Holding the key towns of Tunesia slowed down the advance of the Americans. However, we could not sustain the pressure, and thus were forced to rectract the Africa Corps back to Europe."), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Wiesbaden"), /* units/pg.udb:6617 */ tr("ST YaK-1M"), /* maps/pg/map01:7 */ tr("Rodomsko"), /* scenarios/pg/BerlinWest:3 */ tr("April 1, 1945: Western Allies invade Germany."), /* nations/pg.ndb:64 */ tr("Norway"), /* units/pg.udb:1884 */ tr("Jagdpanzer 38"), /* maps/pg/map23:7 maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map32:7 maps/pg/map37:7 ... */ tr("Smolensk"), /* units/pg.udb:1968 */ tr("Jagdpz IV/48"), /* nations/pg.ndb:100 */ tr("Yugoslavia"), /* maps/pg/map29:7 */ tr("Volchansk"), /* maps/pg/map15:7 */ tr("Lessay"), /* units/pg.udb:10565 */ tr("US M16 MGMC"), /* units/pg.udb:8829 */ tr("IT Sem L-47"), /* units/pg.udb:2444 */ tr("Ostwind I"), /* maps/pg/map15:7 maps/pg/map18:7 */ tr("Coutances"), /* units/pg.udb:2108 */ tr("Marder II"), /* campaigns/PG:3 */ tr("Michael Speck, Leo Savernik"), /* campaigns/PG:449 */ tr("Contrary to what the odds have made us expect, you drove the Allied attack back into the sea. Whereas you freed France again from enemy influence, the Allied increased their bombing raids against vital German war industries as well as our supply lines in France. Not being able to reliably deliver reinforcements and material to France, the Allies established another beachhead, and drove our forces back to the Rhine."), /* maps/pg/map22:7 */ tr("Herakleion"), /* maps/pg/map36:7 */ tr("Bethesda"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Lubeck"), /* maps/pg/map14:7 */ tr("Sangro River"), /* maps/pg/map14:7 */ tr("Avellino"), /* units/pg.udb:4096 */ tr("FR 47mm ATG"), /* maps/pg/map12:7 */ tr("Sousse"), /* maps/pg/map04:7 maps/pg/map05:7 maps/pg/map18:7 */ tr("Amiens"), /* scenarios/pg/Moscow43:3 */ tr("October 9, 1943: Germany's final chance to end the war in the east."), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Hamburg"), /* maps/pg/map16:7 */ tr("Aspres"), /* maps/pg/map15:7 maps/pg/map18:7 */ tr("Valognes"), /* maps/pg/map36:7 */ tr("Capitol Hill"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Postavy"), /* maps/pg/map18:7 */ tr("Etretat"), /* maps/pg/map05:7 */ tr("Beauvais"), /* maps/pg/map13:7 */ tr("Trapani"), /* campaigns/PG:331 maps/pg/map13:7 */ tr("Anzio"), /* maps/pg/map13:7 maps/pg/map14:7 */ tr("Salerno"), /* maps/pg/map02:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 maps/pg/map07:7 maps/pg/map09:7 ... */ tr("Fortification"), /* maps/pg/map03:7 */ tr("Aalborg"), /* maps/pg/map14:7 */ tr("Rome"), /* campaigns/PG:387 */ tr("15th June 1943"), /* campaigns/PG:149 */ tr("High Command was impressed to such an extent by your excellent skills that we decided to delegate the decision of a critical strategic question to you.##General staff is divided into two camps. The first is proposing the opportunity to pocket and destroy a large amount of Soviet forces near Kiev before we proceed on our march towards Moscow. The second is proposing to leave aside Kiev and directly head towards Moscow before Autumn weather will slow down our advance.##Herr General, which strategy shall we pursue?"), /* maps/pg/map24:7 */ tr("Malin"), /* maps/pg/map36:7 */ tr("Annapolis"), /* maps/pg/map16:7 */ tr("Orange"), /* scenarios/pg/Sealion40:3 */ tr("September 1, 1940: Germany now sets its sights on England"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Borisoglebsk"), /* maps/pg/map05:7 */ tr("Montargis"), /* maps/pg/map15:7 */ tr("St. Sauveur-le-V."), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Yeisk"), /* maps/pg/map15:7 maps/pg/map18:7 */ tr("Pontorson"), /* maps/pg/map14:7 */ tr("Teramo"), /* campaigns/PG:324 */ tr("You were able to take Kursk, but the Soviets launched a counter-attack against the Germain pocket around Orel. Therefore, we had to retreat and divert divisions to aid against this massive attack. We have lost the initiative on the Eastern front and cannot allow for another attack in this year."), /* campaigns/PG:308 */ tr("Your failure at this mission forced the Reich to take back the front lines to compensate for German casualties faced in the battle."), /* maps/pg/map12:7 */ tr("Tebessa"), /* maps/pg/map14:7 */ tr("Trigno River"), /* maps/pg/map01:7 */ tr("Kutno"), /* units/pg.udb:3424 */ tr("PO Infantry"), /* maps/pg/map03:7 */ tr("Bodo"), /* scenarios/pg/BerlinEast:3 */ tr("April 1, 1945: Battle for survival against the Soviet Union."), /* maps/pg/map08:7 */ tr("An Najaf"), /* units/pg.udb:2640 */ tr("PSW 233/8r"), /* units/pg.udb:11629 */ tr("FPO M8 LAC"), /* maps/pg/map17:7 */ tr("Wiltz"), /* maps/pg/map36:7 */ tr("Benedict"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Coblenz"), /* scenarios/pg/Anvil:3 */ tr("Aug 6, 1944: Allies attempt to cut off Wehrmacht forces in Southern France."), /* scenarios/pg/EarlyMoscow:3 */ tr("September 8, 1941: Panzergruppe Guderian ignores Kiev and drives on Moscow."), /* units/pg.udb:145 */ tr("BF109f"), /* maps/pg/map16:7 */ tr("Isere River"), /* maps/pg/map36:7 */ tr("Upper Marlboro"), /* maps/pg/map17:7 */ tr("Blankenheim"), /* maps/pg/map36:7 */ tr("Anacostia"), /* maps/pg/map24:7 */ tr("Starodub"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Utrecht"), /* units/pg.udb:11825 */ tr("FPO 6 Inches Gun"), /* maps/pg/map17:7 */ tr("St. Hubert"), /* maps/pg.tdb:20 */ tr("Fair(Mud)"), /* campaigns/PG:645 */ tr("The german Reich has no need for incompetent untermenschen, Commander! Dismissed."), /* maps/pg/map19:7 */ tr("Helmond"), /* campaigns/PG:524 maps/pg/map24:7 */ tr("Kiev"), /* units/pg.udb:8297 */ tr("Battleship Dl"), /* units/pg.udb:3900 */ tr("FR AMC 35"), /* maps/pg/map17:7 */ tr("Ettelbruck"), /* maps/pg/map16:7 */ tr("Brignoles"), /* scenarios/pg/Stalingrad:2 */ tr("STALINGRAD"), /* maps/pg/map21:7 */ tr("Kalamai"), /* scenarios/pg/Sevastapol:2 */ tr("SEVASTOPOL"), /* maps/pg/map33:7 */ tr("Fonyod"), /* scenarios/pg/Anzio:2 */ tr("ANZIO"), /* maps/pg/map02:7 */ tr("Siedice"), /* campaigns/PG:205 */ tr("2nd October 1941"), /* units/pg.udb:8913 */ tr("IT Sem M-42"), /* maps/pg/map15:7 */ tr("Troarn"), /* units/pg.udb:5693 */ tr("GB Achilles"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Safonovo"), /* maps/pg/map19:7 */ tr("Opheusten"), /* units/pg.udb:7597 */ tr("ST ISU-122"), /* units/pg.udb:10341 */ tr("US M4A1(76)W"), /* units/pg.udb:10621 */ tr("US M24"), /* maps/pg/map26:7 */ tr("Komary"), /* campaigns/PG:613 campaigns/PG:623 campaigns/PG:633 */ tr("1st April 1945"), /* maps/pg/map24:7 */ tr("Rechitsa"), /* campaigns/PG:364 */ tr("6th March 1945"), /* maps/pg/map36:7 */ tr("Blackwater River"), /* units/pg.udb:7933 */ tr("ST 12.2cm Gun"), /* maps/pg/map36:7 */ tr("Hunting Creek"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Vyazma"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map36:7 maps/pg/map38:7 */ tr("Cambridge"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Kachalinsk"), /* scenarios/pg/Budapest:2 */ tr("BUDAPEST"), /* maps/pg/map12:7 maps/pg/map13:7 */ tr("Bizerta"), /* units/pg.udb:9753 */ tr("US B25B Mitch"), /* units/pg.udb:1744 */ tr("StuGIIIF"), /* maps/pg/map08:7 */ tr("Euphrates River"), /* maps/pg/map02:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Vistula River"), /* units/pg.udb:5889 */ tr("GB Humber SC"), /* maps/pg/map21:7 */ tr("Skopje"), /* units/pg.udb:624 */ tr("FW190f"), /* units/pg.udb:7205 */ tr("ST T-34/85"), /* maps/pg.tdb:48 */ tr("Snowing(Ice)"), /* maps/pg/map15:7 */ tr("St. Vaast-la-Haugue"), /* maps/pg/map15:7 maps/pg/map18:7 */ tr("Vire River"), /* maps/pg/map36:7 */ tr("Rockville"), /* units/pg.udb:9137 */ tr("IT 47mm ATG"), /* maps/pg/map21:7 */ tr("Babyak"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Schneidemuhl"), /* maps/pg/map21:7 */ tr("Bihal"), /* nations/pg.ndb:68 */ tr("Poland"), /* maps/pg/map10:7 maps/pg/map28:7 maps/pg/map30:7 */ tr("Don"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Bryanskoe"), /* units/pg.udb:8605 */ tr("IT Ma C202/F"), /* maps/pg/map36:7 */ tr("Riverdale"), /* campaigns/PG:388 */ tr("High Command has prepared an invasion of England this summer, and you are to lead the forces. This is the ultimate chance to knock England out of the war, and we have to succeed this time. As the English have established an alliance with the Americans, expect some US expeditionary forces aiding in the defense of England. You are ordered to take London and all other objectives by 13th of July at the latest, when strong American reinforcements are expected to arrive. In order to consolidate our defenses, you should finish your mission earlier."), /* units/pg.udb:8857 */ tr("IT Sem M-40"), /* campaigns/PG:56 */ tr("You passed with ease the battlefields our troops bravely but fruitlessly attacked in the World War. We reassembled the troops for the final assault on France, and we utilised the additional time to start preparations for the invasion of England."), /* campaigns/PG:215 */ tr("To prove your skills in another theater, High Command offers to you leadership over the Africa Corps fighting at El Alamein.##Herr General, do you wish to be transferred to Africa, or do you want to stay on the Eastern front?"), /* scenarios/pg/France:2 */ tr("FRANCE"), /* maps/pg/map14:7 */ tr("Sora"), /* units/pg.udb:10145 */ tr("US M4"), /* scenarios/pg/Anvil:2 */ tr("ANVIL"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Baranovichi"), /* maps/pg/map21:7 */ tr("Savna River"), /* maps/pg/map13:7 */ tr("Totenza"), /* maps/pg/map36:7 */ tr("Mt. Pleasant"), /* units/pg.udb:2668 */ tr("PSW 234/1-8r"), /* maps/pg/map19:7 */ tr("Elst"), /* scenarios/pg/Warsaw:2 */ tr("WARSAW"), /* campaigns/PG:500 */ tr("17th September 1944"), /* maps/pg/map16:7 */ tr("Draguigan"), /* units/pg.udb:2864 */ tr("10.5 leFH 18"), /* maps/pg/map29:7 */ tr("Krasnograd"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Halle"), /* campaigns/PG:68 */ tr("Congratulations for conquering France and for bringing an overwhelming victory to the Reich. France has surrendered, and its dependencies will be put under German protectorate. Yet it was too late to finish preparations for the invasion of England in time."), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Batumi"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Landsberg"), /* maps/pg/map36:7 */ tr("Bladensburg"), /* units/pg.udb:11181 */ tr("US 40mm AD"), /* maps/pg/map08:7 */ tr("Karak"), /* campaigns/PG:136 */ tr("Eventually, time has come for operation Barbarossa, the long-term planned invasion of Soviet Russia. You are in charge of Army Group Center, and you have to conduct the main thrust through Soviet defences and keep them running. In order to prevent the enemy from establishing a front line and mobilise reserves from the rear, you have to capture Smolensk and all other objectives before the 7th of September."), /* maps/pg/map29:7 */ tr("Proletarskiy"), /* maps/pg/map16:7 */ tr("Argens River"), /* units/pg.udb:7989 */ tr("ST 7.6cm AD"), /* maps/pg/map29:7 */ tr("Rubezhnoye"), /* maps/pg/map04:7 */ tr("St. Valery"), /* units/pg.udb:2304 */ tr("Wespe"), /* campaigns/PG:290 */ tr("Your initial capture of Moscow let arise hope that Russia would surrender. Unfortunately, fresh Siberian reserves started a counter-attack and expelled our exhausted and worn down spearheads out of the capital. While we managed to establish a stable front line again, we could not attempt another advance in 1942."), /* maps/pg/map15:7 */ tr("Cabourg"), /* maps/pg/map29:7 */ tr("Akhtyrica"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Bedford"), /* campaigns/PG:637 */ tr("Pushing back the Allied onslaught to the pre-war borders of the Reich gave us, combined with your earlier victory over Russia, a strong position to negotiate a favourable peace treaty."), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Wittenberg"), /* maps/pg/map17:7 */ tr("Demer River"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Boguchar"), /* scenarios/pg/Balkans:2 */ tr("BALKANS"), /* units/pg.udb:27 */ tr("Tracked"), /* maps/pg/map36:7 */ tr("Queenstown"), /* maps/pg/map29:7 */ tr("Lyubotin"), /* maps/pg/map05:7 maps/pg/map15:7 maps/pg/map18:7 */ tr("Caen"), /* units/pg.udb:1604 */ tr("Panther A"), /* scenarios/pg/Moscow41:3 */ tr("October 2, 1941: Can the heroes of the Motherland hold the Panzers until the winter comes?"), /* campaigns/PG:554 */ tr("Meanwhile, the Africa Corps is facing another threat from the West. This is the initial landing of US expeditionary forces in Tunesia after their declaration of war against Germany. Though unexperienced, they outnumber our troops by far, and must not be underestimated. Your order is to force the American troops from the continent, taking all objectives. As a last resort, you have to hold at least Tunis and two other objectives to make the outcome favourable to us."), /* maps/pg/map14:7 */ tr("Rieti"), /* maps/pg/map05:7 maps/pg/map18:7 */ tr("Laval"), /* units/pg.udb:4628 */ tr("GB Hur I"), /* units/pg.udb:5077 */ tr("GB C-47"), /* campaigns/PG:348 */ tr("Thanks to your great achievements, the Soviet summer offensive has been halted. Unfortunately, much pressure has accumulated on the Western front, so High Command decided to transfer you there to relieve the situation."), /* units/pg.udb:6505 */ tr("ST YaK-1"), /* maps/pg/map36:7 */ tr("Rappahannock River"), /* maps/pg/map05:7 */ tr("Seine"), /* scenarios/pg/Anvil:278 scenarios/pg/Anzio:308 scenarios/pg/Ardennes:470 scenarios/pg/Balkans:536 ... */ tr("Axis"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Wuppertal"), /* maps/pg/map21:7 */ tr("Turnu Severin"), /* campaigns/PG:416 */ tr("Due to your exceptional leadership skills, you are offered command over Army Group Center in Russia.##Herr General, do you want to defend the Reich against Soviet forces in Byelorussia, or fight against the upcoming invasion of France?"), /* maps/pg/map15:7 maps/pg/map18:7 */ tr("Falaise"), /* maps/pg/map29:7 */ tr("Stakhanov"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Jutovo"), /* campaigns/PG:264 */ tr("For this year, we have gained another chance to advance towards Moscow, the logistical and industrial center of Russia. It is imperative that you take Moscow and all other objectives by no later than the 28th of December before winter weather will bring our advance to a halt. However, to garrison the city against russian counterattacks, you should finish your mission several weeks earlier. This is the ultimate chance to end the war in the East."), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Horsham"), /* maps/pg/map21:7 */ tr("Thessaloniki"), /* maps/pg/map21:7 */ tr("Mostar"), /* maps/pg/map17:7 */ tr("St. Vith"), /* maps/pg/map19:7 */ tr("St. Anthonis"), /* units/pg.udb:2276 */ tr("sIG 38(t)M"), /* scenarios/pg/Anzio:3 */ tr("Jan 22, 1944: German troops attack the Anzio Beachhead while attempting to maintain the Gustav Line."), /* maps/pg/map14:7 */ tr("Anzio-Nettuno"), /* campaigns/PG:286 */ tr("We have now another chance to advance towards Moscow and end the war in the East. However, the Soviet defenders are much better prepared this time. Therefore, it is imperative that you capture Moscow and a multitude of other objectives by the 28th of December at the latest. However, to make the Russians actually surrender, it is necessary to finish your mission several weeks earlier."), /* scenarios/pg/Moscow43:2 */ tr("MOSCOW (43)"), /* units/pg.udb:7261 */ tr("ST T-60"), /* maps/pg/map16:7 */ tr("Erteux River"), /* units/pg.udb:10901 */ tr("US Eng 41"), /* maps/pg/map36:7 */ tr("Severn River"), /* maps/pg/map14:7 */ tr("L'Aquila"), /* nations/pg.ndb:96 */ tr("Great Britain"), /* maps/pg/map36:7 */ tr("Glen Burnie"), /* units/pg.udb:8661 */ tr("IT BA65"), /* units/pg.udb:11209 */ tr("US 3 Inches AD"), /* units/pg.udb:10845 */ tr("US Para 43"), /* campaigns/PG:484 */ tr("We have entrenched ourselves at the Siegfried line and have observed Allied spearheads to slow down considerably. Thus, we prepared a strike force for a counter-attack, called operation Wacht am Rhein, in an attempt to precipitate a decision in the West. If you capture all objectives until the 31st of December, we are in a strong position to negotiate a peace treaty."), /* scenarios/pg/NorthAfrica:3 */ tr("March 31, 1941: Axis attempts to seize Egypt and the Suez. Can the Desert Fox be stopped?"), /* campaigns/PG:53 */ tr("Now it is the time to make the French and English forces pay for their declarations of war. In an audacious two-pronged attack, your Northern forces will break through Liege, Brussels, Maubeuge, while your Southern forces will force their way through the rough Ardennes forests and take by surprise the northernmost outpost of the Maginot-line, Sedan. Both forces are bound to pass the battlefields of the World War and capture all objectives by the 8th of June. If you capture your objectives much earlier, this could give us a chance to prepare an invasion of England this year."), /* maps/pg/map16:7 */ tr("Briancon"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Worcester"), /* campaigns/PG:434 */ tr("Your troops were outnumbered on any scale, enabling the Allies to establish and extend their beachheads in Normandy."), /* campaigns/PG:565 */ tr("Husky"), /* units/pg.udb:3480 */ tr("AF 75mm Gun"), /* maps/pg/map24:7 */ tr("Korosten"), /* maps/pg/map16:7 */ tr("Gard River"), /* maps/pg/map14:7 */ tr("Pescara"), /* units/pg.udb:988 */ tr("PzIB"), /* maps/pg/map17:7 */ tr("Martelange"), /* campaigns/PG:466 */ tr("This is impressing! While General Staff internally knew that the order was infeasible given the scarce resources available, you managed to achieve the impossible and drove the Allied army back into the sea. As a reaction, the Allied increased the bombing raids against vital German war industries and our supply lines in France, putting your victory at stake. Exploiting the resource shortage, the Allies performed another landing, and drove our forces back to the Rhine."), /* maps/pg/map21:7 */ tr("Kula"), /* maps/pg/map03:7 */ tr("Lagen River"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Tsymiank"), /* units/pg.udb:11797 */ tr("FPO 25 Pdr"), /* maps/pg/map08:7 */ tr("Damascus"), /* units/pg.udb:1268 */ tr("SdKfz 7/1"), /* maps/pg/map03:7 */ tr("Oslo"), /* maps/pg/map04:7 */ tr("Arras"), /* maps/pg/map30:7 */ tr("Dmitrovsk-Orlovskiy"), /* maps/pg/map17:7 */ tr("Mons"), /* maps/pg/map05:7 maps/pg/map18:7 */ tr("Le Mans"), /* maps/pg/map17:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Trier"), /* maps/pg/map36:7 */ tr("Colonial Beach"), /* units/pg.udb:10173 */ tr("US M4A1"), /* units/pg.udb:5497 */ tr("GB Sherman"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Winchester"), /* campaigns/PG:506 */ tr("Your inability to sustain against paratroopers allowed the Allied to exploit the Rhine crossing, and to thrust against the German heartlands without delay."), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Tikhoretsk"), /* maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Eindhoven"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Stettin"), /* maps/pg/map36:7 */ tr("Falls Church"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Zagorsk"), /* maps/pg/map13:7 */ tr("Petralia"), /* maps/pg/map04:7 */ tr("Maubeuge"), /* campaigns/PG:534 */ tr("Supply shortage and the ever increasing resistence of English troops enabled the English to take the initiative, and expel the Africa Corps from Egypt and Libya."), /* units/pg.udb:11461 */ tr("FFR M2 Hftrk"), /* campaigns/PG:543 */ tr("Adverse weather and supply conditions forced our troops out of Mesopotamia, while English couter-attacks forced us out of Egypt. We basically have to start at the beginning now."), /* maps/pg/map14:7 */ tr("Lanciano"), /* maps/pg/map05:7 maps/pg/map18:7 */ tr("Angers"), /* campaigns/PG:392 */ tr("Your brave efforts lead to the capturing of all Southern England. Unfortunately, the landing of American reinforcements and their counter-attack forced High Command to retract all troops back to the continent. You have been called to the Eastern front to prove that you are a worthy Panzer General nonetheless."), /* scenarios/pg/NorthAfrica:2 */ tr("NORTH AFRICA"), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("Cairo"), /* units/pg.udb:7821 */ tr("ST Bridge Eng"), /* maps/pg/map08:7 */ tr("Haifa"), /* maps/pg/map36:7 */ tr("Trinidad"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Czestochowa"), /* maps/pg/map29:7 */ tr("Krasnoarmeyskoye"), /* scenarios/pg/Poland:2 */ tr("POLAND"), /* maps/pg/map04:7 maps/pg/map17:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Luxembourg"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Stary Oskol"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Groningen"), /* maps/pg/map36:7 */ tr("South Arlington"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Nevel"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Berlin"), /* units/pg.udb:8381 */ tr("Z-Destroyer"), /* units/pg.udb:8101 */ tr("AF HvyCruiser"), /* maps/pg/map21:7 */ tr("Mesolongion"), /* maps/pg/map13:7 */ tr("Caltanissetta"), /* maps/pg/map16:7 */ tr("Cuneo"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Mablethorpe"), /* maps/pg/map14:7 */ tr("Frosinone"), /* maps/pg/map26:7 */ tr("Mikhaili"), /* units/pg.udb:11545 */ tr("FFR M20 LAC"), /* units/pg.udb:3592 */ tr("AF Truck"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Budennovsk"), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("Tobruk"), /* campaigns/PG:79 */ tr("Making Germany face another disaster like in the World War has forced the Reich to surrender and sign an overly unfavourable peace treaty."), /* units/pg.udb:4824 */ tr("GB Meteor III"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Chatham"), /* units/pg.udb:7793 */ tr("ST Cavalry"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Berdansk"), /* units/pg.udb:11769 */ tr("FPO 6 Pdr ATG"), /* maps/pg/map33:7 */ tr("Tet"), /* maps/pg/map19:7 */ tr("Erp"), /* campaigns/PG:122 */ tr("Resistence was much heavier than anticipated from reconnaissance flights. Thus our troops faced heavy losses, and we had to retreat to the continent. Crete will pose a latent danger for the ongoing operations on the Eastern front."), /* maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 maps/pg.tdb:2174 */ tr("Rough Desert"), /* units/pg.udb:6477 */ tr("ST I-16"), /* maps/pg/map13:7 */ tr("Gaeta"), /* maps/pg/map04:7 */ tr("Roer"), /* maps/pg/map09:7 */ tr("Marsa Matruh"), /* maps/pg/map15:7 */ tr("St. Hilaire"), /* campaigns/PG:19 */ tr("1st September 1939"), /* scenarios/pg/Barbarossa:2 */ tr("BARBAROSSA"), /* maps/pg/map22:7 */ tr("Melambes"), /* scenarios/pg/Anvil:330 scenarios/pg/Anzio:365 scenarios/pg/Ardennes:562 scenarios/pg/Balkans:603 ... */ tr("Axis Defeat"), /* maps/pg/map15:7 */ tr("Vimoutiers"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Basel"), /* maps/pg.tdb:44 */ tr("Raining(Ice)"), /* units/pg.udb:7429 */ tr("ST KV-1/41"), /* maps/pg/map01:7 maps/pg/map02:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Lodz"), /* campaigns/PG:184 */ tr("8th September 1941"), /* maps/pg/map36:7 */ tr("Georgetown"), /* maps/pg/map36:7 */ tr("Patuxent River"), /* units/pg.udb:4684 */ tr("GB Spit II"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Miskolc"), /* campaigns/PG:46 */ tr("Taking all objectives has enabled us to expel the English forces from Norway and station our fleet there. Our supply lines should be safe. You have been awarded command over troops at the Western border."), /* campaigns/PG:30 */ tr("10th September 1939"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Danzig"), /* maps/pg/map16:7 */ tr("Linee River"), /* campaigns/PG:229 */ tr("7th June 1942"), /* units/pg.udb:7093 */ tr("ST T-28M1"), /* units/pg.udb:2416 */ tr("Wirbelwind"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Tula"), /* units/pg.udb:97 */ tr("Destroyer"), /* maps/pg/map17:7 */ tr("Vielsalm"), /* maps/pg/map21:7 */ tr("Debar"), /* maps/pg/map12:7 maps/pg/map13:7 */ tr("Tunis"), /* maps/pg.tdb:1364 */ tr("Town"), /* units/pg.udb:6701 */ tr("ST YaK-9"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Tamar"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Timoshevskaya"), /* maps/pg/map03:7 */ tr("Harstad"), /* maps/pg/map36:7 */ tr("West River"), /* scenarios/pg/Moscow42:3 */ tr("October 1, 1942: Axis offensive to capture Moscow and end the war in the east."), /* units/pg.udb:67 */ tr("Recon"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Volkovysk"), /* units/pg.udb:2136 */ tr("Marder IIIH"), /* units/pg.udb:2472 */ tr("SdKfz 10/4"), /* units/pg.udb:3508 */ tr("GB Inf 43"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Moselle River"), /* units/pg.udb:6029 */ tr("GB 3 Tn Lorry"), /* units/pg.udb:7457 */ tr("ST KV-1/42"), /* units/pg.udb:4012 */ tr("FR Truck"), /* campaigns/PG:23 */ tr("Your quick breakthrough in Poland enabled High Command to make additional resources available to you."), /* maps/pg/map14:7 */ tr("Vasto"), /* maps/pg/map05:7 */ tr("Bourges"), /* maps/pg/map16:7 */ tr("Grenoble"), /* units/pg.udb:2892 */ tr("15 sFH 18"), /* maps/pg/map14:7 */ tr("Latina"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Obninsk"), /* units/pg.udb:6645 */ tr("ST YaK-7B"), /* maps/pg/map15:7 */ tr("Bayeux"), /* maps/pg/map29:7 */ tr("Orel River"), /* units/pg.udb:9865 */ tr("US B17F FF"), /* campaigns/PG:609 */ tr("Fanatic resistence kept our troops from advancing fast enough before the Americans used their secret weapon, the Atomic Bomb. Thus, heavy losses forced us to retract our troops from the American continent. Your America adventure has been a disaster, but General Staff ows you acknowledgement for your earlier victories over Western and Eastern Europe."), /* units/pg.udb:9809 */ tr("US B26C Mardr"), /* maps/pg/map29:7 */ tr("Kramatorsk"), /* maps/pg/map30:7 */ tr("Novosil"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Konstantinovsk"), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("Gazala"), /* units/pg.udb:7765 */ tr("ST Infantry"), /* nations/pg.ndb:56 */ tr("Italy"), /* maps/pg/map30:7 */ tr("Rylsk"), /* maps/pg/map12:7 */ tr("Phillippeville"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Kalinin"), /* maps/pg/map24:7 */ tr("Radomyshi"), /* maps/pg/map13:7 */ tr("Sciacca"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Kolomna"), /* units/pg.udb:11321 */ tr("FFR Infantry"), /* maps/pg/map03:7 */ tr("Molde"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Teykovo"), /* maps/pg/map24:7 */ tr("Lubnyr"), /* campaigns/PG:634 */ tr("We are now facing a massive force in the West invading German soil. Your order is to hold Berlin and at least five other objectives to prevent further detriment to the Reich."), /* units/pg.udb:11601 */ tr("FPO Sherman"), /* maps/pg/map17:7 maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Meuse River"), /* units/pg.udb:85 */ tr("Fighter"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Bryansk"), /* maps/pg/map36:7 */ tr("Accotink Creek"), /* maps/pg/map15:7 */ tr("Dol"), /* maps/pg/map30:7 */ tr("Dmitriyev-Lgovskiy"), /* units/pg.udb:73 */ tr("Artillery"), /* maps/pg/map15:7 */ tr("Sienner River"), /* maps/pg/map05:7 */ tr("Ham"), /* units/pg.udb:4656 */ tr("GB Spit I"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Nancy"), /* campaigns/PG:323 */ tr("Your performance was outstanding! Despite heavy resistence, you were able to crush the enemy and successfully secure the pocket of Kursk. Thanks to this masterpiece, we can attempt another assault on Moscow."), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Great Vermouth"), /* maps/pg/map05:7 */ tr("Vienne"), /* units/pg.udb:2612 */ tr("PSW 231/6r"), /* units/pg.udb:1688 */ tr("Tiger II"), /* campaigns/PG:382 */ tr("Your brave efforts lead to the capturing of all Southern England. Unfortunately, the landing of American reinforcements and their counter-attack forced High Command to retract all troops back to the continent."), /* campaigns/PG:340 */ tr("Holding Warsaw temporarily relieved us from pressure on the Eastern front, and enabled us to prepare further operations."), /* units/pg.udb:6981 */ tr("ST BA-10"), /* campaigns/PG:451 */ tr("The Allied army easily drove our troops back to the Netherlands."), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Stuttgart"), /* maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Breslau"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Waldenburg"), /* maps/pg/map29:7 */ tr("Karlovka"), /* maps/pg/map36:7 */ tr("Hyattsville"), /* units/pg.udb:596 */ tr("FW190g"), /* maps/pg/map22:7 */ tr("Moires"), /* units/pg.udb:6729 */ tr("ST La-7"), /* campaigns/PG:412 */ tr("The mission was a disaster. Not sustaining allowed the Allies to invade Germany from the South, forces upon us an unfavourable peace treaty like the one in 1918."), /* maps/pg/map04:7 */ tr("Ostend"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Temyryk"), /* campaigns/PG:58 */ tr("Despite your initially slow advance, by an overwhelming array of men and material we eventually drove the French forces over the Somme river. Yet we cannot tolerate suboptimal performance like this any longer. Your deeds need to improve. Needlessly to say that our chance of invading England this year has been lost."), /* units/pg.udb:792 */ tr("He111 H2"), /* units/pg.udb:6897 */ tr("ST PE-8"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Freiburg"), /* maps/pg/map12:7 */ tr("Gabes"), /* maps/pg/map13:7 */ tr("Prizzi"), /* scenarios/pg/Norway:3 */ tr("April 9, 1940: Wanting Norwegian iron, and northern air bases to deny British access to the Baltic Sea, the Germans launch a surprise attack on Norway."), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Chester"), /* campaigns/PG:344 */ tr("22nd June 1944"), /* maps/pg/map15:7 */ tr("Domfront"), /* maps/pg/map21:7 */ tr("Valjevo"), /* campaigns/PG:188 */ tr("Moscow has fallen, and the Soviet Union surrendered to the Reich! You have achieved what Napoleon only dreamed of. All of Russia has been put under German administration, and we have already begun exploiting its vast resources. Your decision to take the early route towards Moscow was right, and therefore you get awarded one of the highest order medals of the Reich, the Iron Cross with Oak Leaves and Swords."), /* maps/pg/map36:7 */ tr("Port Tobacco"), /* maps/pg/map29:7 */ tr("Lozovaya"), /* maps/pg/map14:7 */ tr("Volturno River"), /* units/pg.udb:11069 */ tr("US 75mm Gun"), /* units/pg.udb:1184 */ tr("Pz38(t)A"), /* units/pg.udb:7289 */ tr("ST T-40"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Dover"), /* maps/pg/map21:7 */ tr("Berati"), /* units/pg.udb:4768 */ tr("GB Hur IV"), /* maps/pg/map17:7 */ tr("Nivelles"), /* units/pg.udb:5049 */ tr("GB Lancaster"), /* maps/pg/map18:7 */ tr("Neufchatel"), /* maps/pg/map04:7 */ tr("Noyon"), /* nations/pg.ndb:48 */ tr("Hungary"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Braunschweig"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Bialstok"), /* maps/pg/map08:7 */ tr("Karbala"), /* maps/pg/map12:7 */ tr("Kasserine"), /* scenarios/pg/D-Day:2 */ tr("D-DAY"), /* maps/pg/map24:7 */ tr("Cherkassi"), /* maps/pg/map08:7 */ tr("Al Hillah"), /* units/pg.udb:6925 */ tr("ST SU-152 AT"), /* maps/pg/map17:7 */ tr("Bastogne"), /* campaigns/PG:217 */ tr("Eastern front"), /* units/pg.udb:5805 */ tr("GB 40mm SPAD"), /* units/pg.udb:1576 */ tr("Panther D"), /* scenarios/pg/Anvil:4 scenarios/pg/Anzio:4 scenarios/pg/Ardennes:4 scenarios/pg/Balkans:4 ... */ tr("Strategic Simulation Inc."), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Bratislava"), /* maps/pg/map19:7 */ tr("Boxtel"), /* units/pg.udb:3368 */ tr("PO TK3"), /* units/pg.udb:5665 */ tr("GB Church VII"), /* maps/pg/map17:7 */ tr("Werbomont"), /* maps/pg/map22:7 */ tr("Monemvasia"), /* maps/pg/map16:7 */ tr("Petit Rhone River"), /* units/pg.udb:3928 */ tr("FR Ch D1 IG"), /* maps/pg/map19:7 */ tr("Veghel"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Bolkhov"), /* maps/pg/map15:7 */ tr("Orbec"), /* maps/pg/map16:7 */ tr("Turin"), /* units/pg.udb:5245 */ tr("GB Crdr II"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Port"), /* maps/pg/map36:7 */ tr("Bowie"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Mogilev"), /* maps/pg/map19:7 */ tr("Gembert"), /* units/pg.udb:5637 */ tr("GB Church VI"), /* maps/pg/map33:7 */ tr("Devegcer"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Kuban"), /* maps/pg/map26:7 */ tr("Otradny"), /* maps/pg/map18:7 */ tr("Melun"), /* units/pg.udb:11125 */ tr("US 155mm Gun"), /* maps/pg/map33:7 */ tr("Tatabanya"), /* maps/pg/map08:7 */ tr("Sakakah"), /* campaigns/PG:533 */ tr("Congratulations on your victory. Yet, supply shortages allowed the English to take the initiative, and expel the Africa Corps from Egypt and Libya."), /* maps/pg/map17:7 */ tr("Beaumont"), /* maps/pg/map03:7 */ tr("Bergen"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Aire"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Mainz"), /* maps/pg/map21:7 */ tr("Pinios River"), /* maps/pg/map08:7 */ tr("Anah"), /* maps/pg/map36:7 */ tr("Odenton"), /* maps/pg/map13:7 */ tr("Agrigento"), /* units/pg.udb:3228 */ tr("PSW 232/8r"), /* maps/pg/map36:7 */ tr("North Arlington"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Osnabruck"), /* scenarios/pg/BerlinWest:2 */ tr("BERLIN (WEST)"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Newhaven"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Mozdok"), /* units/pg.udb:88 */ tr("Tactical Bomber"), /* maps/pg/map15:7 */ tr("Barneville"), /* maps/pg/map03:7 */ tr("Kongsberg"), /* maps/pg/map22:7 */ tr("Sitia"), /* campaigns/PG:410 */ tr("High Command is stunned about your audacious counter-attack in Italy. With scarce resources, you managed not only to drive back the Anzio-beachhead into the sea, you also retook Italian towns of the South."), /* campaigns/PG:524 */ tr("Staying in the desert"), /* maps/pg/map30:7 */ tr("Sudzha"), /* units/pg.udb:257 */ tr("FW190d9"), /* units/pg.udb:8577 */ tr("IT Centauro"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Frankfurt an Main"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Munich"), /* units/pg.udb:8997 */ tr("IT M13/40"), /* maps/pg/map36:7 */ tr("Ocooquen Creek"), /* maps/pg/map21:7 */ tr("Rijeka"), /* units/pg.udb:8185 */ tr("AF T-Boat"), /* units/pg.udb:5105 */ tr("GB Matilda I"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Novorossik"), /* scenarios/pg/Balkans:3 */ tr("April 6, 1941: German troops aid the bogged down Italians in Yugoslavia and Greece."), /* units/pg.udb:4881 */ tr("GB Spit XVII"), /* maps/pg/map16:7 */ tr("St. Vallier"), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("Cyrene"), /* maps/pg/map14:7 */ tr("Sezze"), /* scenarios/pg/Ardennes:3 */ tr("Dec 16, 1944: Wacht Am Rhein... Germany's last gamble in the West."), /* maps/pg/map29:7 */ tr("Proletarsk"), /* maps/pg/map26:7 */ tr("Verkhne Chogan"), /* campaigns/PG:106 */ tr("Negotiations with Yugoslavia have failed which in order made them turn against us. Italian forces are fighting a stiff battle at the Metaxas line in Greece and have not been able to gain substancial advantages for over a year, and they may not sustain any longer. For our upcoming invasion of Russia we cannot tolerate an undefeated enemy in our back. Thus it is your mission to capture key Yugoslav towns to make them surrender, and additionally aid Italian troops in their hapless fight against Greek and English adversaries."), /* campaigns/PG:432 */ tr("Congratulations on your effective victory over the Allied invasion of Normandy. The enemy has been driven back into the sea."), /* maps/pg/map21:7 */ tr("Morlava River"), /* maps/pg/map21:7 */ tr("Patrai"), /* units/pg.udb:6869 */ tr("ST Il-10"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Magdeburg"), /* maps/pg/map33:7 */ tr("Komarno"), /* maps/pg/map26:7 */ tr("Inkerman"), /* maps/pg/map16:7 */ tr("Gap"), /* maps/pg/map36:7 */ tr("Laurel"), /* units/pg.udb:2164 */ tr("Marder IIIM"), /* maps/pg/map19:7 */ tr("Waal River"), /* units/pg.udb:8885 */ tr("IT Sem M-41M"), /* units/pg.udb:314 */ tr("ME163B/Komet"), /* maps/pg/map16:7 */ tr("Digne"), /* maps/pg/map17:7 */ tr("Tirlemont"), /* units/pg.udb:8325 */ tr("Heavy Cruiser"), /* maps/pg/map33:7 */ tr("Rackeve"), /* units/pg.udb:10089 */ tr("US M3 GMC"), /* units/pg.udb:8353 */ tr("Light Cruiser"), /* units/pg.udb:4993 */ tr("GB Typhoon IB"), /* maps/pg/map14:7 */ tr("Tivoli"), /* maps/pg/map08:7 */ tr("Hit"), /* maps/pg/map24:7 */ tr("Khoro"), /* maps/pg/map16:7 */ tr("Montelimar"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Bern"), /* units/pg.udb:3620 */ tr("FR Potez 63"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Menai Strait"), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("Nile"), /* maps/pg/map14:7 */ tr("Aterno River"), /* units/pg.udb:7149 */ tr("ST T-34/41"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Tunbridge Wells"), /* units/pg.udb:8409 */ tr("T-Destroyer"), /* campaigns/PG:501 */ tr("The Allies have launched a surprise airborne attack at Arnhem to capture a bridge across the Rhine. Yet, their slow outbreak from Normandy gave us plenty of time to establish potent defenses. Your order is to capture and hold the city of Arnhem until the 25th of September, and clean the area from paratroop landings before Allied reinforcements arrive."), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Brunn"), /* campaigns/PG:268 */ tr("Your initial capture of Moscow let arise hope that Russia would surrender. Unfortunately, the combination of bad weather and Russian reserves did not enable our exhausted troops to sustain any longer. While we managed to establish a stable front line again, the possibility for another advance towards Moscow has gone for good."), /* units/pg.udb:9585 */ tr("US P51B Mustg"), /* units/pg.udb:1856 */ tr("Hetzer"), /* units/pg.udb:680 */ tr("JU87R"), /* scenarios/pg/Torch:2 */ tr("TORCH"), /* units/pg.udb:8437 */ tr("U-Boat"), /* maps/pg/map13:7 */ tr("Menfi"), /* maps/pg/map13:7 maps/pg/map21:7 */ tr("Bari"), /* maps/pg/map05:7 maps/pg/map18:7 */ tr("Paris"), /* maps/pg/map03:7 */ tr("Dombas"), /* maps/pg/map04:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map18:7 maps/pg/map38:7 */ tr("Calais"), /* units/pg.udb:2360 */ tr("FlaKPz 38(t)"), /* units/pg.udb:6673 */ tr("ST La-5"), /* maps/pg/map26:7 */ tr("Dzhanshley"), /* maps/pg/map26:7 */ tr("Mekenziya"), /* maps/pg/map14:7 */ tr("Campobasso"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Terek"), /* campaigns/PG:199 */ tr("Moscow has fallen, and the Soviet Union surrendered to the Reich! You have achieved what Napoleon only dreamed of. All of Russia has been put under German administration, and we have already begun exploiting its vast resources. For your leadership skills, you get awarded the highest order medal of the Reich, the Knight's Cross with Oak Leaves and Swords."), /* maps/pg/map03:7 */ tr("Mosjoen"), /* maps/pg/map17:7 */ tr("Ardenne"), /* units/pg.udb:201 */ tr("BF109k"), /* maps/pg/map15:7 */ tr("Sees"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Strasburg"), /* units/pg.udb:6057 */ tr("GB Inf 39"), /* maps/pg/map08:7 */ tr("Ahvaz"), /* units/pg.udb:3956 */ tr("FR Ch S35"), /* maps/pg/map21:7 */ tr("Sarande"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Kiel"), /* units/pg.udb:11685 */ tr("FPO Truck"), /* units/pg.udb:10593 */ tr("US M18 "), /* units/pg.udb:11713 */ tr("FPO Infantry"), /* units/pg.udb:7009 */ tr("ST BA-64"), /* campaigns/PG:74 */ tr("France is weakened and open to attack. Since 1871, this is the first chance to battle down the mightiest army of Europe and face total victory on the Western continent. You are ordered to take Paris and various strategic coastal towns as well as towns of the hinterland."), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Grozny"), /* campaigns/PG:433 */ tr("While fighting bravely against tremendous odds, the Allies could establish a beachhead on the Norman coast."), /* units/pg.udb:10313 */ tr("US M4A3E2(76)"), /* campaigns/PG:345 */ tr("Soviet Russia has eventually launched its long expected summer offensive of 1944, ironically on the self same day we initiated operation Barbarossa three years ago. You are in charge of Army Group Center, and you must stop the Russian attack at any rate, and retake all objectives to turn the tides. If the odds are too strong, hold at least Warsaw until the 27th of August."), /* maps/pg/map24:7 */ tr("Konotop"), /* maps/pg/map03:7 */ tr("Hamar"), /* maps/pg/map21:7 */ tr("Lesh"), /* maps/pg/map08:7 */ tr("Jordan River"), /* units/pg.udb:4376 */ tr("AD Mk II SP"), /* maps/pg/map36:7 */ tr("Potomac River"), /* units/pg.udb:11741 */ tr("FPO Para"), /* scenarios/pg/Crete:3 */ tr("May 20, 1941: Germany attempts to capture the strategic island of Crete."), /* maps/pg/map04:7 maps/pg/map05:7 */ tr("Somme"), /* scenarios/pg/Anvil:361 scenarios/pg/Anzio:374 scenarios/pg/Ardennes:558 scenarios/pg/Balkans:590 ... */ tr("Axis Major Victory"), /* units/pg.udb:5329 */ tr("GB Crom VII"), /* campaigns/PG:468 */ tr("The Allied landings have been outright successful, and France is now definitely lost."), /* maps/pg/map15:7 */ tr("Lisieux"), /* maps/pg/map19:7 */ tr("Renkum"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Elista"), /* maps/pg/map03:7 */ tr("Narvik"), /* maps/pg.tdb:8 */ tr("Overcast(Dry)"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Volga"), /* maps/pg/map03:7 */ tr("Lillehammer"), /* units/pg.udb:7121 */ tr("ST T-34/40"), /* maps/pg/map05:7 */ tr("Nevers"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Bromberg"), /* maps/pg/map33:7 */ tr("Polgardi"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Regensburg"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Stour"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("London"), /* maps/pg/map24:7 */ tr("Nehzin"), /* units/pg.udb:3060 */ tr("43 Wehr Inf"), /* units/pg.udb:1828 */ tr("StuH42"), /* units/pg.udb:2388 */ tr("37 FlaKPz IV"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Sosyka"), /* campaigns/PG:584 */ tr("30th June 1942"), /* maps/pg/map36:7 */ tr("Indian Creek"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Graz"), /* maps/pg/map18:7 */ tr("Rennes"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Hull"), /* maps/pg/map17:7 */ tr("Libramit"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Koslin"), /* campaigns/PG:349 */ tr("Holding Warsaw temporarily relieves us from pressure on the Eastern front, thus allowing High Command to transfer you to the Western Front."), /* maps/pg/map16:7 */ tr("Toulon"), /* maps/pg/map30:7 */ tr("Maloarkhangelsk"), /* maps/pg/map36:7 */ tr("Cleveland Park"), /* maps/pg/map21:7 */ tr("Bosna River"), /* maps/pg/map36:7 */ tr("Owings"), /* maps/pg/map13:7 */ tr("Palermo"), /* units/pg.udb:1212 */ tr("Pz38(t)F"), /* units/pg.udb:10033 */ tr("US M2 Halftrk"), /* maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 */ tr("Italian Camp"), /* campaigns/PG:339 */ tr("Thanks to your great achievements, the Soviet summer offensive has been halted, and enabled us to prepare further operations."), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Main River"), /* campaigns/PG:273 */ tr("Now there are two opportunities to prove your skills against mighty odds. In the east, the Russians prepare their first summer offensive against Army Group Center, while in the west, the Allied prepare their invasion of france.##Which theater do you want to take leadership of?"), /* units/pg.udb:8269 */ tr("Battleship Bk"), /* maps/pg.tdb:28 */ tr("Raining(Mud)"), /* maps/pg/map14:7 */ tr("Sulmona"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Plymouth"), /* units/pg.udb:9921 */ tr("US B24D Lib"), /* units/pg.udb:9837 */ tr("US A26 Inv"), /* maps/pg/map14:7 */ tr("Pescara River"), /* units/pg.udb:285 */ tr("ME262A1"), /* maps/pg/map13:7 maps/pg/map21:7 */ tr("Otranto"), /* units/pg.udb:5581 */ tr("GB Church III"), /* campaigns/PG:529 */ tr("We were eventually able to halt the English counter offensive, and are now ready to perform another attack. While we do not have to gain as much ground as last year, English restistence is expected to be much stronger. While the chance for invading the Middle East has been lost, we may be able to prepare another invasion of England if the North African chapter is closed in time. You have to take all objectives by no later than the 28th of September. Yet, in order to finish preparations for an invasion of England this year, you have to finish you mission several weeks earlier."), /* units/pg.udb:6421 */ tr("GB 3 Inches AD"), /* maps/pg/map21:7 */ tr("Bobov"), /* maps/pg/map16:7 */ tr("Nice"), /* units/pg.udb:7233 */ tr("ST T-70"), /* maps/pg/map13:7 maps/pg/map21:7 */ tr("Foggia"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Shrewbury"), /* maps/pg/map17:7 */ tr("Echlemach"), /* units/pg.udb:1632 */ tr("Panther G"), /* units/pg.udb:7373 */ tr("ST SU-152"), /* maps/pg/map16:7 */ tr("Durance River"), /* maps/pg/map36:7 */ tr("Potomac Heights"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Novocherkassk"), /* campaigns/PG:1 */ tr("World War II"), /* units/pg.udb:4460 */ tr("LC CR42"), /* maps/pg/map29:7 */ tr("Starobelsk"), /* maps/pg/map16:7 */ tr("Castellane"), /* scenarios/pg/MiddleEast:3 */ tr("Septempter 1, 1941: Axis attempts to seize the oil fields of Persia."), /* campaigns/PG:36 */ tr("Losing on the Polish front was an utter disaster. Your scandalous leadership has enabled the English and French to build up an formidable army which has begun invading Germany."), /* units/pg.udb:10061 */ tr("US M2A4"), /* campaigns/PG:291 */ tr("Not capturing Moscow in time gave the Russian adversaries plenty of opportunity to mobilise troops from Siberia and perform a counterattack. While we managed to establish a stable front line again, we could not attempt another advance in 1942."), /* units/pg.udb:4040 */ tr("FR Infantry"), /* maps/pg/map16:7 */ tr("Marseilles"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Makhach Kala"), /* maps/pg/map21:7 */ tr("Shkoder"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Thames"), /* campaigns/PG:617 */ tr("Not only halting the enemy onslaught at two front, but drive them back to the pre-war borders of the Reich is impressive. Therefore, we could achieve to sign a peace treaty that restored the status-quo from the 1st September 1939."), /* maps/pg/map15:7 maps/pg/map18:7 */ tr("Honfleur"), /* units/pg.udb:11265 */ tr("US M8 Ghd LAC"), /* maps/pg/map21:7 */ tr("Serrai"), /* maps/pg/map36:7 */ tr("Annandale"), /* campaigns/PG:608 */ tr("Your taking of Washington was a masterpiece. However, the Americans revealed their secret weapon, called the Atomic Bomb, and inflicted heavy losses on our expeditionary forces. In order to reduce further casualties, we retreated from America, and signed a piece treaty. Though the America adventure did not work out, Germany rules all of Europe, Africa, and most parts of Asia. This overwhelming economical weight will enable us to carry on the war against America on another level. Now, the war is over, and for your heroic encouragement you are promoted to Generalfeldmarschall."), /* units/pg.udb:9557 */ tr("US P40 Whwk"), /* maps/pg/map17:7 */ tr("Tongres"), /* units/pg.udb:428 */ tr("BF110c"), /* maps/pg/map26:7 */ tr("Bartenevka"), /* maps/pg/map03:7 */ tr("Kristiansand"), /* units/pg.udb:39 */ tr("Leg"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Poti"), /* units/pg.udb:2780 */ tr("8.8 PaK43/41"), /* campaigns/PG:235 */ tr("Losing two battles in a row cannot be accepted."), /* scenarios/pg/Byelorussia:2 */ tr("BYELORUSSIA"), /* maps/pg/map21:7 */ tr("Parga"), /* maps/pg/map18:7 */ tr("St. Malo"), /* maps/pg/map33:7 */ tr("Dunafoldvar"), /* units/pg.udb:8745 */ tr("IT SM 82"), /* maps/pg/map36:7 */ tr("Langley Park"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map29:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Dnieper River"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Divnoe"), /* maps/pg/map02:7 maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 ... */ tr("Warsaw"), /* units/pg.udb:2920 */ tr("17 K18"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Serpukhov"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Rostov"), /* maps/pg/map26:7 */ tr("Mekenziery"), /* units/pg.udb:10397 */ tr("US M7"), /* maps/pg/map24:7 */ tr("Uman"), /* maps/pg/map24:7 maps/pg/map30:7 */ tr("Seym"), /* scenarios/pg/EarlyMoscow:2 */ tr("EARLY MOSCOW"), /* campaigns/PG:646 */ tr("You have failed us, Commander! The german reich suffered a minor defeat!"), /* maps/pg/map33:7 */ tr("Esztergom"), /* nations/pg.ndb:40 */ tr("Greece"), /* units/pg.udb:5161 */ tr("GB Mk I A9"), /* maps/pg/map33:7 */ tr("Papa"), /* maps/pg/map16:7 */ tr("Var River"), /* maps/pg/map14:7 */ tr("Mondragone"), /* maps/pg/map24:7 */ tr("Ichnaya"), /* maps/pg/map14:7 */ tr("Biferno River"), /* units/pg.udb:1016 */ tr("PzIIA"), /* units/pg.udb:3704 */ tr("FR D520S"), /* units/pg.udb:8969 */ tr("IT L6/40"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Darmstadt"), /* units/pg.udb:4965 */ tr("GB Mosq VI"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Valuiki"), /* units/pg.udb:10453 */ tr("US GM Truck"), /* units/pg.udb:7737 */ tr("ST SMG Inf"), /* units/pg.udb:5189 */ tr("GB Mk III A13"), /* units/pg.udb:76 */ tr("Anti-Aircraft"), /* campaigns/PG:64 */ tr("France is weakened and open to attack. Since 1871, this is the first chance to battle down the mightiest army of Europe and face total victory on the Western continent. You are ordered to take Paris and various strategic coastal towns as well as towns of the hinterland. Timing is important, as only an early completion of your mission enables us to finish preparations in time for the invasion of England."), /* units/pg.udb:343 */ tr("HE219"), /* maps/pg/map18:7 */ tr("Fougeres"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Beuthen"), /* maps/pg/map14:7 */ tr("Nera River"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Pinsk"), /* units/pg.udb:1100 */ tr("8.8 FK18 ATG"), /* maps/pg/map16:7 */ tr("Drome River"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Dusseldorf"), /* maps/pg/map08:7 maps/pg/map14:7 maps/pg/map20:7 maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 ... */ tr("Lake"), /* campaigns/PG:252 */ tr("Your inability to reach Stalingrad as well as shortages in supplies allowed the Russians to break through the thin defense lines of our exhausted troops, and to cut off large parts of the 6th Army in Stalingrad and annihilate them, and drive back the Eastern front."), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Dvina River"), /* units/pg.udb:9697 */ tr("US P47D Tbolt"), /* campaigns/PG:428 */ tr("6th June 1944"), /* units/pg.udb:109 */ tr("Air Transport"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Dresden"), /* maps/pg/map04:7 maps/pg/map17:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Liege"), /* maps/pg/map08:7 */ tr("Abadan"), /* units/pg.udb:1940 */ tr("StuG IV"), /* campaigns/PG:73 */ tr("5th June 1940"), /* maps/pg/map24:7 */ tr("Gorodnya"), /* campaigns/PG:369 */ tr("While you managed to capture all objectives, the Russian offensive gained momentum too fast and drove us back to the Eastern limits of the Reich."), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Innsbruck"), /* maps/pg/map17:7 */ tr("Manhay"), /* campaigns/PG:117 */ tr("Crete has been captured by the English in 1940 as a reaction on Italy's invasion of Albania. Since then, the English have erected air and naval bases which are likely to interfere with our upcoming operations against Soviet Russia. It is your order to take the island, capture the strategic bases, and drive the English troops into the sea. This is the largest airborne operation seen in this war."), /* maps/pg/map29:7 */ tr("Artemovsk"), /* units/pg.udb:173 */ tr("BF109g"), /* maps/pg/map03:7 */ tr("Stavanger"), /* campaigns/PG:549 */ tr("Caucasus"), /* campaigns/PG:557 */ tr("With all objectives taken, and the Americans expelled from Africa, you have proven your excellent leadership skills."), /* maps/pg/map21:7 */ tr("Kevalla"), /* maps/pg/map04:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Boulogne"), /* maps/pg/map36:7 */ tr("Silver Spring"), /* campaigns/PG:618 */ tr("You held Berlin, but that has put us into an uncomfortable situation. We had to accept a peace treaty that was even harsher than the hated one of 1918."), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Guren"), /* campaigns/PG:539 */ tr("1st September 1941"), /* maps/pg/map13:7 maps/pg/map14:7 maps/pg/map21:7 */ tr("Naples"), /* maps/pg/map03:7 */ tr("Mo-i-rana"), /* units/pg.udb:1156 */ tr("Pz 35(t)"), /* maps/pg/map14:7 */ tr("Formia"), /* maps/pg.tdb:40 */ tr("Overcast(Ice)"), /* maps/pg/map17:7 */ tr("Leshelm"), /* units/pg.udb:11405 */ tr("FFR 105mm Gun"), /* maps/pg/map19:7 */ tr("Schaarbergen"), /* maps/pg/map21:7 */ tr("Ivangrad"), /* maps/pg/map33:7 */ tr("Bicske"), /* maps/pg/map13:7 */ tr("Ribera"), /* maps/pg/map24:7 */ tr("Rumnyr"), /* maps/pg/map30:7 */ tr("Oka"), /* nations/pg.ndb:36 */ tr("Germany"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Krasnodar"), /* maps/pg/map22:7 */ tr("Retimo"), /* maps/pg/map24:7 */ tr("Boguslav"), /* units/pg.udb:2052 */ tr("JagdTiger"), /* maps/pg.tdb:230 */ tr("Road"), /* units/pg.udb:456 */ tr("BF110d"), /* units/pg.udb:2080 */ tr("PzJager IB"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Stalingrad"), /* units/pg.udb:4320 */ tr("NOR 75mm Gun"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Hannover"), /* maps/pg/map33:7 */ tr("Val"), /* campaigns/PG:209 */ tr("Moscow has fallen, and the Soviet Union surrendered to the Reich! You have achieved what Napoleon only dreamed of. All of Russia has been put under German administration, and we have already begun exploiting its vast resources. For your leadership skills, you get awarded one of the highest order medals of the Reich, the Iron Cross with Oak Leaves and Swords."), /* units/pg.udb:4572 */ tr("SdKfz 6/2"), /* maps/pg/map24:7 */ tr("Pripet"), /* units/pg.udb:5469 */ tr("GB M3 Stuart"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Rossosh"), /* campaigns/PG:85 */ tr("North Africa"), /* units/pg.udb:10005 */ tr("US C47"), /* maps/pg/map02:7 */ tr("Tomaszow"), /* units/pg.udb:3256 */ tr("PO PZL P11c"), /* campaigns/PG:34 */ tr("Your performance in Poland has been outstanding, Herr General! You besieged and captured all objectives before the Soviet Union was able to catch up. Your forces have been diverted to the Western border to guard against French and English aggressions."), /* maps/pg/map21:7 */ tr("Argos"), /* maps/pg/map29:7 */ tr("Merefa"), /* maps/pg/map15:7 */ tr("Gavray"), /* maps/pg.tdb:16 */ tr("Snowing(Dry)"), /* scenarios/pg/Moscow42:2 */ tr("MOSCOW (42)"), /* scenarios/pg/Poland:3 */ tr("September 1, 1939: The German army crosses the Polish border with their famous blitzkrieg. In 10 days they must capture Lodz and Kutno... the gates to Warsaw."), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Chirskaya"), /* campaigns/PG:513 */ tr("31st March 1941"), /* maps/pg/map21:7 */ tr("Katerim"), /* maps/pg/map13:7 */ tr("Brindisi"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Portsmouth"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Olmutz"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Oxford"), /* units/pg.udb:9501 */ tr("Yugoslav Inf"), /* maps/pg/map05:7 maps/pg/map18:7 */ tr("Orleans"), /* units/pg.udb:1240 */ tr("Pz38(t)G"), /* campaigns/PG:170 */ tr("Your failure to decimate Russian troops in time enabled them to assemble and perform a counter-strike against our lines. Thus for 1941, all of our operations on the Eastern front had to cease."), /* maps/pg/map17:7 */ tr("La Leuviere"), /* units/pg.udb:3032 */ tr("39 Wehr Inf"), /* maps/pg/map26:7 */ tr("Sevastopol"), /* maps/pg/map21:7 */ tr("Devin"), /* campaigns/PG:250 */ tr("Stalin's town lies down in ruins, and German troops control the traffic on the Volga river, preventing the Russians to build up a force for a counter-attack. Thus, you can lead the advance towards Moscow without interference from the rear."), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Hastings"), /* units/pg.udb:4208 */ tr("FR 155mm Gun"), /* maps/pg/map04:7 maps/pg/map17:7 */ tr("Charleroi"), /* maps/pg/map24:7 */ tr("Zhitomir"), /* maps/pg/map08:7 */ tr("Samarra"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Schwerin"), /* units/pg.udb:7569 */ tr("ST SU-100"), /* units/pg.udb:1408 */ tr("PzIIIN"), /* maps/pg/map16:7 */ tr("Aubenas"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Kropotkin"), /* units/pg.udb:932 */ tr("ME323d"), /* units/pg.udb:6225 */ tr("GB 17 Pdr ATG"), /* units/pg.udb:4152 */ tr("FR 75mm Gun"), /* maps/pg/map16:7 */ tr("Aygues River"), /* maps/pg/map05:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map18:7 maps/pg/map38:7 */ tr("Dieppe"), /* maps/pg/map15:7 */ tr("Flers"), /* maps/pg/map21:7 */ tr("Bosanska"), /* maps/pg/map03:7 */ tr("Alesund"), /* maps/pg/map15:7 */ tr("Villedieu-LP"), /* units/pg.udb:9473 */ tr("Greek Inf"), /* units/pg.udb:11657 */ tr("FPO Bren Ca"), /* maps/pg/map33:7 */ tr("Zirc"), /* maps/pg/map03:7 */ tr("Glomma River"), /* maps/pg/map24:7 */ tr("Mozyr"), /* maps/pg/map12:7 */ tr("Bone"), /* units/pg.udb:5917 */ tr("GB Daimler SC"), /* maps/pg/map22:7 */ tr("Sfakia"), /* maps/pg/map36:7 */ tr("Easton"), /* maps/pg/map18:7 */ tr("Seine River"), /* units/pg.udb:5777 */ tr("GB Sexton"), /* maps/pg/map33:7 */ tr("Slofok"), /* campaigns/PG:483 */ tr("16th December 1944"), /* maps/pg/map13:7 */ tr("Castrovillari"), /* maps/pg/map20:7 maps/pg/map33:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Budapest"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Manchester"), /* maps/pg/map19:7 */ tr("Wolfheze"), /* maps/pg/map18:7 */ tr("Compiegne"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Suwalki"), /* units/pg.udb:7401 */ tr("ST KV-1/39"), /* maps/pg/map22:7 */ tr("Maleme"), /* campaigns/PG:269 */ tr("Not capturing Moscow in time gave the Russian adversaries plenty of opportunity to mobilise troops from Siberia and perform a counterattack. While we managed to establish a stable front line again, our hopes to capture Moscow are now gone for good."), /* units/pg.udb:11041 */ tr("US 3 Inches ATG"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Shchekino"), /* maps/pg/map21:7 */ tr("Monosterace"), /* maps/pg/map26:7 */ tr("Balaklava"), /* campaigns/PG:234 */ tr("By your taking of Sevastopol and the Krim peninsula in time, we could annihilate the Russian Black Sea fleet. There will be no more interference on our ongoing advance to the East."), /* units/pg.udb:9949 */ tr("US B29 SF"), /* maps/pg/map08:7 */ tr("Kaf"), /* maps/pg/map36:7 */ tr("Mattawoman Creek"), /* maps/pg/map21:7 */ tr("Karlovac"), /* units/pg.udb:2528 */ tr("SPW 250/1"), /* units/pg.udb:16 */ tr("Hard"), /* maps/pg/map16:7 */ tr("Nyons"), /* maps/pg/map18:7 */ tr("Alencon"), /* units/pg.udb:4404 */ tr("AD Mk I Fort"), /* campaigns/PG:185 */ tr("Moscow, capital and industrial, and logistical center of Russia, is the ultimate objective you have to strive for on the Eastern front. You have to capture Moscow and all other objectives by the 16th of November at the latest. Yet to prevent autumn weather to halt our advance, you should finish your mission several weeks earlier."), /* units/pg.udb:7541 */ tr("ST IS-2"), /* maps/pg/map04:7 */ tr("Dunkirk"), /* units/pg.udb:9305 */ tr("IT 155mm Gun"), /* units/pg.udb:6197 */ tr("GB 6 Pdr ATG"), /* campaigns/PG:383 campaigns/PG:393 */ tr("Your failure to conquer England in time before American reinforcements arrived has given the enemy the strength to strike back, and force our troops back to the continent."), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Tiblisi"), /* maps/pg/map22:7 */ tr("Suda"), /* scenarios/pg/MarketGarden:3 */ tr("September 17, 1944: Daring airborne assault to capture a Rhine River crossing. A bridge too far?"), /* maps/pg/map29:7 */ tr("Novomoskovsk"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Erfuhrt"), /* maps/pg/map18:7 */ tr("Mayenne"), /* units/pg.udb:11489 */ tr("FFR GM Truck"), /* units/pg.udb:7625 */ tr("ST ISU-152 "), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("Bardia"), /* units/pg.udb:11377 */ tr("FFR 75mm Gun"), /* units/pg.udb:11965 */ tr("Katyusha BM31"), /* maps/pg/map36:7 */ tr("Cameron Run"), /* maps/pg/map18:7 */ tr("Louviers"), /* maps/pg/map18:7 */ tr("Loire River"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Pilsen"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Pripyat River"), /* maps/pg/map13:7 */ tr("Crotone"), /* scenarios/pg/Kursk:3 */ tr("July 5, 1943: Operation Citadel launches a huge attack into well prepared Soviet defenses."), /* maps/pg/map12:7 */ tr("Algiers"), /* campaigns/PG:365 */ tr("We have gathered all strike forces for the ultimate offensive on the Eastern front. You have to take Budapest and all other objectives by no later than the 25th of March. To ensure that the Russians will not recover from the offensive, and sign a favourable peace treaty, you should capture all objectives several days earlier."), /* units/pg.udb:1912 */ tr("Jp Elefant"), /* maps/pg/map15:7 */ tr("Villers-Bocage"), /* campaigns/PG:20 */ tr("Fall Weiß, the conquest of Poland has commenced. Your order is to make an inroad breach through the main Polish defenses and take the towns of Kutno and Lodz by no later than the 10th of September. Failing to do so could cause England and France to declare war against Germany. An earlier completion may make available more resources to your for the assault of Warsaw."), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Kohlfurt"), /* campaigns/PG:559 */ tr("The American army made piecemeal out of the Africa Corps."), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Oka River"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Harwich"), /* units/pg.udb:3648 */ tr("FR CHk 75A-1"), /* scenarios/pg/Sevastapol:3 */ tr("June 7, 1942: The final assault on the Black Sea port of Sevastopol."), /* maps/pg/map13:7 */ tr("Catania"), /* units/pg.udb:5609 */ tr("GB Church IV"), /* units/pg.udb:4796 */ tr("GB Spit IX"), /* units/pg.udb:229 */ tr("FW190a"), /* maps/pg/map33:7 */ tr("Solt"), /* campaigns/PG:391 */ tr("Your early capturing of Southern England enabled us to prepare defenses against the landing of the American reinforcements, and to decisively beat them. Consequentially, England has surrendered! It is to be attributed to your talent and to the high morale of your troops that you achieved an unprecedented victory over the British Empire. England, Scotland, Ireland, and the oversea dependencies are now governed by German administration. You are herewith awarded one of the highest order medals of the Reich, the Iron Cross with Oak Leaves, and Swords."), /* campaigns/PG:604 */ tr("With African and Russian resources, we heavily increased the output of our war industries, consequentially enabling us to gain hold onto American soil. Our troops have advanced to the gates of Washington, and your order is to capture it. Take Washington and all other objectives by the 3rd of August at the latest. Intelligence reports that the Americans are testing a secret weapon, which will be ready for mid-July. Hence, to reduce German casualties and to emphasise our strong position, you should finish your mission by then."), /* maps/pg/map12:7 */ tr("Sfax"), /* units/pg.udb:6253 */ tr("GB 25 Pdr Gun"), /* maps/pg/map21:7 */ tr("Belgrade"), /* units/pg.udb:3872 */ tr("FR CL AMX R40"), /* units/pg.udb:3396 */ tr("PO 7TP"), /* maps/pg/map05:7 */ tr("Troyes"), /* maps/pg/map15:7 */ tr("Gace"), /* campaigns/PG:549 */ tr("Sealion43"), /* campaigns/PG:41 */ tr("9th April 1940"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Dortmund"), /* units/pg.udb:820 */ tr("Ju88A"), /* campaigns/PG:90 */ tr("Your decisive and early success in France gave us plenty of time to prepare operation Sealion, the invasion of England. You have to capture London and various key towns in the vicinity before Autumn weather sets in, causing rough sea and putting our supply lines at stake. This is a unique chance to force England to surrender and end the war."), /* units/pg.udb:8633 */ tr("IT Ma C205/O"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Stalino"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Kimovsk"), /* units/pg.udb:3004 */ tr("8.8 FlaK 18"), /* campaigns/PG:450 */ tr("You fighted bravely against odds, but in vain. The Allied army drove our troops back to the Netherlands."), /* maps/pg/map16:7 */ tr("Nimes"), /* maps/pg/map15:7 */ tr("See River"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Bidefeld"), /* maps/pg/map08:7 */ tr("Tigris River"), /* maps/pg/map02:7 maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 ... */ tr("Narew River"), /* maps/pg/map19:7 */ tr("St. Oedenrode"), /* campaigns/PG:489 */ tr("Wacht am Rhein was an utter failure. Massive Allied reinforcements drove our troops back to the limits of the Reich."), /* units/pg.udb:8241 */ tr("AF Transport"), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("Sollum"), /* maps/pg/map02:7 */ tr("Pilica River"), /* maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 maps/pg/map07:7 ... */ tr("Airfield"), /* units/pg.udb:10285 */ tr("US M4A3E2"), /* units/pg.udb:35 */ tr("Wheeled"), /* units/pg.udb:3088 */ tr("40 Wehr HW"), /* units/pg.udb:3760 */ tr("FFR M4A1"), /* maps/pg.tdb:4 */ tr("Fair(Dry)"), /* maps/pg/map33:7 */ tr("Szekesfehervar"), /* maps/pg/map19:7 */ tr("Dinther"), /* campaigns/PG:121 */ tr("You have done well. Despite heavy resistence, the suppremacy over the Mediterranean Sea is ours. Nothing can stop our operations in Russia now."), /* nations/pg.ndb:72 */ tr("Portugal"), /* campaigns/PG:42 */ tr("High Command has got a special order for you. In order to secure supply lines of Swedish ore, we prepared operation Weserübung, the invasion of Norway before the English will do so. You have to take Oslo, Stavanger-airport, and a number of Northern towns before the 3rd of May."), /* scenarios/pg/Caucasus:2 */ tr("CAUCASUS"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Passau"), /* units/pg.udb:5385 */ tr("GB Grant"), /* units/pg.udb:848 */ tr("DO217e"), /* units/pg.udb:11937 */ tr("Katyusha BM13"), /* maps/pg/map21:7 */ tr("Bosanki Petrovac"), /* maps/pg/map17:7 */ tr("Rochefort"), /* maps/pg/map17:7 */ tr("Phillipeville"), /* campaigns/PG:565 maps/pg/map30:7 */ tr("Kursk"), /* maps/pg/map01:7 maps/pg/map02:7 */ tr("Brzeziny"), /* maps/pg/map02:7 */ tr("Modlin"), /* units/pg.udb:9893 */ tr("US B17G FF"), /* maps/pg/map21:7 */ tr("Vratsa"), /* maps/pg/map21:7 */ tr("Drin River"), /* campaigns/PG:31 */ tr("Despite of your efforts England and France have entered the war against Germany. Additionally, our Eastern ally the Soviet Union has begun invading Poland to take its share of the cake. Thus it is imperative that you advance to the Vistula river and take the key city of Warsaw and surrounding objectives by no later than the 30th of September."), /* maps/pg/map24:7 */ tr("Kremench"), /* campaigns/PG:77 */ tr("Your performance was outstanding and has brought an overwhelming victory to the Reich. My humiliation of 1918 is revenged. France has surrendered, and its dependencies will be put under German protectorate."), /* campaigns/PG:307 */ tr("You bravely haltet the Russian winter offensive and managed to establish a stable front line."), /* units/pg.udb:2752 */ tr("7.5 PaK40"), /* units/pg.udb:9669 */ tr("US P47B Tbolt"), /* maps/pg/map17:7 */ tr("Prum"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Dessau"), /* maps/pg/map04:7 */ tr("Ghent"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Neubrandenburg"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Borisov"), /* maps/pg/map08:7 */ tr("Al Kazimayah"), /* campaigns/PG:446 */ tr("After their bloody repulse in Normandy, the Allies attempt a second invasion in Southern France. Hold all objectives until the 28th of August to make this invasion a disaster to the Allies again. Otherwise, hold at least two objectives to slow down the Allied advance."), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map15:7 maps/pg/map18:7 maps/pg/map38:7 */ tr("Cherbourg"), /* */ tr("Defeat"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Zakepae"), /* maps/pg/map08:7 */ tr("Basra"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Elbe River"), /* maps/pg/map04:7 */ tr("Meuse"), /* campaigns/PG:547 */ tr("Your decisive victory in Mesopotamia has terminally weakened the English forces. Thus, there is a big opportunity to prepare an invasion of England, and end the war in the West. On the other hand, you may choose to continue advancing towards the Caucasus.##Herr General, which operation do you want to take command of?"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Millerovo"), /* campaigns/PG:607 */ tr("America has surrendered to the overwhelming might of the Wehrmacht, Luftwaffe, and Marine! The United States had to sign a peace treaty which grants German occupation of the most resourceful, and strategically most valuable American territories. You are heralded to be the greatest general on Earth without whom such a success would have never been achievable. Therefore, you are awarded the highest order medal, specially crafted for you, the Knight's Cross with Oak Leaves, Swords, and Brilliants, and you are promoted to Generalfeldmarschall. The war is over. Germany is the world, the world is Germany."), /* units/pg.udb:3312 */ tr("PO PZL P23b"), /* units/pg.udb:5749 */ tr("GB M7 Priest"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Cottbus"), /* units/pg.udb:10985 */ tr("US 37mm ATG"), /* maps/pg/map16:7 */ tr("Sisteron"), /* maps/pg/map04:7 */ tr("Lille"), /* maps/pg/map24:7 */ tr("Dnepr"), /* units/pg.udb:8465 */ tr("Transport"), /* campaigns/PG:52 */ tr("10th May 1940"), /* units/pg.udb:1996 */ tr("Jagdpz IV/70"), /* nations/pg.ndb:44 */ tr("USA"), /* maps/pg/map15:7 */ tr("Periers"), /* maps/pg/map33:7 */ tr("Tapolca"), /* maps/pg/map13:7 */ tr("Syracuse"), /* campaigns/PG:462 */ tr("25th July 1944"), /* maps/pg/map29:7 */ tr("Oskal River"), /* maps/pg/map01:7 maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 ... */ tr("Rough"), /* campaigns/PG:381 */ tr("Your early capturing of Southern England enabled us to prepare defenses against the landing of the American reinforcements, and to decisively beat them. Consequentially, England has surrendered! It is to be attributed to your talent and to the high morale of your troops that you achieved an unprecedented victory over the British Empire. England, Scotland, Ireland, and the oversea dependencies are now governed by German administration. You are herewith awarded the highest order medal of the Reich, the Knight's Cross with Oak Leaves, and Swords."), /* campaigns/PG:463 */ tr("The Allies extended their beachheads in Normandy and have built up considerable strength. With our troops scattered and exhausted, you face a hopeless battle against overwhelming forces. Your order is to hold all objectives as well as to retake Cherbourg, Carentan, and Caen. If not feasible, hold at least three objectives until the 18th of August."), /* maps/pg/map22:7 */ tr("Palaiokhora"), /* nations/pg.ndb:8 */ tr("Austria"), /* units/pg.udb:10957 */ tr("US Bridge Eng"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Mtsensk"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Wurzburg"), /* campaigns/PG:603 */ tr("1st June 1945"), /* maps/pg/map36:7 */ tr("White House"), /* maps/pg/map16:7 */ tr("Saluzzo"), /* units/pg.udb:3676 */ tr("FR MS 406"), /* scenarios/pg/Stalingrad:3 */ tr("June 25, 1942: Axis all out drive on the major industrial center of Stalingrad."), /* units/pg.udb:9781 */ tr("US B25H Mitch"), /* maps/pg/map21:7 */ tr("Gallipoli"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Bournemouth"), /* units/pg.udb:9053 */ tr("IT M15/42"), /* campaigns/PG:116 */ tr("20th May 1941"), /* maps/pg.tdb:392 */ tr("Fields"), /* maps/pg/map16:7 */ tr("Po River"), /* maps/pg/map29:7 */ tr("Lisichansk"), /* units/pg.udb:4180 */ tr("FR 105mm Gun"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Karlsruhe"), /* maps/pg/map36:7 */ tr("Lanham"), /* units/pg.udb:4853 */ tr("GB Spit XIV"), /* campaigns/PG:25 */ tr("Your failure to make an inroad success has lead to the Allies making an attack on Germany."), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Sukhum"), /* maps/pg/map08:7 */ tr("Dead Sea"), /* maps/pg/map18:7 */ tr("Fecamp"), /* scenarios/pg/ElAlamein:2 */ tr("EL ALAMEIN"), /* campaigns/PG:505 */ tr("You managed to take and hold Arnhem. Yet, bombing raids against our supply lines, and Allied reinforcements forced us to eventually abandon the Arnhem area, and to pull back behind the Rhine."), /* units/pg.udb:7877 */ tr("ST 57mm ATG"), /* maps/pg/map13:7 */ tr("Matera"), /* maps/pg/map26:7 */ tr("Novyi Shuli"), /* units/pg.udb:1464 */ tr("PzIVD"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Baku"), /* units/pg.udb:10201 */ tr("US M5"), /* maps/pg/map01:7 maps/pg/map02:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map07:7 maps/pg/map08:7 ... */ tr("Swamp"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Zurich"), /* nations/pg.ndb:60 */ tr("Netherlands"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Anglesey"), /* campaigns/PG:518 */ tr("Putting you in charge of the Africa Corps was an utter failure."), /* maps/pg/map29:7 */ tr("Andreyevka"), /* campaigns/PG:135 */ tr("22nd June 1941"), /* maps/pg/map13:7 */ tr("Pizzo"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Kielce"), /* maps/pg/map18:7 */ tr("Dreux"), /* units/pg.udb:8521 */ tr("IT Re2000/F1"), /* maps/pg/map19:7 */ tr("Deurne"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Teschen"), /* units/pg.udb:10677 */ tr("US M36"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Wilhelmshaven"), /* scenarios/pg/BerlinEast:2 */ tr("BERLIN (EAST)"), /* campaigns/PG:540 */ tr("Your next order is to secure the Middle East and Mesopotamia in order to allow for a new Southern front into the Caucasus. Take all objectives by the 15th of November at the latest before autumn rainfalls will stop our advance in the mud."), /* units/pg.udb:8073 */ tr("AF BtCruiser"), /* campaigns/PG:110 */ tr("With Yugoslavia and Greece having surrendered, nothing can stop our upcoming invasion of Russia."), /* maps/pg/map16:7 */ tr("Ales"), /* units/pg.udb:19 units/pg.udb:47 */ tr("Air"), /* maps/pg/map19:7 */ tr("Volkel"), /* maps/pg/map14:7 */ tr("Vellitri"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Oppeln"), /* maps/pg/map03:7 */ tr("Steinkjer"), /* maps/pg/map29:7 */ tr("Petropavlovka"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Krefeld"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Sheffield"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Minsk"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map30:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Karachev"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Exeter"), /* scenarios/pg/Moscow41:2 */ tr("MOSCOW (41)"), /* units/pg.udb:9333 */ tr("Bridge Eng"), /* campaigns/PG:319 */ tr("5th July 1943"), /* maps/pg/map21:7 */ tr("Tirana"), /* maps/pg/map24:7 */ tr("Priluki"), /* units/pg.udb:2724 */ tr("5 PaK38"), /* maps/pg/map14:7 */ tr("Tiber River"), /* maps/pg/map30:7 */ tr("Lgov"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Duisburg"), /* maps/pg/map33:7 */ tr("Tab"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Bremen"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Kassel"), /* maps/pg/map22:7 */ tr("Canea"), /* units/pg.udb:10733 */ tr("US Inf 43"), /* maps/pg/map36:7 */ tr("Brightwood"), /* units/pg.udb:10425 */ tr("US M8 HMC"), /* maps/pg/map15:7 */ tr("Riva-Bella"), /* maps/pg/map17:7 */ tr("Houffalize"), /* maps/pg/map20:7 maps/pg/map33:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Gyor"), /* units/pg.udb:8213 */ tr("AF Submarine"), /* maps/pg/map17:7 */ tr("Malmedy"), /* maps/pg/map33:7 */ tr("Veszprem"), /* maps/pg/map36:7 */ tr("Quantico"), /* maps/pg/map29:7 */ tr("Kirovi River"), /* maps/pg/map33:7 */ tr("Mezoszilas"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Prague"), /* campaigns/PG:139 */ tr("Russian reserves eventually stopped our slow advance and built up momentum to drive our troops back into the Reich."), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Canterbury"), /* maps/pg/map01:7 */ tr("Kalisz"), /* scenarios/pg/Caucasus:3 */ tr("June 30, 1942: Axis strikes into Russia's oil rich territory from a new southern front."), /* campaigns/PG:411 */ tr("Holding Rome has kept the Allied from invading our heartlands from the South."), /* nations/pg.ndb:84 */ tr("Sovjetunion"), /* maps/pg/map05:7 */ tr("Loire"), /* scenarios/pg/Husky:3 */ tr("July 10, 1943: The Allies invade the Soft Underbelly of Europe."), /* units/pg.udb:55 */ tr("All Terrain"), /* campaigns/PG:445 */ tr("6th August 1944"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Szczytno"), /* scenarios/pg/Cobra:3 */ tr("July 25, 1944: The Allied breakout from Normandy."), /* units/pg.udb:5861 */ tr("GB AEC II"), /* campaigns/PG:578 */ tr("Your exemplary victory in Sicily has considerably impressed General staff. Therefore, you are offered command over the strike force against Moscow.##Herr General, do you want to stay in Italy, or do you want to be transferred to the Eastern front?"), /* maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 */ tr("Avon"), /* maps/pg/map05:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map15:7 maps/pg/map18:7 maps/pg/map38:7 ... */ tr("Le Havre"), /* maps/pg/map36:7 */ tr("University"), /* maps/pg/map29:7 */ tr("Chuguyev"), /* units/pg.udb:11349 */ tr("FFR Mtn Inf"), /* units/pg.udb:2220 */ tr("sIG IB"), /* maps/pg/map12:7 */ tr("Gafsa"), /* campaigns/PG:89 */ tr("1st September 1940"), /* units/pg.udb:9725 */ tr("US P47N Tbolt"), /* maps/pg/map22:7 */ tr("Kastelli"), /* units/pg.udb:3172 */ tr("43 LuftW FJ"), /* maps/pg/map36:7 */ tr("Fairfax"), /* campaigns/PG:358 */ tr("Your decisive victory in the battle of Budapest has made the Russians sign a favourable peace treaty. Combined with your earlier victory over England, we have won the war on both fronts. You are herewith promoted to Generalfeldmarschall as an acknowledgement of your brave achievements for the Reich during the war."), /* maps/pg/map04:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Aachen"), /* units/pg.udb:8493 */ tr("S-Boat"), /* maps/pg/map24:7 */ tr("Lokhvitsa"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Grodno"), /* units/pg.udb:1548 */ tr("PzIVJ"), /* maps/pg/map21:7 */ tr("Zvornik"), /* maps/pg/map05:7 maps/pg/map18:7 */ tr("Nantes"), /* units/pg.udb:10705 */ tr("US Inf 41"), /* maps/pg/map04:7 maps/pg/map17:7 */ tr("Givet"), /* campaigns/PG:487 */ tr("Herr General, your outstanding performance left a lasting impression to the Allied leader, enabling our Administration to sign a favourable peace treaty. The war in the West is now over."), /* units/pg.udb:7961 */ tr("ST 15.2cm Gun"), /* units/pg.udb:11881 */ tr("Fort"), /* scenarios/pg/Sealion40:2 */ tr("SEALION (40)"), /* maps/pg/map23:7 maps/pg/map32:7 */ tr("Nieman River"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Metz"), /* units/pg.udb:8717 */ tr("IT P108 Bi"), /* scenarios/pg/MarketGarden:2 */ tr("MARKET-GARDEN"), /* units/pg.udb:5413 */ tr("GB Chal A30"), /* maps/pg/map05:7 maps/pg/map15:7 maps/pg/map18:7 */ tr("Bocage"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Linz"), /* units/pg.udb:4292 */ tr("NOR Infantry"), /* scenarios/pg/SealionPlus:2 */ tr("SEALION PLUS"), /* units/pg.udb:1436 */ tr("Pioniere Inf"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Kletskavka"), /* maps/pg/map21:7 */ tr("Trikkala"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Allenstein"), /* maps/pg/map17:7 */ tr("Eupen"), /* units/pg.udb:2332 */ tr("Hummel"), /* maps/pg/map18:7 */ tr("Yvetot"), /* maps/pg/map21:7 */ tr("Kukes"), /* campaigns/PG:57 */ tr("You have proven to be a worthy Panzer General and secured the lowlands separating Germany from the heart of France. Now, the final assault on France is ready to commence. Unfortunately, time did not permit preparations of an invasion of England."), /* maps/pg/map24:7 */ tr("Chernobay"), /* maps/pg/map07:7 maps/pg/map09:7 */ tr("Bir Hacheim"), /* maps/pg/map04:7 */ tr("Bittem"), /* maps/pg/map33:7 */ tr("Dunaujvaros"), /* units/pg.udb:10789 */ tr("US Inf HW 43"), /* scenarios/pg/MiddleEast:2 */ tr("MIDDLE EAST"), /* maps/pg/map21:7 */ tr("Banja Luka"), /* maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Cologne"), /* units/pg.udb:876 */ tr("HE177a"), /* units/pg.udb:7485 */ tr("ST KV-2"), /* maps/pg/map21:7 */ tr("Novigrad"), /* maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 */ tr("Mezol River"), /* units/pg.udb:10537 */ tr("US M15A1 MGMC"), /* campaigns/PG:93 */ tr("England has surrendered! It is to be attributed to your talent and to the high morale of your troops that you achieved an unprecedented victory over the British Empire. England, Scotland, Ireland, and the oversea dependencies are now governed by German administration. You are herewith awarded one of the highest order medals of the Reich, the Iron Cross with Oak Leaves, and Swords."), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Ural"), /* units/pg.udb:4909 */ tr("GB Blen MkI"), /* maps/pg/map36:7 */ tr("Gaithersburg"), /* maps/pg/map17:7 */ tr("Spa"), /* units/pg.udb:568 */ tr("ME410a"), /* units/pg.udb:3984 */ tr("FR Ch B1-bis"), /* maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 */ tr("Arnhem"), /* units/pg.udb:10873 */ tr("US Rangers 43"), /* maps/pg/map17:7 */ tr("Leuvein"), /* maps/pg/map15:7 */ tr("Deauville"), /* maps/pg/map10:7 maps/pg/map28:7 */ tr("Kotelnikovo"), }; } lgeneral-1.3.1/po/pg/de.po0000664000175000017500000061471312643745103012225 00000000000000# translation of de.po to Deutsch # Deutsche Übersetzung für die PG-Resourcen. # Copyright (C) 2005 Leo Savernik # Leo Savernik , 2005. # # msgid "" msgstr "" "Project-Id-Version: de\n" "POT-Creation-Date: 2005-12-28 20:37+0000\n" "PO-Revision-Date: 2005-12-29 12:45+0000\n" "Last-Translator: Leo Savernik \n" "Language-Team: Deutsch \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.3.1\n" #. campaigns/PG:251 msgid "" "Although you managed to capture and destroy Stalingrad, shortages in " "supplies, and winter weather have exhausted our troops. This allowed the " "Russians to cut off large parts of the 6th Army in Stalingrad and annihilate " "them, and drive back the Eastern front." msgstr "" "Obwohl Sie Stalingrad erobern und zerstören konnten, haben " "Versorgungsschwierigkeiten und Kälte unsere Truppen erschöpft. Das " "ermöglichte den Russen, große Teile der 6. Armee in Stalingrad abzuschneiden " "und zu vernichten, sowie die Ostfront zurückzudrängen." #. maps/pg/map15:7 msgid "Conde-sur-Noireau" msgstr "Condé-sur-Noireau" #. campaigns/PG:285 msgid "1st October 1942" msgstr "1. Oktober 1942" #. maps/pg/map21:7 msgid "Makarska" msgstr "Makarska" #. maps/pg/map24:7 msgid "Mirgorod" msgstr "Mirgorod" #. maps/pg/map03:7 msgid "Namsos" msgstr "Namsos" #. maps/pg/map17:7 msgid "Trois-Ponts" msgstr "Trois-Ponts" #. units/pg.udb:2248 msgid "sIG II" msgstr "sIG II" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Thorin" msgstr "Thorin" #. maps/pg/map03:7 maps/pg/map06:7 maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 maps/pg/map10:7 ... msgid "Mountain" msgstr "Berg" #. maps/pg/map18:7 msgid "Elbeuf" msgstr "Elbeuf" #. units/pg.udb:11433 msgid "FFR 57mm ATG" msgstr "FFR 57mm PaK" #. campaigns/PG:47 msgid "" "Despite your heroic efforts, Norwegian and English resistence was too strong " "to clean the territory from enemy influence. As the state of affairs is " "heating up on the Western border, we had to retract all forces from Noway, " "and divert you there." msgstr "" "Trotz heldenhafter Bemühungen war der norwegische und englische Widerstand " "zu groß, um das Gebiet vom Feindeinfluss zu säubern. Da sich die Lage an der " "Westfront zuspitzt, mussten wir alle Kräfte aus Norwegen abziehen und sie an " "die Westfront verlagern." #. campaigns/PG:649 msgid "" "You have achieved a minor victory for the german Reich, Commander! Well done." msgstr "" "Sie haben einen knappen Sieg für das Reich errungen, Herr General! Nicht " "schlecht." #. campaigns/PG:504 msgid "" "Congratulations on your outstanding and brave counter-attack. Yet, bombing " "raids against our supply lines, and Allied reinforcements forced us to " "eventually abandon the Arnhem area, and to pull back behind the Rhine." msgstr "" "Gratulations zu Ihrem außergewöhnlichen und tapferen Gegenangriff. Dennoch " "zwangen uns alliierte Luftangriffe gegen unsere Nachschublinien und " "alliierte Verstärkungen zur Aufgabe des Arnheim-Gebietes und uns hinter den " "Rhein zurückzuziehen." #. maps/pg/map13:7 msgid "Catanzaro" msgstr "Catanzaro" #. campaigns/PG:233 msgid "" "Excellent! By taking Sevastopol and the Krim peninsula early, we could " "annihilate the Russian Black Sea fleet. There will be no more interference " "on our ongoing advance to the East." msgstr "" "Exzellent! Durch die frühe Eroberung von Sewastopol und der Krim konnten wir " "die russische Schwarzmeerflotte vernichten. Somit wird es keine weiteren " "Störungen geben bei unserem Vormarsch im Osten." #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Essen" msgstr "Essen" #. maps/pg/map14:7 msgid "Spoleto" msgstr "Spoleto" #. units/pg.udb:94 msgid "Submarine" msgstr "U-Boot" #. maps/pg/map03:7 msgid "Honefoss" msgstr "Hønefoss" #. units/pg.udb:4432 msgid "AD Mk II Fort" msgstr "AV Mk II Festg" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Salzburg" msgstr "Salzburg" #. maps/pg/map24:7 msgid "Berezna" msgstr "Berezna" #. units/pg.udb:5945 msgid "GB AEC III" msgstr "GB AEC III" #. campaigns/PG:368 msgid "" "Herr General, you fared excellent! Russia has signed a peace treaty, and we " "can fully throw our forces against the Allied." msgstr "" "Herr General, Sie sind hervorragend gefahren! Russland hat einen " "Friedensvertrag unterzeichnet, und wir können nun unsere Kräfte gegen die " "Alliierten aufbieten." #. maps/pg/map26:7 msgid "Alma River" msgstr "Alma" #. campaigns/PG:2 msgid "Nazi Germany starts World War II, attempting to seize the world." msgstr "" "Nazideutschland bricht den Zweiten Weltkrieg vom Zaun und trachtet nach der " "Weltherrschaft." #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Rostock" msgstr "Rostock" #. maps/pg/map01:7 maps/pg/map02:7 msgid "Ozorkow" msgstr "Ozorków" #. maps/pg/map15:7 msgid "Trouville" msgstr "Trouville" #. maps/pg/map16:7 msgid "Rhone River" msgstr "Rhône" #. maps/pg/map19:7 msgid "Best" msgstr "Best" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Chartres" msgstr "Chartres" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Newbury" msgstr "Newbury" #. maps/pg/map05:7 msgid "Vichy" msgstr "Vichy" #. units/pg.udb:7849 msgid "ST 45mm ATG" msgstr "ST 45mm PaK" #. maps/pg/map14:7 msgid "Caserta" msgstr "Caserta" #. units/pg.udb:3452 msgid "PO Cavalry" msgstr "PO Kavallerie" #. maps/pg/map18:7 msgid "Chateaudun" msgstr "Châteaudun" #. maps/pg/map29:7 msgid "Konstantinovka" msgstr "Konstantinowka" #. maps/pg/map36:7 msgid "Brandywine" msgstr "Brandywine" #. maps/pg/map24:7 msgid "Smela" msgstr "Smela" #. maps/pg/map19:7 msgid "Wyler" msgstr "Wyler" #. units/pg.udb:9389 msgid "Bulgarian Inf" msgstr "Bulgarische Inf" #. scenarios/pg/Barbarossa:3 msgid "" "June 22, 1941: Germany launches a surprise attack on its ally, the Soviet " "Union." msgstr "" "22. Juni 1941: Deutschland startet einen Überraschungsangriff auf seinen " "Verbündeten, die Sowjetunion." #. nations/pg.ndb:20 msgid "Luxemburg" msgstr "Luxemburg" #. maps/pg/map17:7 msgid "Saar River" msgstr "Saar" #. maps/pg/map17:7 msgid "Gembloux" msgstr "Gembloux" #. units/pg.udb:9977 msgid "US B32 Dom" msgstr "US B32 Dom" #. units/pg.udb:4544 msgid "LC Infantry" msgstr "LC Infanterie" #. maps/pg/map14:7 msgid "Liri River" msgstr "Liri" #. maps/pg/map13:7 msgid "Cosenza" msgstr "Cosenza" #. maps/pg/map29:7 msgid "Valuyki" msgstr "Valujki" #. maps/pg/map17:7 msgid "Elsenborn" msgstr "Elsenborn" #. maps/pg/map24:7 msgid "Belaya Tserkov" msgstr "Belaja Tserkow" #. maps/pg/map26:7 msgid "Lyubimuka" msgstr "Ljubimuka" #. maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 maps/pg/map07:7 maps/pg/map08:7 ... msgid "Ocean" msgstr "Ozean" #. scenarios/pg/Torch:3 msgid "Nov 8, 1942: Americans face the veterans of the Afrika Korps." msgstr "8. Nov 1942: Die Amerikaner treffen auf die Veteranen des Afrikakorps." #. maps/pg/map29:7 msgid "Kupyansk" msgstr "Kupjansk" #. units/pg.udb:8157 msgid "AF Destroyer" msgstr "AS Zerstörer" #. maps/pg/map12:7 msgid "Djidjelli" msgstr "Dschidschelli" #. maps/pg/map17:7 msgid "St. Trond" msgstr "St. Trond" #. maps/pg/map24:7 msgid "Gomel" msgstr "Gomel" #. maps/pg/map17:7 msgid "Ciney" msgstr "Ciney" #. maps/pg/map17:7 msgid "Dyle River" msgstr "Dyle" #. maps/pg/map21:7 msgid "Kutina" msgstr "Kutina" #. units/pg.udb:9081 msgid "IT 75mm SPAD" msgstr "IT 75mm SFFlaK" #. maps/pg/map08:7 msgid "Al Maffraq" msgstr "Al Mafraq" #. maps/pg/map17:7 msgid "Dasburg" msgstr "Dasburg" #. maps/pg/map21:7 msgid "Gusnie" msgstr "Gusnie" #. campaigns/PG:650 msgid "" "You have achieved a major victory for the german Reich, Commander! Excellent!" msgstr "" "Sie haben einen grandiosen Sieg für das Reich errungen, Herr General! " "Ausgezeichnet!" #. campaigns/PG:45 msgid "" "Excellent, Herr General! Your quick taking of Norway has enabled us to expel " "the English forces from Norway and station our fleet there. Our supply lines " "should be safe. You have been awarded command over troops at the Western " "border." msgstr "" "Ausgezeichnet, Herr General! Ihre schnelle Eroberung von Norwegen erlaubte " "uns, die Englischen Kräfte aus Norwegen zu vertreiben und unsere Flotte dort " "zu stationieren. Unser Nachschub ist nun gesichert. Wir wenden uns nun der " "Westfront zu." #. units/pg.udb:5021 msgid "GB Stir MkI" msgstr "GB Stir MkI" #. units/pg.udb:1380 msgid "PzIIIJ" msgstr "PzIIIJ" #. campaigns/PG:24 msgid "" "You managed to break resistence in time before the Allies could react. The " "gates to Warsaw are now wide open." msgstr "" "Sie konnten den Widerstand brechen, bevor die Alliierten reagierten. Die " "Tore Warschaus sind nun weit geöffnet." #. units/pg.udb:6813 msgid "ST Il-2" msgstr "ST Il-2" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kattowitz" msgstr "Kattowitz" #. units/pg.udb:3732 msgid "FFR M5" msgstr "FFR M5" #. maps/pg/map13:7 maps/pg/map14:7 msgid "Cassino" msgstr "Cassino" #. scenarios/pg/Kiev:3 msgid "" "August 23, 1941: The Wehrmacht attempts to pocket and destroy Soviet forces " "defending Kiev." msgstr "" "23. August 1941: Die Wehrmacht versucht die sowjetischen Verteidiger um Kiew " "zu umfassen und zu vernichten." #. units/pg.udb:5357 msgid "GB Crom VI" msgstr "GB Crom VI" #. maps/pg/map16:7 msgid "Monaco" msgstr "Monaco" #. campaigns/PG:95 msgid "" "Your failure to conquer England had given the enemy a chance to build up " "resistence and assemble a naval fleet of formidable strength crippling our " "supply lines. Thus, our expeditionary forces were severely decimated, " "forcing us to sign an unfavorable peace treaty." msgstr "" "Ihr Versagen bei der Eroberung Englands gab dem Feind die Möglichkeit, " "Widerstände zu verschärfen und starke Flottenverbände gegen unsere " "Nachschublinien einzusetzen. Somit wurden unsere Expeditionsarmeen übermäßig " "dezimiert, was uns zur Unterzeichnung eines nachteiligen Friedensvertrages " "zwang." #. maps/pg/map16:7 msgid "Cannes" msgstr "Cannes" #. campaigns/PG:402 msgid "" "The mission was a disaster. Not sustaining allowed the Allies to invade " "Germany from the South. Thanks to your earlier victory over Russia, quickly " "established war industries allowed us to fend off the capturing of Germany, " "allowing us to negotiate a peace treaty at minor disadvantages." msgstr "" "Die Mission war ein Fehlschlag. Die Alliierten konnten Deutschland vom Süden " "her besetzen. Dank Ihres früheren Sieges über Russland, schnell errichtete " "Rüstungsbetriebe konnten die endgültige Besetzung von Deutschland " "verhindern, wodurch wir einen nur leicht nachteiligen Friedensvertrag " "aushandeln konnten." #. maps/pg/map26:7 msgid "Belbok" msgstr "Belbok" #. units/pg.udb:5133 msgid "GB Matilda II" msgstr "GB Matilda II" #. maps/pg/map29:7 msgid "Trostyanets" msgstr "Trostjanets" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 ... msgid "Forest" msgstr "Wald" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Dniepr River" msgstr "Dnjepr" #. campaigns/PG:488 msgid "" "Despite your initial success in the Ardennes, the Allies denied our peace " "offering. With reinforcements arrived, they managed to drive us back to the " "limits of the Reich." msgstr "" "Trotz Ihres anfänglichen Erfolgs in den Ardennen lehnten die Alliierten " "unser Friedensangebot ab. Mit Verstärkungen drängten sie uns zu den " "Reichsgrenzen zurück." #. maps/pg/map29:7 maps/pg/map30:7 msgid "Belgorod" msgstr "Belgorod" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Voroshilovgrad" msgstr "Woroschilowgrad" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Nelidova" msgstr "Nelidova" #. maps/pg/map04:7 maps/pg/map17:7 msgid "Brussels" msgstr "Brüssel" #. maps/pg/map16:7 msgid "Aix-en-Provence" msgstr "Aix-en-Provence" #. maps/pg/map16:7 msgid "Grand Rhone River" msgstr "Große Rhône" #. campaigns/PG:275 campaigns/PG:331 campaigns/PG:418 msgid "Byelorussia" msgstr "Weißrussland" #. units/pg.udb:3284 msgid "PO PZL P24g" msgstr "PO PZL P24g" #. units/pg.udb:2696 msgid "3.7 PaK35/36" msgstr "3,7 Pak35/36" #. units/pg.udb:103 msgid "Aircraft Carrier" msgstr "Flugzeugträger" #. maps/pg/map24:7 msgid "Petrikov" msgstr "Petrikow" #. maps/pg/map07:7 maps/pg/map09:7 msgid "El Agheila" msgstr "El Agheila" #. maps/pg/map26:7 msgid "Nikoaevka" msgstr "Nikoaewka" #. units/pg.udb:106 msgid "Land Transport" msgstr "Landtransport" #. maps/pg/map19:7 msgid "Grave" msgstr "Grave" #. units/pg.udb:1660 msgid "Tiger I" msgstr "Tiger I" #. maps/pg/map05:7 msgid "Cholet" msgstr "Cholet" #. units/pg.udb:9361 msgid "AF Partisans" msgstr "AS Partisanen" #. units/pg.udb:5973 msgid "GB Ram Kg" msgstr "GB Ram Kg" #. maps/pg/map24:7 msgid "Kalinkovich" msgstr "Kalinkowitsch" #. maps/pg/map04:7 maps/pg/map05:7 maps/pg/map18:7 msgid "Abbeville" msgstr "Abbeville" #. maps/pg/map13:7 msgid "Enna" msgstr "Enna" #. campaigns/PG:514 msgid "" "You are now in charge of the Africa Corps to aid Italian troops in their " "battle against English mediterranean dependencies in North Africa. " "Strategically, High Commands attempts to take Egypt, and then to proceed " "towards Persia to open up a new Southern front into Russia. You have to take " "all objectives until the 27th of June at the latest, but to allow us to " "garrison sufficiently against counter-attacks, you should finish the mission " "earlier." msgstr "" "Sie führen nun das Afrikakorps, um die italienischen Truppen in ihrem Kampf " "gegen englische Mittelmeerkolonien in Nordafrika zu unterstützen. Die " "Strategie sieht die Eroberung Ägyptens und den Vorstoß zur persischen Grenze " "vor für eine neue Südfront gegen Russland. Nehmen Sie alle Ziele bis " "spätestens zum 27. Juni ein. Um diese jedoch gegen Gegenangriffe " "abzusichern, sollten Sie ihre Mission früher beenden." #. maps/pg/map13:7 msgid "Caltagirone" msgstr "Caltagirone" #. units/pg.udb:7037 msgid "ST BT-5" msgstr "ST BT-5" #. maps/pg/map29:7 msgid "Izyum" msgstr "Isjum" #. units/pg.udb:10817 msgid "US Para 41" msgstr "US Para 41" #. maps/pg/map29:7 msgid "Korocha" msgstr "Korotscha" #. campaigns/PG:628 msgid "" "You bravely fended off the Russian onslaught from the Reich's limits. " "Combined with your earlier victory over England allowed us to return to the " "pre-war status-quo in the East." msgstr "" "Sie haben den russischen Ansturm tapfer von den Reichsgrenzen abgewehrt. Mit " "Ihrem früheren Sieg über England konnten wir im Osten zum Status quo der " "Vorkriegszeit zurückkehren." #. campaigns/PG:522 msgid "" "General staff is pleased with your success, and offers you the opportunity " "to lead the pocket operations around Kiev.##Herr General, would you like to " "stay in the desert, or participate in the Eastern theater?" msgstr "" "Der Generalstab zeigt sich mit Ihrem Erfolg zufrieden und bietet Ihren die " "Gelegenheit, die Umfassungsoperation um Kiew zu leiten.##Herr General, " "möchten Sie in der Wüste bleiben oder an der Ostfront teilnehmen?" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Salsk" msgstr "Salsk" #. units/pg.udb:2836 msgid "7.5 leFk 16nA" msgstr "7,5 leFk 16nA" #. units/pg.udb:1800 msgid "StuGIIIG" msgstr "StuGIIIG" #. campaigns/PG:528 msgid "26th May 1942" msgstr "26. Mai 1942" #. maps/pg/map33:7 msgid "Mor" msgstr "Mor" #. maps/pg/map18:7 msgid "Evreux" msgstr "Evreux" #. scenarios/pg/Crete:2 msgid "CRETE" msgstr "KRETA" #. maps/pg/map36:7 msgid "Capitol Heights" msgstr "Kapitolhöhen" #. units/pg.udb:9165 msgid "IT Fiat Truck" msgstr "IT Fiat Lastwagen" #. scenarios/pg/Washington:3 msgid "June 1, 1945: Yesterday Europe. Today America?" msgstr "1. Juni 1945: Gestern Europa. Heute Amerika?" #. scenarios/pg/Kharkov:2 msgid "KHARKOV" msgstr "CHARKOW" #. maps/pg/map16:7 msgid "Arles" msgstr "Arles" #. maps/pg/map19:7 msgid "Ijssel River" msgstr "Ijssel" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Zwickau" msgstr "Zwickau" #. maps/pg/map08:7 msgid "An Nabk" msgstr "An Nabk" #. maps/pg/map16:7 msgid "Avignon" msgstr "Avignon" #. maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Warta River" msgstr "Warta" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Rouen" msgstr "Rouen" #. maps/pg/map04:7 msgid "Hirshon" msgstr "Hirson" #. maps/pg/map17:7 msgid "Maubege" msgstr "Maubeuge" #. units/pg.udb:9641 msgid "US P51H Mustg" msgstr "US P51H Mustg" #. campaigns/PG:153 msgid "Let us battle the Soviet forces around Kiev." msgstr "Bekämpfen wir die Sowjets um Kiew" #. units/pg.udb:10257 msgid "US M4A3 (105)" msgstr "US M4A3 (105)" #. units/pg.udb:4264 msgid "NOR F-DXXIII" msgstr "NOR F-DXXIII" #. campaigns/PG:624 msgid "" "We are now facing a massive force in the East invading German soil. Your " "order is to hold Berlin and at least five other objectives to prevent " "further detriment to the Reich." msgstr "" "Wir blicken nun einer gewaltigen Streitmacht im Osten entgegen, die " "deutschen Boden betritt. Ihr Befehl lautet, Berlin und mindestens fünf " "andere Ziele zu halten, um weiteren Schaden vom Reich abzuwenden." #. maps/pg/map29:7 msgid "Samara River" msgstr "Samara" #. campaigns/PG:206 msgid "" "Moscow, capital and industrial, and logistical center of Russia, is the " "ultimate objective you have to strive for on the Eastern front. You have to " "capture Moscow and all other objectives by the 4th of December at the " "latest. Yet to prevent autumn weather to slow down our advance, you should " "finish your mission several weeks earlier." msgstr "" "Moskau, Hauptstadt und industriell-logistisches Zentrum von Russland, ist " "das letzte zu erstrebende Ziel an der Ostfront. Besetzen Sie Moskau und alle " "anderen Ziele bis spätestens zum 4. Dezember. Um die zu erwartende " "Behinderung unseres Vormarsches durch das Herbstwetter zu minimieren, " "sollten Sie Ihre Mission einige Wochen vorher beenden." #. maps/pg.tdb:32 msgid "Snowing(Mud)" msgstr "Schnee (aufgeweicht)" #. campaigns/PG:179 msgid "" "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have " "achieved what Napoleon only dreamed of. All of Russia has been put under " "German administration, and we have already begun exploiting its vast " "resources. Your decision to take the early route towards Moscow was right, " "and therefore you get awarded the highest order medal of the Reich, the " "Knight's Cross with Oak Leaves and Swords." msgstr "" "Moskau ist gefallen, und die Sowjetunion hat kapituliert! Sie haben " "erreicht, wovon Napoleon nur träumte. Russland wurde unter deutsche " "Verwaltung gestellt, und wir begannen bereits mit der Ausbeutung seiner " "gewaltigen Rohstoffvorkommen. Ihre Entscheidung zum direkten Marsch auf " "Moskau war richtig, weswegen Ihnen der höchste Orden des Reiches, das " "Ritterkreuz mit Eichenlaub und Schwertern, verliehen wird." #. units/pg.udb:9529 msgid "US P38 Ltng" msgstr "US P38 Ltng" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Ulm" msgstr "Ulm" #. maps/pg/map24:7 msgid "Novozybkov" msgstr "Nowosibkow" #. maps/pg/map17:7 msgid "Saarburg" msgstr "Saarburg" #. units/pg.udb:1352 msgid "PzIIIH" msgstr "PzIIIH" #. units/pg.udb:2808 msgid "PzIVF2" msgstr "PzIVF2" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Saint Lo" msgstr "Saint Lô" #. maps/pg/map24:7 msgid "Semenovka" msgstr "Semenowka" #. campaigns/PG:569 msgid "10th July 1943" msgstr "10. Juli 1943" #. units/pg.udb:9417 msgid "Hungarian Inf" msgstr "Ungarische Inf" #. maps/pg/map36:7 msgid "Centreville" msgstr "Centreville" #. maps/pg/map30:7 msgid "Kromy" msgstr "Kromy" #. maps/pg/map12:7 msgid "Constantine" msgstr "Constantine" #. campaigns/PG:563 msgid "" "Your leadership skills are currently asked for at two places. You may choose " "to lead the upcoming Summer offensive in Russia against the pocket of Kursk, " "or to defend Italy against the expected invasion of allied troops.##Which " "battle do you want to participate in?" msgstr "" "Ihre Führungsqualitäten sind momentan an zwei Orten gefragt. Wählen Sie " "zwischen der kommenden Sommeroffensive in Russland gegen den Kessel von " "Kursk und der Verteidigung von Italien gegen die erwartete alliierte " "Invasion.##An welcher Schlacht möchten Sie teilnehmen?" #. campaigns/PG:109 msgid "" "The quick and decisive blow you delivered to both Yugoslavia and Greece " "enabled High Command to prepare an airborne invasion of Crete. You have " "served the country well, and are awarded command over the operation." msgstr "" "Der schnelle und entschiedene Schlag gegen Jugoslawien und Griechenland " "erlaubte dem Oberkommando die Vorbereitung einer Luftlandung auf Kreta. Sie " "haben Ihrem Lande wohl gedient und werden daher mit dem Kommando über dieses " "Unternehmen betraut." #. units/pg.udb:708 msgid "JU87D" msgstr "JU87D" #. maps/pg/map26:7 msgid "Kamyshly" msgstr "Kamischli" #. maps/pg/map24:7 msgid "Gradizhisk" msgstr "Gradischisk" #. units/pg.udb:2500 msgid "Opel 6700" msgstr "Opel 6700" #. maps/pg/map36:7 msgid "Chester River" msgstr "Chester" #. campaigns/PG:111 msgid "" "With Yugoslavia and Greece partially undefeated, we had to spare additional " "troops for the defence lines that will be missing on the Russian front." msgstr "" "Wegen der ungeschlagenen Teile von Jugoslawien und Griechenland mussten " "zusätzliche Truppen zur Verteidigung abgestellt werden, die nun an der " "russischen Front fehlen." #. units/pg.udb:11293 msgid "US M20 LAC" msgstr "US M20 LAC" #. scenarios/pg/LowCountries:3 msgid "" "May 10, 1940: Flanking the heavy fortifications of the Maginot Line, the " "Germans invade France through Belgium, Luxembourg, and the Netherlands." msgstr "" "10. Mai 1940: Vorbei an den mächtigen Festungen der Maginotlinie dringen die " "Deutschen über Belgien, Luxemburg und die Niederlande in Frankreich ein." #. maps/pg/map15:7 msgid "St. Pierre" msgstr "St. Pierre" #. maps/pg/map15:7 msgid "Mortain" msgstr "Mortain" #. campaigns/PG:210 msgid "" "Your initial capture of Moscow let arise hope that Russia would surrender. " "Unfortunately, fresh Siberian reserves started a counter-attack and expelled " "our exhausted and worn down spearheads out of the capital. While we managed " "to establish a stable front line again, we could not attempt another advance " "in 1941." msgstr "" "Ihre Eroberung Moskaus ließ Hoffnung auf eine russische Kapitulation " "aufkeimen. Unglücklicherweise führten ausgeruhte sibirische Reserven einen " "Entsatzangriff durch, der unsere erschöpften Truppen aus der Hauptstradt " "trieb. Obwohl wir die Front stabilisieren konnten, waren weitere Angriffe " "1941 undurchführbar." #. maps/pg/map03:7 msgid "Gol" msgstr "Gol" #. maps/pg/map15:7 msgid "La Ferte-Mace" msgstr "La Ferté-Mace" #. maps/pg/map36:7 msgid "Arlington" msgstr "Arlington" #. maps/pg/map24:7 msgid "Berdichev" msgstr "Berditschew" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Roslavl" msgstr "Roslawl" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Saratov" msgstr "Saratow" #. scenarios/pg/ElAlamein:3 msgid "May 26, 1942: Axis attempts to crush the Allied forces in North Africa." msgstr "" "26. Mai 1942: Die Achse versucht die alliierten Streitkräfte in Nordafrika " "zu zermalmen." #. campaigns/PG:302 msgid "11th February 1943" msgstr "11. Februar 1943" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Vladimirovka" msgstr "Wladimirowka" #. units/pg.udb:4348 msgid "AD Mk I SP" msgstr "AV Mk I Stlg" #. units/pg.udb:512 msgid "BF110g" msgstr "BF110g" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Nottingham" msgstr "Nottingham" #. maps/pg/map08:7 msgid "Baghdad" msgstr "Bagdad" #. maps/pg/map21:7 msgid "Dubrovnik" msgstr "Dubrovnik" #. units/pg.udb:8129 msgid "AF LtCruiser" msgstr "AS LtKreuzer" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 ... msgid "Clear" msgstr "Ebene" #. maps/pg/map15:7 msgid "Isigny" msgstr "Isigny" #. units/pg.udb:8045 msgid "AF Battleship" msgstr "AS Schlachtschiff" #. campaigns/PG:120 msgid "" "Excellent! Despite heavy resistence, the suppremacy over the Mediterranean " "Sea is ours. Nothing can stop our operations in Russia now." msgstr "" "Hervorragend! Trotz heftiger Widerstände beherrschen wir nun das gesamte " "Mittelmeer. Nichts mehr kann unsere Unternehmungen in Russland aufhalten." #. maps/pg/map08:7 msgid "Bierut" msgstr "Beirut" #. units/pg.udb:3116 msgid "43 Wehr HW" msgstr "43 Wehr Gren" #. campaigns/PG:257 campaigns/PG:263 msgid "9th October 1943" msgstr "9. Oktober 1943" #. maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Oder River" msgstr "Oder" #. units/pg.udb:117 msgid "BF109e" msgstr "BF109e" #. maps/pg/map17:7 msgid "Waavre" msgstr "Waavre" #. maps/pg/map36:7 msgid "Chevy Chase" msgstr "Chevy Chase" #. maps/pg/map36:7 msgid "College Park" msgstr "College Park" #. units/pg.udb:764 msgid "DO17z" msgstr "DO17z" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Gleiwitz" msgstr "Gleiwitz" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Stralsund" msgstr "Stralsund" #. maps/pg/map19:7 msgid "Ede" msgstr "Ede" #. units/pg.udb:6281 msgid "GB 5.5 Inches Gun" msgstr "GB 5,5 Zoll Geschütz" #. nations/pg.ndb:12 msgid "Belgia" msgstr "Belgien" #. units/pg.udb:4937 msgid "GB Blen MkIV" msgstr "GB Blen MkIV" #. maps/pg/map05:7 msgid "Reims" msgstr "Reims" #. maps/pg/map05:7 msgid "Thierry" msgstr "Thierry" #. units/pg.udb:10761 msgid "US Inf HW 41" msgstr "US Inf Gren 41" #. scenarios/pg/Anvil:299 scenarios/pg/Anzio:329 scenarios/pg/Ardennes:491 scenarios/pg/Balkans:557 ... msgid "Allies" msgstr "Alliierte" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Cracow" msgstr "Krakau" #. units/pg.udb:1072 msgid "PzIIF" msgstr "PzIIF" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Frankfurt AO" msgstr "Frankfurt adO" #. nations/pg.ndb:76 msgid "Rumania" msgstr "Rumänien" #. maps/pg/map17:7 msgid "Verviers" msgstr "Verviers" #. maps/pg/map17:7 msgid "Dinont" msgstr "Dinont" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Peterborough" msgstr "Peterborough" #. maps/pg/map03:7 msgid "Elverum" msgstr "Elverum" #. scenarios/pg/France:3 msgid "" "June 5, 1940: With the French outflanked the Germans drive into France and " "attempt to capture Paris." msgstr "" "5. Juni 1940: Über die Flanke stoßen die Deutschen nach Frankreich vor und " "versuchen Paris zu erobern." #. maps/pg/map14:7 msgid "Sacco River" msgstr "Sacco" #. units/pg.udb:3816 msgid "FR Amiot 143" msgstr "FR Amiot 143" #. units/pg.udb:3200 msgid "PSW 234/2-8r" msgstr "PSW 234/2-8r" #. maps/pg/map16:7 msgid "Valence" msgstr "Valence" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Saarbrucken" msgstr "Saarbrücken" #. units/pg.udb:9613 msgid "US P51D Mustg" msgstr "US P51D Mustg" #. maps/pg/map13:7 msgid "Termini" msgstr "Termini" #. units/pg.udb:7653 msgid "ST ISU-152 AT" msgstr "ST JSU-152 PaK" #. maps/pg/map21:7 msgid "Elbassen" msgstr "Elbassen" #. units/pg.udb:6561 msgid "ST La-3" msgstr "ST La-3" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Okehampton" msgstr "Okehampton" #. units/pg.udb:3564 msgid "AF 37mm ATG" msgstr "AS 37mm PaK" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Maikop" msgstr "Maikop" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Vienna" msgstr "Wien" #. maps/pg/map33:7 msgid "Simontornya" msgstr "Simontornja" #. scenarios/pg/Norway:2 msgid "NORWAY" msgstr "NORWEGEN" #. units/pg.udb:7177 msgid "ST T-34/43" msgstr "ST T-34/43" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Donets" msgstr "Donez" #. maps/pg/map03:7 msgid "City" msgstr "Stadt" #. units/pg.udb:10649 msgid "US M26 " msgstr "US M26 " #. maps/pg/map15:7 msgid "Thiberville" msgstr "Thiberville" #. maps/pg/map01:7 maps/pg/map02:7 msgid "Bzura River" msgstr "Bzura" #. campaigns/PG:217 maps/pg/map07:7 maps/pg/map09:7 msgid "El Alamein" msgstr "El Alamein" #. maps/pg/map12:7 msgid "British Camp" msgstr "Britisches Lager" #. maps/pg/map21:7 msgid "Athens" msgstr "Athen" #. maps/pg/map17:7 msgid "Aarshot" msgstr "Aarschot" #. nations/pg.ndb:28 msgid "Finnland" msgstr "Finnland" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Taranto" msgstr "Taranto" #. maps/pg/map17:7 msgid "Monschau" msgstr "Monschau" #. units/pg.udb:5441 msgid "GB Comet" msgstr "GB Comet" #. maps/pg/map04:7 maps/pg/map17:7 msgid "Namur" msgstr "Namur" #. units/pg.udb:4712 msgid "GB Hur IID" msgstr "GB Hur IID" #. units/pg.udb:540 msgid "ME210c" msgstr "ME210c" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Rzhev" msgstr "Rschew" #. scenarios/pg/Sealion43:2 msgid "SEALION (43)" msgstr "SEELÖWE (43)" #. units/pg.udb:3340 msgid "PO PZL P37b" msgstr "PO PZL P37b" #. maps/pg/map13:7 msgid "Sapry" msgstr "Sapry" #. maps/pg/map36:7 msgid "Wheaton" msgstr "Wheaton" #. units/pg.udb:8773 msgid "IT AB-40" msgstr "IT AB-40" #. maps/pg/map30:7 msgid "Prokhorovka" msgstr "Prochorowka" #. units/pg.udb:736 msgid "Ju188a" msgstr "Ju188a" #. maps/pg.tdb:12 msgid "Raining(Dry)" msgstr "Regen (trocken)" #. maps/pg/map16:7 msgid "Carpentras" msgstr "Carpentras" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kirov" msgstr "Kirow" #. maps/pg/map03:7 msgid "Arendal" msgstr "Arendal" #. units/pg.udb:11153 msgid "US 8 Inches Gun" msgstr "US 8 Zoll Geschütz" #. units/pg.udb:6001 msgid "GB Bren Ca" msgstr "GB Bren Ca" #. campaigns/PG:648 msgid "We have only achieved a draw with the Allies." msgstr "Wir konnten nur einen Gleichstand mit den Alliierten erreichen." #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kaluga" msgstr "Kaluga" #. maps/pg/map36:7 msgid "Crestwood" msgstr "Crestwood" #. units/pg.udb:22 units/pg.udb:51 msgid "Naval" msgstr "See" #. maps/pg/map21:7 msgid "Sarajevo" msgstr "Sarajewo" #. units/pg.udb:1296 msgid "PzIIIE" msgstr "PzIIIE" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Cardigan" msgstr "Cardigan" #. maps/pg/map14:7 msgid "Civitavecchia" msgstr "Civitavecchia" #. units/pg.udb:652 msgid "JU87B" msgstr "JU87B" #. maps/pg/map26:7 msgid "Yukharina" msgstr "Jucharina" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Ilinka" msgstr "Ilinka" #. units/pg.udb:904 msgid "Ju52g5e" msgstr "Ju52g5e" #. nations/pg.ndb:80 msgid "Spain" msgstr "Spanien" #. campaigns/PG:370 msgid "" "The russian offensive was too strong to overcome which forced us to retreat " "to the limits of the Reich." msgstr "" "Die russische Offensive war nicht aufzuhalten. Deswegen mussten wir uns an " "die Reichsgrenze zurückziehen." #. maps/pg/map17:7 msgid "Clervaux" msgstr "Clervaux" #. units/pg.udb:61 msgid "Infantry" msgstr "Infanterie" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Lida" msgstr "Lida" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Baskunchak" msgstr "Baskunchak" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Carentan" msgstr "Carentan" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Norwich" msgstr "Norwich" #. maps/pg/map29:7 msgid "Svatovo" msgstr "Swatowo" #. units/pg.udb:5721 msgid "GB Archer" msgstr "GB Archer" #. maps/pg/map14:7 msgid "Avezzano" msgstr "Avezzano" #. units/pg.udb:5553 msgid "GB M5 Stuart" msgstr "GB M5 Stuart" #. maps/pg/map15:7 msgid "Livarot" msgstr "Livarot" #. units/pg.udb:6085 msgid "GB HW Inf 39" msgstr "GB Inf Gren 39" #. maps/pg/map05:7 msgid "Chateauroux" msgstr "Châteauroux" #. campaigns/PG:467 msgid "" "You sustained long enough to allow High Command to build up defenses in the " "rear." msgstr "" "Sie widerstanden lange genug, sodass das Oberkommando Verteidigungslinien im " "Rückzugsgebiet aufbauen konnte." #. maps/pg/map13:7 msgid "Gela" msgstr "Gela" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Konigsberg" msgstr "Königsberg" #. units/pg.udb:8941 msgid "IT Sem M-42M" msgstr "IT Sem M-42M" #. units/pg.udb:11517 msgid "FFR M8 LAC" msgstr "FFR M8 LAC" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Brest" msgstr "Brest" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Benghazi" msgstr "Bengasi" #. units/pg.udb:10369 msgid "US M4A3(76)W" msgstr "US M4A3(76)W" #. maps/pg/map13:7 msgid "Pachwo" msgstr "Pachwo" #. units/pg.udb:10929 msgid "US Eng 43" msgstr "US Pioniere 43" #. maps/pg/map05:7 maps/pg/map15:7 maps/pg/map18:7 msgid "Argentan" msgstr "Argentan" #. maps/pg/map29:7 msgid "Debaltsevo" msgstr "Debaltsewo" #. maps/pg/map17:7 msgid "Bitburg" msgstr "Bitburg" #. maps/pg/map04:7 msgid "Sedan" msgstr "Sedan" #. units/pg.udb:4488 msgid "LC PZLP24" msgstr "LC PZLP24" #. maps/pg/map03:7 msgid "Trondheim" msgstr "Trondheim" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Augsburg" msgstr "Augsburg" #. units/pg.udb:5525 msgid "GB Sh Firefly" msgstr "GB Sh Firefly" #. maps/pg/map14:7 msgid "Terracina" msgstr "Terracina" #. maps/pg/map08:7 maps/pg/map16:7 msgid "German Camp" msgstr "Deutsches Lager" #. maps/pg/map29:7 msgid "Krasnopavlovka" msgstr "Krasnopawlowka" #. maps/pg/map14:7 msgid "Isernia" msgstr "Isernia" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Derbent" msgstr "Derbent" #. maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Radom" msgstr "Radom" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Brandenburg" msgstr "Brandenburg" #. maps/pg/map15:7 msgid "Port Facility" msgstr "Hafenanlage" #. units/pg.udb:10117 msgid "US M3 " msgstr "US M3 " #. units/pg.udb:9249 msgid "IT 75mm Gun" msgstr "IT 75mm Geschütz" #. maps/pg/map29:7 msgid "Vorskla River" msgstr "Worskla" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Weiland" msgstr "Weiland" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Puttusk" msgstr "Puttusk" #. maps/pg/map08:7 msgid "Jerusalem" msgstr "Jerusalem" #. maps/pg/map18:7 msgid "Chateau Gontier" msgstr "Château Gontier" #. units/pg.udb:4068 msgid "FR 25mm ATG" msgstr "FR 25mm PaK" #. campaigns/PG:406 msgid "22nd January 1944" msgstr "22. Januar 1944" #. units/pg.udb:11237 msgid "US 90mm AD" msgstr "US 90mm FlaK" #. maps/pg/map18:7 msgid "Fontainebleau" msgstr "Fontainebleau" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Munster" msgstr "Münster" #. nations/pg.ndb:32 msgid "France" msgstr "Frankreich" #. maps/pg/map21:7 msgid "Sisak" msgstr "Sisak" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Astrakhan" msgstr "Astrachan" #. nations/pg.ndb:88 msgid "Sweden" msgstr "Schweden" #. units/pg.udb:43 msgid "Towed" msgstr "Gezogen" #. maps/pg/map14:7 msgid "Turdino River" msgstr "Turdino" #. units/pg.udb:8017 msgid "AF Carrier" msgstr "AS Träger" #. campaigns/PG:477 msgid "" "Herr General, your outstanding performance left a lasting impression to the " "Allied leader, enabling our Administration to sign a favourable peace " "treaty. Combined with your earlier victory over the Soviet Union, you have " "ended the war, and are herewith promoted to Generalfeldmarschall." msgstr "" "Herr General, Ihre hervorragendere Leistung beeindruckte die alliierten " "Führer stark, wodurch unsere Regierung einen annehmbaren Friedensvertrag " "schließen konnte. Verbunden mit Ihrem früheren Sieg über die Sowjetunion " "haben Sie den Krieg beendet und werden hiermit zum Generalfeldmarschall " "befördert." #. maps/pg/map18:7 msgid "Pontoise" msgstr "Pontoise" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Reggio" msgstr "Reggio" #. maps/pg/map19:7 msgid "Oosterbeek" msgstr "Oosterbeek" #. units/pg.udb:7317 msgid "ST SU-85" msgstr "ST SU-85" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Stargar" msgstr "Stargar" #. units/pg.udb:1716 msgid "StuGIIIb" msgstr "StuGIIIb" #. maps/pg/map29:7 msgid "Slavyansk" msgstr "Slawjansk" #. units/pg.udb:79 msgid "Air-Defense" msgstr "Luftabwehr" #. maps/pg/map03:7 msgid "Halden" msgstr "Halden" #. maps/pg/map04:7 msgid "St. Quentin" msgstr "St. Quentin" #. maps/pg/map19:7 msgid "Uden" msgstr "Uden" #. maps/pg/map19:7 msgid "Nijmegen" msgstr "Nimwegen" #. maps/pg/map22:7 msgid "Neapolis" msgstr "Neápolis" #. campaigns/PG:329 msgid "" "In this situation, High Command offers you to contribute your experience in " "another theater, Italy.##Herr General, do you want to continue fighting in " "Russia, or do you like to be transferred to Anzio?" msgstr "" "In dieser Situation bietet Ihnen das Oberkommando an, Ihre Erfahrung im " "Schauplatz Italien zur Geltung kommen zu lassen.##Herr General, möchten Sie " "in Russland weiterkämpfen oder nach Anzio versetzt werden?" #. maps/pg/map13:7 msgid "Belice River" msgstr "Belice" #. maps/pg/map13:7 msgid "Marsala" msgstr "Marsala" #. maps/pg/map12:7 msgid "Biskra" msgstr "Biskra" #. maps/pg/map08:7 msgid "Amman" msgstr "Amman" #. maps/pg/map21:7 msgid "Pula" msgstr "Pula" #. maps/pg/map17:7 msgid "Laroche" msgstr "Laroche" #. campaigns/PG:85 msgid "Balkans" msgstr "Balkan" #. maps/pg/map15:7 msgid "Touques River" msgstr "Touques" #. maps/pg/map16:7 msgid "Asse River" msgstr "Asse" #. maps/pg/map12:7 msgid "Aflou" msgstr "Aflou" #. maps/pg/map21:7 msgid "Pehcevo" msgstr "Pehcevo" #. units/pg.udb:4600 msgid "FR HFII" msgstr "FR HFII" #. scenarios/pg/Anvil:365 scenarios/pg/Anzio:378 scenarios/pg/Ardennes:549 scenarios/pg/Balkans:599 ... msgid "Axis Minor Victory" msgstr "Achse knapper Sieg" #. maps/pg/map36:7 msgid "Anacostia River" msgstr "Anacostia" #. maps/pg/map33:7 msgid "Kisber" msgstr "Kisber" #. maps/pg/map29:7 msgid "Kharkov" msgstr "Charkow" #. maps/pg/map36:7 msgid "King George" msgstr "King George" #. units/pg.udb:6841 msgid "ST Il-2M3" msgstr "ST Il-2M3" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Marjupol" msgstr "Marjupol" #. maps/pg/map05:7 msgid "Chalons" msgstr "Chalons" #. campaigns/PG:168 msgid "" "After your stunning victory over Soviet resistence, we expect Russia's " "reserves of men an material to be depleted." msgstr "" "Nach ihrem großartigen Sieg über sowjetische Widerstände betrachten wir " "Russlands Reserven an Männern und Material als erschöpft." #. maps/pg/map30:7 msgid "Sumy" msgstr "Sumi" #. units/pg.udb:4124 msgid "FR 75mm ATG" msgstr "FR 75mm PaK" #. maps/pg/map24:7 msgid "Talnoye" msgstr "Talnoje" #. scenarios/pg/Cobra:2 msgid "COBRA" msgstr "COBRA" #. scenarios/pg/Kharkov:3 msgid "" "February 11, 1943: The Germans race to capture Kharkov and crush the Soviet " "winter offensive." msgstr "" "11. Februar 1943: Die Deutschen stürmen nach Charkow und zerschlagen die " "sowjetische Winteroffensive." #. maps/pg/map15:7 msgid "Arromanches" msgstr "Arromanches" #. units/pg.udb:9445 msgid "Rumanian Inf" msgstr "Rumänische Inf" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Volga River" msgstr "Wolga" #. scenarios/pg/Byelorussia:3 msgid "June 22, 1944: The Soviet thrust to destroy Army Group Center." msgstr "" "22. Juni 1944: Sowjetischer Großangriff zur Zerstörung der Heeresgruppe " "Mitte." #. maps/pg/map04:7 msgid "Leie" msgstr "Leie" #. campaigns/PG:429 msgid "" "In Normandy, the expected landings of Allied forces have commenced. The is " "the biggest invasion even seen by man, and you must stop it. You have to " "hold all your objectives to inflict a defeat to the Allied operations." msgstr "" "In der Normandie hat die erwartete Landung alliierter Streitkräfte begonnen. " "Das ist die größte Invasion aller Zeiten, und Sie müssen sie aufhalten. " "Halten Sie alle Ziele, um der alliierten Unternehmung eine Niederlage " "zuzufügen." #. units/pg.udb:3844 msgid "FR Ch Lr H35" msgstr "FR Ch Lr H35" #. maps/pg/map21:7 msgid "Trun" msgstr "Trun" #. campaigns/PG:169 msgid "" "After your victory over Soviet resistence, we expect Russia's reserves of " "men an material to be depleted." msgstr "" "Nach ihrem Sieg über sowjetische Widerstände betrachten wir Russlands " "Reserven an Männern und Material als erschöpft." #. campaigns/PG:78 msgid "" "Congratulations for conquering France and for bringing an overwhelming " "victory to the Reich. France has surrendered, and its dependencies will be " "put under German protectorate." msgstr "" "Glückwunsch zur Eroberung Frankreichs. Sie brachten dem Reich damit einen " "überwältigenden Sieg. Frankreich hat kapituliert und seine Kolonien werden " "unter deutsches Protektorat gestellt." #. units/pg.udb:7905 msgid "ST 76mm ATG" msgstr "ST 76mm PaK" #. campaigns/PG:105 msgid "6th April 1941" msgstr "6. April 1941" #. units/pg.udb:960 msgid "PzIA" msgstr "PzIA" #. maps/pg/map17:7 msgid "Neufchateau" msgstr "Neufchâteau" #. units/pg.udb:6953 msgid "ST Z25mm SPAA" msgstr "ST Z25mm SFFlaK" #. units/pg.udb:6365 msgid "GB 20mm SPAA" msgstr "GB 20mm SFFlaK" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Liverpool" msgstr "Liverpool" #. maps/pg/map17:7 msgid "Arlon" msgstr "Arlon" #. campaigns/PG:35 msgid "" "Congratulations, you have won the war against Poland, Herr General! You " "besieged and captured all objectives before the Soviet Union was able to " "catch up. Your forces have been diverted to the Western border to guard " "against French and English aggressions." msgstr "" "Glückwunsch, Sie haben den Krieg gegen Polen gewonnen, Herr General! Sie " "belagerten und besetzten alle Ziele, bevor die Sojwetunion die Weichsel " "erreichte. Ihre Streitkräfte wurden an die Westgrenze zur Abwehr englisch-" "französischer Aggressionen verlegt." #. units/pg.udb:3788 msgid "FR Bloch 174" msgstr "FR Bloch 174" #. maps/pg/map33:7 msgid "Szentendre" msgstr "Szentendre" #. units/pg.udb:2556 msgid "SPW 251/1" msgstr "SPW 251/1" #. maps/pg.tdb:2336 msgid "Harbor" msgstr "Hafen" #. units/pg.udb:31 msgid "Halftracked" msgstr "Halbketten" #. units/pg.udb:9221 msgid "IT Bersglri " msgstr "IT Bersglri " #. units/pg.udb:7065 msgid "ST BT-7" msgstr "ST BT-7" #. maps/pg/map13:7 maps/pg/map14:7 msgid "Garigliano River" msgstr "Garigliano" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Podolsk" msgstr "Podolsk" #. maps/pg/map21:7 msgid "Levadnia" msgstr "Lewadnja" #. maps/pg/map14:7 msgid "Terni" msgstr "Terni" #. maps/pg/map26:7 msgid "Kadykovka" msgstr "Kadikowka" #. maps/pg/map19:7 msgid "Hussen" msgstr "Hussen" #. units/pg.udb:9277 msgid "IT 105mm Gun" msgstr "IT 105mm Geschütz" #. maps/pg/map14:7 msgid "Turano River" msgstr "Turano" #. units/pg.udb:64 msgid "Tank" msgstr "Panzer" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Weser River" msgstr "Weser" #. units/pg.udb:7709 msgid "ST Truck" msgstr "ST Lastwagen" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Leipzig" msgstr "Leipzig" #. scenarios/pg/Kursk:2 msgid "KURSK" msgstr "KURSK" #. maps/pg/map36:7 msgid "Zekiah Swamp Run" msgstr "Sekia-Sumpfbach" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Armavir" msgstr "Armavir" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Vitebsk" msgstr "Witebsk" #. maps/pg/map07:7 maps/pg/map09:7 maps/pg/map22:7 maps/pg/map36:7 msgid "Alexandria" msgstr "Alexandria" #. maps/pg/map15:7 msgid "Granville" msgstr "Granville" #. maps/pg/map26:7 msgid "Cherkez Kermen" msgstr "Tscherkes Kermen" #. maps/pg/map04:7 msgid "Sambre" msgstr "Sambre" #. scenarios/pg/LowCountries:2 msgid "LOW COUNTRIES" msgstr "TIEFLÄNDER" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Avranches" msgstr "Avranches" #. campaigns/PG:614 msgid "" "This is the last stand. You have to fight against tremendous odds at either " "side of the front. Hold Berlin at any rate. Losing is not an option." msgstr "" "Dies ist das letzte Gefecht. Sie kämpfen gegen eine gewaltige Übermacht an " "jeder Seite der Front. Halten Sie Berlin um jeden Preis. Verlieren steht " "nicht zur Auswahl." #. units/pg.udb:91 msgid "Level Bomber" msgstr "Horizontalbomber" #. units/pg.udb:6309 msgid "GB 6 Inches Gun" msgstr "GB 6 Zoll Geschütz" #. units/pg.udb:371 msgid "HE162" msgstr "HE162" #. units/pg.udb:6337 msgid "GB 7.2 Inches Gun" msgstr "GB 7,2 Zoll Geschütz" #. units/pg.udb:2976 msgid "3.7 FlaK36" msgstr "3,7 FlaK36" #. maps/pg/map21:7 msgid "Agrinion" msgstr "Agrinion" #. units/pg.udb:4516 msgid "LC F-DXX1" msgstr "LC F-DXX1" #. maps/pg/map19:7 msgid "Driel" msgstr "Driel" #. units/pg.udb:8549 msgid "IT Re2005/S" msgstr "IT Re2005/S" #. maps/pg/map21:7 msgid "Bar" msgstr "Bar" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Mozhaysk" msgstr "Moschaisk" #. maps/pg/map33:7 msgid "Budaors" msgstr "Budaors" #. campaigns/PG:306 msgid "" "With Kharkov retaken, and the Soviet strike force terminally beaten, we were " "able to thrust into the steppe directly towards Moscow." msgstr "" "Mit der Rückeroberung Charkows und der Niederschlagung der sowjetischen " "Angriffsmacht konnten wir uns eine Weg Richtung Moskau freikämpfen." #. units/pg.udb:4740 msgid "GB Spit VB" msgstr "GB Spit VB" #. units/pg.udb:9193 msgid "IT Infantry" msgstr "IT Infanterie" #. units/pg.udb:7681 msgid "ST Para" msgstr "ST FJ" #. units/pg.udb:1492 msgid "PzIVG" msgstr "PzIVG" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Cardiff" msgstr "Cardiff" #. campaigns/PG:325 msgid "" "While you were running against stiff resistence, the Soviets launched a " "counter-attack against the Germain pocket around Orel. Therefore, we had to " "retreat and divert divisions to aid against this massive attack. We have " "lost the initiative on the Eastern front and cannot allow for another attack " "in this year." msgstr "" "Während Sie auf heftige Widerstände stießen, starteten die Sowjets einen " "Gegenangriff auf den deutschen Kessel um Orel. Deswegen mussten wir " "zurückweichen und Truppen zur Abwendungen dieses massiven Angriffs abziehen. " "Wir haben die Initiative an der Ostfront verloren und können keinen weiteren " "Angriff in diesem Jahr durchführen." #. units/pg.udb:5217 msgid "GB Crdr I" msgstr "GB Crdr I" #. units/pg.udb:5273 msgid "GB Crdr III" msgstr "GB Crdr III" #. campaigns/PG:647 msgid "" "You have totally failed us, Commander! The german reich suffered a major " "defeat!" msgstr "" "Sie haben vollkommen versagt, General! Das deutsche Reich ist vernichtend " "geschlagen!" #. units/pg.udb:1128 msgid "Lynx" msgstr "Luchs" #. maps/pg/map36:7 msgid "Prince Frederick" msgstr "Prinz Frederick" #. maps/pg/map17:7 msgid "Sambre River" msgstr "Sambre" #. maps/pg/map21:7 msgid "Kragujevac" msgstr "Kragujevac" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Aleksin" msgstr "Aleksin" #. units/pg.udb:2584 msgid "PSW 222/4r" msgstr "PSW 222/4r" #. maps/pg/map07:7 msgid "Mersa Matruh" msgstr "Mersa Matruch" #. units/pg.udb:1324 msgid "PzIIIG" msgstr "PzIIIG" #. maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Rhine River" msgstr "Rhein" #. units/pg.udb:70 msgid "Anti-Tank" msgstr "Panzerabwehr" #. campaigns/PG:246 msgid "25th June 1942" msgstr "25. Juni 1942" #. nations/pg.ndb:16 msgid "Bulgaria" msgstr "Bulgarien" #. maps/pg/map16:7 msgid "Arc River" msgstr "Arc" #. units/pg.udb:100 msgid "Capital Ship" msgstr "Großkampfschiff" #. maps/pg/map19:7 msgid "Oss" msgstr "Oss" #. units/pg.udb:8689 msgid "IT CA309" msgstr "IT CA309" #. campaigns/PG:164 msgid "23rd August 1941" msgstr "23. August 1941" #. maps/pg/map15:7 msgid "Selune River" msgstr "Selune" #. maps/pg/map29:7 msgid "Pereshchepino" msgstr "Pereschtschepino" #. units/pg.udb:484 msgid "BF110e" msgstr "BF110e" #. scenarios/pg/D-Day:3 msgid "June 6, 1944: Allies launch Operation Overlord... the Second Front." msgstr "" "6. Juni 1944: Alliierte starten Unternehmen Overlord... die zweite Front." #. maps/pg/map12:7 msgid "Medjerda River" msgstr "Medscherda" #. scenarios/pg/Berlin:2 msgid "BERLIN" msgstr "BERLIN" #. maps/pg/map36:7 msgid "Chillum" msgstr "Chillum" #. campaigns/PG:165 msgid "" "There has risen an opportunity to terminally cripple Russian forces. Around " "Kiev we have encountered a large amount of Russian troops. Using blitzkrieg " "tactics to their fullest extent, you are ordered to pocket and annihilate " "Soviet resistence in Kiev and surrounding towns. In order to continue our " "advance towards moscow, it is imperative that you capture all of your " "objective by no later than the 20th of September." msgstr "" "Große feindliche Truppenansammlungen rund um Kiew geben uns die einmalige " "Gelegenheit, die russische Abwehrbereitschaft zu brechen. Mit ausgeklügelten " "Blitzkriegtaktiken müssen Sie die sowjetische Verteidigung in Kiew und " "umgebenden Städen umfassen und vernichten. Um unseren Vormarsch auf Moskau " "fortzusetzen, ist die Einnahme aller Ziele bis spätenstens zum 20. September " "notwendig." #. campaigns/PG:211 msgid "" "Not capturing Moscow in time gave the Russian adversaries plenty of " "opportunity to mobilise troops from Siberia and perform a counterattack. " "While we managed to establish a stable front line again, we could not " "attempt another advance in 1941." msgstr "" "Ihr Misserfolg in Moskau gewährte den Russen genügend Zeit zur Vorbereitung " "eines Gegenangriffs mit sibirischen Truppen. Obwohl wir die Front wieder " "stabilisierten, konnten wir 1941 keinen weiteren Angriff durchführen." #. maps/pg/map07:7 maps/pg/map09:7 msgid "Mechili" msgstr "Mechili" #. campaigns/PG:570 msgid "" "The British and American forces have begun invading Sicily, our ill-defended " "entrance gate to Southern Europe. Your orders are to hold all objectives. If " "this is not feasible, hold at least two objectives to slow down the Allied " "advance." msgstr "" "Die britischen und amerikanischen Streitkräfte begannen ihre Invasion in " "Sizilien, unser schwach verteidigtes Einfallstor nach Südeuropa. Ihr Befehl " "lautet, alle Ziele zu halten. Falls unmöglich, halten Sie mindestens zwei " "Ziele, um den alliierten Vormarsch zu verlangsamen." #. maps/pg/map18:7 msgid "Chaumont" msgstr "Chaumont" #. maps/pg/map03:7 msgid "Andalsnes" msgstr "Åndalsnes" #. units/pg.udb:9025 msgid "IT M14/41" msgstr "IT M14/41" #. maps/pg/map17:7 msgid "Ourthe River" msgstr "Ourthe" #. maps/pg/map16:7 msgid "Barcellonette" msgstr "Barcellonette" #. scenarios/pg/Ardennes:2 msgid "ARDENNES" msgstr "ARDENNEN" #. units/pg.udb:6169 msgid "GB 2 Pdr ATG" msgstr "GB 2 Pfdr PaK" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Birmingham" msgstr "Birmingham" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Stoke" msgstr "Stoke" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Amsterdam" msgstr "Amsterdam" #. maps/pg/map12:7 msgid "Djelfa" msgstr "Dschelfa" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Merthyr" msgstr "Merthyr" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Buelgorod" msgstr "Buelgorod" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map30:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Orel" msgstr "Orel" #. maps/pg/map13:7 msgid "Corigliano" msgstr "Corigliano" #. campaigns/PG:320 msgid "" "Since the front lines have stabilised, there is a pocket of Russian " "defenders around Kursk. Our strategy is to break through Soviet defenses " "from the North and South, and cut off and terminate all adversaries. Be " "aware that the Soviets have no doubt about our intentions, and have prepared " "their defenses well. You must take Kursk at any rate. Taking all other " "objectives by no later than the 24th of July will enable High Command to " "prepare for another assault on Moscow in 1943." msgstr "" "Nach der Stabilisierung der Front entwickelte sich eine Ausbeulung " "russischer Verteidiger um Kursk. Unsere Strategie sieht einen nördlichen und " "südlichen Durchbruch durch sowjetische Verteidigungen mit anschließender " "Umfassung und Vernichtung vor. Seien Sie gewarnt, dass die Sowjets ohne " "Zweifel über unser Vorhaben sind und ihre Verteidigung gut vorbereitet " "haben. Erobern Sie Kursk auf jeden Fall. Wenn Sie weiters alle anderen Ziele " "bis spätenstens zum 24. Juli einnehmen, kann das Oberkommando einen Vorstoß " "auf Moskau für 1943 vorbereiten." #. maps/pg/map33:7 msgid "Pusztaszabolcs" msgstr "Pusztaszabolcs" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Orne River" msgstr "Orne" #. campaigns/PG:532 msgid "" "Excellent performance, Herr General! With the English expelled from Egypt, " "we could successfully prepare an invasion of England." msgstr "" "Hervorragende Leistung, Herr General! Mit der Vertreibung der Engländer aus " "Ägypten konnten wir erfolgreich eine Invasion Englands vorbereiten." #. units/pg.udb:11573 msgid "FPO M5 Stuart" msgstr "FPO M5 Stuart" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Nuremberg" msgstr "Nürnberg" #. maps/pg/map21:7 msgid "Larissa" msgstr "Larissa" #. units/pg.udb:5301 msgid "GB Crom IV" msgstr "GB Crom IV" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Escarpment" msgstr "Steilhang" #. campaigns/PG:627 msgid "" "Pushing back the Russian onslaught to the pre-war borders of the Reich gave " "us, combined with your earlier victory over England, a strong position to " "negotiate a favourable peace treaty." msgstr "" "Sie haben den russischen Ansturm bis zu den Vorkriegsgrenzen zurückgedrängt. " "Mit Ihrem früheren Sieg über England konnten wir somit einen vorteilhaften " "Friedensvertrag aushandeln." #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bremerhaven" msgstr "Bremerhaven" #. maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 maps/pg/map10:7 maps/pg/map28:7 maps/pg.tdb:2012 ... msgid "Desert" msgstr "Wüste" #. maps/pg/map04:7 msgid "Escout" msgstr "Escout" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Mannheim" msgstr "Mannheim" #. maps/pg/map17:7 msgid "Our River" msgstr "Our" #. units/pg.udb:3144 msgid "40 LuftW FJ" msgstr "40 LuftW FJ" #. units/pg.udb:6141 msgid "GB Para 39" msgstr "GB FJ 39" #. units/pg.udb:400 msgid "DO335" msgstr "DO335" #. units/pg.udb:6113 msgid "GB Bridge Eng" msgstr "GB Brückenbau" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Mersa Brega" msgstr "Mersa el Brega" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Ryazan" msgstr "Rjasan" #. maps/pg/map08:7 msgid "Al Kuwait" msgstr "Al Kuwait" #. campaigns/PG:553 msgid "8th November 1942" msgstr "8. November 1942" #. campaigns/PG:152 msgid "We take the early route towards Moscow." msgstr "Wir nehmen den frühen Weg nach Moskau." #. maps/pg/map13:7 msgid "Alcamo" msgstr "Alcamo" #. maps/pg/map29:7 msgid "Dnepropetrovsk" msgstr "Dnepropetrowsk" #. campaigns/PG:303 msgid "" "As a result of their winter offensive, Russian troops are spread thin in the " "area of Kharkov. This is an excellent opportunity to start a counter-attack, " "annihilate the Soviet strike forces, and retake Kharkov. If you take Kharkov " "and all other objectives by at least the 4th of March, we may continue our " "advance in 1943. To undertake the necessary preparations for an attack of " "Moscow, it is imperative that you finish your mission much earlier." msgstr "" "Auf Grund ihrer Winteroffensive sind die russischen Truppen dünn in der " "Gegend um Charkow verteilt. Dies ist ein exzellenter Moment für einen " "Gegenangriff zur Vernichtung der Sowjetischen Angriffskräfte und " "Rückeroberungs Charkows. Nehmen Sie Charkow und alle anderen Ziele bis " "spätestens zum 4. März ein, können wir unseren Vormarsch für 1943 " "fortsetzen. Wegen der notwendigen Vorbereitungen zum Angriff auf Moskau ist " "ein früherer Sieg unerlässlich." #. units/pg.udb:11097 msgid "US 105mm Gun" msgstr "US 105mm Geschütz" #. units/pg.udb:10229 msgid "US M4A3" msgstr "US M4A3" #. maps/pg/map36:7 msgid "Tacoma Park" msgstr "Tacoma Park" #. scenarios/pg/Sealion43:3 msgid "June 15, 1943: Germany attempts to finish off England." msgstr "15. Juni 1943: Deutschland versucht England zu erledigen." #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Bristol" msgstr "Bristol" #. maps/pg/map33:7 msgid "Aba" msgstr "Aba" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Vilna" msgstr "Wilna" #. scenarios/pg/Washington:2 msgid "WASHINGTON" msgstr "WASHINGTON" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Voronezh" msgstr "Woronesch" #. maps/pg/map18:7 msgid "Bolbec" msgstr "Bolbec" #. maps/pg/map29:7 msgid "Alekseyevka" msgstr "Aleksejewka" #. units/pg.udb:6449 msgid "GB Para 43" msgstr "GB FJ 43" #. maps/pg/map04:7 msgid "Ypres" msgstr "Ypern" #. units/pg.udb:6533 msgid "ST MiG-3" msgstr "ST MiG-3" #. maps/pg/map30:7 msgid "Psel" msgstr "Psel" #. scenarios/pg/Kiev:2 msgid "KIEV" msgstr "KIEW" #. units/pg.udb:7345 msgid "ST SU-122" msgstr "ST SU-122" #. units/pg.udb:3536 msgid "GB HW Inf 43" msgstr "GB Inf Gren 43" #. units/pg.udb:2948 msgid "2 FlaK38 (4)" msgstr "2 FlaK38 (4)" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Sidi Barrani" msgstr "Sidi Barrani" #. maps/pg/map17:7 msgid "Marche-en-Famenne" msgstr "Marche-en-Famenne" #. nations/pg.ndb:52 msgid "Turkey" msgstr "Türkei" #. maps/pg/map24:7 msgid "Chernigov" msgstr "Tschernigow" #. maps/pg.tdb:36 msgid "Fair(Ice)" msgstr "Heiter (schneebedeckt)" #. campaigns/PG:619 msgid "" "The former mighty Reich is reduced to rubbles. No authority is left to even " "sign a peace treaty. Germany has ceased to exist." msgstr "" "Das einst mächtige Reich liegt in Trümmer. Es gibt keine Autorität mehr zur " "Unterzeichnung eines Friedensvertrages. Deutschland hat aufgehört zu " "existieren." #. campaigns/PG:574 msgid "" "The total defeat on the Southern front made Italy surrender to the Allies." msgstr "" "Die totale Niederlage an der Südfront brachte Italiens Kapitulations " "gegenüber den Alliierten." #. maps/pg/map26:7 msgid "Omega" msgstr "Omega" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Messina" msgstr "Messina" #. campaigns/PG:275 campaigns/PG:418 msgid "D-Day" msgstr "D-Day" #. units/pg.udb:6785 msgid "ST PE-2" msgstr "ST PE-2" #. units/pg.udb:11853 msgid "Strongpoint" msgstr "Stellung" #. campaigns/PG:407 msgid "" "The Allies have fought up all their way from Sicily to the center of Italy. " "While we halted their advance at the Gustav line, the Allies performed a " "massive landing operation at the beachhead of Anzio-Nettuno. To prevent " "detriment to the Reich, it is imperative that you fend off this massive " "onslaught at all costs. You have to hold at least Rome and two other " "objectives to turn the battle into a more favourable direction." msgstr "" "Die Alliierten kämpften sich einen Weg von Sizilien bis Mittelitalien frei. " "Während wir ihren Vormarsch an der Gustav-Linie zum Stillstand brachten, " "unternahmen die Alliierten eine groß angelegte Landeoperation bei Anzio-" "Nettuno. Um Schaden vom Reich abzuwenden, ist es unerlässlich, diese " "Streitmacht unter allen Umständen abzuwehren. Halten Sie zumindest Rom und " "zwei weitere Ziele, um die Schlacht in eine günstigere Richtung zu lenken." #. units/pg.udb:1044 msgid "PzIID" msgstr "PzIID" #. units/pg.udb:8801 msgid "IT AB-41" msgstr "IT AB-41" #. maps/pg/map13:7 msgid "San Stefano" msgstr "San Stefano" #. maps/pg/map14:7 msgid "Viterbo" msgstr "Viterbo" #. maps/pg/map20:7 maps/pg/map21:7 maps/pg/map33:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Danube River" msgstr "Donau" #. campaigns/PG:83 msgid "" "Now there are two front lines to take care of. Herr General, which theater " "do you want to participate in?" msgstr "" "Nun bieten sich zwei Fronten an. Herr General, in welchem Schauplatz möchten " "Sie partizipieren?" #. maps/pg/map02:7 maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 ... msgid "Bug River" msgstr "Bug" #. maps/pg/map14:7 msgid "Orvieto" msgstr "Orvieto" #. maps/pg/map21:7 msgid "Sofia" msgstr "Sofia" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Tours" msgstr "Tours" #. maps/pg/map15:7 msgid "St. Mere Eglise" msgstr "St. Mere Eglise" #. maps/pg/map15:7 msgid "Courselles" msgstr "Courselles" #. maps/pg/map29:7 msgid "Pavlograd" msgstr "Pawlograd" #. maps/pg.tdb:24 msgid "Overcast(Mud)" msgstr "Bewölkt (aufgeweicht)" #. units/pg.udb:13 msgid "Soft" msgstr "Weich" #. units/pg.udb:112 msgid "Sea Transport" msgstr "Seetransport" #. maps/pg/map02:7 maps/pg/map03:7 maps/pg/map07:7 maps/pg/map09:7 maps/pg/map14:7 maps/pg/map16:7 ... msgid "River" msgstr "Fluss" #. maps/pg/map29:7 msgid "Vasilovka" msgstr "Wasilowka" #. maps/pg/map03:7 msgid "Bjerkvik" msgstr "Bjerkvik" #. campaigns/PG:247 msgid "" "Your next order is to lead the advance towards the industrial center of " "Stalingrad. Taking Stalingrad will cripple Russia's war industry, and cut " "supply lines over the Volga river. Thus, you must capture Stalingrad and all " "other objectives by the 22nd of November at the latest. Keep in mind that if " "we want to get another chance to advance towards Moscow this year, you have " "to finish your mission before October. Do not underestimate the vast " "distances of the steppe, and the supply shortage resulting thereof." msgstr "" "Ihr nächster Befehl lautet, gegen das Industriezentrum Stalingrad " "vorzugehen. Die Eroberungs Stalingrads wird Russlands Rüstung schwächen und " "Nachschub über die Wolga unterbinden. Somit müssen Sie Stalingrad und alle " "anderen Ziele bis spätestens zum 22. November einnehmen. Für die " "Vorbereitungen eines weiteren Vorstoßes auf Moskau in diesem Jahr müssen Sie " "die Mission bereits bis Oktober beenden. Unterschätzen Sie nicht die großen " "Weiten der Steppe mit ihren Versorgungsschwierigkeiten." #. campaigns/PG:230 msgid "" "We now set our sights on Army Group South which has besieged the Black Sea " "port of Sevastopol for nearly one year. The time is ripe for an eventual " "assault on Sevastopol, and you are ordered to conduct it. You have to force " "your way through the town of Sevastopol and capture all objectives by no " "later than the 23rd of June. After the Moscow desaster last year, we cannot " "allow for another defeat." msgstr "" "Wir wenden uns der Heeresgruppe Süd zu, die den Schwarzmeerhafen Sewastopol " "seit knapp einem Jahr belagerte. Die Zeit ist jetzt reif für einen Sturm auf " "Sewastopol, und Sie werden ihn durchführen. Kämpfen Sie sich Ihren Weg durch " "die Stadt Sewastopol und erobern sie alle Ziele bis spätestens zum 23. Juni. " "Nach dem Moskau-Reinfall letztes Jahr können wir uns keine weitere " "Niederlage leisten." #. scenarios/pg/Husky:2 msgid "HUSKY" msgstr "HUSKY" #. maps/pg/map17:7 msgid "Huy" msgstr "Huy" #. scenarios/pg/Berlin:3 msgid "April 1, 1945: The Last Stand." msgstr "1. April 1945: Das letzte Gefecht." #. campaigns/PG:638 msgid "" "You bravely fended off the Allied onslaught from the Reich's limits. " "Combined with your earlier victory over Russia allowed us to return to the " "pre-war status-quo in the West." msgstr "" "Sie haben den alliierten Ansturm tapfer von den Reichsgrenzen abgewiesen. " "Mit Ihrem früheren Sieg über Russland konnten wir zum Status quo des " "Vorkrieges im Westen zurückkehren." #. maps/pg/map29:7 msgid "Merla River" msgstr "Merla" #. units/pg.udb:11013 msgid "US 57mm ATG" msgstr "US 57mm PaK" #. maps/pg/map36:7 msgid "Brookland" msgstr "Brookland" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Taunton" msgstr "Taunton" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Blagdernoe" msgstr "Blagdernoe" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Berta" msgstr "Berta" #. units/pg.udb:6757 msgid "ST Il-4" msgstr "ST Il-4" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Budweis" msgstr "Budweis" #. maps/pg/map13:7 maps/pg/map14:7 msgid "Benevento" msgstr "Benevento" #. units/pg.udb:6393 msgid "GB 40mm AD" msgstr "GB 40mm FlaK" #. units/pg.udb:4236 msgid "FR 40mm AD" msgstr "FR 40mm FlaK" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Mersey" msgstr "Mersey" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kimry" msgstr "Kimry" #. units/pg.udb:1772 msgid "StuGIIIF/8" msgstr "StuGIIIF/8" #. units/pg.udb:2024 msgid "JagdPanther" msgstr "JagdPanther" #. units/pg.udb:5833 msgid "GB AEC I" msgstr "GB AEC I" #. maps/pg/map36:7 msgid "Piscataway Creek" msgstr "Piscatawaybach" #. maps/pg/map15:7 msgid "Vire" msgstr "Vire" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kislovolsk" msgstr "Kislowolsk" #. units/pg.udb:11909 msgid "Nebelwerfer" msgstr "Nebelwerfer" #. campaigns/PG:517 msgid "" "Your glorious advance along the North African coast has expelled the English " "forces out of Egypt, and allowed our troops to cross the Suez canal." msgstr "" "Ihr glorreicher Vormarsch entlang der nordafrikanischen Küste vertrieb die " "Engländer aus Ägypten und erlaubte unseren Truppen die Überquerung des " "Suezkanals." #. maps/pg/map04:7 msgid "Mastricht" msgstr "Maastricht" #. campaigns/PG:573 msgid "" "You managed to score a victory. Yet, our former Ally, the Italians have " "surrendered, thus making your efforts crumble in vain." msgstr "" "Sie konnten einen Sieg erringen. Jedoch machte die Kapitulation unseres " "vormaligen Verbündeten Italien unseren Erfolg zu Nichte." #. maps/pg/map18:7 msgid "Vernon" msgstr "Vernon" #. nations/pg.ndb:24 msgid "Denmark" msgstr "Dänemark" #. maps/pg/map17:7 msgid "Vianden" msgstr "Vianden" #. units/pg.udb:2192 msgid "Nashorn" msgstr "Nashorn" #. campaigns/PG:94 msgid "" "Your brave efforts lead to the capturing of all Southern England. " "Unfortunately, bad weather and interference by the strong British fleet from " "the unattacked North have wreaked havoc on our supply lines. Thus, we were " "forced to retract all troops back to the continent." msgstr "" "Ihr tapferer Einsatz führte zur Eroberung Südenglands. Jedoch verursachten " "Herbststürme und Störungen der britischen Flotte eine katastrofale " "Nachschublage, weswegen wir unsere Truppen zum Festland zurückziehen mussten." #. scenarios/pg/Warsaw:3 msgid "" "September 10, 1939: The Germans must capture Warsaw and end Polish " "resistance before the Allies react. " msgstr "" "10. September 1939: Die Deutschen müssen Warschau erobern und den polnischen " "Widerstand brechen, bevor die Alliierten reagieren." #. scenarios/pg/Budapest:3 msgid "March 6, 1945: Germany's last offensive." msgstr "6. März 1945: Deutschlands letzter Angriff." #. maps/pg/map36:7 msgid "Lexington Park" msgstr "Lexington Park" #. units/pg.udb:10481 msgid "US M10 " msgstr "US M10 " #. nations/pg.ndb:92 msgid "Switzerland" msgstr "Schweiz" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Reichenbach" msgstr "Reichenbach" #. maps/pg/map18:7 msgid "Vitre" msgstr "Vitre" #. maps/pg/map05:7 msgid "Saumur" msgstr "Saumur" #. maps/pg/map14:7 msgid "Rapido River" msgstr "Rapido" #. maps/pg/map05:7 msgid "Mantes" msgstr "Mantes" #. campaigns/PG:580 msgid "Staying in Italy" msgstr "In Italien bleiben" #. units/pg.udb:9109 msgid "IT 90mm Breda" msgstr "IT 90mm Breda" #. units/pg.udb:7513 msgid "ST KV-85" msgstr "ST KW-85" #. maps/pg/map29:7 msgid "Gorlovka" msgstr "Gorlowka" #. maps/pg/map21:7 msgid "Florina" msgstr "Florina" #. units/pg.udb:6589 msgid "ST YaK-9M" msgstr "ST JaK-9M" #. maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Posen" msgstr "Posen" #. maps/pg/map15:7 msgid "Thury Harcourt" msgstr "Thury Harcourt" #. units/pg.udb:1520 msgid "PzIVH" msgstr "PzIVH" #. units/pg.udb:10509 msgid "US M12 GMC" msgstr "US M12 GMC" #. scenarios/pg/SealionPlus:3 msgid "" "September 1, 1940: With Gibraltar taken the Italian Fleet aids the invasion " "of England." msgstr "" "1. September 1940: Mit der Eroberung Gibraltars unterstützt Italiens Flotte " "die Invasion Englands." #. campaigns/PG:580 maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Moscow" msgstr "Moskau" #. campaigns/PG:558 msgid "" "Holding the key towns of Tunesia slowed down the advance of the Americans. " "However, we could not sustain the pressure, and thus were forced to rectract " "the Africa Corps back to Europe." msgstr "" "Das Halten der Schlüsselstädte Tunesiens verlangsamte den amerikanischen " "Vormarsch. Jedoch konnten wir dem Druck nicht länger standhalten und sahen " "uns gezwungen, das Afrikakorps nach Europa zurückzuziehen." #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wiesbaden" msgstr "Wiesbaden" #. units/pg.udb:6617 msgid "ST YaK-1M" msgstr "ST JaK-1M" #. maps/pg/map01:7 msgid "Rodomsko" msgstr "Rodomsko" #. scenarios/pg/BerlinWest:3 msgid "April 1, 1945: Western Allies invade Germany." msgstr "1. April 1945: Die Westalliierten dringen in Deutschland ein." #. nations/pg.ndb:64 msgid "Norway" msgstr "Norwegen" #. units/pg.udb:1884 msgid "Jagdpanzer 38" msgstr "Jagdpanzer 38" #. maps/pg/map23:7 maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map32:7 maps/pg/map37:7 ... msgid "Smolensk" msgstr "Smolensk" #. units/pg.udb:1968 msgid "Jagdpz IV/48" msgstr "Jagdpz IV/48" #. nations/pg.ndb:100 msgid "Yugoslavia" msgstr "Jugoslawien" #. maps/pg/map29:7 msgid "Volchansk" msgstr "Wolschansk" #. maps/pg/map15:7 msgid "Lessay" msgstr "Lessay" #. units/pg.udb:10565 msgid "US M16 MGMC" msgstr "US M16 MGMC" #. units/pg.udb:8829 msgid "IT Sem L-47" msgstr "IT Sem L-47" #. units/pg.udb:2444 msgid "Ostwind I" msgstr "Ostwind I" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Coutances" msgstr "Coutances" #. units/pg.udb:2108 msgid "Marder II" msgstr "Marder II" #. campaigns/PG:3 msgid "Michael Speck, Leo Savernik" msgstr "Michael Speck, Leo Savernik" #. campaigns/PG:449 msgid "" "Contrary to what the odds have made us expect, you drove the Allied attack " "back into the sea. Whereas you freed France again from enemy influence, the " "Allied increased their bombing raids against vital German war industries as " "well as our supply lines in France. Not being able to reliably deliver " "reinforcements and material to France, the Allies established another " "beachhead, and drove our forces back to the Rhine." msgstr "" "Trotz gegenteiliger Erwartungen drängten Sie die alliierte Übermacht zurück " "ins Meer. Während Sie Frankreich wieder vom Feind befreiten, führten erhöhte " "alliierte Bombenangriffe auf Rüstung und Nachschublinien zu einer " "unhaltbaren Versorgungslage. Dadurch konnten die Alliierten eine weitere " "Landung durchführen und unsere Truppen zum Rhein zurückdrängen." #. maps/pg/map22:7 msgid "Herakleion" msgstr "Heraklion" #. maps/pg/map36:7 msgid "Bethesda" msgstr "Bethesda" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Lubeck" msgstr "Lübeck" #. maps/pg/map14:7 msgid "Sangro River" msgstr "Sangro" #. maps/pg/map14:7 msgid "Avellino" msgstr "Avellino" #. units/pg.udb:4096 msgid "FR 47mm ATG" msgstr "FR 47mm PaK" #. maps/pg/map12:7 msgid "Sousse" msgstr "Sousse" #. maps/pg/map04:7 maps/pg/map05:7 maps/pg/map18:7 msgid "Amiens" msgstr "Amiens" #. scenarios/pg/Moscow43:3 msgid "October 9, 1943: Germany's final chance to end the war in the east." msgstr "" "9. Oktober 1943: Deutschlands letzte Chance, den Krieg im Osten zu beenden." #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Hamburg" msgstr "Hamburg" #. maps/pg/map16:7 msgid "Aspres" msgstr "Aspres" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Valognes" msgstr "Valognes" #. maps/pg/map36:7 msgid "Capitol Hill" msgstr "Kapitolhügel" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Postavy" msgstr "Postawi" #. maps/pg/map18:7 msgid "Etretat" msgstr "Étretat" #. maps/pg/map05:7 msgid "Beauvais" msgstr "Beauvais" #. maps/pg/map13:7 msgid "Trapani" msgstr "Trapani" #. campaigns/PG:331 maps/pg/map13:7 msgid "Anzio" msgstr "Anzio" #. maps/pg/map13:7 maps/pg/map14:7 msgid "Salerno" msgstr "Salerno" #. maps/pg/map02:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 maps/pg/map07:7 maps/pg/map09:7 ... msgid "Fortification" msgstr "Befestigungen" #. maps/pg/map03:7 msgid "Aalborg" msgstr "Ålborg" #. maps/pg/map14:7 msgid "Rome" msgstr "Rom" #. campaigns/PG:387 msgid "15th June 1943" msgstr "15. Juni 1943" #. campaigns/PG:149 msgid "" "High Command was impressed to such an extent by your excellent skills that " "we decided to delegate the decision of a critical strategic question to you." "##General staff is divided into two camps. The first is proposing the " "opportunity to pocket and destroy a large amount of Soviet forces near Kiev " "before we proceed on our march towards Moscow. The second is proposing to " "leave aside Kiev and directly head towards Moscow before Autumn weather will " "slow down our advance.##Herr General, which strategy shall we pursue?" msgstr "" "Das Oberkommando ist von ihren ausgezeichneten Fähigkeiten dermaßen " "beeindruckt, dass Ihnen die Einscheidung einer kritischen strategischen " "Frage delegiert wurde.##Der Generalstab ist in zwei Lager gespalten. Die " "einen vertreten die Umschließung großer russischer Verbände um Kiew vor dem " "Vormarsch nach Moskau, die anderen befürworten den direkten Vorstoß nach " "Moskau unter Auslassung von Kiew, um der Verlangsamung durch Herbstwetter " "vorzubeugen.##Herr General, welche Strategie sollen wir verfolgen? " #. maps/pg/map24:7 msgid "Malin" msgstr "Malin" #. maps/pg/map36:7 msgid "Annapolis" msgstr "Annapolis" #. maps/pg/map16:7 msgid "Orange" msgstr "Orange" #. scenarios/pg/Sealion40:3 msgid "September 1, 1940: Germany now sets its sights on England" msgstr "1. September 1940: Deutschland richtet seinen Blick auf England" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Borisoglebsk" msgstr "Borisoglebsk" #. maps/pg/map05:7 msgid "Montargis" msgstr "Montargis" #. maps/pg/map15:7 msgid "St. Sauveur-le-V." msgstr "St. Sauveur-le-V." #. maps/pg/map10:7 maps/pg/map28:7 msgid "Yeisk" msgstr "Jeisk" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Pontorson" msgstr "Pontorson" #. maps/pg/map14:7 msgid "Teramo" msgstr "Teramo" #. campaigns/PG:324 msgid "" "You were able to take Kursk, but the Soviets launched a counter-attack " "against the Germain pocket around Orel. Therefore, we had to retreat and " "divert divisions to aid against this massive attack. We have lost the " "initiative on the Eastern front and cannot allow for another attack in this " "year." msgstr "" "Sie konnten Kursk erobern. Jedoch starteten die Sowjets einen Gegenangriff " "auf den deutschen Kessel um Orel. Deswegen mussten wir zurückweichen und " "Truppen zur Abwendungen dieses massiven Angriffs abziehen. Wir haben die " "Initiative an der Ostfront verloren und können keinen weiteren Angriff in " "diesem Jahr durchführen." #. campaigns/PG:308 msgid "" "Your failure at this mission forced the Reich to take back the front lines " "to compensate for German casualties faced in the battle." msgstr "" "Ihr Misserfolg in dieser Mission zwang das Reich zur Rücknahme der Front zum " "Ausgleich deutscher Verluste in der Schlacht." #. maps/pg/map12:7 msgid "Tebessa" msgstr "Tebessa" #. maps/pg/map14:7 msgid "Trigno River" msgstr "Trigno" #. maps/pg/map01:7 msgid "Kutno" msgstr "Kutno" #. units/pg.udb:3424 msgid "PO Infantry" msgstr "PO Infanterie" #. maps/pg/map03:7 msgid "Bodo" msgstr "Bodo" #. scenarios/pg/BerlinEast:3 msgid "April 1, 1945: Battle for survival against the Soviet Union." msgstr "1. April 1945: Überlebenskampf gegen die Sojwetunion." #. maps/pg/map08:7 msgid "An Najaf" msgstr "An Najaf" #. units/pg.udb:2640 msgid "PSW 233/8r" msgstr "PSW 233/8r" #. units/pg.udb:11629 msgid "FPO M8 LAC" msgstr "FPO M8 LAC" #. maps/pg/map17:7 msgid "Wiltz" msgstr "Wiltz" #. maps/pg/map36:7 msgid "Benedict" msgstr "Benedict" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Coblenz" msgstr "Koblenz" #. scenarios/pg/Anvil:3 msgid "" "Aug 6, 1944: Allies attempt to cut off Wehrmacht forces in Southern France." msgstr "" "6. Aug 1944: Die Alliierten versuchen die Wehrmacht in Südfrankreich " "abzuschneiden." #. scenarios/pg/EarlyMoscow:3 msgid "" "September 8, 1941: Panzergruppe Guderian ignores Kiev and drives on Moscow." msgstr "" "8. September 1941: Panzergruppe Guderian ignoriert Kiew und stößt nach " "Moskau vor." #. units/pg.udb:145 msgid "BF109f" msgstr "BF109f" #. maps/pg/map16:7 msgid "Isere River" msgstr "Isere" #. maps/pg/map36:7 msgid "Upper Marlboro" msgstr "Upper Marlboro" #. maps/pg/map17:7 msgid "Blankenheim" msgstr "Blankenheim" #. maps/pg/map36:7 msgid "Anacostia" msgstr "Anacostia" #. maps/pg/map24:7 msgid "Starodub" msgstr "Starodub" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Utrecht" msgstr "Utrecht" #. units/pg.udb:11825 msgid "FPO 6 Inches Gun" msgstr "FPO 6 Zoll Geschütz" #. maps/pg/map17:7 msgid "St. Hubert" msgstr "St. Hubert" #. maps/pg.tdb:20 msgid "Fair(Mud)" msgstr "Heiter (aufgeweicht)" #. campaigns/PG:645 msgid "" "The german Reich has no need for incompetent untermenschen, Commander! " "Dismissed." msgstr "" "Großdeutschland hat keine Verwendung für einen inkompetenten Untermenschen, " "General! Wegtreten." #. maps/pg/map19:7 msgid "Helmond" msgstr "Helmond" #. campaigns/PG:524 maps/pg/map24:7 msgid "Kiev" msgstr "Kiew" #. units/pg.udb:8297 msgid "Battleship Dl" msgstr "Schlachtschiff Dl" #. units/pg.udb:3900 msgid "FR AMC 35" msgstr "FR AMC 35" #. maps/pg/map17:7 msgid "Ettelbruck" msgstr "Ettelbrück" #. maps/pg/map16:7 msgid "Brignoles" msgstr "Brignoles" #. scenarios/pg/Stalingrad:2 msgid "STALINGRAD" msgstr "STALINGRAD" #. maps/pg/map21:7 msgid "Kalamai" msgstr "Kalamai" #. scenarios/pg/Sevastapol:2 msgid "SEVASTOPOL" msgstr "SEWASTOPOL" #. maps/pg/map33:7 msgid "Fonyod" msgstr "Fonjod" #. scenarios/pg/Anzio:2 msgid "ANZIO" msgstr "ANZIO" #. maps/pg/map02:7 msgid "Siedice" msgstr "Siedice" #. campaigns/PG:205 msgid "2nd October 1941" msgstr "2. Oktober 1941" #. units/pg.udb:8913 msgid "IT Sem M-42" msgstr "IT Sem M-42" #. maps/pg/map15:7 msgid "Troarn" msgstr "Troarn" #. units/pg.udb:5693 msgid "GB Achilles" msgstr "GB Achilles" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Safonovo" msgstr "Safonowo" #. maps/pg/map19:7 msgid "Opheusten" msgstr "Opheusten" #. units/pg.udb:7597 msgid "ST ISU-122" msgstr "ST JSU-122" #. units/pg.udb:10341 msgid "US M4A1(76)W" msgstr "US M4A1(76)W" #. units/pg.udb:10621 msgid "US M24" msgstr "US M24" #. maps/pg/map26:7 msgid "Komary" msgstr "Komari" #. campaigns/PG:613 campaigns/PG:623 campaigns/PG:633 msgid "1st April 1945" msgstr "1. April 1945" #. maps/pg/map24:7 msgid "Rechitsa" msgstr "Reschiza" #. campaigns/PG:364 msgid "6th March 1945" msgstr "6. März 1945" #. maps/pg/map36:7 msgid "Blackwater River" msgstr "Blackwaterfluss" #. units/pg.udb:7933 msgid "ST 12.2cm Gun" msgstr "ST 12,2cm Geschütz" #. maps/pg/map36:7 msgid "Hunting Creek" msgstr "Huntingbach" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Vyazma" msgstr "Wjasma" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map36:7 maps/pg/map38:7 msgid "Cambridge" msgstr "Cambridge" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kachalinsk" msgstr "Katschalinsk" #. scenarios/pg/Budapest:2 msgid "BUDAPEST" msgstr "BUDAPEST" #. maps/pg/map12:7 maps/pg/map13:7 msgid "Bizerta" msgstr "Biserta" #. units/pg.udb:9753 msgid "US B25B Mitch" msgstr "US B25B Mitch" #. units/pg.udb:1744 msgid "StuGIIIF" msgstr "StuGIIIF" #. maps/pg/map08:7 msgid "Euphrates River" msgstr "Euphrat" #. maps/pg/map02:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Vistula River" msgstr "Weichsel" #. units/pg.udb:5889 msgid "GB Humber SC" msgstr "GB Humber SC" #. maps/pg/map21:7 msgid "Skopje" msgstr "Skopje" #. units/pg.udb:624 msgid "FW190f" msgstr "FW190f" #. units/pg.udb:7205 msgid "ST T-34/85" msgstr "ST T-34/85" #. maps/pg.tdb:48 msgid "Snowing(Ice)" msgstr "Schnee (schneebedeckt)" #. maps/pg/map15:7 msgid "St. Vaast-la-Haugue" msgstr "St. Vaast-la-Haugue" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Vire River" msgstr "Vire" #. maps/pg/map36:7 msgid "Rockville" msgstr "Rockville" #. units/pg.udb:9137 msgid "IT 47mm ATG" msgstr "IT 47mm PaK" #. maps/pg/map21:7 msgid "Babyak" msgstr "Babjak" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Schneidemuhl" msgstr "Schneidemühl" #. maps/pg/map21:7 msgid "Bihal" msgstr "Bihal" #. nations/pg.ndb:68 msgid "Poland" msgstr "Polen" #. maps/pg/map10:7 maps/pg/map28:7 maps/pg/map30:7 msgid "Don" msgstr "Don" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Bryanskoe" msgstr "Brjanskoe" #. units/pg.udb:8605 msgid "IT Ma C202/F" msgstr "IT Ma C202/F" #. maps/pg/map36:7 msgid "Riverdale" msgstr "Riverdale" #. campaigns/PG:388 msgid "" "High Command has prepared an invasion of England this summer, and you are to " "lead the forces. This is the ultimate chance to knock England out of the " "war, and we have to succeed this time. As the English have established an " "alliance with the Americans, expect some US expeditionary forces aiding in " "the defense of England. You are ordered to take London and all other " "objectives by 13th of July at the latest, when strong American " "reinforcements are expected to arrive. In order to consolidate our defenses, " "you should finish your mission earlier." msgstr "" "Das Oberkommando bereitete eine Invasion Englands für diesen Sommer vor, und " "sie werden die Truppen führen. Dies ist die letzte Gelegenheit, England zum " "Frieden zu zwingen, und wir müssen diesmal erfolgreich sein. Durch eine " "Allianz mit den Amerikanern werden Sie auf amerikanische Expeditionstruppen " "treffen. Ihr Befehl lautet, London und alle anderen Ziele bis spätestens zum " "13. Juli vor der Ankunft starker amerikanischer Entsatztruppen zu erobern. " "Um unsere Verteidigungen zu festigen, sollten Sie die Mission früher beenden." #. units/pg.udb:8857 msgid "IT Sem M-40" msgstr "IT Sem M-40" #. campaigns/PG:56 msgid "" "You passed with ease the battlefields our troops bravely but fruitlessly " "attacked in the World War. We reassembled the troops for the final assault " "on France, and we utilised the additional time to start preparations for the " "invasion of England." msgstr "" "Sie haben mit Leichtigkeit die Schlachtfelder unseres glanzlosen Kampfes im " "Weltkriege überwunden. Wir haben die Truppen nun für den letzten Sturm auf " "Frankreich gesammelt und die zusätzliche Zeit für Vorbereitungen zur " "Invasion Englands genutzt." #. campaigns/PG:215 msgid "" "To prove your skills in another theater, High Command offers to you " "leadership over the Africa Corps fighting at El Alamein.##Herr General, do " "you wish to be transferred to Africa, or do you want to stay on the Eastern " "front?" msgstr "" "Um Ihr Geschick an einem anderen Schauplatz unter Beweis zu stellen, bietet " "Ihnen das Oberkommando die Führung des Afrikakorps im Kampf um El Alamein an." "##Herr General, wünschen Sie Ihre Versetzung nach Afrika, oder möchten Sie " "an der Ostfront bleiben?" #. scenarios/pg/France:2 msgid "FRANCE" msgstr "FRANKREICH" #. maps/pg/map14:7 msgid "Sora" msgstr "Sora" #. units/pg.udb:10145 msgid "US M4" msgstr "US M4" #. scenarios/pg/Anvil:2 msgid "ANVIL" msgstr "AMBOSS" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Baranovichi" msgstr "Baranowitschi" #. maps/pg/map21:7 msgid "Savna River" msgstr "Sawna" #. maps/pg/map13:7 msgid "Totenza" msgstr "Totenza" #. maps/pg/map36:7 msgid "Mt. Pleasant" msgstr "Mt. Pleasant" #. units/pg.udb:2668 msgid "PSW 234/1-8r" msgstr "PSW 234/1-8r" #. maps/pg/map19:7 msgid "Elst" msgstr "Elst" #. scenarios/pg/Warsaw:2 msgid "WARSAW" msgstr "WARSCHAU" #. campaigns/PG:500 msgid "17th September 1944" msgstr "17. September 1944" #. maps/pg/map16:7 msgid "Draguigan" msgstr "Draguigan" #. units/pg.udb:2864 msgid "10.5 leFH 18" msgstr "10,5 leFH 18" #. maps/pg/map29:7 msgid "Krasnograd" msgstr "Krasnograd" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Halle" msgstr "Halle" #. campaigns/PG:68 msgid "" "Congratulations for conquering France and for bringing an overwhelming " "victory to the Reich. France has surrendered, and its dependencies will be " "put under German protectorate. Yet it was too late to finish preparations " "for the invasion of England in time." msgstr "" "Glückwunsch zur Eroberung Frankreichs. Sie brachten dem Reich damit einen " "überwältigenden Sieg. Frankreich hat kapituliert und seine Kolonien werden " "unter deutsches Protektorat gestellt. Leider genügte die Zeit nicht, die " "Vorbereitungen zur Invasion Englands abzuschließen." #. maps/pg/map10:7 maps/pg/map28:7 msgid "Batumi" msgstr "Batumi" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Landsberg" msgstr "Landsberg" #. maps/pg/map36:7 msgid "Bladensburg" msgstr "Bladensburg" #. units/pg.udb:11181 msgid "US 40mm AD" msgstr "US 40mm FlaK" #. maps/pg/map08:7 msgid "Karak" msgstr "Karak" #. campaigns/PG:136 msgid "" "Eventually, time has come for operation Barbarossa, the long-term planned " "invasion of Soviet Russia. You are in charge of Army Group Center, and you " "have to conduct the main thrust through Soviet defences and keep them " "running. In order to prevent the enemy from establishing a front line and " "mobilise reserves from the rear, you have to capture Smolensk and all other " "objectives before the 7th of September." msgstr "" "Endlich ist die Zeit für Unternehmen Barbarossa gekommen, der lang geplanten " "Invasion Sowjetrusslands. Sie befehlen über Heeresgruppe Mitte und müssen " "den Hauptstoß durch sowjetische Verteidigungen führen und den Feind in " "Bewegung halten. Um den Aufbau einer Front und die Mobilisierung russischer " "Reserven aus der Etappe zu unterbinden, müssen Sie Smolensk und alle anderen " "Ziele vor dem 7. September erobern." #. maps/pg/map29:7 msgid "Proletarskiy" msgstr "Proletarskij" #. maps/pg/map16:7 msgid "Argens River" msgstr "Argens" #. units/pg.udb:7989 msgid "ST 7.6cm AD" msgstr "ST 7,6cm FlaK" #. maps/pg/map29:7 msgid "Rubezhnoye" msgstr "Rubeschnoje" #. maps/pg/map04:7 msgid "St. Valery" msgstr "St. Valery" #. units/pg.udb:2304 msgid "Wespe" msgstr "Wespe" #. campaigns/PG:290 msgid "" "Your initial capture of Moscow let arise hope that Russia would surrender. " "Unfortunately, fresh Siberian reserves started a counter-attack and expelled " "our exhausted and worn down spearheads out of the capital. While we managed " "to establish a stable front line again, we could not attempt another advance " "in 1942." msgstr "" "Ihre Eroberung Moskaus ließ Hoffnung auf eine russische Kapitulation " "aufkeimen. Unglücklicherweise führten ausgeruhte sibirische Reserven einen " "Entsatzangriff durch, der unsere erschöpften Truppen aus der Hauptstradt " "trieb. Obwohl wir die Front stabilisieren konnten, waren weitere Angriffe " "1942 undurchführbar." #. maps/pg/map15:7 msgid "Cabourg" msgstr "Cabourg" #. maps/pg/map29:7 msgid "Akhtyrica" msgstr "Achtirika" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Bedford" msgstr "Bedford" #. campaigns/PG:637 msgid "" "Pushing back the Allied onslaught to the pre-war borders of the Reich gave " "us, combined with your earlier victory over Russia, a strong position to " "negotiate a favourable peace treaty." msgstr "" "Sie haben den alliierten Ansturm bis zu den Vorkriegsgrenzen zurückgedrängt. " "Mit Ihrem früheren Sieg über Russland konnten wir somit einen vorteilhaften " "Friedensvertrag aushandeln." #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wittenberg" msgstr "Wittenberg" #. maps/pg/map17:7 msgid "Demer River" msgstr "Demer" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Boguchar" msgstr "Bogutschar" #. scenarios/pg/Balkans:2 msgid "BALKANS" msgstr "BALKAN" #. units/pg.udb:27 msgid "Tracked" msgstr "Ketten" #. maps/pg/map36:7 msgid "Queenstown" msgstr "Queenstown" #. maps/pg/map29:7 msgid "Lyubotin" msgstr "Ljubotin" #. maps/pg/map05:7 maps/pg/map15:7 maps/pg/map18:7 msgid "Caen" msgstr "Caen" #. units/pg.udb:1604 msgid "Panther A" msgstr "Panther A" #. scenarios/pg/Moscow41:3 msgid "" "October 2, 1941: Can the heroes of the Motherland hold the Panzers until the " "winter comes?" msgstr "" "2. Oktober 1941: Können die Helden des Vaterlands die Panzer bis zum " "Wintereinbruch aufhalten?" #. campaigns/PG:554 msgid "" "Meanwhile, the Africa Corps is facing another threat from the West. This is " "the initial landing of US expeditionary forces in Tunesia after their " "declaration of war against Germany. Though unexperienced, they outnumber our " "troops by far, and must not be underestimated. Your order is to force the " "American troops from the continent, taking all objectives. As a last resort, " "you have to hold at least Tunis and two other objectives to make the outcome " "favourable to us." msgstr "" "Unterdessen droht dem Afrikakorps Gefahr vom Westen. Dies ist die erste " "Landung von US-Expeditionstruppen in Tunesien nach der amerikanischen " "Kriegserklärung an Deutschland. Obwohl unerfahren, übertreffen sie unsere " "Truppenstärken bei weiterm und dürfen nicht unterschätzt werden. Ihr Befehl " "lautet, die amerikanischen Truppen vom Kontinent unter Rückeroberung aller " "Ziele zu vertreiben. Als letzte Gegenmaßnahme müssen Sie für einen " "gefälligeren Ausgang der Schlacht mindestens Tunis und zwei weitere Ziele " "halten." #. maps/pg/map14:7 msgid "Rieti" msgstr "Rieti" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Laval" msgstr "Laval" #. units/pg.udb:4628 msgid "GB Hur I" msgstr "GB Hur I" #. units/pg.udb:5077 msgid "GB C-47" msgstr "GB C-47" #. campaigns/PG:348 msgid "" "Thanks to your great achievements, the Soviet summer offensive has been " "halted. Unfortunately, much pressure has accumulated on the Western front, " "so High Command decided to transfer you there to relieve the situation." msgstr "" "Dank Ihrer gewaltigen Leistung konnte die sowjetische Sommeroffensive " "angehalten werden. Währenddessen erreichte die Situation im Westen ein " "kritisches Maß, wodurch das Oberkommando Ihre Versetzung an die Westfront " "veranlasste." #. units/pg.udb:6505 msgid "ST YaK-1" msgstr "ST JaK-1" #. maps/pg/map36:7 msgid "Rappahannock River" msgstr "Rappahannockfluss" #. maps/pg/map05:7 msgid "Seine" msgstr "Seine" #. scenarios/pg/Anvil:278 scenarios/pg/Anzio:308 scenarios/pg/Ardennes:470 scenarios/pg/Balkans:536 ... msgid "Axis" msgstr "Achse" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wuppertal" msgstr "Wuppertal" #. maps/pg/map21:7 msgid "Turnu Severin" msgstr "Turnu Severin" #. campaigns/PG:416 msgid "" "Due to your exceptional leadership skills, you are offered command over Army " "Group Center in Russia.##Herr General, do you want to defend the Reich " "against Soviet forces in Byelorussia, or fight against the upcoming invasion " "of France?" msgstr "" "Dank Ihrer außerordentlichen Führungsqualitäten wird Ihnen das Kommando über " "Heeresgruppe Mitte in Russland angeboten.##Herr General, möchten Sie das " "Reich gegen sowjetische Truppen in Weißrussland verteidigen, oder gegen die " "kommende Invasion in Frankreich ankämpfen?" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Falaise" msgstr "Falaise" #. maps/pg/map29:7 msgid "Stakhanov" msgstr "Stachanow" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Jutovo" msgstr "Schutowo" #. campaigns/PG:264 msgid "" "For this year, we have gained another chance to advance towards Moscow, the " "logistical and industrial center of Russia. It is imperative that you take " "Moscow and all other objectives by no later than the 28th of December before " "winter weather will bring our advance to a halt. However, to garrison the " "city against russian counterattacks, you should finish your mission several " "weeks earlier. This is the ultimate chance to end the war in the East." msgstr "" "Dieses Jahr errangen wir eine weitere Gelegenheit, nach Moskau, dem " "logistisch-industriellen Zentrum Russlands, vorzustoßen. Die Eroberung " "Moskaus und aller anderen Ziele bis spätestens zum 28. Dezember ist daher " "unerlässlich, bevor Winterstürme unseren Vormarsch aufhalten. Zur " "Absicherung der Stadt gegen russische Entsatzangriffe sollten Sie die " "Mission jedoch einige Wocher vorher beenden. Dies ist die allerletzte " "Gelegenheit zur Beendigung des Krieges im Osten." #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Horsham" msgstr "Horscham" #. maps/pg/map21:7 msgid "Thessaloniki" msgstr "Thessaloniki" #. maps/pg/map21:7 msgid "Mostar" msgstr "Mostar" #. maps/pg/map17:7 msgid "St. Vith" msgstr "St. Vith" #. maps/pg/map19:7 msgid "St. Anthonis" msgstr "St. Anthonis" #. units/pg.udb:2276 msgid "sIG 38(t)M" msgstr "sIG 38(t)M" #. scenarios/pg/Anzio:3 msgid "" "Jan 22, 1944: German troops attack the Anzio Beachhead while attempting to " "maintain the Gustav Line." msgstr "" "22. Jan 1944: Deutsche Truppen greifen den Anzio-Strandkopf an und " "versuchen, die Gustavlinie zu halten." #. maps/pg/map14:7 msgid "Anzio-Nettuno" msgstr "Anzio-Nettuno" #. campaigns/PG:286 msgid "" "We have now another chance to advance towards Moscow and end the war in the " "East. However, the Soviet defenders are much better prepared this time. " "Therefore, it is imperative that you capture Moscow and a multitude of other " "objectives by the 28th of December at the latest. However, to make the " "Russians actually surrender, it is necessary to finish your mission several " "weeks earlier." msgstr "" "Wir haben nun eine weitere Gelegenheit, nach Moskau vorzustoßen und den " "Krieg im Osten zu beenden. Die sowjetische Verteidigung ist jedoch dieses " "Mal viel besser vorbereitet. Somit ist die Eroberung Moskaus und einer " "Vielzahl anderer Ziele bis spätestens zum 28. Dezember unerlässlich. Zur " "Erzwingung einer Kapitulation sollten Sie die Mission jedoch einige Wocher " "vorher beenden." #. scenarios/pg/Moscow43:2 msgid "MOSCOW (43)" msgstr "MOSKAU (43)" #. units/pg.udb:7261 msgid "ST T-60" msgstr "ST T-60" #. maps/pg/map16:7 msgid "Erteux River" msgstr "Erteux" #. units/pg.udb:10901 msgid "US Eng 41" msgstr "US Pioniere 41" #. maps/pg/map36:7 msgid "Severn River" msgstr "Severn" #. maps/pg/map14:7 msgid "L'Aquila" msgstr "L'Aquila" #. nations/pg.ndb:96 msgid "Great Britain" msgstr "Großbritannien" #. maps/pg/map36:7 msgid "Glen Burnie" msgstr "Glen Burnie" #. units/pg.udb:8661 msgid "IT BA65" msgstr "IT BA65" #. units/pg.udb:11209 msgid "US 3 Inches AD" msgstr "US 3 Zoll FlaK" #. units/pg.udb:10845 msgid "US Para 43" msgstr "US FJ 43" #. campaigns/PG:484 msgid "" "We have entrenched ourselves at the Siegfried line and have observed Allied " "spearheads to slow down considerably. Thus, we prepared a strike force for a " "counter-attack, called operation Wacht am Rhein, in an attempt to " "precipitate a decision in the West. If you capture all objectives until the " "31st of December, we are in a strong position to negotiate a peace treaty." msgstr "" "Wir verschanzten uns entlang der Siegfriedlinie und beobachteten die " "beträchtliche Verlangsamung des alliierten Vorstoßes. Deshalb stellten wir " "eine Streitmacht zum Gegenangriff auf, genannt Unternehmen Wacht am Rhein. " "Erobern Sie alle Ziele bis zum 31. Dezember, und wir befinden uns in einer " "starken Position für Friedensverhandlungen." #. scenarios/pg/NorthAfrica:3 msgid "" "March 31, 1941: Axis attempts to seize Egypt and the Suez. Can the Desert " "Fox be stopped?" msgstr "" "31. März 1941: Die Achse versucht sich Ägyptens und des Suez zu bemächtigen. " "Lässt sich der Wüstenfuchs aufhalten?" #. campaigns/PG:53 msgid "" "Now it is the time to make the French and English forces pay for their " "declarations of war. In an audacious two-pronged attack, your Northern " "forces will break through Liege, Brussels, Maubeuge, while your Southern " "forces will force their way through the rough Ardennes forests and take by " "surprise the northernmost outpost of the Maginot-line, Sedan. Both forces " "are bound to pass the battlefields of the World War and capture all " "objectives by the 8th of June. If you capture your objectives much earlier, " "this could give us a chance to prepare an invasion of England this year." msgstr "" "Nun ist die Zeit reif, die frankoenglischen Aggressionen in ihre Schranken " "zu verweisen. Mit zwei Stoßkeilen dringen Sie nördlich über Lüttich, " "Brüssel, Maubeuge, südlich über die waldigen Ardennen und den nördlichsten " "Außenposten der Maginot-Linie, Sedan vor, vorbei an den Schlachtfeldern des " "Weltkrieges, und erobern alle Ziele bis zum 8. Juni. Ein wesentlich früherer " "Erfolg erlaubt Vorbereitungen für eine Invasion Englands dieses Jahr." #. maps/pg/map16:7 msgid "Briancon" msgstr "Briancon" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Worcester" msgstr "Worcester" #. campaigns/PG:434 msgid "" "Your troops were outnumbered on any scale, enabling the Allies to establish " "and extend their beachheads in Normandy." msgstr "" "Unsere Truppen wurden in jeder Hinsicht übertroffen, womit die Alliierten " "ihre Landungsköpfe in der Normandie festigen und erweitern konnten." #. campaigns/PG:565 msgid "Husky" msgstr "Husky" #. units/pg.udb:3480 msgid "AF 75mm Gun" msgstr "AS 75mm Geschütz" #. maps/pg/map24:7 msgid "Korosten" msgstr "Korosten" #. maps/pg/map16:7 msgid "Gard River" msgstr "Gard" #. maps/pg/map14:7 msgid "Pescara" msgstr "Pescara" #. units/pg.udb:988 msgid "PzIB" msgstr "PzIB" #. maps/pg/map17:7 msgid "Martelange" msgstr "Martelange" #. campaigns/PG:466 msgid "" "This is impressing! While General Staff internally knew that the order was " "infeasible given the scarce resources available, you managed to achieve the " "impossible and drove the Allied army back into the sea. As a reaction, the " "Allied increased the bombing raids against vital German war industries and " "our supply lines in France, putting your victory at stake. Exploiting the " "resource shortage, the Allies performed another landing, and drove our " "forces back to the Rhine." msgstr "" "Dies ist beeindruckend! Obwohl der Generalstab insgeheim wusste, dass der " "Befehl mit den gegebenen Kräften nicht durchführbar war, vollzogen Sie das " "Unmögliche und drängten die alliierten Armeen zurück ins Meer. Als Reaktion " "verstärkten die Alliierten die Bombenangriffe auf deutsche " "Rüstungsindustrien und Nachschubwege. Der Materialmangel ermöglichte den " "Alliierten eine weitere Landung, und sie drängten uns zurück zum Rhein." #. maps/pg/map21:7 msgid "Kula" msgstr "Kula" #. maps/pg/map03:7 msgid "Lagen River" msgstr "Lagen" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Tsymiank" msgstr "Zimjank" #. units/pg.udb:11797 msgid "FPO 25 Pdr" msgstr "FPO 25 Pfdr" #. maps/pg/map08:7 msgid "Damascus" msgstr "Damaskus" #. units/pg.udb:1268 msgid "SdKfz 7/1" msgstr "SdKfz 7/1" #. maps/pg/map03:7 msgid "Oslo" msgstr "Oslo" #. maps/pg/map04:7 msgid "Arras" msgstr "Arras" #. maps/pg/map30:7 msgid "Dmitrovsk-Orlovskiy" msgstr "Dmitrowsk-Orlowskij" #. maps/pg/map17:7 msgid "Mons" msgstr "Mons" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Le Mans" msgstr "Le Mans" #. maps/pg/map17:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Trier" msgstr "Trier" #. maps/pg/map36:7 msgid "Colonial Beach" msgstr "Colonial Beach" #. units/pg.udb:10173 msgid "US M4A1" msgstr "US M4A1" #. units/pg.udb:5497 msgid "GB Sherman" msgstr "GB Sherman" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Winchester" msgstr "Winchester" #. campaigns/PG:506 msgid "" "Your inability to sustain against paratroopers allowed the Allied to exploit " "the Rhine crossing, and to thrust against the German heartlands without " "delay." msgstr "" "Ihre Unfähigkeit, gegen die Fallschirmjäger zu bestehen, erlaubte den " "Alliierten, den Rheinübergang auszunützen und mit unverminderter " "Geschwindigkeit gegen deutsches Kernland vorzustoßen." #. maps/pg/map10:7 maps/pg/map28:7 msgid "Tikhoretsk" msgstr "Tichoretsk" #. maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Eindhoven" msgstr "Eindhoven" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Stettin" msgstr "Stettin" #. maps/pg/map36:7 msgid "Falls Church" msgstr "Falls Church" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Zagorsk" msgstr "Zagorsk" #. maps/pg/map13:7 msgid "Petralia" msgstr "Petralia" #. maps/pg/map04:7 msgid "Maubeuge" msgstr "Maubeuge" #. campaigns/PG:534 msgid "" "Supply shortage and the ever increasing resistence of English troops enabled " "the English to take the initiative, and expel the Africa Corps from Egypt " "and Libya." msgstr "" "Nachschubprobleme und der stetig steigende Widerstand englischer Truppen " "erlaubte den Engländern, die Initiative zu ergreifen und das Afrikakorps aus " "Ägypten und Libyen zu vertreiben." #. units/pg.udb:11461 msgid "FFR M2 Hftrk" msgstr "FFR M2 Hlbktn" #. campaigns/PG:543 msgid "" "Adverse weather and supply conditions forced our troops out of Mesopotamia, " "while English couter-attacks forced us out of Egypt. We basically have to " "start at the beginning now." msgstr "" "Widriges Wetter und Nachschubprobleme trieben unsere Truppen aus dem " "Zweistromland, während englische Gegenangriffe uns aus Ägypten vertrieben. " "Wir beginnen praktisch wieder am Anfang." #. maps/pg/map14:7 msgid "Lanciano" msgstr "Lanciano" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Angers" msgstr "Angers" #. campaigns/PG:392 msgid "" "Your brave efforts lead to the capturing of all Southern England. " "Unfortunately, the landing of American reinforcements and their counter-" "attack forced High Command to retract all troops back to the continent. You " "have been called to the Eastern front to prove that you are a worthy Panzer " "General nonetheless." msgstr "" "Ihre tapferen Bemühungen führten zur Eroberung Südenglands. " "Unglücklicherweise zwangen die Landung und der folgende Gegenangriff " "amerikanischer Verstärkungen das Oberkommando zur Rücknahme aller Truppen " "zum Festland. Sie wurden an die Ostfront berufen, um dort Ihre Eignung als " "würdiger Panzergeneral unter Beweis zu stellen." #. scenarios/pg/NorthAfrica:2 msgid "NORTH AFRICA" msgstr "NORDAFRIKA" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Cairo" msgstr "Kairo" #. units/pg.udb:7821 msgid "ST Bridge Eng" msgstr "ST Brückenbau" #. maps/pg/map08:7 msgid "Haifa" msgstr "Haifa" #. maps/pg/map36:7 msgid "Trinidad" msgstr "Trinidad" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Czestochowa" msgstr "Tschenstochau" #. maps/pg/map29:7 msgid "Krasnoarmeyskoye" msgstr "Krasnoamejskoje" #. scenarios/pg/Poland:2 msgid "POLAND" msgstr "POLEN" #. maps/pg/map04:7 maps/pg/map17:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Luxembourg" msgstr "Luxemburg" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Stary Oskol" msgstr "Stary Oskol" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Groningen" msgstr "Gröningen" #. maps/pg/map36:7 msgid "South Arlington" msgstr "Südarlington" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Nevel" msgstr "Newel" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Berlin" msgstr "Berlin" #. units/pg.udb:8381 msgid "Z-Destroyer" msgstr "Z-Zerstörer" #. units/pg.udb:8101 msgid "AF HvyCruiser" msgstr "AS SchwKreuzer" #. maps/pg/map21:7 msgid "Mesolongion" msgstr "Mesolongion" #. maps/pg/map13:7 msgid "Caltanissetta" msgstr "Caltanissetta" #. maps/pg/map16:7 msgid "Cuneo" msgstr "Cuneo" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Mablethorpe" msgstr "Mablethorpe" #. maps/pg/map14:7 msgid "Frosinone" msgstr "Frosinone" #. maps/pg/map26:7 msgid "Mikhaili" msgstr "Michaili" #. units/pg.udb:11545 msgid "FFR M20 LAC" msgstr "FFR M20 LAC" #. units/pg.udb:3592 msgid "AF Truck" msgstr "AS Lastwagen" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Budennovsk" msgstr "Budennowsk" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Tobruk" msgstr "Tobruk" #. campaigns/PG:79 msgid "" "Making Germany face another disaster like in the World War has forced the " "Reich to surrender and sign an overly unfavourable peace treaty." msgstr "" "Durch einen weiteren Fehlschlag in der Größenordnung des Weltkrieges zwang " "das Reich zur Unterzeichnung eines überaus nachteiligen Friedensvertrages." #. units/pg.udb:4824 msgid "GB Meteor III" msgstr "GB Meteor III" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Chatham" msgstr "Chatham" #. units/pg.udb:7793 msgid "ST Cavalry" msgstr "ST Kavallerie" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Berdansk" msgstr "Berdansk" #. units/pg.udb:11769 msgid "FPO 6 Pdr ATG" msgstr "FPO 6 Pfdr PaK" #. maps/pg/map33:7 msgid "Tet" msgstr "Tet" #. maps/pg/map19:7 msgid "Erp" msgstr "Erp" #. campaigns/PG:122 msgid "" "Resistence was much heavier than anticipated from reconnaissance flights. " "Thus our troops faced heavy losses, and we had to retreat to the continent. " "Crete will pose a latent danger for the ongoing operations on the Eastern " "front." msgstr "" "Der Widerstand war wesentlich heftiger als von Aufklärungsflügen angenommen. " "Somit erlitten unsere Truppen gewaltige Verluste, sodass wir sie zum " "Festland zurückziehen mussten. Kreta stellt somit eine latente Gefahr für " "die weiterführenden Unternehmungen an der Ostfront dar." #. maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 maps/pg.tdb:2174 msgid "Rough Desert" msgstr "Steinwüste" #. units/pg.udb:6477 msgid "ST I-16" msgstr "ST I-16" #. maps/pg/map13:7 msgid "Gaeta" msgstr "Gaeta" #. maps/pg/map04:7 msgid "Roer" msgstr "Roer" #. maps/pg/map09:7 msgid "Marsa Matruh" msgstr "Mersa Matruch" #. maps/pg/map15:7 msgid "St. Hilaire" msgstr "St. Hilaire" #. campaigns/PG:19 msgid "1st September 1939" msgstr "1. September 1939" #. scenarios/pg/Barbarossa:2 msgid "BARBAROSSA" msgstr "BARBAROSSA" #. maps/pg/map22:7 msgid "Melambes" msgstr "Melambes" #. scenarios/pg/Anvil:330 scenarios/pg/Anzio:365 scenarios/pg/Ardennes:562 scenarios/pg/Balkans:603 ... msgid "Axis Defeat" msgstr "Achse Niederlage" #. maps/pg/map15:7 msgid "Vimoutiers" msgstr "Vimoutiers" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Basel" msgstr "Basel" #. maps/pg.tdb:44 msgid "Raining(Ice)" msgstr "Regen (schneebedeckt)" #. units/pg.udb:7429 msgid "ST KV-1/41" msgstr "ST KW-1/41" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Lodz" msgstr "Lodsch" #. campaigns/PG:184 msgid "8th September 1941" msgstr "8. September 1941" #. maps/pg/map36:7 msgid "Georgetown" msgstr "Georgetown" #. maps/pg/map36:7 msgid "Patuxent River" msgstr "Patuxentfluss" #. units/pg.udb:4684 msgid "GB Spit II" msgstr "GB Spit II" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Miskolc" msgstr "Miskolc" #. campaigns/PG:46 msgid "" "Taking all objectives has enabled us to expel the English forces from Norway " "and station our fleet there. Our supply lines should be safe. You have been " "awarded command over troops at the Western border." msgstr "" "Die Eroberung aller Ziele erlaubte die Vertreibung der englischen Truppen " "aus Norwegen und die dortige Stationierung unserer Flotte. Unser Nachschub " "ist gesichert, und Sie erhalten das Kommando über die Truppen im Westen." #. campaigns/PG:30 msgid "10th September 1939" msgstr "10. September 1939" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Danzig" msgstr "Danzig" #. maps/pg/map16:7 msgid "Linee River" msgstr "Linee" #. campaigns/PG:229 msgid "7th June 1942" msgstr "7. Juni 1942" #. units/pg.udb:7093 msgid "ST T-28M1" msgstr "ST T-28M1" #. units/pg.udb:2416 msgid "Wirbelwind" msgstr "Wirbelwind" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Tula" msgstr "Tula" #. units/pg.udb:97 msgid "Destroyer" msgstr "Zerstörer" #. maps/pg/map17:7 msgid "Vielsalm" msgstr "Vielsalm" #. maps/pg/map21:7 msgid "Debar" msgstr "Debar" #. maps/pg/map12:7 maps/pg/map13:7 msgid "Tunis" msgstr "Tunis" #. maps/pg.tdb:1364 msgid "Town" msgstr "Stadt" #. units/pg.udb:6701 msgid "ST YaK-9" msgstr "ST JaK-9" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Tamar" msgstr "Tamar" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Timoshevskaya" msgstr "Timoschewskaja" #. maps/pg/map03:7 msgid "Harstad" msgstr "Harstad" #. maps/pg/map36:7 msgid "West River" msgstr "Westfluss" #. scenarios/pg/Moscow42:3 msgid "" "October 1, 1942: Axis offensive to capture Moscow and end the war in the " "east." msgstr "" "1. Oktober 1942: Deutscher Angriff zur Eroberung Moskaus und Beendigung des " "Krieges im Osten." #. units/pg.udb:67 msgid "Recon" msgstr "Aufklärer" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Volkovysk" msgstr "Wolkowisk" #. units/pg.udb:2136 msgid "Marder IIIH" msgstr "Marder IIIH" #. units/pg.udb:2472 msgid "SdKfz 10/4" msgstr "SdKfz 10/4" #. units/pg.udb:3508 msgid "GB Inf 43" msgstr "GB Inf 43" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Moselle River" msgstr "Mosel" #. units/pg.udb:6029 msgid "GB 3 Tn Lorry" msgstr "GB 3t Lastwagen" #. units/pg.udb:7457 msgid "ST KV-1/42" msgstr "ST KW-1/42" #. units/pg.udb:4012 msgid "FR Truck" msgstr "FR Lastwagen" #. campaigns/PG:23 msgid "" "Your quick breakthrough in Poland enabled High Command to make additional " "resources available to you." msgstr "" "Mit Ihrem schnellen Durchbruch in Polen konnte das Oberkommando zusätzliche " "Resourcen zur Verfügung stellen." #. maps/pg/map14:7 msgid "Vasto" msgstr "Vasto" #. maps/pg/map05:7 msgid "Bourges" msgstr "Bourges" #. maps/pg/map16:7 msgid "Grenoble" msgstr "Grenoble" #. units/pg.udb:2892 msgid "15 sFH 18" msgstr "15 sFH 18" #. maps/pg/map14:7 msgid "Latina" msgstr "Latina" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Obninsk" msgstr "Obninsk" #. units/pg.udb:6645 msgid "ST YaK-7B" msgstr "ST JaK-7B" #. maps/pg/map15:7 msgid "Bayeux" msgstr "Bayeux" #. maps/pg/map29:7 msgid "Orel River" msgstr "Orel" #. units/pg.udb:9865 msgid "US B17F FF" msgstr "US B17F FF" #. campaigns/PG:609 msgid "" "Fanatic resistence kept our troops from advancing fast enough before the " "Americans used their secret weapon, the Atomic Bomb. Thus, heavy losses " "forced us to retract our troops from the American continent. Your America " "adventure has been a disaster, but General Staff ows you acknowledgement for " "your earlier victories over Western and Eastern Europe." msgstr "" "Fanatischer Widerstand hielt unsere Truppen von einem schnellen Vormarsch " "ab, sodass die Amerikaner ihre Geheimwaffe, die Atombombe, einsetzen " "konnten. Die resultierenden schweren Verluste zwangen die Rücknahme unserer " "Truppen vom amerikanischen Kontinent. Ihr Amerikaabenteuer war eine " "Katastrofe, jedoch schuldet Ihnen der Generalstab Anerkennung für Ihre " "früheren Siege über West- und Osteuropa." #. units/pg.udb:9809 msgid "US B26C Mardr" msgstr "US B26C Mardr" #. maps/pg/map29:7 msgid "Kramatorsk" msgstr "Kramatorsk" #. maps/pg/map30:7 msgid "Novosil" msgstr "Nowosil" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Konstantinovsk" msgstr "Konstantinowsk" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Gazala" msgstr "Gazala" #. units/pg.udb:7765 msgid "ST Infantry" msgstr "ST Infanterie" #. nations/pg.ndb:56 msgid "Italy" msgstr "Italien" #. maps/pg/map30:7 msgid "Rylsk" msgstr "Rilsk" #. maps/pg/map12:7 msgid "Phillippeville" msgstr "Phillippeville" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kalinin" msgstr "Kalinin" #. maps/pg/map24:7 msgid "Radomyshi" msgstr "Radomischi" #. maps/pg/map13:7 msgid "Sciacca" msgstr "Sciacca" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kolomna" msgstr "Kolomna" #. units/pg.udb:11321 msgid "FFR Infantry" msgstr "FFR Infanterie" #. maps/pg/map03:7 msgid "Molde" msgstr "Molde" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Teykovo" msgstr "Tejkowo" #. maps/pg/map24:7 msgid "Lubnyr" msgstr "Lubnjr" #. campaigns/PG:634 msgid "" "We are now facing a massive force in the West invading German soil. Your " "order is to hold Berlin and at least five other objectives to prevent " "further detriment to the Reich." msgstr "" "Wir blicken nun einer gewaltigen Streitmacht im Westen entgegen, die " "deutschen Boden betritt. Ihr Befehl lautet, Berlin und mindestens fünf " "andere Ziele zu halten, um weiteren Schaden vom Reich abzuwenden." #. units/pg.udb:11601 msgid "FPO Sherman" msgstr "FPO Sherman" #. maps/pg/map17:7 maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Meuse River" msgstr "Meuse" #. units/pg.udb:85 msgid "Fighter" msgstr "Jäger" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Bryansk" msgstr "Brjansk" #. maps/pg/map36:7 msgid "Accotink Creek" msgstr "Accotinkbach" #. maps/pg/map15:7 msgid "Dol" msgstr "Dol" #. maps/pg/map30:7 msgid "Dmitriyev-Lgovskiy" msgstr "Dmitrijew-Lgowskij" #. units/pg.udb:73 msgid "Artillery" msgstr "Artillerie" #. maps/pg/map15:7 msgid "Sienner River" msgstr "Sienner" #. maps/pg/map05:7 msgid "Ham" msgstr "Ham" #. units/pg.udb:4656 msgid "GB Spit I" msgstr "GB Spit I" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Nancy" msgstr "Nancy" #. campaigns/PG:323 msgid "" "Your performance was outstanding! Despite heavy resistence, you were able to " "crush the enemy and successfully secure the pocket of Kursk. Thanks to this " "masterpiece, we can attempt another assault on Moscow." msgstr "" "Ihre Leistung war außerordentlich! Trotz heftiger Widerstände konnten Sie " "die Verteidigung durchbrechen und den Kessel von Kursk sichern. Dank dieser " "Meisterleistung steht einem Vormarsch auf Moskau nichts mehr im Wege." #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Great Vermouth" msgstr "Great Vermouth" #. maps/pg/map05:7 msgid "Vienne" msgstr "Vienne" #. units/pg.udb:2612 msgid "PSW 231/6r" msgstr "PSW 231/6r" #. units/pg.udb:1688 msgid "Tiger II" msgstr "Tiger II" #. campaigns/PG:382 msgid "" "Your brave efforts lead to the capturing of all Southern England. " "Unfortunately, the landing of American reinforcements and their counter-" "attack forced High Command to retract all troops back to the continent." msgstr "" "Ihre tapferen Bemühungen führten zur Eroberung Südenglands. " "Unglücklicherweise zwangen die Landung und der folgende Gegenangriff " "amerikanischer Verstärkungen das Oberkommando zur Rücknahme aller Truppen " "zum Festland." #. campaigns/PG:340 msgid "" "Holding Warsaw temporarily relieved us from pressure on the Eastern front, " "and enabled us to prepare further operations." msgstr "" "Das Halten von Warschau lindert den Druck an der Ostfront kurzzeitig, was " "dem Oberkommando die Vorbereitung weiterer Unternehmungen erlaubt." #. units/pg.udb:6981 msgid "ST BA-10" msgstr "ST BA-10" #. campaigns/PG:451 msgid "The Allied army easily drove our troops back to the Netherlands." msgstr "" "Die alliierte Armee drängte unsere Truppen mit Leichtigkeit bis in die " "Niederlande zurück." #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Stuttgart" msgstr "Stuttgart" #. maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Breslau" msgstr "Breslau" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Waldenburg" msgstr "Waldenburg" #. maps/pg/map29:7 msgid "Karlovka" msgstr "Karlowka" #. maps/pg/map36:7 msgid "Hyattsville" msgstr "Hyattsville" #. units/pg.udb:596 msgid "FW190g" msgstr "FW190g" #. maps/pg/map22:7 msgid "Moires" msgstr "Moires" #. units/pg.udb:6729 msgid "ST La-7" msgstr "ST La-7" #. campaigns/PG:412 msgid "" "The mission was a disaster. Not sustaining allowed the Allies to invade " "Germany from the South, forces upon us an unfavourable peace treaty like the " "one in 1918." msgstr "" "Die Mission war ein Fehlschlag. Die Alliierten konnten Deutschland vom Süden " "her besetzen, was uns zur Annahme eines nachteiligen Friedensvertrages wie " "demjenigen von 1918 zwang." #. maps/pg/map04:7 msgid "Ostend" msgstr "Oostende" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Temyryk" msgstr "Temirik" #. campaigns/PG:58 msgid "" "Despite your initially slow advance, by an overwhelming array of men and " "material we eventually drove the French forces over the Somme river. Yet we " "cannot tolerate suboptimal performance like this any longer. Your deeds need " "to improve. Needlessly to say that our chance of invading England this year " "has been lost." msgstr "" "Trotz Ihres anfänglich langsamen Vormarsches konnten wir schließlich die " "französischen Streitkräfte mit einer überwältigenden Menge an Menschen und " "Material über die Somme zurückdrängen. Dennoch können wir solch suboptimale " "Leistung nicht länger tolerieren. Ihre Taten müssen sich verbessern. Es ist " "unnötig zu erwähnen, dass die Gelegenheit zur Invasion Englands für dieses " "Jahr verloren ist." #. units/pg.udb:792 msgid "He111 H2" msgstr "He111 H2" #. units/pg.udb:6897 msgid "ST PE-8" msgstr "ST PE-8" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Freiburg" msgstr "Freiburg" #. maps/pg/map12:7 msgid "Gabes" msgstr "Gabes" #. maps/pg/map13:7 msgid "Prizzi" msgstr "Prizzi" #. scenarios/pg/Norway:3 msgid "" "April 9, 1940: Wanting Norwegian iron, and northern air bases to deny " "British access to the Baltic Sea, the Germans launch a surprise attack on " "Norway." msgstr "" "9. April 1940: Für norwegisches Eisen und nördliche Flugbasen, um den Briten " "den Zugang zum Baltischen Meer zu versperren, starten die Deutschen einen " "Überraschungsangriff auf Norwegen." #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Chester" msgstr "Chester" #. campaigns/PG:344 msgid "22nd June 1944" msgstr "22. Juni 1944" #. maps/pg/map15:7 msgid "Domfront" msgstr "Domfront" #. maps/pg/map21:7 msgid "Valjevo" msgstr "Waljewo" #. campaigns/PG:188 msgid "" "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have " "achieved what Napoleon only dreamed of. All of Russia has been put under " "German administration, and we have already begun exploiting its vast " "resources. Your decision to take the early route towards Moscow was right, " "and therefore you get awarded one of the highest order medals of the Reich, " "the Iron Cross with Oak Leaves and Swords." msgstr "" "Moskau ist gefallen, und die Sowjetunion hat kapituliert! Sie haben " "erreicht, wovon Napoleon nur träumte. Russland wurde unter deutsche " "Verwaltung gestellt, und wir begannen bereits mit der Ausbeutung seiner " "gewaltigen Rohstoffvorkommen. Ihre Entscheidung zum direkten Marsch auf " "Moskau war richtig, weswegen Ihnen einer der höchsten Orden des Reiches, das " "Eiserne Kreuz mit Eichenlaub und Schwertern, verliehen wird." #. maps/pg/map36:7 msgid "Port Tobacco" msgstr "Tabakhafen" #. maps/pg/map29:7 msgid "Lozovaya" msgstr "Losowaja" #. maps/pg/map14:7 msgid "Volturno River" msgstr "Volturno" #. units/pg.udb:11069 msgid "US 75mm Gun" msgstr "US 75mm Geschütz" #. units/pg.udb:1184 msgid "Pz38(t)A" msgstr "Pz38(t)A" #. units/pg.udb:7289 msgid "ST T-40" msgstr "ST T-40" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Dover" msgstr "Dover" #. maps/pg/map21:7 msgid "Berati" msgstr "Berati" #. units/pg.udb:4768 msgid "GB Hur IV" msgstr "GB Hur IV" #. maps/pg/map17:7 msgid "Nivelles" msgstr "Nivelles" #. units/pg.udb:5049 msgid "GB Lancaster" msgstr "GB Lancaster" #. maps/pg/map18:7 msgid "Neufchatel" msgstr "Neufchâtel" #. maps/pg/map04:7 msgid "Noyon" msgstr "Noyon" #. nations/pg.ndb:48 msgid "Hungary" msgstr "Ungarn" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Braunschweig" msgstr "Braunschweig" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Bialstok" msgstr "Bialystok" #. maps/pg/map08:7 msgid "Karbala" msgstr "Karbala" #. maps/pg/map12:7 msgid "Kasserine" msgstr "Kasserine" #. scenarios/pg/D-Day:2 msgid "D-DAY" msgstr "D-DAY" #. maps/pg/map24:7 msgid "Cherkassi" msgstr "Tscherkassi" #. maps/pg/map08:7 msgid "Al Hillah" msgstr "Al Hillah" #. units/pg.udb:6925 msgid "ST SU-152 AT" msgstr "ST SU-152 PaK" #. maps/pg/map17:7 msgid "Bastogne" msgstr "Bastogne" #. campaigns/PG:217 msgid "Eastern front" msgstr "Eastern front" #. units/pg.udb:5805 msgid "GB 40mm SPAD" msgstr "GB 40mm SFFlaK" #. units/pg.udb:1576 msgid "Panther D" msgstr "Panther D" #. scenarios/pg/Anvil:4 scenarios/pg/Anzio:4 scenarios/pg/Ardennes:4 scenarios/pg/Balkans:4 ... msgid "Strategic Simulation Inc." msgstr "Strategic Simulation Inc." #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bratislava" msgstr "Pressburg" #. maps/pg/map19:7 msgid "Boxtel" msgstr "Boxtel" #. units/pg.udb:3368 msgid "PO TK3" msgstr "PO TK3" #. units/pg.udb:5665 msgid "GB Church VII" msgstr "GB Church VII" #. maps/pg/map17:7 msgid "Werbomont" msgstr "Werbomont" #. maps/pg/map22:7 msgid "Monemvasia" msgstr "Monemvasia" #. maps/pg/map16:7 msgid "Petit Rhone River" msgstr "Kleine Rhône" #. units/pg.udb:3928 msgid "FR Ch D1 IG" msgstr "FR Ch D1 IG" #. maps/pg/map19:7 msgid "Veghel" msgstr "Wegel" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Bolkhov" msgstr "Bolchow" #. maps/pg/map15:7 msgid "Orbec" msgstr "Orbec" #. maps/pg/map16:7 msgid "Turin" msgstr "Turin" #. units/pg.udb:5245 msgid "GB Crdr II" msgstr "GB Crdr II" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Port" msgstr "Hafen" #. maps/pg/map36:7 msgid "Bowie" msgstr "Bowie" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Mogilev" msgstr "Mogilew" #. maps/pg/map19:7 msgid "Gembert" msgstr "Gembert" #. units/pg.udb:5637 msgid "GB Church VI" msgstr "GB Church VI" #. maps/pg/map33:7 msgid "Devegcer" msgstr "Devegzer" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kuban" msgstr "Kuban" #. maps/pg/map26:7 msgid "Otradny" msgstr "Otradni" #. maps/pg/map18:7 msgid "Melun" msgstr "Melun" #. units/pg.udb:11125 msgid "US 155mm Gun" msgstr "US 155mm Geschütz" #. maps/pg/map33:7 msgid "Tatabanya" msgstr "Tatabanja" #. maps/pg/map08:7 msgid "Sakakah" msgstr "Sakakah" #. campaigns/PG:533 msgid "" "Congratulations on your victory. Yet, supply shortages allowed the English " "to take the initiative, and expel the Africa Corps from Egypt and Libya." msgstr "" "Glückwunsch zu Ihrem Sieg. Nachschubschwierigkeiten ermöglichten jedoch den " "Engländern, die Initiative zu ergreifen und das Afrikakorps aus Ägypten und " "Libyen zu vertreiben." #. maps/pg/map17:7 msgid "Beaumont" msgstr "Beaumont" #. maps/pg/map03:7 msgid "Bergen" msgstr "Bergen" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Aire" msgstr "Aire" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Mainz" msgstr "Mainz" #. maps/pg/map21:7 msgid "Pinios River" msgstr "Pinios" #. maps/pg/map08:7 msgid "Anah" msgstr "Anah" #. maps/pg/map36:7 msgid "Odenton" msgstr "Odenton" #. maps/pg/map13:7 msgid "Agrigento" msgstr "Agrigento" #. units/pg.udb:3228 msgid "PSW 232/8r" msgstr "PSW 232/8r" #. maps/pg/map36:7 msgid "North Arlington" msgstr "Nordarlington" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Osnabruck" msgstr "Osnabrück" #. scenarios/pg/BerlinWest:2 msgid "BERLIN (WEST)" msgstr "BERLIN (WEST)" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Newhaven" msgstr "Newhaven" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Mozdok" msgstr "Mosdok" #. units/pg.udb:88 msgid "Tactical Bomber" msgstr "Taktischer Bomber" #. maps/pg/map15:7 msgid "Barneville" msgstr "Barneville" #. maps/pg/map03:7 msgid "Kongsberg" msgstr "Kongsberg" #. maps/pg/map22:7 msgid "Sitia" msgstr "Sitia" #. campaigns/PG:410 msgid "" "High Command is stunned about your audacious counter-attack in Italy. With " "scarce resources, you managed not only to drive back the Anzio-beachhead " "into the sea, you also retook Italian towns of the South." msgstr "" "Das Oberkommando ist über Ihren kühnen Gegenangriff in Italien erstaunt. Mit " "schwachen Kräften konnten Sie nicht nur den Landungskopf bei Anzio ins Meer " "zurücktreiben, sondern auch die Städte im Süden zurückerobern." #. campaigns/PG:524 msgid "Staying in the desert" msgstr "In der Wüste bleiben" #. maps/pg/map30:7 msgid "Sudzha" msgstr "Sudscha" #. units/pg.udb:257 msgid "FW190d9" msgstr "FW190d9" #. units/pg.udb:8577 msgid "IT Centauro" msgstr "IT Centauro" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Frankfurt an Main" msgstr "Frankfurt am Main" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Munich" msgstr "München" #. units/pg.udb:8997 msgid "IT M13/40" msgstr "IT M13/40" #. maps/pg/map36:7 msgid "Ocooquen Creek" msgstr "Ocooquenbach" #. maps/pg/map21:7 msgid "Rijeka" msgstr "Rijeka" #. units/pg.udb:8185 msgid "AF T-Boat" msgstr "AS T-Boot" #. units/pg.udb:5105 msgid "GB Matilda I" msgstr "GB Matilda I" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Novorossik" msgstr "Noworossik" #. scenarios/pg/Balkans:3 msgid "" "April 6, 1941: German troops aid the bogged down Italians in Yugoslavia and " "Greece." msgstr "" "6. April 1941: Deutsche Truppen helfen den festgefahrenen Italienern in " "Jugoslawien und Griechenland." #. units/pg.udb:4881 msgid "GB Spit XVII" msgstr "GB Spit XVII" #. maps/pg/map16:7 msgid "St. Vallier" msgstr "St. Vallier" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Cyrene" msgstr "Kyrene" #. maps/pg/map14:7 msgid "Sezze" msgstr "Sezze" #. scenarios/pg/Ardennes:3 msgid "Dec 16, 1944: Wacht Am Rhein... Germany's last gamble in the West." msgstr "16. Dez 1944: Wacht Am Rhein... Deutschlands letztes Spiel im Westen." #. maps/pg/map29:7 msgid "Proletarsk" msgstr "Proletarsk" #. maps/pg/map26:7 msgid "Verkhne Chogan" msgstr "Werchne Tschogan" #. campaigns/PG:106 msgid "" "Negotiations with Yugoslavia have failed which in order made them turn " "against us. Italian forces are fighting a stiff battle at the Metaxas line " "in Greece and have not been able to gain substancial advantages for over a " "year, and they may not sustain any longer. For our upcoming invasion of " "Russia we cannot tolerate an undefeated enemy in our back. Thus it is your " "mission to capture key Yugoslav towns to make them surrender, and " "additionally aid Italian troops in their hapless fight against Greek and " "English adversaries." msgstr "" "Nach fehlgeschlagenen Verhandlungen mit Jugoslawien wandten sie sich gegen " "uns, während Italienische Kräfte einen heftigen Kampf an der Metaxas-Linie " "in Griechenland führen. Dieser Zustand herrscht seit einem Jahr, und Italien " "ist kurz vor dem Aufgeben. Für unsere kommende Invasion in Russland können " "wir keinen unbesiegten Feind in unserem Rücken erdulden, somit müssen sie " "alle Ziele einnehmen und die Italiener gegen griechische und englische " "Gegener unterstützen." #. campaigns/PG:432 msgid "" "Congratulations on your effective victory over the Allied invasion of " "Normandy. The enemy has been driven back into the sea." msgstr "" "Glückwunsch zu Ihrem effektiven Sieg über die alliierte Invasion in der " "Normandie. Der Feind wurde ins Meer zurückgedrängt." #. maps/pg/map21:7 msgid "Morlava River" msgstr "Morlawa" #. maps/pg/map21:7 msgid "Patrai" msgstr "Patrai" #. units/pg.udb:6869 msgid "ST Il-10" msgstr "ST Il-10" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Magdeburg" msgstr "Magdeburg" #. maps/pg/map33:7 msgid "Komarno" msgstr "Komarno" #. maps/pg/map26:7 msgid "Inkerman" msgstr "Inkerman" #. maps/pg/map16:7 msgid "Gap" msgstr "Gap" #. maps/pg/map36:7 msgid "Laurel" msgstr "Laurel" #. units/pg.udb:2164 msgid "Marder IIIM" msgstr "Marder IIIM" #. maps/pg/map19:7 msgid "Waal River" msgstr "Waal" #. units/pg.udb:8885 msgid "IT Sem M-41M" msgstr "IT Sem M-41M" #. units/pg.udb:314 msgid "ME163B/Komet" msgstr "ME163B/Komet" #. maps/pg/map16:7 msgid "Digne" msgstr "Digne" #. maps/pg/map17:7 msgid "Tirlemont" msgstr "Tirlemont" #. units/pg.udb:8325 msgid "Heavy Cruiser" msgstr "Schwerer Kreuzer" #. maps/pg/map33:7 msgid "Rackeve" msgstr "Rackeve" #. units/pg.udb:10089 msgid "US M3 GMC" msgstr "US M3 GMC" #. units/pg.udb:8353 msgid "Light Cruiser" msgstr "Leichter Kreuzer" #. units/pg.udb:4993 msgid "GB Typhoon IB" msgstr "GB Typhoon IB" #. maps/pg/map14:7 msgid "Tivoli" msgstr "Tivoli" #. maps/pg/map08:7 msgid "Hit" msgstr "Hit" #. maps/pg/map24:7 msgid "Khoro" msgstr "Choro" #. maps/pg/map16:7 msgid "Montelimar" msgstr "Montelimar" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bern" msgstr "Bern" #. units/pg.udb:3620 msgid "FR Potez 63" msgstr "FR Potez 63" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Menai Strait" msgstr "Menaistraße" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Nile" msgstr "Nil" #. maps/pg/map14:7 msgid "Aterno River" msgstr "Aterno" #. units/pg.udb:7149 msgid "ST T-34/41" msgstr "ST T-34/41" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Tunbridge Wells" msgstr "Tunbridge Wells" #. units/pg.udb:8409 msgid "T-Destroyer" msgstr "T-Zerstörer" #. campaigns/PG:501 msgid "" "The Allies have launched a surprise airborne attack at Arnhem to capture a " "bridge across the Rhine. Yet, their slow outbreak from Normandy gave us " "plenty of time to establish potent defenses. Your order is to capture and " "hold the city of Arnhem until the 25th of September, and clean the area from " "paratroop landings before Allied reinforcements arrive." msgstr "" "Die Alliierten begannen einen Überraschungsangriff aus der Luft gegen " "Arnheim zwecks Eroberung von Rheinbrücken. Jedoch gewährte uns der langsame " "Ausbruch aus der Normandie genügend Zeit zum Aufbau einer schlagkräftigen " "Verteidigung. Ihr Befehl lautet, Arnheim zurückzuerobern und bis zum 25. " "September zu halten, sowie die Umgebung von Fallschirmtruppen zu säubern, " "bevor alliierte Verstärkungen eintreffen." #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Brunn" msgstr "Brünn" #. campaigns/PG:268 msgid "" "Your initial capture of Moscow let arise hope that Russia would surrender. " "Unfortunately, the combination of bad weather and Russian reserves did not " "enable our exhausted troops to sustain any longer. While we managed to " "establish a stable front line again, the possibility for another advance " "towards Moscow has gone for good." msgstr "" "Ihre Eroberung Moskaus ließ Hoffnung auf eine russische Kapitulation " "aufkeimen. Unglücklicherweise führten die Mischung aus schlechtem Wetter und " "russischer Reserven dazu, dass unsere erschöpften Truppen nicht länger " "widerstanden. Obwohl wir die Front stabilisieren konnten, ist die " "Gelegenheit für einen weiteren Vorstoß auf Moskau für immer verspielt." #. units/pg.udb:9585 msgid "US P51B Mustg" msgstr "US P51B Mustg" #. units/pg.udb:1856 msgid "Hetzer" msgstr "Hetzer" #. units/pg.udb:680 msgid "JU87R" msgstr "JU87R" #. scenarios/pg/Torch:2 msgid "TORCH" msgstr "TORCH" #. units/pg.udb:8437 msgid "U-Boat" msgstr "U-Boot" #. maps/pg/map13:7 msgid "Menfi" msgstr "Menfi" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Bari" msgstr "Bari" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Paris" msgstr "Paris" #. maps/pg/map03:7 msgid "Dombas" msgstr "Dombas" #. maps/pg/map04:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map18:7 maps/pg/map38:7 msgid "Calais" msgstr "Calais" #. units/pg.udb:2360 msgid "FlaKPz 38(t)" msgstr "FlaKPz 38(t)" #. units/pg.udb:6673 msgid "ST La-5" msgstr "ST La-5" #. maps/pg/map26:7 msgid "Dzhanshley" msgstr "Dschanschlej" #. maps/pg/map26:7 msgid "Mekenziya" msgstr "Mekensija" #. maps/pg/map14:7 msgid "Campobasso" msgstr "Campobasso" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Terek" msgstr "Terek" #. campaigns/PG:199 msgid "" "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have " "achieved what Napoleon only dreamed of. All of Russia has been put under " "German administration, and we have already begun exploiting its vast " "resources. For your leadership skills, you get awarded the highest order " "medal of the Reich, the Knight's Cross with Oak Leaves and Swords." msgstr "" "Moskau ist gefallen, und die Sowjetunion hat kapituliert! Sie haben " "erreicht, wovon Napoleon nur träumte. Russland wurde unter deutsche " "Verwaltung gestellt, und wir begannen bereits mit der Ausbeutung seiner " "gewaltigen Rohstoffvorkommen. Für Ihre Führungsqualitäten wird Ihnen der " "höchste Orden des Reiches, das Ritterkreuz mit Eichenlaub und Schwertern, " "verliehen." #. maps/pg/map03:7 msgid "Mosjoen" msgstr "Mosjøen" #. maps/pg/map17:7 msgid "Ardenne" msgstr "Ardenne" #. units/pg.udb:201 msgid "BF109k" msgstr "BF109k" #. maps/pg/map15:7 msgid "Sees" msgstr "Sees" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Strasburg" msgstr "Straßburg" #. units/pg.udb:6057 msgid "GB Inf 39" msgstr "GB Inf 39" #. maps/pg/map08:7 msgid "Ahvaz" msgstr "Ahvaz" #. units/pg.udb:3956 msgid "FR Ch S35" msgstr "FR Ch S35" #. maps/pg/map21:7 msgid "Sarande" msgstr "Sarande" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kiel" msgstr "Kiel" #. units/pg.udb:11685 msgid "FPO Truck" msgstr "FPO Lastwagen" #. units/pg.udb:10593 msgid "US M18 " msgstr "US M18 " #. units/pg.udb:11713 msgid "FPO Infantry" msgstr "FPO Infanterie" #. units/pg.udb:7009 msgid "ST BA-64" msgstr "ST BA-64" #. campaigns/PG:74 msgid "" "France is weakened and open to attack. Since 1871, this is the first chance " "to battle down the mightiest army of Europe and face total victory on the " "Western continent. You are ordered to take Paris and various strategic " "coastal towns as well as towns of the hinterland." msgstr "" "Frankreich ist geschwächt und offen zum Angriff. Seit 1871 ist dies unsere " "erste Gelegenheit, die mächtigste Armee Europas niederzuringen und den " "totalen Sieg im westlichen Kontinent davonzutragen. Erobern Sie Paris und " "zahlreiche strategische Städte des Hinterlands." #. maps/pg/map10:7 maps/pg/map28:7 msgid "Grozny" msgstr "Grosni" #. campaigns/PG:433 msgid "" "While fighting bravely against tremendous odds, the Allies could establish a " "beachhead on the Norman coast." msgstr "" "Während Sie tapfer gegen eine gewaltige Übermacht kämpften, konnten die " "Alliierten einen Landungskopf in der Normandie behaupten." #. units/pg.udb:10313 msgid "US M4A3E2(76)" msgstr "US M4A3E2(76)" #. campaigns/PG:345 msgid "" "Soviet Russia has eventually launched its long expected summer offensive of " "1944, ironically on the self same day we initiated operation Barbarossa " "three years ago. You are in charge of Army Group Center, and you must stop " "the Russian attack at any rate, and retake all objectives to turn the tides. " "If the odds are too strong, hold at least Warsaw until the 27th of August." msgstr "" "Sowjetrussland startete schließlich die lang erwartete Sommeroffensive von " "1944, ironischerweise am selben Tag, an dem wir Unternehmen Barbarossa drei " "Jahre vorher einleiteten. Sie haben Befehl über Heeresgruppe Mitte, und Sie " "müssen den russischen Angriff unter allen Umständen aufhalten und alle Ziele " "zurückerobern, um das Schlachtenglück im Osten zu wenden. Ist die Übermacht " "zu stark, halten Sie zumindest Warschau bis zum 27. August." #. maps/pg/map24:7 msgid "Konotop" msgstr "Konotop" #. maps/pg/map03:7 msgid "Hamar" msgstr "Hamar" #. maps/pg/map21:7 msgid "Lesh" msgstr "Lesch" #. maps/pg/map08:7 msgid "Jordan River" msgstr "Jordan" #. units/pg.udb:4376 msgid "AD Mk II SP" msgstr "AS Mk II BF" #. maps/pg/map36:7 msgid "Potomac River" msgstr "Potomac" #. units/pg.udb:11741 msgid "FPO Para" msgstr "FPO FJ" #. scenarios/pg/Crete:3 msgid "" "May 20, 1941: Germany attempts to capture the strategic island of Crete." msgstr "" "20. Mai 1941: Deutschland versucht die strategische Insel Kreta zu erobern." #. maps/pg/map04:7 maps/pg/map05:7 msgid "Somme" msgstr "Somme" #. scenarios/pg/Anvil:361 scenarios/pg/Anzio:374 scenarios/pg/Ardennes:558 scenarios/pg/Balkans:590 ... msgid "Axis Major Victory" msgstr "Achse entscheidender Sieg" #. units/pg.udb:5329 msgid "GB Crom VII" msgstr "GB Crom VII" #. campaigns/PG:468 msgid "" "The Allied landings have been outright successful, and France is now " "definitely lost." msgstr "" "Die alliierten Landungen waren durchwegs erfolgreich. Damit ist Frankreich " "definitiv verloren." #. maps/pg/map15:7 msgid "Lisieux" msgstr "Lisieux" #. maps/pg/map19:7 msgid "Renkum" msgstr "Renkum" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Elista" msgstr "Elista" #. maps/pg/map03:7 msgid "Narvik" msgstr "Narvik" #. maps/pg.tdb:8 msgid "Overcast(Dry)" msgstr "Bewölkt (trocken)" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Volga" msgstr "Wolga" #. maps/pg/map03:7 msgid "Lillehammer" msgstr "Lillehammer" #. units/pg.udb:7121 msgid "ST T-34/40" msgstr "ST T-34/40" #. maps/pg/map05:7 msgid "Nevers" msgstr "Nevers" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bromberg" msgstr "Bromberg" #. maps/pg/map33:7 msgid "Polgardi" msgstr "Polgardi" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Regensburg" msgstr "Regensburg" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Stour" msgstr "Stour" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "London" msgstr "London" #. maps/pg/map24:7 msgid "Nehzin" msgstr "Nehsin" #. units/pg.udb:3060 msgid "43 Wehr Inf" msgstr "43 Wehr Inf" #. units/pg.udb:1828 msgid "StuH42" msgstr "StuH42" #. units/pg.udb:2388 msgid "37 FlaKPz IV" msgstr "37 FlaKPz IV" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Sosyka" msgstr "Sosjka" #. campaigns/PG:584 msgid "30th June 1942" msgstr "30. Juni 1942" #. maps/pg/map36:7 msgid "Indian Creek" msgstr "Indianerbach" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Graz" msgstr "Graz" #. maps/pg/map18:7 msgid "Rennes" msgstr "Rennes" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Hull" msgstr "Hull" #. maps/pg/map17:7 msgid "Libramit" msgstr "Libramit" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Koslin" msgstr "Koslin" #. campaigns/PG:349 msgid "" "Holding Warsaw temporarily relieves us from pressure on the Eastern front, " "thus allowing High Command to transfer you to the Western Front." msgstr "" "Das Halten von Warschau lindert den Druck an der Ostfront kurzzeitig, was " "dem Oberkommando erlaubt, Sie an die Westfront zu versetzen." #. maps/pg/map16:7 msgid "Toulon" msgstr "Toulon" #. maps/pg/map30:7 msgid "Maloarkhangelsk" msgstr "Maloarchangelsk" #. maps/pg/map36:7 msgid "Cleveland Park" msgstr "Cleveland Park" #. maps/pg/map21:7 msgid "Bosna River" msgstr "Bosna" #. maps/pg/map36:7 msgid "Owings" msgstr "Owings" #. maps/pg/map13:7 msgid "Palermo" msgstr "Palermo" #. units/pg.udb:1212 msgid "Pz38(t)F" msgstr "Pz38(t)F" #. units/pg.udb:10033 msgid "US M2 Halftrk" msgstr "US M2 Halbktn" #. maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 msgid "Italian Camp" msgstr "Italienisches Lager" #. campaigns/PG:339 msgid "" "Thanks to your great achievements, the Soviet summer offensive has been " "halted, and enabled us to prepare further operations." msgstr "" "Dank Ihres großen Erfolges wurde die sowjetische Sommeroffensive " "aufgehalten, und wir konnten weitere Unternehmungen vorbereiten." #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Main River" msgstr "Main" #. campaigns/PG:273 msgid "" "Now there are two opportunities to prove your skills against mighty odds. In " "the east, the Russians prepare their first summer offensive against Army " "Group Center, while in the west, the Allied prepare their invasion of france." "##Which theater do you want to take leadership of?" msgstr "" "Nun ergeben sich für Sie zwei Gelegenheiten, sich zu beweisen. Im Osten " "bereiten die Russen ihre Sommeroffensive gegen Heeresgruppe Mitte vor, " "während im Westen die Alliierten zur Invasion Frankreichs ansetzen.##In " "welchem Schauplatz möchten Sie die Führung übernehmen?" #. units/pg.udb:8269 msgid "Battleship Bk" msgstr "Schlachtschiff Bk" #. maps/pg.tdb:28 msgid "Raining(Mud)" msgstr "Regen (aufgeweicht)" #. maps/pg/map14:7 msgid "Sulmona" msgstr "Sulmona" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Plymouth" msgstr "Plymouth" #. units/pg.udb:9921 msgid "US B24D Lib" msgstr "US B24D Lib" #. units/pg.udb:9837 msgid "US A26 Inv" msgstr "US A26 Inv" #. maps/pg/map14:7 msgid "Pescara River" msgstr "Pescara" #. units/pg.udb:285 msgid "ME262A1" msgstr "ME262A1" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Otranto" msgstr "Otranto" #. units/pg.udb:5581 msgid "GB Church III" msgstr "GB Church III" #. campaigns/PG:529 msgid "" "We were eventually able to halt the English counter offensive, and are now " "ready to perform another attack. While we do not have to gain as much ground " "as last year, English restistence is expected to be much stronger. While the " "chance for invading the Middle East has been lost, we may be able to prepare " "another invasion of England if the North African chapter is closed in time. " "You have to take all objectives by no later than the 28th of September. Yet, " "in order to finish preparations for an invasion of England this year, you " "have to finish you mission several weeks earlier." msgstr "" "Wir konnten letztlich den englischen Gegenangriff stoppen und bereiten eine " "Gegenoffensive vor. Obwohl wir weniger Boden als letztes Jahr gut machen " "müssen, erwarten wir weit stärkeren englischen Widerstand. Während die " "Gelegenheit zur Eroberung des Zweistromlandes dahin ist, können wir immer " "noch eine Invasion Englands vorbereiten, sofern das nordafrikanische Kapitel " "rechtzeitig geschlossen wird. Nehmen Sie alle Ziele bis spätestens zum 28. " "September ein. Für erfolgreiche Invasionsvorbereitungen müssen Sie die " "Mission einige Wochen früher abschließen." #. units/pg.udb:6421 msgid "GB 3 Inches AD" msgstr "GB 3 Zoll FlaK" #. maps/pg/map21:7 msgid "Bobov" msgstr "Bobow" #. maps/pg/map16:7 msgid "Nice" msgstr "Nizza" #. units/pg.udb:7233 msgid "ST T-70" msgstr "ST T-70" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Foggia" msgstr "Foggia" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Shrewbury" msgstr "Shrewbury" #. maps/pg/map17:7 msgid "Echlemach" msgstr "Echlemach" #. units/pg.udb:1632 msgid "Panther G" msgstr "Panther G" #. units/pg.udb:7373 msgid "ST SU-152" msgstr "ST SU-152" #. maps/pg/map16:7 msgid "Durance River" msgstr "Durance" #. maps/pg/map36:7 msgid "Potomac Heights" msgstr "Potomachügel" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Novocherkassk" msgstr "Nowotscherkassk" #. campaigns/PG:1 msgid "World War II" msgstr "Der Zweite Weltkrieg" #. units/pg.udb:4460 msgid "LC CR42" msgstr "LC CR42" #. maps/pg/map29:7 msgid "Starobelsk" msgstr "Starobelsk" #. maps/pg/map16:7 msgid "Castellane" msgstr "Castellane" #. scenarios/pg/MiddleEast:3 msgid "Septempter 1, 1941: Axis attempts to seize the oil fields of Persia." msgstr "" "1. September 1941: Die Achse versucht die persischen Ölfelder zu ergattern." #. campaigns/PG:36 msgid "" "Losing on the Polish front was an utter disaster. Your scandalous leadership " "has enabled the English and French to build up an formidable army which has " "begun invading Germany." msgstr "" "Die Niederlage an der polnischen Front war eine herbe Enttäuschung. Ihre " "Unfähigkeit erlaubte Frankreich und England den Aufbau einer großen " "Streitmacht, die mit der Invasion Deutschlands begonnen hat." #. units/pg.udb:10061 msgid "US M2A4" msgstr "US M2A4" #. campaigns/PG:291 msgid "" "Not capturing Moscow in time gave the Russian adversaries plenty of " "opportunity to mobilise troops from Siberia and perform a counterattack. " "While we managed to establish a stable front line again, we could not " "attempt another advance in 1942." msgstr "" "Ihr Misserfolg in Moskau gewährte den Russen genügend Zeit zur Vorbereitung " "eines Gegenangriffs mit sibirischen Truppen. Obwohl wir die Front wieder " "stabilisierten, konnten wir 1942 keinen weiteren Angriff durchführen." #. units/pg.udb:4040 msgid "FR Infantry" msgstr "FR Infanterie" #. maps/pg/map16:7 msgid "Marseilles" msgstr "Marseilles" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Makhach Kala" msgstr "Machatsch Kala" #. maps/pg/map21:7 msgid "Shkoder" msgstr "Schkoder" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Thames" msgstr "Themse" #. campaigns/PG:617 msgid "" "Not only halting the enemy onslaught at two front, but drive them back to " "the pre-war borders of the Reich is impressive. Therefore, we could achieve " "to sign a peace treaty that restored the status-quo from the 1st September " "1939." msgstr "" "Sie haben nicht nur dem feindlichen Ansturm an zwei Fronten widerstanden, " "sondern konnten den Feind bis über die Vorkriegsgrenzen des Reiches " "zurückdrängen. Somit konnten wir einen Friedensvertrag aushandeln, der den " "Status quo vom 1. September 1939 wiederherstellt." #. maps/pg/map15:7 maps/pg/map18:7 msgid "Honfleur" msgstr "Honfleur" #. units/pg.udb:11265 msgid "US M8 Ghd LAC" msgstr "US M8 Ghd LAC" #. maps/pg/map21:7 msgid "Serrai" msgstr "Serrai" #. maps/pg/map36:7 msgid "Annandale" msgstr "Annandale" #. campaigns/PG:608 msgid "" "Your taking of Washington was a masterpiece. However, the Americans revealed " "their secret weapon, called the Atomic Bomb, and inflicted heavy losses on " "our expeditionary forces. In order to reduce further casualties, we " "retreated from America, and signed a piece treaty. Though the America " "adventure did not work out, Germany rules all of Europe, Africa, and most " "parts of Asia. This overwhelming economical weight will enable us to carry " "on the war against America on another level. Now, the war is over, and for " "your heroic encouragement you are promoted to Generalfeldmarschall." msgstr "" "Ihre Eroberung Washingtons war eine Meisterleistung. Jedoch brachten die " "Amerikaner ihre Geheimwaffe, genannt Atombombe, zum Einsatz, und " "verursachten schwere Verluste unter unseren Expeditionstruppen. Zur " "Verhinderung weiterer Verluste zogen wir uns aus Amerika zurück und " "unterzeichneten einen Friedensvertrag. Obwohl das Amerikaabenteuer nicht " "funktionierte, herrscht Deutschland über ganz Europa, Afrika und den größten " "Teil Asiens. Dieses überwältigende wirtschaftliche Gewicht erlaubt uns, den " "Krieg gegen Amerika auf einer anderen Ebene auszufechten. Der Krieg ist nun " "vorüber, und für Ihren heldenhaften Einsatz werden Sie zum " "Generalfeldmarschall ernannt." #. units/pg.udb:9557 msgid "US P40 Whwk" msgstr "US P40 Whwk" #. maps/pg/map17:7 msgid "Tongres" msgstr "Tongres" #. units/pg.udb:428 msgid "BF110c" msgstr "BF110c" #. maps/pg/map26:7 msgid "Bartenevka" msgstr "Bartenewka" #. maps/pg/map03:7 msgid "Kristiansand" msgstr "Kristiansand" #. units/pg.udb:39 msgid "Leg" msgstr "Fuß" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Poti" msgstr "Poti" #. units/pg.udb:2780 msgid "8.8 PaK43/41" msgstr "8,8 PaK43/41" #. campaigns/PG:235 msgid "Losing two battles in a row cannot be accepted." msgstr "" "Der Verlust zweier Schlachten hintereinander kann nicht akzeptiert werden." #. scenarios/pg/Byelorussia:2 msgid "BYELORUSSIA" msgstr "WEISSRUSSLAND" #. maps/pg/map21:7 msgid "Parga" msgstr "Parga" #. maps/pg/map18:7 msgid "St. Malo" msgstr "St. Malo" #. maps/pg/map33:7 msgid "Dunafoldvar" msgstr "Dunafoldvar" #. units/pg.udb:8745 msgid "IT SM 82" msgstr "IT SM 82" #. maps/pg/map36:7 msgid "Langley Park" msgstr "Langley Park" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map29:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Dnieper River" msgstr "Dnjepr" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Divnoe" msgstr "Diwnoe" #. maps/pg/map02:7 maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 ... msgid "Warsaw" msgstr "Warschau" #. units/pg.udb:2920 msgid "17 K18" msgstr "17 K18" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Serpukhov" msgstr "Serpuchow" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Rostov" msgstr "Rostow" #. maps/pg/map26:7 msgid "Mekenziery" msgstr "Mekensieri" #. units/pg.udb:10397 msgid "US M7" msgstr "US M7" #. maps/pg/map24:7 msgid "Uman" msgstr "Uman" #. maps/pg/map24:7 maps/pg/map30:7 msgid "Seym" msgstr "Seim" #. scenarios/pg/EarlyMoscow:2 msgid "EARLY MOSCOW" msgstr "FRÜHES MOSKAU" #. campaigns/PG:646 msgid "" "You have failed us, Commander! The german reich suffered a minor defeat!" msgstr "" "Sie haben versagt, General! Das deutsche Reich hat eine unbedeutende " "Niederlage erlitten!" #. maps/pg/map33:7 msgid "Esztergom" msgstr "Esztergom" #. nations/pg.ndb:40 msgid "Greece" msgstr "Griechenland" #. units/pg.udb:5161 msgid "GB Mk I A9" msgstr "GB Mk I A9" #. maps/pg/map33:7 msgid "Papa" msgstr "Papa" #. maps/pg/map16:7 msgid "Var River" msgstr "Var" #. maps/pg/map14:7 msgid "Mondragone" msgstr "Mondragone" #. maps/pg/map24:7 msgid "Ichnaya" msgstr "Itschnaja" #. maps/pg/map14:7 msgid "Biferno River" msgstr "Biferno" #. units/pg.udb:1016 msgid "PzIIA" msgstr "PzIIA" #. units/pg.udb:3704 msgid "FR D520S" msgstr "FR D520S" #. units/pg.udb:8969 msgid "IT L6/40" msgstr "IT L6/40" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Darmstadt" msgstr "Darmstadt" #. units/pg.udb:4965 msgid "GB Mosq VI" msgstr "GB Mosq VI" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Valuiki" msgstr "Waluiki" #. units/pg.udb:10453 msgid "US GM Truck" msgstr "US GM Lastwagen" #. units/pg.udb:7737 msgid "ST SMG Inf" msgstr "ST SMG Inf" #. units/pg.udb:5189 msgid "GB Mk III A13" msgstr "GB Mk III A13" #. units/pg.udb:76 msgid "Anti-Aircraft" msgstr "Flugabwehr" #. campaigns/PG:64 msgid "" "France is weakened and open to attack. Since 1871, this is the first chance " "to battle down the mightiest army of Europe and face total victory on the " "Western continent. You are ordered to take Paris and various strategic " "coastal towns as well as towns of the hinterland. Timing is important, as " "only an early completion of your mission enables us to finish preparations " "in time for the invasion of England." msgstr "" "Frankreich ist geschwächt und offen zum Angriff. Seit 1871 ist dies unsere " "erste Gelegenheit, die mächtigste Armee Europas niederzuringen und den " "totalen Sieg im westlichen Kontinent davonzutragen. Erobern Sie Paris und " "zahlreiche strategische Städte des Hinterlands. Geschwindigkeit ist wichtig, " "da nur ein früher Abschluss des Unternehmens die rechtzeitige Beendigung der " "Vorbereitungen für die Invasion Englands erlaubt." #. units/pg.udb:343 msgid "HE219" msgstr "HE219" #. maps/pg/map18:7 msgid "Fougeres" msgstr "Fougeres" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Beuthen" msgstr "Beuthen" #. maps/pg/map14:7 msgid "Nera River" msgstr "Nera" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Pinsk" msgstr "Pinsk" #. units/pg.udb:1100 msgid "8.8 FK18 ATG" msgstr "8,8 FK18 ATG" #. maps/pg/map16:7 msgid "Drome River" msgstr "Drôme" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Dusseldorf" msgstr "Düsseldorf" #. maps/pg/map08:7 maps/pg/map14:7 maps/pg/map20:7 maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 ... msgid "Lake" msgstr "See" #. campaigns/PG:252 msgid "" "Your inability to reach Stalingrad as well as shortages in supplies allowed " "the Russians to break through the thin defense lines of our exhausted " "troops, and to cut off large parts of the 6th Army in Stalingrad and " "annihilate them, and drive back the Eastern front." msgstr "" "Ihre Unfähigkeit, Stalingrade zu erreichen und Versorgungsschwierigkeiten " "haben unsere Truppen erschöpft. Das ermöglichte den Russen, große Teile der " "6. Armee in Stalingrad abzuschneiden und zu vernichten, sowie die Ostfront " "zurückzudrängen." #. maps/pg/map23:7 maps/pg/map32:7 msgid "Dvina River" msgstr "Dwina" #. units/pg.udb:9697 msgid "US P47D Tbolt" msgstr "US P47D Tbolt" #. campaigns/PG:428 msgid "6th June 1944" msgstr "6. Juni 1944" #. units/pg.udb:109 msgid "Air Transport" msgstr "Lufttransport" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Dresden" msgstr "Dresden" #. maps/pg/map04:7 maps/pg/map17:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Liege" msgstr "Lüttich" #. maps/pg/map08:7 msgid "Abadan" msgstr "Abadan" #. units/pg.udb:1940 msgid "StuG IV" msgstr "StuG IV" #. campaigns/PG:73 msgid "5th June 1940" msgstr "5. Juni 1940" #. maps/pg/map24:7 msgid "Gorodnya" msgstr "Gorodnja" #. campaigns/PG:369 msgid "" "While you managed to capture all objectives, the Russian offensive gained " "momentum too fast and drove us back to the Eastern limits of the Reich." msgstr "" "Obwohl Sie alle Ziele einnehmen konnten, überschritt die russische Offensive " "die kritische Masse und drängte uns hinter die Ostgrenze des Reichs zurück." #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Innsbruck" msgstr "Innsbruck" #. maps/pg/map17:7 msgid "Manhay" msgstr "Manhay" #. campaigns/PG:117 msgid "" "Crete has been captured by the English in 1940 as a reaction on Italy's " "invasion of Albania. Since then, the English have erected air and naval " "bases which are likely to interfere with our upcoming operations against " "Soviet Russia. It is your order to take the island, capture the strategic " "bases, and drive the English troops into the sea. This is the largest " "airborne operation seen in this war." msgstr "" "Kreta wurde von England 1940 als Reaktion auf Italiens Invasion in Albanien " "besetzt. Seither haben die Engländer Luft- und Flottenstützpunkte errichtet, " "die wahrscheinlich unsere kommenden Unternehmungen in Russland stören " "werden. Ihr Befehl lautet, die Insel zu besetzen, die strategischen Basen zu " "erobern und die englischen Truppen ins Meer zu jagen. Dies ist die bisher " "größte Luftlandeoperation in diesem Kriege." #. maps/pg/map29:7 msgid "Artemovsk" msgstr "Artemowsk" #. units/pg.udb:173 msgid "BF109g" msgstr "BF109g" #. maps/pg/map03:7 msgid "Stavanger" msgstr "Stavanger" #. campaigns/PG:549 msgid "Caucasus" msgstr "Kaukaskus" #. campaigns/PG:557 msgid "" "With all objectives taken, and the Americans expelled from Africa, you have " "proven your excellent leadership skills." msgstr "" "Mit der Eroberung aller Ziele und der Vertreibung der Amerikaner aus Afrika " "haben Sie ihre hervorragenden Führungsqualitäten unter Beweis gestellt." #. maps/pg/map21:7 msgid "Kevalla" msgstr "Kevalla" #. maps/pg/map04:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Boulogne" msgstr "Boulogne" #. maps/pg/map36:7 msgid "Silver Spring" msgstr "Silver Spring" #. campaigns/PG:618 msgid "" "You held Berlin, but that has put us into an uncomfortable situation. We had " "to accept a peace treaty that was even harsher than the hated one of 1918." msgstr "" "Sie haben Berlin gehalten. Dies versetzte uns jedoch in eine unangenehme " "Situation. Somit mussten wir einen Friedensvertrag zu noch schlechteren " "Bedingungen als den gehassten von 1918 unterzeichnen." #. maps/pg/map10:7 maps/pg/map28:7 msgid "Guren" msgstr "Guren" #. campaigns/PG:539 msgid "1st September 1941" msgstr "1. September 1941" #. maps/pg/map13:7 maps/pg/map14:7 maps/pg/map21:7 msgid "Naples" msgstr "Neapel" #. maps/pg/map03:7 msgid "Mo-i-rana" msgstr "Mo-i-rana" #. units/pg.udb:1156 msgid "Pz 35(t)" msgstr "Pz 35(t)" #. maps/pg/map14:7 msgid "Formia" msgstr "Formia" #. maps/pg.tdb:40 msgid "Overcast(Ice)" msgstr "Bewölkt (schneebedeckt)" #. maps/pg/map17:7 msgid "Leshelm" msgstr "Leshelm" #. units/pg.udb:11405 msgid "FFR 105mm Gun" msgstr "FFR 105mm Geschütz" #. maps/pg/map19:7 msgid "Schaarbergen" msgstr "Schaarbergen" #. maps/pg/map21:7 msgid "Ivangrad" msgstr "Iwangrad" #. maps/pg/map33:7 msgid "Bicske" msgstr "Bicske" #. maps/pg/map13:7 msgid "Ribera" msgstr "Ribera" #. maps/pg/map24:7 msgid "Rumnyr" msgstr "Rumnir" #. maps/pg/map30:7 msgid "Oka" msgstr "Oka" #. nations/pg.ndb:36 msgid "Germany" msgstr "Deutschland" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Krasnodar" msgstr "Krasnodar" #. maps/pg/map22:7 msgid "Retimo" msgstr "Retymnon" #. maps/pg/map24:7 msgid "Boguslav" msgstr "Boguslaw" #. units/pg.udb:2052 msgid "JagdTiger" msgstr "JagdTiger" #. maps/pg.tdb:230 msgid "Road" msgstr "Straße" #. units/pg.udb:456 msgid "BF110d" msgstr "BF110d" #. units/pg.udb:2080 msgid "PzJager IB" msgstr "PzJager IB" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Stalingrad" msgstr "Stalingrad" #. units/pg.udb:4320 msgid "NOR 75mm Gun" msgstr "NOR 75mm Geschütz" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Hannover" msgstr "Hannover" #. maps/pg/map33:7 msgid "Val" msgstr "Val" #. campaigns/PG:209 msgid "" "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have " "achieved what Napoleon only dreamed of. All of Russia has been put under " "German administration, and we have already begun exploiting its vast " "resources. For your leadership skills, you get awarded one of the highest " "order medals of the Reich, the Iron Cross with Oak Leaves and Swords." msgstr "" "Moskau ist gefallen, und die Sowjetunion hat kapituliert! Sie haben " "erreicht, wovon Napoleon nur träumte. Russland wurde unter deutsche " "Verwaltung gestellt, und wir begannen bereits mit der Ausbeutung seiner " "gewaltigen Rohstoffvorkommen. Für Ihre Führungsqualitäten wird Ihnen einer " "der höchsten Orden des Reiches, das Eiserne Kreuz mit Eichenlaub und " "Schwertern, verliehen." #. units/pg.udb:4572 msgid "SdKfz 6/2" msgstr "SdKfz 6/2" #. maps/pg/map24:7 msgid "Pripet" msgstr "Pripet" #. units/pg.udb:5469 msgid "GB M3 Stuart" msgstr "GB M3 Stuart" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Rossosh" msgstr "Rossosch" #. campaigns/PG:85 msgid "North Africa" msgstr "Nordafrika" #. units/pg.udb:10005 msgid "US C47" msgstr "US C47" #. maps/pg/map02:7 msgid "Tomaszow" msgstr "Tomasow" #. units/pg.udb:3256 msgid "PO PZL P11c" msgstr "PO PZL P11c" #. campaigns/PG:34 msgid "" "Your performance in Poland has been outstanding, Herr General! You besieged " "and captured all objectives before the Soviet Union was able to catch up. " "Your forces have been diverted to the Western border to guard against French " "and English aggressions." msgstr "" "Ihre Leistung in Polen war hervorragend, Herr General! Sie belagerten und " "besetzen alle Ziele, bevor die Sowjetunion die Weichsel erreichte. Ihre " "Streitkräfte wurden an die Westgrenze verlegt, um frankoenglische " "Aggressionen abzuwehren." #. maps/pg/map21:7 msgid "Argos" msgstr "Argos" #. maps/pg/map29:7 msgid "Merefa" msgstr "Merefa" #. maps/pg/map15:7 msgid "Gavray" msgstr "Gavray" #. maps/pg.tdb:16 msgid "Snowing(Dry)" msgstr "Schnee (trocken)" #. scenarios/pg/Moscow42:2 msgid "MOSCOW (42)" msgstr "MOSKAU (42)" #. scenarios/pg/Poland:3 msgid "" "September 1, 1939: The German army crosses the Polish border with their " "famous blitzkrieg. In 10 days they must capture Lodz and Kutno... the gates " "to Warsaw." msgstr "" "1. September 1939: Die Wehrmacht überschreitet die polnischen Grenzen in " "ihrem berühmten Blitzkrieg. In 10 Tagen müssen sie Lodsch und Kutno " "erobern... die Tore nach Warschau." #. maps/pg/map10:7 maps/pg/map28:7 msgid "Chirskaya" msgstr "Tschirskaja" #. campaigns/PG:513 msgid "31st March 1941" msgstr "31. März 1941" #. maps/pg/map21:7 msgid "Katerim" msgstr "Katerim" #. maps/pg/map13:7 msgid "Brindisi" msgstr "Brindisi" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Portsmouth" msgstr "Portsmouth" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Olmutz" msgstr "Olmutz" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Oxford" msgstr "Oxford" #. units/pg.udb:9501 msgid "Yugoslav Inf" msgstr "Jugoslawische Inf" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Orleans" msgstr "Orléans" #. units/pg.udb:1240 msgid "Pz38(t)G" msgstr "Pz38(t)G" #. campaigns/PG:170 msgid "" "Your failure to decimate Russian troops in time enabled them to assemble and " "perform a counter-strike against our lines. Thus for 1941, all of our " "operations on the Eastern front had to cease." msgstr "" "Ihre Unvermögen, die russischen Truppen rechtzeitig zu dezimieren, erlaubte " "dem Feind, sich zu massieren und einen Gegenangriff zu führen. Somit mussten " "für 1941 alle Angriffsoperation an der Ostfront ruhen." #. maps/pg/map17:7 msgid "La Leuviere" msgstr "La Louvière" #. units/pg.udb:3032 msgid "39 Wehr Inf" msgstr "39 Wehr Inf" #. maps/pg/map26:7 msgid "Sevastopol" msgstr "Sewastopol" #. maps/pg/map21:7 msgid "Devin" msgstr "Devin" #. campaigns/PG:250 msgid "" "Stalin's town lies down in ruins, and German troops control the traffic on " "the Volga river, preventing the Russians to build up a force for a counter-" "attack. Thus, you can lead the advance towards Moscow without interference " "from the rear." msgstr "" "Stalins Stadt liegt in Ruinen, und deutsche Truppen kontrollieren den " "Verkehr auf der Wolga, um den Aufbau eines russischen Gegenangriffs zu " "verhindern. Somit können Sie nun ohne Störung im Rücken gen Moskau schreiten." #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Hastings" msgstr "Hastings" #. units/pg.udb:4208 msgid "FR 155mm Gun" msgstr "FR 155mm Geschütz" #. maps/pg/map04:7 maps/pg/map17:7 msgid "Charleroi" msgstr "Charleroi" #. maps/pg/map24:7 msgid "Zhitomir" msgstr "Schitomir" #. maps/pg/map08:7 msgid "Samarra" msgstr "Samarra" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Schwerin" msgstr "Schwerin" #. units/pg.udb:7569 msgid "ST SU-100" msgstr "ST SU-100" #. units/pg.udb:1408 msgid "PzIIIN" msgstr "PzIIIN" #. maps/pg/map16:7 msgid "Aubenas" msgstr "Aubenas" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kropotkin" msgstr "Kropotkin" #. units/pg.udb:932 msgid "ME323d" msgstr "ME323d" #. units/pg.udb:6225 msgid "GB 17 Pdr ATG" msgstr "GB 17 Pfdr PaK" #. units/pg.udb:4152 msgid "FR 75mm Gun" msgstr "FR 75mm Geschütz" #. maps/pg/map16:7 msgid "Aygues River" msgstr "Aygues" #. maps/pg/map05:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map18:7 maps/pg/map38:7 msgid "Dieppe" msgstr "Dieppe" #. maps/pg/map15:7 msgid "Flers" msgstr "Flers" #. maps/pg/map21:7 msgid "Bosanska" msgstr "Bosanska" #. maps/pg/map03:7 msgid "Alesund" msgstr "Ålesund" #. maps/pg/map15:7 msgid "Villedieu-LP" msgstr "Villedieu-LP" #. units/pg.udb:9473 msgid "Greek Inf" msgstr "Griechische Inf" #. units/pg.udb:11657 msgid "FPO Bren Ca" msgstr "FPO Bren Ca" #. maps/pg/map33:7 msgid "Zirc" msgstr "Zirc" #. maps/pg/map03:7 msgid "Glomma River" msgstr "Glomma" #. maps/pg/map24:7 msgid "Mozyr" msgstr "Mosir" #. maps/pg/map12:7 msgid "Bone" msgstr "Bone" #. units/pg.udb:5917 msgid "GB Daimler SC" msgstr "GB Daimler SC" #. maps/pg/map22:7 msgid "Sfakia" msgstr "Sfakia" #. maps/pg/map36:7 msgid "Easton" msgstr "Easton" #. maps/pg/map18:7 msgid "Seine River" msgstr "Seine" #. units/pg.udb:5777 msgid "GB Sexton" msgstr "GB Sexton" #. maps/pg/map33:7 msgid "Slofok" msgstr "Slofok" #. campaigns/PG:483 msgid "16th December 1944" msgstr "16. Dezember 1944" #. maps/pg/map13:7 msgid "Castrovillari" msgstr "Castrovillari" #. maps/pg/map20:7 maps/pg/map33:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Budapest" msgstr "Budapest" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Manchester" msgstr "Manchester" #. maps/pg/map19:7 msgid "Wolfheze" msgstr "Wolfheze" #. maps/pg/map18:7 msgid "Compiegne" msgstr "Compiègne" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Suwalki" msgstr "Suwalki" #. units/pg.udb:7401 msgid "ST KV-1/39" msgstr "ST KW-1/39" #. maps/pg/map22:7 msgid "Maleme" msgstr "Malemes" #. campaigns/PG:269 msgid "" "Not capturing Moscow in time gave the Russian adversaries plenty of " "opportunity to mobilise troops from Siberia and perform a counterattack. " "While we managed to establish a stable front line again, our hopes to " "capture Moscow are now gone for good." msgstr "" "Ihr Misserfolg in Moskau gewährte den Russen genügend Zeit zur Vorbereitung " "eines Gegenangriffs mit sibirischen Truppen. Obwohl wir die Front wieder " "stabilisierten, sind alle Hoffnungen an eine Eroberung Moskaus für immer " "verschwunden." #. units/pg.udb:11041 msgid "US 3 Inches ATG" msgstr "US 3 Zoll PaK" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Shchekino" msgstr "Schtschekino" #. maps/pg/map21:7 msgid "Monosterace" msgstr "Monosterace" #. maps/pg/map26:7 msgid "Balaklava" msgstr "Balaklawa" #. campaigns/PG:234 msgid "" "By your taking of Sevastopol and the Krim peninsula in time, we could " "annihilate the Russian Black Sea fleet. There will be no more interference " "on our ongoing advance to the East." msgstr "" "Durch die frühe Eroberung von Sewastopol und der Krim konnten wir die " "russische Schwarzmeerflotte vernichten. Somit wird es keine weiteren " "Störungen geben bei unserem Vormarsch im Osten." #. units/pg.udb:9949 msgid "US B29 SF" msgstr "US B29 SF" #. maps/pg/map08:7 msgid "Kaf" msgstr "Kaf" #. maps/pg/map36:7 msgid "Mattawoman Creek" msgstr "Mattawomanbach" #. maps/pg/map21:7 msgid "Karlovac" msgstr "Karlovac" #. units/pg.udb:2528 msgid "SPW 250/1" msgstr "SPW 250/1" #. units/pg.udb:16 msgid "Hard" msgstr "Hart" #. maps/pg/map16:7 msgid "Nyons" msgstr "Nyons" #. maps/pg/map18:7 msgid "Alencon" msgstr "Alençon" #. units/pg.udb:4404 msgid "AD Mk I Fort" msgstr "AV Mk I Festg" #. campaigns/PG:185 msgid "" "Moscow, capital and industrial, and logistical center of Russia, is the " "ultimate objective you have to strive for on the Eastern front. You have to " "capture Moscow and all other objectives by the 16th of November at the " "latest. Yet to prevent autumn weather to halt our advance, you should finish " "your mission several weeks earlier." msgstr "" "Moskau, Hauptstadt und industriell-logistisches Zentrum von Russland, ist " "das letzte zu erstrebende Ziel an der Ostfront. Besetzen Sie Moskau und alle " "anderen Ziele bis spätestens zum 16. November. Um die zu erwartende " "Behinderung unseres Vormarsches durch das Herbstwetter zu minimieren, " "sollten Sie Ihre Mission einige Wochen vorher beenden." #. units/pg.udb:7541 msgid "ST IS-2" msgstr "ST JS-2" #. maps/pg/map04:7 msgid "Dunkirk" msgstr "Dünkirchen" #. units/pg.udb:9305 msgid "IT 155mm Gun" msgstr "IT 155mm Geschütz" #. units/pg.udb:6197 msgid "GB 6 Pdr ATG" msgstr "GB 6 Pfdr PaK" #. campaigns/PG:383 campaigns/PG:393 msgid "" "Your failure to conquer England in time before American reinforcements " "arrived has given the enemy the strength to strike back, and force our " "troops back to the continent." msgstr "" "Ihre Unfähigkeit, England rechtzeitig vor der Ankunf amerikanischer " "Verstärkung zu erobern, gab dem Feind die Kraft zum Gegenschlag und zwang " "unsere Truppen zurück zum Festland." #. maps/pg/map10:7 maps/pg/map28:7 msgid "Tiblisi" msgstr "Tiflis" #. maps/pg/map22:7 msgid "Suda" msgstr "Suda" #. scenarios/pg/MarketGarden:3 msgid "" "September 17, 1944: Daring airborne assault to capture a Rhine River " "crossing. A bridge too far?" msgstr "" "17. September 1944: Ein gewagter Luftangriff zur Eroberung eines " "Rheinübergangs. Eine Brücke zu viel?" #. maps/pg/map29:7 msgid "Novomoskovsk" msgstr "Nowomoskowsk" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Erfuhrt" msgstr "Erfuhrt" #. maps/pg/map18:7 msgid "Mayenne" msgstr "Mayenne" #. units/pg.udb:11489 msgid "FFR GM Truck" msgstr "FFR GM Lastwagen" #. units/pg.udb:7625 msgid "ST ISU-152 " msgstr "ST JSU-152" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Bardia" msgstr "Bardia" #. units/pg.udb:11377 msgid "FFR 75mm Gun" msgstr "FFR 75mm Geschütz" #. units/pg.udb:11965 msgid "Katyusha BM31" msgstr "Katjuscha BM31" #. maps/pg/map36:7 msgid "Cameron Run" msgstr "Cameronbach" #. maps/pg/map18:7 msgid "Louviers" msgstr "Louviers" #. maps/pg/map18:7 msgid "Loire River" msgstr "Loire" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Pilsen" msgstr "Pilsen" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Pripyat River" msgstr "Pripjat" #. maps/pg/map13:7 msgid "Crotone" msgstr "Crotone" #. scenarios/pg/Kursk:3 msgid "" "July 5, 1943: Operation Citadel launches a huge attack into well prepared " "Soviet defenses." msgstr "" "5. Juli 1943: Operation Zitadelle startet einen gewaltigen Angriff auf gut " "vorbereitete sowjetische Stellungen." #. maps/pg/map12:7 msgid "Algiers" msgstr "Algier" #. campaigns/PG:365 msgid "" "We have gathered all strike forces for the ultimate offensive on the Eastern " "front. You have to take Budapest and all other objectives by no later than " "the 25th of March. To ensure that the Russians will not recover from the " "offensive, and sign a favourable peace treaty, you should capture all " "objectives several days earlier." msgstr "" "Wir haben alle Kampfgruppen für die letzten Offensive an der Ostfront " "versammelt. Nehmen Sie Budapest und alle anderen Ziele bis spätestens zum " "25. März ein. Um die Russen von der Erholung von der Offensive abzuhalten " "und ihnen einen genehmen Friedensvertrag abzutrotzen, sollten Sie Ihre Ziele " "einige Tage früher erreichen." #. units/pg.udb:1912 msgid "Jp Elefant" msgstr "Jp Elefant" #. maps/pg/map15:7 msgid "Villers-Bocage" msgstr "Villers-Bocage" #. campaigns/PG:20 msgid "" "Fall Weiß, the conquest of Poland has commenced. Your order is to make an " "inroad breach through the main Polish defenses and take the towns of Kutno " "and Lodz by no later than the 10th of September. Failing to do so could " "cause England and France to declare war against Germany. An earlier " "completion may make available more resources to your for the assault of " "Warsaw." msgstr "" "Fall Weiß, die Eroberung Polens, hat begonnen. Ihr Befehl lautet, eine " "Bresche in die polnischen Hauptverteidigungslinien zu schlagen und die " "Städte Kutno und Lodsch bis spätestens zum 10. September zu erobern. Eine " "frühere Beendigung könnte Ihnen mehr Resourcen für den Angriff auf Warschau " "zu Verfügung stellen." #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kohlfurt" msgstr "Kohlfurt" #. campaigns/PG:559 msgid "The American army made piecemeal out of the Africa Corps." msgstr "Die amerikanische Armee schlug unser Afrikakorps in Stücke." #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Oka River" msgstr "Oka" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Harwich" msgstr "Harwich" #. units/pg.udb:3648 msgid "FR CHk 75A-1" msgstr "FR CHk 75A-1" #. scenarios/pg/Sevastapol:3 msgid "June 7, 1942: The final assault on the Black Sea port of Sevastopol." msgstr "" "7. Juni 1942: Der endgültige Angriff auf den Schwarzmeerhafen von Sewastopol" #. maps/pg/map13:7 msgid "Catania" msgstr "Catania" #. units/pg.udb:5609 msgid "GB Church IV" msgstr "GB Church IV" #. units/pg.udb:4796 msgid "GB Spit IX" msgstr "GB Spit IX" #. units/pg.udb:229 msgid "FW190a" msgstr "FW190a" #. maps/pg/map33:7 msgid "Solt" msgstr "Solt" #. campaigns/PG:391 msgid "" "Your early capturing of Southern England enabled us to prepare defenses " "against the landing of the American reinforcements, and to decisively beat " "them. Consequentially, England has surrendered! It is to be attributed to " "your talent and to the high morale of your troops that you achieved an " "unprecedented victory over the British Empire. England, Scotland, Ireland, " "and the oversea dependencies are now governed by German administration. You " "are herewith awarded one of the highest order medals of the Reich, the Iron " "Cross with Oak Leaves, and Swords." msgstr "" "Ihre frühzeitige Eroberung Südenglands erlaubte die Vorbereitung von " "Verteidigungsanlagen gegen die amerikanische Landung und ihre Vernichtung. " "In Folge dessen hat England kapituliert! Dieser unübertroffene Sieg über das " "Königreich ist Ihrem Talent und der hohen Moral Ihrer Truppen zuzuschreiben. " "England, Schottland, Irland und die Kolonien in Übersee sind nun unter " "deutsche Verwaltung gestellt. Ihnen wird hiermit einer der höchsten Orden " "des Reiches verliehen, das Eiserne Kreuz mit Eichenlaub und Schwertern." #. campaigns/PG:604 msgid "" "With African and Russian resources, we heavily increased the output of our " "war industries, consequentially enabling us to gain hold onto American soil. " "Our troops have advanced to the gates of Washington, and your order is to " "capture it. Take Washington and all other objectives by the 3rd of August at " "the latest. Intelligence reports that the Americans are testing a secret " "weapon, which will be ready for mid-July. Hence, to reduce German casualties " "and to emphasise our strong position, you should finish your mission by then." msgstr "" "Mit afrikanischen und russischen Rohstoffen erhöhten wir den Ausstoß der " "Rüstungsindustrie erheblich, wodurch wir eine Landeoperation auf " "amerikanischem Boden durchzuführen in der Lage waren. Unsere Truppen stehen " "vor den Toren Washingtons, und Sie haben die Stadt zu erobern. Nehmen Sie " "Washington und alle anderen Ziele bis spätestens zum 3. August ein. V-Männer " "berichten von Tests einer neuen amerikanischen Geheimwaffe, die Mitte Juli " "einsatzbereit sein soll. Um deutsche Verluste zu minimieren und unsere " "starke Position zu unterstreichen, sollten Sie Ihre Mission bis dahin " "bereits erfüllt haben." #. maps/pg/map12:7 msgid "Sfax" msgstr "Sfax" #. units/pg.udb:6253 msgid "GB 25 Pdr Gun" msgstr "GB 25 Pfdr Geschütz" #. maps/pg/map21:7 msgid "Belgrade" msgstr "Belgrad" #. units/pg.udb:3872 msgid "FR CL AMX R40" msgstr "FR CL AMX R40" #. units/pg.udb:3396 msgid "PO 7TP" msgstr "PO 7TP" #. maps/pg/map05:7 msgid "Troyes" msgstr "Troyes" #. maps/pg/map15:7 msgid "Gace" msgstr "Gace" #. campaigns/PG:549 msgid "Sealion43" msgstr "Seelöwe 43" #. campaigns/PG:41 msgid "9th April 1940" msgstr "9. April 1940" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Dortmund" msgstr "Dortmund" #. units/pg.udb:820 msgid "Ju88A" msgstr "Ju88A" #. campaigns/PG:90 msgid "" "Your decisive and early success in France gave us plenty of time to prepare " "operation Sealion, the invasion of England. You have to capture London and " "various key towns in the vicinity before Autumn weather sets in, causing " "rough sea and putting our supply lines at stake. This is a unique chance to " "force England to surrender and end the war." msgstr "" "Ihr früher und entscheidender Sieg in Frankreich ließ genügend Zeit, " "Unternehmen Seelöwe, die Invasion Englands, vorzubereiten. Erobern Sie " "London und weitere Ziele, bevor das Herbstwetter die See aufraut und unsere " "Nachschublinien gefährdet. Dies ist eine einzigartige Gelegenheit, England " "zur Kapitulation zu zwingen und den Krieg zu beenden." #. units/pg.udb:8633 msgid "IT Ma C205/O" msgstr "IT Ma C205/O" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Stalino" msgstr "Stalino" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kimovsk" msgstr "Kimowsk" #. units/pg.udb:3004 msgid "8.8 FlaK 18" msgstr "8,8 FlaK 18" #. campaigns/PG:450 msgid "" "You fighted bravely against odds, but in vain. The Allied army drove our " "troops back to the Netherlands." msgstr "" "Sie haben sich tapfer gegen eine Übermacht behauptet, aber ohne Erfolg. Die " "Alliierten trieben unsere Truppen in die Niederlande zurück." #. maps/pg/map16:7 msgid "Nimes" msgstr "Nîmes" #. maps/pg/map15:7 msgid "See River" msgstr "See" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bidefeld" msgstr "Bielefeld" #. maps/pg/map08:7 msgid "Tigris River" msgstr "Tigris" #. maps/pg/map02:7 maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 ... msgid "Narew River" msgstr "Narew" #. maps/pg/map19:7 msgid "St. Oedenrode" msgstr "St. Ödenrode" #. campaigns/PG:489 msgid "" "Wacht am Rhein was an utter failure. Massive Allied reinforcements drove our " "troops back to the limits of the Reich." msgstr "" "Wacht am Rhein war ein völliger Fehlschlag. Massive alliierte Verstärkungen " "drängten unsere Truppen bis an die Reichsgrenze zurück." #. units/pg.udb:8241 msgid "AF Transport" msgstr "AV Transport" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Sollum" msgstr "Sollum" #. maps/pg/map02:7 msgid "Pilica River" msgstr "Piliza" #. maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 maps/pg/map07:7 ... msgid "Airfield" msgstr "Flugplatz" #. units/pg.udb:10285 msgid "US M4A3E2" msgstr "US M4A3E2" #. units/pg.udb:35 msgid "Wheeled" msgstr "Reifen" #. units/pg.udb:3088 msgid "40 Wehr HW" msgstr "40 Wehr Gren" #. units/pg.udb:3760 msgid "FFR M4A1" msgstr "FFR M4A1" #. maps/pg.tdb:4 msgid "Fair(Dry)" msgstr "Heiter (trocken)" #. maps/pg/map33:7 msgid "Szekesfehervar" msgstr "Szekesfehervar" #. maps/pg/map19:7 msgid "Dinther" msgstr "Dinther" #. campaigns/PG:121 msgid "" "You have done well. Despite heavy resistence, the suppremacy over the " "Mediterranean Sea is ours. Nothing can stop our operations in Russia now." msgstr "" "Sie haben gute Arbeit geleistet. Trotz heftiger Widerstände ist die " "Herrschaft über dem Mittelmeer unsere. Nichts kann nun unser Unternehmen in " "Russland aufhalten." #. nations/pg.ndb:72 msgid "Portugal" msgstr "Portugal" #. campaigns/PG:42 msgid "" "High Command has got a special order for you. In order to secure supply " "lines of Swedish ore, we prepared operation Weserübung, the invasion of " "Norway before the English will do so. You have to take Oslo, Stavanger-" "airport, and a number of Northern towns before the 3rd of May." msgstr "" "Das Oberkommando hat einen Sonderauftrag für Sie. Zur Sicherung der " "schwedischen Erzlieferungen haben wir Unternehmen Weserübung vorbereitet, " "die Invasion Norwegens vor den Engländern. Erobern Sie Oslo, den Flughafen " "Stavanger und eine Anzahl nördlicher Städte vor dem 3. Mai." #. scenarios/pg/Caucasus:2 msgid "CAUCASUS" msgstr "KAUKASUS" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Passau" msgstr "Passau" #. units/pg.udb:5385 msgid "GB Grant" msgstr "GB Grant" #. units/pg.udb:848 msgid "DO217e" msgstr "DO217e" #. units/pg.udb:11937 msgid "Katyusha BM13" msgstr "Katjuscha BM13" #. maps/pg/map21:7 msgid "Bosanki Petrovac" msgstr "Bosanki Petrovac" #. maps/pg/map17:7 msgid "Rochefort" msgstr "Rochefort" #. maps/pg/map17:7 msgid "Phillipeville" msgstr "Phillipeville" #. campaigns/PG:565 maps/pg/map30:7 msgid "Kursk" msgstr "Kursk" #. maps/pg/map01:7 maps/pg/map02:7 msgid "Brzeziny" msgstr "Brzeziny" #. maps/pg/map02:7 msgid "Modlin" msgstr "Modlin" #. units/pg.udb:9893 msgid "US B17G FF" msgstr "US B17G FF" #. maps/pg/map21:7 msgid "Vratsa" msgstr "Vratsa" #. maps/pg/map21:7 msgid "Drin River" msgstr "Drin" #. campaigns/PG:31 msgid "" "Despite of your efforts England and France have entered the war against " "Germany. Additionally, our Eastern ally the Soviet Union has begun invading " "Poland to take its share of the cake. Thus it is imperative that you advance " "to the Vistula river and take the key city of Warsaw and surrounding " "objectives by no later than the 30th of September." msgstr "" "Trotz Ihrer Bemühungen traten England und Frankreich in den Krieg gegen " "Deutschland ein. Weiters begann unser östlicher Verbündeter, die " "Sowjetunion, mit dem Einmarsch in Polen, um sich seinen Anteil zuzusichern. " "Somit ist Ihr Vormarsch zur Weichsel und die Einnahme von Warschau und " "umgebenden Städten bis spätestens zum 30. September zwingend." #. maps/pg/map24:7 msgid "Kremench" msgstr "Krementsch" #. campaigns/PG:77 msgid "" "Your performance was outstanding and has brought an overwhelming victory to " "the Reich. My humiliation of 1918 is revenged. France has surrendered, and " "its dependencies will be put under German protectorate." msgstr "" "Ihre Leistung war hervorragend und brachte dem Reich einen überwältigen " "Sieg. Meine Erniedrigung von 1918 ist gerächt. Frankreich hat kapituliert " "und seine Kolonien werden unter deutsches Protektorat gestellt." #. campaigns/PG:307 msgid "" "You bravely haltet the Russian winter offensive and managed to establish a " "stable front line." msgstr "" "Sie haben die russische Winteroffensive tapfer zum Stillstand gebracht und " "die Front stabilisiert." #. units/pg.udb:2752 msgid "7.5 PaK40" msgstr "7,5 PaK40" #. units/pg.udb:9669 msgid "US P47B Tbolt" msgstr "US P47B Tbolt" #. maps/pg/map17:7 msgid "Prum" msgstr "Prum" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Dessau" msgstr "Dessau" #. maps/pg/map04:7 msgid "Ghent" msgstr "Ghent" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Neubrandenburg" msgstr "Neubrandenburg" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Borisov" msgstr "Borisow" #. maps/pg/map08:7 msgid "Al Kazimayah" msgstr "Al Kazimayah" #. campaigns/PG:446 msgid "" "After their bloody repulse in Normandy, the Allies attempt a second invasion " "in Southern France. Hold all objectives until the 28th of August to make " "this invasion a disaster to the Allies again. Otherwise, hold at least two " "objectives to slow down the Allied advance." msgstr "" "Nach ihrem blutigen Rückschlag in der Normandie eröffnen die Alliierten mit " "einer neuen Invasion in Südfrankreich. Halten Sie alle Ziele bis zum 28. " "August, um auch diese Landung zur einer alliierten Katastrofe zu machen. " "Andernfalls, halten Sie zumindest zwei Ziele, um den alliierten Vormarsch zu " "bremsen." #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map15:7 maps/pg/map18:7 maps/pg/map38:7 msgid "Cherbourg" msgstr "Cherbourg" #. msgid "Defeat" msgstr "Niederlage" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Zakepae" msgstr "Zakepae" #. maps/pg/map08:7 msgid "Basra" msgstr "Basra" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Elbe River" msgstr "Elbe" #. maps/pg/map04:7 msgid "Meuse" msgstr "Meuse" #. campaigns/PG:547 msgid "" "Your decisive victory in Mesopotamia has terminally weakened the English " "forces. Thus, there is a big opportunity to prepare an invasion of England, " "and end the war in the West. On the other hand, you may choose to continue " "advancing towards the Caucasus.##Herr General, which operation do you want " "to take command of?" msgstr "" "Ihr entscheidender Sieg im Zweistromland schwächte die englischen Kräfte " "endgültig. Somit ergibt sich eine Gelegenheit zur Vorbereitung einer " "Invasion Englands und zur Beendigung des Krieges im Westen. Andererseits " "können Sie weiter Richtung Kaukasus marschieren.##Herr General, über welche " "Unternehmung möchten Sie das Kommando?\"" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Millerovo" msgstr "Millerowo" #. campaigns/PG:607 msgid "" "America has surrendered to the overwhelming might of the Wehrmacht, " "Luftwaffe, and Marine! The United States had to sign a peace treaty which " "grants German occupation of the most resourceful, and strategically most " "valuable American territories. You are heralded to be the greatest general " "on Earth without whom such a success would have never been achievable. " "Therefore, you are awarded the highest order medal, specially crafted for " "you, the Knight's Cross with Oak Leaves, Swords, and Brilliants, and you are " "promoted to Generalfeldmarschall. The war is over. Germany is the world, the " "world is Germany." msgstr "" "Amerika hat gegenüber der überwältigenden Macht von Wehrmacht, Luftwaffe und " "Marine kapituliert! Die Vereinigten Staaten mussten eine Friedensvertrag " "unterzeichnen, der die deutsche Besetzung der rohstoffreichsten und " "strategisch wertvollsten amerikanischen Gebiete gewährt. Sie werden als " "größter General auf Erden ausgerufen, ohne den ein solcher Erfolg niemals " "erreichbar gewesen wäre. Deshalb wird Ihnen der höchste Orden des Reichen, " "speziell für Sie gefertigt, das Ritterkreuz mit Eichenlaub, Schwertern und " "Brillianten verliehen, und Sie werden zum Generalfeldmarschall befördert. " "Der Krieg ist vorüber. Deutschland ist die Welt, und die Welt ist " "Deutschland." #. units/pg.udb:3312 msgid "PO PZL P23b" msgstr "PO PZL P23b" #. units/pg.udb:5749 msgid "GB M7 Priest" msgstr "GB M7 Priest" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Cottbus" msgstr "Cottbus" #. units/pg.udb:10985 msgid "US 37mm ATG" msgstr "US 37mm PaK" #. maps/pg/map16:7 msgid "Sisteron" msgstr "Sisteron" #. maps/pg/map04:7 msgid "Lille" msgstr "Lille" #. maps/pg/map24:7 msgid "Dnepr" msgstr "Dnjepr" #. units/pg.udb:8465 msgid "Transport" msgstr "Transport" #. campaigns/PG:52 msgid "10th May 1940" msgstr "10. Mai 1940" #. units/pg.udb:1996 msgid "Jagdpz IV/70" msgstr "Jagdpz IV/70" #. nations/pg.ndb:44 msgid "USA" msgstr "USA" #. maps/pg/map15:7 msgid "Periers" msgstr "Periers" #. maps/pg/map33:7 msgid "Tapolca" msgstr "Tapolca" #. maps/pg/map13:7 msgid "Syracuse" msgstr "Syrakus" #. campaigns/PG:462 msgid "25th July 1944" msgstr "25. Juli 1944" #. maps/pg/map29:7 msgid "Oskal River" msgstr "Oskal" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 ... msgid "Rough" msgstr "Hügel" #. campaigns/PG:381 msgid "" "Your early capturing of Southern England enabled us to prepare defenses " "against the landing of the American reinforcements, and to decisively beat " "them. Consequentially, England has surrendered! It is to be attributed to " "your talent and to the high morale of your troops that you achieved an " "unprecedented victory over the British Empire. England, Scotland, Ireland, " "and the oversea dependencies are now governed by German administration. You " "are herewith awarded the highest order medal of the Reich, the Knight's " "Cross with Oak Leaves, and Swords." msgstr "" "Ihre frühzeitige Eroberung Südenglands erlaubte die Vorbereitung von " "Verteidigungsanlagen gegen die amerikanische Landung und ihre Vernichtung. " "In Folge dessen hat England kapituliert! Dieser unübertroffene Sieg über das " "Königreich ist Ihrem Talent und der hohen Moral Ihrer Truppen zuzuschreiben. " "England, Schottland, Irland und die Kolonien in Übersee sind nun unter " "deutsche Verwaltung gestellt. Ihnen wird hiermit der höchste Orden des " "Reiches verliehen, das Ritterkreuz mit Eichenlaub und Schwertern." #. campaigns/PG:463 msgid "" "The Allies extended their beachheads in Normandy and have built up " "considerable strength. With our troops scattered and exhausted, you face a " "hopeless battle against overwhelming forces. Your order is to hold all " "objectives as well as to retake Cherbourg, Carentan, and Caen. If not " "feasible, hold at least three objectives until the 18th of August." msgstr "" "Die Alliierten erweiterten ihre Landungsköpfe in der Normandie und " "massierten Truppen. Mit unsereren verstreuten und erschöpften Einheiten " "stehen Sie einer hoffnungslosen Schlacht gegen übermächtige Kräfte " "gegenüber. Ihr Befehl lautet, alle Ziele zu halten sowie Cherbourg, Carentan " "und Caen zurückzuerobern. Falls unplausibel, halten Sie zumindest drei Ziele " "bis zum 18. August." #. maps/pg/map22:7 msgid "Palaiokhora" msgstr "Palaiochora" #. nations/pg.ndb:8 msgid "Austria" msgstr "Österreich" #. units/pg.udb:10957 msgid "US Bridge Eng" msgstr "US Brückenbau" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Mtsensk" msgstr "Mzensk" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wurzburg" msgstr "Würzburg" #. campaigns/PG:603 msgid "1st June 1945" msgstr "1. Juni 1945" #. maps/pg/map36:7 msgid "White House" msgstr "Weißes Haus" #. maps/pg/map16:7 msgid "Saluzzo" msgstr "Saluzzo" #. units/pg.udb:3676 msgid "FR MS 406" msgstr "FR MS 406" #. scenarios/pg/Stalingrad:3 msgid "" "June 25, 1942: Axis all out drive on the major industrial center of " "Stalingrad." msgstr "" "25. Juni 1942: Großangriff der Achse auf die wichtige Industriestadt " "Stalingrad." #. units/pg.udb:9781 msgid "US B25H Mitch" msgstr "US B25H Mitch" #. maps/pg/map21:7 msgid "Gallipoli" msgstr "Gallipoli" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Bournemouth" msgstr "Bournemouth" #. units/pg.udb:9053 msgid "IT M15/42" msgstr "IT M15/42" #. campaigns/PG:116 msgid "20th May 1941" msgstr "20. Mai 1941" #. maps/pg.tdb:392 msgid "Fields" msgstr "Felder" #. maps/pg/map16:7 msgid "Po River" msgstr "Po" #. maps/pg/map29:7 msgid "Lisichansk" msgstr "Lisitschansk" #. units/pg.udb:4180 msgid "FR 105mm Gun" msgstr "FR 105mm Geschütz" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Karlsruhe" msgstr "Karlsruhe" #. maps/pg/map36:7 msgid "Lanham" msgstr "Lanham" #. units/pg.udb:4853 msgid "GB Spit XIV" msgstr "GB Spit XIV" #. campaigns/PG:25 msgid "" "Your failure to make an inroad success has lead to the Allies making an " "attack on Germany." msgstr "" "Ihre Unfähigkeit, polnischen Boden zu gewinnen, hat zur einem Angriff der " "Alliierten auf Deutschland geführt." #. maps/pg/map10:7 maps/pg/map28:7 msgid "Sukhum" msgstr "Suchum" #. maps/pg/map08:7 msgid "Dead Sea" msgstr "Totes Meer" #. maps/pg/map18:7 msgid "Fecamp" msgstr "Fecamp" #. scenarios/pg/ElAlamein:2 msgid "EL ALAMEIN" msgstr "EL ALAMEIN" #. campaigns/PG:505 msgid "" "You managed to take and hold Arnhem. Yet, bombing raids against our supply " "lines, and Allied reinforcements forced us to eventually abandon the Arnhem " "area, and to pull back behind the Rhine." msgstr "" "Sie konnten Arnheim zurückerobern und erfolgreich halten. Dennoch zwangen " "uns alliierte Luftangriffe gegen unsere Nachschublinien und alliierte " "Verstärkungen zur Aufgabe des Arnheim-Gebietes und uns hinter den Rhein " "zurückzuziehen." #. units/pg.udb:7877 msgid "ST 57mm ATG" msgstr "ST 57mm PaK" #. maps/pg/map13:7 msgid "Matera" msgstr "Matera" #. maps/pg/map26:7 msgid "Novyi Shuli" msgstr "Nowji Schuli" #. units/pg.udb:1464 msgid "PzIVD" msgstr "PzIVD" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Baku" msgstr "Baku" #. units/pg.udb:10201 msgid "US M5" msgstr "US M5" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map07:7 maps/pg/map08:7 ... msgid "Swamp" msgstr "Sumpf" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Zurich" msgstr "Zürich" #. nations/pg.ndb:60 msgid "Netherlands" msgstr "Niederlande" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Anglesey" msgstr "Anglesey" #. campaigns/PG:518 msgid "Putting you in charge of the Africa Corps was an utter failure." msgstr "" "Man hätte Ihnen niemals den Oberbefehl über das Afrikakorps überantworten " "dürfen." #. maps/pg/map29:7 msgid "Andreyevka" msgstr "Andrejewka" #. campaigns/PG:135 msgid "22nd June 1941" msgstr "22. Juni 1941" #. maps/pg/map13:7 msgid "Pizzo" msgstr "Pizzo" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kielce" msgstr "Kielce" #. maps/pg/map18:7 msgid "Dreux" msgstr "Dreux" #. units/pg.udb:8521 msgid "IT Re2000/F1" msgstr "IT Re2000/F1" #. maps/pg/map19:7 msgid "Deurne" msgstr "Deurne" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Teschen" msgstr "Teschen" #. units/pg.udb:10677 msgid "US M36" msgstr "US M36" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wilhelmshaven" msgstr "Wilhelmshaven" #. scenarios/pg/BerlinEast:2 msgid "BERLIN (EAST)" msgstr "BERLIN (OST)" #. campaigns/PG:540 msgid "" "Your next order is to secure the Middle East and Mesopotamia in order to " "allow for a new Southern front into the Caucasus. Take all objectives by the " "15th of November at the latest before autumn rainfalls will stop our advance " "in the mud." msgstr "" "Ihr nächster Befehl ist die Sicherung des Mittleren Ostens und des " "Zweistromlands zur Eröffnung einer Südfront in den Kaukasus. Erobern Sie " "alle Ziele bis spätestens zum 15. November, bevor der Herbstregen unseren " "Vormarsch im Schlamm erstickt." #. units/pg.udb:8073 msgid "AF BtCruiser" msgstr "AS Schlachtkreuzer" #. campaigns/PG:110 msgid "" "With Yugoslavia and Greece having surrendered, nothing can stop our upcoming " "invasion of Russia." msgstr "" "Mit der Kapitulation von Jugoslawien und Griechenland kann nichts mehr " "unsere kommende Invasion von Russland aufhalten." #. maps/pg/map16:7 msgid "Ales" msgstr "Alès" #. units/pg.udb:19 units/pg.udb:47 msgid "Air" msgstr "Luft" #. maps/pg/map19:7 msgid "Volkel" msgstr "Volkel" #. maps/pg/map14:7 msgid "Vellitri" msgstr "Vellitri" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Oppeln" msgstr "Oppeln" #. maps/pg/map03:7 msgid "Steinkjer" msgstr "Steinkjer" #. maps/pg/map29:7 msgid "Petropavlovka" msgstr "Petropawlowka" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Krefeld" msgstr "Krefeld" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Sheffield" msgstr "Sheffield" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Minsk" msgstr "Minsk" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map30:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Karachev" msgstr "Karatschew" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Exeter" msgstr "Exeter" #. scenarios/pg/Moscow41:2 msgid "MOSCOW (41)" msgstr "MOSKAU (41)" #. units/pg.udb:9333 msgid "Bridge Eng" msgstr "Brückenbau" #. campaigns/PG:319 msgid "5th July 1943" msgstr "5. Juli 1943" #. maps/pg/map21:7 msgid "Tirana" msgstr "Tirana" #. maps/pg/map24:7 msgid "Priluki" msgstr "Priluki" #. units/pg.udb:2724 msgid "5 PaK38" msgstr "5 PaK38" #. maps/pg/map14:7 msgid "Tiber River" msgstr "Tiber" #. maps/pg/map30:7 msgid "Lgov" msgstr "Lgow" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Duisburg" msgstr "Duisburg" #. maps/pg/map33:7 msgid "Tab" msgstr "Tab" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bremen" msgstr "Bremen" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kassel" msgstr "Kassel" #. maps/pg/map22:7 msgid "Canea" msgstr "Canea" #. units/pg.udb:10733 msgid "US Inf 43" msgstr "US Inf 43" #. maps/pg/map36:7 msgid "Brightwood" msgstr "Brightwood" #. units/pg.udb:10425 msgid "US M8 HMC" msgstr "US M8 HMC" #. maps/pg/map15:7 msgid "Riva-Bella" msgstr "Riva-Bella" #. maps/pg/map17:7 msgid "Houffalize" msgstr "Houffalize" #. maps/pg/map20:7 maps/pg/map33:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Gyor" msgstr "Gjör" #. units/pg.udb:8213 msgid "AF Submarine" msgstr "AS U-Boot" #. maps/pg/map17:7 msgid "Malmedy" msgstr "Malmedy" #. maps/pg/map33:7 msgid "Veszprem" msgstr "Veszprem" #. maps/pg/map36:7 msgid "Quantico" msgstr "Quantico" #. maps/pg/map29:7 msgid "Kirovi River" msgstr "Kirowi" #. maps/pg/map33:7 msgid "Mezoszilas" msgstr "Mezoszilas" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Prague" msgstr "Prag" #. campaigns/PG:139 msgid "" "Russian reserves eventually stopped our slow advance and built up momentum " "to drive our troops back into the Reich." msgstr "" "Russische Reserven haben unseren langsamen Vormarsch aufgehalten und mit " "Kraft unsere Truppen zurück ins Reich gedrängt." #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Canterbury" msgstr "Canterbury" #. maps/pg/map01:7 msgid "Kalisz" msgstr "Kalisch" #. scenarios/pg/Caucasus:3 msgid "" "June 30, 1942: Axis strikes into Russia's oil rich territory from a new " "southern front." msgstr "" "30. Juni 1942: Die Achse erschließt Russlands ölreiches Gebiet von einer " "neuen Südfront." #. campaigns/PG:411 msgid "" "Holding Rome has kept the Allied from invading our heartlands from the South." msgstr "" "Dank der erfolgreichen Verteidigung Roms konnten die Alliierten nicht in " "deutsches Kernland vorstoßen." #. nations/pg.ndb:84 msgid "Sovjetunion" msgstr "Sowjetunion" #. maps/pg/map05:7 msgid "Loire" msgstr "Loire" #. scenarios/pg/Husky:3 msgid "July 10, 1943: The Allies invade the Soft Underbelly of Europe." msgstr "" "10. Juli 1943: Die Alliierten fallen in den schwach geschützten Süden " "Europas ein." #. units/pg.udb:55 msgid "All Terrain" msgstr "Gelände" #. campaigns/PG:445 msgid "6th August 1944" msgstr "6. August 1944" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Szczytno" msgstr "Szczytno" #. scenarios/pg/Cobra:3 msgid "July 25, 1944: The Allied breakout from Normandy." msgstr "25. Juli 1944: Der alliierte Ausbruch aus der Normandie." #. units/pg.udb:5861 msgid "GB AEC II" msgstr "GB AEC II" #. campaigns/PG:578 msgid "" "Your exemplary victory in Sicily has considerably impressed General staff. " "Therefore, you are offered command over the strike force against Moscow." "##Herr General, do you want to stay in Italy, or do you want to be " "transferred to the Eastern front?" msgstr "" "Ihr beispielloser Sieg in Sizilien beeindruckte den Generalstab erheblich. " "Deshalb wird Ihnen ein Kommando über die Streitmacht gegen Moskau angeboten." "##Herr General, möchten Sie in Italien bleiben oder zur Ostfront versetzt " "werden?" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Avon" msgstr "Avon" #. maps/pg/map05:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map15:7 maps/pg/map18:7 maps/pg/map38:7 ... msgid "Le Havre" msgstr "Le Havre" #. maps/pg/map36:7 msgid "University" msgstr "Universität" #. maps/pg/map29:7 msgid "Chuguyev" msgstr "Tschugujew" #. units/pg.udb:11349 msgid "FFR Mtn Inf" msgstr "FFR Berginf" #. units/pg.udb:2220 msgid "sIG IB" msgstr "sIG IB" #. maps/pg/map12:7 msgid "Gafsa" msgstr "Gafsa" #. campaigns/PG:89 msgid "1st September 1940" msgstr "1. September 1940" #. units/pg.udb:9725 msgid "US P47N Tbolt" msgstr "US P47N Tbolt" #. maps/pg/map22:7 msgid "Kastelli" msgstr "Kastelli" #. units/pg.udb:3172 msgid "43 LuftW FJ" msgstr "43 LuftW FJ" #. maps/pg/map36:7 msgid "Fairfax" msgstr "Fairfax" #. campaigns/PG:358 msgid "" "Your decisive victory in the battle of Budapest has made the Russians sign a " "favourable peace treaty. Combined with your earlier victory over England, we " "have won the war on both fronts. You are herewith promoted to " "Generalfeldmarschall as an acknowledgement of your brave achievements for " "the Reich during the war." msgstr "" "Ihr entscheidender Sieg in der Schlacht um Budapest zwang die Russen zur " "Unterzeichnung eines vorteilhaften Friedensvertrages. Verbunden mit Ihrem " "früheren Sieg über England haben wir den Krieg auf beiden Fronten gewonnen. " "Als Anerkennung ihrer tapferen Leistungen während des Krieges werden Sie " "hiermit zum Generalfeldmarschall befördert." #. maps/pg/map04:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Aachen" msgstr "Aachen" #. units/pg.udb:8493 msgid "S-Boat" msgstr "S-Boot" #. maps/pg/map24:7 msgid "Lokhvitsa" msgstr "Lochwitza" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Grodno" msgstr "Grodno" #. units/pg.udb:1548 msgid "PzIVJ" msgstr "PzIVJ" #. maps/pg/map21:7 msgid "Zvornik" msgstr "Swornik" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Nantes" msgstr "Nantes" #. units/pg.udb:10705 msgid "US Inf 41" msgstr "US Inf 41" #. maps/pg/map04:7 maps/pg/map17:7 msgid "Givet" msgstr "Givet" #. campaigns/PG:487 msgid "" "Herr General, your outstanding performance left a lasting impression to the " "Allied leader, enabling our Administration to sign a favourable peace " "treaty. The war in the West is now over." msgstr "" "Herr General, Ihre hervorragendere Leistung beeindruckte die alliierten " "Führer stark, wodurch unsere Regierung einen annehmbaren Friedensvertrag " "schließen konnte. Der Krieg im Westen ist nun beendet." #. units/pg.udb:7961 msgid "ST 15.2cm Gun" msgstr "ST 15,2cm Geschütz" #. units/pg.udb:11881 msgid "Fort" msgstr "Festung" #. scenarios/pg/Sealion40:2 msgid "SEALION (40)" msgstr "SEELÖWE (40)" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Nieman River" msgstr "Nieman" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Metz" msgstr "Metz" #. units/pg.udb:8717 msgid "IT P108 Bi" msgstr "IT P108 Bi" #. scenarios/pg/MarketGarden:2 msgid "MARKET-GARDEN" msgstr "MARKET-GARDEN" #. units/pg.udb:5413 msgid "GB Chal A30" msgstr "GB Chal A30" #. maps/pg/map05:7 maps/pg/map15:7 maps/pg/map18:7 msgid "Bocage" msgstr "Bocage" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Linz" msgstr "Linz" #. units/pg.udb:4292 msgid "NOR Infantry" msgstr "NOR Infanterie" #. scenarios/pg/SealionPlus:2 msgid "SEALION PLUS" msgstr "SEELÖWE PLUS" #. units/pg.udb:1436 msgid "Pioniere Inf" msgstr "Pioniere Inf" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kletskavka" msgstr "Kletskawka" #. maps/pg/map21:7 msgid "Trikkala" msgstr "Trikkala" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Allenstein" msgstr "Allenstein" #. maps/pg/map17:7 msgid "Eupen" msgstr "Eupen" #. units/pg.udb:2332 msgid "Hummel" msgstr "Hummel" #. maps/pg/map18:7 msgid "Yvetot" msgstr "Yvetot" #. maps/pg/map21:7 msgid "Kukes" msgstr "Kukes" #. campaigns/PG:57 msgid "" "You have proven to be a worthy Panzer General and secured the lowlands " "separating Germany from the heart of France. Now, the final assault on " "France is ready to commence. Unfortunately, time did not permit preparations " "of an invasion of England." msgstr "" "Sie haben sich als fähiger Panzergeneral erwiesen und die Tiefländer " "zwischen Deutschland und dem Herzen Frankreichs gesichert. Nun ist der " "endgültige Angriff auf Frankreich bereit zu beginnen. Unglücklicherweise " "reichte die Zeit nicht mehr für Vorbereitungen zur Invasion Englands." #. maps/pg/map24:7 msgid "Chernobay" msgstr "Tschernobai" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Bir Hacheim" msgstr "Bir Hacheim" #. maps/pg/map04:7 msgid "Bittem" msgstr "Bittem" #. maps/pg/map33:7 msgid "Dunaujvaros" msgstr "Dunaujvaros" #. units/pg.udb:10789 msgid "US Inf HW 43" msgstr "US Inf Gren 43" #. scenarios/pg/MiddleEast:2 msgid "MIDDLE EAST" msgstr "MITTLERER OSTEN" #. maps/pg/map21:7 msgid "Banja Luka" msgstr "Banja Luka" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Cologne" msgstr "Köln" #. units/pg.udb:876 msgid "HE177a" msgstr "HE177a" #. units/pg.udb:7485 msgid "ST KV-2" msgstr "ST KW-2" #. maps/pg/map21:7 msgid "Novigrad" msgstr "Nowigrad" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Mezol River" msgstr "Mezol" #. units/pg.udb:10537 msgid "US M15A1 MGMC" msgstr "US M15A1 MGMC" #. campaigns/PG:93 msgid "" "England has surrendered! It is to be attributed to your talent and to the " "high morale of your troops that you achieved an unprecedented victory over " "the British Empire. England, Scotland, Ireland, and the oversea dependencies " "are now governed by German administration. You are herewith awarded one of " "the highest order medals of the Reich, the Iron Cross with Oak Leaves, and " "Swords." msgstr "" "England hat kapituliert! Dieser unübertroffene Sieg über das Königreich ist " "Ihrem Talent und der hohen Moral Ihrer Truppen zuzuschreiben. England, " "Schottland, Irland und die Kolonien in Übersee sind nun unter deutsche " "Verwaltung gestellt. Ihnen wird hiermit einer der höchsten Orden des Reiches " "verliehen, das Eiserne Kreuz mit Eichenlaub und Schwertern." #. maps/pg/map10:7 maps/pg/map28:7 msgid "Ural" msgstr "Ural" #. units/pg.udb:4909 msgid "GB Blen MkI" msgstr "GB Blen MkI" #. maps/pg/map36:7 msgid "Gaithersburg" msgstr "Gaithersburg" #. maps/pg/map17:7 msgid "Spa" msgstr "Spa" #. units/pg.udb:568 msgid "ME410a" msgstr "ME410a" #. units/pg.udb:3984 msgid "FR Ch B1-bis" msgstr "FR Ch B1-bis" #. maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Arnhem" msgstr "Arnheim" #. units/pg.udb:10873 msgid "US Rangers 43" msgstr "US Rangers 43" #. maps/pg/map17:7 msgid "Leuvein" msgstr "Löwen" #. maps/pg/map15:7 msgid "Deauville" msgstr "Deauville" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kotelnikovo" msgstr "Kotelnikowo" lgeneral-1.3.1/po/pg/Makefile.in.in0000664000175000017500000001631112140770461013732 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2005 by Leo Savernik # # This file file be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. PACKAGE = pg VERSION = SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = $(prefix)/@DATADIRNAME@ localedir = $(datadir)/locale gnulocaledir = $(prefix)/share/locale gettextsrcdir = $(prefix)/share/gettext/po subdir = po/pg inst_dir = @inst_dir@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@ CC = @CC@ GENCAT = @GENCAT@ GMSGFMT = PATH=../src:$$PATH @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = PATH=../src:$$PATH @XGETTEXT@ MSGMERGE = PATH=../src:$$PATH msgmerge MSGCONV = @MSGCONV@ LTREXTRACT = $(abs_top_builddir)/tools/ltrextract/ltrextract DEFS = @DEFS@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ MSGCONVFLAGS = @MSGCONVFLAGS@ INCLUDES = -I.. -I$(top_srcdir)/intl COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) SOURCES = cat-id-tbl.c POFILES = @POFILES@ GMOFILES = @GMOFILES@ DISTFILES = pg-translations.c Makefile.in.in $(PACKAGE).pot \ stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES) RESOURCES = campaigns/PG maps/pg/* maps/pg.tdb scenarios/pg/* units/pg.udb nations/pg.ndb POTFILES = $(abs_srcdir)/pg-translations.c CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ INSTOBJEXT = @INSTOBJEXT@ .SUFFIXES: .SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat .c.o: $(COMPILE) $< .po.pox: $(MAKE) $(srcdir)/$(PACKAGE).pot $(MSGMERGE) $(MSGMERGEFLAGS) $< $(srcdir)/$(PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) $(MSGFMTFLAGS) -o $@ $< .po.gmo: $(GMSGFMT) $(MSGFMTFLAGS) -o $@ $< # file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ # && rm -f $$file && \ # $(GMSGFMT) $(MSGFMTFLAGS) -o $$file $< .po.cat: sed -f $(top_srcdir)/intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && $(GENCAT) $@ $*.msg all: all-@USE_NLS@ all-yes: $(srcdir)/cat-id-tbl.c $(CATALOGS) all-no: collect-translateables: $(MAKE) -C$(top_builddir)/tools/ltrextract cd $(inst_dir) && $(LTREXTRACT) -d$(PACKAGE) -o$(POTFILES) $(RESOURCES) $(srcdir)/$(PACKAGE).pot: $(POTFILES) $(XGETTEXT) $(XGETTEXTFLAGS) --default-domain=$(PACKAGE) \ --directory=$(top_srcdir) --no-location --add-comments \ --keyword=tr --keyword=TR_NOOP $(POTFILES) \ && test ! -f $(PACKAGE).po \ || ( rm -f $(srcdir)/$(PACKAGE).pot \ && $(MSGCONV) $(MSGCONVFLAGS) $(PACKAGE).po > $(srcdir)/$(PACKAGE).pot 2> /dev/null \ && rm -f $(PACKAGE).po ) $(srcdir)/cat-id-tbl.c: $(srcdir)/stamp-cat-id; @: $(srcdir)/stamp-cat-id: $(srcdir)/$(PACKAGE).pot rm -f cat-id-tbl.tmp sed -f $(top_builddir)/intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \ | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \ rm cat-id-tbl.tmp; \ else \ echo cat-id-tbl.c changed; \ rm -f $(srcdir)/cat-id-tbl.c; \ mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \ fi cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id install: install-exec install-data install-strip: install install-exec: install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all if test -r "$(MKINSTALLDIRS)"; then \ $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \ else \ $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \ fi @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ case "$$cat" in \ *.gmo) destdir=$(gnulocaledir);; \ *) destdir=$(localedir);; \ esac; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ dir=$$destdir/$$lang/LC_MESSAGES; \ if test -r "$(MKINSTALLDIRS)"; then \ $(MKINSTALLDIRS) $(DESTDIR)$$dir; \ else \ $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$$dir; \ fi; \ if test -r $$cat; then \ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT); \ echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT)"; \ else \ $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT); \ echo "installing $(srcdir)/$$cat as" \ "$(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT)"; \ fi; \ if test -r $$cat.m; then \ $(INSTALL_DATA) $$cat.m $(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT).m; \ echo "installing $$cat.m as $(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ else \ if test -r $(srcdir)/$$cat.m ; then \ $(INSTALL_DATA) $(srcdir)/$$cat.m \ $(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT).m; \ echo "installing $(srcdir)/$$cat as" \ "$(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ else \ true; \ fi; \ fi; \ done # Define this as empty until I found a useful application. installcheck: uninstall: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ done rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in check: all cat-id-tbl.o: $(srcdir)/cat-id-tbl.c $(top_srcdir)/intl/libgettext.h $(COMPILE) $(srcdir)/cat-id-tbl.c dvi info tags TAGS ID: mostlyclean: rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp rm -f *.o $(GMOFILES) clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f $(GMOFILES) cat-id-tbl.c stamp-cat-id distdir = $(top_srcdir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: update-po $(DISTFILES) dists="$(DISTFILES)"; \ for file in $$dists; do \ ln $(srcdir)/$$file $(distdir) 2> /dev/null \ || cp -p $(srcdir)/$$file $(distdir); \ done update-po: Makefile $(MAKE) $(srcdir)/$(PACKAGE).pot PATH=`pwd`/../src:$$PATH; \ cd $(srcdir); \ catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ mv $$lang.po $$lang.old.po; \ echo "$$lang:"; \ if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \ rm -f $$lang.old.po; \ else \ echo "msgmerge for $$cat failed!"; \ rm -f $$lang.po; \ mv $$lang.old.po $$lang.po; \ fi; \ done Makefile: Makefile.in.in $(top_builddir)/config.status cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/po/pg/cat-id-tbl.c0000664000175000017500000000000012140771457013336 00000000000000lgeneral-1.3.1/po/pg/en.gmo0000664000175000017500000000063212643745103012370 00000000000000Þ•,<PQ5Z BidefeldProject-Id-Version: pg POT-Creation-Date: 2005-12-28 20:37+0000 PO-Revision-Date: 2005-11-29 22:39+0100 Last-Translator: Leo Savernik Language-Team: Leo Savernik Language: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8-bit Bielefeldlgeneral-1.3.1/po/pg/en.po0000664000175000017500000042741412643745103012237 00000000000000# English translation of domain pg. # Copyright (C) 2005 Leo Savernik # Leo Savernik , 2005. # # msgid "" msgstr "" "Project-Id-Version: pg\n" "POT-Creation-Date: 2005-12-28 20:37+0000\n" "PO-Revision-Date: 2005-11-29 22:39+0100\n" "Last-Translator: Leo Savernik \n" "Language-Team: Leo Savernik \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #. campaigns/PG:251 msgid "" "Although you managed to capture and destroy Stalingrad, shortages in " "supplies, and winter weather have exhausted our troops. This allowed the " "Russians to cut off large parts of the 6th Army in Stalingrad and annihilate " "them, and drive back the Eastern front." msgstr "" #. maps/pg/map15:7 msgid "Conde-sur-Noireau" msgstr "" #. campaigns/PG:285 msgid "1st October 1942" msgstr "" #. maps/pg/map21:7 msgid "Makarska" msgstr "" #. maps/pg/map24:7 msgid "Mirgorod" msgstr "" #. maps/pg/map03:7 msgid "Namsos" msgstr "" #. maps/pg/map17:7 msgid "Trois-Ponts" msgstr "" #. units/pg.udb:2248 msgid "sIG II" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Thorin" msgstr "" #. maps/pg/map03:7 maps/pg/map06:7 maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 maps/pg/map10:7 ... msgid "Mountain" msgstr "" #. maps/pg/map18:7 msgid "Elbeuf" msgstr "" #. units/pg.udb:11433 msgid "FFR 57mm ATG" msgstr "" #. campaigns/PG:47 msgid "" "Despite your heroic efforts, Norwegian and English resistence was too strong " "to clean the territory from enemy influence. As the state of affairs is " "heating up on the Western border, we had to retract all forces from Noway, " "and divert you there." msgstr "" #. campaigns/PG:649 msgid "" "You have achieved a minor victory for the german Reich, Commander! Well done." msgstr "" #. campaigns/PG:504 msgid "" "Congratulations on your outstanding and brave counter-attack. Yet, bombing " "raids against our supply lines, and Allied reinforcements forced us to " "eventually abandon the Arnhem area, and to pull back behind the Rhine." msgstr "" #. maps/pg/map13:7 msgid "Catanzaro" msgstr "" #. campaigns/PG:233 msgid "" "Excellent! By taking Sevastopol and the Krim peninsula early, we could " "annihilate the Russian Black Sea fleet. There will be no more interference " "on our ongoing advance to the East." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Essen" msgstr "" #. maps/pg/map14:7 msgid "Spoleto" msgstr "" #. units/pg.udb:94 msgid "Submarine" msgstr "" #. maps/pg/map03:7 msgid "Honefoss" msgstr "" #. units/pg.udb:4432 msgid "AD Mk II Fort" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Salzburg" msgstr "" #. maps/pg/map24:7 msgid "Berezna" msgstr "" #. units/pg.udb:5945 msgid "GB AEC III" msgstr "" #. campaigns/PG:368 msgid "" "Herr General, you fared excellent! Russia has signed a peace treaty, and we " "can fully throw our forces against the Allied." msgstr "" #. maps/pg/map26:7 msgid "Alma River" msgstr "" #. campaigns/PG:2 msgid "Nazi Germany starts World War II, attempting to seize the world." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Rostock" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 msgid "Ozorkow" msgstr "" #. maps/pg/map15:7 msgid "Trouville" msgstr "" #. maps/pg/map16:7 msgid "Rhone River" msgstr "" #. maps/pg/map19:7 msgid "Best" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Chartres" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Newbury" msgstr "" #. maps/pg/map05:7 msgid "Vichy" msgstr "" #. units/pg.udb:7849 msgid "ST 45mm ATG" msgstr "" #. maps/pg/map14:7 msgid "Caserta" msgstr "" #. units/pg.udb:3452 msgid "PO Cavalry" msgstr "" #. maps/pg/map18:7 msgid "Chateaudun" msgstr "" #. maps/pg/map29:7 msgid "Konstantinovka" msgstr "" #. maps/pg/map36:7 msgid "Brandywine" msgstr "" #. maps/pg/map24:7 msgid "Smela" msgstr "" #. maps/pg/map19:7 msgid "Wyler" msgstr "" #. units/pg.udb:9389 msgid "Bulgarian Inf" msgstr "" #. scenarios/pg/Barbarossa:3 msgid "" "June 22, 1941: Germany launches a surprise attack on its ally, the Soviet " "Union." msgstr "" #. nations/pg.ndb:20 msgid "Luxemburg" msgstr "" #. maps/pg/map17:7 msgid "Saar River" msgstr "" #. maps/pg/map17:7 msgid "Gembloux" msgstr "" #. units/pg.udb:9977 msgid "US B32 Dom" msgstr "" #. units/pg.udb:4544 msgid "LC Infantry" msgstr "" #. maps/pg/map14:7 msgid "Liri River" msgstr "" #. maps/pg/map13:7 msgid "Cosenza" msgstr "" #. maps/pg/map29:7 msgid "Valuyki" msgstr "" #. maps/pg/map17:7 msgid "Elsenborn" msgstr "" #. maps/pg/map24:7 msgid "Belaya Tserkov" msgstr "" #. maps/pg/map26:7 msgid "Lyubimuka" msgstr "" #. maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 maps/pg/map07:7 maps/pg/map08:7 ... msgid "Ocean" msgstr "" #. scenarios/pg/Torch:3 msgid "Nov 8, 1942: Americans face the veterans of the Afrika Korps." msgstr "" #. maps/pg/map29:7 msgid "Kupyansk" msgstr "" #. units/pg.udb:8157 msgid "AF Destroyer" msgstr "" #. maps/pg/map12:7 msgid "Djidjelli" msgstr "" #. maps/pg/map17:7 msgid "St. Trond" msgstr "" #. maps/pg/map24:7 msgid "Gomel" msgstr "" #. maps/pg/map17:7 msgid "Ciney" msgstr "" #. maps/pg/map17:7 msgid "Dyle River" msgstr "" #. maps/pg/map21:7 msgid "Kutina" msgstr "" #. units/pg.udb:9081 msgid "IT 75mm SPAD" msgstr "" #. maps/pg/map08:7 msgid "Al Maffraq" msgstr "" #. maps/pg/map17:7 msgid "Dasburg" msgstr "" #. maps/pg/map21:7 msgid "Gusnie" msgstr "" #. campaigns/PG:650 msgid "" "You have achieved a major victory for the german Reich, Commander! Excellent!" msgstr "" #. campaigns/PG:45 msgid "" "Excellent, Herr General! Your quick taking of Norway has enabled us to expel " "the English forces from Norway and station our fleet there. Our supply lines " "should be safe. You have been awarded command over troops at the Western " "border." msgstr "" #. units/pg.udb:5021 msgid "GB Stir MkI" msgstr "" #. units/pg.udb:1380 msgid "PzIIIJ" msgstr "" #. campaigns/PG:24 msgid "" "You managed to break resistence in time before the Allies could react. The " "gates to Warsaw are now wide open." msgstr "" #. units/pg.udb:6813 msgid "ST Il-2" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kattowitz" msgstr "" #. units/pg.udb:3732 msgid "FFR M5" msgstr "" #. maps/pg/map13:7 maps/pg/map14:7 msgid "Cassino" msgstr "" #. scenarios/pg/Kiev:3 msgid "" "August 23, 1941: The Wehrmacht attempts to pocket and destroy Soviet forces " "defending Kiev." msgstr "" #. units/pg.udb:5357 msgid "GB Crom VI" msgstr "" #. maps/pg/map16:7 msgid "Monaco" msgstr "" #. campaigns/PG:95 msgid "" "Your failure to conquer England had given the enemy a chance to build up " "resistence and assemble a naval fleet of formidable strength crippling our " "supply lines. Thus, our expeditionary forces were severely decimated, " "forcing us to sign an unfavorable peace treaty." msgstr "" #. maps/pg/map16:7 msgid "Cannes" msgstr "" #. campaigns/PG:402 msgid "" "The mission was a disaster. Not sustaining allowed the Allies to invade " "Germany from the South. Thanks to your earlier victory over Russia, quickly " "established war industries allowed us to fend off the capturing of Germany, " "allowing us to negotiate a peace treaty at minor disadvantages." msgstr "" #. maps/pg/map26:7 msgid "Belbok" msgstr "" #. units/pg.udb:5133 msgid "GB Matilda II" msgstr "" #. maps/pg/map29:7 msgid "Trostyanets" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 ... msgid "Forest" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Dniepr River" msgstr "" #. campaigns/PG:488 msgid "" "Despite your initial success in the Ardennes, the Allies denied our peace " "offering. With reinforcements arrived, they managed to drive us back to the " "limits of the Reich." msgstr "" #. maps/pg/map29:7 maps/pg/map30:7 msgid "Belgorod" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Voroshilovgrad" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Nelidova" msgstr "" #. maps/pg/map04:7 maps/pg/map17:7 msgid "Brussels" msgstr "" #. maps/pg/map16:7 msgid "Aix-en-Provence" msgstr "" #. maps/pg/map16:7 msgid "Grand Rhone River" msgstr "" #. campaigns/PG:275 campaigns/PG:331 campaigns/PG:418 msgid "Byelorussia" msgstr "" #. units/pg.udb:3284 msgid "PO PZL P24g" msgstr "" #. units/pg.udb:2696 msgid "3.7 PaK35/36" msgstr "" #. units/pg.udb:103 msgid "Aircraft Carrier" msgstr "" #. maps/pg/map24:7 msgid "Petrikov" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "El Agheila" msgstr "" #. maps/pg/map26:7 msgid "Nikoaevka" msgstr "" #. units/pg.udb:106 msgid "Land Transport" msgstr "" #. maps/pg/map19:7 msgid "Grave" msgstr "" #. units/pg.udb:1660 msgid "Tiger I" msgstr "" #. maps/pg/map05:7 msgid "Cholet" msgstr "" #. units/pg.udb:9361 msgid "AF Partisans" msgstr "" #. units/pg.udb:5973 msgid "GB Ram Kg" msgstr "" #. maps/pg/map24:7 msgid "Kalinkovich" msgstr "" #. maps/pg/map04:7 maps/pg/map05:7 maps/pg/map18:7 msgid "Abbeville" msgstr "" #. maps/pg/map13:7 msgid "Enna" msgstr "" #. campaigns/PG:514 msgid "" "You are now in charge of the Africa Corps to aid Italian troops in their " "battle against English mediterranean dependencies in North Africa. " "Strategically, High Commands attempts to take Egypt, and then to proceed " "towards Persia to open up a new Southern front into Russia. You have to take " "all objectives until the 27th of June at the latest, but to allow us to " "garrison sufficiently against counter-attacks, you should finish the mission " "earlier." msgstr "" #. maps/pg/map13:7 msgid "Caltagirone" msgstr "" #. units/pg.udb:7037 msgid "ST BT-5" msgstr "" #. maps/pg/map29:7 msgid "Izyum" msgstr "" #. units/pg.udb:10817 msgid "US Para 41" msgstr "" #. maps/pg/map29:7 msgid "Korocha" msgstr "" #. campaigns/PG:628 msgid "" "You bravely fended off the Russian onslaught from the Reich's limits. " "Combined with your earlier victory over England allowed us to return to the " "pre-war status-quo in the East." msgstr "" #. campaigns/PG:522 msgid "" "General staff is pleased with your success, and offers you the opportunity " "to lead the pocket operations around Kiev.##Herr General, would you like to " "stay in the desert, or participate in the Eastern theater?" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Salsk" msgstr "" #. units/pg.udb:2836 msgid "7.5 leFk 16nA" msgstr "" #. units/pg.udb:1800 msgid "StuGIIIG" msgstr "" #. campaigns/PG:528 msgid "26th May 1942" msgstr "" #. maps/pg/map33:7 msgid "Mor" msgstr "" #. maps/pg/map18:7 msgid "Evreux" msgstr "" #. scenarios/pg/Crete:2 msgid "CRETE" msgstr "" #. maps/pg/map36:7 msgid "Capitol Heights" msgstr "" #. units/pg.udb:9165 msgid "IT Fiat Truck" msgstr "" #. scenarios/pg/Washington:3 msgid "June 1, 1945: Yesterday Europe. Today America?" msgstr "" #. scenarios/pg/Kharkov:2 msgid "KHARKOV" msgstr "" #. maps/pg/map16:7 msgid "Arles" msgstr "" #. maps/pg/map19:7 msgid "Ijssel River" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Zwickau" msgstr "" #. maps/pg/map08:7 msgid "An Nabk" msgstr "" #. maps/pg/map16:7 msgid "Avignon" msgstr "" #. maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Warta River" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Rouen" msgstr "" #. maps/pg/map04:7 msgid "Hirshon" msgstr "" #. maps/pg/map17:7 msgid "Maubege" msgstr "" #. units/pg.udb:9641 msgid "US P51H Mustg" msgstr "" #. campaigns/PG:153 msgid "Let us battle the Soviet forces around Kiev." msgstr "" #. units/pg.udb:10257 msgid "US M4A3 (105)" msgstr "" #. units/pg.udb:4264 msgid "NOR F-DXXIII" msgstr "" #. campaigns/PG:624 msgid "" "We are now facing a massive force in the East invading German soil. Your " "order is to hold Berlin and at least five other objectives to prevent " "further detriment to the Reich." msgstr "" #. maps/pg/map29:7 msgid "Samara River" msgstr "" #. campaigns/PG:206 msgid "" "Moscow, capital and industrial, and logistical center of Russia, is the " "ultimate objective you have to strive for on the Eastern front. You have to " "capture Moscow and all other objectives by the 4th of December at the " "latest. Yet to prevent autumn weather to slow down our advance, you should " "finish your mission several weeks earlier." msgstr "" #. maps/pg.tdb:32 msgid "Snowing(Mud)" msgstr "" #. campaigns/PG:179 msgid "" "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have " "achieved what Napoleon only dreamed of. All of Russia has been put under " "German administration, and we have already begun exploiting its vast " "resources. Your decision to take the early route towards Moscow was right, " "and therefore you get awarded the highest order medal of the Reich, the " "Knight's Cross with Oak Leaves and Swords." msgstr "" #. units/pg.udb:9529 msgid "US P38 Ltng" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Ulm" msgstr "" #. maps/pg/map24:7 msgid "Novozybkov" msgstr "" #. maps/pg/map17:7 msgid "Saarburg" msgstr "" #. units/pg.udb:1352 msgid "PzIIIH" msgstr "" #. units/pg.udb:2808 msgid "PzIVF2" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Saint Lo" msgstr "" #. maps/pg/map24:7 msgid "Semenovka" msgstr "" #. campaigns/PG:569 msgid "10th July 1943" msgstr "" #. units/pg.udb:9417 msgid "Hungarian Inf" msgstr "" #. maps/pg/map36:7 msgid "Centreville" msgstr "" #. maps/pg/map30:7 msgid "Kromy" msgstr "" #. maps/pg/map12:7 msgid "Constantine" msgstr "" #. campaigns/PG:563 msgid "" "Your leadership skills are currently asked for at two places. You may choose " "to lead the upcoming Summer offensive in Russia against the pocket of Kursk, " "or to defend Italy against the expected invasion of allied troops.##Which " "battle do you want to participate in?" msgstr "" #. campaigns/PG:109 msgid "" "The quick and decisive blow you delivered to both Yugoslavia and Greece " "enabled High Command to prepare an airborne invasion of Crete. You have " "served the country well, and are awarded command over the operation." msgstr "" #. units/pg.udb:708 msgid "JU87D" msgstr "" #. maps/pg/map26:7 msgid "Kamyshly" msgstr "" #. maps/pg/map24:7 msgid "Gradizhisk" msgstr "" #. units/pg.udb:2500 msgid "Opel 6700" msgstr "" #. maps/pg/map36:7 msgid "Chester River" msgstr "" #. campaigns/PG:111 msgid "" "With Yugoslavia and Greece partially undefeated, we had to spare additional " "troops for the defence lines that will be missing on the Russian front." msgstr "" #. units/pg.udb:11293 msgid "US M20 LAC" msgstr "" #. scenarios/pg/LowCountries:3 msgid "" "May 10, 1940: Flanking the heavy fortifications of the Maginot Line, the " "Germans invade France through Belgium, Luxembourg, and the Netherlands." msgstr "" #. maps/pg/map15:7 msgid "St. Pierre" msgstr "" #. maps/pg/map15:7 msgid "Mortain" msgstr "" #. campaigns/PG:210 msgid "" "Your initial capture of Moscow let arise hope that Russia would surrender. " "Unfortunately, fresh Siberian reserves started a counter-attack and expelled " "our exhausted and worn down spearheads out of the capital. While we managed " "to establish a stable front line again, we could not attempt another advance " "in 1941." msgstr "" #. maps/pg/map03:7 msgid "Gol" msgstr "" #. maps/pg/map15:7 msgid "La Ferte-Mace" msgstr "" #. maps/pg/map36:7 msgid "Arlington" msgstr "" #. maps/pg/map24:7 msgid "Berdichev" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Roslavl" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Saratov" msgstr "" #. scenarios/pg/ElAlamein:3 msgid "May 26, 1942: Axis attempts to crush the Allied forces in North Africa." msgstr "" #. campaigns/PG:302 msgid "11th February 1943" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Vladimirovka" msgstr "" #. units/pg.udb:4348 msgid "AD Mk I SP" msgstr "" #. units/pg.udb:512 msgid "BF110g" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Nottingham" msgstr "" #. maps/pg/map08:7 msgid "Baghdad" msgstr "" #. maps/pg/map21:7 msgid "Dubrovnik" msgstr "" #. units/pg.udb:8129 msgid "AF LtCruiser" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 ... msgid "Clear" msgstr "" #. maps/pg/map15:7 msgid "Isigny" msgstr "" #. units/pg.udb:8045 msgid "AF Battleship" msgstr "" #. campaigns/PG:120 msgid "" "Excellent! Despite heavy resistence, the suppremacy over the Mediterranean " "Sea is ours. Nothing can stop our operations in Russia now." msgstr "" #. maps/pg/map08:7 msgid "Bierut" msgstr "" #. units/pg.udb:3116 msgid "43 Wehr HW" msgstr "" #. campaigns/PG:257 campaigns/PG:263 msgid "9th October 1943" msgstr "" #. maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Oder River" msgstr "" #. units/pg.udb:117 msgid "BF109e" msgstr "" #. maps/pg/map17:7 msgid "Waavre" msgstr "" #. maps/pg/map36:7 msgid "Chevy Chase" msgstr "" #. maps/pg/map36:7 msgid "College Park" msgstr "" #. units/pg.udb:764 msgid "DO17z" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Gleiwitz" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Stralsund" msgstr "" #. maps/pg/map19:7 msgid "Ede" msgstr "" #. units/pg.udb:6281 msgid "GB 5.5 Inches Gun" msgstr "" #. nations/pg.ndb:12 msgid "Belgia" msgstr "" #. units/pg.udb:4937 msgid "GB Blen MkIV" msgstr "" #. maps/pg/map05:7 msgid "Reims" msgstr "" #. maps/pg/map05:7 msgid "Thierry" msgstr "" #. units/pg.udb:10761 msgid "US Inf HW 41" msgstr "" #. scenarios/pg/Anvil:299 scenarios/pg/Anzio:329 scenarios/pg/Ardennes:491 scenarios/pg/Balkans:557 ... msgid "Allies" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Cracow" msgstr "" #. units/pg.udb:1072 msgid "PzIIF" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Frankfurt AO" msgstr "" #. nations/pg.ndb:76 msgid "Rumania" msgstr "" #. maps/pg/map17:7 msgid "Verviers" msgstr "" #. maps/pg/map17:7 msgid "Dinont" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Peterborough" msgstr "" #. maps/pg/map03:7 msgid "Elverum" msgstr "" #. scenarios/pg/France:3 msgid "" "June 5, 1940: With the French outflanked the Germans drive into France and " "attempt to capture Paris." msgstr "" #. maps/pg/map14:7 msgid "Sacco River" msgstr "" #. units/pg.udb:3816 msgid "FR Amiot 143" msgstr "" #. units/pg.udb:3200 msgid "PSW 234/2-8r" msgstr "" #. maps/pg/map16:7 msgid "Valence" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Saarbrucken" msgstr "" #. units/pg.udb:9613 msgid "US P51D Mustg" msgstr "" #. maps/pg/map13:7 msgid "Termini" msgstr "" #. units/pg.udb:7653 msgid "ST ISU-152 AT" msgstr "" #. maps/pg/map21:7 msgid "Elbassen" msgstr "" #. units/pg.udb:6561 msgid "ST La-3" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Okehampton" msgstr "" #. units/pg.udb:3564 msgid "AF 37mm ATG" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Maikop" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Vienna" msgstr "" #. maps/pg/map33:7 msgid "Simontornya" msgstr "" #. scenarios/pg/Norway:2 msgid "NORWAY" msgstr "" #. units/pg.udb:7177 msgid "ST T-34/43" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Donets" msgstr "" #. maps/pg/map03:7 msgid "City" msgstr "" #. units/pg.udb:10649 msgid "US M26 " msgstr "" #. maps/pg/map15:7 msgid "Thiberville" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 msgid "Bzura River" msgstr "" #. campaigns/PG:217 maps/pg/map07:7 maps/pg/map09:7 msgid "El Alamein" msgstr "" #. maps/pg/map12:7 msgid "British Camp" msgstr "" #. maps/pg/map21:7 msgid "Athens" msgstr "" #. maps/pg/map17:7 msgid "Aarshot" msgstr "" #. nations/pg.ndb:28 msgid "Finnland" msgstr "" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Taranto" msgstr "" #. maps/pg/map17:7 msgid "Monschau" msgstr "" #. units/pg.udb:5441 msgid "GB Comet" msgstr "" #. maps/pg/map04:7 maps/pg/map17:7 msgid "Namur" msgstr "" #. units/pg.udb:4712 msgid "GB Hur IID" msgstr "" #. units/pg.udb:540 msgid "ME210c" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Rzhev" msgstr "" #. scenarios/pg/Sealion43:2 msgid "SEALION (43)" msgstr "" #. units/pg.udb:3340 msgid "PO PZL P37b" msgstr "" #. maps/pg/map13:7 msgid "Sapry" msgstr "" #. maps/pg/map36:7 msgid "Wheaton" msgstr "" #. units/pg.udb:8773 msgid "IT AB-40" msgstr "" #. maps/pg/map30:7 msgid "Prokhorovka" msgstr "" #. units/pg.udb:736 msgid "Ju188a" msgstr "" #. maps/pg.tdb:12 msgid "Raining(Dry)" msgstr "" #. maps/pg/map16:7 msgid "Carpentras" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kirov" msgstr "" #. maps/pg/map03:7 msgid "Arendal" msgstr "" #. units/pg.udb:11153 msgid "US 8 Inches Gun" msgstr "" #. units/pg.udb:6001 msgid "GB Bren Ca" msgstr "" #. campaigns/PG:648 msgid "We have only achieved a draw with the Allies." msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kaluga" msgstr "" #. maps/pg/map36:7 msgid "Crestwood" msgstr "" #. units/pg.udb:22 units/pg.udb:51 msgid "Naval" msgstr "" #. maps/pg/map21:7 msgid "Sarajevo" msgstr "" #. units/pg.udb:1296 msgid "PzIIIE" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Cardigan" msgstr "" #. maps/pg/map14:7 msgid "Civitavecchia" msgstr "" #. units/pg.udb:652 msgid "JU87B" msgstr "" #. maps/pg/map26:7 msgid "Yukharina" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Ilinka" msgstr "" #. units/pg.udb:904 msgid "Ju52g5e" msgstr "" #. nations/pg.ndb:80 msgid "Spain" msgstr "" #. campaigns/PG:370 msgid "" "The russian offensive was too strong to overcome which forced us to retreat " "to the limits of the Reich." msgstr "" #. maps/pg/map17:7 msgid "Clervaux" msgstr "" #. units/pg.udb:61 msgid "Infantry" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Lida" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Baskunchak" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Carentan" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Norwich" msgstr "" #. maps/pg/map29:7 msgid "Svatovo" msgstr "" #. units/pg.udb:5721 msgid "GB Archer" msgstr "" #. maps/pg/map14:7 msgid "Avezzano" msgstr "" #. units/pg.udb:5553 msgid "GB M5 Stuart" msgstr "" #. maps/pg/map15:7 msgid "Livarot" msgstr "" #. units/pg.udb:6085 msgid "GB HW Inf 39" msgstr "" #. maps/pg/map05:7 msgid "Chateauroux" msgstr "" #. campaigns/PG:467 msgid "" "You sustained long enough to allow High Command to build up defenses in the " "rear." msgstr "" #. maps/pg/map13:7 msgid "Gela" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Konigsberg" msgstr "" #. units/pg.udb:8941 msgid "IT Sem M-42M" msgstr "" #. units/pg.udb:11517 msgid "FFR M8 LAC" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Brest" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Benghazi" msgstr "" #. units/pg.udb:10369 msgid "US M4A3(76)W" msgstr "" #. maps/pg/map13:7 msgid "Pachwo" msgstr "" #. units/pg.udb:10929 msgid "US Eng 43" msgstr "" #. maps/pg/map05:7 maps/pg/map15:7 maps/pg/map18:7 msgid "Argentan" msgstr "" #. maps/pg/map29:7 msgid "Debaltsevo" msgstr "" #. maps/pg/map17:7 msgid "Bitburg" msgstr "" #. maps/pg/map04:7 msgid "Sedan" msgstr "" #. units/pg.udb:4488 msgid "LC PZLP24" msgstr "" #. maps/pg/map03:7 msgid "Trondheim" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Augsburg" msgstr "" #. units/pg.udb:5525 msgid "GB Sh Firefly" msgstr "" #. maps/pg/map14:7 msgid "Terracina" msgstr "" #. maps/pg/map08:7 maps/pg/map16:7 msgid "German Camp" msgstr "" #. maps/pg/map29:7 msgid "Krasnopavlovka" msgstr "" #. maps/pg/map14:7 msgid "Isernia" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Derbent" msgstr "" #. maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Radom" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Brandenburg" msgstr "" #. maps/pg/map15:7 msgid "Port Facility" msgstr "" #. units/pg.udb:10117 msgid "US M3 " msgstr "" #. units/pg.udb:9249 msgid "IT 75mm Gun" msgstr "" #. maps/pg/map29:7 msgid "Vorskla River" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Weiland" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Puttusk" msgstr "" #. maps/pg/map08:7 msgid "Jerusalem" msgstr "" #. maps/pg/map18:7 msgid "Chateau Gontier" msgstr "" #. units/pg.udb:4068 msgid "FR 25mm ATG" msgstr "" #. campaigns/PG:406 msgid "22nd January 1944" msgstr "" #. units/pg.udb:11237 msgid "US 90mm AD" msgstr "" #. maps/pg/map18:7 msgid "Fontainebleau" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Munster" msgstr "" #. nations/pg.ndb:32 msgid "France" msgstr "" #. maps/pg/map21:7 msgid "Sisak" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Astrakhan" msgstr "" #. nations/pg.ndb:88 msgid "Sweden" msgstr "" #. units/pg.udb:43 msgid "Towed" msgstr "" #. maps/pg/map14:7 msgid "Turdino River" msgstr "" #. units/pg.udb:8017 msgid "AF Carrier" msgstr "" #. campaigns/PG:477 msgid "" "Herr General, your outstanding performance left a lasting impression to the " "Allied leader, enabling our Administration to sign a favourable peace " "treaty. Combined with your earlier victory over the Soviet Union, you have " "ended the war, and are herewith promoted to Generalfeldmarschall." msgstr "" #. maps/pg/map18:7 msgid "Pontoise" msgstr "" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Reggio" msgstr "" #. maps/pg/map19:7 msgid "Oosterbeek" msgstr "" #. units/pg.udb:7317 msgid "ST SU-85" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Stargar" msgstr "" #. units/pg.udb:1716 msgid "StuGIIIb" msgstr "" #. maps/pg/map29:7 msgid "Slavyansk" msgstr "" #. units/pg.udb:79 msgid "Air-Defense" msgstr "" #. maps/pg/map03:7 msgid "Halden" msgstr "" #. maps/pg/map04:7 msgid "St. Quentin" msgstr "" #. maps/pg/map19:7 msgid "Uden" msgstr "" #. maps/pg/map19:7 msgid "Nijmegen" msgstr "" #. maps/pg/map22:7 msgid "Neapolis" msgstr "" #. campaigns/PG:329 msgid "" "In this situation, High Command offers you to contribute your experience in " "another theater, Italy.##Herr General, do you want to continue fighting in " "Russia, or do you like to be transferred to Anzio?" msgstr "" #. maps/pg/map13:7 msgid "Belice River" msgstr "" #. maps/pg/map13:7 msgid "Marsala" msgstr "" #. maps/pg/map12:7 msgid "Biskra" msgstr "" #. maps/pg/map08:7 msgid "Amman" msgstr "" #. maps/pg/map21:7 msgid "Pula" msgstr "" #. maps/pg/map17:7 msgid "Laroche" msgstr "" #. campaigns/PG:85 msgid "Balkans" msgstr "" #. maps/pg/map15:7 msgid "Touques River" msgstr "" #. maps/pg/map16:7 msgid "Asse River" msgstr "" #. maps/pg/map12:7 msgid "Aflou" msgstr "" #. maps/pg/map21:7 msgid "Pehcevo" msgstr "" #. units/pg.udb:4600 msgid "FR HFII" msgstr "" #. scenarios/pg/Anvil:365 scenarios/pg/Anzio:378 scenarios/pg/Ardennes:549 scenarios/pg/Balkans:599 ... msgid "Axis Minor Victory" msgstr "" #. maps/pg/map36:7 msgid "Anacostia River" msgstr "" #. maps/pg/map33:7 msgid "Kisber" msgstr "" #. maps/pg/map29:7 msgid "Kharkov" msgstr "" #. maps/pg/map36:7 msgid "King George" msgstr "" #. units/pg.udb:6841 msgid "ST Il-2M3" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Marjupol" msgstr "" #. maps/pg/map05:7 msgid "Chalons" msgstr "" #. campaigns/PG:168 msgid "" "After your stunning victory over Soviet resistence, we expect Russia's " "reserves of men an material to be depleted." msgstr "" #. maps/pg/map30:7 msgid "Sumy" msgstr "" #. units/pg.udb:4124 msgid "FR 75mm ATG" msgstr "" #. maps/pg/map24:7 msgid "Talnoye" msgstr "" #. scenarios/pg/Cobra:2 msgid "COBRA" msgstr "" #. scenarios/pg/Kharkov:3 msgid "" "February 11, 1943: The Germans race to capture Kharkov and crush the Soviet " "winter offensive." msgstr "" #. maps/pg/map15:7 msgid "Arromanches" msgstr "" #. units/pg.udb:9445 msgid "Rumanian Inf" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Volga River" msgstr "" #. scenarios/pg/Byelorussia:3 msgid "June 22, 1944: The Soviet thrust to destroy Army Group Center." msgstr "" #. maps/pg/map04:7 msgid "Leie" msgstr "" #. campaigns/PG:429 msgid "" "In Normandy, the expected landings of Allied forces have commenced. The is " "the biggest invasion even seen by man, and you must stop it. You have to " "hold all your objectives to inflict a defeat to the Allied operations." msgstr "" #. units/pg.udb:3844 msgid "FR Ch Lr H35" msgstr "" #. maps/pg/map21:7 msgid "Trun" msgstr "" #. campaigns/PG:169 msgid "" "After your victory over Soviet resistence, we expect Russia's reserves of " "men an material to be depleted." msgstr "" #. campaigns/PG:78 msgid "" "Congratulations for conquering France and for bringing an overwhelming " "victory to the Reich. France has surrendered, and its dependencies will be " "put under German protectorate." msgstr "" #. units/pg.udb:7905 msgid "ST 76mm ATG" msgstr "" #. campaigns/PG:105 msgid "6th April 1941" msgstr "" #. units/pg.udb:960 msgid "PzIA" msgstr "" #. maps/pg/map17:7 msgid "Neufchateau" msgstr "" #. units/pg.udb:6953 msgid "ST Z25mm SPAA" msgstr "" #. units/pg.udb:6365 msgid "GB 20mm SPAA" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Liverpool" msgstr "" #. maps/pg/map17:7 msgid "Arlon" msgstr "" #. campaigns/PG:35 msgid "" "Congratulations, you have won the war against Poland, Herr General! You " "besieged and captured all objectives before the Soviet Union was able to " "catch up. Your forces have been diverted to the Western border to guard " "against French and English aggressions." msgstr "" #. units/pg.udb:3788 msgid "FR Bloch 174" msgstr "" #. maps/pg/map33:7 msgid "Szentendre" msgstr "" #. units/pg.udb:2556 msgid "SPW 251/1" msgstr "" #. maps/pg.tdb:2336 msgid "Harbor" msgstr "" #. units/pg.udb:31 msgid "Halftracked" msgstr "" #. units/pg.udb:9221 msgid "IT Bersglri " msgstr "" #. units/pg.udb:7065 msgid "ST BT-7" msgstr "" #. maps/pg/map13:7 maps/pg/map14:7 msgid "Garigliano River" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Podolsk" msgstr "" #. maps/pg/map21:7 msgid "Levadnia" msgstr "" #. maps/pg/map14:7 msgid "Terni" msgstr "" #. maps/pg/map26:7 msgid "Kadykovka" msgstr "" #. maps/pg/map19:7 msgid "Hussen" msgstr "" #. units/pg.udb:9277 msgid "IT 105mm Gun" msgstr "" #. maps/pg/map14:7 msgid "Turano River" msgstr "" #. units/pg.udb:64 msgid "Tank" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Weser River" msgstr "" #. units/pg.udb:7709 msgid "ST Truck" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Leipzig" msgstr "" #. scenarios/pg/Kursk:2 msgid "KURSK" msgstr "" #. maps/pg/map36:7 msgid "Zekiah Swamp Run" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Armavir" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Vitebsk" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 maps/pg/map22:7 maps/pg/map36:7 msgid "Alexandria" msgstr "" #. maps/pg/map15:7 msgid "Granville" msgstr "" #. maps/pg/map26:7 msgid "Cherkez Kermen" msgstr "" #. maps/pg/map04:7 msgid "Sambre" msgstr "" #. scenarios/pg/LowCountries:2 msgid "LOW COUNTRIES" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Avranches" msgstr "" #. campaigns/PG:614 msgid "" "This is the last stand. You have to fight against tremendous odds at either " "side of the front. Hold Berlin at any rate. Losing is not an option." msgstr "" #. units/pg.udb:91 msgid "Level Bomber" msgstr "" #. units/pg.udb:6309 msgid "GB 6 Inches Gun" msgstr "" #. units/pg.udb:371 msgid "HE162" msgstr "" #. units/pg.udb:6337 msgid "GB 7.2 Inches Gun" msgstr "" #. units/pg.udb:2976 msgid "3.7 FlaK36" msgstr "" #. maps/pg/map21:7 msgid "Agrinion" msgstr "" #. units/pg.udb:4516 msgid "LC F-DXX1" msgstr "" #. maps/pg/map19:7 msgid "Driel" msgstr "" #. units/pg.udb:8549 msgid "IT Re2005/S" msgstr "" #. maps/pg/map21:7 msgid "Bar" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Mozhaysk" msgstr "" #. maps/pg/map33:7 msgid "Budaors" msgstr "" #. campaigns/PG:306 msgid "" "With Kharkov retaken, and the Soviet strike force terminally beaten, we were " "able to thrust into the steppe directly towards Moscow." msgstr "" #. units/pg.udb:4740 msgid "GB Spit VB" msgstr "" #. units/pg.udb:9193 msgid "IT Infantry" msgstr "" #. units/pg.udb:7681 msgid "ST Para" msgstr "" #. units/pg.udb:1492 msgid "PzIVG" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Cardiff" msgstr "" #. campaigns/PG:325 msgid "" "While you were running against stiff resistence, the Soviets launched a " "counter-attack against the Germain pocket around Orel. Therefore, we had to " "retreat and divert divisions to aid against this massive attack. We have " "lost the initiative on the Eastern front and cannot allow for another attack " "in this year." msgstr "" #. units/pg.udb:5217 msgid "GB Crdr I" msgstr "" #. units/pg.udb:5273 msgid "GB Crdr III" msgstr "" #. campaigns/PG:647 msgid "" "You have totally failed us, Commander! The german reich suffered a major " "defeat!" msgstr "" #. units/pg.udb:1128 msgid "Lynx" msgstr "" #. maps/pg/map36:7 msgid "Prince Frederick" msgstr "" #. maps/pg/map17:7 msgid "Sambre River" msgstr "" #. maps/pg/map21:7 msgid "Kragujevac" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Aleksin" msgstr "" #. units/pg.udb:2584 msgid "PSW 222/4r" msgstr "" #. maps/pg/map07:7 msgid "Mersa Matruh" msgstr "" #. units/pg.udb:1324 msgid "PzIIIG" msgstr "" #. maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Rhine River" msgstr "" #. units/pg.udb:70 msgid "Anti-Tank" msgstr "" #. campaigns/PG:246 msgid "25th June 1942" msgstr "" #. nations/pg.ndb:16 msgid "Bulgaria" msgstr "" #. maps/pg/map16:7 msgid "Arc River" msgstr "" #. units/pg.udb:100 msgid "Capital Ship" msgstr "" #. maps/pg/map19:7 msgid "Oss" msgstr "" #. units/pg.udb:8689 msgid "IT CA309" msgstr "" #. campaigns/PG:164 msgid "23rd August 1941" msgstr "" #. maps/pg/map15:7 msgid "Selune River" msgstr "" #. maps/pg/map29:7 msgid "Pereshchepino" msgstr "" #. units/pg.udb:484 msgid "BF110e" msgstr "" #. scenarios/pg/D-Day:3 msgid "June 6, 1944: Allies launch Operation Overlord... the Second Front." msgstr "" #. maps/pg/map12:7 msgid "Medjerda River" msgstr "" #. scenarios/pg/Berlin:2 msgid "BERLIN" msgstr "" #. maps/pg/map36:7 msgid "Chillum" msgstr "" #. campaigns/PG:165 msgid "" "There has risen an opportunity to terminally cripple Russian forces. Around " "Kiev we have encountered a large amount of Russian troops. Using blitzkrieg " "tactics to their fullest extent, you are ordered to pocket and annihilate " "Soviet resistence in Kiev and surrounding towns. In order to continue our " "advance towards moscow, it is imperative that you capture all of your " "objective by no later than the 20th of September." msgstr "" #. campaigns/PG:211 msgid "" "Not capturing Moscow in time gave the Russian adversaries plenty of " "opportunity to mobilise troops from Siberia and perform a counterattack. " "While we managed to establish a stable front line again, we could not " "attempt another advance in 1941." msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Mechili" msgstr "" #. campaigns/PG:570 msgid "" "The British and American forces have begun invading Sicily, our ill-defended " "entrance gate to Southern Europe. Your orders are to hold all objectives. If " "this is not feasible, hold at least two objectives to slow down the Allied " "advance." msgstr "" #. maps/pg/map18:7 msgid "Chaumont" msgstr "" #. maps/pg/map03:7 msgid "Andalsnes" msgstr "" #. units/pg.udb:9025 msgid "IT M14/41" msgstr "" #. maps/pg/map17:7 msgid "Ourthe River" msgstr "" #. maps/pg/map16:7 msgid "Barcellonette" msgstr "" #. scenarios/pg/Ardennes:2 msgid "ARDENNES" msgstr "" #. units/pg.udb:6169 msgid "GB 2 Pdr ATG" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Birmingham" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Stoke" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Amsterdam" msgstr "" #. maps/pg/map12:7 msgid "Djelfa" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Merthyr" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Buelgorod" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map30:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Orel" msgstr "" #. maps/pg/map13:7 msgid "Corigliano" msgstr "" #. campaigns/PG:320 msgid "" "Since the front lines have stabilised, there is a pocket of Russian " "defenders around Kursk. Our strategy is to break through Soviet defenses " "from the North and South, and cut off and terminate all adversaries. Be " "aware that the Soviets have no doubt about our intentions, and have prepared " "their defenses well. You must take Kursk at any rate. Taking all other " "objectives by no later than the 24th of July will enable High Command to " "prepare for another assault on Moscow in 1943." msgstr "" #. maps/pg/map33:7 msgid "Pusztaszabolcs" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Orne River" msgstr "" #. campaigns/PG:532 msgid "" "Excellent performance, Herr General! With the English expelled from Egypt, " "we could successfully prepare an invasion of England." msgstr "" #. units/pg.udb:11573 msgid "FPO M5 Stuart" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Nuremberg" msgstr "" #. maps/pg/map21:7 msgid "Larissa" msgstr "" #. units/pg.udb:5301 msgid "GB Crom IV" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Escarpment" msgstr "" #. campaigns/PG:627 msgid "" "Pushing back the Russian onslaught to the pre-war borders of the Reich gave " "us, combined with your earlier victory over England, a strong position to " "negotiate a favourable peace treaty." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bremerhaven" msgstr "" #. maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 maps/pg/map10:7 maps/pg/map28:7 maps/pg.tdb:2012 ... msgid "Desert" msgstr "" #. maps/pg/map04:7 msgid "Escout" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Mannheim" msgstr "" #. maps/pg/map17:7 msgid "Our River" msgstr "" #. units/pg.udb:3144 msgid "40 LuftW FJ" msgstr "" #. units/pg.udb:6141 msgid "GB Para 39" msgstr "" #. units/pg.udb:400 msgid "DO335" msgstr "" #. units/pg.udb:6113 msgid "GB Bridge Eng" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Mersa Brega" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Ryazan" msgstr "" #. maps/pg/map08:7 msgid "Al Kuwait" msgstr "" #. campaigns/PG:553 msgid "8th November 1942" msgstr "" #. campaigns/PG:152 msgid "We take the early route towards Moscow." msgstr "" #. maps/pg/map13:7 msgid "Alcamo" msgstr "" #. maps/pg/map29:7 msgid "Dnepropetrovsk" msgstr "" #. campaigns/PG:303 msgid "" "As a result of their winter offensive, Russian troops are spread thin in the " "area of Kharkov. This is an excellent opportunity to start a counter-attack, " "annihilate the Soviet strike forces, and retake Kharkov. If you take Kharkov " "and all other objectives by at least the 4th of March, we may continue our " "advance in 1943. To undertake the necessary preparations for an attack of " "Moscow, it is imperative that you finish your mission much earlier." msgstr "" #. units/pg.udb:11097 msgid "US 105mm Gun" msgstr "" #. units/pg.udb:10229 msgid "US M4A3" msgstr "" #. maps/pg/map36:7 msgid "Tacoma Park" msgstr "" #. scenarios/pg/Sealion43:3 msgid "June 15, 1943: Germany attempts to finish off England." msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Bristol" msgstr "" #. maps/pg/map33:7 msgid "Aba" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Vilna" msgstr "" #. scenarios/pg/Washington:2 msgid "WASHINGTON" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Voronezh" msgstr "" #. maps/pg/map18:7 msgid "Bolbec" msgstr "" #. maps/pg/map29:7 msgid "Alekseyevka" msgstr "" #. units/pg.udb:6449 msgid "GB Para 43" msgstr "" #. maps/pg/map04:7 msgid "Ypres" msgstr "" #. units/pg.udb:6533 msgid "ST MiG-3" msgstr "" #. maps/pg/map30:7 msgid "Psel" msgstr "" #. scenarios/pg/Kiev:2 msgid "KIEV" msgstr "" #. units/pg.udb:7345 msgid "ST SU-122" msgstr "" #. units/pg.udb:3536 msgid "GB HW Inf 43" msgstr "" #. units/pg.udb:2948 msgid "2 FlaK38 (4)" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Sidi Barrani" msgstr "" #. maps/pg/map17:7 msgid "Marche-en-Famenne" msgstr "" #. nations/pg.ndb:52 msgid "Turkey" msgstr "" #. maps/pg/map24:7 msgid "Chernigov" msgstr "" #. maps/pg.tdb:36 msgid "Fair(Ice)" msgstr "" #. campaigns/PG:619 msgid "" "The former mighty Reich is reduced to rubbles. No authority is left to even " "sign a peace treaty. Germany has ceased to exist." msgstr "" #. campaigns/PG:574 msgid "" "The total defeat on the Southern front made Italy surrender to the Allies." msgstr "" #. maps/pg/map26:7 msgid "Omega" msgstr "" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Messina" msgstr "" #. campaigns/PG:275 campaigns/PG:418 msgid "D-Day" msgstr "" #. units/pg.udb:6785 msgid "ST PE-2" msgstr "" #. units/pg.udb:11853 msgid "Strongpoint" msgstr "" #. campaigns/PG:407 msgid "" "The Allies have fought up all their way from Sicily to the center of Italy. " "While we halted their advance at the Gustav line, the Allies performed a " "massive landing operation at the beachhead of Anzio-Nettuno. To prevent " "detriment to the Reich, it is imperative that you fend off this massive " "onslaught at all costs. You have to hold at least Rome and two other " "objectives to turn the battle into a more favourable direction." msgstr "" #. units/pg.udb:1044 msgid "PzIID" msgstr "" #. units/pg.udb:8801 msgid "IT AB-41" msgstr "" #. maps/pg/map13:7 msgid "San Stefano" msgstr "" #. maps/pg/map14:7 msgid "Viterbo" msgstr "" #. maps/pg/map20:7 maps/pg/map21:7 maps/pg/map33:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Danube River" msgstr "" #. campaigns/PG:83 msgid "" "Now there are two front lines to take care of. Herr General, which theater " "do you want to participate in?" msgstr "" #. maps/pg/map02:7 maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 ... msgid "Bug River" msgstr "" #. maps/pg/map14:7 msgid "Orvieto" msgstr "" #. maps/pg/map21:7 msgid "Sofia" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Tours" msgstr "" #. maps/pg/map15:7 msgid "St. Mere Eglise" msgstr "" #. maps/pg/map15:7 msgid "Courselles" msgstr "" #. maps/pg/map29:7 msgid "Pavlograd" msgstr "" #. maps/pg.tdb:24 msgid "Overcast(Mud)" msgstr "" #. units/pg.udb:13 msgid "Soft" msgstr "" #. units/pg.udb:112 msgid "Sea Transport" msgstr "" #. maps/pg/map02:7 maps/pg/map03:7 maps/pg/map07:7 maps/pg/map09:7 maps/pg/map14:7 maps/pg/map16:7 ... msgid "River" msgstr "" #. maps/pg/map29:7 msgid "Vasilovka" msgstr "" #. maps/pg/map03:7 msgid "Bjerkvik" msgstr "" #. campaigns/PG:247 msgid "" "Your next order is to lead the advance towards the industrial center of " "Stalingrad. Taking Stalingrad will cripple Russia's war industry, and cut " "supply lines over the Volga river. Thus, you must capture Stalingrad and all " "other objectives by the 22nd of November at the latest. Keep in mind that if " "we want to get another chance to advance towards Moscow this year, you have " "to finish your mission before October. Do not underestimate the vast " "distances of the steppe, and the supply shortage resulting thereof." msgstr "" #. campaigns/PG:230 msgid "" "We now set our sights on Army Group South which has besieged the Black Sea " "port of Sevastopol for nearly one year. The time is ripe for an eventual " "assault on Sevastopol, and you are ordered to conduct it. You have to force " "your way through the town of Sevastopol and capture all objectives by no " "later than the 23rd of June. After the Moscow desaster last year, we cannot " "allow for another defeat." msgstr "" #. scenarios/pg/Husky:2 msgid "HUSKY" msgstr "" #. maps/pg/map17:7 msgid "Huy" msgstr "" #. scenarios/pg/Berlin:3 msgid "April 1, 1945: The Last Stand." msgstr "" #. campaigns/PG:638 msgid "" "You bravely fended off the Allied onslaught from the Reich's limits. " "Combined with your earlier victory over Russia allowed us to return to the " "pre-war status-quo in the West." msgstr "" #. maps/pg/map29:7 msgid "Merla River" msgstr "" #. units/pg.udb:11013 msgid "US 57mm ATG" msgstr "" #. maps/pg/map36:7 msgid "Brookland" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Taunton" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Blagdernoe" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Berta" msgstr "" #. units/pg.udb:6757 msgid "ST Il-4" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Budweis" msgstr "" #. maps/pg/map13:7 maps/pg/map14:7 msgid "Benevento" msgstr "" #. units/pg.udb:6393 msgid "GB 40mm AD" msgstr "" #. units/pg.udb:4236 msgid "FR 40mm AD" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Mersey" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kimry" msgstr "" #. units/pg.udb:1772 msgid "StuGIIIF/8" msgstr "" #. units/pg.udb:2024 msgid "JagdPanther" msgstr "" #. units/pg.udb:5833 msgid "GB AEC I" msgstr "" #. maps/pg/map36:7 msgid "Piscataway Creek" msgstr "" #. maps/pg/map15:7 msgid "Vire" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kislovolsk" msgstr "" #. units/pg.udb:11909 msgid "Nebelwerfer" msgstr "" #. campaigns/PG:517 msgid "" "Your glorious advance along the North African coast has expelled the English " "forces out of Egypt, and allowed our troops to cross the Suez canal." msgstr "" #. maps/pg/map04:7 msgid "Mastricht" msgstr "" #. campaigns/PG:573 msgid "" "You managed to score a victory. Yet, our former Ally, the Italians have " "surrendered, thus making your efforts crumble in vain." msgstr "" #. maps/pg/map18:7 msgid "Vernon" msgstr "" #. nations/pg.ndb:24 msgid "Denmark" msgstr "" #. maps/pg/map17:7 msgid "Vianden" msgstr "" #. units/pg.udb:2192 msgid "Nashorn" msgstr "" #. campaigns/PG:94 msgid "" "Your brave efforts lead to the capturing of all Southern England. " "Unfortunately, bad weather and interference by the strong British fleet from " "the unattacked North have wreaked havoc on our supply lines. Thus, we were " "forced to retract all troops back to the continent." msgstr "" #. scenarios/pg/Warsaw:3 msgid "" "September 10, 1939: The Germans must capture Warsaw and end Polish " "resistance before the Allies react. " msgstr "" #. scenarios/pg/Budapest:3 msgid "March 6, 1945: Germany's last offensive." msgstr "" #. maps/pg/map36:7 msgid "Lexington Park" msgstr "" #. units/pg.udb:10481 msgid "US M10 " msgstr "" #. nations/pg.ndb:92 msgid "Switzerland" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Reichenbach" msgstr "" #. maps/pg/map18:7 msgid "Vitre" msgstr "" #. maps/pg/map05:7 msgid "Saumur" msgstr "" #. maps/pg/map14:7 msgid "Rapido River" msgstr "" #. maps/pg/map05:7 msgid "Mantes" msgstr "" #. campaigns/PG:580 msgid "Staying in Italy" msgstr "" #. units/pg.udb:9109 msgid "IT 90mm Breda" msgstr "" #. units/pg.udb:7513 msgid "ST KV-85" msgstr "" #. maps/pg/map29:7 msgid "Gorlovka" msgstr "" #. maps/pg/map21:7 msgid "Florina" msgstr "" #. units/pg.udb:6589 msgid "ST YaK-9M" msgstr "" #. maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Posen" msgstr "" #. maps/pg/map15:7 msgid "Thury Harcourt" msgstr "" #. units/pg.udb:1520 msgid "PzIVH" msgstr "" #. units/pg.udb:10509 msgid "US M12 GMC" msgstr "" #. scenarios/pg/SealionPlus:3 msgid "" "September 1, 1940: With Gibraltar taken the Italian Fleet aids the invasion " "of England." msgstr "" #. campaigns/PG:580 maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Moscow" msgstr "" #. campaigns/PG:558 msgid "" "Holding the key towns of Tunesia slowed down the advance of the Americans. " "However, we could not sustain the pressure, and thus were forced to rectract " "the Africa Corps back to Europe." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wiesbaden" msgstr "" #. units/pg.udb:6617 msgid "ST YaK-1M" msgstr "" #. maps/pg/map01:7 msgid "Rodomsko" msgstr "" #. scenarios/pg/BerlinWest:3 msgid "April 1, 1945: Western Allies invade Germany." msgstr "" #. nations/pg.ndb:64 msgid "Norway" msgstr "" #. units/pg.udb:1884 msgid "Jagdpanzer 38" msgstr "" #. maps/pg/map23:7 maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map32:7 maps/pg/map37:7 ... msgid "Smolensk" msgstr "" #. units/pg.udb:1968 msgid "Jagdpz IV/48" msgstr "" #. nations/pg.ndb:100 msgid "Yugoslavia" msgstr "" #. maps/pg/map29:7 msgid "Volchansk" msgstr "" #. maps/pg/map15:7 msgid "Lessay" msgstr "" #. units/pg.udb:10565 msgid "US M16 MGMC" msgstr "" #. units/pg.udb:8829 msgid "IT Sem L-47" msgstr "" #. units/pg.udb:2444 msgid "Ostwind I" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Coutances" msgstr "" #. units/pg.udb:2108 msgid "Marder II" msgstr "" #. campaigns/PG:3 msgid "Michael Speck, Leo Savernik" msgstr "" #. campaigns/PG:449 msgid "" "Contrary to what the odds have made us expect, you drove the Allied attack " "back into the sea. Whereas you freed France again from enemy influence, the " "Allied increased their bombing raids against vital German war industries as " "well as our supply lines in France. Not being able to reliably deliver " "reinforcements and material to France, the Allies established another " "beachhead, and drove our forces back to the Rhine." msgstr "" #. maps/pg/map22:7 msgid "Herakleion" msgstr "" #. maps/pg/map36:7 msgid "Bethesda" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Lubeck" msgstr "" #. maps/pg/map14:7 msgid "Sangro River" msgstr "" #. maps/pg/map14:7 msgid "Avellino" msgstr "" #. units/pg.udb:4096 msgid "FR 47mm ATG" msgstr "" #. maps/pg/map12:7 msgid "Sousse" msgstr "" #. maps/pg/map04:7 maps/pg/map05:7 maps/pg/map18:7 msgid "Amiens" msgstr "" #. scenarios/pg/Moscow43:3 msgid "October 9, 1943: Germany's final chance to end the war in the east." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Hamburg" msgstr "" #. maps/pg/map16:7 msgid "Aspres" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Valognes" msgstr "" #. maps/pg/map36:7 msgid "Capitol Hill" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Postavy" msgstr "" #. maps/pg/map18:7 msgid "Etretat" msgstr "" #. maps/pg/map05:7 msgid "Beauvais" msgstr "" #. maps/pg/map13:7 msgid "Trapani" msgstr "" #. campaigns/PG:331 maps/pg/map13:7 msgid "Anzio" msgstr "" #. maps/pg/map13:7 maps/pg/map14:7 msgid "Salerno" msgstr "" #. maps/pg/map02:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 maps/pg/map07:7 maps/pg/map09:7 ... msgid "Fortification" msgstr "" #. maps/pg/map03:7 msgid "Aalborg" msgstr "" #. maps/pg/map14:7 msgid "Rome" msgstr "" #. campaigns/PG:387 msgid "15th June 1943" msgstr "" #. campaigns/PG:149 msgid "" "High Command was impressed to such an extent by your excellent skills that " "we decided to delegate the decision of a critical strategic question to you." "##General staff is divided into two camps. The first is proposing the " "opportunity to pocket and destroy a large amount of Soviet forces near Kiev " "before we proceed on our march towards Moscow. The second is proposing to " "leave aside Kiev and directly head towards Moscow before Autumn weather will " "slow down our advance.##Herr General, which strategy shall we pursue?" msgstr "" #. maps/pg/map24:7 msgid "Malin" msgstr "" #. maps/pg/map36:7 msgid "Annapolis" msgstr "" #. maps/pg/map16:7 msgid "Orange" msgstr "" #. scenarios/pg/Sealion40:3 msgid "September 1, 1940: Germany now sets its sights on England" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Borisoglebsk" msgstr "" #. maps/pg/map05:7 msgid "Montargis" msgstr "" #. maps/pg/map15:7 msgid "St. Sauveur-le-V." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Yeisk" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Pontorson" msgstr "" #. maps/pg/map14:7 msgid "Teramo" msgstr "" #. campaigns/PG:324 msgid "" "You were able to take Kursk, but the Soviets launched a counter-attack " "against the Germain pocket around Orel. Therefore, we had to retreat and " "divert divisions to aid against this massive attack. We have lost the " "initiative on the Eastern front and cannot allow for another attack in this " "year." msgstr "" #. campaigns/PG:308 msgid "" "Your failure at this mission forced the Reich to take back the front lines " "to compensate for German casualties faced in the battle." msgstr "" #. maps/pg/map12:7 msgid "Tebessa" msgstr "" #. maps/pg/map14:7 msgid "Trigno River" msgstr "" #. maps/pg/map01:7 msgid "Kutno" msgstr "" #. units/pg.udb:3424 msgid "PO Infantry" msgstr "" #. maps/pg/map03:7 msgid "Bodo" msgstr "" #. scenarios/pg/BerlinEast:3 msgid "April 1, 1945: Battle for survival against the Soviet Union." msgstr "" #. maps/pg/map08:7 msgid "An Najaf" msgstr "" #. units/pg.udb:2640 msgid "PSW 233/8r" msgstr "" #. units/pg.udb:11629 msgid "FPO M8 LAC" msgstr "" #. maps/pg/map17:7 msgid "Wiltz" msgstr "" #. maps/pg/map36:7 msgid "Benedict" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Coblenz" msgstr "" #. scenarios/pg/Anvil:3 msgid "" "Aug 6, 1944: Allies attempt to cut off Wehrmacht forces in Southern France." msgstr "" #. scenarios/pg/EarlyMoscow:3 msgid "" "September 8, 1941: Panzergruppe Guderian ignores Kiev and drives on Moscow." msgstr "" #. units/pg.udb:145 msgid "BF109f" msgstr "" #. maps/pg/map16:7 msgid "Isere River" msgstr "" #. maps/pg/map36:7 msgid "Upper Marlboro" msgstr "" #. maps/pg/map17:7 msgid "Blankenheim" msgstr "" #. maps/pg/map36:7 msgid "Anacostia" msgstr "" #. maps/pg/map24:7 msgid "Starodub" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Utrecht" msgstr "" #. units/pg.udb:11825 msgid "FPO 6 Inches Gun" msgstr "" #. maps/pg/map17:7 msgid "St. Hubert" msgstr "" #. maps/pg.tdb:20 msgid "Fair(Mud)" msgstr "" #. campaigns/PG:645 msgid "" "The german Reich has no need for incompetent untermenschen, Commander! " "Dismissed." msgstr "" #. maps/pg/map19:7 msgid "Helmond" msgstr "" #. campaigns/PG:524 maps/pg/map24:7 msgid "Kiev" msgstr "" #. units/pg.udb:8297 msgid "Battleship Dl" msgstr "" #. units/pg.udb:3900 msgid "FR AMC 35" msgstr "" #. maps/pg/map17:7 msgid "Ettelbruck" msgstr "" #. maps/pg/map16:7 msgid "Brignoles" msgstr "" #. scenarios/pg/Stalingrad:2 msgid "STALINGRAD" msgstr "" #. maps/pg/map21:7 msgid "Kalamai" msgstr "" #. scenarios/pg/Sevastapol:2 msgid "SEVASTOPOL" msgstr "" #. maps/pg/map33:7 msgid "Fonyod" msgstr "" #. scenarios/pg/Anzio:2 msgid "ANZIO" msgstr "" #. maps/pg/map02:7 msgid "Siedice" msgstr "" #. campaigns/PG:205 msgid "2nd October 1941" msgstr "" #. units/pg.udb:8913 msgid "IT Sem M-42" msgstr "" #. maps/pg/map15:7 msgid "Troarn" msgstr "" #. units/pg.udb:5693 msgid "GB Achilles" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Safonovo" msgstr "" #. maps/pg/map19:7 msgid "Opheusten" msgstr "" #. units/pg.udb:7597 msgid "ST ISU-122" msgstr "" #. units/pg.udb:10341 msgid "US M4A1(76)W" msgstr "" #. units/pg.udb:10621 msgid "US M24" msgstr "" #. maps/pg/map26:7 msgid "Komary" msgstr "" #. campaigns/PG:613 campaigns/PG:623 campaigns/PG:633 msgid "1st April 1945" msgstr "" #. maps/pg/map24:7 msgid "Rechitsa" msgstr "" #. campaigns/PG:364 msgid "6th March 1945" msgstr "" #. maps/pg/map36:7 msgid "Blackwater River" msgstr "" #. units/pg.udb:7933 msgid "ST 12.2cm Gun" msgstr "" #. maps/pg/map36:7 msgid "Hunting Creek" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Vyazma" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map36:7 maps/pg/map38:7 msgid "Cambridge" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kachalinsk" msgstr "" #. scenarios/pg/Budapest:2 msgid "BUDAPEST" msgstr "" #. maps/pg/map12:7 maps/pg/map13:7 msgid "Bizerta" msgstr "" #. units/pg.udb:9753 msgid "US B25B Mitch" msgstr "" #. units/pg.udb:1744 msgid "StuGIIIF" msgstr "" #. maps/pg/map08:7 msgid "Euphrates River" msgstr "" #. maps/pg/map02:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Vistula River" msgstr "" #. units/pg.udb:5889 msgid "GB Humber SC" msgstr "" #. maps/pg/map21:7 msgid "Skopje" msgstr "" #. units/pg.udb:624 msgid "FW190f" msgstr "" #. units/pg.udb:7205 msgid "ST T-34/85" msgstr "" #. maps/pg.tdb:48 msgid "Snowing(Ice)" msgstr "" #. maps/pg/map15:7 msgid "St. Vaast-la-Haugue" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Vire River" msgstr "" #. maps/pg/map36:7 msgid "Rockville" msgstr "" #. units/pg.udb:9137 msgid "IT 47mm ATG" msgstr "" #. maps/pg/map21:7 msgid "Babyak" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Schneidemuhl" msgstr "" #. maps/pg/map21:7 msgid "Bihal" msgstr "" #. nations/pg.ndb:68 msgid "Poland" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 maps/pg/map30:7 msgid "Don" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Bryanskoe" msgstr "" #. units/pg.udb:8605 msgid "IT Ma C202/F" msgstr "" #. maps/pg/map36:7 msgid "Riverdale" msgstr "" #. campaigns/PG:388 msgid "" "High Command has prepared an invasion of England this summer, and you are to " "lead the forces. This is the ultimate chance to knock England out of the " "war, and we have to succeed this time. As the English have established an " "alliance with the Americans, expect some US expeditionary forces aiding in " "the defense of England. You are ordered to take London and all other " "objectives by 13th of July at the latest, when strong American " "reinforcements are expected to arrive. In order to consolidate our defenses, " "you should finish your mission earlier." msgstr "" #. units/pg.udb:8857 msgid "IT Sem M-40" msgstr "" #. campaigns/PG:56 msgid "" "You passed with ease the battlefields our troops bravely but fruitlessly " "attacked in the World War. We reassembled the troops for the final assault " "on France, and we utilised the additional time to start preparations for the " "invasion of England." msgstr "" #. campaigns/PG:215 msgid "" "To prove your skills in another theater, High Command offers to you " "leadership over the Africa Corps fighting at El Alamein.##Herr General, do " "you wish to be transferred to Africa, or do you want to stay on the Eastern " "front?" msgstr "" #. scenarios/pg/France:2 msgid "FRANCE" msgstr "" #. maps/pg/map14:7 msgid "Sora" msgstr "" #. units/pg.udb:10145 msgid "US M4" msgstr "" #. scenarios/pg/Anvil:2 msgid "ANVIL" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Baranovichi" msgstr "" #. maps/pg/map21:7 msgid "Savna River" msgstr "" #. maps/pg/map13:7 msgid "Totenza" msgstr "" #. maps/pg/map36:7 msgid "Mt. Pleasant" msgstr "" #. units/pg.udb:2668 msgid "PSW 234/1-8r" msgstr "" #. maps/pg/map19:7 msgid "Elst" msgstr "" #. scenarios/pg/Warsaw:2 msgid "WARSAW" msgstr "" #. campaigns/PG:500 msgid "17th September 1944" msgstr "" #. maps/pg/map16:7 msgid "Draguigan" msgstr "" #. units/pg.udb:2864 msgid "10.5 leFH 18" msgstr "" #. maps/pg/map29:7 msgid "Krasnograd" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Halle" msgstr "" #. campaigns/PG:68 msgid "" "Congratulations for conquering France and for bringing an overwhelming " "victory to the Reich. France has surrendered, and its dependencies will be " "put under German protectorate. Yet it was too late to finish preparations " "for the invasion of England in time." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Batumi" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Landsberg" msgstr "" #. maps/pg/map36:7 msgid "Bladensburg" msgstr "" #. units/pg.udb:11181 msgid "US 40mm AD" msgstr "" #. maps/pg/map08:7 msgid "Karak" msgstr "" #. campaigns/PG:136 msgid "" "Eventually, time has come for operation Barbarossa, the long-term planned " "invasion of Soviet Russia. You are in charge of Army Group Center, and you " "have to conduct the main thrust through Soviet defences and keep them " "running. In order to prevent the enemy from establishing a front line and " "mobilise reserves from the rear, you have to capture Smolensk and all other " "objectives before the 7th of September." msgstr "" #. maps/pg/map29:7 msgid "Proletarskiy" msgstr "" #. maps/pg/map16:7 msgid "Argens River" msgstr "" #. units/pg.udb:7989 msgid "ST 7.6cm AD" msgstr "" #. maps/pg/map29:7 msgid "Rubezhnoye" msgstr "" #. maps/pg/map04:7 msgid "St. Valery" msgstr "" #. units/pg.udb:2304 msgid "Wespe" msgstr "" #. campaigns/PG:290 msgid "" "Your initial capture of Moscow let arise hope that Russia would surrender. " "Unfortunately, fresh Siberian reserves started a counter-attack and expelled " "our exhausted and worn down spearheads out of the capital. While we managed " "to establish a stable front line again, we could not attempt another advance " "in 1942." msgstr "" #. maps/pg/map15:7 msgid "Cabourg" msgstr "" #. maps/pg/map29:7 msgid "Akhtyrica" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Bedford" msgstr "" #. campaigns/PG:637 msgid "" "Pushing back the Allied onslaught to the pre-war borders of the Reich gave " "us, combined with your earlier victory over Russia, a strong position to " "negotiate a favourable peace treaty." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wittenberg" msgstr "" #. maps/pg/map17:7 msgid "Demer River" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Boguchar" msgstr "" #. scenarios/pg/Balkans:2 msgid "BALKANS" msgstr "" #. units/pg.udb:27 msgid "Tracked" msgstr "" #. maps/pg/map36:7 msgid "Queenstown" msgstr "" #. maps/pg/map29:7 msgid "Lyubotin" msgstr "" #. maps/pg/map05:7 maps/pg/map15:7 maps/pg/map18:7 msgid "Caen" msgstr "" #. units/pg.udb:1604 msgid "Panther A" msgstr "" #. scenarios/pg/Moscow41:3 msgid "" "October 2, 1941: Can the heroes of the Motherland hold the Panzers until the " "winter comes?" msgstr "" #. campaigns/PG:554 msgid "" "Meanwhile, the Africa Corps is facing another threat from the West. This is " "the initial landing of US expeditionary forces in Tunesia after their " "declaration of war against Germany. Though unexperienced, they outnumber our " "troops by far, and must not be underestimated. Your order is to force the " "American troops from the continent, taking all objectives. As a last resort, " "you have to hold at least Tunis and two other objectives to make the outcome " "favourable to us." msgstr "" #. maps/pg/map14:7 msgid "Rieti" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Laval" msgstr "" #. units/pg.udb:4628 msgid "GB Hur I" msgstr "" #. units/pg.udb:5077 msgid "GB C-47" msgstr "" #. campaigns/PG:348 msgid "" "Thanks to your great achievements, the Soviet summer offensive has been " "halted. Unfortunately, much pressure has accumulated on the Western front, " "so High Command decided to transfer you there to relieve the situation." msgstr "" #. units/pg.udb:6505 msgid "ST YaK-1" msgstr "" #. maps/pg/map36:7 msgid "Rappahannock River" msgstr "" #. maps/pg/map05:7 msgid "Seine" msgstr "" #. scenarios/pg/Anvil:278 scenarios/pg/Anzio:308 scenarios/pg/Ardennes:470 scenarios/pg/Balkans:536 ... msgid "Axis" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wuppertal" msgstr "" #. maps/pg/map21:7 msgid "Turnu Severin" msgstr "" #. campaigns/PG:416 msgid "" "Due to your exceptional leadership skills, you are offered command over Army " "Group Center in Russia.##Herr General, do you want to defend the Reich " "against Soviet forces in Byelorussia, or fight against the upcoming invasion " "of France?" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Falaise" msgstr "" #. maps/pg/map29:7 msgid "Stakhanov" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Jutovo" msgstr "" #. campaigns/PG:264 msgid "" "For this year, we have gained another chance to advance towards Moscow, the " "logistical and industrial center of Russia. It is imperative that you take " "Moscow and all other objectives by no later than the 28th of December before " "winter weather will bring our advance to a halt. However, to garrison the " "city against russian counterattacks, you should finish your mission several " "weeks earlier. This is the ultimate chance to end the war in the East." msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Horsham" msgstr "" #. maps/pg/map21:7 msgid "Thessaloniki" msgstr "" #. maps/pg/map21:7 msgid "Mostar" msgstr "" #. maps/pg/map17:7 msgid "St. Vith" msgstr "" #. maps/pg/map19:7 msgid "St. Anthonis" msgstr "" #. units/pg.udb:2276 msgid "sIG 38(t)M" msgstr "" #. scenarios/pg/Anzio:3 msgid "" "Jan 22, 1944: German troops attack the Anzio Beachhead while attempting to " "maintain the Gustav Line." msgstr "" #. maps/pg/map14:7 msgid "Anzio-Nettuno" msgstr "" #. campaigns/PG:286 msgid "" "We have now another chance to advance towards Moscow and end the war in the " "East. However, the Soviet defenders are much better prepared this time. " "Therefore, it is imperative that you capture Moscow and a multitude of other " "objectives by the 28th of December at the latest. However, to make the " "Russians actually surrender, it is necessary to finish your mission several " "weeks earlier." msgstr "" #. scenarios/pg/Moscow43:2 msgid "MOSCOW (43)" msgstr "" #. units/pg.udb:7261 msgid "ST T-60" msgstr "" #. maps/pg/map16:7 msgid "Erteux River" msgstr "" #. units/pg.udb:10901 msgid "US Eng 41" msgstr "" #. maps/pg/map36:7 msgid "Severn River" msgstr "" #. maps/pg/map14:7 msgid "L'Aquila" msgstr "" #. nations/pg.ndb:96 msgid "Great Britain" msgstr "" #. maps/pg/map36:7 msgid "Glen Burnie" msgstr "" #. units/pg.udb:8661 msgid "IT BA65" msgstr "" #. units/pg.udb:11209 msgid "US 3 Inches AD" msgstr "" #. units/pg.udb:10845 msgid "US Para 43" msgstr "" #. campaigns/PG:484 msgid "" "We have entrenched ourselves at the Siegfried line and have observed Allied " "spearheads to slow down considerably. Thus, we prepared a strike force for a " "counter-attack, called operation Wacht am Rhein, in an attempt to " "precipitate a decision in the West. If you capture all objectives until the " "31st of December, we are in a strong position to negotiate a peace treaty." msgstr "" #. scenarios/pg/NorthAfrica:3 msgid "" "March 31, 1941: Axis attempts to seize Egypt and the Suez. Can the Desert " "Fox be stopped?" msgstr "" #. campaigns/PG:53 msgid "" "Now it is the time to make the French and English forces pay for their " "declarations of war. In an audacious two-pronged attack, your Northern " "forces will break through Liege, Brussels, Maubeuge, while your Southern " "forces will force their way through the rough Ardennes forests and take by " "surprise the northernmost outpost of the Maginot-line, Sedan. Both forces " "are bound to pass the battlefields of the World War and capture all " "objectives by the 8th of June. If you capture your objectives much earlier, " "this could give us a chance to prepare an invasion of England this year." msgstr "" #. maps/pg/map16:7 msgid "Briancon" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Worcester" msgstr "" #. campaigns/PG:434 msgid "" "Your troops were outnumbered on any scale, enabling the Allies to establish " "and extend their beachheads in Normandy." msgstr "" #. campaigns/PG:565 msgid "Husky" msgstr "" #. units/pg.udb:3480 msgid "AF 75mm Gun" msgstr "" #. maps/pg/map24:7 msgid "Korosten" msgstr "" #. maps/pg/map16:7 msgid "Gard River" msgstr "" #. maps/pg/map14:7 msgid "Pescara" msgstr "" #. units/pg.udb:988 msgid "PzIB" msgstr "" #. maps/pg/map17:7 msgid "Martelange" msgstr "" #. campaigns/PG:466 msgid "" "This is impressing! While General Staff internally knew that the order was " "infeasible given the scarce resources available, you managed to achieve the " "impossible and drove the Allied army back into the sea. As a reaction, the " "Allied increased the bombing raids against vital German war industries and " "our supply lines in France, putting your victory at stake. Exploiting the " "resource shortage, the Allies performed another landing, and drove our " "forces back to the Rhine." msgstr "" #. maps/pg/map21:7 msgid "Kula" msgstr "" #. maps/pg/map03:7 msgid "Lagen River" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Tsymiank" msgstr "" #. units/pg.udb:11797 msgid "FPO 25 Pdr" msgstr "" #. maps/pg/map08:7 msgid "Damascus" msgstr "" #. units/pg.udb:1268 msgid "SdKfz 7/1" msgstr "" #. maps/pg/map03:7 msgid "Oslo" msgstr "" #. maps/pg/map04:7 msgid "Arras" msgstr "" #. maps/pg/map30:7 msgid "Dmitrovsk-Orlovskiy" msgstr "" #. maps/pg/map17:7 msgid "Mons" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Le Mans" msgstr "" #. maps/pg/map17:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Trier" msgstr "" #. maps/pg/map36:7 msgid "Colonial Beach" msgstr "" #. units/pg.udb:10173 msgid "US M4A1" msgstr "" #. units/pg.udb:5497 msgid "GB Sherman" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Winchester" msgstr "" #. campaigns/PG:506 msgid "" "Your inability to sustain against paratroopers allowed the Allied to exploit " "the Rhine crossing, and to thrust against the German heartlands without " "delay." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Tikhoretsk" msgstr "" #. maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Eindhoven" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Stettin" msgstr "" #. maps/pg/map36:7 msgid "Falls Church" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Zagorsk" msgstr "" #. maps/pg/map13:7 msgid "Petralia" msgstr "" #. maps/pg/map04:7 msgid "Maubeuge" msgstr "" #. campaigns/PG:534 msgid "" "Supply shortage and the ever increasing resistence of English troops enabled " "the English to take the initiative, and expel the Africa Corps from Egypt " "and Libya." msgstr "" #. units/pg.udb:11461 msgid "FFR M2 Hftrk" msgstr "" #. campaigns/PG:543 msgid "" "Adverse weather and supply conditions forced our troops out of Mesopotamia, " "while English couter-attacks forced us out of Egypt. We basically have to " "start at the beginning now." msgstr "" #. maps/pg/map14:7 msgid "Lanciano" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Angers" msgstr "" #. campaigns/PG:392 msgid "" "Your brave efforts lead to the capturing of all Southern England. " "Unfortunately, the landing of American reinforcements and their counter-" "attack forced High Command to retract all troops back to the continent. You " "have been called to the Eastern front to prove that you are a worthy Panzer " "General nonetheless." msgstr "" #. scenarios/pg/NorthAfrica:2 msgid "NORTH AFRICA" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Cairo" msgstr "" #. units/pg.udb:7821 msgid "ST Bridge Eng" msgstr "" #. maps/pg/map08:7 msgid "Haifa" msgstr "" #. maps/pg/map36:7 msgid "Trinidad" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Czestochowa" msgstr "" #. maps/pg/map29:7 msgid "Krasnoarmeyskoye" msgstr "" #. scenarios/pg/Poland:2 msgid "POLAND" msgstr "" #. maps/pg/map04:7 maps/pg/map17:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Luxembourg" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Stary Oskol" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Groningen" msgstr "" #. maps/pg/map36:7 msgid "South Arlington" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Nevel" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Berlin" msgstr "" #. units/pg.udb:8381 msgid "Z-Destroyer" msgstr "" #. units/pg.udb:8101 msgid "AF HvyCruiser" msgstr "" #. maps/pg/map21:7 msgid "Mesolongion" msgstr "" #. maps/pg/map13:7 msgid "Caltanissetta" msgstr "" #. maps/pg/map16:7 msgid "Cuneo" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Mablethorpe" msgstr "" #. maps/pg/map14:7 msgid "Frosinone" msgstr "" #. maps/pg/map26:7 msgid "Mikhaili" msgstr "" #. units/pg.udb:11545 msgid "FFR M20 LAC" msgstr "" #. units/pg.udb:3592 msgid "AF Truck" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Budennovsk" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Tobruk" msgstr "" #. campaigns/PG:79 msgid "" "Making Germany face another disaster like in the World War has forced the " "Reich to surrender and sign an overly unfavourable peace treaty." msgstr "" #. units/pg.udb:4824 msgid "GB Meteor III" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Chatham" msgstr "" #. units/pg.udb:7793 msgid "ST Cavalry" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Berdansk" msgstr "" #. units/pg.udb:11769 msgid "FPO 6 Pdr ATG" msgstr "" #. maps/pg/map33:7 msgid "Tet" msgstr "" #. maps/pg/map19:7 msgid "Erp" msgstr "" #. campaigns/PG:122 msgid "" "Resistence was much heavier than anticipated from reconnaissance flights. " "Thus our troops faced heavy losses, and we had to retreat to the continent. " "Crete will pose a latent danger for the ongoing operations on the Eastern " "front." msgstr "" #. maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 maps/pg.tdb:2174 msgid "Rough Desert" msgstr "" #. units/pg.udb:6477 msgid "ST I-16" msgstr "" #. maps/pg/map13:7 msgid "Gaeta" msgstr "" #. maps/pg/map04:7 msgid "Roer" msgstr "" #. maps/pg/map09:7 msgid "Marsa Matruh" msgstr "" #. maps/pg/map15:7 msgid "St. Hilaire" msgstr "" #. campaigns/PG:19 msgid "1st September 1939" msgstr "" #. scenarios/pg/Barbarossa:2 msgid "BARBAROSSA" msgstr "" #. maps/pg/map22:7 msgid "Melambes" msgstr "" #. scenarios/pg/Anvil:330 scenarios/pg/Anzio:365 scenarios/pg/Ardennes:562 scenarios/pg/Balkans:603 ... msgid "Axis Defeat" msgstr "" #. maps/pg/map15:7 msgid "Vimoutiers" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Basel" msgstr "" #. maps/pg.tdb:44 msgid "Raining(Ice)" msgstr "" #. units/pg.udb:7429 msgid "ST KV-1/41" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Lodz" msgstr "" #. campaigns/PG:184 msgid "8th September 1941" msgstr "" #. maps/pg/map36:7 msgid "Georgetown" msgstr "" #. maps/pg/map36:7 msgid "Patuxent River" msgstr "" #. units/pg.udb:4684 msgid "GB Spit II" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Miskolc" msgstr "" #. campaigns/PG:46 msgid "" "Taking all objectives has enabled us to expel the English forces from Norway " "and station our fleet there. Our supply lines should be safe. You have been " "awarded command over troops at the Western border." msgstr "" #. campaigns/PG:30 msgid "10th September 1939" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Danzig" msgstr "" #. maps/pg/map16:7 msgid "Linee River" msgstr "" #. campaigns/PG:229 msgid "7th June 1942" msgstr "" #. units/pg.udb:7093 msgid "ST T-28M1" msgstr "" #. units/pg.udb:2416 msgid "Wirbelwind" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Tula" msgstr "" #. units/pg.udb:97 msgid "Destroyer" msgstr "" #. maps/pg/map17:7 msgid "Vielsalm" msgstr "" #. maps/pg/map21:7 msgid "Debar" msgstr "" #. maps/pg/map12:7 maps/pg/map13:7 msgid "Tunis" msgstr "" #. maps/pg.tdb:1364 msgid "Town" msgstr "" #. units/pg.udb:6701 msgid "ST YaK-9" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Tamar" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Timoshevskaya" msgstr "" #. maps/pg/map03:7 msgid "Harstad" msgstr "" #. maps/pg/map36:7 msgid "West River" msgstr "" #. scenarios/pg/Moscow42:3 msgid "" "October 1, 1942: Axis offensive to capture Moscow and end the war in the " "east." msgstr "" #. units/pg.udb:67 msgid "Recon" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Volkovysk" msgstr "" #. units/pg.udb:2136 msgid "Marder IIIH" msgstr "" #. units/pg.udb:2472 msgid "SdKfz 10/4" msgstr "" #. units/pg.udb:3508 msgid "GB Inf 43" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Moselle River" msgstr "" #. units/pg.udb:6029 msgid "GB 3 Tn Lorry" msgstr "" #. units/pg.udb:7457 msgid "ST KV-1/42" msgstr "" #. units/pg.udb:4012 msgid "FR Truck" msgstr "" #. campaigns/PG:23 msgid "" "Your quick breakthrough in Poland enabled High Command to make additional " "resources available to you." msgstr "" #. maps/pg/map14:7 msgid "Vasto" msgstr "" #. maps/pg/map05:7 msgid "Bourges" msgstr "" #. maps/pg/map16:7 msgid "Grenoble" msgstr "" #. units/pg.udb:2892 msgid "15 sFH 18" msgstr "" #. maps/pg/map14:7 msgid "Latina" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Obninsk" msgstr "" #. units/pg.udb:6645 msgid "ST YaK-7B" msgstr "" #. maps/pg/map15:7 msgid "Bayeux" msgstr "" #. maps/pg/map29:7 msgid "Orel River" msgstr "" #. units/pg.udb:9865 msgid "US B17F FF" msgstr "" #. campaigns/PG:609 msgid "" "Fanatic resistence kept our troops from advancing fast enough before the " "Americans used their secret weapon, the Atomic Bomb. Thus, heavy losses " "forced us to retract our troops from the American continent. Your America " "adventure has been a disaster, but General Staff ows you acknowledgement for " "your earlier victories over Western and Eastern Europe." msgstr "" #. units/pg.udb:9809 msgid "US B26C Mardr" msgstr "" #. maps/pg/map29:7 msgid "Kramatorsk" msgstr "" #. maps/pg/map30:7 msgid "Novosil" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Konstantinovsk" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Gazala" msgstr "" #. units/pg.udb:7765 msgid "ST Infantry" msgstr "" #. nations/pg.ndb:56 msgid "Italy" msgstr "" #. maps/pg/map30:7 msgid "Rylsk" msgstr "" #. maps/pg/map12:7 msgid "Phillippeville" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kalinin" msgstr "" #. maps/pg/map24:7 msgid "Radomyshi" msgstr "" #. maps/pg/map13:7 msgid "Sciacca" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kolomna" msgstr "" #. units/pg.udb:11321 msgid "FFR Infantry" msgstr "" #. maps/pg/map03:7 msgid "Molde" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Teykovo" msgstr "" #. maps/pg/map24:7 msgid "Lubnyr" msgstr "" #. campaigns/PG:634 msgid "" "We are now facing a massive force in the West invading German soil. Your " "order is to hold Berlin and at least five other objectives to prevent " "further detriment to the Reich." msgstr "" #. units/pg.udb:11601 msgid "FPO Sherman" msgstr "" #. maps/pg/map17:7 maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Meuse River" msgstr "" #. units/pg.udb:85 msgid "Fighter" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Bryansk" msgstr "" #. maps/pg/map36:7 msgid "Accotink Creek" msgstr "" #. maps/pg/map15:7 msgid "Dol" msgstr "" #. maps/pg/map30:7 msgid "Dmitriyev-Lgovskiy" msgstr "" #. units/pg.udb:73 msgid "Artillery" msgstr "" #. maps/pg/map15:7 msgid "Sienner River" msgstr "" #. maps/pg/map05:7 msgid "Ham" msgstr "" #. units/pg.udb:4656 msgid "GB Spit I" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Nancy" msgstr "" #. campaigns/PG:323 msgid "" "Your performance was outstanding! Despite heavy resistence, you were able to " "crush the enemy and successfully secure the pocket of Kursk. Thanks to this " "masterpiece, we can attempt another assault on Moscow." msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Great Vermouth" msgstr "" #. maps/pg/map05:7 msgid "Vienne" msgstr "" #. units/pg.udb:2612 msgid "PSW 231/6r" msgstr "" #. units/pg.udb:1688 msgid "Tiger II" msgstr "" #. campaigns/PG:382 msgid "" "Your brave efforts lead to the capturing of all Southern England. " "Unfortunately, the landing of American reinforcements and their counter-" "attack forced High Command to retract all troops back to the continent." msgstr "" #. campaigns/PG:340 msgid "" "Holding Warsaw temporarily relieved us from pressure on the Eastern front, " "and enabled us to prepare further operations." msgstr "" #. units/pg.udb:6981 msgid "ST BA-10" msgstr "" #. campaigns/PG:451 msgid "The Allied army easily drove our troops back to the Netherlands." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Stuttgart" msgstr "" #. maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Breslau" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Waldenburg" msgstr "" #. maps/pg/map29:7 msgid "Karlovka" msgstr "" #. maps/pg/map36:7 msgid "Hyattsville" msgstr "" #. units/pg.udb:596 msgid "FW190g" msgstr "" #. maps/pg/map22:7 msgid "Moires" msgstr "" #. units/pg.udb:6729 msgid "ST La-7" msgstr "" #. campaigns/PG:412 msgid "" "The mission was a disaster. Not sustaining allowed the Allies to invade " "Germany from the South, forces upon us an unfavourable peace treaty like the " "one in 1918." msgstr "" #. maps/pg/map04:7 msgid "Ostend" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Temyryk" msgstr "" #. campaigns/PG:58 msgid "" "Despite your initially slow advance, by an overwhelming array of men and " "material we eventually drove the French forces over the Somme river. Yet we " "cannot tolerate suboptimal performance like this any longer. Your deeds need " "to improve. Needlessly to say that our chance of invading England this year " "has been lost." msgstr "" #. units/pg.udb:792 msgid "He111 H2" msgstr "" #. units/pg.udb:6897 msgid "ST PE-8" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Freiburg" msgstr "" #. maps/pg/map12:7 msgid "Gabes" msgstr "" #. maps/pg/map13:7 msgid "Prizzi" msgstr "" #. scenarios/pg/Norway:3 msgid "" "April 9, 1940: Wanting Norwegian iron, and northern air bases to deny " "British access to the Baltic Sea, the Germans launch a surprise attack on " "Norway." msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Chester" msgstr "" #. campaigns/PG:344 msgid "22nd June 1944" msgstr "" #. maps/pg/map15:7 msgid "Domfront" msgstr "" #. maps/pg/map21:7 msgid "Valjevo" msgstr "" #. campaigns/PG:188 msgid "" "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have " "achieved what Napoleon only dreamed of. All of Russia has been put under " "German administration, and we have already begun exploiting its vast " "resources. Your decision to take the early route towards Moscow was right, " "and therefore you get awarded one of the highest order medals of the Reich, " "the Iron Cross with Oak Leaves and Swords." msgstr "" #. maps/pg/map36:7 msgid "Port Tobacco" msgstr "" #. maps/pg/map29:7 msgid "Lozovaya" msgstr "" #. maps/pg/map14:7 msgid "Volturno River" msgstr "" #. units/pg.udb:11069 msgid "US 75mm Gun" msgstr "" #. units/pg.udb:1184 msgid "Pz38(t)A" msgstr "" #. units/pg.udb:7289 msgid "ST T-40" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Dover" msgstr "" #. maps/pg/map21:7 msgid "Berati" msgstr "" #. units/pg.udb:4768 msgid "GB Hur IV" msgstr "" #. maps/pg/map17:7 msgid "Nivelles" msgstr "" #. units/pg.udb:5049 msgid "GB Lancaster" msgstr "" #. maps/pg/map18:7 msgid "Neufchatel" msgstr "" #. maps/pg/map04:7 msgid "Noyon" msgstr "" #. nations/pg.ndb:48 msgid "Hungary" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Braunschweig" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Bialstok" msgstr "" #. maps/pg/map08:7 msgid "Karbala" msgstr "" #. maps/pg/map12:7 msgid "Kasserine" msgstr "" #. scenarios/pg/D-Day:2 msgid "D-DAY" msgstr "" #. maps/pg/map24:7 msgid "Cherkassi" msgstr "" #. maps/pg/map08:7 msgid "Al Hillah" msgstr "" #. units/pg.udb:6925 msgid "ST SU-152 AT" msgstr "" #. maps/pg/map17:7 msgid "Bastogne" msgstr "" #. campaigns/PG:217 msgid "Eastern front" msgstr "" #. units/pg.udb:5805 msgid "GB 40mm SPAD" msgstr "" #. units/pg.udb:1576 msgid "Panther D" msgstr "" #. scenarios/pg/Anvil:4 scenarios/pg/Anzio:4 scenarios/pg/Ardennes:4 scenarios/pg/Balkans:4 ... msgid "Strategic Simulation Inc." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bratislava" msgstr "" #. maps/pg/map19:7 msgid "Boxtel" msgstr "" #. units/pg.udb:3368 msgid "PO TK3" msgstr "" #. units/pg.udb:5665 msgid "GB Church VII" msgstr "" #. maps/pg/map17:7 msgid "Werbomont" msgstr "" #. maps/pg/map22:7 msgid "Monemvasia" msgstr "" #. maps/pg/map16:7 msgid "Petit Rhone River" msgstr "" #. units/pg.udb:3928 msgid "FR Ch D1 IG" msgstr "" #. maps/pg/map19:7 msgid "Veghel" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Bolkhov" msgstr "" #. maps/pg/map15:7 msgid "Orbec" msgstr "" #. maps/pg/map16:7 msgid "Turin" msgstr "" #. units/pg.udb:5245 msgid "GB Crdr II" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Port" msgstr "" #. maps/pg/map36:7 msgid "Bowie" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Mogilev" msgstr "" #. maps/pg/map19:7 msgid "Gembert" msgstr "" #. units/pg.udb:5637 msgid "GB Church VI" msgstr "" #. maps/pg/map33:7 msgid "Devegcer" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kuban" msgstr "" #. maps/pg/map26:7 msgid "Otradny" msgstr "" #. maps/pg/map18:7 msgid "Melun" msgstr "" #. units/pg.udb:11125 msgid "US 155mm Gun" msgstr "" #. maps/pg/map33:7 msgid "Tatabanya" msgstr "" #. maps/pg/map08:7 msgid "Sakakah" msgstr "" #. campaigns/PG:533 msgid "" "Congratulations on your victory. Yet, supply shortages allowed the English " "to take the initiative, and expel the Africa Corps from Egypt and Libya." msgstr "" #. maps/pg/map17:7 msgid "Beaumont" msgstr "" #. maps/pg/map03:7 msgid "Bergen" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Aire" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Mainz" msgstr "" #. maps/pg/map21:7 msgid "Pinios River" msgstr "" #. maps/pg/map08:7 msgid "Anah" msgstr "" #. maps/pg/map36:7 msgid "Odenton" msgstr "" #. maps/pg/map13:7 msgid "Agrigento" msgstr "" #. units/pg.udb:3228 msgid "PSW 232/8r" msgstr "" #. maps/pg/map36:7 msgid "North Arlington" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Osnabruck" msgstr "" #. scenarios/pg/BerlinWest:2 msgid "BERLIN (WEST)" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Newhaven" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Mozdok" msgstr "" #. units/pg.udb:88 msgid "Tactical Bomber" msgstr "" #. maps/pg/map15:7 msgid "Barneville" msgstr "" #. maps/pg/map03:7 msgid "Kongsberg" msgstr "" #. maps/pg/map22:7 msgid "Sitia" msgstr "" #. campaigns/PG:410 msgid "" "High Command is stunned about your audacious counter-attack in Italy. With " "scarce resources, you managed not only to drive back the Anzio-beachhead " "into the sea, you also retook Italian towns of the South." msgstr "" #. campaigns/PG:524 msgid "Staying in the desert" msgstr "" #. maps/pg/map30:7 msgid "Sudzha" msgstr "" #. units/pg.udb:257 msgid "FW190d9" msgstr "" #. units/pg.udb:8577 msgid "IT Centauro" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Frankfurt an Main" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Munich" msgstr "" #. units/pg.udb:8997 msgid "IT M13/40" msgstr "" #. maps/pg/map36:7 msgid "Ocooquen Creek" msgstr "" #. maps/pg/map21:7 msgid "Rijeka" msgstr "" #. units/pg.udb:8185 msgid "AF T-Boat" msgstr "" #. units/pg.udb:5105 msgid "GB Matilda I" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Novorossik" msgstr "" #. scenarios/pg/Balkans:3 msgid "" "April 6, 1941: German troops aid the bogged down Italians in Yugoslavia and " "Greece." msgstr "" #. units/pg.udb:4881 msgid "GB Spit XVII" msgstr "" #. maps/pg/map16:7 msgid "St. Vallier" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Cyrene" msgstr "" #. maps/pg/map14:7 msgid "Sezze" msgstr "" #. scenarios/pg/Ardennes:3 msgid "Dec 16, 1944: Wacht Am Rhein... Germany's last gamble in the West." msgstr "" #. maps/pg/map29:7 msgid "Proletarsk" msgstr "" #. maps/pg/map26:7 msgid "Verkhne Chogan" msgstr "" #. campaigns/PG:106 msgid "" "Negotiations with Yugoslavia have failed which in order made them turn " "against us. Italian forces are fighting a stiff battle at the Metaxas line " "in Greece and have not been able to gain substancial advantages for over a " "year, and they may not sustain any longer. For our upcoming invasion of " "Russia we cannot tolerate an undefeated enemy in our back. Thus it is your " "mission to capture key Yugoslav towns to make them surrender, and " "additionally aid Italian troops in their hapless fight against Greek and " "English adversaries." msgstr "" #. campaigns/PG:432 msgid "" "Congratulations on your effective victory over the Allied invasion of " "Normandy. The enemy has been driven back into the sea." msgstr "" #. maps/pg/map21:7 msgid "Morlava River" msgstr "" #. maps/pg/map21:7 msgid "Patrai" msgstr "" #. units/pg.udb:6869 msgid "ST Il-10" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Magdeburg" msgstr "" #. maps/pg/map33:7 msgid "Komarno" msgstr "" #. maps/pg/map26:7 msgid "Inkerman" msgstr "" #. maps/pg/map16:7 msgid "Gap" msgstr "" #. maps/pg/map36:7 msgid "Laurel" msgstr "" #. units/pg.udb:2164 msgid "Marder IIIM" msgstr "" #. maps/pg/map19:7 msgid "Waal River" msgstr "" #. units/pg.udb:8885 msgid "IT Sem M-41M" msgstr "" #. units/pg.udb:314 msgid "ME163B/Komet" msgstr "" #. maps/pg/map16:7 msgid "Digne" msgstr "" #. maps/pg/map17:7 msgid "Tirlemont" msgstr "" #. units/pg.udb:8325 msgid "Heavy Cruiser" msgstr "" #. maps/pg/map33:7 msgid "Rackeve" msgstr "" #. units/pg.udb:10089 msgid "US M3 GMC" msgstr "" #. units/pg.udb:8353 msgid "Light Cruiser" msgstr "" #. units/pg.udb:4993 msgid "GB Typhoon IB" msgstr "" #. maps/pg/map14:7 msgid "Tivoli" msgstr "" #. maps/pg/map08:7 msgid "Hit" msgstr "" #. maps/pg/map24:7 msgid "Khoro" msgstr "" #. maps/pg/map16:7 msgid "Montelimar" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bern" msgstr "" #. units/pg.udb:3620 msgid "FR Potez 63" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Menai Strait" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Nile" msgstr "" #. maps/pg/map14:7 msgid "Aterno River" msgstr "" #. units/pg.udb:7149 msgid "ST T-34/41" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Tunbridge Wells" msgstr "" #. units/pg.udb:8409 msgid "T-Destroyer" msgstr "" #. campaigns/PG:501 msgid "" "The Allies have launched a surprise airborne attack at Arnhem to capture a " "bridge across the Rhine. Yet, their slow outbreak from Normandy gave us " "plenty of time to establish potent defenses. Your order is to capture and " "hold the city of Arnhem until the 25th of September, and clean the area from " "paratroop landings before Allied reinforcements arrive." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Brunn" msgstr "" #. campaigns/PG:268 msgid "" "Your initial capture of Moscow let arise hope that Russia would surrender. " "Unfortunately, the combination of bad weather and Russian reserves did not " "enable our exhausted troops to sustain any longer. While we managed to " "establish a stable front line again, the possibility for another advance " "towards Moscow has gone for good." msgstr "" #. units/pg.udb:9585 msgid "US P51B Mustg" msgstr "" #. units/pg.udb:1856 msgid "Hetzer" msgstr "" #. units/pg.udb:680 msgid "JU87R" msgstr "" #. scenarios/pg/Torch:2 msgid "TORCH" msgstr "" #. units/pg.udb:8437 msgid "U-Boat" msgstr "" #. maps/pg/map13:7 msgid "Menfi" msgstr "" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Bari" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Paris" msgstr "" #. maps/pg/map03:7 msgid "Dombas" msgstr "" #. maps/pg/map04:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map18:7 maps/pg/map38:7 msgid "Calais" msgstr "" #. units/pg.udb:2360 msgid "FlaKPz 38(t)" msgstr "" #. units/pg.udb:6673 msgid "ST La-5" msgstr "" #. maps/pg/map26:7 msgid "Dzhanshley" msgstr "" #. maps/pg/map26:7 msgid "Mekenziya" msgstr "" #. maps/pg/map14:7 msgid "Campobasso" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Terek" msgstr "" #. campaigns/PG:199 msgid "" "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have " "achieved what Napoleon only dreamed of. All of Russia has been put under " "German administration, and we have already begun exploiting its vast " "resources. For your leadership skills, you get awarded the highest order " "medal of the Reich, the Knight's Cross with Oak Leaves and Swords." msgstr "" #. maps/pg/map03:7 msgid "Mosjoen" msgstr "" #. maps/pg/map17:7 msgid "Ardenne" msgstr "" #. units/pg.udb:201 msgid "BF109k" msgstr "" #. maps/pg/map15:7 msgid "Sees" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Strasburg" msgstr "" #. units/pg.udb:6057 msgid "GB Inf 39" msgstr "" #. maps/pg/map08:7 msgid "Ahvaz" msgstr "" #. units/pg.udb:3956 msgid "FR Ch S35" msgstr "" #. maps/pg/map21:7 msgid "Sarande" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kiel" msgstr "" #. units/pg.udb:11685 msgid "FPO Truck" msgstr "" #. units/pg.udb:10593 msgid "US M18 " msgstr "" #. units/pg.udb:11713 msgid "FPO Infantry" msgstr "" #. units/pg.udb:7009 msgid "ST BA-64" msgstr "" #. campaigns/PG:74 msgid "" "France is weakened and open to attack. Since 1871, this is the first chance " "to battle down the mightiest army of Europe and face total victory on the " "Western continent. You are ordered to take Paris and various strategic " "coastal towns as well as towns of the hinterland." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Grozny" msgstr "" #. campaigns/PG:433 msgid "" "While fighting bravely against tremendous odds, the Allies could establish a " "beachhead on the Norman coast." msgstr "" #. units/pg.udb:10313 msgid "US M4A3E2(76)" msgstr "" #. campaigns/PG:345 msgid "" "Soviet Russia has eventually launched its long expected summer offensive of " "1944, ironically on the self same day we initiated operation Barbarossa " "three years ago. You are in charge of Army Group Center, and you must stop " "the Russian attack at any rate, and retake all objectives to turn the tides. " "If the odds are too strong, hold at least Warsaw until the 27th of August." msgstr "" #. maps/pg/map24:7 msgid "Konotop" msgstr "" #. maps/pg/map03:7 msgid "Hamar" msgstr "" #. maps/pg/map21:7 msgid "Lesh" msgstr "" #. maps/pg/map08:7 msgid "Jordan River" msgstr "" #. units/pg.udb:4376 msgid "AD Mk II SP" msgstr "" #. maps/pg/map36:7 msgid "Potomac River" msgstr "" #. units/pg.udb:11741 msgid "FPO Para" msgstr "" #. scenarios/pg/Crete:3 msgid "" "May 20, 1941: Germany attempts to capture the strategic island of Crete." msgstr "" #. maps/pg/map04:7 maps/pg/map05:7 msgid "Somme" msgstr "" #. scenarios/pg/Anvil:361 scenarios/pg/Anzio:374 scenarios/pg/Ardennes:558 scenarios/pg/Balkans:590 ... msgid "Axis Major Victory" msgstr "" #. units/pg.udb:5329 msgid "GB Crom VII" msgstr "" #. campaigns/PG:468 msgid "" "The Allied landings have been outright successful, and France is now " "definitely lost." msgstr "" #. maps/pg/map15:7 msgid "Lisieux" msgstr "" #. maps/pg/map19:7 msgid "Renkum" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Elista" msgstr "" #. maps/pg/map03:7 msgid "Narvik" msgstr "" #. maps/pg.tdb:8 msgid "Overcast(Dry)" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Volga" msgstr "" #. maps/pg/map03:7 msgid "Lillehammer" msgstr "" #. units/pg.udb:7121 msgid "ST T-34/40" msgstr "" #. maps/pg/map05:7 msgid "Nevers" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bromberg" msgstr "" #. maps/pg/map33:7 msgid "Polgardi" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Regensburg" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Stour" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "London" msgstr "" #. maps/pg/map24:7 msgid "Nehzin" msgstr "" #. units/pg.udb:3060 msgid "43 Wehr Inf" msgstr "" #. units/pg.udb:1828 msgid "StuH42" msgstr "" #. units/pg.udb:2388 msgid "37 FlaKPz IV" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Sosyka" msgstr "" #. campaigns/PG:584 msgid "30th June 1942" msgstr "" #. maps/pg/map36:7 msgid "Indian Creek" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Graz" msgstr "" #. maps/pg/map18:7 msgid "Rennes" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Hull" msgstr "" #. maps/pg/map17:7 msgid "Libramit" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Koslin" msgstr "" #. campaigns/PG:349 msgid "" "Holding Warsaw temporarily relieves us from pressure on the Eastern front, " "thus allowing High Command to transfer you to the Western Front." msgstr "" #. maps/pg/map16:7 msgid "Toulon" msgstr "" #. maps/pg/map30:7 msgid "Maloarkhangelsk" msgstr "" #. maps/pg/map36:7 msgid "Cleveland Park" msgstr "" #. maps/pg/map21:7 msgid "Bosna River" msgstr "" #. maps/pg/map36:7 msgid "Owings" msgstr "" #. maps/pg/map13:7 msgid "Palermo" msgstr "" #. units/pg.udb:1212 msgid "Pz38(t)F" msgstr "" #. units/pg.udb:10033 msgid "US M2 Halftrk" msgstr "" #. maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 msgid "Italian Camp" msgstr "" #. campaigns/PG:339 msgid "" "Thanks to your great achievements, the Soviet summer offensive has been " "halted, and enabled us to prepare further operations." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Main River" msgstr "" #. campaigns/PG:273 msgid "" "Now there are two opportunities to prove your skills against mighty odds. In " "the east, the Russians prepare their first summer offensive against Army " "Group Center, while in the west, the Allied prepare their invasion of france." "##Which theater do you want to take leadership of?" msgstr "" #. units/pg.udb:8269 msgid "Battleship Bk" msgstr "" #. maps/pg.tdb:28 msgid "Raining(Mud)" msgstr "" #. maps/pg/map14:7 msgid "Sulmona" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Plymouth" msgstr "" #. units/pg.udb:9921 msgid "US B24D Lib" msgstr "" #. units/pg.udb:9837 msgid "US A26 Inv" msgstr "" #. maps/pg/map14:7 msgid "Pescara River" msgstr "" #. units/pg.udb:285 msgid "ME262A1" msgstr "" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Otranto" msgstr "" #. units/pg.udb:5581 msgid "GB Church III" msgstr "" #. campaigns/PG:529 msgid "" "We were eventually able to halt the English counter offensive, and are now " "ready to perform another attack. While we do not have to gain as much ground " "as last year, English restistence is expected to be much stronger. While the " "chance for invading the Middle East has been lost, we may be able to prepare " "another invasion of England if the North African chapter is closed in time. " "You have to take all objectives by no later than the 28th of September. Yet, " "in order to finish preparations for an invasion of England this year, you " "have to finish you mission several weeks earlier." msgstr "" #. units/pg.udb:6421 msgid "GB 3 Inches AD" msgstr "" #. maps/pg/map21:7 msgid "Bobov" msgstr "" #. maps/pg/map16:7 msgid "Nice" msgstr "" #. units/pg.udb:7233 msgid "ST T-70" msgstr "" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Foggia" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Shrewbury" msgstr "" #. maps/pg/map17:7 msgid "Echlemach" msgstr "" #. units/pg.udb:1632 msgid "Panther G" msgstr "" #. units/pg.udb:7373 msgid "ST SU-152" msgstr "" #. maps/pg/map16:7 msgid "Durance River" msgstr "" #. maps/pg/map36:7 msgid "Potomac Heights" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Novocherkassk" msgstr "" #. campaigns/PG:1 msgid "World War II" msgstr "" #. units/pg.udb:4460 msgid "LC CR42" msgstr "" #. maps/pg/map29:7 msgid "Starobelsk" msgstr "" #. maps/pg/map16:7 msgid "Castellane" msgstr "" #. scenarios/pg/MiddleEast:3 msgid "Septempter 1, 1941: Axis attempts to seize the oil fields of Persia." msgstr "" #. campaigns/PG:36 msgid "" "Losing on the Polish front was an utter disaster. Your scandalous leadership " "has enabled the English and French to build up an formidable army which has " "begun invading Germany." msgstr "" #. units/pg.udb:10061 msgid "US M2A4" msgstr "" #. campaigns/PG:291 msgid "" "Not capturing Moscow in time gave the Russian adversaries plenty of " "opportunity to mobilise troops from Siberia and perform a counterattack. " "While we managed to establish a stable front line again, we could not " "attempt another advance in 1942." msgstr "" #. units/pg.udb:4040 msgid "FR Infantry" msgstr "" #. maps/pg/map16:7 msgid "Marseilles" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Makhach Kala" msgstr "" #. maps/pg/map21:7 msgid "Shkoder" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Thames" msgstr "" #. campaigns/PG:617 msgid "" "Not only halting the enemy onslaught at two front, but drive them back to " "the pre-war borders of the Reich is impressive. Therefore, we could achieve " "to sign a peace treaty that restored the status-quo from the 1st September " "1939." msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Honfleur" msgstr "" #. units/pg.udb:11265 msgid "US M8 Ghd LAC" msgstr "" #. maps/pg/map21:7 msgid "Serrai" msgstr "" #. maps/pg/map36:7 msgid "Annandale" msgstr "" #. campaigns/PG:608 msgid "" "Your taking of Washington was a masterpiece. However, the Americans revealed " "their secret weapon, called the Atomic Bomb, and inflicted heavy losses on " "our expeditionary forces. In order to reduce further casualties, we " "retreated from America, and signed a piece treaty. Though the America " "adventure did not work out, Germany rules all of Europe, Africa, and most " "parts of Asia. This overwhelming economical weight will enable us to carry " "on the war against America on another level. Now, the war is over, and for " "your heroic encouragement you are promoted to Generalfeldmarschall." msgstr "" #. units/pg.udb:9557 msgid "US P40 Whwk" msgstr "" #. maps/pg/map17:7 msgid "Tongres" msgstr "" #. units/pg.udb:428 msgid "BF110c" msgstr "" #. maps/pg/map26:7 msgid "Bartenevka" msgstr "" #. maps/pg/map03:7 msgid "Kristiansand" msgstr "" #. units/pg.udb:39 msgid "Leg" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Poti" msgstr "" #. units/pg.udb:2780 msgid "8.8 PaK43/41" msgstr "" #. campaigns/PG:235 msgid "Losing two battles in a row cannot be accepted." msgstr "" #. scenarios/pg/Byelorussia:2 msgid "BYELORUSSIA" msgstr "" #. maps/pg/map21:7 msgid "Parga" msgstr "" #. maps/pg/map18:7 msgid "St. Malo" msgstr "" #. maps/pg/map33:7 msgid "Dunafoldvar" msgstr "" #. units/pg.udb:8745 msgid "IT SM 82" msgstr "" #. maps/pg/map36:7 msgid "Langley Park" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map29:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Dnieper River" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Divnoe" msgstr "" #. maps/pg/map02:7 maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 ... msgid "Warsaw" msgstr "" #. units/pg.udb:2920 msgid "17 K18" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Serpukhov" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Rostov" msgstr "" #. maps/pg/map26:7 msgid "Mekenziery" msgstr "" #. units/pg.udb:10397 msgid "US M7" msgstr "" #. maps/pg/map24:7 msgid "Uman" msgstr "" #. maps/pg/map24:7 maps/pg/map30:7 msgid "Seym" msgstr "" #. scenarios/pg/EarlyMoscow:2 msgid "EARLY MOSCOW" msgstr "" #. campaigns/PG:646 msgid "" "You have failed us, Commander! The german reich suffered a minor defeat!" msgstr "" #. maps/pg/map33:7 msgid "Esztergom" msgstr "" #. nations/pg.ndb:40 msgid "Greece" msgstr "" #. units/pg.udb:5161 msgid "GB Mk I A9" msgstr "" #. maps/pg/map33:7 msgid "Papa" msgstr "" #. maps/pg/map16:7 msgid "Var River" msgstr "" #. maps/pg/map14:7 msgid "Mondragone" msgstr "" #. maps/pg/map24:7 msgid "Ichnaya" msgstr "" #. maps/pg/map14:7 msgid "Biferno River" msgstr "" #. units/pg.udb:1016 msgid "PzIIA" msgstr "" #. units/pg.udb:3704 msgid "FR D520S" msgstr "" #. units/pg.udb:8969 msgid "IT L6/40" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Darmstadt" msgstr "" #. units/pg.udb:4965 msgid "GB Mosq VI" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Valuiki" msgstr "" #. units/pg.udb:10453 msgid "US GM Truck" msgstr "" #. units/pg.udb:7737 msgid "ST SMG Inf" msgstr "" #. units/pg.udb:5189 msgid "GB Mk III A13" msgstr "" #. units/pg.udb:76 msgid "Anti-Aircraft" msgstr "" #. campaigns/PG:64 msgid "" "France is weakened and open to attack. Since 1871, this is the first chance " "to battle down the mightiest army of Europe and face total victory on the " "Western continent. You are ordered to take Paris and various strategic " "coastal towns as well as towns of the hinterland. Timing is important, as " "only an early completion of your mission enables us to finish preparations " "in time for the invasion of England." msgstr "" #. units/pg.udb:343 msgid "HE219" msgstr "" #. maps/pg/map18:7 msgid "Fougeres" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Beuthen" msgstr "" #. maps/pg/map14:7 msgid "Nera River" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Pinsk" msgstr "" #. units/pg.udb:1100 msgid "8.8 FK18 ATG" msgstr "" #. maps/pg/map16:7 msgid "Drome River" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Dusseldorf" msgstr "" #. maps/pg/map08:7 maps/pg/map14:7 maps/pg/map20:7 maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 ... msgid "Lake" msgstr "" #. campaigns/PG:252 msgid "" "Your inability to reach Stalingrad as well as shortages in supplies allowed " "the Russians to break through the thin defense lines of our exhausted " "troops, and to cut off large parts of the 6th Army in Stalingrad and " "annihilate them, and drive back the Eastern front." msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Dvina River" msgstr "" #. units/pg.udb:9697 msgid "US P47D Tbolt" msgstr "" #. campaigns/PG:428 msgid "6th June 1944" msgstr "" #. units/pg.udb:109 msgid "Air Transport" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Dresden" msgstr "" #. maps/pg/map04:7 maps/pg/map17:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Liege" msgstr "" #. maps/pg/map08:7 msgid "Abadan" msgstr "" #. units/pg.udb:1940 msgid "StuG IV" msgstr "" #. campaigns/PG:73 msgid "5th June 1940" msgstr "" #. maps/pg/map24:7 msgid "Gorodnya" msgstr "" #. campaigns/PG:369 msgid "" "While you managed to capture all objectives, the Russian offensive gained " "momentum too fast and drove us back to the Eastern limits of the Reich." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Innsbruck" msgstr "" #. maps/pg/map17:7 msgid "Manhay" msgstr "" #. campaigns/PG:117 msgid "" "Crete has been captured by the English in 1940 as a reaction on Italy's " "invasion of Albania. Since then, the English have erected air and naval " "bases which are likely to interfere with our upcoming operations against " "Soviet Russia. It is your order to take the island, capture the strategic " "bases, and drive the English troops into the sea. This is the largest " "airborne operation seen in this war." msgstr "" #. maps/pg/map29:7 msgid "Artemovsk" msgstr "" #. units/pg.udb:173 msgid "BF109g" msgstr "" #. maps/pg/map03:7 msgid "Stavanger" msgstr "" #. campaigns/PG:549 msgid "Caucasus" msgstr "" #. campaigns/PG:557 msgid "" "With all objectives taken, and the Americans expelled from Africa, you have " "proven your excellent leadership skills." msgstr "" #. maps/pg/map21:7 msgid "Kevalla" msgstr "" #. maps/pg/map04:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Boulogne" msgstr "" #. maps/pg/map36:7 msgid "Silver Spring" msgstr "" #. campaigns/PG:618 msgid "" "You held Berlin, but that has put us into an uncomfortable situation. We had " "to accept a peace treaty that was even harsher than the hated one of 1918." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Guren" msgstr "" #. campaigns/PG:539 msgid "1st September 1941" msgstr "" #. maps/pg/map13:7 maps/pg/map14:7 maps/pg/map21:7 msgid "Naples" msgstr "" #. maps/pg/map03:7 msgid "Mo-i-rana" msgstr "" #. units/pg.udb:1156 msgid "Pz 35(t)" msgstr "" #. maps/pg/map14:7 msgid "Formia" msgstr "" #. maps/pg.tdb:40 msgid "Overcast(Ice)" msgstr "" #. maps/pg/map17:7 msgid "Leshelm" msgstr "" #. units/pg.udb:11405 msgid "FFR 105mm Gun" msgstr "" #. maps/pg/map19:7 msgid "Schaarbergen" msgstr "" #. maps/pg/map21:7 msgid "Ivangrad" msgstr "" #. maps/pg/map33:7 msgid "Bicske" msgstr "" #. maps/pg/map13:7 msgid "Ribera" msgstr "" #. maps/pg/map24:7 msgid "Rumnyr" msgstr "" #. maps/pg/map30:7 msgid "Oka" msgstr "" #. nations/pg.ndb:36 msgid "Germany" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Krasnodar" msgstr "" #. maps/pg/map22:7 msgid "Retimo" msgstr "" #. maps/pg/map24:7 msgid "Boguslav" msgstr "" #. units/pg.udb:2052 msgid "JagdTiger" msgstr "" #. maps/pg.tdb:230 msgid "Road" msgstr "" #. units/pg.udb:456 msgid "BF110d" msgstr "" #. units/pg.udb:2080 msgid "PzJager IB" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Stalingrad" msgstr "" #. units/pg.udb:4320 msgid "NOR 75mm Gun" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Hannover" msgstr "" #. maps/pg/map33:7 msgid "Val" msgstr "" #. campaigns/PG:209 msgid "" "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have " "achieved what Napoleon only dreamed of. All of Russia has been put under " "German administration, and we have already begun exploiting its vast " "resources. For your leadership skills, you get awarded one of the highest " "order medals of the Reich, the Iron Cross with Oak Leaves and Swords." msgstr "" #. units/pg.udb:4572 msgid "SdKfz 6/2" msgstr "" #. maps/pg/map24:7 msgid "Pripet" msgstr "" #. units/pg.udb:5469 msgid "GB M3 Stuart" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Rossosh" msgstr "" #. campaigns/PG:85 msgid "North Africa" msgstr "" #. units/pg.udb:10005 msgid "US C47" msgstr "" #. maps/pg/map02:7 msgid "Tomaszow" msgstr "" #. units/pg.udb:3256 msgid "PO PZL P11c" msgstr "" #. campaigns/PG:34 msgid "" "Your performance in Poland has been outstanding, Herr General! You besieged " "and captured all objectives before the Soviet Union was able to catch up. " "Your forces have been diverted to the Western border to guard against French " "and English aggressions." msgstr "" #. maps/pg/map21:7 msgid "Argos" msgstr "" #. maps/pg/map29:7 msgid "Merefa" msgstr "" #. maps/pg/map15:7 msgid "Gavray" msgstr "" #. maps/pg.tdb:16 msgid "Snowing(Dry)" msgstr "" #. scenarios/pg/Moscow42:2 msgid "MOSCOW (42)" msgstr "" #. scenarios/pg/Poland:3 msgid "" "September 1, 1939: The German army crosses the Polish border with their " "famous blitzkrieg. In 10 days they must capture Lodz and Kutno... the gates " "to Warsaw." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Chirskaya" msgstr "" #. campaigns/PG:513 msgid "31st March 1941" msgstr "" #. maps/pg/map21:7 msgid "Katerim" msgstr "" #. maps/pg/map13:7 msgid "Brindisi" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Portsmouth" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Olmutz" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Oxford" msgstr "" #. units/pg.udb:9501 msgid "Yugoslav Inf" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Orleans" msgstr "" #. units/pg.udb:1240 msgid "Pz38(t)G" msgstr "" #. campaigns/PG:170 msgid "" "Your failure to decimate Russian troops in time enabled them to assemble and " "perform a counter-strike against our lines. Thus for 1941, all of our " "operations on the Eastern front had to cease." msgstr "" #. maps/pg/map17:7 msgid "La Leuviere" msgstr "" #. units/pg.udb:3032 msgid "39 Wehr Inf" msgstr "" #. maps/pg/map26:7 msgid "Sevastopol" msgstr "" #. maps/pg/map21:7 msgid "Devin" msgstr "" #. campaigns/PG:250 msgid "" "Stalin's town lies down in ruins, and German troops control the traffic on " "the Volga river, preventing the Russians to build up a force for a counter-" "attack. Thus, you can lead the advance towards Moscow without interference " "from the rear." msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Hastings" msgstr "" #. units/pg.udb:4208 msgid "FR 155mm Gun" msgstr "" #. maps/pg/map04:7 maps/pg/map17:7 msgid "Charleroi" msgstr "" #. maps/pg/map24:7 msgid "Zhitomir" msgstr "" #. maps/pg/map08:7 msgid "Samarra" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Schwerin" msgstr "" #. units/pg.udb:7569 msgid "ST SU-100" msgstr "" #. units/pg.udb:1408 msgid "PzIIIN" msgstr "" #. maps/pg/map16:7 msgid "Aubenas" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kropotkin" msgstr "" #. units/pg.udb:932 msgid "ME323d" msgstr "" #. units/pg.udb:6225 msgid "GB 17 Pdr ATG" msgstr "" #. units/pg.udb:4152 msgid "FR 75mm Gun" msgstr "" #. maps/pg/map16:7 msgid "Aygues River" msgstr "" #. maps/pg/map05:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map18:7 maps/pg/map38:7 msgid "Dieppe" msgstr "" #. maps/pg/map15:7 msgid "Flers" msgstr "" #. maps/pg/map21:7 msgid "Bosanska" msgstr "" #. maps/pg/map03:7 msgid "Alesund" msgstr "" #. maps/pg/map15:7 msgid "Villedieu-LP" msgstr "" #. units/pg.udb:9473 msgid "Greek Inf" msgstr "" #. units/pg.udb:11657 msgid "FPO Bren Ca" msgstr "" #. maps/pg/map33:7 msgid "Zirc" msgstr "" #. maps/pg/map03:7 msgid "Glomma River" msgstr "" #. maps/pg/map24:7 msgid "Mozyr" msgstr "" #. maps/pg/map12:7 msgid "Bone" msgstr "" #. units/pg.udb:5917 msgid "GB Daimler SC" msgstr "" #. maps/pg/map22:7 msgid "Sfakia" msgstr "" #. maps/pg/map36:7 msgid "Easton" msgstr "" #. maps/pg/map18:7 msgid "Seine River" msgstr "" #. units/pg.udb:5777 msgid "GB Sexton" msgstr "" #. maps/pg/map33:7 msgid "Slofok" msgstr "" #. campaigns/PG:483 msgid "16th December 1944" msgstr "" #. maps/pg/map13:7 msgid "Castrovillari" msgstr "" #. maps/pg/map20:7 maps/pg/map33:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Budapest" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Manchester" msgstr "" #. maps/pg/map19:7 msgid "Wolfheze" msgstr "" #. maps/pg/map18:7 msgid "Compiegne" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Suwalki" msgstr "" #. units/pg.udb:7401 msgid "ST KV-1/39" msgstr "" #. maps/pg/map22:7 msgid "Maleme" msgstr "" #. campaigns/PG:269 msgid "" "Not capturing Moscow in time gave the Russian adversaries plenty of " "opportunity to mobilise troops from Siberia and perform a counterattack. " "While we managed to establish a stable front line again, our hopes to " "capture Moscow are now gone for good." msgstr "" #. units/pg.udb:11041 msgid "US 3 Inches ATG" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Shchekino" msgstr "" #. maps/pg/map21:7 msgid "Monosterace" msgstr "" #. maps/pg/map26:7 msgid "Balaklava" msgstr "" #. campaigns/PG:234 msgid "" "By your taking of Sevastopol and the Krim peninsula in time, we could " "annihilate the Russian Black Sea fleet. There will be no more interference " "on our ongoing advance to the East." msgstr "" #. units/pg.udb:9949 msgid "US B29 SF" msgstr "" #. maps/pg/map08:7 msgid "Kaf" msgstr "" #. maps/pg/map36:7 msgid "Mattawoman Creek" msgstr "" #. maps/pg/map21:7 msgid "Karlovac" msgstr "" #. units/pg.udb:2528 msgid "SPW 250/1" msgstr "" #. units/pg.udb:16 msgid "Hard" msgstr "" #. maps/pg/map16:7 msgid "Nyons" msgstr "" #. maps/pg/map18:7 msgid "Alencon" msgstr "" #. units/pg.udb:4404 msgid "AD Mk I Fort" msgstr "" #. campaigns/PG:185 msgid "" "Moscow, capital and industrial, and logistical center of Russia, is the " "ultimate objective you have to strive for on the Eastern front. You have to " "capture Moscow and all other objectives by the 16th of November at the " "latest. Yet to prevent autumn weather to halt our advance, you should finish " "your mission several weeks earlier." msgstr "" #. units/pg.udb:7541 msgid "ST IS-2" msgstr "" #. maps/pg/map04:7 msgid "Dunkirk" msgstr "" #. units/pg.udb:9305 msgid "IT 155mm Gun" msgstr "" #. units/pg.udb:6197 msgid "GB 6 Pdr ATG" msgstr "" #. campaigns/PG:383 campaigns/PG:393 msgid "" "Your failure to conquer England in time before American reinforcements " "arrived has given the enemy the strength to strike back, and force our " "troops back to the continent." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Tiblisi" msgstr "" #. maps/pg/map22:7 msgid "Suda" msgstr "" #. scenarios/pg/MarketGarden:3 msgid "" "September 17, 1944: Daring airborne assault to capture a Rhine River " "crossing. A bridge too far?" msgstr "" #. maps/pg/map29:7 msgid "Novomoskovsk" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Erfuhrt" msgstr "" #. maps/pg/map18:7 msgid "Mayenne" msgstr "" #. units/pg.udb:11489 msgid "FFR GM Truck" msgstr "" #. units/pg.udb:7625 msgid "ST ISU-152 " msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Bardia" msgstr "" #. units/pg.udb:11377 msgid "FFR 75mm Gun" msgstr "" #. units/pg.udb:11965 msgid "Katyusha BM31" msgstr "" #. maps/pg/map36:7 msgid "Cameron Run" msgstr "" #. maps/pg/map18:7 msgid "Louviers" msgstr "" #. maps/pg/map18:7 msgid "Loire River" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Pilsen" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Pripyat River" msgstr "" #. maps/pg/map13:7 msgid "Crotone" msgstr "" #. scenarios/pg/Kursk:3 msgid "" "July 5, 1943: Operation Citadel launches a huge attack into well prepared " "Soviet defenses." msgstr "" #. maps/pg/map12:7 msgid "Algiers" msgstr "" #. campaigns/PG:365 msgid "" "We have gathered all strike forces for the ultimate offensive on the Eastern " "front. You have to take Budapest and all other objectives by no later than " "the 25th of March. To ensure that the Russians will not recover from the " "offensive, and sign a favourable peace treaty, you should capture all " "objectives several days earlier." msgstr "" #. units/pg.udb:1912 msgid "Jp Elefant" msgstr "" #. maps/pg/map15:7 msgid "Villers-Bocage" msgstr "" #. campaigns/PG:20 msgid "" "Fall Weiß, the conquest of Poland has commenced. Your order is to make an " "inroad breach through the main Polish defenses and take the towns of Kutno " "and Lodz by no later than the 10th of September. Failing to do so could " "cause England and France to declare war against Germany. An earlier " "completion may make available more resources to your for the assault of " "Warsaw." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kohlfurt" msgstr "" #. campaigns/PG:559 msgid "The American army made piecemeal out of the Africa Corps." msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Oka River" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Harwich" msgstr "" #. units/pg.udb:3648 msgid "FR CHk 75A-1" msgstr "" #. scenarios/pg/Sevastapol:3 msgid "June 7, 1942: The final assault on the Black Sea port of Sevastopol." msgstr "" #. maps/pg/map13:7 msgid "Catania" msgstr "" #. units/pg.udb:5609 msgid "GB Church IV" msgstr "" #. units/pg.udb:4796 msgid "GB Spit IX" msgstr "" #. units/pg.udb:229 msgid "FW190a" msgstr "" #. maps/pg/map33:7 msgid "Solt" msgstr "" #. campaigns/PG:391 msgid "" "Your early capturing of Southern England enabled us to prepare defenses " "against the landing of the American reinforcements, and to decisively beat " "them. Consequentially, England has surrendered! It is to be attributed to " "your talent and to the high morale of your troops that you achieved an " "unprecedented victory over the British Empire. England, Scotland, Ireland, " "and the oversea dependencies are now governed by German administration. You " "are herewith awarded one of the highest order medals of the Reich, the Iron " "Cross with Oak Leaves, and Swords." msgstr "" #. campaigns/PG:604 msgid "" "With African and Russian resources, we heavily increased the output of our " "war industries, consequentially enabling us to gain hold onto American soil. " "Our troops have advanced to the gates of Washington, and your order is to " "capture it. Take Washington and all other objectives by the 3rd of August at " "the latest. Intelligence reports that the Americans are testing a secret " "weapon, which will be ready for mid-July. Hence, to reduce German casualties " "and to emphasise our strong position, you should finish your mission by then." msgstr "" #. maps/pg/map12:7 msgid "Sfax" msgstr "" #. units/pg.udb:6253 msgid "GB 25 Pdr Gun" msgstr "" #. maps/pg/map21:7 msgid "Belgrade" msgstr "" #. units/pg.udb:3872 msgid "FR CL AMX R40" msgstr "" #. units/pg.udb:3396 msgid "PO 7TP" msgstr "" #. maps/pg/map05:7 msgid "Troyes" msgstr "" #. maps/pg/map15:7 msgid "Gace" msgstr "" #. campaigns/PG:549 msgid "Sealion43" msgstr "" #. campaigns/PG:41 msgid "9th April 1940" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Dortmund" msgstr "" #. units/pg.udb:820 msgid "Ju88A" msgstr "" #. campaigns/PG:90 msgid "" "Your decisive and early success in France gave us plenty of time to prepare " "operation Sealion, the invasion of England. You have to capture London and " "various key towns in the vicinity before Autumn weather sets in, causing " "rough sea and putting our supply lines at stake. This is a unique chance to " "force England to surrender and end the war." msgstr "" #. units/pg.udb:8633 msgid "IT Ma C205/O" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Stalino" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kimovsk" msgstr "" #. units/pg.udb:3004 msgid "8.8 FlaK 18" msgstr "" #. campaigns/PG:450 msgid "" "You fighted bravely against odds, but in vain. The Allied army drove our " "troops back to the Netherlands." msgstr "" #. maps/pg/map16:7 msgid "Nimes" msgstr "" #. maps/pg/map15:7 msgid "See River" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bidefeld" msgstr "Bielefeld" #. maps/pg/map08:7 msgid "Tigris River" msgstr "" #. maps/pg/map02:7 maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 ... msgid "Narew River" msgstr "" #. maps/pg/map19:7 msgid "St. Oedenrode" msgstr "" #. campaigns/PG:489 msgid "" "Wacht am Rhein was an utter failure. Massive Allied reinforcements drove our " "troops back to the limits of the Reich." msgstr "" #. units/pg.udb:8241 msgid "AF Transport" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Sollum" msgstr "" #. maps/pg/map02:7 msgid "Pilica River" msgstr "" #. maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 maps/pg/map07:7 ... msgid "Airfield" msgstr "" #. units/pg.udb:10285 msgid "US M4A3E2" msgstr "" #. units/pg.udb:35 msgid "Wheeled" msgstr "" #. units/pg.udb:3088 msgid "40 Wehr HW" msgstr "" #. units/pg.udb:3760 msgid "FFR M4A1" msgstr "" #. maps/pg.tdb:4 msgid "Fair(Dry)" msgstr "" #. maps/pg/map33:7 msgid "Szekesfehervar" msgstr "" #. maps/pg/map19:7 msgid "Dinther" msgstr "" #. campaigns/PG:121 msgid "" "You have done well. Despite heavy resistence, the suppremacy over the " "Mediterranean Sea is ours. Nothing can stop our operations in Russia now." msgstr "" #. nations/pg.ndb:72 msgid "Portugal" msgstr "" #. campaigns/PG:42 msgid "" "High Command has got a special order for you. In order to secure supply " "lines of Swedish ore, we prepared operation Weserübung, the invasion of " "Norway before the English will do so. You have to take Oslo, Stavanger-" "airport, and a number of Northern towns before the 3rd of May." msgstr "" #. scenarios/pg/Caucasus:2 msgid "CAUCASUS" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Passau" msgstr "" #. units/pg.udb:5385 msgid "GB Grant" msgstr "" #. units/pg.udb:848 msgid "DO217e" msgstr "" #. units/pg.udb:11937 msgid "Katyusha BM13" msgstr "" #. maps/pg/map21:7 msgid "Bosanki Petrovac" msgstr "" #. maps/pg/map17:7 msgid "Rochefort" msgstr "" #. maps/pg/map17:7 msgid "Phillipeville" msgstr "" #. campaigns/PG:565 maps/pg/map30:7 msgid "Kursk" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 msgid "Brzeziny" msgstr "" #. maps/pg/map02:7 msgid "Modlin" msgstr "" #. units/pg.udb:9893 msgid "US B17G FF" msgstr "" #. maps/pg/map21:7 msgid "Vratsa" msgstr "" #. maps/pg/map21:7 msgid "Drin River" msgstr "" #. campaigns/PG:31 msgid "" "Despite of your efforts England and France have entered the war against " "Germany. Additionally, our Eastern ally the Soviet Union has begun invading " "Poland to take its share of the cake. Thus it is imperative that you advance " "to the Vistula river and take the key city of Warsaw and surrounding " "objectives by no later than the 30th of September." msgstr "" #. maps/pg/map24:7 msgid "Kremench" msgstr "" #. campaigns/PG:77 msgid "" "Your performance was outstanding and has brought an overwhelming victory to " "the Reich. My humiliation of 1918 is revenged. France has surrendered, and " "its dependencies will be put under German protectorate." msgstr "" #. campaigns/PG:307 msgid "" "You bravely haltet the Russian winter offensive and managed to establish a " "stable front line." msgstr "" #. units/pg.udb:2752 msgid "7.5 PaK40" msgstr "" #. units/pg.udb:9669 msgid "US P47B Tbolt" msgstr "" #. maps/pg/map17:7 msgid "Prum" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Dessau" msgstr "" #. maps/pg/map04:7 msgid "Ghent" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Neubrandenburg" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Borisov" msgstr "" #. maps/pg/map08:7 msgid "Al Kazimayah" msgstr "" #. campaigns/PG:446 msgid "" "After their bloody repulse in Normandy, the Allies attempt a second invasion " "in Southern France. Hold all objectives until the 28th of August to make " "this invasion a disaster to the Allies again. Otherwise, hold at least two " "objectives to slow down the Allied advance." msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map15:7 maps/pg/map18:7 maps/pg/map38:7 msgid "Cherbourg" msgstr "" #. msgid "Defeat" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Zakepae" msgstr "" #. maps/pg/map08:7 msgid "Basra" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Elbe River" msgstr "" #. maps/pg/map04:7 msgid "Meuse" msgstr "" #. campaigns/PG:547 msgid "" "Your decisive victory in Mesopotamia has terminally weakened the English " "forces. Thus, there is a big opportunity to prepare an invasion of England, " "and end the war in the West. On the other hand, you may choose to continue " "advancing towards the Caucasus.##Herr General, which operation do you want " "to take command of?" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Millerovo" msgstr "" #. campaigns/PG:607 msgid "" "America has surrendered to the overwhelming might of the Wehrmacht, " "Luftwaffe, and Marine! The United States had to sign a peace treaty which " "grants German occupation of the most resourceful, and strategically most " "valuable American territories. You are heralded to be the greatest general " "on Earth without whom such a success would have never been achievable. " "Therefore, you are awarded the highest order medal, specially crafted for " "you, the Knight's Cross with Oak Leaves, Swords, and Brilliants, and you are " "promoted to Generalfeldmarschall. The war is over. Germany is the world, the " "world is Germany." msgstr "" #. units/pg.udb:3312 msgid "PO PZL P23b" msgstr "" #. units/pg.udb:5749 msgid "GB M7 Priest" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Cottbus" msgstr "" #. units/pg.udb:10985 msgid "US 37mm ATG" msgstr "" #. maps/pg/map16:7 msgid "Sisteron" msgstr "" #. maps/pg/map04:7 msgid "Lille" msgstr "" #. maps/pg/map24:7 msgid "Dnepr" msgstr "" #. units/pg.udb:8465 msgid "Transport" msgstr "" #. campaigns/PG:52 msgid "10th May 1940" msgstr "" #. units/pg.udb:1996 msgid "Jagdpz IV/70" msgstr "" #. nations/pg.ndb:44 msgid "USA" msgstr "" #. maps/pg/map15:7 msgid "Periers" msgstr "" #. maps/pg/map33:7 msgid "Tapolca" msgstr "" #. maps/pg/map13:7 msgid "Syracuse" msgstr "" #. campaigns/PG:462 msgid "25th July 1944" msgstr "" #. maps/pg/map29:7 msgid "Oskal River" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 ... msgid "Rough" msgstr "" #. campaigns/PG:381 msgid "" "Your early capturing of Southern England enabled us to prepare defenses " "against the landing of the American reinforcements, and to decisively beat " "them. Consequentially, England has surrendered! It is to be attributed to " "your talent and to the high morale of your troops that you achieved an " "unprecedented victory over the British Empire. England, Scotland, Ireland, " "and the oversea dependencies are now governed by German administration. You " "are herewith awarded the highest order medal of the Reich, the Knight's " "Cross with Oak Leaves, and Swords." msgstr "" #. campaigns/PG:463 msgid "" "The Allies extended their beachheads in Normandy and have built up " "considerable strength. With our troops scattered and exhausted, you face a " "hopeless battle against overwhelming forces. Your order is to hold all " "objectives as well as to retake Cherbourg, Carentan, and Caen. If not " "feasible, hold at least three objectives until the 18th of August." msgstr "" #. maps/pg/map22:7 msgid "Palaiokhora" msgstr "" #. nations/pg.ndb:8 msgid "Austria" msgstr "" #. units/pg.udb:10957 msgid "US Bridge Eng" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Mtsensk" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wurzburg" msgstr "" #. campaigns/PG:603 msgid "1st June 1945" msgstr "" #. maps/pg/map36:7 msgid "White House" msgstr "" #. maps/pg/map16:7 msgid "Saluzzo" msgstr "" #. units/pg.udb:3676 msgid "FR MS 406" msgstr "" #. scenarios/pg/Stalingrad:3 msgid "" "June 25, 1942: Axis all out drive on the major industrial center of " "Stalingrad." msgstr "" #. units/pg.udb:9781 msgid "US B25H Mitch" msgstr "" #. maps/pg/map21:7 msgid "Gallipoli" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Bournemouth" msgstr "" #. units/pg.udb:9053 msgid "IT M15/42" msgstr "" #. campaigns/PG:116 msgid "20th May 1941" msgstr "" #. maps/pg.tdb:392 msgid "Fields" msgstr "" #. maps/pg/map16:7 msgid "Po River" msgstr "" #. maps/pg/map29:7 msgid "Lisichansk" msgstr "" #. units/pg.udb:4180 msgid "FR 105mm Gun" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Karlsruhe" msgstr "" #. maps/pg/map36:7 msgid "Lanham" msgstr "" #. units/pg.udb:4853 msgid "GB Spit XIV" msgstr "" #. campaigns/PG:25 msgid "" "Your failure to make an inroad success has lead to the Allies making an " "attack on Germany." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Sukhum" msgstr "" #. maps/pg/map08:7 msgid "Dead Sea" msgstr "" #. maps/pg/map18:7 msgid "Fecamp" msgstr "" #. scenarios/pg/ElAlamein:2 msgid "EL ALAMEIN" msgstr "" #. campaigns/PG:505 msgid "" "You managed to take and hold Arnhem. Yet, bombing raids against our supply " "lines, and Allied reinforcements forced us to eventually abandon the Arnhem " "area, and to pull back behind the Rhine." msgstr "" #. units/pg.udb:7877 msgid "ST 57mm ATG" msgstr "" #. maps/pg/map13:7 msgid "Matera" msgstr "" #. maps/pg/map26:7 msgid "Novyi Shuli" msgstr "" #. units/pg.udb:1464 msgid "PzIVD" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Baku" msgstr "" #. units/pg.udb:10201 msgid "US M5" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map07:7 maps/pg/map08:7 ... msgid "Swamp" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Zurich" msgstr "" #. nations/pg.ndb:60 msgid "Netherlands" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Anglesey" msgstr "" #. campaigns/PG:518 msgid "Putting you in charge of the Africa Corps was an utter failure." msgstr "" #. maps/pg/map29:7 msgid "Andreyevka" msgstr "" #. campaigns/PG:135 msgid "22nd June 1941" msgstr "" #. maps/pg/map13:7 msgid "Pizzo" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kielce" msgstr "" #. maps/pg/map18:7 msgid "Dreux" msgstr "" #. units/pg.udb:8521 msgid "IT Re2000/F1" msgstr "" #. maps/pg/map19:7 msgid "Deurne" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Teschen" msgstr "" #. units/pg.udb:10677 msgid "US M36" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wilhelmshaven" msgstr "" #. scenarios/pg/BerlinEast:2 msgid "BERLIN (EAST)" msgstr "" #. campaigns/PG:540 msgid "" "Your next order is to secure the Middle East and Mesopotamia in order to " "allow for a new Southern front into the Caucasus. Take all objectives by the " "15th of November at the latest before autumn rainfalls will stop our advance " "in the mud." msgstr "" #. units/pg.udb:8073 msgid "AF BtCruiser" msgstr "" #. campaigns/PG:110 msgid "" "With Yugoslavia and Greece having surrendered, nothing can stop our upcoming " "invasion of Russia." msgstr "" #. maps/pg/map16:7 msgid "Ales" msgstr "" #. units/pg.udb:19 units/pg.udb:47 msgid "Air" msgstr "" #. maps/pg/map19:7 msgid "Volkel" msgstr "" #. maps/pg/map14:7 msgid "Vellitri" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Oppeln" msgstr "" #. maps/pg/map03:7 msgid "Steinkjer" msgstr "" #. maps/pg/map29:7 msgid "Petropavlovka" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Krefeld" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Sheffield" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Minsk" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map30:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Karachev" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Exeter" msgstr "" #. scenarios/pg/Moscow41:2 msgid "MOSCOW (41)" msgstr "" #. units/pg.udb:9333 msgid "Bridge Eng" msgstr "" #. campaigns/PG:319 msgid "5th July 1943" msgstr "" #. maps/pg/map21:7 msgid "Tirana" msgstr "" #. maps/pg/map24:7 msgid "Priluki" msgstr "" #. units/pg.udb:2724 msgid "5 PaK38" msgstr "" #. maps/pg/map14:7 msgid "Tiber River" msgstr "" #. maps/pg/map30:7 msgid "Lgov" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Duisburg" msgstr "" #. maps/pg/map33:7 msgid "Tab" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bremen" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kassel" msgstr "" #. maps/pg/map22:7 msgid "Canea" msgstr "" #. units/pg.udb:10733 msgid "US Inf 43" msgstr "" #. maps/pg/map36:7 msgid "Brightwood" msgstr "" #. units/pg.udb:10425 msgid "US M8 HMC" msgstr "" #. maps/pg/map15:7 msgid "Riva-Bella" msgstr "" #. maps/pg/map17:7 msgid "Houffalize" msgstr "" #. maps/pg/map20:7 maps/pg/map33:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Gyor" msgstr "" #. units/pg.udb:8213 msgid "AF Submarine" msgstr "" #. maps/pg/map17:7 msgid "Malmedy" msgstr "" #. maps/pg/map33:7 msgid "Veszprem" msgstr "" #. maps/pg/map36:7 msgid "Quantico" msgstr "" #. maps/pg/map29:7 msgid "Kirovi River" msgstr "" #. maps/pg/map33:7 msgid "Mezoszilas" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Prague" msgstr "" #. campaigns/PG:139 msgid "" "Russian reserves eventually stopped our slow advance and built up momentum " "to drive our troops back into the Reich." msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Canterbury" msgstr "" #. maps/pg/map01:7 msgid "Kalisz" msgstr "" #. scenarios/pg/Caucasus:3 msgid "" "June 30, 1942: Axis strikes into Russia's oil rich territory from a new " "southern front." msgstr "" #. campaigns/PG:411 msgid "" "Holding Rome has kept the Allied from invading our heartlands from the South." msgstr "" #. nations/pg.ndb:84 msgid "Sovjetunion" msgstr "" #. maps/pg/map05:7 msgid "Loire" msgstr "" #. scenarios/pg/Husky:3 msgid "July 10, 1943: The Allies invade the Soft Underbelly of Europe." msgstr "" #. units/pg.udb:55 msgid "All Terrain" msgstr "" #. campaigns/PG:445 msgid "6th August 1944" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Szczytno" msgstr "" #. scenarios/pg/Cobra:3 msgid "July 25, 1944: The Allied breakout from Normandy." msgstr "" #. units/pg.udb:5861 msgid "GB AEC II" msgstr "" #. campaigns/PG:578 msgid "" "Your exemplary victory in Sicily has considerably impressed General staff. " "Therefore, you are offered command over the strike force against Moscow." "##Herr General, do you want to stay in Italy, or do you want to be " "transferred to the Eastern front?" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Avon" msgstr "" #. maps/pg/map05:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map15:7 maps/pg/map18:7 maps/pg/map38:7 ... msgid "Le Havre" msgstr "" #. maps/pg/map36:7 msgid "University" msgstr "" #. maps/pg/map29:7 msgid "Chuguyev" msgstr "" #. units/pg.udb:11349 msgid "FFR Mtn Inf" msgstr "" #. units/pg.udb:2220 msgid "sIG IB" msgstr "" #. maps/pg/map12:7 msgid "Gafsa" msgstr "" #. campaigns/PG:89 msgid "1st September 1940" msgstr "" #. units/pg.udb:9725 msgid "US P47N Tbolt" msgstr "" #. maps/pg/map22:7 msgid "Kastelli" msgstr "" #. units/pg.udb:3172 msgid "43 LuftW FJ" msgstr "" #. maps/pg/map36:7 msgid "Fairfax" msgstr "" #. campaigns/PG:358 msgid "" "Your decisive victory in the battle of Budapest has made the Russians sign a " "favourable peace treaty. Combined with your earlier victory over England, we " "have won the war on both fronts. You are herewith promoted to " "Generalfeldmarschall as an acknowledgement of your brave achievements for " "the Reich during the war." msgstr "" #. maps/pg/map04:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Aachen" msgstr "" #. units/pg.udb:8493 msgid "S-Boat" msgstr "" #. maps/pg/map24:7 msgid "Lokhvitsa" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Grodno" msgstr "" #. units/pg.udb:1548 msgid "PzIVJ" msgstr "" #. maps/pg/map21:7 msgid "Zvornik" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Nantes" msgstr "" #. units/pg.udb:10705 msgid "US Inf 41" msgstr "" #. maps/pg/map04:7 maps/pg/map17:7 msgid "Givet" msgstr "" #. campaigns/PG:487 msgid "" "Herr General, your outstanding performance left a lasting impression to the " "Allied leader, enabling our Administration to sign a favourable peace " "treaty. The war in the West is now over." msgstr "" #. units/pg.udb:7961 msgid "ST 15.2cm Gun" msgstr "" #. units/pg.udb:11881 msgid "Fort" msgstr "" #. scenarios/pg/Sealion40:2 msgid "SEALION (40)" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Nieman River" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Metz" msgstr "" #. units/pg.udb:8717 msgid "IT P108 Bi" msgstr "" #. scenarios/pg/MarketGarden:2 msgid "MARKET-GARDEN" msgstr "" #. units/pg.udb:5413 msgid "GB Chal A30" msgstr "" #. maps/pg/map05:7 maps/pg/map15:7 maps/pg/map18:7 msgid "Bocage" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Linz" msgstr "" #. units/pg.udb:4292 msgid "NOR Infantry" msgstr "" #. scenarios/pg/SealionPlus:2 msgid "SEALION PLUS" msgstr "" #. units/pg.udb:1436 msgid "Pioniere Inf" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kletskavka" msgstr "" #. maps/pg/map21:7 msgid "Trikkala" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Allenstein" msgstr "" #. maps/pg/map17:7 msgid "Eupen" msgstr "" #. units/pg.udb:2332 msgid "Hummel" msgstr "" #. maps/pg/map18:7 msgid "Yvetot" msgstr "" #. maps/pg/map21:7 msgid "Kukes" msgstr "" #. campaigns/PG:57 msgid "" "You have proven to be a worthy Panzer General and secured the lowlands " "separating Germany from the heart of France. Now, the final assault on " "France is ready to commence. Unfortunately, time did not permit preparations " "of an invasion of England." msgstr "" #. maps/pg/map24:7 msgid "Chernobay" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Bir Hacheim" msgstr "" #. maps/pg/map04:7 msgid "Bittem" msgstr "" #. maps/pg/map33:7 msgid "Dunaujvaros" msgstr "" #. units/pg.udb:10789 msgid "US Inf HW 43" msgstr "" #. scenarios/pg/MiddleEast:2 msgid "MIDDLE EAST" msgstr "" #. maps/pg/map21:7 msgid "Banja Luka" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Cologne" msgstr "" #. units/pg.udb:876 msgid "HE177a" msgstr "" #. units/pg.udb:7485 msgid "ST KV-2" msgstr "" #. maps/pg/map21:7 msgid "Novigrad" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Mezol River" msgstr "" #. units/pg.udb:10537 msgid "US M15A1 MGMC" msgstr "" #. campaigns/PG:93 msgid "" "England has surrendered! It is to be attributed to your talent and to the " "high morale of your troops that you achieved an unprecedented victory over " "the British Empire. England, Scotland, Ireland, and the oversea dependencies " "are now governed by German administration. You are herewith awarded one of " "the highest order medals of the Reich, the Iron Cross with Oak Leaves, and " "Swords." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Ural" msgstr "" #. units/pg.udb:4909 msgid "GB Blen MkI" msgstr "" #. maps/pg/map36:7 msgid "Gaithersburg" msgstr "" #. maps/pg/map17:7 msgid "Spa" msgstr "" #. units/pg.udb:568 msgid "ME410a" msgstr "" #. units/pg.udb:3984 msgid "FR Ch B1-bis" msgstr "" #. maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Arnhem" msgstr "" #. units/pg.udb:10873 msgid "US Rangers 43" msgstr "" #. maps/pg/map17:7 msgid "Leuvein" msgstr "" #. maps/pg/map15:7 msgid "Deauville" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kotelnikovo" msgstr "" lgeneral-1.3.1/po/pg/pg.pot0000664000175000017500000042737412140770461012431 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2005-12-28 20:37+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: ENCODING\n" #. campaigns/PG:251 msgid "" "Although you managed to capture and destroy Stalingrad, shortages in " "supplies, and winter weather have exhausted our troops. This allowed the " "Russians to cut off large parts of the 6th Army in Stalingrad and annihilate " "them, and drive back the Eastern front." msgstr "" #. maps/pg/map15:7 msgid "Conde-sur-Noireau" msgstr "" #. campaigns/PG:285 msgid "1st October 1942" msgstr "" #. maps/pg/map21:7 msgid "Makarska" msgstr "" #. maps/pg/map24:7 msgid "Mirgorod" msgstr "" #. maps/pg/map03:7 msgid "Namsos" msgstr "" #. maps/pg/map17:7 msgid "Trois-Ponts" msgstr "" #. units/pg.udb:2248 msgid "sIG II" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Thorin" msgstr "" #. maps/pg/map03:7 maps/pg/map06:7 maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 maps/pg/map10:7 ... msgid "Mountain" msgstr "" #. maps/pg/map18:7 msgid "Elbeuf" msgstr "" #. units/pg.udb:11433 msgid "FFR 57mm ATG" msgstr "" #. campaigns/PG:47 msgid "" "Despite your heroic efforts, Norwegian and English resistence was too strong " "to clean the territory from enemy influence. As the state of affairs is " "heating up on the Western border, we had to retract all forces from Noway, " "and divert you there." msgstr "" #. campaigns/PG:649 msgid "" "You have achieved a minor victory for the german Reich, Commander! Well done." msgstr "" #. campaigns/PG:504 msgid "" "Congratulations on your outstanding and brave counter-attack. Yet, bombing " "raids against our supply lines, and Allied reinforcements forced us to " "eventually abandon the Arnhem area, and to pull back behind the Rhine." msgstr "" #. maps/pg/map13:7 msgid "Catanzaro" msgstr "" #. campaigns/PG:233 msgid "" "Excellent! By taking Sevastopol and the Krim peninsula early, we could " "annihilate the Russian Black Sea fleet. There will be no more interference " "on our ongoing advance to the East." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Essen" msgstr "" #. maps/pg/map14:7 msgid "Spoleto" msgstr "" #. units/pg.udb:94 msgid "Submarine" msgstr "" #. maps/pg/map03:7 msgid "Honefoss" msgstr "" #. units/pg.udb:4432 msgid "AD Mk II Fort" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Salzburg" msgstr "" #. maps/pg/map24:7 msgid "Berezna" msgstr "" #. units/pg.udb:5945 msgid "GB AEC III" msgstr "" #. campaigns/PG:368 msgid "" "Herr General, you fared excellent! Russia has signed a peace treaty, and we " "can fully throw our forces against the Allied." msgstr "" #. maps/pg/map26:7 msgid "Alma River" msgstr "" #. campaigns/PG:2 msgid "Nazi Germany starts World War II, attempting to seize the world." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Rostock" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 msgid "Ozorkow" msgstr "" #. maps/pg/map15:7 msgid "Trouville" msgstr "" #. maps/pg/map16:7 msgid "Rhone River" msgstr "" #. maps/pg/map19:7 msgid "Best" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Chartres" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Newbury" msgstr "" #. maps/pg/map05:7 msgid "Vichy" msgstr "" #. units/pg.udb:7849 msgid "ST 45mm ATG" msgstr "" #. maps/pg/map14:7 msgid "Caserta" msgstr "" #. units/pg.udb:3452 msgid "PO Cavalry" msgstr "" #. maps/pg/map18:7 msgid "Chateaudun" msgstr "" #. maps/pg/map29:7 msgid "Konstantinovka" msgstr "" #. maps/pg/map36:7 msgid "Brandywine" msgstr "" #. maps/pg/map24:7 msgid "Smela" msgstr "" #. maps/pg/map19:7 msgid "Wyler" msgstr "" #. units/pg.udb:9389 msgid "Bulgarian Inf" msgstr "" #. scenarios/pg/Barbarossa:3 msgid "" "June 22, 1941: Germany launches a surprise attack on its ally, the Soviet " "Union." msgstr "" #. nations/pg.ndb:20 msgid "Luxemburg" msgstr "" #. maps/pg/map17:7 msgid "Saar River" msgstr "" #. maps/pg/map17:7 msgid "Gembloux" msgstr "" #. units/pg.udb:9977 msgid "US B32 Dom" msgstr "" #. units/pg.udb:4544 msgid "LC Infantry" msgstr "" #. maps/pg/map14:7 msgid "Liri River" msgstr "" #. maps/pg/map13:7 msgid "Cosenza" msgstr "" #. maps/pg/map29:7 msgid "Valuyki" msgstr "" #. maps/pg/map17:7 msgid "Elsenborn" msgstr "" #. maps/pg/map24:7 msgid "Belaya Tserkov" msgstr "" #. maps/pg/map26:7 msgid "Lyubimuka" msgstr "" #. maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 maps/pg/map07:7 maps/pg/map08:7 ... msgid "Ocean" msgstr "" #. scenarios/pg/Torch:3 msgid "Nov 8, 1942: Americans face the veterans of the Afrika Korps." msgstr "" #. maps/pg/map29:7 msgid "Kupyansk" msgstr "" #. units/pg.udb:8157 msgid "AF Destroyer" msgstr "" #. maps/pg/map12:7 msgid "Djidjelli" msgstr "" #. maps/pg/map17:7 msgid "St. Trond" msgstr "" #. maps/pg/map24:7 msgid "Gomel" msgstr "" #. maps/pg/map17:7 msgid "Ciney" msgstr "" #. maps/pg/map17:7 msgid "Dyle River" msgstr "" #. maps/pg/map21:7 msgid "Kutina" msgstr "" #. units/pg.udb:9081 msgid "IT 75mm SPAD" msgstr "" #. maps/pg/map08:7 msgid "Al Maffraq" msgstr "" #. maps/pg/map17:7 msgid "Dasburg" msgstr "" #. maps/pg/map21:7 msgid "Gusnie" msgstr "" #. campaigns/PG:650 msgid "" "You have achieved a major victory for the german Reich, Commander! Excellent!" msgstr "" #. campaigns/PG:45 msgid "" "Excellent, Herr General! Your quick taking of Norway has enabled us to expel " "the English forces from Norway and station our fleet there. Our supply lines " "should be safe. You have been awarded command over troops at the Western " "border." msgstr "" #. units/pg.udb:5021 msgid "GB Stir MkI" msgstr "" #. units/pg.udb:1380 msgid "PzIIIJ" msgstr "" #. campaigns/PG:24 msgid "" "You managed to break resistence in time before the Allies could react. The " "gates to Warsaw are now wide open." msgstr "" #. units/pg.udb:6813 msgid "ST Il-2" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kattowitz" msgstr "" #. units/pg.udb:3732 msgid "FFR M5" msgstr "" #. maps/pg/map13:7 maps/pg/map14:7 msgid "Cassino" msgstr "" #. scenarios/pg/Kiev:3 msgid "" "August 23, 1941: The Wehrmacht attempts to pocket and destroy Soviet forces " "defending Kiev." msgstr "" #. units/pg.udb:5357 msgid "GB Crom VI" msgstr "" #. maps/pg/map16:7 msgid "Monaco" msgstr "" #. campaigns/PG:95 msgid "" "Your failure to conquer England had given the enemy a chance to build up " "resistence and assemble a naval fleet of formidable strength crippling our " "supply lines. Thus, our expeditionary forces were severely decimated, " "forcing us to sign an unfavorable peace treaty." msgstr "" #. maps/pg/map16:7 msgid "Cannes" msgstr "" #. campaigns/PG:402 msgid "" "The mission was a disaster. Not sustaining allowed the Allies to invade " "Germany from the South. Thanks to your earlier victory over Russia, quickly " "established war industries allowed us to fend off the capturing of Germany, " "allowing us to negotiate a peace treaty at minor disadvantages." msgstr "" #. maps/pg/map26:7 msgid "Belbok" msgstr "" #. units/pg.udb:5133 msgid "GB Matilda II" msgstr "" #. maps/pg/map29:7 msgid "Trostyanets" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 ... msgid "Forest" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Dniepr River" msgstr "" #. campaigns/PG:488 msgid "" "Despite your initial success in the Ardennes, the Allies denied our peace " "offering. With reinforcements arrived, they managed to drive us back to the " "limits of the Reich." msgstr "" #. maps/pg/map29:7 maps/pg/map30:7 msgid "Belgorod" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Voroshilovgrad" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Nelidova" msgstr "" #. maps/pg/map04:7 maps/pg/map17:7 msgid "Brussels" msgstr "" #. maps/pg/map16:7 msgid "Aix-en-Provence" msgstr "" #. maps/pg/map16:7 msgid "Grand Rhone River" msgstr "" #. campaigns/PG:275 campaigns/PG:331 campaigns/PG:418 msgid "Byelorussia" msgstr "" #. units/pg.udb:3284 msgid "PO PZL P24g" msgstr "" #. units/pg.udb:2696 msgid "3.7 PaK35/36" msgstr "" #. units/pg.udb:103 msgid "Aircraft Carrier" msgstr "" #. maps/pg/map24:7 msgid "Petrikov" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "El Agheila" msgstr "" #. maps/pg/map26:7 msgid "Nikoaevka" msgstr "" #. units/pg.udb:106 msgid "Land Transport" msgstr "" #. maps/pg/map19:7 msgid "Grave" msgstr "" #. units/pg.udb:1660 msgid "Tiger I" msgstr "" #. maps/pg/map05:7 msgid "Cholet" msgstr "" #. units/pg.udb:9361 msgid "AF Partisans" msgstr "" #. units/pg.udb:5973 msgid "GB Ram Kg" msgstr "" #. maps/pg/map24:7 msgid "Kalinkovich" msgstr "" #. maps/pg/map04:7 maps/pg/map05:7 maps/pg/map18:7 msgid "Abbeville" msgstr "" #. maps/pg/map13:7 msgid "Enna" msgstr "" #. campaigns/PG:514 msgid "" "You are now in charge of the Africa Corps to aid Italian troops in their " "battle against English mediterranean dependencies in North Africa. " "Strategically, High Commands attempts to take Egypt, and then to proceed " "towards Persia to open up a new Southern front into Russia. You have to take " "all objectives until the 27th of June at the latest, but to allow us to " "garrison sufficiently against counter-attacks, you should finish the mission " "earlier." msgstr "" #. maps/pg/map13:7 msgid "Caltagirone" msgstr "" #. units/pg.udb:7037 msgid "ST BT-5" msgstr "" #. maps/pg/map29:7 msgid "Izyum" msgstr "" #. units/pg.udb:10817 msgid "US Para 41" msgstr "" #. maps/pg/map29:7 msgid "Korocha" msgstr "" #. campaigns/PG:628 msgid "" "You bravely fended off the Russian onslaught from the Reich's limits. " "Combined with your earlier victory over England allowed us to return to the " "pre-war status-quo in the East." msgstr "" #. campaigns/PG:522 msgid "" "General staff is pleased with your success, and offers you the opportunity " "to lead the pocket operations around Kiev.##Herr General, would you like to " "stay in the desert, or participate in the Eastern theater?" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Salsk" msgstr "" #. units/pg.udb:2836 msgid "7.5 leFk 16nA" msgstr "" #. units/pg.udb:1800 msgid "StuGIIIG" msgstr "" #. campaigns/PG:528 msgid "26th May 1942" msgstr "" #. maps/pg/map33:7 msgid "Mor" msgstr "" #. maps/pg/map18:7 msgid "Evreux" msgstr "" #. scenarios/pg/Crete:2 msgid "CRETE" msgstr "" #. maps/pg/map36:7 msgid "Capitol Heights" msgstr "" #. units/pg.udb:9165 msgid "IT Fiat Truck" msgstr "" #. scenarios/pg/Washington:3 msgid "June 1, 1945: Yesterday Europe. Today America?" msgstr "" #. scenarios/pg/Kharkov:2 msgid "KHARKOV" msgstr "" #. maps/pg/map16:7 msgid "Arles" msgstr "" #. maps/pg/map19:7 msgid "Ijssel River" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Zwickau" msgstr "" #. maps/pg/map08:7 msgid "An Nabk" msgstr "" #. maps/pg/map16:7 msgid "Avignon" msgstr "" #. maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Warta River" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Rouen" msgstr "" #. maps/pg/map04:7 msgid "Hirshon" msgstr "" #. maps/pg/map17:7 msgid "Maubege" msgstr "" #. units/pg.udb:9641 msgid "US P51H Mustg" msgstr "" #. campaigns/PG:153 msgid "Let us battle the Soviet forces around Kiev." msgstr "" #. units/pg.udb:10257 msgid "US M4A3 (105)" msgstr "" #. units/pg.udb:4264 msgid "NOR F-DXXIII" msgstr "" #. campaigns/PG:624 msgid "" "We are now facing a massive force in the East invading German soil. Your " "order is to hold Berlin and at least five other objectives to prevent " "further detriment to the Reich." msgstr "" #. maps/pg/map29:7 msgid "Samara River" msgstr "" #. campaigns/PG:206 msgid "" "Moscow, capital and industrial, and logistical center of Russia, is the " "ultimate objective you have to strive for on the Eastern front. You have to " "capture Moscow and all other objectives by the 4th of December at the " "latest. Yet to prevent autumn weather to slow down our advance, you should " "finish your mission several weeks earlier." msgstr "" #. maps/pg.tdb:32 msgid "Snowing(Mud)" msgstr "" #. campaigns/PG:179 msgid "" "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have " "achieved what Napoleon only dreamed of. All of Russia has been put under " "German administration, and we have already begun exploiting its vast " "resources. Your decision to take the early route towards Moscow was right, " "and therefore you get awarded the highest order medal of the Reich, the " "Knight's Cross with Oak Leaves and Swords." msgstr "" #. units/pg.udb:9529 msgid "US P38 Ltng" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Ulm" msgstr "" #. maps/pg/map24:7 msgid "Novozybkov" msgstr "" #. maps/pg/map17:7 msgid "Saarburg" msgstr "" #. units/pg.udb:1352 msgid "PzIIIH" msgstr "" #. units/pg.udb:2808 msgid "PzIVF2" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Saint Lo" msgstr "" #. maps/pg/map24:7 msgid "Semenovka" msgstr "" #. campaigns/PG:569 msgid "10th July 1943" msgstr "" #. units/pg.udb:9417 msgid "Hungarian Inf" msgstr "" #. maps/pg/map36:7 msgid "Centreville" msgstr "" #. maps/pg/map30:7 msgid "Kromy" msgstr "" #. maps/pg/map12:7 msgid "Constantine" msgstr "" #. campaigns/PG:563 msgid "" "Your leadership skills are currently asked for at two places. You may choose " "to lead the upcoming Summer offensive in Russia against the pocket of Kursk, " "or to defend Italy against the expected invasion of allied troops.##Which " "battle do you want to participate in?" msgstr "" #. campaigns/PG:109 msgid "" "The quick and decisive blow you delivered to both Yugoslavia and Greece " "enabled High Command to prepare an airborne invasion of Crete. You have " "served the country well, and are awarded command over the operation." msgstr "" #. units/pg.udb:708 msgid "JU87D" msgstr "" #. maps/pg/map26:7 msgid "Kamyshly" msgstr "" #. maps/pg/map24:7 msgid "Gradizhisk" msgstr "" #. units/pg.udb:2500 msgid "Opel 6700" msgstr "" #. maps/pg/map36:7 msgid "Chester River" msgstr "" #. campaigns/PG:111 msgid "" "With Yugoslavia and Greece partially undefeated, we had to spare additional " "troops for the defence lines that will be missing on the Russian front." msgstr "" #. units/pg.udb:11293 msgid "US M20 LAC" msgstr "" #. scenarios/pg/LowCountries:3 msgid "" "May 10, 1940: Flanking the heavy fortifications of the Maginot Line, the " "Germans invade France through Belgium, Luxembourg, and the Netherlands." msgstr "" #. maps/pg/map15:7 msgid "St. Pierre" msgstr "" #. maps/pg/map15:7 msgid "Mortain" msgstr "" #. campaigns/PG:210 msgid "" "Your initial capture of Moscow let arise hope that Russia would surrender. " "Unfortunately, fresh Siberian reserves started a counter-attack and expelled " "our exhausted and worn down spearheads out of the capital. While we managed " "to establish a stable front line again, we could not attempt another advance " "in 1941." msgstr "" #. maps/pg/map03:7 msgid "Gol" msgstr "" #. maps/pg/map15:7 msgid "La Ferte-Mace" msgstr "" #. maps/pg/map36:7 msgid "Arlington" msgstr "" #. maps/pg/map24:7 msgid "Berdichev" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Roslavl" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Saratov" msgstr "" #. scenarios/pg/ElAlamein:3 msgid "May 26, 1942: Axis attempts to crush the Allied forces in North Africa." msgstr "" #. campaigns/PG:302 msgid "11th February 1943" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Vladimirovka" msgstr "" #. units/pg.udb:4348 msgid "AD Mk I SP" msgstr "" #. units/pg.udb:512 msgid "BF110g" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Nottingham" msgstr "" #. maps/pg/map08:7 msgid "Baghdad" msgstr "" #. maps/pg/map21:7 msgid "Dubrovnik" msgstr "" #. units/pg.udb:8129 msgid "AF LtCruiser" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 ... msgid "Clear" msgstr "" #. maps/pg/map15:7 msgid "Isigny" msgstr "" #. units/pg.udb:8045 msgid "AF Battleship" msgstr "" #. campaigns/PG:120 msgid "" "Excellent! Despite heavy resistence, the suppremacy over the Mediterranean " "Sea is ours. Nothing can stop our operations in Russia now." msgstr "" #. maps/pg/map08:7 msgid "Bierut" msgstr "" #. units/pg.udb:3116 msgid "43 Wehr HW" msgstr "" #. campaigns/PG:257 campaigns/PG:263 msgid "9th October 1943" msgstr "" #. maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Oder River" msgstr "" #. units/pg.udb:117 msgid "BF109e" msgstr "" #. maps/pg/map17:7 msgid "Waavre" msgstr "" #. maps/pg/map36:7 msgid "Chevy Chase" msgstr "" #. maps/pg/map36:7 msgid "College Park" msgstr "" #. units/pg.udb:764 msgid "DO17z" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Gleiwitz" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Stralsund" msgstr "" #. maps/pg/map19:7 msgid "Ede" msgstr "" #. units/pg.udb:6281 msgid "GB 5.5 Inches Gun" msgstr "" #. nations/pg.ndb:12 msgid "Belgia" msgstr "" #. units/pg.udb:4937 msgid "GB Blen MkIV" msgstr "" #. maps/pg/map05:7 msgid "Reims" msgstr "" #. maps/pg/map05:7 msgid "Thierry" msgstr "" #. units/pg.udb:10761 msgid "US Inf HW 41" msgstr "" #. scenarios/pg/Anvil:299 scenarios/pg/Anzio:329 scenarios/pg/Ardennes:491 scenarios/pg/Balkans:557 ... msgid "Allies" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Cracow" msgstr "" #. units/pg.udb:1072 msgid "PzIIF" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Frankfurt AO" msgstr "" #. nations/pg.ndb:76 msgid "Rumania" msgstr "" #. maps/pg/map17:7 msgid "Verviers" msgstr "" #. maps/pg/map17:7 msgid "Dinont" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Peterborough" msgstr "" #. maps/pg/map03:7 msgid "Elverum" msgstr "" #. scenarios/pg/France:3 msgid "" "June 5, 1940: With the French outflanked the Germans drive into France and " "attempt to capture Paris." msgstr "" #. maps/pg/map14:7 msgid "Sacco River" msgstr "" #. units/pg.udb:3816 msgid "FR Amiot 143" msgstr "" #. units/pg.udb:3200 msgid "PSW 234/2-8r" msgstr "" #. maps/pg/map16:7 msgid "Valence" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Saarbrucken" msgstr "" #. units/pg.udb:9613 msgid "US P51D Mustg" msgstr "" #. maps/pg/map13:7 msgid "Termini" msgstr "" #. units/pg.udb:7653 msgid "ST ISU-152 AT" msgstr "" #. maps/pg/map21:7 msgid "Elbassen" msgstr "" #. units/pg.udb:6561 msgid "ST La-3" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Okehampton" msgstr "" #. units/pg.udb:3564 msgid "AF 37mm ATG" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Maikop" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Vienna" msgstr "" #. maps/pg/map33:7 msgid "Simontornya" msgstr "" #. scenarios/pg/Norway:2 msgid "NORWAY" msgstr "" #. units/pg.udb:7177 msgid "ST T-34/43" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Donets" msgstr "" #. maps/pg/map03:7 msgid "City" msgstr "" #. units/pg.udb:10649 msgid "US M26 " msgstr "" #. maps/pg/map15:7 msgid "Thiberville" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 msgid "Bzura River" msgstr "" #. campaigns/PG:217 maps/pg/map07:7 maps/pg/map09:7 msgid "El Alamein" msgstr "" #. maps/pg/map12:7 msgid "British Camp" msgstr "" #. maps/pg/map21:7 msgid "Athens" msgstr "" #. maps/pg/map17:7 msgid "Aarshot" msgstr "" #. nations/pg.ndb:28 msgid "Finnland" msgstr "" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Taranto" msgstr "" #. maps/pg/map17:7 msgid "Monschau" msgstr "" #. units/pg.udb:5441 msgid "GB Comet" msgstr "" #. maps/pg/map04:7 maps/pg/map17:7 msgid "Namur" msgstr "" #. units/pg.udb:4712 msgid "GB Hur IID" msgstr "" #. units/pg.udb:540 msgid "ME210c" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Rzhev" msgstr "" #. scenarios/pg/Sealion43:2 msgid "SEALION (43)" msgstr "" #. units/pg.udb:3340 msgid "PO PZL P37b" msgstr "" #. maps/pg/map13:7 msgid "Sapry" msgstr "" #. maps/pg/map36:7 msgid "Wheaton" msgstr "" #. units/pg.udb:8773 msgid "IT AB-40" msgstr "" #. maps/pg/map30:7 msgid "Prokhorovka" msgstr "" #. units/pg.udb:736 msgid "Ju188a" msgstr "" #. maps/pg.tdb:12 msgid "Raining(Dry)" msgstr "" #. maps/pg/map16:7 msgid "Carpentras" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kirov" msgstr "" #. maps/pg/map03:7 msgid "Arendal" msgstr "" #. units/pg.udb:11153 msgid "US 8 Inches Gun" msgstr "" #. units/pg.udb:6001 msgid "GB Bren Ca" msgstr "" #. campaigns/PG:648 msgid "We have only achieved a draw with the Allies." msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kaluga" msgstr "" #. maps/pg/map36:7 msgid "Crestwood" msgstr "" #. units/pg.udb:22 units/pg.udb:51 msgid "Naval" msgstr "" #. maps/pg/map21:7 msgid "Sarajevo" msgstr "" #. units/pg.udb:1296 msgid "PzIIIE" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Cardigan" msgstr "" #. maps/pg/map14:7 msgid "Civitavecchia" msgstr "" #. units/pg.udb:652 msgid "JU87B" msgstr "" #. maps/pg/map26:7 msgid "Yukharina" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Ilinka" msgstr "" #. units/pg.udb:904 msgid "Ju52g5e" msgstr "" #. nations/pg.ndb:80 msgid "Spain" msgstr "" #. campaigns/PG:370 msgid "" "The russian offensive was too strong to overcome which forced us to retreat " "to the limits of the Reich." msgstr "" #. maps/pg/map17:7 msgid "Clervaux" msgstr "" #. units/pg.udb:61 msgid "Infantry" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Lida" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Baskunchak" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Carentan" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Norwich" msgstr "" #. maps/pg/map29:7 msgid "Svatovo" msgstr "" #. units/pg.udb:5721 msgid "GB Archer" msgstr "" #. maps/pg/map14:7 msgid "Avezzano" msgstr "" #. units/pg.udb:5553 msgid "GB M5 Stuart" msgstr "" #. maps/pg/map15:7 msgid "Livarot" msgstr "" #. units/pg.udb:6085 msgid "GB HW Inf 39" msgstr "" #. maps/pg/map05:7 msgid "Chateauroux" msgstr "" #. campaigns/PG:467 msgid "" "You sustained long enough to allow High Command to build up defenses in the " "rear." msgstr "" #. maps/pg/map13:7 msgid "Gela" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Konigsberg" msgstr "" #. units/pg.udb:8941 msgid "IT Sem M-42M" msgstr "" #. units/pg.udb:11517 msgid "FFR M8 LAC" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Brest" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Benghazi" msgstr "" #. units/pg.udb:10369 msgid "US M4A3(76)W" msgstr "" #. maps/pg/map13:7 msgid "Pachwo" msgstr "" #. units/pg.udb:10929 msgid "US Eng 43" msgstr "" #. maps/pg/map05:7 maps/pg/map15:7 maps/pg/map18:7 msgid "Argentan" msgstr "" #. maps/pg/map29:7 msgid "Debaltsevo" msgstr "" #. maps/pg/map17:7 msgid "Bitburg" msgstr "" #. maps/pg/map04:7 msgid "Sedan" msgstr "" #. units/pg.udb:4488 msgid "LC PZLP24" msgstr "" #. maps/pg/map03:7 msgid "Trondheim" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Augsburg" msgstr "" #. units/pg.udb:5525 msgid "GB Sh Firefly" msgstr "" #. maps/pg/map14:7 msgid "Terracina" msgstr "" #. maps/pg/map08:7 maps/pg/map16:7 msgid "German Camp" msgstr "" #. maps/pg/map29:7 msgid "Krasnopavlovka" msgstr "" #. maps/pg/map14:7 msgid "Isernia" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Derbent" msgstr "" #. maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Radom" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Brandenburg" msgstr "" #. maps/pg/map15:7 msgid "Port Facility" msgstr "" #. units/pg.udb:10117 msgid "US M3 " msgstr "" #. units/pg.udb:9249 msgid "IT 75mm Gun" msgstr "" #. maps/pg/map29:7 msgid "Vorskla River" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Weiland" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Puttusk" msgstr "" #. maps/pg/map08:7 msgid "Jerusalem" msgstr "" #. maps/pg/map18:7 msgid "Chateau Gontier" msgstr "" #. units/pg.udb:4068 msgid "FR 25mm ATG" msgstr "" #. campaigns/PG:406 msgid "22nd January 1944" msgstr "" #. units/pg.udb:11237 msgid "US 90mm AD" msgstr "" #. maps/pg/map18:7 msgid "Fontainebleau" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Munster" msgstr "" #. nations/pg.ndb:32 msgid "France" msgstr "" #. maps/pg/map21:7 msgid "Sisak" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Astrakhan" msgstr "" #. nations/pg.ndb:88 msgid "Sweden" msgstr "" #. units/pg.udb:43 msgid "Towed" msgstr "" #. maps/pg/map14:7 msgid "Turdino River" msgstr "" #. units/pg.udb:8017 msgid "AF Carrier" msgstr "" #. campaigns/PG:477 msgid "" "Herr General, your outstanding performance left a lasting impression to the " "Allied leader, enabling our Administration to sign a favourable peace " "treaty. Combined with your earlier victory over the Soviet Union, you have " "ended the war, and are herewith promoted to Generalfeldmarschall." msgstr "" #. maps/pg/map18:7 msgid "Pontoise" msgstr "" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Reggio" msgstr "" #. maps/pg/map19:7 msgid "Oosterbeek" msgstr "" #. units/pg.udb:7317 msgid "ST SU-85" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Stargar" msgstr "" #. units/pg.udb:1716 msgid "StuGIIIb" msgstr "" #. maps/pg/map29:7 msgid "Slavyansk" msgstr "" #. units/pg.udb:79 msgid "Air-Defense" msgstr "" #. maps/pg/map03:7 msgid "Halden" msgstr "" #. maps/pg/map04:7 msgid "St. Quentin" msgstr "" #. maps/pg/map19:7 msgid "Uden" msgstr "" #. maps/pg/map19:7 msgid "Nijmegen" msgstr "" #. maps/pg/map22:7 msgid "Neapolis" msgstr "" #. campaigns/PG:329 msgid "" "In this situation, High Command offers you to contribute your experience in " "another theater, Italy.##Herr General, do you want to continue fighting in " "Russia, or do you like to be transferred to Anzio?" msgstr "" #. maps/pg/map13:7 msgid "Belice River" msgstr "" #. maps/pg/map13:7 msgid "Marsala" msgstr "" #. maps/pg/map12:7 msgid "Biskra" msgstr "" #. maps/pg/map08:7 msgid "Amman" msgstr "" #. maps/pg/map21:7 msgid "Pula" msgstr "" #. maps/pg/map17:7 msgid "Laroche" msgstr "" #. campaigns/PG:85 msgid "Balkans" msgstr "" #. maps/pg/map15:7 msgid "Touques River" msgstr "" #. maps/pg/map16:7 msgid "Asse River" msgstr "" #. maps/pg/map12:7 msgid "Aflou" msgstr "" #. maps/pg/map21:7 msgid "Pehcevo" msgstr "" #. units/pg.udb:4600 msgid "FR HFII" msgstr "" #. scenarios/pg/Anvil:365 scenarios/pg/Anzio:378 scenarios/pg/Ardennes:549 scenarios/pg/Balkans:599 ... msgid "Axis Minor Victory" msgstr "" #. maps/pg/map36:7 msgid "Anacostia River" msgstr "" #. maps/pg/map33:7 msgid "Kisber" msgstr "" #. maps/pg/map29:7 msgid "Kharkov" msgstr "" #. maps/pg/map36:7 msgid "King George" msgstr "" #. units/pg.udb:6841 msgid "ST Il-2M3" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Marjupol" msgstr "" #. maps/pg/map05:7 msgid "Chalons" msgstr "" #. campaigns/PG:168 msgid "" "After your stunning victory over Soviet resistence, we expect Russia's " "reserves of men an material to be depleted." msgstr "" #. maps/pg/map30:7 msgid "Sumy" msgstr "" #. units/pg.udb:4124 msgid "FR 75mm ATG" msgstr "" #. maps/pg/map24:7 msgid "Talnoye" msgstr "" #. scenarios/pg/Cobra:2 msgid "COBRA" msgstr "" #. scenarios/pg/Kharkov:3 msgid "" "February 11, 1943: The Germans race to capture Kharkov and crush the Soviet " "winter offensive." msgstr "" #. maps/pg/map15:7 msgid "Arromanches" msgstr "" #. units/pg.udb:9445 msgid "Rumanian Inf" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Volga River" msgstr "" #. scenarios/pg/Byelorussia:3 msgid "June 22, 1944: The Soviet thrust to destroy Army Group Center." msgstr "" #. maps/pg/map04:7 msgid "Leie" msgstr "" #. campaigns/PG:429 msgid "" "In Normandy, the expected landings of Allied forces have commenced. The is " "the biggest invasion even seen by man, and you must stop it. You have to " "hold all your objectives to inflict a defeat to the Allied operations." msgstr "" #. units/pg.udb:3844 msgid "FR Ch Lr H35" msgstr "" #. maps/pg/map21:7 msgid "Trun" msgstr "" #. campaigns/PG:169 msgid "" "After your victory over Soviet resistence, we expect Russia's reserves of " "men an material to be depleted." msgstr "" #. campaigns/PG:78 msgid "" "Congratulations for conquering France and for bringing an overwhelming " "victory to the Reich. France has surrendered, and its dependencies will be " "put under German protectorate." msgstr "" #. units/pg.udb:7905 msgid "ST 76mm ATG" msgstr "" #. campaigns/PG:105 msgid "6th April 1941" msgstr "" #. units/pg.udb:960 msgid "PzIA" msgstr "" #. maps/pg/map17:7 msgid "Neufchateau" msgstr "" #. units/pg.udb:6953 msgid "ST Z25mm SPAA" msgstr "" #. units/pg.udb:6365 msgid "GB 20mm SPAA" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Liverpool" msgstr "" #. maps/pg/map17:7 msgid "Arlon" msgstr "" #. campaigns/PG:35 msgid "" "Congratulations, you have won the war against Poland, Herr General! You " "besieged and captured all objectives before the Soviet Union was able to " "catch up. Your forces have been diverted to the Western border to guard " "against French and English aggressions." msgstr "" #. units/pg.udb:3788 msgid "FR Bloch 174" msgstr "" #. maps/pg/map33:7 msgid "Szentendre" msgstr "" #. units/pg.udb:2556 msgid "SPW 251/1" msgstr "" #. maps/pg.tdb:2336 msgid "Harbor" msgstr "" #. units/pg.udb:31 msgid "Halftracked" msgstr "" #. units/pg.udb:9221 msgid "IT Bersglri " msgstr "" #. units/pg.udb:7065 msgid "ST BT-7" msgstr "" #. maps/pg/map13:7 maps/pg/map14:7 msgid "Garigliano River" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Podolsk" msgstr "" #. maps/pg/map21:7 msgid "Levadnia" msgstr "" #. maps/pg/map14:7 msgid "Terni" msgstr "" #. maps/pg/map26:7 msgid "Kadykovka" msgstr "" #. maps/pg/map19:7 msgid "Hussen" msgstr "" #. units/pg.udb:9277 msgid "IT 105mm Gun" msgstr "" #. maps/pg/map14:7 msgid "Turano River" msgstr "" #. units/pg.udb:64 msgid "Tank" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Weser River" msgstr "" #. units/pg.udb:7709 msgid "ST Truck" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Leipzig" msgstr "" #. scenarios/pg/Kursk:2 msgid "KURSK" msgstr "" #. maps/pg/map36:7 msgid "Zekiah Swamp Run" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Armavir" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Vitebsk" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 maps/pg/map22:7 maps/pg/map36:7 msgid "Alexandria" msgstr "" #. maps/pg/map15:7 msgid "Granville" msgstr "" #. maps/pg/map26:7 msgid "Cherkez Kermen" msgstr "" #. maps/pg/map04:7 msgid "Sambre" msgstr "" #. scenarios/pg/LowCountries:2 msgid "LOW COUNTRIES" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Avranches" msgstr "" #. campaigns/PG:614 msgid "" "This is the last stand. You have to fight against tremendous odds at either " "side of the front. Hold Berlin at any rate. Losing is not an option." msgstr "" #. units/pg.udb:91 msgid "Level Bomber" msgstr "" #. units/pg.udb:6309 msgid "GB 6 Inches Gun" msgstr "" #. units/pg.udb:371 msgid "HE162" msgstr "" #. units/pg.udb:6337 msgid "GB 7.2 Inches Gun" msgstr "" #. units/pg.udb:2976 msgid "3.7 FlaK36" msgstr "" #. maps/pg/map21:7 msgid "Agrinion" msgstr "" #. units/pg.udb:4516 msgid "LC F-DXX1" msgstr "" #. maps/pg/map19:7 msgid "Driel" msgstr "" #. units/pg.udb:8549 msgid "IT Re2005/S" msgstr "" #. maps/pg/map21:7 msgid "Bar" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Mozhaysk" msgstr "" #. maps/pg/map33:7 msgid "Budaors" msgstr "" #. campaigns/PG:306 msgid "" "With Kharkov retaken, and the Soviet strike force terminally beaten, we were " "able to thrust into the steppe directly towards Moscow." msgstr "" #. units/pg.udb:4740 msgid "GB Spit VB" msgstr "" #. units/pg.udb:9193 msgid "IT Infantry" msgstr "" #. units/pg.udb:7681 msgid "ST Para" msgstr "" #. units/pg.udb:1492 msgid "PzIVG" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Cardiff" msgstr "" #. campaigns/PG:325 msgid "" "While you were running against stiff resistence, the Soviets launched a " "counter-attack against the Germain pocket around Orel. Therefore, we had to " "retreat and divert divisions to aid against this massive attack. We have " "lost the initiative on the Eastern front and cannot allow for another attack " "in this year." msgstr "" #. units/pg.udb:5217 msgid "GB Crdr I" msgstr "" #. units/pg.udb:5273 msgid "GB Crdr III" msgstr "" #. campaigns/PG:647 msgid "" "You have totally failed us, Commander! The german reich suffered a major " "defeat!" msgstr "" #. units/pg.udb:1128 msgid "Lynx" msgstr "" #. maps/pg/map36:7 msgid "Prince Frederick" msgstr "" #. maps/pg/map17:7 msgid "Sambre River" msgstr "" #. maps/pg/map21:7 msgid "Kragujevac" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Aleksin" msgstr "" #. units/pg.udb:2584 msgid "PSW 222/4r" msgstr "" #. maps/pg/map07:7 msgid "Mersa Matruh" msgstr "" #. units/pg.udb:1324 msgid "PzIIIG" msgstr "" #. maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Rhine River" msgstr "" #. units/pg.udb:70 msgid "Anti-Tank" msgstr "" #. campaigns/PG:246 msgid "25th June 1942" msgstr "" #. nations/pg.ndb:16 msgid "Bulgaria" msgstr "" #. maps/pg/map16:7 msgid "Arc River" msgstr "" #. units/pg.udb:100 msgid "Capital Ship" msgstr "" #. maps/pg/map19:7 msgid "Oss" msgstr "" #. units/pg.udb:8689 msgid "IT CA309" msgstr "" #. campaigns/PG:164 msgid "23rd August 1941" msgstr "" #. maps/pg/map15:7 msgid "Selune River" msgstr "" #. maps/pg/map29:7 msgid "Pereshchepino" msgstr "" #. units/pg.udb:484 msgid "BF110e" msgstr "" #. scenarios/pg/D-Day:3 msgid "June 6, 1944: Allies launch Operation Overlord... the Second Front." msgstr "" #. maps/pg/map12:7 msgid "Medjerda River" msgstr "" #. scenarios/pg/Berlin:2 msgid "BERLIN" msgstr "" #. maps/pg/map36:7 msgid "Chillum" msgstr "" #. campaigns/PG:165 msgid "" "There has risen an opportunity to terminally cripple Russian forces. Around " "Kiev we have encountered a large amount of Russian troops. Using blitzkrieg " "tactics to their fullest extent, you are ordered to pocket and annihilate " "Soviet resistence in Kiev and surrounding towns. In order to continue our " "advance towards moscow, it is imperative that you capture all of your " "objective by no later than the 20th of September." msgstr "" #. campaigns/PG:211 msgid "" "Not capturing Moscow in time gave the Russian adversaries plenty of " "opportunity to mobilise troops from Siberia and perform a counterattack. " "While we managed to establish a stable front line again, we could not " "attempt another advance in 1941." msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Mechili" msgstr "" #. campaigns/PG:570 msgid "" "The British and American forces have begun invading Sicily, our ill-defended " "entrance gate to Southern Europe. Your orders are to hold all objectives. If " "this is not feasible, hold at least two objectives to slow down the Allied " "advance." msgstr "" #. maps/pg/map18:7 msgid "Chaumont" msgstr "" #. maps/pg/map03:7 msgid "Andalsnes" msgstr "" #. units/pg.udb:9025 msgid "IT M14/41" msgstr "" #. maps/pg/map17:7 msgid "Ourthe River" msgstr "" #. maps/pg/map16:7 msgid "Barcellonette" msgstr "" #. scenarios/pg/Ardennes:2 msgid "ARDENNES" msgstr "" #. units/pg.udb:6169 msgid "GB 2 Pdr ATG" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Birmingham" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Stoke" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Amsterdam" msgstr "" #. maps/pg/map12:7 msgid "Djelfa" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Merthyr" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Buelgorod" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map30:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Orel" msgstr "" #. maps/pg/map13:7 msgid "Corigliano" msgstr "" #. campaigns/PG:320 msgid "" "Since the front lines have stabilised, there is a pocket of Russian " "defenders around Kursk. Our strategy is to break through Soviet defenses " "from the North and South, and cut off and terminate all adversaries. Be " "aware that the Soviets have no doubt about our intentions, and have prepared " "their defenses well. You must take Kursk at any rate. Taking all other " "objectives by no later than the 24th of July will enable High Command to " "prepare for another assault on Moscow in 1943." msgstr "" #. maps/pg/map33:7 msgid "Pusztaszabolcs" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Orne River" msgstr "" #. campaigns/PG:532 msgid "" "Excellent performance, Herr General! With the English expelled from Egypt, " "we could successfully prepare an invasion of England." msgstr "" #. units/pg.udb:11573 msgid "FPO M5 Stuart" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Nuremberg" msgstr "" #. maps/pg/map21:7 msgid "Larissa" msgstr "" #. units/pg.udb:5301 msgid "GB Crom IV" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Escarpment" msgstr "" #. campaigns/PG:627 msgid "" "Pushing back the Russian onslaught to the pre-war borders of the Reich gave " "us, combined with your earlier victory over England, a strong position to " "negotiate a favourable peace treaty." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bremerhaven" msgstr "" #. maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 maps/pg/map10:7 maps/pg/map28:7 maps/pg.tdb:2012 ... msgid "Desert" msgstr "" #. maps/pg/map04:7 msgid "Escout" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Mannheim" msgstr "" #. maps/pg/map17:7 msgid "Our River" msgstr "" #. units/pg.udb:3144 msgid "40 LuftW FJ" msgstr "" #. units/pg.udb:6141 msgid "GB Para 39" msgstr "" #. units/pg.udb:400 msgid "DO335" msgstr "" #. units/pg.udb:6113 msgid "GB Bridge Eng" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Mersa Brega" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Ryazan" msgstr "" #. maps/pg/map08:7 msgid "Al Kuwait" msgstr "" #. campaigns/PG:553 msgid "8th November 1942" msgstr "" #. campaigns/PG:152 msgid "We take the early route towards Moscow." msgstr "" #. maps/pg/map13:7 msgid "Alcamo" msgstr "" #. maps/pg/map29:7 msgid "Dnepropetrovsk" msgstr "" #. campaigns/PG:303 msgid "" "As a result of their winter offensive, Russian troops are spread thin in the " "area of Kharkov. This is an excellent opportunity to start a counter-attack, " "annihilate the Soviet strike forces, and retake Kharkov. If you take Kharkov " "and all other objectives by at least the 4th of March, we may continue our " "advance in 1943. To undertake the necessary preparations for an attack of " "Moscow, it is imperative that you finish your mission much earlier." msgstr "" #. units/pg.udb:11097 msgid "US 105mm Gun" msgstr "" #. units/pg.udb:10229 msgid "US M4A3" msgstr "" #. maps/pg/map36:7 msgid "Tacoma Park" msgstr "" #. scenarios/pg/Sealion43:3 msgid "June 15, 1943: Germany attempts to finish off England." msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Bristol" msgstr "" #. maps/pg/map33:7 msgid "Aba" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Vilna" msgstr "" #. scenarios/pg/Washington:2 msgid "WASHINGTON" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Voronezh" msgstr "" #. maps/pg/map18:7 msgid "Bolbec" msgstr "" #. maps/pg/map29:7 msgid "Alekseyevka" msgstr "" #. units/pg.udb:6449 msgid "GB Para 43" msgstr "" #. maps/pg/map04:7 msgid "Ypres" msgstr "" #. units/pg.udb:6533 msgid "ST MiG-3" msgstr "" #. maps/pg/map30:7 msgid "Psel" msgstr "" #. scenarios/pg/Kiev:2 msgid "KIEV" msgstr "" #. units/pg.udb:7345 msgid "ST SU-122" msgstr "" #. units/pg.udb:3536 msgid "GB HW Inf 43" msgstr "" #. units/pg.udb:2948 msgid "2 FlaK38 (4)" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Sidi Barrani" msgstr "" #. maps/pg/map17:7 msgid "Marche-en-Famenne" msgstr "" #. nations/pg.ndb:52 msgid "Turkey" msgstr "" #. maps/pg/map24:7 msgid "Chernigov" msgstr "" #. maps/pg.tdb:36 msgid "Fair(Ice)" msgstr "" #. campaigns/PG:619 msgid "" "The former mighty Reich is reduced to rubbles. No authority is left to even " "sign a peace treaty. Germany has ceased to exist." msgstr "" #. campaigns/PG:574 msgid "" "The total defeat on the Southern front made Italy surrender to the Allies." msgstr "" #. maps/pg/map26:7 msgid "Omega" msgstr "" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Messina" msgstr "" #. campaigns/PG:275 campaigns/PG:418 msgid "D-Day" msgstr "" #. units/pg.udb:6785 msgid "ST PE-2" msgstr "" #. units/pg.udb:11853 msgid "Strongpoint" msgstr "" #. campaigns/PG:407 msgid "" "The Allies have fought up all their way from Sicily to the center of Italy. " "While we halted their advance at the Gustav line, the Allies performed a " "massive landing operation at the beachhead of Anzio-Nettuno. To prevent " "detriment to the Reich, it is imperative that you fend off this massive " "onslaught at all costs. You have to hold at least Rome and two other " "objectives to turn the battle into a more favourable direction." msgstr "" #. units/pg.udb:1044 msgid "PzIID" msgstr "" #. units/pg.udb:8801 msgid "IT AB-41" msgstr "" #. maps/pg/map13:7 msgid "San Stefano" msgstr "" #. maps/pg/map14:7 msgid "Viterbo" msgstr "" #. maps/pg/map20:7 maps/pg/map21:7 maps/pg/map33:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Danube River" msgstr "" #. campaigns/PG:83 msgid "" "Now there are two front lines to take care of. Herr General, which theater " "do you want to participate in?" msgstr "" #. maps/pg/map02:7 maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 ... msgid "Bug River" msgstr "" #. maps/pg/map14:7 msgid "Orvieto" msgstr "" #. maps/pg/map21:7 msgid "Sofia" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Tours" msgstr "" #. maps/pg/map15:7 msgid "St. Mere Eglise" msgstr "" #. maps/pg/map15:7 msgid "Courselles" msgstr "" #. maps/pg/map29:7 msgid "Pavlograd" msgstr "" #. maps/pg.tdb:24 msgid "Overcast(Mud)" msgstr "" #. units/pg.udb:13 msgid "Soft" msgstr "" #. units/pg.udb:112 msgid "Sea Transport" msgstr "" #. maps/pg/map02:7 maps/pg/map03:7 maps/pg/map07:7 maps/pg/map09:7 maps/pg/map14:7 maps/pg/map16:7 ... msgid "River" msgstr "" #. maps/pg/map29:7 msgid "Vasilovka" msgstr "" #. maps/pg/map03:7 msgid "Bjerkvik" msgstr "" #. campaigns/PG:247 msgid "" "Your next order is to lead the advance towards the industrial center of " "Stalingrad. Taking Stalingrad will cripple Russia's war industry, and cut " "supply lines over the Volga river. Thus, you must capture Stalingrad and all " "other objectives by the 22nd of November at the latest. Keep in mind that if " "we want to get another chance to advance towards Moscow this year, you have " "to finish your mission before October. Do not underestimate the vast " "distances of the steppe, and the supply shortage resulting thereof." msgstr "" #. campaigns/PG:230 msgid "" "We now set our sights on Army Group South which has besieged the Black Sea " "port of Sevastopol for nearly one year. The time is ripe for an eventual " "assault on Sevastopol, and you are ordered to conduct it. You have to force " "your way through the town of Sevastopol and capture all objectives by no " "later than the 23rd of June. After the Moscow desaster last year, we cannot " "allow for another defeat." msgstr "" #. scenarios/pg/Husky:2 msgid "HUSKY" msgstr "" #. maps/pg/map17:7 msgid "Huy" msgstr "" #. scenarios/pg/Berlin:3 msgid "April 1, 1945: The Last Stand." msgstr "" #. campaigns/PG:638 msgid "" "You bravely fended off the Allied onslaught from the Reich's limits. " "Combined with your earlier victory over Russia allowed us to return to the " "pre-war status-quo in the West." msgstr "" #. maps/pg/map29:7 msgid "Merla River" msgstr "" #. units/pg.udb:11013 msgid "US 57mm ATG" msgstr "" #. maps/pg/map36:7 msgid "Brookland" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Taunton" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Blagdernoe" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Berta" msgstr "" #. units/pg.udb:6757 msgid "ST Il-4" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Budweis" msgstr "" #. maps/pg/map13:7 maps/pg/map14:7 msgid "Benevento" msgstr "" #. units/pg.udb:6393 msgid "GB 40mm AD" msgstr "" #. units/pg.udb:4236 msgid "FR 40mm AD" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Mersey" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kimry" msgstr "" #. units/pg.udb:1772 msgid "StuGIIIF/8" msgstr "" #. units/pg.udb:2024 msgid "JagdPanther" msgstr "" #. units/pg.udb:5833 msgid "GB AEC I" msgstr "" #. maps/pg/map36:7 msgid "Piscataway Creek" msgstr "" #. maps/pg/map15:7 msgid "Vire" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kislovolsk" msgstr "" #. units/pg.udb:11909 msgid "Nebelwerfer" msgstr "" #. campaigns/PG:517 msgid "" "Your glorious advance along the North African coast has expelled the English " "forces out of Egypt, and allowed our troops to cross the Suez canal." msgstr "" #. maps/pg/map04:7 msgid "Mastricht" msgstr "" #. campaigns/PG:573 msgid "" "You managed to score a victory. Yet, our former Ally, the Italians have " "surrendered, thus making your efforts crumble in vain." msgstr "" #. maps/pg/map18:7 msgid "Vernon" msgstr "" #. nations/pg.ndb:24 msgid "Denmark" msgstr "" #. maps/pg/map17:7 msgid "Vianden" msgstr "" #. units/pg.udb:2192 msgid "Nashorn" msgstr "" #. campaigns/PG:94 msgid "" "Your brave efforts lead to the capturing of all Southern England. " "Unfortunately, bad weather and interference by the strong British fleet from " "the unattacked North have wreaked havoc on our supply lines. Thus, we were " "forced to retract all troops back to the continent." msgstr "" #. scenarios/pg/Warsaw:3 msgid "" "September 10, 1939: The Germans must capture Warsaw and end Polish " "resistance before the Allies react. " msgstr "" #. scenarios/pg/Budapest:3 msgid "March 6, 1945: Germany's last offensive." msgstr "" #. maps/pg/map36:7 msgid "Lexington Park" msgstr "" #. units/pg.udb:10481 msgid "US M10 " msgstr "" #. nations/pg.ndb:92 msgid "Switzerland" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Reichenbach" msgstr "" #. maps/pg/map18:7 msgid "Vitre" msgstr "" #. maps/pg/map05:7 msgid "Saumur" msgstr "" #. maps/pg/map14:7 msgid "Rapido River" msgstr "" #. maps/pg/map05:7 msgid "Mantes" msgstr "" #. campaigns/PG:580 msgid "Staying in Italy" msgstr "" #. units/pg.udb:9109 msgid "IT 90mm Breda" msgstr "" #. units/pg.udb:7513 msgid "ST KV-85" msgstr "" #. maps/pg/map29:7 msgid "Gorlovka" msgstr "" #. maps/pg/map21:7 msgid "Florina" msgstr "" #. units/pg.udb:6589 msgid "ST YaK-9M" msgstr "" #. maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Posen" msgstr "" #. maps/pg/map15:7 msgid "Thury Harcourt" msgstr "" #. units/pg.udb:1520 msgid "PzIVH" msgstr "" #. units/pg.udb:10509 msgid "US M12 GMC" msgstr "" #. scenarios/pg/SealionPlus:3 msgid "" "September 1, 1940: With Gibraltar taken the Italian Fleet aids the invasion " "of England." msgstr "" #. campaigns/PG:580 maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Moscow" msgstr "" #. campaigns/PG:558 msgid "" "Holding the key towns of Tunesia slowed down the advance of the Americans. " "However, we could not sustain the pressure, and thus were forced to rectract " "the Africa Corps back to Europe." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wiesbaden" msgstr "" #. units/pg.udb:6617 msgid "ST YaK-1M" msgstr "" #. maps/pg/map01:7 msgid "Rodomsko" msgstr "" #. scenarios/pg/BerlinWest:3 msgid "April 1, 1945: Western Allies invade Germany." msgstr "" #. nations/pg.ndb:64 msgid "Norway" msgstr "" #. units/pg.udb:1884 msgid "Jagdpanzer 38" msgstr "" #. maps/pg/map23:7 maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map32:7 maps/pg/map37:7 ... msgid "Smolensk" msgstr "" #. units/pg.udb:1968 msgid "Jagdpz IV/48" msgstr "" #. nations/pg.ndb:100 msgid "Yugoslavia" msgstr "" #. maps/pg/map29:7 msgid "Volchansk" msgstr "" #. maps/pg/map15:7 msgid "Lessay" msgstr "" #. units/pg.udb:10565 msgid "US M16 MGMC" msgstr "" #. units/pg.udb:8829 msgid "IT Sem L-47" msgstr "" #. units/pg.udb:2444 msgid "Ostwind I" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Coutances" msgstr "" #. units/pg.udb:2108 msgid "Marder II" msgstr "" #. campaigns/PG:3 msgid "Michael Speck, Leo Savernik" msgstr "" #. campaigns/PG:449 msgid "" "Contrary to what the odds have made us expect, you drove the Allied attack " "back into the sea. Whereas you freed France again from enemy influence, the " "Allied increased their bombing raids against vital German war industries as " "well as our supply lines in France. Not being able to reliably deliver " "reinforcements and material to France, the Allies established another " "beachhead, and drove our forces back to the Rhine." msgstr "" #. maps/pg/map22:7 msgid "Herakleion" msgstr "" #. maps/pg/map36:7 msgid "Bethesda" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Lubeck" msgstr "" #. maps/pg/map14:7 msgid "Sangro River" msgstr "" #. maps/pg/map14:7 msgid "Avellino" msgstr "" #. units/pg.udb:4096 msgid "FR 47mm ATG" msgstr "" #. maps/pg/map12:7 msgid "Sousse" msgstr "" #. maps/pg/map04:7 maps/pg/map05:7 maps/pg/map18:7 msgid "Amiens" msgstr "" #. scenarios/pg/Moscow43:3 msgid "October 9, 1943: Germany's final chance to end the war in the east." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Hamburg" msgstr "" #. maps/pg/map16:7 msgid "Aspres" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Valognes" msgstr "" #. maps/pg/map36:7 msgid "Capitol Hill" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Postavy" msgstr "" #. maps/pg/map18:7 msgid "Etretat" msgstr "" #. maps/pg/map05:7 msgid "Beauvais" msgstr "" #. maps/pg/map13:7 msgid "Trapani" msgstr "" #. campaigns/PG:331 maps/pg/map13:7 msgid "Anzio" msgstr "" #. maps/pg/map13:7 maps/pg/map14:7 msgid "Salerno" msgstr "" #. maps/pg/map02:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 maps/pg/map07:7 maps/pg/map09:7 ... msgid "Fortification" msgstr "" #. maps/pg/map03:7 msgid "Aalborg" msgstr "" #. maps/pg/map14:7 msgid "Rome" msgstr "" #. campaigns/PG:387 msgid "15th June 1943" msgstr "" #. campaigns/PG:149 msgid "" "High Command was impressed to such an extent by your excellent skills that " "we decided to delegate the decision of a critical strategic question to " "you.##General staff is divided into two camps. The first is proposing the " "opportunity to pocket and destroy a large amount of Soviet forces near Kiev " "before we proceed on our march towards Moscow. The second is proposing to " "leave aside Kiev and directly head towards Moscow before Autumn weather will " "slow down our advance.##Herr General, which strategy shall we pursue?" msgstr "" #. maps/pg/map24:7 msgid "Malin" msgstr "" #. maps/pg/map36:7 msgid "Annapolis" msgstr "" #. maps/pg/map16:7 msgid "Orange" msgstr "" #. scenarios/pg/Sealion40:3 msgid "September 1, 1940: Germany now sets its sights on England" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Borisoglebsk" msgstr "" #. maps/pg/map05:7 msgid "Montargis" msgstr "" #. maps/pg/map15:7 msgid "St. Sauveur-le-V." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Yeisk" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Pontorson" msgstr "" #. maps/pg/map14:7 msgid "Teramo" msgstr "" #. campaigns/PG:324 msgid "" "You were able to take Kursk, but the Soviets launched a counter-attack " "against the Germain pocket around Orel. Therefore, we had to retreat and " "divert divisions to aid against this massive attack. We have lost the " "initiative on the Eastern front and cannot allow for another attack in this " "year." msgstr "" #. campaigns/PG:308 msgid "" "Your failure at this mission forced the Reich to take back the front lines " "to compensate for German casualties faced in the battle." msgstr "" #. maps/pg/map12:7 msgid "Tebessa" msgstr "" #. maps/pg/map14:7 msgid "Trigno River" msgstr "" #. maps/pg/map01:7 msgid "Kutno" msgstr "" #. units/pg.udb:3424 msgid "PO Infantry" msgstr "" #. maps/pg/map03:7 msgid "Bodo" msgstr "" #. scenarios/pg/BerlinEast:3 msgid "April 1, 1945: Battle for survival against the Soviet Union." msgstr "" #. maps/pg/map08:7 msgid "An Najaf" msgstr "" #. units/pg.udb:2640 msgid "PSW 233/8r" msgstr "" #. units/pg.udb:11629 msgid "FPO M8 LAC" msgstr "" #. maps/pg/map17:7 msgid "Wiltz" msgstr "" #. maps/pg/map36:7 msgid "Benedict" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Coblenz" msgstr "" #. scenarios/pg/Anvil:3 msgid "" "Aug 6, 1944: Allies attempt to cut off Wehrmacht forces in Southern France." msgstr "" #. scenarios/pg/EarlyMoscow:3 msgid "" "September 8, 1941: Panzergruppe Guderian ignores Kiev and drives on Moscow." msgstr "" #. units/pg.udb:145 msgid "BF109f" msgstr "" #. maps/pg/map16:7 msgid "Isere River" msgstr "" #. maps/pg/map36:7 msgid "Upper Marlboro" msgstr "" #. maps/pg/map17:7 msgid "Blankenheim" msgstr "" #. maps/pg/map36:7 msgid "Anacostia" msgstr "" #. maps/pg/map24:7 msgid "Starodub" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Utrecht" msgstr "" #. units/pg.udb:11825 msgid "FPO 6 Inches Gun" msgstr "" #. maps/pg/map17:7 msgid "St. Hubert" msgstr "" #. maps/pg.tdb:20 msgid "Fair(Mud)" msgstr "" #. campaigns/PG:645 msgid "" "The german Reich has no need for incompetent untermenschen, Commander! " "Dismissed." msgstr "" #. maps/pg/map19:7 msgid "Helmond" msgstr "" #. campaigns/PG:524 maps/pg/map24:7 msgid "Kiev" msgstr "" #. units/pg.udb:8297 msgid "Battleship Dl" msgstr "" #. units/pg.udb:3900 msgid "FR AMC 35" msgstr "" #. maps/pg/map17:7 msgid "Ettelbruck" msgstr "" #. maps/pg/map16:7 msgid "Brignoles" msgstr "" #. scenarios/pg/Stalingrad:2 msgid "STALINGRAD" msgstr "" #. maps/pg/map21:7 msgid "Kalamai" msgstr "" #. scenarios/pg/Sevastapol:2 msgid "SEVASTOPOL" msgstr "" #. maps/pg/map33:7 msgid "Fonyod" msgstr "" #. scenarios/pg/Anzio:2 msgid "ANZIO" msgstr "" #. maps/pg/map02:7 msgid "Siedice" msgstr "" #. campaigns/PG:205 msgid "2nd October 1941" msgstr "" #. units/pg.udb:8913 msgid "IT Sem M-42" msgstr "" #. maps/pg/map15:7 msgid "Troarn" msgstr "" #. units/pg.udb:5693 msgid "GB Achilles" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Safonovo" msgstr "" #. maps/pg/map19:7 msgid "Opheusten" msgstr "" #. units/pg.udb:7597 msgid "ST ISU-122" msgstr "" #. units/pg.udb:10341 msgid "US M4A1(76)W" msgstr "" #. units/pg.udb:10621 msgid "US M24" msgstr "" #. maps/pg/map26:7 msgid "Komary" msgstr "" #. campaigns/PG:613 campaigns/PG:623 campaigns/PG:633 msgid "1st April 1945" msgstr "" #. maps/pg/map24:7 msgid "Rechitsa" msgstr "" #. campaigns/PG:364 msgid "6th March 1945" msgstr "" #. maps/pg/map36:7 msgid "Blackwater River" msgstr "" #. units/pg.udb:7933 msgid "ST 12.2cm Gun" msgstr "" #. maps/pg/map36:7 msgid "Hunting Creek" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Vyazma" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map36:7 maps/pg/map38:7 msgid "Cambridge" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kachalinsk" msgstr "" #. scenarios/pg/Budapest:2 msgid "BUDAPEST" msgstr "" #. maps/pg/map12:7 maps/pg/map13:7 msgid "Bizerta" msgstr "" #. units/pg.udb:9753 msgid "US B25B Mitch" msgstr "" #. units/pg.udb:1744 msgid "StuGIIIF" msgstr "" #. maps/pg/map08:7 msgid "Euphrates River" msgstr "" #. maps/pg/map02:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Vistula River" msgstr "" #. units/pg.udb:5889 msgid "GB Humber SC" msgstr "" #. maps/pg/map21:7 msgid "Skopje" msgstr "" #. units/pg.udb:624 msgid "FW190f" msgstr "" #. units/pg.udb:7205 msgid "ST T-34/85" msgstr "" #. maps/pg.tdb:48 msgid "Snowing(Ice)" msgstr "" #. maps/pg/map15:7 msgid "St. Vaast-la-Haugue" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Vire River" msgstr "" #. maps/pg/map36:7 msgid "Rockville" msgstr "" #. units/pg.udb:9137 msgid "IT 47mm ATG" msgstr "" #. maps/pg/map21:7 msgid "Babyak" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Schneidemuhl" msgstr "" #. maps/pg/map21:7 msgid "Bihal" msgstr "" #. nations/pg.ndb:68 msgid "Poland" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 maps/pg/map30:7 msgid "Don" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Bryanskoe" msgstr "" #. units/pg.udb:8605 msgid "IT Ma C202/F" msgstr "" #. maps/pg/map36:7 msgid "Riverdale" msgstr "" #. campaigns/PG:388 msgid "" "High Command has prepared an invasion of England this summer, and you are to " "lead the forces. This is the ultimate chance to knock England out of the " "war, and we have to succeed this time. As the English have established an " "alliance with the Americans, expect some US expeditionary forces aiding in " "the defense of England. You are ordered to take London and all other " "objectives by 13th of July at the latest, when strong American " "reinforcements are expected to arrive. In order to consolidate our defenses, " "you should finish your mission earlier." msgstr "" #. units/pg.udb:8857 msgid "IT Sem M-40" msgstr "" #. campaigns/PG:56 msgid "" "You passed with ease the battlefields our troops bravely but fruitlessly " "attacked in the World War. We reassembled the troops for the final assault " "on France, and we utilised the additional time to start preparations for the " "invasion of England." msgstr "" #. campaigns/PG:215 msgid "" "To prove your skills in another theater, High Command offers to you " "leadership over the Africa Corps fighting at El Alamein.##Herr General, do " "you wish to be transferred to Africa, or do you want to stay on the Eastern " "front?" msgstr "" #. scenarios/pg/France:2 msgid "FRANCE" msgstr "" #. maps/pg/map14:7 msgid "Sora" msgstr "" #. units/pg.udb:10145 msgid "US M4" msgstr "" #. scenarios/pg/Anvil:2 msgid "ANVIL" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Baranovichi" msgstr "" #. maps/pg/map21:7 msgid "Savna River" msgstr "" #. maps/pg/map13:7 msgid "Totenza" msgstr "" #. maps/pg/map36:7 msgid "Mt. Pleasant" msgstr "" #. units/pg.udb:2668 msgid "PSW 234/1-8r" msgstr "" #. maps/pg/map19:7 msgid "Elst" msgstr "" #. scenarios/pg/Warsaw:2 msgid "WARSAW" msgstr "" #. campaigns/PG:500 msgid "17th September 1944" msgstr "" #. maps/pg/map16:7 msgid "Draguigan" msgstr "" #. units/pg.udb:2864 msgid "10.5 leFH 18" msgstr "" #. maps/pg/map29:7 msgid "Krasnograd" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Halle" msgstr "" #. campaigns/PG:68 msgid "" "Congratulations for conquering France and for bringing an overwhelming " "victory to the Reich. France has surrendered, and its dependencies will be " "put under German protectorate. Yet it was too late to finish preparations " "for the invasion of England in time." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Batumi" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Landsberg" msgstr "" #. maps/pg/map36:7 msgid "Bladensburg" msgstr "" #. units/pg.udb:11181 msgid "US 40mm AD" msgstr "" #. maps/pg/map08:7 msgid "Karak" msgstr "" #. campaigns/PG:136 msgid "" "Eventually, time has come for operation Barbarossa, the long-term planned " "invasion of Soviet Russia. You are in charge of Army Group Center, and you " "have to conduct the main thrust through Soviet defences and keep them " "running. In order to prevent the enemy from establishing a front line and " "mobilise reserves from the rear, you have to capture Smolensk and all other " "objectives before the 7th of September." msgstr "" #. maps/pg/map29:7 msgid "Proletarskiy" msgstr "" #. maps/pg/map16:7 msgid "Argens River" msgstr "" #. units/pg.udb:7989 msgid "ST 7.6cm AD" msgstr "" #. maps/pg/map29:7 msgid "Rubezhnoye" msgstr "" #. maps/pg/map04:7 msgid "St. Valery" msgstr "" #. units/pg.udb:2304 msgid "Wespe" msgstr "" #. campaigns/PG:290 msgid "" "Your initial capture of Moscow let arise hope that Russia would surrender. " "Unfortunately, fresh Siberian reserves started a counter-attack and expelled " "our exhausted and worn down spearheads out of the capital. While we managed " "to establish a stable front line again, we could not attempt another advance " "in 1942." msgstr "" #. maps/pg/map15:7 msgid "Cabourg" msgstr "" #. maps/pg/map29:7 msgid "Akhtyrica" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Bedford" msgstr "" #. campaigns/PG:637 msgid "" "Pushing back the Allied onslaught to the pre-war borders of the Reich gave " "us, combined with your earlier victory over Russia, a strong position to " "negotiate a favourable peace treaty." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wittenberg" msgstr "" #. maps/pg/map17:7 msgid "Demer River" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Boguchar" msgstr "" #. scenarios/pg/Balkans:2 msgid "BALKANS" msgstr "" #. units/pg.udb:27 msgid "Tracked" msgstr "" #. maps/pg/map36:7 msgid "Queenstown" msgstr "" #. maps/pg/map29:7 msgid "Lyubotin" msgstr "" #. maps/pg/map05:7 maps/pg/map15:7 maps/pg/map18:7 msgid "Caen" msgstr "" #. units/pg.udb:1604 msgid "Panther A" msgstr "" #. scenarios/pg/Moscow41:3 msgid "" "October 2, 1941: Can the heroes of the Motherland hold the Panzers until the " "winter comes?" msgstr "" #. campaigns/PG:554 msgid "" "Meanwhile, the Africa Corps is facing another threat from the West. This is " "the initial landing of US expeditionary forces in Tunesia after their " "declaration of war against Germany. Though unexperienced, they outnumber our " "troops by far, and must not be underestimated. Your order is to force the " "American troops from the continent, taking all objectives. As a last resort, " "you have to hold at least Tunis and two other objectives to make the outcome " "favourable to us." msgstr "" #. maps/pg/map14:7 msgid "Rieti" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Laval" msgstr "" #. units/pg.udb:4628 msgid "GB Hur I" msgstr "" #. units/pg.udb:5077 msgid "GB C-47" msgstr "" #. campaigns/PG:348 msgid "" "Thanks to your great achievements, the Soviet summer offensive has been " "halted. Unfortunately, much pressure has accumulated on the Western front, " "so High Command decided to transfer you there to relieve the situation." msgstr "" #. units/pg.udb:6505 msgid "ST YaK-1" msgstr "" #. maps/pg/map36:7 msgid "Rappahannock River" msgstr "" #. maps/pg/map05:7 msgid "Seine" msgstr "" #. scenarios/pg/Anvil:278 scenarios/pg/Anzio:308 scenarios/pg/Ardennes:470 scenarios/pg/Balkans:536 ... msgid "Axis" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wuppertal" msgstr "" #. maps/pg/map21:7 msgid "Turnu Severin" msgstr "" #. campaigns/PG:416 msgid "" "Due to your exceptional leadership skills, you are offered command over Army " "Group Center in Russia.##Herr General, do you want to defend the Reich " "against Soviet forces in Byelorussia, or fight against the upcoming invasion " "of France?" msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Falaise" msgstr "" #. maps/pg/map29:7 msgid "Stakhanov" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Jutovo" msgstr "" #. campaigns/PG:264 msgid "" "For this year, we have gained another chance to advance towards Moscow, the " "logistical and industrial center of Russia. It is imperative that you take " "Moscow and all other objectives by no later than the 28th of December before " "winter weather will bring our advance to a halt. However, to garrison the " "city against russian counterattacks, you should finish your mission several " "weeks earlier. This is the ultimate chance to end the war in the East." msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Horsham" msgstr "" #. maps/pg/map21:7 msgid "Thessaloniki" msgstr "" #. maps/pg/map21:7 msgid "Mostar" msgstr "" #. maps/pg/map17:7 msgid "St. Vith" msgstr "" #. maps/pg/map19:7 msgid "St. Anthonis" msgstr "" #. units/pg.udb:2276 msgid "sIG 38(t)M" msgstr "" #. scenarios/pg/Anzio:3 msgid "" "Jan 22, 1944: German troops attack the Anzio Beachhead while attempting to " "maintain the Gustav Line." msgstr "" #. maps/pg/map14:7 msgid "Anzio-Nettuno" msgstr "" #. campaigns/PG:286 msgid "" "We have now another chance to advance towards Moscow and end the war in the " "East. However, the Soviet defenders are much better prepared this time. " "Therefore, it is imperative that you capture Moscow and a multitude of other " "objectives by the 28th of December at the latest. However, to make the " "Russians actually surrender, it is necessary to finish your mission several " "weeks earlier." msgstr "" #. scenarios/pg/Moscow43:2 msgid "MOSCOW (43)" msgstr "" #. units/pg.udb:7261 msgid "ST T-60" msgstr "" #. maps/pg/map16:7 msgid "Erteux River" msgstr "" #. units/pg.udb:10901 msgid "US Eng 41" msgstr "" #. maps/pg/map36:7 msgid "Severn River" msgstr "" #. maps/pg/map14:7 msgid "L'Aquila" msgstr "" #. nations/pg.ndb:96 msgid "Great Britain" msgstr "" #. maps/pg/map36:7 msgid "Glen Burnie" msgstr "" #. units/pg.udb:8661 msgid "IT BA65" msgstr "" #. units/pg.udb:11209 msgid "US 3 Inches AD" msgstr "" #. units/pg.udb:10845 msgid "US Para 43" msgstr "" #. campaigns/PG:484 msgid "" "We have entrenched ourselves at the Siegfried line and have observed Allied " "spearheads to slow down considerably. Thus, we prepared a strike force for a " "counter-attack, called operation Wacht am Rhein, in an attempt to " "precipitate a decision in the West. If you capture all objectives until the " "31st of December, we are in a strong position to negotiate a peace treaty." msgstr "" #. scenarios/pg/NorthAfrica:3 msgid "" "March 31, 1941: Axis attempts to seize Egypt and the Suez. Can the Desert " "Fox be stopped?" msgstr "" #. campaigns/PG:53 msgid "" "Now it is the time to make the French and English forces pay for their " "declarations of war. In an audacious two-pronged attack, your Northern " "forces will break through Liege, Brussels, Maubeuge, while your Southern " "forces will force their way through the rough Ardennes forests and take by " "surprise the northernmost outpost of the Maginot-line, Sedan. Both forces " "are bound to pass the battlefields of the World War and capture all " "objectives by the 8th of June. If you capture your objectives much earlier, " "this could give us a chance to prepare an invasion of England this year." msgstr "" #. maps/pg/map16:7 msgid "Briancon" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Worcester" msgstr "" #. campaigns/PG:434 msgid "" "Your troops were outnumbered on any scale, enabling the Allies to establish " "and extend their beachheads in Normandy." msgstr "" #. campaigns/PG:565 msgid "Husky" msgstr "" #. units/pg.udb:3480 msgid "AF 75mm Gun" msgstr "" #. maps/pg/map24:7 msgid "Korosten" msgstr "" #. maps/pg/map16:7 msgid "Gard River" msgstr "" #. maps/pg/map14:7 msgid "Pescara" msgstr "" #. units/pg.udb:988 msgid "PzIB" msgstr "" #. maps/pg/map17:7 msgid "Martelange" msgstr "" #. campaigns/PG:466 msgid "" "This is impressing! While General Staff internally knew that the order was " "infeasible given the scarce resources available, you managed to achieve the " "impossible and drove the Allied army back into the sea. As a reaction, the " "Allied increased the bombing raids against vital German war industries and " "our supply lines in France, putting your victory at stake. Exploiting the " "resource shortage, the Allies performed another landing, and drove our " "forces back to the Rhine." msgstr "" #. maps/pg/map21:7 msgid "Kula" msgstr "" #. maps/pg/map03:7 msgid "Lagen River" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Tsymiank" msgstr "" #. units/pg.udb:11797 msgid "FPO 25 Pdr" msgstr "" #. maps/pg/map08:7 msgid "Damascus" msgstr "" #. units/pg.udb:1268 msgid "SdKfz 7/1" msgstr "" #. maps/pg/map03:7 msgid "Oslo" msgstr "" #. maps/pg/map04:7 msgid "Arras" msgstr "" #. maps/pg/map30:7 msgid "Dmitrovsk-Orlovskiy" msgstr "" #. maps/pg/map17:7 msgid "Mons" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Le Mans" msgstr "" #. maps/pg/map17:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Trier" msgstr "" #. maps/pg/map36:7 msgid "Colonial Beach" msgstr "" #. units/pg.udb:10173 msgid "US M4A1" msgstr "" #. units/pg.udb:5497 msgid "GB Sherman" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Winchester" msgstr "" #. campaigns/PG:506 msgid "" "Your inability to sustain against paratroopers allowed the Allied to exploit " "the Rhine crossing, and to thrust against the German heartlands without " "delay." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Tikhoretsk" msgstr "" #. maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Eindhoven" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Stettin" msgstr "" #. maps/pg/map36:7 msgid "Falls Church" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Zagorsk" msgstr "" #. maps/pg/map13:7 msgid "Petralia" msgstr "" #. maps/pg/map04:7 msgid "Maubeuge" msgstr "" #. campaigns/PG:534 msgid "" "Supply shortage and the ever increasing resistence of English troops enabled " "the English to take the initiative, and expel the Africa Corps from Egypt " "and Libya." msgstr "" #. units/pg.udb:11461 msgid "FFR M2 Hftrk" msgstr "" #. campaigns/PG:543 msgid "" "Adverse weather and supply conditions forced our troops out of Mesopotamia, " "while English couter-attacks forced us out of Egypt. We basically have to " "start at the beginning now." msgstr "" #. maps/pg/map14:7 msgid "Lanciano" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Angers" msgstr "" #. campaigns/PG:392 msgid "" "Your brave efforts lead to the capturing of all Southern England. " "Unfortunately, the landing of American reinforcements and their " "counter-attack forced High Command to retract all troops back to the " "continent. You have been called to the Eastern front to prove that you are a " "worthy Panzer General nonetheless." msgstr "" #. scenarios/pg/NorthAfrica:2 msgid "NORTH AFRICA" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Cairo" msgstr "" #. units/pg.udb:7821 msgid "ST Bridge Eng" msgstr "" #. maps/pg/map08:7 msgid "Haifa" msgstr "" #. maps/pg/map36:7 msgid "Trinidad" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Czestochowa" msgstr "" #. maps/pg/map29:7 msgid "Krasnoarmeyskoye" msgstr "" #. scenarios/pg/Poland:2 msgid "POLAND" msgstr "" #. maps/pg/map04:7 maps/pg/map17:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Luxembourg" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Stary Oskol" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Groningen" msgstr "" #. maps/pg/map36:7 msgid "South Arlington" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Nevel" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Berlin" msgstr "" #. units/pg.udb:8381 msgid "Z-Destroyer" msgstr "" #. units/pg.udb:8101 msgid "AF HvyCruiser" msgstr "" #. maps/pg/map21:7 msgid "Mesolongion" msgstr "" #. maps/pg/map13:7 msgid "Caltanissetta" msgstr "" #. maps/pg/map16:7 msgid "Cuneo" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Mablethorpe" msgstr "" #. maps/pg/map14:7 msgid "Frosinone" msgstr "" #. maps/pg/map26:7 msgid "Mikhaili" msgstr "" #. units/pg.udb:11545 msgid "FFR M20 LAC" msgstr "" #. units/pg.udb:3592 msgid "AF Truck" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Budennovsk" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Tobruk" msgstr "" #. campaigns/PG:79 msgid "" "Making Germany face another disaster like in the World War has forced the " "Reich to surrender and sign an overly unfavourable peace treaty." msgstr "" #. units/pg.udb:4824 msgid "GB Meteor III" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Chatham" msgstr "" #. units/pg.udb:7793 msgid "ST Cavalry" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Berdansk" msgstr "" #. units/pg.udb:11769 msgid "FPO 6 Pdr ATG" msgstr "" #. maps/pg/map33:7 msgid "Tet" msgstr "" #. maps/pg/map19:7 msgid "Erp" msgstr "" #. campaigns/PG:122 msgid "" "Resistence was much heavier than anticipated from reconnaissance flights. " "Thus our troops faced heavy losses, and we had to retreat to the continent. " "Crete will pose a latent danger for the ongoing operations on the Eastern " "front." msgstr "" #. maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 maps/pg.tdb:2174 msgid "Rough Desert" msgstr "" #. units/pg.udb:6477 msgid "ST I-16" msgstr "" #. maps/pg/map13:7 msgid "Gaeta" msgstr "" #. maps/pg/map04:7 msgid "Roer" msgstr "" #. maps/pg/map09:7 msgid "Marsa Matruh" msgstr "" #. maps/pg/map15:7 msgid "St. Hilaire" msgstr "" #. campaigns/PG:19 msgid "1st September 1939" msgstr "" #. scenarios/pg/Barbarossa:2 msgid "BARBAROSSA" msgstr "" #. maps/pg/map22:7 msgid "Melambes" msgstr "" #. scenarios/pg/Anvil:330 scenarios/pg/Anzio:365 scenarios/pg/Ardennes:562 scenarios/pg/Balkans:603 ... msgid "Axis Defeat" msgstr "" #. maps/pg/map15:7 msgid "Vimoutiers" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Basel" msgstr "" #. maps/pg.tdb:44 msgid "Raining(Ice)" msgstr "" #. units/pg.udb:7429 msgid "ST KV-1/41" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Lodz" msgstr "" #. campaigns/PG:184 msgid "8th September 1941" msgstr "" #. maps/pg/map36:7 msgid "Georgetown" msgstr "" #. maps/pg/map36:7 msgid "Patuxent River" msgstr "" #. units/pg.udb:4684 msgid "GB Spit II" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Miskolc" msgstr "" #. campaigns/PG:46 msgid "" "Taking all objectives has enabled us to expel the English forces from Norway " "and station our fleet there. Our supply lines should be safe. You have been " "awarded command over troops at the Western border." msgstr "" #. campaigns/PG:30 msgid "10th September 1939" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Danzig" msgstr "" #. maps/pg/map16:7 msgid "Linee River" msgstr "" #. campaigns/PG:229 msgid "7th June 1942" msgstr "" #. units/pg.udb:7093 msgid "ST T-28M1" msgstr "" #. units/pg.udb:2416 msgid "Wirbelwind" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Tula" msgstr "" #. units/pg.udb:97 msgid "Destroyer" msgstr "" #. maps/pg/map17:7 msgid "Vielsalm" msgstr "" #. maps/pg/map21:7 msgid "Debar" msgstr "" #. maps/pg/map12:7 maps/pg/map13:7 msgid "Tunis" msgstr "" #. maps/pg.tdb:1364 msgid "Town" msgstr "" #. units/pg.udb:6701 msgid "ST YaK-9" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Tamar" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Timoshevskaya" msgstr "" #. maps/pg/map03:7 msgid "Harstad" msgstr "" #. maps/pg/map36:7 msgid "West River" msgstr "" #. scenarios/pg/Moscow42:3 msgid "" "October 1, 1942: Axis offensive to capture Moscow and end the war in the " "east." msgstr "" #. units/pg.udb:67 msgid "Recon" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Volkovysk" msgstr "" #. units/pg.udb:2136 msgid "Marder IIIH" msgstr "" #. units/pg.udb:2472 msgid "SdKfz 10/4" msgstr "" #. units/pg.udb:3508 msgid "GB Inf 43" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Moselle River" msgstr "" #. units/pg.udb:6029 msgid "GB 3 Tn Lorry" msgstr "" #. units/pg.udb:7457 msgid "ST KV-1/42" msgstr "" #. units/pg.udb:4012 msgid "FR Truck" msgstr "" #. campaigns/PG:23 msgid "" "Your quick breakthrough in Poland enabled High Command to make additional " "resources available to you." msgstr "" #. maps/pg/map14:7 msgid "Vasto" msgstr "" #. maps/pg/map05:7 msgid "Bourges" msgstr "" #. maps/pg/map16:7 msgid "Grenoble" msgstr "" #. units/pg.udb:2892 msgid "15 sFH 18" msgstr "" #. maps/pg/map14:7 msgid "Latina" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Obninsk" msgstr "" #. units/pg.udb:6645 msgid "ST YaK-7B" msgstr "" #. maps/pg/map15:7 msgid "Bayeux" msgstr "" #. maps/pg/map29:7 msgid "Orel River" msgstr "" #. units/pg.udb:9865 msgid "US B17F FF" msgstr "" #. campaigns/PG:609 msgid "" "Fanatic resistence kept our troops from advancing fast enough before the " "Americans used their secret weapon, the Atomic Bomb. Thus, heavy losses " "forced us to retract our troops from the American continent. Your America " "adventure has been a disaster, but General Staff ows you acknowledgement for " "your earlier victories over Western and Eastern Europe." msgstr "" #. units/pg.udb:9809 msgid "US B26C Mardr" msgstr "" #. maps/pg/map29:7 msgid "Kramatorsk" msgstr "" #. maps/pg/map30:7 msgid "Novosil" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Konstantinovsk" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Gazala" msgstr "" #. units/pg.udb:7765 msgid "ST Infantry" msgstr "" #. nations/pg.ndb:56 msgid "Italy" msgstr "" #. maps/pg/map30:7 msgid "Rylsk" msgstr "" #. maps/pg/map12:7 msgid "Phillippeville" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kalinin" msgstr "" #. maps/pg/map24:7 msgid "Radomyshi" msgstr "" #. maps/pg/map13:7 msgid "Sciacca" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kolomna" msgstr "" #. units/pg.udb:11321 msgid "FFR Infantry" msgstr "" #. maps/pg/map03:7 msgid "Molde" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Teykovo" msgstr "" #. maps/pg/map24:7 msgid "Lubnyr" msgstr "" #. campaigns/PG:634 msgid "" "We are now facing a massive force in the West invading German soil. Your " "order is to hold Berlin and at least five other objectives to prevent " "further detriment to the Reich." msgstr "" #. units/pg.udb:11601 msgid "FPO Sherman" msgstr "" #. maps/pg/map17:7 maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Meuse River" msgstr "" #. units/pg.udb:85 msgid "Fighter" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Bryansk" msgstr "" #. maps/pg/map36:7 msgid "Accotink Creek" msgstr "" #. maps/pg/map15:7 msgid "Dol" msgstr "" #. maps/pg/map30:7 msgid "Dmitriyev-Lgovskiy" msgstr "" #. units/pg.udb:73 msgid "Artillery" msgstr "" #. maps/pg/map15:7 msgid "Sienner River" msgstr "" #. maps/pg/map05:7 msgid "Ham" msgstr "" #. units/pg.udb:4656 msgid "GB Spit I" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Nancy" msgstr "" #. campaigns/PG:323 msgid "" "Your performance was outstanding! Despite heavy resistence, you were able to " "crush the enemy and successfully secure the pocket of Kursk. Thanks to this " "masterpiece, we can attempt another assault on Moscow." msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Great Vermouth" msgstr "" #. maps/pg/map05:7 msgid "Vienne" msgstr "" #. units/pg.udb:2612 msgid "PSW 231/6r" msgstr "" #. units/pg.udb:1688 msgid "Tiger II" msgstr "" #. campaigns/PG:382 msgid "" "Your brave efforts lead to the capturing of all Southern England. " "Unfortunately, the landing of American reinforcements and their " "counter-attack forced High Command to retract all troops back to the " "continent." msgstr "" #. campaigns/PG:340 msgid "" "Holding Warsaw temporarily relieved us from pressure on the Eastern front, " "and enabled us to prepare further operations." msgstr "" #. units/pg.udb:6981 msgid "ST BA-10" msgstr "" #. campaigns/PG:451 msgid "The Allied army easily drove our troops back to the Netherlands." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Stuttgart" msgstr "" #. maps/pg/map01:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Breslau" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Waldenburg" msgstr "" #. maps/pg/map29:7 msgid "Karlovka" msgstr "" #. maps/pg/map36:7 msgid "Hyattsville" msgstr "" #. units/pg.udb:596 msgid "FW190g" msgstr "" #. maps/pg/map22:7 msgid "Moires" msgstr "" #. units/pg.udb:6729 msgid "ST La-7" msgstr "" #. campaigns/PG:412 msgid "" "The mission was a disaster. Not sustaining allowed the Allies to invade " "Germany from the South, forces upon us an unfavourable peace treaty like the " "one in 1918." msgstr "" #. maps/pg/map04:7 msgid "Ostend" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Temyryk" msgstr "" #. campaigns/PG:58 msgid "" "Despite your initially slow advance, by an overwhelming array of men and " "material we eventually drove the French forces over the Somme river. Yet we " "cannot tolerate suboptimal performance like this any longer. Your deeds need " "to improve. Needlessly to say that our chance of invading England this year " "has been lost." msgstr "" #. units/pg.udb:792 msgid "He111 H2" msgstr "" #. units/pg.udb:6897 msgid "ST PE-8" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Freiburg" msgstr "" #. maps/pg/map12:7 msgid "Gabes" msgstr "" #. maps/pg/map13:7 msgid "Prizzi" msgstr "" #. scenarios/pg/Norway:3 msgid "" "April 9, 1940: Wanting Norwegian iron, and northern air bases to deny " "British access to the Baltic Sea, the Germans launch a surprise attack on " "Norway." msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Chester" msgstr "" #. campaigns/PG:344 msgid "22nd June 1944" msgstr "" #. maps/pg/map15:7 msgid "Domfront" msgstr "" #. maps/pg/map21:7 msgid "Valjevo" msgstr "" #. campaigns/PG:188 msgid "" "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have " "achieved what Napoleon only dreamed of. All of Russia has been put under " "German administration, and we have already begun exploiting its vast " "resources. Your decision to take the early route towards Moscow was right, " "and therefore you get awarded one of the highest order medals of the Reich, " "the Iron Cross with Oak Leaves and Swords." msgstr "" #. maps/pg/map36:7 msgid "Port Tobacco" msgstr "" #. maps/pg/map29:7 msgid "Lozovaya" msgstr "" #. maps/pg/map14:7 msgid "Volturno River" msgstr "" #. units/pg.udb:11069 msgid "US 75mm Gun" msgstr "" #. units/pg.udb:1184 msgid "Pz38(t)A" msgstr "" #. units/pg.udb:7289 msgid "ST T-40" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Dover" msgstr "" #. maps/pg/map21:7 msgid "Berati" msgstr "" #. units/pg.udb:4768 msgid "GB Hur IV" msgstr "" #. maps/pg/map17:7 msgid "Nivelles" msgstr "" #. units/pg.udb:5049 msgid "GB Lancaster" msgstr "" #. maps/pg/map18:7 msgid "Neufchatel" msgstr "" #. maps/pg/map04:7 msgid "Noyon" msgstr "" #. nations/pg.ndb:48 msgid "Hungary" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Braunschweig" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Bialstok" msgstr "" #. maps/pg/map08:7 msgid "Karbala" msgstr "" #. maps/pg/map12:7 msgid "Kasserine" msgstr "" #. scenarios/pg/D-Day:2 msgid "D-DAY" msgstr "" #. maps/pg/map24:7 msgid "Cherkassi" msgstr "" #. maps/pg/map08:7 msgid "Al Hillah" msgstr "" #. units/pg.udb:6925 msgid "ST SU-152 AT" msgstr "" #. maps/pg/map17:7 msgid "Bastogne" msgstr "" #. campaigns/PG:217 msgid "Eastern front" msgstr "" #. units/pg.udb:5805 msgid "GB 40mm SPAD" msgstr "" #. units/pg.udb:1576 msgid "Panther D" msgstr "" #. scenarios/pg/Anvil:4 scenarios/pg/Anzio:4 scenarios/pg/Ardennes:4 scenarios/pg/Balkans:4 ... msgid "Strategic Simulation Inc." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bratislava" msgstr "" #. maps/pg/map19:7 msgid "Boxtel" msgstr "" #. units/pg.udb:3368 msgid "PO TK3" msgstr "" #. units/pg.udb:5665 msgid "GB Church VII" msgstr "" #. maps/pg/map17:7 msgid "Werbomont" msgstr "" #. maps/pg/map22:7 msgid "Monemvasia" msgstr "" #. maps/pg/map16:7 msgid "Petit Rhone River" msgstr "" #. units/pg.udb:3928 msgid "FR Ch D1 IG" msgstr "" #. maps/pg/map19:7 msgid "Veghel" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Bolkhov" msgstr "" #. maps/pg/map15:7 msgid "Orbec" msgstr "" #. maps/pg/map16:7 msgid "Turin" msgstr "" #. units/pg.udb:5245 msgid "GB Crdr II" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Port" msgstr "" #. maps/pg/map36:7 msgid "Bowie" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Mogilev" msgstr "" #. maps/pg/map19:7 msgid "Gembert" msgstr "" #. units/pg.udb:5637 msgid "GB Church VI" msgstr "" #. maps/pg/map33:7 msgid "Devegcer" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kuban" msgstr "" #. maps/pg/map26:7 msgid "Otradny" msgstr "" #. maps/pg/map18:7 msgid "Melun" msgstr "" #. units/pg.udb:11125 msgid "US 155mm Gun" msgstr "" #. maps/pg/map33:7 msgid "Tatabanya" msgstr "" #. maps/pg/map08:7 msgid "Sakakah" msgstr "" #. campaigns/PG:533 msgid "" "Congratulations on your victory. Yet, supply shortages allowed the English " "to take the initiative, and expel the Africa Corps from Egypt and Libya." msgstr "" #. maps/pg/map17:7 msgid "Beaumont" msgstr "" #. maps/pg/map03:7 msgid "Bergen" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Aire" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Mainz" msgstr "" #. maps/pg/map21:7 msgid "Pinios River" msgstr "" #. maps/pg/map08:7 msgid "Anah" msgstr "" #. maps/pg/map36:7 msgid "Odenton" msgstr "" #. maps/pg/map13:7 msgid "Agrigento" msgstr "" #. units/pg.udb:3228 msgid "PSW 232/8r" msgstr "" #. maps/pg/map36:7 msgid "North Arlington" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Osnabruck" msgstr "" #. scenarios/pg/BerlinWest:2 msgid "BERLIN (WEST)" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Newhaven" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Mozdok" msgstr "" #. units/pg.udb:88 msgid "Tactical Bomber" msgstr "" #. maps/pg/map15:7 msgid "Barneville" msgstr "" #. maps/pg/map03:7 msgid "Kongsberg" msgstr "" #. maps/pg/map22:7 msgid "Sitia" msgstr "" #. campaigns/PG:410 msgid "" "High Command is stunned about your audacious counter-attack in Italy. With " "scarce resources, you managed not only to drive back the Anzio-beachhead " "into the sea, you also retook Italian towns of the South." msgstr "" #. campaigns/PG:524 msgid "Staying in the desert" msgstr "" #. maps/pg/map30:7 msgid "Sudzha" msgstr "" #. units/pg.udb:257 msgid "FW190d9" msgstr "" #. units/pg.udb:8577 msgid "IT Centauro" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Frankfurt an Main" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Munich" msgstr "" #. units/pg.udb:8997 msgid "IT M13/40" msgstr "" #. maps/pg/map36:7 msgid "Ocooquen Creek" msgstr "" #. maps/pg/map21:7 msgid "Rijeka" msgstr "" #. units/pg.udb:8185 msgid "AF T-Boat" msgstr "" #. units/pg.udb:5105 msgid "GB Matilda I" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Novorossik" msgstr "" #. scenarios/pg/Balkans:3 msgid "" "April 6, 1941: German troops aid the bogged down Italians in Yugoslavia and " "Greece." msgstr "" #. units/pg.udb:4881 msgid "GB Spit XVII" msgstr "" #. maps/pg/map16:7 msgid "St. Vallier" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Cyrene" msgstr "" #. maps/pg/map14:7 msgid "Sezze" msgstr "" #. scenarios/pg/Ardennes:3 msgid "Dec 16, 1944: Wacht Am Rhein... Germany's last gamble in the West." msgstr "" #. maps/pg/map29:7 msgid "Proletarsk" msgstr "" #. maps/pg/map26:7 msgid "Verkhne Chogan" msgstr "" #. campaigns/PG:106 msgid "" "Negotiations with Yugoslavia have failed which in order made them turn " "against us. Italian forces are fighting a stiff battle at the Metaxas line " "in Greece and have not been able to gain substancial advantages for over a " "year, and they may not sustain any longer. For our upcoming invasion of " "Russia we cannot tolerate an undefeated enemy in our back. Thus it is your " "mission to capture key Yugoslav towns to make them surrender, and " "additionally aid Italian troops in their hapless fight against Greek and " "English adversaries." msgstr "" #. campaigns/PG:432 msgid "" "Congratulations on your effective victory over the Allied invasion of " "Normandy. The enemy has been driven back into the sea." msgstr "" #. maps/pg/map21:7 msgid "Morlava River" msgstr "" #. maps/pg/map21:7 msgid "Patrai" msgstr "" #. units/pg.udb:6869 msgid "ST Il-10" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Magdeburg" msgstr "" #. maps/pg/map33:7 msgid "Komarno" msgstr "" #. maps/pg/map26:7 msgid "Inkerman" msgstr "" #. maps/pg/map16:7 msgid "Gap" msgstr "" #. maps/pg/map36:7 msgid "Laurel" msgstr "" #. units/pg.udb:2164 msgid "Marder IIIM" msgstr "" #. maps/pg/map19:7 msgid "Waal River" msgstr "" #. units/pg.udb:8885 msgid "IT Sem M-41M" msgstr "" #. units/pg.udb:314 msgid "ME163B/Komet" msgstr "" #. maps/pg/map16:7 msgid "Digne" msgstr "" #. maps/pg/map17:7 msgid "Tirlemont" msgstr "" #. units/pg.udb:8325 msgid "Heavy Cruiser" msgstr "" #. maps/pg/map33:7 msgid "Rackeve" msgstr "" #. units/pg.udb:10089 msgid "US M3 GMC" msgstr "" #. units/pg.udb:8353 msgid "Light Cruiser" msgstr "" #. units/pg.udb:4993 msgid "GB Typhoon IB" msgstr "" #. maps/pg/map14:7 msgid "Tivoli" msgstr "" #. maps/pg/map08:7 msgid "Hit" msgstr "" #. maps/pg/map24:7 msgid "Khoro" msgstr "" #. maps/pg/map16:7 msgid "Montelimar" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bern" msgstr "" #. units/pg.udb:3620 msgid "FR Potez 63" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Menai Strait" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Nile" msgstr "" #. maps/pg/map14:7 msgid "Aterno River" msgstr "" #. units/pg.udb:7149 msgid "ST T-34/41" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Tunbridge Wells" msgstr "" #. units/pg.udb:8409 msgid "T-Destroyer" msgstr "" #. campaigns/PG:501 msgid "" "The Allies have launched a surprise airborne attack at Arnhem to capture a " "bridge across the Rhine. Yet, their slow outbreak from Normandy gave us " "plenty of time to establish potent defenses. Your order is to capture and " "hold the city of Arnhem until the 25th of September, and clean the area from " "paratroop landings before Allied reinforcements arrive." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Brunn" msgstr "" #. campaigns/PG:268 msgid "" "Your initial capture of Moscow let arise hope that Russia would surrender. " "Unfortunately, the combination of bad weather and Russian reserves did not " "enable our exhausted troops to sustain any longer. While we managed to " "establish a stable front line again, the possibility for another advance " "towards Moscow has gone for good." msgstr "" #. units/pg.udb:9585 msgid "US P51B Mustg" msgstr "" #. units/pg.udb:1856 msgid "Hetzer" msgstr "" #. units/pg.udb:680 msgid "JU87R" msgstr "" #. scenarios/pg/Torch:2 msgid "TORCH" msgstr "" #. units/pg.udb:8437 msgid "U-Boat" msgstr "" #. maps/pg/map13:7 msgid "Menfi" msgstr "" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Bari" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Paris" msgstr "" #. maps/pg/map03:7 msgid "Dombas" msgstr "" #. maps/pg/map04:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map18:7 maps/pg/map38:7 msgid "Calais" msgstr "" #. units/pg.udb:2360 msgid "FlaKPz 38(t)" msgstr "" #. units/pg.udb:6673 msgid "ST La-5" msgstr "" #. maps/pg/map26:7 msgid "Dzhanshley" msgstr "" #. maps/pg/map26:7 msgid "Mekenziya" msgstr "" #. maps/pg/map14:7 msgid "Campobasso" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Terek" msgstr "" #. campaigns/PG:199 msgid "" "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have " "achieved what Napoleon only dreamed of. All of Russia has been put under " "German administration, and we have already begun exploiting its vast " "resources. For your leadership skills, you get awarded the highest order " "medal of the Reich, the Knight's Cross with Oak Leaves and Swords." msgstr "" #. maps/pg/map03:7 msgid "Mosjoen" msgstr "" #. maps/pg/map17:7 msgid "Ardenne" msgstr "" #. units/pg.udb:201 msgid "BF109k" msgstr "" #. maps/pg/map15:7 msgid "Sees" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Strasburg" msgstr "" #. units/pg.udb:6057 msgid "GB Inf 39" msgstr "" #. maps/pg/map08:7 msgid "Ahvaz" msgstr "" #. units/pg.udb:3956 msgid "FR Ch S35" msgstr "" #. maps/pg/map21:7 msgid "Sarande" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kiel" msgstr "" #. units/pg.udb:11685 msgid "FPO Truck" msgstr "" #. units/pg.udb:10593 msgid "US M18 " msgstr "" #. units/pg.udb:11713 msgid "FPO Infantry" msgstr "" #. units/pg.udb:7009 msgid "ST BA-64" msgstr "" #. campaigns/PG:74 msgid "" "France is weakened and open to attack. Since 1871, this is the first chance " "to battle down the mightiest army of Europe and face total victory on the " "Western continent. You are ordered to take Paris and various strategic " "coastal towns as well as towns of the hinterland." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Grozny" msgstr "" #. campaigns/PG:433 msgid "" "While fighting bravely against tremendous odds, the Allies could establish a " "beachhead on the Norman coast." msgstr "" #. units/pg.udb:10313 msgid "US M4A3E2(76)" msgstr "" #. campaigns/PG:345 msgid "" "Soviet Russia has eventually launched its long expected summer offensive of " "1944, ironically on the self same day we initiated operation Barbarossa " "three years ago. You are in charge of Army Group Center, and you must stop " "the Russian attack at any rate, and retake all objectives to turn the tides. " "If the odds are too strong, hold at least Warsaw until the 27th of August." msgstr "" #. maps/pg/map24:7 msgid "Konotop" msgstr "" #. maps/pg/map03:7 msgid "Hamar" msgstr "" #. maps/pg/map21:7 msgid "Lesh" msgstr "" #. maps/pg/map08:7 msgid "Jordan River" msgstr "" #. units/pg.udb:4376 msgid "AD Mk II SP" msgstr "" #. maps/pg/map36:7 msgid "Potomac River" msgstr "" #. units/pg.udb:11741 msgid "FPO Para" msgstr "" #. scenarios/pg/Crete:3 msgid "" "May 20, 1941: Germany attempts to capture the strategic island of Crete." msgstr "" #. maps/pg/map04:7 maps/pg/map05:7 msgid "Somme" msgstr "" #. scenarios/pg/Anvil:361 scenarios/pg/Anzio:374 scenarios/pg/Ardennes:558 scenarios/pg/Balkans:590 ... msgid "Axis Major Victory" msgstr "" #. units/pg.udb:5329 msgid "GB Crom VII" msgstr "" #. campaigns/PG:468 msgid "" "The Allied landings have been outright successful, and France is now " "definitely lost." msgstr "" #. maps/pg/map15:7 msgid "Lisieux" msgstr "" #. maps/pg/map19:7 msgid "Renkum" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Elista" msgstr "" #. maps/pg/map03:7 msgid "Narvik" msgstr "" #. maps/pg.tdb:8 msgid "Overcast(Dry)" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Volga" msgstr "" #. maps/pg/map03:7 msgid "Lillehammer" msgstr "" #. units/pg.udb:7121 msgid "ST T-34/40" msgstr "" #. maps/pg/map05:7 msgid "Nevers" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bromberg" msgstr "" #. maps/pg/map33:7 msgid "Polgardi" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Regensburg" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Stour" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "London" msgstr "" #. maps/pg/map24:7 msgid "Nehzin" msgstr "" #. units/pg.udb:3060 msgid "43 Wehr Inf" msgstr "" #. units/pg.udb:1828 msgid "StuH42" msgstr "" #. units/pg.udb:2388 msgid "37 FlaKPz IV" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Sosyka" msgstr "" #. campaigns/PG:584 msgid "30th June 1942" msgstr "" #. maps/pg/map36:7 msgid "Indian Creek" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Graz" msgstr "" #. maps/pg/map18:7 msgid "Rennes" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Hull" msgstr "" #. maps/pg/map17:7 msgid "Libramit" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Koslin" msgstr "" #. campaigns/PG:349 msgid "" "Holding Warsaw temporarily relieves us from pressure on the Eastern front, " "thus allowing High Command to transfer you to the Western Front." msgstr "" #. maps/pg/map16:7 msgid "Toulon" msgstr "" #. maps/pg/map30:7 msgid "Maloarkhangelsk" msgstr "" #. maps/pg/map36:7 msgid "Cleveland Park" msgstr "" #. maps/pg/map21:7 msgid "Bosna River" msgstr "" #. maps/pg/map36:7 msgid "Owings" msgstr "" #. maps/pg/map13:7 msgid "Palermo" msgstr "" #. units/pg.udb:1212 msgid "Pz38(t)F" msgstr "" #. units/pg.udb:10033 msgid "US M2 Halftrk" msgstr "" #. maps/pg/map07:7 maps/pg/map08:7 maps/pg/map09:7 msgid "Italian Camp" msgstr "" #. campaigns/PG:339 msgid "" "Thanks to your great achievements, the Soviet summer offensive has been " "halted, and enabled us to prepare further operations." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Main River" msgstr "" #. campaigns/PG:273 msgid "" "Now there are two opportunities to prove your skills against mighty odds. In " "the east, the Russians prepare their first summer offensive against Army " "Group Center, while in the west, the Allied prepare their invasion of " "france.##Which theater do you want to take leadership of?" msgstr "" #. units/pg.udb:8269 msgid "Battleship Bk" msgstr "" #. maps/pg.tdb:28 msgid "Raining(Mud)" msgstr "" #. maps/pg/map14:7 msgid "Sulmona" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Plymouth" msgstr "" #. units/pg.udb:9921 msgid "US B24D Lib" msgstr "" #. units/pg.udb:9837 msgid "US A26 Inv" msgstr "" #. maps/pg/map14:7 msgid "Pescara River" msgstr "" #. units/pg.udb:285 msgid "ME262A1" msgstr "" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Otranto" msgstr "" #. units/pg.udb:5581 msgid "GB Church III" msgstr "" #. campaigns/PG:529 msgid "" "We were eventually able to halt the English counter offensive, and are now " "ready to perform another attack. While we do not have to gain as much ground " "as last year, English restistence is expected to be much stronger. While the " "chance for invading the Middle East has been lost, we may be able to prepare " "another invasion of England if the North African chapter is closed in time. " "You have to take all objectives by no later than the 28th of September. Yet, " "in order to finish preparations for an invasion of England this year, you " "have to finish you mission several weeks earlier." msgstr "" #. units/pg.udb:6421 msgid "GB 3 Inches AD" msgstr "" #. maps/pg/map21:7 msgid "Bobov" msgstr "" #. maps/pg/map16:7 msgid "Nice" msgstr "" #. units/pg.udb:7233 msgid "ST T-70" msgstr "" #. maps/pg/map13:7 maps/pg/map21:7 msgid "Foggia" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Shrewbury" msgstr "" #. maps/pg/map17:7 msgid "Echlemach" msgstr "" #. units/pg.udb:1632 msgid "Panther G" msgstr "" #. units/pg.udb:7373 msgid "ST SU-152" msgstr "" #. maps/pg/map16:7 msgid "Durance River" msgstr "" #. maps/pg/map36:7 msgid "Potomac Heights" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Novocherkassk" msgstr "" #. campaigns/PG:1 msgid "World War II" msgstr "" #. units/pg.udb:4460 msgid "LC CR42" msgstr "" #. maps/pg/map29:7 msgid "Starobelsk" msgstr "" #. maps/pg/map16:7 msgid "Castellane" msgstr "" #. scenarios/pg/MiddleEast:3 msgid "Septempter 1, 1941: Axis attempts to seize the oil fields of Persia." msgstr "" #. campaigns/PG:36 msgid "" "Losing on the Polish front was an utter disaster. Your scandalous leadership " "has enabled the English and French to build up an formidable army which has " "begun invading Germany." msgstr "" #. units/pg.udb:10061 msgid "US M2A4" msgstr "" #. campaigns/PG:291 msgid "" "Not capturing Moscow in time gave the Russian adversaries plenty of " "opportunity to mobilise troops from Siberia and perform a counterattack. " "While we managed to establish a stable front line again, we could not " "attempt another advance in 1942." msgstr "" #. units/pg.udb:4040 msgid "FR Infantry" msgstr "" #. maps/pg/map16:7 msgid "Marseilles" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Makhach Kala" msgstr "" #. maps/pg/map21:7 msgid "Shkoder" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Thames" msgstr "" #. campaigns/PG:617 msgid "" "Not only halting the enemy onslaught at two front, but drive them back to " "the pre-war borders of the Reich is impressive. Therefore, we could achieve " "to sign a peace treaty that restored the status-quo from the 1st September " "1939." msgstr "" #. maps/pg/map15:7 maps/pg/map18:7 msgid "Honfleur" msgstr "" #. units/pg.udb:11265 msgid "US M8 Ghd LAC" msgstr "" #. maps/pg/map21:7 msgid "Serrai" msgstr "" #. maps/pg/map36:7 msgid "Annandale" msgstr "" #. campaigns/PG:608 msgid "" "Your taking of Washington was a masterpiece. However, the Americans revealed " "their secret weapon, called the Atomic Bomb, and inflicted heavy losses on " "our expeditionary forces. In order to reduce further casualties, we " "retreated from America, and signed a piece treaty. Though the America " "adventure did not work out, Germany rules all of Europe, Africa, and most " "parts of Asia. This overwhelming economical weight will enable us to carry " "on the war against America on another level. Now, the war is over, and for " "your heroic encouragement you are promoted to Generalfeldmarschall." msgstr "" #. units/pg.udb:9557 msgid "US P40 Whwk" msgstr "" #. maps/pg/map17:7 msgid "Tongres" msgstr "" #. units/pg.udb:428 msgid "BF110c" msgstr "" #. maps/pg/map26:7 msgid "Bartenevka" msgstr "" #. maps/pg/map03:7 msgid "Kristiansand" msgstr "" #. units/pg.udb:39 msgid "Leg" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Poti" msgstr "" #. units/pg.udb:2780 msgid "8.8 PaK43/41" msgstr "" #. campaigns/PG:235 msgid "Losing two battles in a row cannot be accepted." msgstr "" #. scenarios/pg/Byelorussia:2 msgid "BYELORUSSIA" msgstr "" #. maps/pg/map21:7 msgid "Parga" msgstr "" #. maps/pg/map18:7 msgid "St. Malo" msgstr "" #. maps/pg/map33:7 msgid "Dunafoldvar" msgstr "" #. units/pg.udb:8745 msgid "IT SM 82" msgstr "" #. maps/pg/map36:7 msgid "Langley Park" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map29:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Dnieper River" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Divnoe" msgstr "" #. maps/pg/map02:7 maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 ... msgid "Warsaw" msgstr "" #. units/pg.udb:2920 msgid "17 K18" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Serpukhov" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Rostov" msgstr "" #. maps/pg/map26:7 msgid "Mekenziery" msgstr "" #. units/pg.udb:10397 msgid "US M7" msgstr "" #. maps/pg/map24:7 msgid "Uman" msgstr "" #. maps/pg/map24:7 maps/pg/map30:7 msgid "Seym" msgstr "" #. scenarios/pg/EarlyMoscow:2 msgid "EARLY MOSCOW" msgstr "" #. campaigns/PG:646 msgid "" "You have failed us, Commander! The german reich suffered a minor defeat!" msgstr "" #. maps/pg/map33:7 msgid "Esztergom" msgstr "" #. nations/pg.ndb:40 msgid "Greece" msgstr "" #. units/pg.udb:5161 msgid "GB Mk I A9" msgstr "" #. maps/pg/map33:7 msgid "Papa" msgstr "" #. maps/pg/map16:7 msgid "Var River" msgstr "" #. maps/pg/map14:7 msgid "Mondragone" msgstr "" #. maps/pg/map24:7 msgid "Ichnaya" msgstr "" #. maps/pg/map14:7 msgid "Biferno River" msgstr "" #. units/pg.udb:1016 msgid "PzIIA" msgstr "" #. units/pg.udb:3704 msgid "FR D520S" msgstr "" #. units/pg.udb:8969 msgid "IT L6/40" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Darmstadt" msgstr "" #. units/pg.udb:4965 msgid "GB Mosq VI" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Valuiki" msgstr "" #. units/pg.udb:10453 msgid "US GM Truck" msgstr "" #. units/pg.udb:7737 msgid "ST SMG Inf" msgstr "" #. units/pg.udb:5189 msgid "GB Mk III A13" msgstr "" #. units/pg.udb:76 msgid "Anti-Aircraft" msgstr "" #. campaigns/PG:64 msgid "" "France is weakened and open to attack. Since 1871, this is the first chance " "to battle down the mightiest army of Europe and face total victory on the " "Western continent. You are ordered to take Paris and various strategic " "coastal towns as well as towns of the hinterland. Timing is important, as " "only an early completion of your mission enables us to finish preparations " "in time for the invasion of England." msgstr "" #. units/pg.udb:343 msgid "HE219" msgstr "" #. maps/pg/map18:7 msgid "Fougeres" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Beuthen" msgstr "" #. maps/pg/map14:7 msgid "Nera River" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Pinsk" msgstr "" #. units/pg.udb:1100 msgid "8.8 FK18 ATG" msgstr "" #. maps/pg/map16:7 msgid "Drome River" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Dusseldorf" msgstr "" #. maps/pg/map08:7 maps/pg/map14:7 maps/pg/map20:7 maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 ... msgid "Lake" msgstr "" #. campaigns/PG:252 msgid "" "Your inability to reach Stalingrad as well as shortages in supplies allowed " "the Russians to break through the thin defense lines of our exhausted " "troops, and to cut off large parts of the 6th Army in Stalingrad and " "annihilate them, and drive back the Eastern front." msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Dvina River" msgstr "" #. units/pg.udb:9697 msgid "US P47D Tbolt" msgstr "" #. campaigns/PG:428 msgid "6th June 1944" msgstr "" #. units/pg.udb:109 msgid "Air Transport" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Dresden" msgstr "" #. maps/pg/map04:7 maps/pg/map17:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Liege" msgstr "" #. maps/pg/map08:7 msgid "Abadan" msgstr "" #. units/pg.udb:1940 msgid "StuG IV" msgstr "" #. campaigns/PG:73 msgid "5th June 1940" msgstr "" #. maps/pg/map24:7 msgid "Gorodnya" msgstr "" #. campaigns/PG:369 msgid "" "While you managed to capture all objectives, the Russian offensive gained " "momentum too fast and drove us back to the Eastern limits of the Reich." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Innsbruck" msgstr "" #. maps/pg/map17:7 msgid "Manhay" msgstr "" #. campaigns/PG:117 msgid "" "Crete has been captured by the English in 1940 as a reaction on Italy's " "invasion of Albania. Since then, the English have erected air and naval " "bases which are likely to interfere with our upcoming operations against " "Soviet Russia. It is your order to take the island, capture the strategic " "bases, and drive the English troops into the sea. This is the largest " "airborne operation seen in this war." msgstr "" #. maps/pg/map29:7 msgid "Artemovsk" msgstr "" #. units/pg.udb:173 msgid "BF109g" msgstr "" #. maps/pg/map03:7 msgid "Stavanger" msgstr "" #. campaigns/PG:549 msgid "Caucasus" msgstr "" #. campaigns/PG:557 msgid "" "With all objectives taken, and the Americans expelled from Africa, you have " "proven your excellent leadership skills." msgstr "" #. maps/pg/map21:7 msgid "Kevalla" msgstr "" #. maps/pg/map04:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Boulogne" msgstr "" #. maps/pg/map36:7 msgid "Silver Spring" msgstr "" #. campaigns/PG:618 msgid "" "You held Berlin, but that has put us into an uncomfortable situation. We had " "to accept a peace treaty that was even harsher than the hated one of 1918." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Guren" msgstr "" #. campaigns/PG:539 msgid "1st September 1941" msgstr "" #. maps/pg/map13:7 maps/pg/map14:7 maps/pg/map21:7 msgid "Naples" msgstr "" #. maps/pg/map03:7 msgid "Mo-i-rana" msgstr "" #. units/pg.udb:1156 msgid "Pz 35(t)" msgstr "" #. maps/pg/map14:7 msgid "Formia" msgstr "" #. maps/pg.tdb:40 msgid "Overcast(Ice)" msgstr "" #. maps/pg/map17:7 msgid "Leshelm" msgstr "" #. units/pg.udb:11405 msgid "FFR 105mm Gun" msgstr "" #. maps/pg/map19:7 msgid "Schaarbergen" msgstr "" #. maps/pg/map21:7 msgid "Ivangrad" msgstr "" #. maps/pg/map33:7 msgid "Bicske" msgstr "" #. maps/pg/map13:7 msgid "Ribera" msgstr "" #. maps/pg/map24:7 msgid "Rumnyr" msgstr "" #. maps/pg/map30:7 msgid "Oka" msgstr "" #. nations/pg.ndb:36 msgid "Germany" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Krasnodar" msgstr "" #. maps/pg/map22:7 msgid "Retimo" msgstr "" #. maps/pg/map24:7 msgid "Boguslav" msgstr "" #. units/pg.udb:2052 msgid "JagdTiger" msgstr "" #. maps/pg.tdb:230 msgid "Road" msgstr "" #. units/pg.udb:456 msgid "BF110d" msgstr "" #. units/pg.udb:2080 msgid "PzJager IB" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Stalingrad" msgstr "" #. units/pg.udb:4320 msgid "NOR 75mm Gun" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Hannover" msgstr "" #. maps/pg/map33:7 msgid "Val" msgstr "" #. campaigns/PG:209 msgid "" "Moscow has fallen, and the Soviet Union surrendered to the Reich! You have " "achieved what Napoleon only dreamed of. All of Russia has been put under " "German administration, and we have already begun exploiting its vast " "resources. For your leadership skills, you get awarded one of the highest " "order medals of the Reich, the Iron Cross with Oak Leaves and Swords." msgstr "" #. units/pg.udb:4572 msgid "SdKfz 6/2" msgstr "" #. maps/pg/map24:7 msgid "Pripet" msgstr "" #. units/pg.udb:5469 msgid "GB M3 Stuart" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Rossosh" msgstr "" #. campaigns/PG:85 msgid "North Africa" msgstr "" #. units/pg.udb:10005 msgid "US C47" msgstr "" #. maps/pg/map02:7 msgid "Tomaszow" msgstr "" #. units/pg.udb:3256 msgid "PO PZL P11c" msgstr "" #. campaigns/PG:34 msgid "" "Your performance in Poland has been outstanding, Herr General! You besieged " "and captured all objectives before the Soviet Union was able to catch up. " "Your forces have been diverted to the Western border to guard against French " "and English aggressions." msgstr "" #. maps/pg/map21:7 msgid "Argos" msgstr "" #. maps/pg/map29:7 msgid "Merefa" msgstr "" #. maps/pg/map15:7 msgid "Gavray" msgstr "" #. maps/pg.tdb:16 msgid "Snowing(Dry)" msgstr "" #. scenarios/pg/Moscow42:2 msgid "MOSCOW (42)" msgstr "" #. scenarios/pg/Poland:3 msgid "" "September 1, 1939: The German army crosses the Polish border with their " "famous blitzkrieg. In 10 days they must capture Lodz and Kutno... the gates " "to Warsaw." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Chirskaya" msgstr "" #. campaigns/PG:513 msgid "31st March 1941" msgstr "" #. maps/pg/map21:7 msgid "Katerim" msgstr "" #. maps/pg/map13:7 msgid "Brindisi" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Portsmouth" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Olmutz" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Oxford" msgstr "" #. units/pg.udb:9501 msgid "Yugoslav Inf" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Orleans" msgstr "" #. units/pg.udb:1240 msgid "Pz38(t)G" msgstr "" #. campaigns/PG:170 msgid "" "Your failure to decimate Russian troops in time enabled them to assemble and " "perform a counter-strike against our lines. Thus for 1941, all of our " "operations on the Eastern front had to cease." msgstr "" #. maps/pg/map17:7 msgid "La Leuviere" msgstr "" #. units/pg.udb:3032 msgid "39 Wehr Inf" msgstr "" #. maps/pg/map26:7 msgid "Sevastopol" msgstr "" #. maps/pg/map21:7 msgid "Devin" msgstr "" #. campaigns/PG:250 msgid "" "Stalin's town lies down in ruins, and German troops control the traffic on " "the Volga river, preventing the Russians to build up a force for a " "counter-attack. Thus, you can lead the advance towards Moscow without " "interference from the rear." msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Hastings" msgstr "" #. units/pg.udb:4208 msgid "FR 155mm Gun" msgstr "" #. maps/pg/map04:7 maps/pg/map17:7 msgid "Charleroi" msgstr "" #. maps/pg/map24:7 msgid "Zhitomir" msgstr "" #. maps/pg/map08:7 msgid "Samarra" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Schwerin" msgstr "" #. units/pg.udb:7569 msgid "ST SU-100" msgstr "" #. units/pg.udb:1408 msgid "PzIIIN" msgstr "" #. maps/pg/map16:7 msgid "Aubenas" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kropotkin" msgstr "" #. units/pg.udb:932 msgid "ME323d" msgstr "" #. units/pg.udb:6225 msgid "GB 17 Pdr ATG" msgstr "" #. units/pg.udb:4152 msgid "FR 75mm Gun" msgstr "" #. maps/pg/map16:7 msgid "Aygues River" msgstr "" #. maps/pg/map05:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map18:7 maps/pg/map38:7 msgid "Dieppe" msgstr "" #. maps/pg/map15:7 msgid "Flers" msgstr "" #. maps/pg/map21:7 msgid "Bosanska" msgstr "" #. maps/pg/map03:7 msgid "Alesund" msgstr "" #. maps/pg/map15:7 msgid "Villedieu-LP" msgstr "" #. units/pg.udb:9473 msgid "Greek Inf" msgstr "" #. units/pg.udb:11657 msgid "FPO Bren Ca" msgstr "" #. maps/pg/map33:7 msgid "Zirc" msgstr "" #. maps/pg/map03:7 msgid "Glomma River" msgstr "" #. maps/pg/map24:7 msgid "Mozyr" msgstr "" #. maps/pg/map12:7 msgid "Bone" msgstr "" #. units/pg.udb:5917 msgid "GB Daimler SC" msgstr "" #. maps/pg/map22:7 msgid "Sfakia" msgstr "" #. maps/pg/map36:7 msgid "Easton" msgstr "" #. maps/pg/map18:7 msgid "Seine River" msgstr "" #. units/pg.udb:5777 msgid "GB Sexton" msgstr "" #. maps/pg/map33:7 msgid "Slofok" msgstr "" #. campaigns/PG:483 msgid "16th December 1944" msgstr "" #. maps/pg/map13:7 msgid "Castrovillari" msgstr "" #. maps/pg/map20:7 maps/pg/map33:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Budapest" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Manchester" msgstr "" #. maps/pg/map19:7 msgid "Wolfheze" msgstr "" #. maps/pg/map18:7 msgid "Compiegne" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Suwalki" msgstr "" #. units/pg.udb:7401 msgid "ST KV-1/39" msgstr "" #. maps/pg/map22:7 msgid "Maleme" msgstr "" #. campaigns/PG:269 msgid "" "Not capturing Moscow in time gave the Russian adversaries plenty of " "opportunity to mobilise troops from Siberia and perform a counterattack. " "While we managed to establish a stable front line again, our hopes to " "capture Moscow are now gone for good." msgstr "" #. units/pg.udb:11041 msgid "US 3 Inches ATG" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Shchekino" msgstr "" #. maps/pg/map21:7 msgid "Monosterace" msgstr "" #. maps/pg/map26:7 msgid "Balaklava" msgstr "" #. campaigns/PG:234 msgid "" "By your taking of Sevastopol and the Krim peninsula in time, we could " "annihilate the Russian Black Sea fleet. There will be no more interference " "on our ongoing advance to the East." msgstr "" #. units/pg.udb:9949 msgid "US B29 SF" msgstr "" #. maps/pg/map08:7 msgid "Kaf" msgstr "" #. maps/pg/map36:7 msgid "Mattawoman Creek" msgstr "" #. maps/pg/map21:7 msgid "Karlovac" msgstr "" #. units/pg.udb:2528 msgid "SPW 250/1" msgstr "" #. units/pg.udb:16 msgid "Hard" msgstr "" #. maps/pg/map16:7 msgid "Nyons" msgstr "" #. maps/pg/map18:7 msgid "Alencon" msgstr "" #. units/pg.udb:4404 msgid "AD Mk I Fort" msgstr "" #. campaigns/PG:185 msgid "" "Moscow, capital and industrial, and logistical center of Russia, is the " "ultimate objective you have to strive for on the Eastern front. You have to " "capture Moscow and all other objectives by the 16th of November at the " "latest. Yet to prevent autumn weather to halt our advance, you should finish " "your mission several weeks earlier." msgstr "" #. units/pg.udb:7541 msgid "ST IS-2" msgstr "" #. maps/pg/map04:7 msgid "Dunkirk" msgstr "" #. units/pg.udb:9305 msgid "IT 155mm Gun" msgstr "" #. units/pg.udb:6197 msgid "GB 6 Pdr ATG" msgstr "" #. campaigns/PG:383 campaigns/PG:393 msgid "" "Your failure to conquer England in time before American reinforcements " "arrived has given the enemy the strength to strike back, and force our " "troops back to the continent." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Tiblisi" msgstr "" #. maps/pg/map22:7 msgid "Suda" msgstr "" #. scenarios/pg/MarketGarden:3 msgid "" "September 17, 1944: Daring airborne assault to capture a Rhine River " "crossing. A bridge too far?" msgstr "" #. maps/pg/map29:7 msgid "Novomoskovsk" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Erfuhrt" msgstr "" #. maps/pg/map18:7 msgid "Mayenne" msgstr "" #. units/pg.udb:11489 msgid "FFR GM Truck" msgstr "" #. units/pg.udb:7625 msgid "ST ISU-152 " msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Bardia" msgstr "" #. units/pg.udb:11377 msgid "FFR 75mm Gun" msgstr "" #. units/pg.udb:11965 msgid "Katyusha BM31" msgstr "" #. maps/pg/map36:7 msgid "Cameron Run" msgstr "" #. maps/pg/map18:7 msgid "Louviers" msgstr "" #. maps/pg/map18:7 msgid "Loire River" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Pilsen" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Pripyat River" msgstr "" #. maps/pg/map13:7 msgid "Crotone" msgstr "" #. scenarios/pg/Kursk:3 msgid "" "July 5, 1943: Operation Citadel launches a huge attack into well prepared " "Soviet defenses." msgstr "" #. maps/pg/map12:7 msgid "Algiers" msgstr "" #. campaigns/PG:365 msgid "" "We have gathered all strike forces for the ultimate offensive on the Eastern " "front. You have to take Budapest and all other objectives by no later than " "the 25th of March. To ensure that the Russians will not recover from the " "offensive, and sign a favourable peace treaty, you should capture all " "objectives several days earlier." msgstr "" #. units/pg.udb:1912 msgid "Jp Elefant" msgstr "" #. maps/pg/map15:7 msgid "Villers-Bocage" msgstr "" #. campaigns/PG:20 msgid "" "Fall Weiß, the conquest of Poland has commenced. Your order is to make an " "inroad breach through the main Polish defenses and take the towns of Kutno " "and Lodz by no later than the 10th of September. Failing to do so could " "cause England and France to declare war against Germany. An earlier " "completion may make available more resources to your for the assault of " "Warsaw." msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kohlfurt" msgstr "" #. campaigns/PG:559 msgid "The American army made piecemeal out of the Africa Corps." msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Oka River" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Harwich" msgstr "" #. units/pg.udb:3648 msgid "FR CHk 75A-1" msgstr "" #. scenarios/pg/Sevastapol:3 msgid "June 7, 1942: The final assault on the Black Sea port of Sevastopol." msgstr "" #. maps/pg/map13:7 msgid "Catania" msgstr "" #. units/pg.udb:5609 msgid "GB Church IV" msgstr "" #. units/pg.udb:4796 msgid "GB Spit IX" msgstr "" #. units/pg.udb:229 msgid "FW190a" msgstr "" #. maps/pg/map33:7 msgid "Solt" msgstr "" #. campaigns/PG:391 msgid "" "Your early capturing of Southern England enabled us to prepare defenses " "against the landing of the American reinforcements, and to decisively beat " "them. Consequentially, England has surrendered! It is to be attributed to " "your talent and to the high morale of your troops that you achieved an " "unprecedented victory over the British Empire. England, Scotland, Ireland, " "and the oversea dependencies are now governed by German administration. You " "are herewith awarded one of the highest order medals of the Reich, the Iron " "Cross with Oak Leaves, and Swords." msgstr "" #. campaigns/PG:604 msgid "" "With African and Russian resources, we heavily increased the output of our " "war industries, consequentially enabling us to gain hold onto American soil. " "Our troops have advanced to the gates of Washington, and your order is to " "capture it. Take Washington and all other objectives by the 3rd of August at " "the latest. Intelligence reports that the Americans are testing a secret " "weapon, which will be ready for mid-July. Hence, to reduce German casualties " "and to emphasise our strong position, you should finish your mission by then." msgstr "" #. maps/pg/map12:7 msgid "Sfax" msgstr "" #. units/pg.udb:6253 msgid "GB 25 Pdr Gun" msgstr "" #. maps/pg/map21:7 msgid "Belgrade" msgstr "" #. units/pg.udb:3872 msgid "FR CL AMX R40" msgstr "" #. units/pg.udb:3396 msgid "PO 7TP" msgstr "" #. maps/pg/map05:7 msgid "Troyes" msgstr "" #. maps/pg/map15:7 msgid "Gace" msgstr "" #. campaigns/PG:549 msgid "Sealion43" msgstr "" #. campaigns/PG:41 msgid "9th April 1940" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Dortmund" msgstr "" #. units/pg.udb:820 msgid "Ju88A" msgstr "" #. campaigns/PG:90 msgid "" "Your decisive and early success in France gave us plenty of time to prepare " "operation Sealion, the invasion of England. You have to capture London and " "various key towns in the vicinity before Autumn weather sets in, causing " "rough sea and putting our supply lines at stake. This is a unique chance to " "force England to surrender and end the war." msgstr "" #. units/pg.udb:8633 msgid "IT Ma C205/O" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Stalino" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Kimovsk" msgstr "" #. units/pg.udb:3004 msgid "8.8 FlaK 18" msgstr "" #. campaigns/PG:450 msgid "" "You fighted bravely against odds, but in vain. The Allied army drove our " "troops back to the Netherlands." msgstr "" #. maps/pg/map16:7 msgid "Nimes" msgstr "" #. maps/pg/map15:7 msgid "See River" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bidefeld" msgstr "" #. maps/pg/map08:7 msgid "Tigris River" msgstr "" #. maps/pg/map02:7 maps/pg/map20:7 maps/pg/map23:7 maps/pg/map32:7 maps/pg/map34:7 maps/pg/map35:7 ... msgid "Narew River" msgstr "" #. maps/pg/map19:7 msgid "St. Oedenrode" msgstr "" #. campaigns/PG:489 msgid "" "Wacht am Rhein was an utter failure. Massive Allied reinforcements drove our " "troops back to the limits of the Reich." msgstr "" #. units/pg.udb:8241 msgid "AF Transport" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Sollum" msgstr "" #. maps/pg/map02:7 msgid "Pilica River" msgstr "" #. maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 maps/pg/map07:7 ... msgid "Airfield" msgstr "" #. units/pg.udb:10285 msgid "US M4A3E2" msgstr "" #. units/pg.udb:35 msgid "Wheeled" msgstr "" #. units/pg.udb:3088 msgid "40 Wehr HW" msgstr "" #. units/pg.udb:3760 msgid "FFR M4A1" msgstr "" #. maps/pg.tdb:4 msgid "Fair(Dry)" msgstr "" #. maps/pg/map33:7 msgid "Szekesfehervar" msgstr "" #. maps/pg/map19:7 msgid "Dinther" msgstr "" #. campaigns/PG:121 msgid "" "You have done well. Despite heavy resistence, the suppremacy over the " "Mediterranean Sea is ours. Nothing can stop our operations in Russia now." msgstr "" #. nations/pg.ndb:72 msgid "Portugal" msgstr "" #. campaigns/PG:42 msgid "" "High Command has got a special order for you. In order to secure supply " "lines of Swedish ore, we prepared operation Weserübung, the invasion of " "Norway before the English will do so. You have to take Oslo, " "Stavanger-airport, and a number of Northern towns before the 3rd of May." msgstr "" #. scenarios/pg/Caucasus:2 msgid "CAUCASUS" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Passau" msgstr "" #. units/pg.udb:5385 msgid "GB Grant" msgstr "" #. units/pg.udb:848 msgid "DO217e" msgstr "" #. units/pg.udb:11937 msgid "Katyusha BM13" msgstr "" #. maps/pg/map21:7 msgid "Bosanki Petrovac" msgstr "" #. maps/pg/map17:7 msgid "Rochefort" msgstr "" #. maps/pg/map17:7 msgid "Phillipeville" msgstr "" #. campaigns/PG:565 maps/pg/map30:7 msgid "Kursk" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 msgid "Brzeziny" msgstr "" #. maps/pg/map02:7 msgid "Modlin" msgstr "" #. units/pg.udb:9893 msgid "US B17G FF" msgstr "" #. maps/pg/map21:7 msgid "Vratsa" msgstr "" #. maps/pg/map21:7 msgid "Drin River" msgstr "" #. campaigns/PG:31 msgid "" "Despite of your efforts England and France have entered the war against " "Germany. Additionally, our Eastern ally the Soviet Union has begun invading " "Poland to take its share of the cake. Thus it is imperative that you advance " "to the Vistula river and take the key city of Warsaw and surrounding " "objectives by no later than the 30th of September." msgstr "" #. maps/pg/map24:7 msgid "Kremench" msgstr "" #. campaigns/PG:77 msgid "" "Your performance was outstanding and has brought an overwhelming victory to " "the Reich. My humiliation of 1918 is revenged. France has surrendered, and " "its dependencies will be put under German protectorate." msgstr "" #. campaigns/PG:307 msgid "" "You bravely haltet the Russian winter offensive and managed to establish a " "stable front line." msgstr "" #. units/pg.udb:2752 msgid "7.5 PaK40" msgstr "" #. units/pg.udb:9669 msgid "US P47B Tbolt" msgstr "" #. maps/pg/map17:7 msgid "Prum" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Dessau" msgstr "" #. maps/pg/map04:7 msgid "Ghent" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Neubrandenburg" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Borisov" msgstr "" #. maps/pg/map08:7 msgid "Al Kazimayah" msgstr "" #. campaigns/PG:446 msgid "" "After their bloody repulse in Normandy, the Allies attempt a second invasion " "in Southern France. Hold all objectives until the 28th of August to make " "this invasion a disaster to the Allies again. Otherwise, hold at least two " "objectives to slow down the Allied advance." msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map15:7 maps/pg/map18:7 maps/pg/map38:7 msgid "Cherbourg" msgstr "" #. msgid "Defeat" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Zakepae" msgstr "" #. maps/pg/map08:7 msgid "Basra" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Elbe River" msgstr "" #. maps/pg/map04:7 msgid "Meuse" msgstr "" #. campaigns/PG:547 msgid "" "Your decisive victory in Mesopotamia has terminally weakened the English " "forces. Thus, there is a big opportunity to prepare an invasion of England, " "and end the war in the West. On the other hand, you may choose to continue " "advancing towards the Caucasus.##Herr General, which operation do you want " "to take command of?" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Millerovo" msgstr "" #. campaigns/PG:607 msgid "" "America has surrendered to the overwhelming might of the Wehrmacht, " "Luftwaffe, and Marine! The United States had to sign a peace treaty which " "grants German occupation of the most resourceful, and strategically most " "valuable American territories. You are heralded to be the greatest general " "on Earth without whom such a success would have never been achievable. " "Therefore, you are awarded the highest order medal, specially crafted for " "you, the Knight's Cross with Oak Leaves, Swords, and Brilliants, and you are " "promoted to Generalfeldmarschall. The war is over. Germany is the world, the " "world is Germany." msgstr "" #. units/pg.udb:3312 msgid "PO PZL P23b" msgstr "" #. units/pg.udb:5749 msgid "GB M7 Priest" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Cottbus" msgstr "" #. units/pg.udb:10985 msgid "US 37mm ATG" msgstr "" #. maps/pg/map16:7 msgid "Sisteron" msgstr "" #. maps/pg/map04:7 msgid "Lille" msgstr "" #. maps/pg/map24:7 msgid "Dnepr" msgstr "" #. units/pg.udb:8465 msgid "Transport" msgstr "" #. campaigns/PG:52 msgid "10th May 1940" msgstr "" #. units/pg.udb:1996 msgid "Jagdpz IV/70" msgstr "" #. nations/pg.ndb:44 msgid "USA" msgstr "" #. maps/pg/map15:7 msgid "Periers" msgstr "" #. maps/pg/map33:7 msgid "Tapolca" msgstr "" #. maps/pg/map13:7 msgid "Syracuse" msgstr "" #. campaigns/PG:462 msgid "25th July 1944" msgstr "" #. maps/pg/map29:7 msgid "Oskal River" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map03:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map06:7 ... msgid "Rough" msgstr "" #. campaigns/PG:381 msgid "" "Your early capturing of Southern England enabled us to prepare defenses " "against the landing of the American reinforcements, and to decisively beat " "them. Consequentially, England has surrendered! It is to be attributed to " "your talent and to the high morale of your troops that you achieved an " "unprecedented victory over the British Empire. England, Scotland, Ireland, " "and the oversea dependencies are now governed by German administration. You " "are herewith awarded the highest order medal of the Reich, the Knight's " "Cross with Oak Leaves, and Swords." msgstr "" #. campaigns/PG:463 msgid "" "The Allies extended their beachheads in Normandy and have built up " "considerable strength. With our troops scattered and exhausted, you face a " "hopeless battle against overwhelming forces. Your order is to hold all " "objectives as well as to retake Cherbourg, Carentan, and Caen. If not " "feasible, hold at least three objectives until the 18th of August." msgstr "" #. maps/pg/map22:7 msgid "Palaiokhora" msgstr "" #. nations/pg.ndb:8 msgid "Austria" msgstr "" #. units/pg.udb:10957 msgid "US Bridge Eng" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Mtsensk" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wurzburg" msgstr "" #. campaigns/PG:603 msgid "1st June 1945" msgstr "" #. maps/pg/map36:7 msgid "White House" msgstr "" #. maps/pg/map16:7 msgid "Saluzzo" msgstr "" #. units/pg.udb:3676 msgid "FR MS 406" msgstr "" #. scenarios/pg/Stalingrad:3 msgid "" "June 25, 1942: Axis all out drive on the major industrial center of " "Stalingrad." msgstr "" #. units/pg.udb:9781 msgid "US B25H Mitch" msgstr "" #. maps/pg/map21:7 msgid "Gallipoli" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Bournemouth" msgstr "" #. units/pg.udb:9053 msgid "IT M15/42" msgstr "" #. campaigns/PG:116 msgid "20th May 1941" msgstr "" #. maps/pg.tdb:392 msgid "Fields" msgstr "" #. maps/pg/map16:7 msgid "Po River" msgstr "" #. maps/pg/map29:7 msgid "Lisichansk" msgstr "" #. units/pg.udb:4180 msgid "FR 105mm Gun" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Karlsruhe" msgstr "" #. maps/pg/map36:7 msgid "Lanham" msgstr "" #. units/pg.udb:4853 msgid "GB Spit XIV" msgstr "" #. campaigns/PG:25 msgid "" "Your failure to make an inroad success has lead to the Allies making an " "attack on Germany." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Sukhum" msgstr "" #. maps/pg/map08:7 msgid "Dead Sea" msgstr "" #. maps/pg/map18:7 msgid "Fecamp" msgstr "" #. scenarios/pg/ElAlamein:2 msgid "EL ALAMEIN" msgstr "" #. campaigns/PG:505 msgid "" "You managed to take and hold Arnhem. Yet, bombing raids against our supply " "lines, and Allied reinforcements forced us to eventually abandon the Arnhem " "area, and to pull back behind the Rhine." msgstr "" #. units/pg.udb:7877 msgid "ST 57mm ATG" msgstr "" #. maps/pg/map13:7 msgid "Matera" msgstr "" #. maps/pg/map26:7 msgid "Novyi Shuli" msgstr "" #. units/pg.udb:1464 msgid "PzIVD" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Baku" msgstr "" #. units/pg.udb:10201 msgid "US M5" msgstr "" #. maps/pg/map01:7 maps/pg/map02:7 maps/pg/map04:7 maps/pg/map05:7 maps/pg/map07:7 maps/pg/map08:7 ... msgid "Swamp" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Zurich" msgstr "" #. nations/pg.ndb:60 msgid "Netherlands" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Anglesey" msgstr "" #. campaigns/PG:518 msgid "Putting you in charge of the Africa Corps was an utter failure." msgstr "" #. maps/pg/map29:7 msgid "Andreyevka" msgstr "" #. campaigns/PG:135 msgid "22nd June 1941" msgstr "" #. maps/pg/map13:7 msgid "Pizzo" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kielce" msgstr "" #. maps/pg/map18:7 msgid "Dreux" msgstr "" #. units/pg.udb:8521 msgid "IT Re2000/F1" msgstr "" #. maps/pg/map19:7 msgid "Deurne" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Teschen" msgstr "" #. units/pg.udb:10677 msgid "US M36" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Wilhelmshaven" msgstr "" #. scenarios/pg/BerlinEast:2 msgid "BERLIN (EAST)" msgstr "" #. campaigns/PG:540 msgid "" "Your next order is to secure the Middle East and Mesopotamia in order to " "allow for a new Southern front into the Caucasus. Take all objectives by the " "15th of November at the latest before autumn rainfalls will stop our advance " "in the mud." msgstr "" #. units/pg.udb:8073 msgid "AF BtCruiser" msgstr "" #. campaigns/PG:110 msgid "" "With Yugoslavia and Greece having surrendered, nothing can stop our upcoming " "invasion of Russia." msgstr "" #. maps/pg/map16:7 msgid "Ales" msgstr "" #. units/pg.udb:19 units/pg.udb:47 msgid "Air" msgstr "" #. maps/pg/map19:7 msgid "Volkel" msgstr "" #. maps/pg/map14:7 msgid "Vellitri" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Oppeln" msgstr "" #. maps/pg/map03:7 msgid "Steinkjer" msgstr "" #. maps/pg/map29:7 msgid "Petropavlovka" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Krefeld" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Sheffield" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Minsk" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map30:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Karachev" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Exeter" msgstr "" #. scenarios/pg/Moscow41:2 msgid "MOSCOW (41)" msgstr "" #. units/pg.udb:9333 msgid "Bridge Eng" msgstr "" #. campaigns/PG:319 msgid "5th July 1943" msgstr "" #. maps/pg/map21:7 msgid "Tirana" msgstr "" #. maps/pg/map24:7 msgid "Priluki" msgstr "" #. units/pg.udb:2724 msgid "5 PaK38" msgstr "" #. maps/pg/map14:7 msgid "Tiber River" msgstr "" #. maps/pg/map30:7 msgid "Lgov" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Duisburg" msgstr "" #. maps/pg/map33:7 msgid "Tab" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Bremen" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Kassel" msgstr "" #. maps/pg/map22:7 msgid "Canea" msgstr "" #. units/pg.udb:10733 msgid "US Inf 43" msgstr "" #. maps/pg/map36:7 msgid "Brightwood" msgstr "" #. units/pg.udb:10425 msgid "US M8 HMC" msgstr "" #. maps/pg/map15:7 msgid "Riva-Bella" msgstr "" #. maps/pg/map17:7 msgid "Houffalize" msgstr "" #. maps/pg/map20:7 maps/pg/map33:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Gyor" msgstr "" #. units/pg.udb:8213 msgid "AF Submarine" msgstr "" #. maps/pg/map17:7 msgid "Malmedy" msgstr "" #. maps/pg/map33:7 msgid "Veszprem" msgstr "" #. maps/pg/map36:7 msgid "Quantico" msgstr "" #. maps/pg/map29:7 msgid "Kirovi River" msgstr "" #. maps/pg/map33:7 msgid "Mezoszilas" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Prague" msgstr "" #. campaigns/PG:139 msgid "" "Russian reserves eventually stopped our slow advance and built up momentum " "to drive our troops back into the Reich." msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Canterbury" msgstr "" #. maps/pg/map01:7 msgid "Kalisz" msgstr "" #. scenarios/pg/Caucasus:3 msgid "" "June 30, 1942: Axis strikes into Russia's oil rich territory from a new " "southern front." msgstr "" #. campaigns/PG:411 msgid "" "Holding Rome has kept the Allied from invading our heartlands from the South." msgstr "" #. nations/pg.ndb:84 msgid "Sovjetunion" msgstr "" #. maps/pg/map05:7 msgid "Loire" msgstr "" #. scenarios/pg/Husky:3 msgid "July 10, 1943: The Allies invade the Soft Underbelly of Europe." msgstr "" #. units/pg.udb:55 msgid "All Terrain" msgstr "" #. campaigns/PG:445 msgid "6th August 1944" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Szczytno" msgstr "" #. scenarios/pg/Cobra:3 msgid "July 25, 1944: The Allied breakout from Normandy." msgstr "" #. units/pg.udb:5861 msgid "GB AEC II" msgstr "" #. campaigns/PG:578 msgid "" "Your exemplary victory in Sicily has considerably impressed General staff. " "Therefore, you are offered command over the strike force against " "Moscow.##Herr General, do you want to stay in Italy, or do you want to be " "transferred to the Eastern front?" msgstr "" #. maps/pg/map06:7 maps/pg/map11:7 maps/pg/map38:7 msgid "Avon" msgstr "" #. maps/pg/map05:7 maps/pg/map06:7 maps/pg/map11:7 maps/pg/map15:7 maps/pg/map18:7 maps/pg/map38:7 ... msgid "Le Havre" msgstr "" #. maps/pg/map36:7 msgid "University" msgstr "" #. maps/pg/map29:7 msgid "Chuguyev" msgstr "" #. units/pg.udb:11349 msgid "FFR Mtn Inf" msgstr "" #. units/pg.udb:2220 msgid "sIG IB" msgstr "" #. maps/pg/map12:7 msgid "Gafsa" msgstr "" #. campaigns/PG:89 msgid "1st September 1940" msgstr "" #. units/pg.udb:9725 msgid "US P47N Tbolt" msgstr "" #. maps/pg/map22:7 msgid "Kastelli" msgstr "" #. units/pg.udb:3172 msgid "43 LuftW FJ" msgstr "" #. maps/pg/map36:7 msgid "Fairfax" msgstr "" #. campaigns/PG:358 msgid "" "Your decisive victory in the battle of Budapest has made the Russians sign a " "favourable peace treaty. Combined with your earlier victory over England, we " "have won the war on both fronts. You are herewith promoted to " "Generalfeldmarschall as an acknowledgement of your brave achievements for " "the Reich during the war." msgstr "" #. maps/pg/map04:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Aachen" msgstr "" #. units/pg.udb:8493 msgid "S-Boat" msgstr "" #. maps/pg/map24:7 msgid "Lokhvitsa" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Grodno" msgstr "" #. units/pg.udb:1548 msgid "PzIVJ" msgstr "" #. maps/pg/map21:7 msgid "Zvornik" msgstr "" #. maps/pg/map05:7 maps/pg/map18:7 msgid "Nantes" msgstr "" #. units/pg.udb:10705 msgid "US Inf 41" msgstr "" #. maps/pg/map04:7 maps/pg/map17:7 msgid "Givet" msgstr "" #. campaigns/PG:487 msgid "" "Herr General, your outstanding performance left a lasting impression to the " "Allied leader, enabling our Administration to sign a favourable peace " "treaty. The war in the West is now over." msgstr "" #. units/pg.udb:7961 msgid "ST 15.2cm Gun" msgstr "" #. units/pg.udb:11881 msgid "Fort" msgstr "" #. scenarios/pg/Sealion40:2 msgid "SEALION (40)" msgstr "" #. maps/pg/map23:7 maps/pg/map32:7 msgid "Nieman River" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Metz" msgstr "" #. units/pg.udb:8717 msgid "IT P108 Bi" msgstr "" #. scenarios/pg/MarketGarden:2 msgid "MARKET-GARDEN" msgstr "" #. units/pg.udb:5413 msgid "GB Chal A30" msgstr "" #. maps/pg/map05:7 maps/pg/map15:7 maps/pg/map18:7 msgid "Bocage" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Linz" msgstr "" #. units/pg.udb:4292 msgid "NOR Infantry" msgstr "" #. scenarios/pg/SealionPlus:2 msgid "SEALION PLUS" msgstr "" #. units/pg.udb:1436 msgid "Pioniere Inf" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kletskavka" msgstr "" #. maps/pg/map21:7 msgid "Trikkala" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Allenstein" msgstr "" #. maps/pg/map17:7 msgid "Eupen" msgstr "" #. units/pg.udb:2332 msgid "Hummel" msgstr "" #. maps/pg/map18:7 msgid "Yvetot" msgstr "" #. maps/pg/map21:7 msgid "Kukes" msgstr "" #. campaigns/PG:57 msgid "" "You have proven to be a worthy Panzer General and secured the lowlands " "separating Germany from the heart of France. Now, the final assault on " "France is ready to commence. Unfortunately, time did not permit preparations " "of an invasion of England." msgstr "" #. maps/pg/map24:7 msgid "Chernobay" msgstr "" #. maps/pg/map07:7 maps/pg/map09:7 msgid "Bir Hacheim" msgstr "" #. maps/pg/map04:7 msgid "Bittem" msgstr "" #. maps/pg/map33:7 msgid "Dunaujvaros" msgstr "" #. units/pg.udb:10789 msgid "US Inf HW 43" msgstr "" #. scenarios/pg/MiddleEast:2 msgid "MIDDLE EAST" msgstr "" #. maps/pg/map21:7 msgid "Banja Luka" msgstr "" #. maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Cologne" msgstr "" #. units/pg.udb:876 msgid "HE177a" msgstr "" #. units/pg.udb:7485 msgid "ST KV-2" msgstr "" #. maps/pg/map21:7 msgid "Novigrad" msgstr "" #. maps/pg/map25:7 maps/pg/map27:7 maps/pg/map31:7 maps/pg/map37:7 msgid "Mezol River" msgstr "" #. units/pg.udb:10537 msgid "US M15A1 MGMC" msgstr "" #. campaigns/PG:93 msgid "" "England has surrendered! It is to be attributed to your talent and to the " "high morale of your troops that you achieved an unprecedented victory over " "the British Empire. England, Scotland, Ireland, and the oversea dependencies " "are now governed by German administration. You are herewith awarded one of " "the highest order medals of the Reich, the Iron Cross with Oak Leaves, and " "Swords." msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Ural" msgstr "" #. units/pg.udb:4909 msgid "GB Blen MkI" msgstr "" #. maps/pg/map36:7 msgid "Gaithersburg" msgstr "" #. maps/pg/map17:7 msgid "Spa" msgstr "" #. units/pg.udb:568 msgid "ME410a" msgstr "" #. units/pg.udb:3984 msgid "FR Ch B1-bis" msgstr "" #. maps/pg/map19:7 maps/pg/map20:7 maps/pg/map34:7 maps/pg/map35:7 msgid "Arnhem" msgstr "" #. units/pg.udb:10873 msgid "US Rangers 43" msgstr "" #. maps/pg/map17:7 msgid "Leuvein" msgstr "" #. maps/pg/map15:7 msgid "Deauville" msgstr "" #. maps/pg/map10:7 maps/pg/map28:7 msgid "Kotelnikovo" msgstr "" lgeneral-1.3.1/po/pg/stamp-cat-id0000664000175000017500000000001212140771457013463 00000000000000timestamp lgeneral-1.3.1/po/pg/de.gmo0000664000175000017500000046244112643745103012370 00000000000000Þ•¼8q \q — !—.— =—K—_— r—|—‹—ž—¥—¹— È—Ö—ç—ú— ˜ ˜ -˜;˜M˜\˜k˜|˜‹˜ š˜¨˜ ¹˜ Ęјà˜ ð˜ ý˜ ™ ™ ™ ,™ 7™C™ K™ Y™g™v™ †™”™ £™ ­™ »™ É™ Ö™ â™ï™šš#š 4š Aš Lš Zš fš rš ~š Œš ™š ¤š ±š ¿š Ìš Ùš æš ðšýš› ›››"›*›2›6› =›G›±V›œ œriŽ øž žž ž #ž/ž@žEžNž ^ž hž rž ž ‰ž”ž ›ž§ž¯ž·ž¼ž ĞϞ מ ãžîž õžŸ^ b¢i¢ o¢y¢¢ Š¢”¢¤¢ ©¢ ³¢¾¢Å¢ ΢ Ø¢ ⢠ð¢ú¢ £<£K£-j£S˜£—ì£ „¤ޤ–¤ ž¤«¤´¤º¤ À¤ʤФؤߤ å¤ ñ¤ û¤¿¥Ŧ ̦ צ á¦î¦õ¦Ký¦I§[R§®§¶§¿§ȧЧ Õ§ß§ ä§ð§¨ ¨#¨ +¨6¨ =¨ K¨Y¨`¨g¨n¨u¨|¨ƒ¨Ѝ‘¨ š¨¦¨­¨µ¨ º¨Ĩ ̨ר Û¨ ç¨õ¨ü¨ © ©© ©(©.© 7© E©S©Z©a©j©s©{©Š©‘©˜©¡© ª©·© À©Ê©Ó©Ú© ã©í©õ©ü©ªªªªª$ª-ª4ª=ª DªRª Xª dªoªvª~ª…ªª–ª §ª ³ª ¾ªʪЪתܪåªîªõªýª «««(« 1«=«F« N«Z«`« g« s« ~« ‰«–« «©«±«·« À« Ë« Ö«à«é« ñ«þ« ¬¬¬ ¬ (¬2¬;¬C¬ L¬W¬ _¬ i¬s¬ |¬´Š¬ ?­ K­W­`­f­l­t­y­­ †­ ’­  ­ ª­ ¶­Á­Ç­ έ Ù­æ­ ö­® ®® ®(®0® 8® C®Q® Y®c® l®x® €®Š®“® £® ®®º®® Ë® ծ߮ î® ø®¯ ¯ ¯$¯ ,¯6¯=¯F¯L¯ Q¯_¯e¯n¯}¯ …¯’¯𝠩¯³¯°Å¯v°|w±Øô±“Ͳa³ b´¢n´ ¶¶$¶ ,¶ 7¶A¶ H¶R¶à·è·î· õ·¸¸ ¸¸¸ ¸ )¸6¸ =¸G¸O¸ X¸ b¸m¸Bs¸¶¸ ½¸ɸѸÙ¸Xà¸õ9ºª/»<Ú»½ ½(½/½8½>½E½K½R½Z½a½ h½r½…½™½Ÿ½ ®½ ¼½ɽͽÔ½ݽá½è½ñ½ ÷½¾ ¾¾ ¾ ¾ ,¾ë6¾"¿ +¿ 7¿C¿ K¿ Y¿ d¿ p¿ {¿ †¿ “¿ ž¿¬¿ ³¿½¿ Á¿ Ë¿ Ö¿á¿ ê¿õ¿ü¿ À ÀÀÀšÁŸÁ§Á «Á ¸ÁÃÁÊÁ ÐÁÚÁ âÁíÁóÁ˜ÂœÃ€£Ãµ$ĆÚÄêaÅLÆ SÆ aÆ nÆ {Æ ˆÆ •Æ ¢Æ®Æ·Æ ¾Æ ÉÆ ÕÆàÆ ñÆ ÿÆ Ç Ç &Ç1Ç :Ç FÇ PÇ ]Ç jÇ vÇ Ç Ç ™Ç ¥Ç ¯Ç ¼Ç ÉÇ ÖÇ äÇ ñÇ ýÇ ÈÈÈ %È 1È ;ÈGÈPÈWÈ^ÈfÈmÈ tÈ ~È ˆÈ’ÈšÈp¢È Ê_ Ê]€ËÞËåËìËôË ýË ÌÌÌ Ì-ÌÀ4ÌõÍüÍÎ ÎÎÎ&Ζ5Ï ÌÐÙÐëÐ ôÐ þÐ Ñ Ñ &Ñ4Ñ CÑ QÑ \ÑiÑ{Ñ ‹Ñ˜ÑªÑ ³Ñ ½Ñ ÈÑ ÔÑ ÞÑ êÑ ÷Ñ ÒÒ Ò $Ò 2Ò ?Ò LÒZÒ cÒ mÒ xÒ „Ò Ò šÒ ¦Ò´Ò ½Ò ÊÒ ×ÒäÒ íÒ øÒ Ó Ó Ó #Ó 0Ó =Ó JÓ WÓ eÓ sÓ ~Ó ŒÓ —Ó ¢Ó ­Ó ·Ó ÁÓ ÏÓ ÚÓ äÓ ïÓ úÓ Ô Ô Ô *Ô8Ô>ÔCÔIÔ OÔ \ÔfÔ jÔuÔ†ÔÔ”Ô™Ô¡ÔÑªÔ |Õ ‡Õ“Õ›Õ¡Õ§Õ °Õ ¼ÕÉÕÍÕÓÕÜÕ åÕðÕ Ö ÖÖ Ö%Ö4Ö ;ÖEÖNÖ UÖ_ÖfÖlÖsÖxÖ~Ö…Ö‹Ö‘Ö—Ö žÖªÖ°Ö´ÖºÖÂÖËÖÒÖ×ÖßÖçÖðÖ ùÖ× ×zו׺´ØoÙvÙ#ŒÚͰÜ~݄ߌßMßxÞß‹Wà¸ãàœá¥á®á ¶áÁáÆá ÍáÛá ãáñá÷áþá â â â (â 4â @â Mâ[âdâmâ uâ‚â ‹â —â ¥â±â ºâ Äâ Îâ Øâ åâ òâ ýâ ãã ã +ã 7ã Dã Pã]ã eãrãÚyãÉTä å+å4å =å GåSå[å båoåuå~å„åŠåå –å ¢å ¬å ºå ÇådÔå 9æ Cæ Pæ[æbæjæ?pæ1°æZâæ.=ç6lçP£ç>ôçO3èWƒèdÛèC@éD„éÉéÐéØéÝé ãé îéøéüéê êêê&ê/ê8ê>êFêOê Xêbê iêsê|ê „ê Žê œêªê²êºêÀêÅêÌêÑêÙê ßêëê ñêþê ë ëë$ë,ë4ë ;ë EëPëXëgëvë~ë‡ë Žë šë ¥ë°ë Áë ËëÖëåëíë öëì ìììì$ì-ì3ì:ì@ìIì Qì [ì gì qì ì ì ™ì¥ìªì³ì Âì ÌìÙìàìèìðì÷ìþìí íííí&í+í3í,:ígíoí xí…í”í™í¢í§í ­í»í Áí ÍíÙí Þí éíôíüí îîî î %î/î°6î/çîï ï)ï0ï 7ï BïLï Qï[ï dï rïï†ïŽï•ï œï ¨ï ´ï Àï Ìï Øïâï éïôïúï ðŠð›ð¢ð¨ð°ð ÀðËðÒðÛðYâð(<ñeñ wñ ñ ñ™ñ ¢ñ¯ñ ·ñ Âñ Íñ×ñÞñïñ÷ñòH‘òGÚò"óÔ*óÿôõ õ !õ+õ4õ :õGõMõ Tõ `õ lõyõ€õ ˆõ”õœõ¡õ §õ ³õ ¿õÊõæõ ïõùõÿõö öö!ö)ö0ö6ö =ö Hö Sö_ödö mö wö‚ö †ö”öœöh£öd øšqù– ûK£üOïý ?ÿMÿUÿ\ÿeÿlÿuÿ {ÿˆÿÿ—ÿ Ÿÿ ¬ÿ ¹ÿ ÆÿÓÿÚÿáÿçÿíÿôÿ ûÿ@] fr‚‰ ’ © ¸ ÄÏÕÜäí òÿ  &3CJøRóKó?æ3 =%c l z ‡’ š ¥D±iö ` v  | † Œ ” š N© Zø CS —  Ÿ ª  ®  ¸ à Ê  Ð  Û  å ï ö ý       &  . :  ? I M  T ^ f  n  x  …  “  ¡ ¯ ¶ ½ Å  Ì  ×  ã  ï  û   ! , 7 B M Zg nz ‚ Œ – ¥«±¸¿ ÎØ àîö þ +4 = KY hu |‰ œ­³¼ÅÍÔÝ æð õ  $*27 GU\du |Š ‘  ¨µº¿¸Äº}8?G‡˜¡ª³¸½ÃÉÏÖÝäëòøÿ   %08 > H U b o|˜ ž© °¼ÂÉæÐ· ¾ ÊÖÝã êõ û  ',19AIPV \ it |‰s   + 8 E P Z d r € Œ ˜ ¤°¹ÂÊ Ò àëó û   ) 1; C O Z epx‰‘™¢ª² º Å Ï Ù ãð ù    $/7?GP Y cm v € Ž ™ ¤° ¹ÅÎ×ßçíõ þ   ' 3@FOW_ f r Œ•  ¨ ² ¼ ÊÔ Úäé ï û ž9±WëgC`«K DX § ® ¹ÆËÑØ Ý çñ ù   & 4à@!'06 =GNT ] j w„Š–›¡¦­´vÄ ;!G!K!Q! Y! f! r!}!†! –! ¤! ¯!»! Í!×! ë! ö!" "ï" ### #+# 4# @#J#[# q#{#ƒ#‰# # ™#£# ½#É#Ñ# Ú#å#î#÷# þ# $$$$%$-$¡2$Ô$Ü$ä$ê$ ñ$ý$%% % )%5%;% ?%K%Ë[%'&/&5&:&B& J&T&\&d&l&s&y&& ‡&‘&™&&¥&}¬&Ú*'@(UF(]œ(©ú)a¤+9-í@-}..Q¬.¡þ. /ÔÀ0g•1Jý1£H2 ì3 ù34× 4å5v6}6 Œ6˜6 6¨6 ±6 ¾6 É6×6 Þ6è6áï6Ñ7Ø7á7é7ñ7 ø78 888 8)818 78D8M8V8 ]8 i8 s8 8‰88•8ž8£8³8 ¹8 Æ8Ô8Ú8 á8ï8 ö8 999 /9 ;9 F9 R9^9 n9 y9 „9 9 š9 ¦9 ´9 Â9 Ð9 Ú9 å9ó9 ú9 : : : $: .: ;:H: P: [: i:u: }: ‹:–::¥:­: ´:¾:Å:Ë: Ó:à: è: ö: ; ;;!; '; 5; ?; K; W; e; s; ; ; ; «; ¶; Á;Ï;Ó;Ø;Ü; á;ì;û;<< <<<%<-< 5< ?<I<O<V<_<n<u<~<‡<<•<ž<¥< ¬<¹<È< Î<Ù< Þ< é<÷<ÿ<= = =$= *=6= ==G=V=_= n=|=ƒ=Š= ‘= œ=§=t®= #>.> 5>®A>®ð>qŸ?GA‚YB-ÜCŽ D'™EFÁEH H H&H ,H7H?HkGH‘³H7EI }J ‰J “J¡J §J ²J½J„ÐL`UM“¶MtJN ¿NÊN ÓN ÝN êNôNýNO¿ O¯ÉP±yQ]+Rh‰RMòRM@SŽSHTõgTP]U—®UmFV~´V¿3WõóWQéX';Y cZÑq[6C\Wz]>Ò^;`)Ma%wc÷eƒ•f g«#hÀÏhZi‘ëi }j›‡k9#l9]mG—n ßoépîêrûÙsÎÕtϤuetvEÚvt y•y ›y ¨y ³y½y ÄyÐyØyàyñyúyÿyzz z!z(zC/z s{ €{ Ž{›{®{ ¿{ É{×{é{ð{ | ||.|@|R| d| q|~| Ž| œ|ª| º| È| Ö|ã| ó| þ| } } '} 4} @} L} Y} e} r}~} †} “}  }®} ½} Ê} ×} á} ï} ü} ~ ~"~3~ E~S~ c~ q~~~ ~ ™~¥~¶~È~ Û~ å~ò~    & 0 =JQW`gnw{ ‚ Œ¸™R€3X€Œu‚ „‚Ž‚—‚‚ ¢‚ °‚»‚Ê‚ ςق é‚ ó‚ ý‚ ƒ ƒƒ %ƒ1ƒ9ƒAƒFƒ NƒYƒ`ƒ hƒ sƒ}ƒ‚ƒš„„‡&‡ ,‡6‡>‡ G‡ Q‡[‡ `‡ j‡u‡|‡ …‡ ‡ ™‡ ¤‡±‡ ·‡5Ň"û‡=ˆe\ˆ¹Âˆ|‰€‰ˆ‰‰—‰ ‰¦‰ ¬‰¶‰¼‰ĉ̉ Ò‰ Þ‰ è‰Ãó‰·‹¾‹ Ë͋ԋڋSâ‹6Œk?Œ «Œ¶Œ¿ŒÈŒÐŒ ÕŒߌåŒöŒ#* 1< C P^elszˆ– Ÿ­´» ÀÊ ÑÜ à îüŽ Ž ŽŽ $Ž/Ž5Ž>ŽPŽbŽiŽpŽyŽ‚ŽŠŽ™Ž Ž¨Ž±Ž¹ŽÀŽ ÉŽÓŽÛŽâŽ ëŽ÷ŽÿŽ & .8 ?IPX ^ ju|„‹“œ ¬ ¸ ÃÏÕÜ áìõü /8>G O[a h t  ‰– ©±· À Ë Öàéñ‘ ‘‘‘#‘ +‘5‘>‘F‘ O‘Z‘ b‘l‘ p‘z‘ºŠ‘ E’R’X’a’g’m’u’z’€’ ‡’ “’ ¡’ «’ ·’Â’È’ Ï’Ú’ ê’ ÷’“ ““ “)“1“ 9“ D“R“ Z“ d“ n“z“ ‚“Œ“•“ ¥“ °“¼“Ä“ Í“ דã“ ô“ ” ”” ”(” 0”<” C”N”T” Z”h”n”w”†” Ž”›” ” ¯”¹”ºË”†•{˜–ð—­˜þ³˜ ²™c¾™ "›-›5› =› H›R› Y›¡c›  (.4:AGPV ]g o z „E• ÛæìõýYžý]Ÿ¡[ ‰ý ‡¢ Ž¢˜¢Ÿ¢¨¢®¢µ¢»¢¢Ê¢Ñ¢ Ú¢è¢û¢££%£,£3£7£>£G£K£Q£Z£ `£j£r£x£~£ƒ£ ‰£ “£ ¤ ©¤ µ¤ Á¤̤ Ô¤ߤå¤ ê¤ ÷¤ ¥ ¥¥ %¥/¥ 3¥ =¥ H¥S¥\¥a¥h¥ o¥y¥~¥b†¥é¦î¦ö¦ú¦ § §§ §"§ *§5§;§šC§Þ¨å¨Åu©’;ªðΪ¿«Æ« Ù«æ«ø« ¬ ¬ &¬2¬;¬ B¬ M¬ Y¬e¬y¬ ˆ¬”¬ £¬ ±¬¼¬ ì Ϭݬï¬ ­ ­ ­ &­2­ C­ M­ Z­ g­ t­ ‚­ ­ ›­ ¨­²­»­ í Ñ­ Û­ ç­ ô­ÿ­®®®®-®D®Y®a®9i® £¯Ž°¯e?±¥±¬±³±¹± ±ϱÕ±ݱ ä±ò±Óù±ͳÒ³Ù³ á³ï³ ø³ ´§µ ·¶Ŷ×¶ à¶ê¶ ù¶··*·9· I·V·e·z· ·›·°· ¹· ÷ η Ú· ä· ð· ý· ¸¸ ¸ *¸ 8¸ E¸ R¸`¸ i¸ s¸ ~¸ Џ •¸  ¸ ¬¸º¸øÒ¸ á¸î¸ ÷¸ ¹ ¹ ¹ ¹ -¹ :¹ G¹ T¹ a¹ o¹ }¹ ˆ¹ –¹¡¹ª¹ ³¹ ½¹ ǹ Õ¹ à¹ ê¹ õ¹ º º º $º 0º>ºDºIºOº Uº bºlºpº uº€º‡ºŽº“º›ºÓ¤º x»ƒ» “»Ÿ»¥»«» ´»À»Ç»Ë»Ñ»Ú» ã» ï» û»¼ ¼¼¼ .¼;¼K¼T¼ [¼e¼l¼r¼y¼~¼„¼‹¼‘¼—¼¼ ¤¼¯¼µ¼¹¼¿¼ǼмÖ¼Û¼ã¼ë¼ô¼ý¼½ ½  ½,Á½Çî¾¶¿½¿ÒÀ×åÂ÷½ÃµÅ¼ÅfÀÅŒ'Ɔ´ÆÎ;Ç ÈÈÈ %È0È5È<ÈKÈ RÈ^ÈdÈkÈ oÈ{ÈÈ ŸÈ«È¼È ËÈÙÈâÈëÈ óÈÉ ÉÉ 'É5É >É HÉ RÉ \É iÉ vÉ É ŽÉšÉ £É ¯É »É ÈÉ ÔÉ áÉëÉòÉåùÉÎßÊ ®Ë »ËÆË ÏËÙËßËçËîËÌ ÌÌÌÌ%Ì +Ì 7Ì AÌ OÌ \ÌhiÌ ÒÌÜÌ ãÌîÌõÌýÌRÍ8VÍoÍ,ÿÍ9,ÎffÎNÍÎPÏXmÏfÆÏI-ÐLwÐÄÐÍÐÕÐÚÐ àÐ íÐ÷ÐûÐÑ ÑÑ!Ñ (Ñ 2Ñ=ÑCÑKÑTÑ ]ÑgÑ nÑxÑÑ ‰Ñ“ѢѱѹÑÁÑÇÑÌÑÓÑØÑàÑ æÑòÑøÑÿÑ Ò ÒÒ%Ò-Ò5Ò <Ò FÒQÒYÒhÒ wÒÒŠÒ ‘Ò Ò ¨Ò³Ò ÃÒ ÍÒØÒçÒ ïÒ úÒÓ ÓÓÓ#Ó(Ó1Ó7Ó>ÓDÓMÓ UÓ _Ó mÓ wÓ ‚Ó ÓœÓ¢Ó¦Ó ¯Ó ½Ó ÇÓÔÓÛÓãÓëÓòÓùÓÿÓÔÔÔÔ!Ô'Ô/Ô!6ÔXÔ^ÔgÔxÔ‡ÔŒÔ•ÔšÔ¢Ô³Ô ¹ÔÅÔËÔÐÔ ÕÔâÔêÔ òÔüÔÕ Õ ÕÕÉ ÕJêÕ5Ö>ÖGÖNÖ UÖ _ÖiÖ oÖyÖ ‚Ö ÖÖ¤Ö¬Ö³ÖºÖ ÊÖ ÖÖ âÖ îÖ úÖ× ×××ו.×Ä×Ì×Ò×Ú× ê×õ×üרr Ø+Ø«Ø ½Ø ÇØ ÓØߨ èØöØ þØ Ù ÙÙ&Ù5Ù>Ù•GÙKÝÙX)Ú‚ÚŠÚŽÜ –Ü ¡Ü ¬Ü¶Ü¿Ü ÅÜÑÜ×ÜÞÜäÜ óÜÝÝ ÝÝ$Ý)Ý/Ý5Ý ;ÝFÝbÝ kÝuÝ{Ý„Ý ŒÝ–ÝÝ¥Ý¬Ý²Ý ¹Ý ÄÝ ÏÝÛÝàÝ éÝ óÝþÝÞ ÞÞvÞmß¡þà˜ âW9äV‘åèæîæöæýæç çç ç&ç-ç5ç=ç Oç\ç kçvçç†çŒç’ç™ç ç¦ç­çµç[¹çè èÔ*èÿéêê ê ê /ê ;êFêLêSê[êdêjêqê zê„êˆêŽê —ê ¢ê°ê¹êëÁêÚ­ëÚˆì cí nîFyîÀîÉî Ùî æîñî ùî ï¹ï_Ëð +ñ9ò?òHòNòVò \ò]iò^ÇòK&órózóóƒó ‡ó’ó™ó Ÿó ªó ´ó¾óÅóÌóÒó×óÜóäóéóñó÷ó üóô ô ôô%ô-ô1ô8ôJôbôxôô†ôŽô •ô £ô ±ô ½ô Éô Õôáôèô îô ùô õ õ õ 'õ4õ ;õGõ Oõ Yõ cõmõrõxõ~õ…õ Œõ šõ¤õ¬õ½õÅõÍõ Õõ âõïõøõ ö öö,ö3ö:öAö GöTöcöiöröuö}öƒöŒö •öŸö ¥ö ±ö ¼öÇöÐöÖöÞö ãöðöøöýö÷÷÷$÷ +÷ 7÷ B÷O÷T÷Y÷´^÷³øÇøQÖø(ù0ù9ùBùKùTùYù^ùdùjùpùwù~ù…ùŒù“ù™ù ù¦ù¬ù ²ù½ù ÆùÑùÙù ßùêùúùú$ú+ú=ú Fú Pú[ú búnútú{ú‚ú–ûŸû¥û«û²û¸û ¿ûÊû ÐûÚû áû ëûõûþûüüüü ü'ü-ü 3ü >üJüSübüxiüâüéüïüöü ýü ý ý $ý /ý 9ýCýVý iý uý ý ý›ý¤ý­ýµý ½ý ËýÙýáý éý ôýÿýþþ þ)þ 1þ ?þ Jþ Uþ`þhþqþyþþ‰þ’þšþ¢þ ¨þ ³þ ½þ Çþ Ñþßþ èþ òþ ýþ ÿ ÿÿ&ÿ.ÿ 6ÿCÿ Lÿ Vÿ`ÿ iÿsÿ ƒÿŽÿ “ÿŸÿ¨ÿ®ÿ·ÿÀÿÈÿÐÿÖÿÞÿçÿîÿöÿýÿ &.6= C P]f n y ƒ  𥫝´ºÀ ǯÑ?bÁ€$e¥R K^ ª´ »ÆÍÒØß ä ñû  # + 9!Egmv| ƒ”š£´Ëàæìóøþ  · Öâæî ö     #  3  @  K W  i s  ‡  ’ ž  § Ú±  Œ — Ÿ  § ²  »  Ç Ñ ä  ù       ! + E N V  _ j s |  ƒ  ” ™ ¡ ¨ ° ·µ m u } ƒ Œ ” œ ¥  ´  ¿ Ë Ñ  Õ á Ýó Ñ Ù ß æ î  ö %- 3=EIQXãÚZ¾^{x·ô˜¬;Eœ”_1²‘3Dõxin^Ø€7 ¸ ÅѬ٦†-4CIPXa hs‚ ‰“üš— ž ¦ ® ¶ ½ Å Ë Ó Ù  à ê ò ø ÿ !! ! $! .! :!D!K!P!X!]!m!s!z!‚!ˆ! !!¤!¶!È! ×! å! ñ! þ! "" ." ;" F" Q" \" h" v" „" ’" œ" §"µ"¼"Ë"Ú" ê" ô"þ" ## $# /# =#I# Q# _#j#q#y## ˆ#’#™#Ÿ# §#´# ¼# Ê# ×# á#ï#õ# û# $ $ $ +$ 9$ G$ U$ c$ q$ $Š$ “$¡$¥$ª$®$ ³$¿$Î$Ó$Û$ß$ç$ï$ø$%% %%%"%+%<%C%L%U%]%c%l%q% x%…%”% š%¥%ª%¯%¸%À%È% Î% Û%æ%ì%ò% ù%& &&&&.&5&<& E&P&U&ƒ\& à&ë&ô&Ìú&ÍÇ'Q•(Dç)|,+?©,‰é,&s..š.É0 Ñ0Û0á0 ç0ñ0ù01˜‚1J2 f3 r3 |3Š3 3 ›3[¦3‹6wŽ6§7“®7 B8M8 V8`8 u88ˆ8Ž8š”8±/:±á:b“;ˆö;T<RÔ<£'=YË=%>U@?Æ–?o]@€Í@çNAö6Bl-C?šCÛÚDضEEFXÕGJ.ISyJÍKùÐMèÊOz³P(.Q±WRÏ SmÙSGTñåT¼×U7”V7ÌWaY fZêr[ô]]ìR^Ñ?_Û`lí`˜Zaócd‡d ™d ¥d¯d ¶dÂdÊdÒd âdìdñdøde eeež ž ¹–A:‰ã÷µ?l­„T‡È?µ5Œ3%'zNÃø™Ž¨ƒ¢có·¿9*XÜè‘(ä]@À÷cì£s_ý15ªaI „4 Ÿ¢ßòQB¬J„ÙºƒBŒ¼ô»êhú„]1õÆ(x¢DHX­ó¾›I²Šó_à*„ò·ˆ¾ÇåqùÐÃ\P)b,"…®Hškd™[¤ * S3uÓ»œ¾6OEŽî8”XˆÍ ³ÄŠ6üñЋ·Ö“[7 ¸i(î±ÊS…Ü0úÝÞ,âJ¢5ßÅ1‰>F%Q%þ¨©E+0,É-2tp”p°P2‚à°ëÿ˜oú7j“Õ^ yý¥M%Û´}0ž£NöÏÉ_ZÂÍå6h¦Šß̘rÞÔo¦´V™p¤Ü<jFÚ®‹‚ñEšn9–r$È…\†ä‡³s…‹-“k(³<ehùL¬°žN¿%¹µ•¬Ö&§£ wS¨>HðªU@»ç>LO׺uê– Ó$î½¹b'Ò/º'¦ª/Ʊ@þ™°A`,Û^¯Àmøì#©êtz±½"•RüCM‰icÞØ-x*Ò`€ÔÕÖ àuRƒX’¨`©Iíõ±«gjTælYï”ðýûöÙ„j5†§6×Þ¬¤'Ã=è?ƒ¾x§¶%ÑÈ~J4³2¢Åe¶¼ËLÛNR*í­P| ¶ÊPÍDÙEö’Ó — ÷ó8ipeë¢kY¶Ñ*)þQ®>¿gÚTY€÷ü\ˆ^~Wgh˘- ÷ØÐëÌ›i X<ê‘ñ ÕŽÒ¯ ÑÂÛMŒ¡!é7æm“ä‰W(TÊÔ"ÎËAa¸ÄèÚouiRbÅckÆÇf±Q°/e7LML ™©ÇÄí/°Ïh);׸âØ€;ÖB@gr\¿,ÊKkú›¥·Õ®V¡.mnOsÅ{A¤`l‚ð–. ŒÅô¯v3ðôåäD8f ëz„a½4ÎÎdÊŸGä9e ‚×êÅ*¨;†+‡710×vŒ;†£qïQ&ÿ7»8Ë©:…ÙAøSF}ÁVf2ø æ—Œ E•{7§9¹ým•áç!ADÔS}üÝW+°çÁ²‘ìÙÄ#yÒ2Ñ"ºVѪ«S¸´Ÿ›9n¡åð§}I¹ëØXb¥qÉt\?†ÔÙ| #ÎÓr  ².é¾ZœŸÏ_`1è“×Áös#í´ Ê$éšå”¬m–ªýNžæ-:Eõ!•˜aºñ€P…J-Tzq{^W3µlF£1˜KÖZGo¡ w Cr6Õ ˜Ìd%ìH—=DÍ,òá}¥ÞGácqÀeaù¯œY·@¥î!çú-‹‰XÛÚ ¤{:O|âõûV¥=€FßuÄ÷0Þ­T‘Ë×Õ¶·¸=DRðsUÆQ"[$¿õ(¼žhãój_)w«;ç!ÿŠ=þîï~ñ;™?{#}ψŽ<nÒýSó©ã bèêGßÄ[B$ˆ¦Ü‚¼ÎÏ5¹º»¼« ‡:Jôñg¡òÌ8mLd§ ÆÊ‘jœn ¯4ÈK‰²Ò”Ñ.‰oª  ØõÈ–­“Õù³ÚÀÀþ^šJ @‡‡¦š5w ÐzyµFŠ6ÅÐ2JÂ\ü¦"cɲ<Ÿ+Ú‹qïɧiR€]ޤ&ÛÃùû³ã!¨tw<Ž yVƒñG¬b~yöÝÍ­ÆòÓéé1[¿.¾ÃÝdëùnkC½¦#|ÍàfIU ÁøÖëéP•5 g´N,4‘B²ÜOKM]ÿP)a ¿šÑGbÇ3ö<Ð:ËÂfÇ`H [ììCá¯w·/ƒpCøÌŸã½dtÂ=†~™$+½@ïíœØÞ0õ³÷¡y/…²ÐÝ$uãR'Uïù¶>>’½ÇÛÓ — ôŸBy)¸úK~(Lâ{'ËóOû"|‡WF3µå£œß¢ÙHW È“›¨Ì¬Ï­ÿ8®Æv !˜©{T¸èáÌà8´ÀúUûÄ‹&&^ ö'ÔtÜ›Vâ6«r}ç.”o+ð3p‹•í/âžþ|À±êéªýj»w¤gàfͼÒÁQˆ¹uòµè¡l?Z—YnÁ’x‘Ô9]sòû`_Z—ÁÖÈÜ݈®äD#¯I†ÉAätmãÝïx+?ô»:Ã).OM¥IÉ_rÎσ]¶’zº¼«|Nâíl‚ì;xàiûŽUUæ±>Zæßá ÿp—v‚üoEæ’hZ]Hîv\üfdCšeœ^ÇîŠ0Ã2 Šå–ÎÚ®&lG´ø”vK [þÓY’«v4á9kYqKa~Øç›4cM=s¾WŒ£ÿx&zBô€C10.5 leFH 1810th July 194310th May 194010th September 193911th February 194315 sFH 1815th June 194316th December 194417 K1817th September 19441st April 19451st June 19451st October 19421st September 19391st September 19401st September 19412 FlaK38 (4)20th May 194122nd January 194422nd June 194122nd June 194423rd August 194125th July 194425th June 194226th May 19422nd October 19413.7 FlaK363.7 PaK35/3630th June 194231st March 194137 FlaKPz IV39 Wehr Inf40 LuftW FJ40 Wehr HW43 LuftW FJ43 Wehr HW43 Wehr Inf5 PaK385th July 19435th June 19406th April 19416th August 19446th June 19446th March 19457.5 PaK407.5 leFk 16nA7th June 19428.8 FK18 ATG8.8 FlaK 188.8 PaK43/418th November 19428th September 19419th April 19409th October 1943AD Mk I FortAD Mk I SPAD Mk II FortAD Mk II SPAF 37mm ATGAF 75mm GunAF BattleshipAF BtCruiserAF CarrierAF DestroyerAF HvyCruiserAF LtCruiserAF PartisansAF SubmarineAF T-BoatAF TransportAF TruckANVILANZIOARDENNESAachenAalborgAarshotAbaAbadanAbbevilleAccotink CreekAdverse weather and supply conditions forced our troops out of Mesopotamia, while English couter-attacks forced us out of Egypt. We basically have to start at the beginning now.AflouAfter their bloody repulse in Normandy, the Allies attempt a second invasion in Southern France. Hold all objectives until the 28th of August to make this invasion a disaster to the Allies again. Otherwise, hold at least two objectives to slow down the Allied advance.After your stunning victory over Soviet resistence, we expect Russia's reserves of men an material to be depleted.After your victory over Soviet resistence, we expect Russia's reserves of men an material to be depleted.AgrigentoAgrinionAhvazAirAir TransportAir-DefenseAircraft CarrierAireAirfieldAix-en-ProvenceAkhtyricaAl HillahAl KazimayahAl KuwaitAl MaffraqAlcamoAlekseyevkaAleksinAlenconAlesAlesundAlexandriaAlgiersAll TerrainAllensteinAlliesAlma RiverAlthough you managed to capture and destroy Stalingrad, shortages in supplies, and winter weather have exhausted our troops. This allowed the Russians to cut off large parts of the 6th Army in Stalingrad and annihilate them, and drive back the Eastern front.America has surrendered to the overwhelming might of the Wehrmacht, Luftwaffe, and Marine! The United States had to sign a peace treaty which grants German occupation of the most resourceful, and strategically most valuable American territories. You are heralded to be the greatest general on Earth without whom such a success would have never been achievable. Therefore, you are awarded the highest order medal, specially crafted for you, the Knight's Cross with Oak Leaves, Swords, and Brilliants, and you are promoted to Generalfeldmarschall. The war is over. Germany is the world, the world is Germany.AmiensAmmanAmsterdamAn NabkAn NajafAnacostiaAnacostia RiverAnahAndalsnesAndreyevkaAngersAngleseyAnnandaleAnnapolisAnti-AircraftAnti-TankAnzioAnzio-NettunoApril 1, 1945: Battle for survival against the Soviet Union.April 1, 1945: The Last Stand.April 1, 1945: Western Allies invade Germany.April 6, 1941: German troops aid the bogged down Italians in Yugoslavia and Greece.April 9, 1940: Wanting Norwegian iron, and northern air bases to deny British access to the Baltic Sea, the Germans launch a surprise attack on Norway.Arc RiverArdenneArendalArgens RiverArgentanArgosArlesArlingtonArlonArmavirArnhemArrasArromanchesArtemovskArtilleryAs a result of their winter offensive, Russian troops are spread thin in the area of Kharkov. This is an excellent opportunity to start a counter-attack, annihilate the Soviet strike forces, and retake Kharkov. If you take Kharkov and all other objectives by at least the 4th of March, we may continue our advance in 1943. To undertake the necessary preparations for an attack of Moscow, it is imperative that you finish your mission much earlier.AspresAsse RiverAstrakhanAterno RiverAthensAubenasAug 6, 1944: Allies attempt to cut off Wehrmacht forces in Southern France.AugsburgAugust 23, 1941: The Wehrmacht attempts to pocket and destroy Soviet forces defending Kiev.AustriaAvellinoAvezzanoAvignonAvonAvranchesAxisAxis DefeatAxis Major VictoryAxis Minor VictoryAygues RiverBALKANSBARBAROSSABERLINBERLIN (EAST)BERLIN (WEST)BF109eBF109fBF109gBF109kBF110cBF110dBF110eBF110gBUDAPESTBYELORUSSIABabyakBaghdadBakuBalaklavaBalkansBanja LukaBarBaranovichiBarcellonetteBardiaBariBarnevilleBartenevkaBaselBaskunchakBasraBastogneBattleship BkBattleship DlBatumiBayeuxBeaumontBeauvaisBedfordBelaya TserkovBelbokBelgiaBelgorodBelgradeBelice RiverBenedictBeneventoBenghaziBeratiBerdanskBerdichevBereznaBergenBerlinBernBertaBestBethesdaBeuthenBialstokBicskeBidefeldBierutBiferno RiverBihalBir HacheimBirminghamBiskraBitburgBittemBizertaBjerkvikBlackwater RiverBladensburgBlagdernoeBlankenheimBobovBocageBodoBogucharBoguslavBolbecBolkhovBoneBorisoglebskBorisovBosanki PetrovacBosanskaBosna RiverBoulogneBourgesBournemouthBowieBoxtelBrandenburgBrandywineBratislavaBraunschweigBremenBremerhavenBreslauBrestBrianconBridge EngBrightwoodBrignolesBrindisiBristolBritish CampBrombergBrooklandBrunnBrusselsBryanskBryanskoeBrzezinyBudaorsBudapestBudennovskBudweisBuelgorodBug RiverBulgariaBulgarian InfBy your taking of Sevastopol and the Krim peninsula in time, we could annihilate the Russian Black Sea fleet. There will be no more interference on our ongoing advance to the East.ByelorussiaBzura RiverCAUCASUSCOBRACRETECabourgCaenCairoCalaisCaltagironeCaltanissettaCambridgeCameron RunCampobassoCaneaCannesCanterburyCapital ShipCapitol HeightsCapitol HillCardiffCardiganCarentanCarpentrasCasertaCassinoCastellaneCastrovillariCataniaCatanzaroCaucasusCentrevilleChalonsCharleroiChartresChateau GontierChateaudunChateaurouxChathamChaumontCherbourgCherkassiCherkez KermenChernigovChernobayChesterChester RiverChevy ChaseChillumChirskayaCholetChuguyevCineyCityCivitavecchiaClearClervauxCleveland ParkCoblenzCollege ParkCologneColonial BeachCompiegneConde-sur-NoireauCongratulations for conquering France and for bringing an overwhelming victory to the Reich. France has surrendered, and its dependencies will be put under German protectorate.Congratulations for conquering France and for bringing an overwhelming victory to the Reich. France has surrendered, and its dependencies will be put under German protectorate. Yet it was too late to finish preparations for the invasion of England in time.Congratulations on your effective victory over the Allied invasion of Normandy. The enemy has been driven back into the sea.Congratulations on your outstanding and brave counter-attack. Yet, bombing raids against our supply lines, and Allied reinforcements forced us to eventually abandon the Arnhem area, and to pull back behind the Rhine.Congratulations on your victory. Yet, supply shortages allowed the English to take the initiative, and expel the Africa Corps from Egypt and Libya.Congratulations, you have won the war against Poland, Herr General! You besieged and captured all objectives before the Soviet Union was able to catch up. Your forces have been diverted to the Western border to guard against French and English aggressions.ConstantineContrary to what the odds have made us expect, you drove the Allied attack back into the sea. Whereas you freed France again from enemy influence, the Allied increased their bombing raids against vital German war industries as well as our supply lines in France. Not being able to reliably deliver reinforcements and material to France, the Allies established another beachhead, and drove our forces back to the Rhine.CoriglianoCosenzaCottbusCoursellesCoutancesCracowCrestwoodCrete has been captured by the English in 1940 as a reaction on Italy's invasion of Albania. Since then, the English have erected air and naval bases which are likely to interfere with our upcoming operations against Soviet Russia. It is your order to take the island, capture the strategic bases, and drive the English troops into the sea. This is the largest airborne operation seen in this war.CrotoneCuneoCyreneCzestochowaD-DAYD-DayDO17zDO217eDO335DamascusDanube RiverDanzigDarmstadtDasburgDead SeaDeauvilleDebaltsevoDebarDec 16, 1944: Wacht Am Rhein... Germany's last gamble in the West.DefeatDemer RiverDenmarkDerbentDesertDespite of your efforts England and France have entered the war against Germany. Additionally, our Eastern ally the Soviet Union has begun invading Poland to take its share of the cake. Thus it is imperative that you advance to the Vistula river and take the key city of Warsaw and surrounding objectives by no later than the 30th of September.Despite your heroic efforts, Norwegian and English resistence was too strong to clean the territory from enemy influence. As the state of affairs is heating up on the Western border, we had to retract all forces from Noway, and divert you there.Despite your initial success in the Ardennes, the Allies denied our peace offering. With reinforcements arrived, they managed to drive us back to the limits of the Reich.Despite your initially slow advance, by an overwhelming array of men and material we eventually drove the French forces over the Somme river. Yet we cannot tolerate suboptimal performance like this any longer. Your deeds need to improve. Needlessly to say that our chance of invading England this year has been lost.DessauDestroyerDeurneDevegcerDevinDieppeDigneDinontDintherDivnoeDjelfaDjidjelliDmitriyev-LgovskiyDmitrovsk-OrlovskiyDneprDnepropetrovskDnieper RiverDniepr RiverDolDombasDomfrontDonDonetsDortmundDoverDraguiganDresdenDreuxDrielDrin RiverDrome RiverDubrovnikDue to your exceptional leadership skills, you are offered command over Army Group Center in Russia.##Herr General, do you want to defend the Reich against Soviet forces in Byelorussia, or fight against the upcoming invasion of France?DuisburgDunafoldvarDunaujvarosDunkirkDurance RiverDusseldorfDvina RiverDyle RiverDzhanshleyEARLY MOSCOWEL ALAMEINEastern frontEastonEchlemachEdeEindhovenEl AgheilaEl AlameinElbassenElbe RiverElbeufElistaElsenbornElstElverumEngland has surrendered! It is to be attributed to your talent and to the high morale of your troops that you achieved an unprecedented victory over the British Empire. England, Scotland, Ireland, and the oversea dependencies are now governed by German administration. You are herewith awarded one of the highest order medals of the Reich, the Iron Cross with Oak Leaves, and Swords.EnnaErfuhrtErpErteux RiverEscarpmentEscoutEssenEsztergomEtretatEttelbruckEupenEuphrates RiverEventually, time has come for operation Barbarossa, the long-term planned invasion of Soviet Russia. You are in charge of Army Group Center, and you have to conduct the main thrust through Soviet defences and keep them running. In order to prevent the enemy from establishing a front line and mobilise reserves from the rear, you have to capture Smolensk and all other objectives before the 7th of September.EvreuxExcellent performance, Herr General! With the English expelled from Egypt, we could successfully prepare an invasion of England.Excellent! By taking Sevastopol and the Krim peninsula early, we could annihilate the Russian Black Sea fleet. There will be no more interference on our ongoing advance to the East.Excellent! Despite heavy resistence, the suppremacy over the Mediterranean Sea is ours. Nothing can stop our operations in Russia now.Excellent, Herr General! Your quick taking of Norway has enabled us to expel the English forces from Norway and station our fleet there. Our supply lines should be safe. You have been awarded command over troops at the Western border.ExeterFFR 105mm GunFFR 57mm ATGFFR 75mm GunFFR GM TruckFFR InfantryFFR M2 HftrkFFR M20 LACFFR M4A1FFR M5FFR M8 LACFFR Mtn InfFPO 25 PdrFPO 6 Inches GunFPO 6 Pdr ATGFPO Bren CaFPO InfantryFPO M5 StuartFPO M8 LACFPO ParaFPO ShermanFPO TruckFR 105mm GunFR 155mm GunFR 25mm ATGFR 40mm ADFR 47mm ATGFR 75mm ATGFR 75mm GunFR AMC 35FR Amiot 143FR Bloch 174FR CHk 75A-1FR CL AMX R40FR Ch B1-bisFR Ch D1 IGFR Ch Lr H35FR Ch S35FR D520SFR HFIIFR InfantryFR MS 406FR Potez 63FR TruckFRANCEFW190aFW190d9FW190fFW190gFair(Dry)Fair(Ice)Fair(Mud)FairfaxFalaiseFall Weiß, the conquest of Poland has commenced. Your order is to make an inroad breach through the main Polish defenses and take the towns of Kutno and Lodz by no later than the 10th of September. Failing to do so could cause England and France to declare war against Germany. An earlier completion may make available more resources to your for the assault of Warsaw.Falls ChurchFanatic resistence kept our troops from advancing fast enough before the Americans used their secret weapon, the Atomic Bomb. Thus, heavy losses forced us to retract our troops from the American continent. Your America adventure has been a disaster, but General Staff ows you acknowledgement for your earlier victories over Western and Eastern Europe.February 11, 1943: The Germans race to capture Kharkov and crush the Soviet winter offensive.FecampFieldsFighterFinnlandFlaKPz 38(t)FlersFlorinaFoggiaFontainebleauFonyodFor this year, we have gained another chance to advance towards Moscow, the logistical and industrial center of Russia. It is imperative that you take Moscow and all other objectives by no later than the 28th of December before winter weather will bring our advance to a halt. However, to garrison the city against russian counterattacks, you should finish your mission several weeks earlier. This is the ultimate chance to end the war in the East.ForestFormiaFortFortificationFougeresFranceFrance is weakened and open to attack. Since 1871, this is the first chance to battle down the mightiest army of Europe and face total victory on the Western continent. You are ordered to take Paris and various strategic coastal towns as well as towns of the hinterland.France is weakened and open to attack. Since 1871, this is the first chance to battle down the mightiest army of Europe and face total victory on the Western continent. You are ordered to take Paris and various strategic coastal towns as well as towns of the hinterland. Timing is important, as only an early completion of your mission enables us to finish preparations in time for the invasion of England.Frankfurt AOFrankfurt an MainFreiburgFrosinoneGB 17 Pdr ATGGB 2 Pdr ATGGB 20mm SPAAGB 25 Pdr GunGB 3 Inches ADGB 3 Tn LorryGB 40mm ADGB 40mm SPADGB 5.5 Inches GunGB 6 Inches GunGB 6 Pdr ATGGB 7.2 Inches GunGB AEC IGB AEC IIGB AEC IIIGB AchillesGB ArcherGB Blen MkIGB Blen MkIVGB Bren CaGB Bridge EngGB C-47GB Chal A30GB Church IIIGB Church IVGB Church VIGB Church VIIGB CometGB Crdr IGB Crdr IIGB Crdr IIIGB Crom IVGB Crom VIGB Crom VIIGB Daimler SCGB GrantGB HW Inf 39GB HW Inf 43GB Humber SCGB Hur IGB Hur IIDGB Hur IVGB Inf 39GB Inf 43GB LancasterGB M3 StuartGB M5 StuartGB M7 PriestGB Matilda IGB Matilda IIGB Meteor IIIGB Mk I A9GB Mk III A13GB Mosq VIGB Para 39GB Para 43GB Ram KgGB SextonGB Sh FireflyGB ShermanGB Spit IGB Spit IIGB Spit IXGB Spit VBGB Spit XIVGB Spit XVIIGB Stir MkIGB Typhoon IBGabesGaceGaetaGafsaGaithersburgGallipoliGapGard RiverGarigliano RiverGavrayGazalaGelaGembertGemblouxGeneral staff is pleased with your success, and offers you the opportunity to lead the pocket operations around Kiev.##Herr General, would you like to stay in the desert, or participate in the Eastern theater?GeorgetownGerman CampGermanyGhentGivetGleiwitzGlen BurnieGlomma RiverGolGomelGorlovkaGorodnyaGradizhiskGrand Rhone RiverGranvilleGraveGrazGreat BritainGreat VermouthGreeceGreek InfGrenobleGrodnoGroningenGroznyGurenGusnieGyorHE162HE177aHE219HUSKYHaifaHaldenHalftrackedHalleHamHamarHamburgHannoverHarborHardHarstadHarwichHastingsHe111 H2Heavy CruiserHelmondHerakleionHerr General, you fared excellent! Russia has signed a peace treaty, and we can fully throw our forces against the Allied.Herr General, your outstanding performance left a lasting impression to the Allied leader, enabling our Administration to sign a favourable peace treaty. Combined with your earlier victory over the Soviet Union, you have ended the war, and are herewith promoted to Generalfeldmarschall.Herr General, your outstanding performance left a lasting impression to the Allied leader, enabling our Administration to sign a favourable peace treaty. The war in the West is now over.HetzerHigh Command has got a special order for you. In order to secure supply lines of Swedish ore, we prepared operation Weserübung, the invasion of Norway before the English will do so. You have to take Oslo, Stavanger-airport, and a number of Northern towns before the 3rd of May.High Command has prepared an invasion of England this summer, and you are to lead the forces. This is the ultimate chance to knock England out of the war, and we have to succeed this time. As the English have established an alliance with the Americans, expect some US expeditionary forces aiding in the defense of England. You are ordered to take London and all other objectives by 13th of July at the latest, when strong American reinforcements are expected to arrive. In order to consolidate our defenses, you should finish your mission earlier.High Command is stunned about your audacious counter-attack in Italy. With scarce resources, you managed not only to drive back the Anzio-beachhead into the sea, you also retook Italian towns of the South.High Command was impressed to such an extent by your excellent skills that we decided to delegate the decision of a critical strategic question to you.##General staff is divided into two camps. The first is proposing the opportunity to pocket and destroy a large amount of Soviet forces near Kiev before we proceed on our march towards Moscow. The second is proposing to leave aside Kiev and directly head towards Moscow before Autumn weather will slow down our advance.##Herr General, which strategy shall we pursue?HirshonHitHolding Rome has kept the Allied from invading our heartlands from the South.Holding Warsaw temporarily relieved us from pressure on the Eastern front, and enabled us to prepare further operations.Holding Warsaw temporarily relieves us from pressure on the Eastern front, thus allowing High Command to transfer you to the Western Front.Holding the key towns of Tunesia slowed down the advance of the Americans. However, we could not sustain the pressure, and thus were forced to rectract the Africa Corps back to Europe.HonefossHonfleurHorshamHouffalizeHullHummelHungarian InfHungaryHunting CreekHuskyHussenHuyHyattsvilleIT 105mm GunIT 155mm GunIT 47mm ATGIT 75mm GunIT 75mm SPADIT 90mm BredaIT AB-40IT AB-41IT BA65IT Bersglri IT CA309IT CentauroIT Fiat TruckIT InfantryIT L6/40IT M13/40IT M14/41IT M15/42IT Ma C202/FIT Ma C205/OIT P108 BiIT Re2000/F1IT Re2005/SIT SM 82IT Sem L-47IT Sem M-40IT Sem M-41MIT Sem M-42IT Sem M-42MIchnayaIjssel RiverIlinkaIn Normandy, the expected landings of Allied forces have commenced. The is the biggest invasion even seen by man, and you must stop it. You have to hold all your objectives to inflict a defeat to the Allied operations.In this situation, High Command offers you to contribute your experience in another theater, Italy.##Herr General, do you want to continue fighting in Russia, or do you like to be transferred to Anzio?Indian CreekInfantryInkermanInnsbruckIsere RiverIserniaIsignyItalian CampItalyIvangradIzyumJU87BJU87DJU87RJagdPantherJagdTigerJagdpanzer 38Jagdpz IV/48Jagdpz IV/70Jan 22, 1944: German troops attack the Anzio Beachhead while attempting to maintain the Gustav Line.JerusalemJordan RiverJp ElefantJu188aJu52g5eJu88AJuly 10, 1943: The Allies invade the Soft Underbelly of Europe.July 25, 1944: The Allied breakout from Normandy.July 5, 1943: Operation Citadel launches a huge attack into well prepared Soviet defenses.June 1, 1945: Yesterday Europe. Today America?June 15, 1943: Germany attempts to finish off England.June 22, 1941: Germany launches a surprise attack on its ally, the Soviet Union.June 22, 1944: The Soviet thrust to destroy Army Group Center.June 25, 1942: Axis all out drive on the major industrial center of Stalingrad.June 30, 1942: Axis strikes into Russia's oil rich territory from a new southern front.June 5, 1940: With the French outflanked the Germans drive into France and attempt to capture Paris.June 6, 1944: Allies launch Operation Overlord... the Second Front.June 7, 1942: The final assault on the Black Sea port of Sevastopol.JutovoKHARKOVKIEVKURSKKachalinskKadykovkaKafKalamaiKalininKalinkovichKaliszKalugaKamyshlyKarachevKarakKarbalaKarlovacKarlovkaKarlsruheKasselKasserineKastelliKaterimKattowitzKatyusha BM13Katyusha BM31KevallaKharkovKhoroKielKielceKievKimovskKimryKing GeorgeKirovKirovi RiverKisberKislovolskKletskavkaKohlfurtKolomnaKomarnoKomaryKongsbergKonigsbergKonotopKonstantinovkaKonstantinovskKorochaKorostenKoslinKotelnikovoKragujevacKramatorskKrasnoarmeyskoyeKrasnodarKrasnogradKrasnopavlovkaKrefeldKremenchKristiansandKromyKropotkinKubanKukesKulaKupyanskKurskKutinaKutnoL'AquilaLC CR42LC F-DXX1LC InfantryLC PZLP24LOW COUNTRIESLa Ferte-MaceLa LeuviereLagen RiverLakeLancianoLand TransportLandsbergLangley ParkLanhamLarissaLarocheLatinaLaurelLavalLe HavreLe MansLegLeieLeipzigLeshLeshelmLessayLet us battle the Soviet forces around Kiev.LeuveinLevadniaLevel BomberLexington ParkLgovLibramitLidaLiegeLight CruiserLilleLillehammerLinee RiverLinzLiri RiverLisichanskLisieuxLivarotLiverpoolLodzLoireLoire RiverLokhvitsaLondonLosing on the Polish front was an utter disaster. Your scandalous leadership has enabled the English and French to build up an formidable army which has begun invading Germany.Losing two battles in a row cannot be accepted.LouviersLozovayaLubeckLubnyrLuxembourgLuxemburgLynxLyubimukaLyubotinMARKET-GARDENME163B/KometME210cME262A1ME323dME410aMIDDLE EASTMOSCOW (41)MOSCOW (42)MOSCOW (43)MablethorpeMagdeburgMaikopMain RiverMainzMakarskaMakhach KalaMaking Germany face another disaster like in the World War has forced the Reich to surrender and sign an overly unfavourable peace treaty.MalemeMalinMalmedyMaloarkhangelskManchesterManhayMannheimMantesMarch 31, 1941: Axis attempts to seize Egypt and the Suez. Can the Desert Fox be stopped?March 6, 1945: Germany's last offensive.Marche-en-FamenneMarder IIMarder IIIHMarder IIIMMarjupolMarsa MatruhMarsalaMarseillesMartelangeMastrichtMateraMattawoman CreekMaubegeMaubeugeMay 10, 1940: Flanking the heavy fortifications of the Maginot Line, the Germans invade France through Belgium, Luxembourg, and the Netherlands.May 20, 1941: Germany attempts to capture the strategic island of Crete.May 26, 1942: Axis attempts to crush the Allied forces in North Africa.MayenneMeanwhile, the Africa Corps is facing another threat from the West. This is the initial landing of US expeditionary forces in Tunesia after their declaration of war against Germany. Though unexperienced, they outnumber our troops by far, and must not be underestimated. Your order is to force the American troops from the continent, taking all objectives. As a last resort, you have to hold at least Tunis and two other objectives to make the outcome favourable to us.MechiliMedjerda RiverMekenzieryMekenziyaMelambesMelunMenai StraitMenfiMerefaMerla RiverMersa BregaMersa MatruhMerseyMerthyrMesolongionMessinaMetzMeuseMeuse RiverMezol RiverMezoszilasMichael Speck, Leo SavernikMikhailiMillerovoMinskMirgorodMiskolcMo-i-ranaModlinMogilevMoiresMoldeMonacoMondragoneMonemvasiaMonosteraceMonsMonschauMontargisMontelimarMorMorlava RiverMortainMoscowMoscow has fallen, and the Soviet Union surrendered to the Reich! You have achieved what Napoleon only dreamed of. All of Russia has been put under German administration, and we have already begun exploiting its vast resources. For your leadership skills, you get awarded one of the highest order medals of the Reich, the Iron Cross with Oak Leaves and Swords.Moscow has fallen, and the Soviet Union surrendered to the Reich! You have achieved what Napoleon only dreamed of. All of Russia has been put under German administration, and we have already begun exploiting its vast resources. For your leadership skills, you get awarded the highest order medal of the Reich, the Knight's Cross with Oak Leaves and Swords.Moscow has fallen, and the Soviet Union surrendered to the Reich! You have achieved what Napoleon only dreamed of. All of Russia has been put under German administration, and we have already begun exploiting its vast resources. Your decision to take the early route towards Moscow was right, and therefore you get awarded one of the highest order medals of the Reich, the Iron Cross with Oak Leaves and Swords.Moscow has fallen, and the Soviet Union surrendered to the Reich! You have achieved what Napoleon only dreamed of. All of Russia has been put under German administration, and we have already begun exploiting its vast resources. Your decision to take the early route towards Moscow was right, and therefore you get awarded the highest order medal of the Reich, the Knight's Cross with Oak Leaves and Swords.Moscow, capital and industrial, and logistical center of Russia, is the ultimate objective you have to strive for on the Eastern front. You have to capture Moscow and all other objectives by the 16th of November at the latest. Yet to prevent autumn weather to halt our advance, you should finish your mission several weeks earlier.Moscow, capital and industrial, and logistical center of Russia, is the ultimate objective you have to strive for on the Eastern front. You have to capture Moscow and all other objectives by the 4th of December at the latest. Yet to prevent autumn weather to slow down our advance, you should finish your mission several weeks earlier.Moselle RiverMosjoenMostarMountainMozdokMozhayskMozyrMt. PleasantMtsenskMunichMunsterNOR 75mm GunNOR F-DXXIIINOR InfantryNORTH AFRICANORWAYNamsosNamurNancyNantesNaplesNarew RiverNarvikNashornNavalNazi Germany starts World War II, attempting to seize the world.NeapolisNebelwerferNegotiations with Yugoslavia have failed which in order made them turn against us. Italian forces are fighting a stiff battle at the Metaxas line in Greece and have not been able to gain substancial advantages for over a year, and they may not sustain any longer. For our upcoming invasion of Russia we cannot tolerate an undefeated enemy in our back. Thus it is your mission to capture key Yugoslav towns to make them surrender, and additionally aid Italian troops in their hapless fight against Greek and English adversaries.NehzinNelidovaNera RiverNetherlandsNeubrandenburgNeufchateauNeufchatelNevelNeversNewburyNewhavenNiceNieman RiverNijmegenNikoaevkaNileNimesNivellesNorth AfricaNorth ArlingtonNorwayNorwichNot capturing Moscow in time gave the Russian adversaries plenty of opportunity to mobilise troops from Siberia and perform a counterattack. While we managed to establish a stable front line again, our hopes to capture Moscow are now gone for good.Not capturing Moscow in time gave the Russian adversaries plenty of opportunity to mobilise troops from Siberia and perform a counterattack. While we managed to establish a stable front line again, we could not attempt another advance in 1941.Not capturing Moscow in time gave the Russian adversaries plenty of opportunity to mobilise troops from Siberia and perform a counterattack. While we managed to establish a stable front line again, we could not attempt another advance in 1942.Not only halting the enemy onslaught at two front, but drive them back to the pre-war borders of the Reich is impressive. Therefore, we could achieve to sign a peace treaty that restored the status-quo from the 1st September 1939.NottinghamNov 8, 1942: Americans face the veterans of the Afrika Korps.NovigradNovocherkasskNovomoskovskNovorossikNovosilNovozybkovNovyi ShuliNow it is the time to make the French and English forces pay for their declarations of war. In an audacious two-pronged attack, your Northern forces will break through Liege, Brussels, Maubeuge, while your Southern forces will force their way through the rough Ardennes forests and take by surprise the northernmost outpost of the Maginot-line, Sedan. Both forces are bound to pass the battlefields of the World War and capture all objectives by the 8th of June. If you capture your objectives much earlier, this could give us a chance to prepare an invasion of England this year.Now there are two front lines to take care of. Herr General, which theater do you want to participate in?Now there are two opportunities to prove your skills against mighty odds. In the east, the Russians prepare their first summer offensive against Army Group Center, while in the west, the Allied prepare their invasion of france.##Which theater do you want to take leadership of?NoyonNurembergNyonsObninskOceanOcooquen CreekOctober 1, 1942: Axis offensive to capture Moscow and end the war in the east.October 2, 1941: Can the heroes of the Motherland hold the Panzers until the winter comes?October 9, 1943: Germany's final chance to end the war in the east.OdentonOder RiverOkaOka RiverOkehamptonOlmutzOmegaOosterbeekOpel 6700OpheustenOppelnOrangeOrbecOrelOrel RiverOrleansOrne RiverOrvietoOskal RiverOsloOsnabruckOssOstendOstwind IOtradnyOtrantoOur RiverOurthe RiverOvercast(Dry)Overcast(Ice)Overcast(Mud)OwingsOxfordOzorkowPO 7TPPO CavalryPO InfantryPO PZL P11cPO PZL P23bPO PZL P24gPO PZL P37bPO TK3POLANDPSW 222/4rPSW 231/6rPSW 232/8rPSW 233/8rPSW 234/1-8rPSW 234/2-8rPachwoPalaiokhoraPalermoPanther APanther DPanther GPapaPargaParisPassauPatraiPatuxent RiverPavlogradPehcevoPereshchepinoPeriersPescaraPescara RiverPeterboroughPetit Rhone RiverPetraliaPetrikovPetropavlovkaPhillipevillePhillippevillePilica RiverPilsenPinios RiverPinskPioniere InfPiscataway CreekPizzoPlymouthPo RiverPodolskPolandPolgardiPontoisePontorsonPortPort FacilityPort TobaccoPortsmouthPortugalPosenPostavyPotiPotomac HeightsPotomac RiverPraguePrilukiPrince FrederickPripetPripyat RiverPrizziProkhorovkaProletarskProletarskiyPrumPselPulaPushing back the Allied onslaught to the pre-war borders of the Reich gave us, combined with your earlier victory over Russia, a strong position to negotiate a favourable peace treaty.Pushing back the Russian onslaught to the pre-war borders of the Reich gave us, combined with your earlier victory over England, a strong position to negotiate a favourable peace treaty.PusztaszabolcsPutting you in charge of the Africa Corps was an utter failure.PuttuskPz 35(t)Pz38(t)APz38(t)FPz38(t)GPzIAPzIBPzIIAPzIIDPzIIFPzIIIEPzIIIGPzIIIHPzIIIJPzIIINPzIVDPzIVF2PzIVGPzIVHPzIVJPzJager IBQuanticoQueenstownRackeveRadomRadomyshiRaining(Dry)Raining(Ice)Raining(Mud)Rapido RiverRappahannock RiverRechitsaReconRegensburgReggioReichenbachReimsRenkumRennesResistence was much heavier than anticipated from reconnaissance flights. Thus our troops faced heavy losses, and we had to retreat to the continent. Crete will pose a latent danger for the ongoing operations on the Eastern front.RetimoRhine RiverRhone RiverRiberaRietiRijekaRiva-BellaRiverRiverdaleRoadRochefortRockvilleRodomskoRoerRomeRoslavlRossoshRostockRostovRouenRoughRough DesertRubezhnoyeRumaniaRumanian InfRumnyrRussian reserves eventually stopped our slow advance and built up momentum to drive our troops back into the Reich.RyazanRylskRzhevS-BoatSEALION (40)SEALION (43)SEALION PLUSSEVASTOPOLSPW 250/1SPW 251/1ST 12.2cm GunST 15.2cm GunST 45mm ATGST 57mm ATGST 7.6cm ADST 76mm ATGST BA-10ST BA-64ST BT-5ST BT-7ST Bridge EngST CavalryST I-16ST IS-2ST ISU-122ST ISU-152 ST ISU-152 ATST Il-10ST Il-2ST Il-2M3ST Il-4ST InfantryST KV-1/39ST KV-1/41ST KV-1/42ST KV-2ST KV-85ST La-3ST La-5ST La-7ST MiG-3ST PE-2ST PE-8ST ParaST SMG InfST SU-100ST SU-122ST SU-152ST SU-152 ATST SU-85ST T-28M1ST T-34/40ST T-34/41ST T-34/43ST T-34/85ST T-40ST T-60ST T-70ST TruckST YaK-1ST YaK-1MST YaK-7BST YaK-9ST YaK-9MST Z25mm SPAASTALINGRADSaar RiverSaarbruckenSaarburgSacco RiverSafonovoSaint LoSakakahSalernoSalskSaluzzoSalzburgSamara RiverSamarraSambreSambre RiverSan StefanoSangro RiverSaprySarajevoSarandeSaratovSaumurSavna RiverSchaarbergenSchneidemuhlSchwerinSciaccaSdKfz 10/4SdKfz 6/2SdKfz 7/1Sea TransportSealion43SedanSee RiverSeesSeineSeine RiverSelune RiverSemenovkaSeptember 1, 1939: The German army crosses the Polish border with their famous blitzkrieg. In 10 days they must capture Lodz and Kutno... the gates to Warsaw.September 1, 1940: Germany now sets its sights on EnglandSeptember 1, 1940: With Gibraltar taken the Italian Fleet aids the invasion of England.September 10, 1939: The Germans must capture Warsaw and end Polish resistance before the Allies react. September 17, 1944: Daring airborne assault to capture a Rhine River crossing. A bridge too far?September 8, 1941: Panzergruppe Guderian ignores Kiev and drives on Moscow.Septempter 1, 1941: Axis attempts to seize the oil fields of Persia.SerpukhovSerraiSevastopolSevern RiverSeymSezzeSfakiaSfaxShchekinoSheffieldShkoderShrewburySidi BarraniSiediceSienner RiverSilver SpringSimontornyaSince the front lines have stabilised, there is a pocket of Russian defenders around Kursk. Our strategy is to break through Soviet defenses from the North and South, and cut off and terminate all adversaries. Be aware that the Soviets have no doubt about our intentions, and have prepared their defenses well. You must take Kursk at any rate. Taking all other objectives by no later than the 24th of July will enable High Command to prepare for another assault on Moscow in 1943.SisakSisteronSitiaSkopjeSlavyanskSlofokSmelaSmolenskSnowing(Dry)Snowing(Ice)Snowing(Mud)SofiaSoftSollumSoltSommeSoraSosykaSousseSouth ArlingtonSoviet Russia has eventually launched its long expected summer offensive of 1944, ironically on the self same day we initiated operation Barbarossa three years ago. You are in charge of Army Group Center, and you must stop the Russian attack at any rate, and retake all objectives to turn the tides. If the odds are too strong, hold at least Warsaw until the 27th of August.SovjetunionSpaSpainSpoletoSt. AnthonisSt. HilaireSt. HubertSt. MaloSt. Mere EgliseSt. OedenrodeSt. PierreSt. QuentinSt. Sauveur-le-V.St. TrondSt. Vaast-la-HaugueSt. ValerySt. VallierSt. VithStakhanovStalin's town lies down in ruins, and German troops control the traffic on the Volga river, preventing the Russians to build up a force for a counter-attack. Thus, you can lead the advance towards Moscow without interference from the rear.StalingradStalinoStargarStarobelskStarodubStary OskolStavangerStaying in ItalyStaying in the desertSteinkjerStettinStokeStourStralsundStrasburgStrategic Simulation Inc.StrongpointStuG IVStuGIIIFStuGIIIF/8StuGIIIGStuGIIIbStuH42StuttgartSubmarineSudaSudzhaSukhumSulmonaSumySupply shortage and the ever increasing resistence of English troops enabled the English to take the initiative, and expel the Africa Corps from Egypt and Libya.SuwalkiSvatovoSwampSwedenSwitzerlandSyracuseSzczytnoSzekesfehervarSzentendreT-DestroyerTORCHTabTacoma ParkTactical BomberTaking all objectives has enabled us to expel the English forces from Norway and station our fleet there. Our supply lines should be safe. You have been awarded command over troops at the Western border.TalnoyeTamarTankTapolcaTarantoTatabanyaTauntonTebessaTemyrykTeramoTerekTerminiTerniTerracinaTeschenTetTeykovoThamesThanks to your great achievements, the Soviet summer offensive has been halted, and enabled us to prepare further operations.Thanks to your great achievements, the Soviet summer offensive has been halted. Unfortunately, much pressure has accumulated on the Western front, so High Command decided to transfer you there to relieve the situation.The Allied army easily drove our troops back to the Netherlands.The Allied landings have been outright successful, and France is now definitely lost.The Allies extended their beachheads in Normandy and have built up considerable strength. With our troops scattered and exhausted, you face a hopeless battle against overwhelming forces. Your order is to hold all objectives as well as to retake Cherbourg, Carentan, and Caen. If not feasible, hold at least three objectives until the 18th of August.The Allies have fought up all their way from Sicily to the center of Italy. While we halted their advance at the Gustav line, the Allies performed a massive landing operation at the beachhead of Anzio-Nettuno. To prevent detriment to the Reich, it is imperative that you fend off this massive onslaught at all costs. You have to hold at least Rome and two other objectives to turn the battle into a more favourable direction.The Allies have launched a surprise airborne attack at Arnhem to capture a bridge across the Rhine. Yet, their slow outbreak from Normandy gave us plenty of time to establish potent defenses. Your order is to capture and hold the city of Arnhem until the 25th of September, and clean the area from paratroop landings before Allied reinforcements arrive.The American army made piecemeal out of the Africa Corps.The British and American forces have begun invading Sicily, our ill-defended entrance gate to Southern Europe. Your orders are to hold all objectives. If this is not feasible, hold at least two objectives to slow down the Allied advance.The former mighty Reich is reduced to rubbles. No authority is left to even sign a peace treaty. Germany has ceased to exist.The german Reich has no need for incompetent untermenschen, Commander! Dismissed.The mission was a disaster. Not sustaining allowed the Allies to invade Germany from the South, forces upon us an unfavourable peace treaty like the one in 1918.The mission was a disaster. Not sustaining allowed the Allies to invade Germany from the South. Thanks to your earlier victory over Russia, quickly established war industries allowed us to fend off the capturing of Germany, allowing us to negotiate a peace treaty at minor disadvantages.The quick and decisive blow you delivered to both Yugoslavia and Greece enabled High Command to prepare an airborne invasion of Crete. You have served the country well, and are awarded command over the operation.The russian offensive was too strong to overcome which forced us to retreat to the limits of the Reich.The total defeat on the Southern front made Italy surrender to the Allies.There has risen an opportunity to terminally cripple Russian forces. Around Kiev we have encountered a large amount of Russian troops. Using blitzkrieg tactics to their fullest extent, you are ordered to pocket and annihilate Soviet resistence in Kiev and surrounding towns. In order to continue our advance towards moscow, it is imperative that you capture all of your objective by no later than the 20th of September.ThessalonikiThibervilleThierryThis is impressing! While General Staff internally knew that the order was infeasible given the scarce resources available, you managed to achieve the impossible and drove the Allied army back into the sea. As a reaction, the Allied increased the bombing raids against vital German war industries and our supply lines in France, putting your victory at stake. Exploiting the resource shortage, the Allies performed another landing, and drove our forces back to the Rhine.This is the last stand. You have to fight against tremendous odds at either side of the front. Hold Berlin at any rate. Losing is not an option.ThorinThury HarcourtTiber RiverTiblisiTiger ITiger IITigris RiverTikhoretskTimoshevskayaTiranaTirlemontTivoliTo prove your skills in another theater, High Command offers to you leadership over the Africa Corps fighting at El Alamein.##Herr General, do you wish to be transferred to Africa, or do you want to stay on the Eastern front?TobrukTomaszowTongresTotenzaToulonTouques RiverToursTowedTownTrackedTransportTrapaniTrierTrigno RiverTrikkalaTrinidadTroarnTrois-PontsTrondheimTrostyanetsTrouvilleTroyesTrunTsymiankTulaTunbridge WellsTunisTurano RiverTurdino RiverTurinTurkeyTurnu SeverinU-BoatUS 105mm GunUS 155mm GunUS 3 Inches ADUS 3 Inches ATGUS 37mm ATGUS 40mm ADUS 57mm ATGUS 75mm GunUS 8 Inches GunUS 90mm ADUS A26 InvUS B17F FFUS B17G FFUS B24D LibUS B25B MitchUS B25H MitchUS B26C MardrUS B29 SFUS B32 DomUS Bridge EngUS C47US Eng 41US Eng 43US GM TruckUS Inf 41US Inf 43US Inf HW 41US Inf HW 43US M10 US M12 GMCUS M15A1 MGMCUS M16 MGMCUS M18 US M2 HalftrkUS M20 LACUS M24US M26 US M2A4US M3 US M3 GMCUS M36US M4US M4A1US M4A1(76)WUS M4A3US M4A3 (105)US M4A3(76)WUS M4A3E2US M4A3E2(76)US M5US M7US M8 Ghd LACUS M8 HMCUS P38 LtngUS P40 WhwkUS P47B TboltUS P47D TboltUS P47N TboltUS P51B MustgUS P51D MustgUS P51H MustgUS Para 41US Para 43US Rangers 43USAUdenUlmUmanUniversityUpper MarlboroUralUtrechtValValenceValjevoValognesValuikiValuykiVar RiverVasilovkaVastoVeghelVellitriVerkhne ChoganVernonVerviersVeszpremViandenVichyVielsalmViennaVienneVilledieu-LPVillers-BocageVilnaVimoutiersVireVire RiverVistula RiverVitebskViterboVitreVladimirovkaVolchanskVolgaVolga RiverVolkelVolkovyskVolturno RiverVoronezhVoroshilovgradVorskla RiverVratsaVyazmaWARSAWWASHINGTONWaal RiverWaavreWacht am Rhein was an utter failure. Massive Allied reinforcements drove our troops back to the limits of the Reich.WaldenburgWarsawWarta RiverWe are now facing a massive force in the East invading German soil. Your order is to hold Berlin and at least five other objectives to prevent further detriment to the Reich.We are now facing a massive force in the West invading German soil. Your order is to hold Berlin and at least five other objectives to prevent further detriment to the Reich.We have entrenched ourselves at the Siegfried line and have observed Allied spearheads to slow down considerably. Thus, we prepared a strike force for a counter-attack, called operation Wacht am Rhein, in an attempt to precipitate a decision in the West. If you capture all objectives until the 31st of December, we are in a strong position to negotiate a peace treaty.We have gathered all strike forces for the ultimate offensive on the Eastern front. You have to take Budapest and all other objectives by no later than the 25th of March. To ensure that the Russians will not recover from the offensive, and sign a favourable peace treaty, you should capture all objectives several days earlier.We have now another chance to advance towards Moscow and end the war in the East. However, the Soviet defenders are much better prepared this time. Therefore, it is imperative that you capture Moscow and a multitude of other objectives by the 28th of December at the latest. However, to make the Russians actually surrender, it is necessary to finish your mission several weeks earlier.We have only achieved a draw with the Allies.We now set our sights on Army Group South which has besieged the Black Sea port of Sevastopol for nearly one year. The time is ripe for an eventual assault on Sevastopol, and you are ordered to conduct it. You have to force your way through the town of Sevastopol and capture all objectives by no later than the 23rd of June. After the Moscow desaster last year, we cannot allow for another defeat.We take the early route towards Moscow.We were eventually able to halt the English counter offensive, and are now ready to perform another attack. While we do not have to gain as much ground as last year, English restistence is expected to be much stronger. While the chance for invading the Middle East has been lost, we may be able to prepare another invasion of England if the North African chapter is closed in time. You have to take all objectives by no later than the 28th of September. Yet, in order to finish preparations for an invasion of England this year, you have to finish you mission several weeks earlier.WeilandWerbomontWeser RiverWespeWest RiverWheatonWheeledWhile fighting bravely against tremendous odds, the Allies could establish a beachhead on the Norman coast.While you managed to capture all objectives, the Russian offensive gained momentum too fast and drove us back to the Eastern limits of the Reich.While you were running against stiff resistence, the Soviets launched a counter-attack against the Germain pocket around Orel. Therefore, we had to retreat and divert divisions to aid against this massive attack. We have lost the initiative on the Eastern front and cannot allow for another attack in this year.White HouseWiesbadenWilhelmshavenWiltzWinchesterWirbelwindWith African and Russian resources, we heavily increased the output of our war industries, consequentially enabling us to gain hold onto American soil. Our troops have advanced to the gates of Washington, and your order is to capture it. Take Washington and all other objectives by the 3rd of August at the latest. Intelligence reports that the Americans are testing a secret weapon, which will be ready for mid-July. Hence, to reduce German casualties and to emphasise our strong position, you should finish your mission by then.With Kharkov retaken, and the Soviet strike force terminally beaten, we were able to thrust into the steppe directly towards Moscow.With Yugoslavia and Greece having surrendered, nothing can stop our upcoming invasion of Russia.With Yugoslavia and Greece partially undefeated, we had to spare additional troops for the defence lines that will be missing on the Russian front.With all objectives taken, and the Americans expelled from Africa, you have proven your excellent leadership skills.WittenbergWolfhezeWorcesterWorld War IIWuppertalWurzburgWylerYeiskYou are now in charge of the Africa Corps to aid Italian troops in their battle against English mediterranean dependencies in North Africa. Strategically, High Commands attempts to take Egypt, and then to proceed towards Persia to open up a new Southern front into Russia. You have to take all objectives until the 27th of June at the latest, but to allow us to garrison sufficiently against counter-attacks, you should finish the mission earlier.You bravely fended off the Allied onslaught from the Reich's limits. Combined with your earlier victory over Russia allowed us to return to the pre-war status-quo in the West.You bravely fended off the Russian onslaught from the Reich's limits. Combined with your earlier victory over England allowed us to return to the pre-war status-quo in the East.You bravely haltet the Russian winter offensive and managed to establish a stable front line.You fighted bravely against odds, but in vain. The Allied army drove our troops back to the Netherlands.You have achieved a major victory for the german Reich, Commander! Excellent!You have achieved a minor victory for the german Reich, Commander! Well done.You have done well. Despite heavy resistence, the suppremacy over the Mediterranean Sea is ours. Nothing can stop our operations in Russia now.You have failed us, Commander! The german reich suffered a minor defeat!You have proven to be a worthy Panzer General and secured the lowlands separating Germany from the heart of France. Now, the final assault on France is ready to commence. Unfortunately, time did not permit preparations of an invasion of England.You have totally failed us, Commander! The german reich suffered a major defeat!You held Berlin, but that has put us into an uncomfortable situation. We had to accept a peace treaty that was even harsher than the hated one of 1918.You managed to break resistence in time before the Allies could react. The gates to Warsaw are now wide open.You managed to score a victory. Yet, our former Ally, the Italians have surrendered, thus making your efforts crumble in vain.You managed to take and hold Arnhem. Yet, bombing raids against our supply lines, and Allied reinforcements forced us to eventually abandon the Arnhem area, and to pull back behind the Rhine.You passed with ease the battlefields our troops bravely but fruitlessly attacked in the World War. We reassembled the troops for the final assault on France, and we utilised the additional time to start preparations for the invasion of England.You sustained long enough to allow High Command to build up defenses in the rear.You were able to take Kursk, but the Soviets launched a counter-attack against the Germain pocket around Orel. Therefore, we had to retreat and divert divisions to aid against this massive attack. We have lost the initiative on the Eastern front and cannot allow for another attack in this year.Your brave efforts lead to the capturing of all Southern England. Unfortunately, bad weather and interference by the strong British fleet from the unattacked North have wreaked havoc on our supply lines. Thus, we were forced to retract all troops back to the continent.Your brave efforts lead to the capturing of all Southern England. Unfortunately, the landing of American reinforcements and their counter-attack forced High Command to retract all troops back to the continent.Your brave efforts lead to the capturing of all Southern England. Unfortunately, the landing of American reinforcements and their counter-attack forced High Command to retract all troops back to the continent. You have been called to the Eastern front to prove that you are a worthy Panzer General nonetheless.Your decisive and early success in France gave us plenty of time to prepare operation Sealion, the invasion of England. You have to capture London and various key towns in the vicinity before Autumn weather sets in, causing rough sea and putting our supply lines at stake. This is a unique chance to force England to surrender and end the war.Your decisive victory in Mesopotamia has terminally weakened the English forces. Thus, there is a big opportunity to prepare an invasion of England, and end the war in the West. On the other hand, you may choose to continue advancing towards the Caucasus.##Herr General, which operation do you want to take command of?Your decisive victory in the battle of Budapest has made the Russians sign a favourable peace treaty. Combined with your earlier victory over England, we have won the war on both fronts. You are herewith promoted to Generalfeldmarschall as an acknowledgement of your brave achievements for the Reich during the war.Your early capturing of Southern England enabled us to prepare defenses against the landing of the American reinforcements, and to decisively beat them. Consequentially, England has surrendered! It is to be attributed to your talent and to the high morale of your troops that you achieved an unprecedented victory over the British Empire. England, Scotland, Ireland, and the oversea dependencies are now governed by German administration. You are herewith awarded one of the highest order medals of the Reich, the Iron Cross with Oak Leaves, and Swords.Your early capturing of Southern England enabled us to prepare defenses against the landing of the American reinforcements, and to decisively beat them. Consequentially, England has surrendered! It is to be attributed to your talent and to the high morale of your troops that you achieved an unprecedented victory over the British Empire. England, Scotland, Ireland, and the oversea dependencies are now governed by German administration. You are herewith awarded the highest order medal of the Reich, the Knight's Cross with Oak Leaves, and Swords.Your exemplary victory in Sicily has considerably impressed General staff. Therefore, you are offered command over the strike force against Moscow.##Herr General, do you want to stay in Italy, or do you want to be transferred to the Eastern front?Your failure at this mission forced the Reich to take back the front lines to compensate for German casualties faced in the battle.Your failure to conquer England had given the enemy a chance to build up resistence and assemble a naval fleet of formidable strength crippling our supply lines. Thus, our expeditionary forces were severely decimated, forcing us to sign an unfavorable peace treaty.Your failure to conquer England in time before American reinforcements arrived has given the enemy the strength to strike back, and force our troops back to the continent.Your failure to decimate Russian troops in time enabled them to assemble and perform a counter-strike against our lines. Thus for 1941, all of our operations on the Eastern front had to cease.Your failure to make an inroad success has lead to the Allies making an attack on Germany.Your glorious advance along the North African coast has expelled the English forces out of Egypt, and allowed our troops to cross the Suez canal.Your inability to reach Stalingrad as well as shortages in supplies allowed the Russians to break through the thin defense lines of our exhausted troops, and to cut off large parts of the 6th Army in Stalingrad and annihilate them, and drive back the Eastern front.Your inability to sustain against paratroopers allowed the Allied to exploit the Rhine crossing, and to thrust against the German heartlands without delay.Your initial capture of Moscow let arise hope that Russia would surrender. Unfortunately, fresh Siberian reserves started a counter-attack and expelled our exhausted and worn down spearheads out of the capital. While we managed to establish a stable front line again, we could not attempt another advance in 1941.Your initial capture of Moscow let arise hope that Russia would surrender. Unfortunately, fresh Siberian reserves started a counter-attack and expelled our exhausted and worn down spearheads out of the capital. While we managed to establish a stable front line again, we could not attempt another advance in 1942.Your initial capture of Moscow let arise hope that Russia would surrender. Unfortunately, the combination of bad weather and Russian reserves did not enable our exhausted troops to sustain any longer. While we managed to establish a stable front line again, the possibility for another advance towards Moscow has gone for good.Your leadership skills are currently asked for at two places. You may choose to lead the upcoming Summer offensive in Russia against the pocket of Kursk, or to defend Italy against the expected invasion of allied troops.##Which battle do you want to participate in?Your next order is to lead the advance towards the industrial center of Stalingrad. Taking Stalingrad will cripple Russia's war industry, and cut supply lines over the Volga river. Thus, you must capture Stalingrad and all other objectives by the 22nd of November at the latest. Keep in mind that if we want to get another chance to advance towards Moscow this year, you have to finish your mission before October. Do not underestimate the vast distances of the steppe, and the supply shortage resulting thereof.Your next order is to secure the Middle East and Mesopotamia in order to allow for a new Southern front into the Caucasus. Take all objectives by the 15th of November at the latest before autumn rainfalls will stop our advance in the mud.Your performance in Poland has been outstanding, Herr General! You besieged and captured all objectives before the Soviet Union was able to catch up. Your forces have been diverted to the Western border to guard against French and English aggressions.Your performance was outstanding and has brought an overwhelming victory to the Reich. My humiliation of 1918 is revenged. France has surrendered, and its dependencies will be put under German protectorate.Your performance was outstanding! Despite heavy resistence, you were able to crush the enemy and successfully secure the pocket of Kursk. Thanks to this masterpiece, we can attempt another assault on Moscow.Your quick breakthrough in Poland enabled High Command to make additional resources available to you.Your taking of Washington was a masterpiece. However, the Americans revealed their secret weapon, called the Atomic Bomb, and inflicted heavy losses on our expeditionary forces. In order to reduce further casualties, we retreated from America, and signed a piece treaty. Though the America adventure did not work out, Germany rules all of Europe, Africa, and most parts of Asia. This overwhelming economical weight will enable us to carry on the war against America on another level. Now, the war is over, and for your heroic encouragement you are promoted to Generalfeldmarschall.Your troops were outnumbered on any scale, enabling the Allies to establish and extend their beachheads in Normandy.YpresYugoslav InfYugoslaviaYukharinaYvetotZ-DestroyerZagorskZakepaeZekiah Swamp RunZhitomirZircZurichZvornikZwickausIG 38(t)MsIG IBsIG IIProject-Id-Version: de POT-Creation-Date: 2005-12-28 20:37+0000 PO-Revision-Date: 2005-12-29 12:45+0000 Last-Translator: Leo Savernik Language-Team: Deutsch Language: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.3.1 10,5 leFH 1810. Juli 194310. Mai 194010. September 193911. Februar 194315 sFH 1815. Juni 194316. Dezember 194417 K1817. September 19441. April 19451. Juni 19451. Oktober 19421. September 19391. September 19401. September 19412 FlaK38 (4)20. Mai 194122. Januar 194422. Juni 194122. Juni 194423. August 194125. Juli 194425. Juni 194226. Mai 19422. Oktober 19413,7 FlaK363,7 Pak35/3630. Juni 194231. März 194137 FlaKPz IV39 Wehr Inf40 LuftW FJ40 Wehr Gren43 LuftW FJ43 Wehr Gren43 Wehr Inf5 PaK385. Juli 19435. Juni 19406. April 19416. August 19446. Juni 19446. März 19457,5 PaK407,5 leFk 16nA7. Juni 19428,8 FK18 ATG8,8 FlaK 188,8 PaK43/418. November 19428. September 19419. April 19409. Oktober 1943AV Mk I FestgAV Mk I StlgAV Mk II FestgAS Mk II BFAS 37mm PaKAS 75mm GeschützAS SchlachtschiffAS SchlachtkreuzerAS TrägerAS ZerstörerAS SchwKreuzerAS LtKreuzerAS PartisanenAS U-BootAS T-BootAV TransportAS LastwagenAMBOSSANZIOARDENNENAachenÅlborgAarschotAbaAbadanAbbevilleAccotinkbachWidriges Wetter und Nachschubprobleme trieben unsere Truppen aus dem Zweistromland, während englische Gegenangriffe uns aus Ägypten vertrieben. Wir beginnen praktisch wieder am Anfang.AflouNach ihrem blutigen Rückschlag in der Normandie eröffnen die Alliierten mit einer neuen Invasion in Südfrankreich. Halten Sie alle Ziele bis zum 28. August, um auch diese Landung zur einer alliierten Katastrofe zu machen. Andernfalls, halten Sie zumindest zwei Ziele, um den alliierten Vormarsch zu bremsen.Nach ihrem großartigen Sieg über sowjetische Widerstände betrachten wir Russlands Reserven an Männern und Material als erschöpft.Nach ihrem Sieg über sowjetische Widerstände betrachten wir Russlands Reserven an Männern und Material als erschöpft.AgrigentoAgrinionAhvazLuftLufttransportLuftabwehrFlugzeugträgerAireFlugplatzAix-en-ProvenceAchtirikaAl HillahAl KazimayahAl KuwaitAl MafraqAlcamoAleksejewkaAleksinAlençonAlèsÅlesundAlexandriaAlgierGeländeAllensteinAlliierteAlmaObwohl Sie Stalingrad erobern und zerstören konnten, haben Versorgungsschwierigkeiten und Kälte unsere Truppen erschöpft. Das ermöglichte den Russen, große Teile der 6. Armee in Stalingrad abzuschneiden und zu vernichten, sowie die Ostfront zurückzudrängen.Amerika hat gegenüber der überwältigenden Macht von Wehrmacht, Luftwaffe und Marine kapituliert! Die Vereinigten Staaten mussten eine Friedensvertrag unterzeichnen, der die deutsche Besetzung der rohstoffreichsten und strategisch wertvollsten amerikanischen Gebiete gewährt. Sie werden als größter General auf Erden ausgerufen, ohne den ein solcher Erfolg niemals erreichbar gewesen wäre. Deshalb wird Ihnen der höchste Orden des Reichen, speziell für Sie gefertigt, das Ritterkreuz mit Eichenlaub, Schwertern und Brillianten verliehen, und Sie werden zum Generalfeldmarschall befördert. Der Krieg ist vorüber. Deutschland ist die Welt, und die Welt ist Deutschland.AmiensAmmanAmsterdamAn NabkAn NajafAnacostiaAnacostiaAnahÅndalsnesAndrejewkaAngersAngleseyAnnandaleAnnapolisFlugabwehrPanzerabwehrAnzioAnzio-Nettuno1. April 1945: Überlebenskampf gegen die Sojwetunion.1. April 1945: Das letzte Gefecht.1. April 1945: Die Westalliierten dringen in Deutschland ein.6. April 1941: Deutsche Truppen helfen den festgefahrenen Italienern in Jugoslawien und Griechenland.9. April 1940: Für norwegisches Eisen und nördliche Flugbasen, um den Briten den Zugang zum Baltischen Meer zu versperren, starten die Deutschen einen Überraschungsangriff auf Norwegen.ArcArdenneArendalArgensArgentanArgosArlesArlingtonArlonArmavirArnheimArrasArromanchesArtemowskArtillerieAuf Grund ihrer Winteroffensive sind die russischen Truppen dünn in der Gegend um Charkow verteilt. Dies ist ein exzellenter Moment für einen Gegenangriff zur Vernichtung der Sowjetischen Angriffskräfte und Rückeroberungs Charkows. Nehmen Sie Charkow und alle anderen Ziele bis spätestens zum 4. März ein, können wir unseren Vormarsch für 1943 fortsetzen. Wegen der notwendigen Vorbereitungen zum Angriff auf Moskau ist ein früherer Sieg unerlässlich.AspresAsseAstrachanAternoAthenAubenas6. Aug 1944: Die Alliierten versuchen die Wehrmacht in Südfrankreich abzuschneiden.Augsburg23. August 1941: Die Wehrmacht versucht die sowjetischen Verteidiger um Kiew zu umfassen und zu vernichten.ÖsterreichAvellinoAvezzanoAvignonAvonAvranchesAchseAchse NiederlageAchse entscheidender SiegAchse knapper SiegAyguesBALKANBARBAROSSABERLINBERLIN (OST)BERLIN (WEST)BF109eBF109fBF109gBF109kBF110cBF110dBF110eBF110gBUDAPESTWEISSRUSSLANDBabjakBagdadBakuBalaklawaBalkanBanja LukaBarBaranowitschiBarcellonetteBardiaBariBarnevilleBartenewkaBaselBaskunchakBasraBastogneSchlachtschiff BkSchlachtschiff DlBatumiBayeuxBeaumontBeauvaisBedfordBelaja TserkowBelbokBelgienBelgorodBelgradBeliceBenedictBeneventoBengasiBeratiBerdanskBerditschewBereznaBergenBerlinBernBertaBestBethesdaBeuthenBialystokBicskeBielefeldBeirutBifernoBihalBir HacheimBirminghamBiskraBitburgBittemBisertaBjerkvikBlackwaterflussBladensburgBlagdernoeBlankenheimBobowBocageBodoBogutscharBoguslawBolbecBolchowBoneBorisoglebskBorisowBosanki PetrovacBosanskaBosnaBoulogneBourgesBournemouthBowieBoxtelBrandenburgBrandywinePressburgBraunschweigBremenBremerhavenBreslauBrestBrianconBrückenbauBrightwoodBrignolesBrindisiBristolBritisches LagerBrombergBrooklandBrünnBrüsselBrjanskBrjanskoeBrzezinyBudaorsBudapestBudennowskBudweisBuelgorodBugBulgarienBulgarische InfDurch die frühe Eroberung von Sewastopol und der Krim konnten wir die russische Schwarzmeerflotte vernichten. Somit wird es keine weiteren Störungen geben bei unserem Vormarsch im Osten.WeißrusslandBzuraKAUKASUSCOBRAKRETACabourgCaenKairoCalaisCaltagironeCaltanissettaCambridgeCameronbachCampobassoCaneaCannesCanterburyGroßkampfschiffKapitolhöhenKapitolhügelCardiffCardiganCarentanCarpentrasCasertaCassinoCastellaneCastrovillariCataniaCatanzaroKaukaskusCentrevilleChalonsCharleroiChartresChâteau GontierChâteaudunChâteaurouxChathamChaumontCherbourgTscherkassiTscherkes KermenTschernigowTschernobaiChesterChesterChevy ChaseChillumTschirskajaCholetTschugujewCineyStadtCivitavecchiaEbeneClervauxCleveland ParkKoblenzCollege ParkKölnColonial BeachCompiègneCondé-sur-NoireauGlückwunsch zur Eroberung Frankreichs. Sie brachten dem Reich damit einen überwältigenden Sieg. Frankreich hat kapituliert und seine Kolonien werden unter deutsches Protektorat gestellt.Glückwunsch zur Eroberung Frankreichs. Sie brachten dem Reich damit einen überwältigenden Sieg. Frankreich hat kapituliert und seine Kolonien werden unter deutsches Protektorat gestellt. Leider genügte die Zeit nicht, die Vorbereitungen zur Invasion Englands abzuschließen.Glückwunsch zu Ihrem effektiven Sieg über die alliierte Invasion in der Normandie. Der Feind wurde ins Meer zurückgedrängt.Gratulations zu Ihrem außergewöhnlichen und tapferen Gegenangriff. Dennoch zwangen uns alliierte Luftangriffe gegen unsere Nachschublinien und alliierte Verstärkungen zur Aufgabe des Arnheim-Gebietes und uns hinter den Rhein zurückzuziehen.Glückwunsch zu Ihrem Sieg. Nachschubschwierigkeiten ermöglichten jedoch den Engländern, die Initiative zu ergreifen und das Afrikakorps aus Ägypten und Libyen zu vertreiben.Glückwunsch, Sie haben den Krieg gegen Polen gewonnen, Herr General! Sie belagerten und besetzten alle Ziele, bevor die Sojwetunion die Weichsel erreichte. Ihre Streitkräfte wurden an die Westgrenze zur Abwehr englisch-französischer Aggressionen verlegt.ConstantineTrotz gegenteiliger Erwartungen drängten Sie die alliierte Übermacht zurück ins Meer. Während Sie Frankreich wieder vom Feind befreiten, führten erhöhte alliierte Bombenangriffe auf Rüstung und Nachschublinien zu einer unhaltbaren Versorgungslage. Dadurch konnten die Alliierten eine weitere Landung durchführen und unsere Truppen zum Rhein zurückdrängen.CoriglianoCosenzaCottbusCoursellesCoutancesKrakauCrestwoodKreta wurde von England 1940 als Reaktion auf Italiens Invasion in Albanien besetzt. Seither haben die Engländer Luft- und Flottenstützpunkte errichtet, die wahrscheinlich unsere kommenden Unternehmungen in Russland stören werden. Ihr Befehl lautet, die Insel zu besetzen, die strategischen Basen zu erobern und die englischen Truppen ins Meer zu jagen. Dies ist die bisher größte Luftlandeoperation in diesem Kriege.CrotoneCuneoKyreneTschenstochauD-DAYD-DayDO17zDO217eDO335DamaskusDonauDanzigDarmstadtDasburgTotes MeerDeauvilleDebaltsewoDebar16. Dez 1944: Wacht Am Rhein... Deutschlands letztes Spiel im Westen.NiederlageDemerDänemarkDerbentWüsteTrotz Ihrer Bemühungen traten England und Frankreich in den Krieg gegen Deutschland ein. Weiters begann unser östlicher Verbündeter, die Sowjetunion, mit dem Einmarsch in Polen, um sich seinen Anteil zuzusichern. Somit ist Ihr Vormarsch zur Weichsel und die Einnahme von Warschau und umgebenden Städten bis spätestens zum 30. September zwingend.Trotz heldenhafter Bemühungen war der norwegische und englische Widerstand zu groß, um das Gebiet vom Feindeinfluss zu säubern. Da sich die Lage an der Westfront zuspitzt, mussten wir alle Kräfte aus Norwegen abziehen und sie an die Westfront verlagern.Trotz Ihres anfänglichen Erfolgs in den Ardennen lehnten die Alliierten unser Friedensangebot ab. Mit Verstärkungen drängten sie uns zu den Reichsgrenzen zurück.Trotz Ihres anfänglich langsamen Vormarsches konnten wir schließlich die französischen Streitkräfte mit einer überwältigenden Menge an Menschen und Material über die Somme zurückdrängen. Dennoch können wir solch suboptimale Leistung nicht länger tolerieren. Ihre Taten müssen sich verbessern. Es ist unnötig zu erwähnen, dass die Gelegenheit zur Invasion Englands für dieses Jahr verloren ist.DessauZerstörerDeurneDevegzerDevinDieppeDigneDinontDintherDiwnoeDschelfaDschidschelliDmitrijew-LgowskijDmitrowsk-OrlowskijDnjeprDnepropetrowskDnjeprDnjeprDolDombasDomfrontDonDonezDortmundDoverDraguiganDresdenDreuxDrielDrinDrômeDubrovnikDank Ihrer außerordentlichen Führungsqualitäten wird Ihnen das Kommando über Heeresgruppe Mitte in Russland angeboten.##Herr General, möchten Sie das Reich gegen sowjetische Truppen in Weißrussland verteidigen, oder gegen die kommende Invasion in Frankreich ankämpfen?DuisburgDunafoldvarDunaujvarosDünkirchenDuranceDüsseldorfDwinaDyleDschanschlejFRÜHES MOSKAUEL ALAMEINEastern frontEastonEchlemachEdeEindhovenEl AgheilaEl AlameinElbassenElbeElbeufElistaElsenbornElstElverumEngland hat kapituliert! Dieser unübertroffene Sieg über das Königreich ist Ihrem Talent und der hohen Moral Ihrer Truppen zuzuschreiben. England, Schottland, Irland und die Kolonien in Übersee sind nun unter deutsche Verwaltung gestellt. Ihnen wird hiermit einer der höchsten Orden des Reiches verliehen, das Eiserne Kreuz mit Eichenlaub und Schwertern.EnnaErfuhrtErpErteuxSteilhangEscoutEssenEsztergomÉtretatEttelbrückEupenEuphratEndlich ist die Zeit für Unternehmen Barbarossa gekommen, der lang geplanten Invasion Sowjetrusslands. Sie befehlen über Heeresgruppe Mitte und müssen den Hauptstoß durch sowjetische Verteidigungen führen und den Feind in Bewegung halten. Um den Aufbau einer Front und die Mobilisierung russischer Reserven aus der Etappe zu unterbinden, müssen Sie Smolensk und alle anderen Ziele vor dem 7. September erobern.EvreuxHervorragende Leistung, Herr General! Mit der Vertreibung der Engländer aus Ägypten konnten wir erfolgreich eine Invasion Englands vorbereiten.Exzellent! Durch die frühe Eroberung von Sewastopol und der Krim konnten wir die russische Schwarzmeerflotte vernichten. Somit wird es keine weiteren Störungen geben bei unserem Vormarsch im Osten.Hervorragend! Trotz heftiger Widerstände beherrschen wir nun das gesamte Mittelmeer. Nichts mehr kann unsere Unternehmungen in Russland aufhalten.Ausgezeichnet, Herr General! Ihre schnelle Eroberung von Norwegen erlaubte uns, die Englischen Kräfte aus Norwegen zu vertreiben und unsere Flotte dort zu stationieren. Unser Nachschub ist nun gesichert. Wir wenden uns nun der Westfront zu.ExeterFFR 105mm GeschützFFR 57mm PaKFFR 75mm GeschützFFR GM LastwagenFFR InfanterieFFR M2 HlbktnFFR M20 LACFFR M4A1FFR M5FFR M8 LACFFR BerginfFPO 25 PfdrFPO 6 Zoll GeschützFPO 6 Pfdr PaKFPO Bren CaFPO InfanterieFPO M5 StuartFPO M8 LACFPO FJFPO ShermanFPO LastwagenFR 105mm GeschützFR 155mm GeschützFR 25mm PaKFR 40mm FlaKFR 47mm PaKFR 75mm PaKFR 75mm GeschützFR AMC 35FR Amiot 143FR Bloch 174FR CHk 75A-1FR CL AMX R40FR Ch B1-bisFR Ch D1 IGFR Ch Lr H35FR Ch S35FR D520SFR HFIIFR InfanterieFR MS 406FR Potez 63FR LastwagenFRANKREICHFW190aFW190d9FW190fFW190gHeiter (trocken)Heiter (schneebedeckt)Heiter (aufgeweicht)FairfaxFalaiseFall Weiß, die Eroberung Polens, hat begonnen. Ihr Befehl lautet, eine Bresche in die polnischen Hauptverteidigungslinien zu schlagen und die Städte Kutno und Lodsch bis spätestens zum 10. September zu erobern. Eine frühere Beendigung könnte Ihnen mehr Resourcen für den Angriff auf Warschau zu Verfügung stellen.Falls ChurchFanatischer Widerstand hielt unsere Truppen von einem schnellen Vormarsch ab, sodass die Amerikaner ihre Geheimwaffe, die Atombombe, einsetzen konnten. Die resultierenden schweren Verluste zwangen die Rücknahme unserer Truppen vom amerikanischen Kontinent. Ihr Amerikaabenteuer war eine Katastrofe, jedoch schuldet Ihnen der Generalstab Anerkennung für Ihre früheren Siege über West- und Osteuropa.11. Februar 1943: Die Deutschen stürmen nach Charkow und zerschlagen die sowjetische Winteroffensive.FecampFelderJägerFinnlandFlaKPz 38(t)FlersFlorinaFoggiaFontainebleauFonjodDieses Jahr errangen wir eine weitere Gelegenheit, nach Moskau, dem logistisch-industriellen Zentrum Russlands, vorzustoßen. Die Eroberung Moskaus und aller anderen Ziele bis spätestens zum 28. Dezember ist daher unerlässlich, bevor Winterstürme unseren Vormarsch aufhalten. Zur Absicherung der Stadt gegen russische Entsatzangriffe sollten Sie die Mission jedoch einige Wocher vorher beenden. Dies ist die allerletzte Gelegenheit zur Beendigung des Krieges im Osten.WaldFormiaFestungBefestigungenFougeresFrankreichFrankreich ist geschwächt und offen zum Angriff. Seit 1871 ist dies unsere erste Gelegenheit, die mächtigste Armee Europas niederzuringen und den totalen Sieg im westlichen Kontinent davonzutragen. Erobern Sie Paris und zahlreiche strategische Städte des Hinterlands.Frankreich ist geschwächt und offen zum Angriff. Seit 1871 ist dies unsere erste Gelegenheit, die mächtigste Armee Europas niederzuringen und den totalen Sieg im westlichen Kontinent davonzutragen. Erobern Sie Paris und zahlreiche strategische Städte des Hinterlands. Geschwindigkeit ist wichtig, da nur ein früher Abschluss des Unternehmens die rechtzeitige Beendigung der Vorbereitungen für die Invasion Englands erlaubt.Frankfurt adOFrankfurt am MainFreiburgFrosinoneGB 17 Pfdr PaKGB 2 Pfdr PaKGB 20mm SFFlaKGB 25 Pfdr GeschützGB 3 Zoll FlaKGB 3t LastwagenGB 40mm FlaKGB 40mm SFFlaKGB 5,5 Zoll GeschützGB 6 Zoll GeschützGB 6 Pfdr PaKGB 7,2 Zoll GeschützGB AEC IGB AEC IIGB AEC IIIGB AchillesGB ArcherGB Blen MkIGB Blen MkIVGB Bren CaGB BrückenbauGB C-47GB Chal A30GB Church IIIGB Church IVGB Church VIGB Church VIIGB CometGB Crdr IGB Crdr IIGB Crdr IIIGB Crom IVGB Crom VIGB Crom VIIGB Daimler SCGB GrantGB Inf Gren 39GB Inf Gren 43GB Humber SCGB Hur IGB Hur IIDGB Hur IVGB Inf 39GB Inf 43GB LancasterGB M3 StuartGB M5 StuartGB M7 PriestGB Matilda IGB Matilda IIGB Meteor IIIGB Mk I A9GB Mk III A13GB Mosq VIGB FJ 39GB FJ 43GB Ram KgGB SextonGB Sh FireflyGB ShermanGB Spit IGB Spit IIGB Spit IXGB Spit VBGB Spit XIVGB Spit XVIIGB Stir MkIGB Typhoon IBGabesGaceGaetaGafsaGaithersburgGallipoliGapGardGariglianoGavrayGazalaGelaGembertGemblouxDer Generalstab zeigt sich mit Ihrem Erfolg zufrieden und bietet Ihren die Gelegenheit, die Umfassungsoperation um Kiew zu leiten.##Herr General, möchten Sie in der Wüste bleiben oder an der Ostfront teilnehmen?GeorgetownDeutsches LagerDeutschlandGhentGivetGleiwitzGlen BurnieGlommaGolGomelGorlowkaGorodnjaGradischiskGroße RhôneGranvilleGraveGrazGroßbritannienGreat VermouthGriechenlandGriechische InfGrenobleGrodnoGröningenGrosniGurenGusnieGjörHE162HE177aHE219HUSKYHaifaHaldenHalbkettenHalleHamHamarHamburgHannoverHafenHartHarstadHarwichHastingsHe111 H2Schwerer KreuzerHelmondHeraklionHerr General, Sie sind hervorragend gefahren! Russland hat einen Friedensvertrag unterzeichnet, und wir können nun unsere Kräfte gegen die Alliierten aufbieten.Herr General, Ihre hervorragendere Leistung beeindruckte die alliierten Führer stark, wodurch unsere Regierung einen annehmbaren Friedensvertrag schließen konnte. Verbunden mit Ihrem früheren Sieg über die Sowjetunion haben Sie den Krieg beendet und werden hiermit zum Generalfeldmarschall befördert.Herr General, Ihre hervorragendere Leistung beeindruckte die alliierten Führer stark, wodurch unsere Regierung einen annehmbaren Friedensvertrag schließen konnte. Der Krieg im Westen ist nun beendet.HetzerDas Oberkommando hat einen Sonderauftrag für Sie. Zur Sicherung der schwedischen Erzlieferungen haben wir Unternehmen Weserübung vorbereitet, die Invasion Norwegens vor den Engländern. Erobern Sie Oslo, den Flughafen Stavanger und eine Anzahl nördlicher Städte vor dem 3. Mai.Das Oberkommando bereitete eine Invasion Englands für diesen Sommer vor, und sie werden die Truppen führen. Dies ist die letzte Gelegenheit, England zum Frieden zu zwingen, und wir müssen diesmal erfolgreich sein. Durch eine Allianz mit den Amerikanern werden Sie auf amerikanische Expeditionstruppen treffen. Ihr Befehl lautet, London und alle anderen Ziele bis spätestens zum 13. Juli vor der Ankunft starker amerikanischer Entsatztruppen zu erobern. Um unsere Verteidigungen zu festigen, sollten Sie die Mission früher beenden.Das Oberkommando ist über Ihren kühnen Gegenangriff in Italien erstaunt. Mit schwachen Kräften konnten Sie nicht nur den Landungskopf bei Anzio ins Meer zurücktreiben, sondern auch die Städte im Süden zurückerobern.Das Oberkommando ist von ihren ausgezeichneten Fähigkeiten dermaßen beeindruckt, dass Ihnen die Einscheidung einer kritischen strategischen Frage delegiert wurde.##Der Generalstab ist in zwei Lager gespalten. Die einen vertreten die Umschließung großer russischer Verbände um Kiew vor dem Vormarsch nach Moskau, die anderen befürworten den direkten Vorstoß nach Moskau unter Auslassung von Kiew, um der Verlangsamung durch Herbstwetter vorzubeugen.##Herr General, welche Strategie sollen wir verfolgen? HirsonHitDank der erfolgreichen Verteidigung Roms konnten die Alliierten nicht in deutsches Kernland vorstoßen.Das Halten von Warschau lindert den Druck an der Ostfront kurzzeitig, was dem Oberkommando die Vorbereitung weiterer Unternehmungen erlaubt.Das Halten von Warschau lindert den Druck an der Ostfront kurzzeitig, was dem Oberkommando erlaubt, Sie an die Westfront zu versetzen.Das Halten der Schlüsselstädte Tunesiens verlangsamte den amerikanischen Vormarsch. Jedoch konnten wir dem Druck nicht länger standhalten und sahen uns gezwungen, das Afrikakorps nach Europa zurückzuziehen.HønefossHonfleurHorschamHouffalizeHullHummelUngarische InfUngarnHuntingbachHuskyHussenHuyHyattsvilleIT 105mm GeschützIT 155mm GeschützIT 47mm PaKIT 75mm GeschützIT 75mm SFFlaKIT 90mm BredaIT AB-40IT AB-41IT BA65IT Bersglri IT CA309IT CentauroIT Fiat LastwagenIT InfanterieIT L6/40IT M13/40IT M14/41IT M15/42IT Ma C202/FIT Ma C205/OIT P108 BiIT Re2000/F1IT Re2005/SIT SM 82IT Sem L-47IT Sem M-40IT Sem M-41MIT Sem M-42IT Sem M-42MItschnajaIjsselIlinkaIn der Normandie hat die erwartete Landung alliierter Streitkräfte begonnen. Das ist die größte Invasion aller Zeiten, und Sie müssen sie aufhalten. Halten Sie alle Ziele, um der alliierten Unternehmung eine Niederlage zuzufügen.In dieser Situation bietet Ihnen das Oberkommando an, Ihre Erfahrung im Schauplatz Italien zur Geltung kommen zu lassen.##Herr General, möchten Sie in Russland weiterkämpfen oder nach Anzio versetzt werden?IndianerbachInfanterieInkermanInnsbruckIsereIserniaIsignyItalienisches LagerItalienIwangradIsjumJU87BJU87DJU87RJagdPantherJagdTigerJagdpanzer 38Jagdpz IV/48Jagdpz IV/7022. Jan 1944: Deutsche Truppen greifen den Anzio-Strandkopf an und versuchen, die Gustavlinie zu halten.JerusalemJordanJp ElefantJu188aJu52g5eJu88A10. Juli 1943: Die Alliierten fallen in den schwach geschützten Süden Europas ein.25. Juli 1944: Der alliierte Ausbruch aus der Normandie.5. Juli 1943: Operation Zitadelle startet einen gewaltigen Angriff auf gut vorbereitete sowjetische Stellungen.1. Juni 1945: Gestern Europa. Heute Amerika?15. Juni 1943: Deutschland versucht England zu erledigen.22. Juni 1941: Deutschland startet einen Überraschungsangriff auf seinen Verbündeten, die Sowjetunion.22. Juni 1944: Sowjetischer Großangriff zur Zerstörung der Heeresgruppe Mitte.25. Juni 1942: Großangriff der Achse auf die wichtige Industriestadt Stalingrad.30. Juni 1942: Die Achse erschließt Russlands ölreiches Gebiet von einer neuen Südfront.5. Juni 1940: Über die Flanke stoßen die Deutschen nach Frankreich vor und versuchen Paris zu erobern.6. Juni 1944: Alliierte starten Unternehmen Overlord... die zweite Front.7. Juni 1942: Der endgültige Angriff auf den Schwarzmeerhafen von SewastopolSchutowoCHARKOWKIEWKURSKKatschalinskKadikowkaKafKalamaiKalininKalinkowitschKalischKalugaKamischliKaratschewKarakKarbalaKarlovacKarlowkaKarlsruheKasselKasserineKastelliKaterimKattowitzKatjuscha BM13Katjuscha BM31KevallaCharkowChoroKielKielceKiewKimowskKimryKing GeorgeKirowKirowiKisberKislowolskKletskawkaKohlfurtKolomnaKomarnoKomariKongsbergKönigsbergKonotopKonstantinowkaKonstantinowskKorotschaKorostenKoslinKotelnikowoKragujevacKramatorskKrasnoamejskojeKrasnodarKrasnogradKrasnopawlowkaKrefeldKrementschKristiansandKromyKropotkinKubanKukesKulaKupjanskKurskKutinaKutnoL'AquilaLC CR42LC F-DXX1LC InfanterieLC PZLP24TIEFLÄNDERLa Ferté-MaceLa LouvièreLagenSeeLancianoLandtransportLandsbergLangley ParkLanhamLarissaLarocheLatinaLaurelLavalLe HavreLe MansFußLeieLeipzigLeschLeshelmLessayBekämpfen wir die Sowjets um KiewLöwenLewadnjaHorizontalbomberLexington ParkLgowLibramitLidaLüttichLeichter KreuzerLilleLillehammerLineeLinzLiriLisitschanskLisieuxLivarotLiverpoolLodschLoireLoireLochwitzaLondonDie Niederlage an der polnischen Front war eine herbe Enttäuschung. Ihre Unfähigkeit erlaubte Frankreich und England den Aufbau einer großen Streitmacht, die mit der Invasion Deutschlands begonnen hat.Der Verlust zweier Schlachten hintereinander kann nicht akzeptiert werden.LouviersLosowajaLübeckLubnjrLuxemburgLuxemburgLuchsLjubimukaLjubotinMARKET-GARDENME163B/KometME210cME262A1ME323dME410aMITTLERER OSTENMOSKAU (41)MOSKAU (42)MOSKAU (43)MablethorpeMagdeburgMaikopMainMainzMakarskaMachatsch KalaDurch einen weiteren Fehlschlag in der Größenordnung des Weltkrieges zwang das Reich zur Unterzeichnung eines überaus nachteiligen Friedensvertrages.MalemesMalinMalmedyMaloarchangelskManchesterManhayMannheimMantes31. März 1941: Die Achse versucht sich Ägyptens und des Suez zu bemächtigen. Lässt sich der Wüstenfuchs aufhalten?6. März 1945: Deutschlands letzter Angriff.Marche-en-FamenneMarder IIMarder IIIHMarder IIIMMarjupolMersa MatruchMarsalaMarseillesMartelangeMaastrichtMateraMattawomanbachMaubeugeMaubeuge10. Mai 1940: Vorbei an den mächtigen Festungen der Maginotlinie dringen die Deutschen über Belgien, Luxemburg und die Niederlande in Frankreich ein.20. Mai 1941: Deutschland versucht die strategische Insel Kreta zu erobern.26. Mai 1942: Die Achse versucht die alliierten Streitkräfte in Nordafrika zu zermalmen.MayenneUnterdessen droht dem Afrikakorps Gefahr vom Westen. Dies ist die erste Landung von US-Expeditionstruppen in Tunesien nach der amerikanischen Kriegserklärung an Deutschland. Obwohl unerfahren, übertreffen sie unsere Truppenstärken bei weiterm und dürfen nicht unterschätzt werden. Ihr Befehl lautet, die amerikanischen Truppen vom Kontinent unter Rückeroberung aller Ziele zu vertreiben. Als letzte Gegenmaßnahme müssen Sie für einen gefälligeren Ausgang der Schlacht mindestens Tunis und zwei weitere Ziele halten.MechiliMedscherdaMekensieriMekensijaMelambesMelunMenaistraßeMenfiMerefaMerlaMersa el BregaMersa MatruchMerseyMerthyrMesolongionMessinaMetzMeuseMeuseMezolMezoszilasMichael Speck, Leo SavernikMichailiMillerowoMinskMirgorodMiskolcMo-i-ranaModlinMogilewMoiresMoldeMonacoMondragoneMonemvasiaMonosteraceMonsMonschauMontargisMontelimarMorMorlawaMortainMoskauMoskau ist gefallen, und die Sowjetunion hat kapituliert! Sie haben erreicht, wovon Napoleon nur träumte. Russland wurde unter deutsche Verwaltung gestellt, und wir begannen bereits mit der Ausbeutung seiner gewaltigen Rohstoffvorkommen. Für Ihre Führungsqualitäten wird Ihnen einer der höchsten Orden des Reiches, das Eiserne Kreuz mit Eichenlaub und Schwertern, verliehen.Moskau ist gefallen, und die Sowjetunion hat kapituliert! Sie haben erreicht, wovon Napoleon nur träumte. Russland wurde unter deutsche Verwaltung gestellt, und wir begannen bereits mit der Ausbeutung seiner gewaltigen Rohstoffvorkommen. Für Ihre Führungsqualitäten wird Ihnen der höchste Orden des Reiches, das Ritterkreuz mit Eichenlaub und Schwertern, verliehen.Moskau ist gefallen, und die Sowjetunion hat kapituliert! Sie haben erreicht, wovon Napoleon nur träumte. Russland wurde unter deutsche Verwaltung gestellt, und wir begannen bereits mit der Ausbeutung seiner gewaltigen Rohstoffvorkommen. Ihre Entscheidung zum direkten Marsch auf Moskau war richtig, weswegen Ihnen einer der höchsten Orden des Reiches, das Eiserne Kreuz mit Eichenlaub und Schwertern, verliehen wird.Moskau ist gefallen, und die Sowjetunion hat kapituliert! Sie haben erreicht, wovon Napoleon nur träumte. Russland wurde unter deutsche Verwaltung gestellt, und wir begannen bereits mit der Ausbeutung seiner gewaltigen Rohstoffvorkommen. Ihre Entscheidung zum direkten Marsch auf Moskau war richtig, weswegen Ihnen der höchste Orden des Reiches, das Ritterkreuz mit Eichenlaub und Schwertern, verliehen wird.Moskau, Hauptstadt und industriell-logistisches Zentrum von Russland, ist das letzte zu erstrebende Ziel an der Ostfront. Besetzen Sie Moskau und alle anderen Ziele bis spätestens zum 16. November. Um die zu erwartende Behinderung unseres Vormarsches durch das Herbstwetter zu minimieren, sollten Sie Ihre Mission einige Wochen vorher beenden.Moskau, Hauptstadt und industriell-logistisches Zentrum von Russland, ist das letzte zu erstrebende Ziel an der Ostfront. Besetzen Sie Moskau und alle anderen Ziele bis spätestens zum 4. Dezember. Um die zu erwartende Behinderung unseres Vormarsches durch das Herbstwetter zu minimieren, sollten Sie Ihre Mission einige Wochen vorher beenden.MoselMosjøenMostarBergMosdokMoschaiskMosirMt. PleasantMzenskMünchenMünsterNOR 75mm GeschützNOR F-DXXIIINOR InfanterieNORDAFRIKANORWEGENNamsosNamurNancyNantesNeapelNarewNarvikNashornSeeNazideutschland bricht den Zweiten Weltkrieg vom Zaun und trachtet nach der Weltherrschaft.NeápolisNebelwerferNach fehlgeschlagenen Verhandlungen mit Jugoslawien wandten sie sich gegen uns, während Italienische Kräfte einen heftigen Kampf an der Metaxas-Linie in Griechenland führen. Dieser Zustand herrscht seit einem Jahr, und Italien ist kurz vor dem Aufgeben. Für unsere kommende Invasion in Russland können wir keinen unbesiegten Feind in unserem Rücken erdulden, somit müssen sie alle Ziele einnehmen und die Italiener gegen griechische und englische Gegener unterstützen.NehsinNelidovaNeraNiederlandeNeubrandenburgNeufchâteauNeufchâtelNewelNeversNewburyNewhavenNizzaNiemanNimwegenNikoaewkaNilNîmesNivellesNordafrikaNordarlingtonNorwegenNorwichIhr Misserfolg in Moskau gewährte den Russen genügend Zeit zur Vorbereitung eines Gegenangriffs mit sibirischen Truppen. Obwohl wir die Front wieder stabilisierten, sind alle Hoffnungen an eine Eroberung Moskaus für immer verschwunden.Ihr Misserfolg in Moskau gewährte den Russen genügend Zeit zur Vorbereitung eines Gegenangriffs mit sibirischen Truppen. Obwohl wir die Front wieder stabilisierten, konnten wir 1941 keinen weiteren Angriff durchführen.Ihr Misserfolg in Moskau gewährte den Russen genügend Zeit zur Vorbereitung eines Gegenangriffs mit sibirischen Truppen. Obwohl wir die Front wieder stabilisierten, konnten wir 1942 keinen weiteren Angriff durchführen.Sie haben nicht nur dem feindlichen Ansturm an zwei Fronten widerstanden, sondern konnten den Feind bis über die Vorkriegsgrenzen des Reiches zurückdrängen. Somit konnten wir einen Friedensvertrag aushandeln, der den Status quo vom 1. September 1939 wiederherstellt.Nottingham8. Nov 1942: Die Amerikaner treffen auf die Veteranen des Afrikakorps.NowigradNowotscherkasskNowomoskowskNoworossikNowosilNowosibkowNowji SchuliNun ist die Zeit reif, die frankoenglischen Aggressionen in ihre Schranken zu verweisen. Mit zwei Stoßkeilen dringen Sie nördlich über Lüttich, Brüssel, Maubeuge, südlich über die waldigen Ardennen und den nördlichsten Außenposten der Maginot-Linie, Sedan vor, vorbei an den Schlachtfeldern des Weltkrieges, und erobern alle Ziele bis zum 8. Juni. Ein wesentlich früherer Erfolg erlaubt Vorbereitungen für eine Invasion Englands dieses Jahr.Nun bieten sich zwei Fronten an. Herr General, in welchem Schauplatz möchten Sie partizipieren?Nun ergeben sich für Sie zwei Gelegenheiten, sich zu beweisen. Im Osten bereiten die Russen ihre Sommeroffensive gegen Heeresgruppe Mitte vor, während im Westen die Alliierten zur Invasion Frankreichs ansetzen.##In welchem Schauplatz möchten Sie die Führung übernehmen?NoyonNürnbergNyonsObninskOzeanOcooquenbach1. Oktober 1942: Deutscher Angriff zur Eroberung Moskaus und Beendigung des Krieges im Osten.2. Oktober 1941: Können die Helden des Vaterlands die Panzer bis zum Wintereinbruch aufhalten?9. Oktober 1943: Deutschlands letzte Chance, den Krieg im Osten zu beenden.OdentonOderOkaOkaOkehamptonOlmutzOmegaOosterbeekOpel 6700OpheustenOppelnOrangeOrbecOrelOrelOrléansOrneOrvietoOskalOsloOsnabrückOssOostendeOstwind IOtradniOtrantoOurOurtheBewölkt (trocken)Bewölkt (schneebedeckt)Bewölkt (aufgeweicht)OwingsOxfordOzorkówPO 7TPPO KavalleriePO InfanteriePO PZL P11cPO PZL P23bPO PZL P24gPO PZL P37bPO TK3POLENPSW 222/4rPSW 231/6rPSW 232/8rPSW 233/8rPSW 234/1-8rPSW 234/2-8rPachwoPalaiochoraPalermoPanther APanther DPanther GPapaPargaParisPassauPatraiPatuxentflussPawlogradPehcevoPereschtschepinoPeriersPescaraPescaraPeterboroughKleine RhônePetraliaPetrikowPetropawlowkaPhillipevillePhillippevillePilizaPilsenPiniosPinskPioniere InfPiscatawaybachPizzoPlymouthPoPodolskPolenPolgardiPontoisePontorsonHafenHafenanlageTabakhafenPortsmouthPortugalPosenPostawiPotiPotomachügelPotomacPragPrilukiPrinz FrederickPripetPripjatPrizziProchorowkaProletarskProletarskijPrumPselPulaSie haben den alliierten Ansturm bis zu den Vorkriegsgrenzen zurückgedrängt. Mit Ihrem früheren Sieg über Russland konnten wir somit einen vorteilhaften Friedensvertrag aushandeln.Sie haben den russischen Ansturm bis zu den Vorkriegsgrenzen zurückgedrängt. Mit Ihrem früheren Sieg über England konnten wir somit einen vorteilhaften Friedensvertrag aushandeln.PusztaszabolcsMan hätte Ihnen niemals den Oberbefehl über das Afrikakorps überantworten dürfen.PuttuskPz 35(t)Pz38(t)APz38(t)FPz38(t)GPzIAPzIBPzIIAPzIIDPzIIFPzIIIEPzIIIGPzIIIHPzIIIJPzIIINPzIVDPzIVF2PzIVGPzIVHPzIVJPzJager IBQuanticoQueenstownRackeveRadomRadomischiRegen (trocken)Regen (schneebedeckt)Regen (aufgeweicht)RapidoRappahannockflussReschizaAufklärerRegensburgReggioReichenbachReimsRenkumRennesDer Widerstand war wesentlich heftiger als von Aufklärungsflügen angenommen. Somit erlitten unsere Truppen gewaltige Verluste, sodass wir sie zum Festland zurückziehen mussten. Kreta stellt somit eine latente Gefahr für die weiterführenden Unternehmungen an der Ostfront dar.RetymnonRheinRhôneRiberaRietiRijekaRiva-BellaFlussRiverdaleStraßeRochefortRockvilleRodomskoRoerRomRoslawlRossoschRostockRostowRouenHügelSteinwüsteRubeschnojeRumänienRumänische InfRumnirRussische Reserven haben unseren langsamen Vormarsch aufgehalten und mit Kraft unsere Truppen zurück ins Reich gedrängt.RjasanRilskRschewS-BootSEELÖWE (40)SEELÖWE (43)SEELÖWE PLUSSEWASTOPOLSPW 250/1SPW 251/1ST 12,2cm GeschützST 15,2cm GeschützST 45mm PaKST 57mm PaKST 7,6cm FlaKST 76mm PaKST BA-10ST BA-64ST BT-5ST BT-7ST BrückenbauST KavallerieST I-16ST JS-2ST JSU-122ST JSU-152ST JSU-152 PaKST Il-10ST Il-2ST Il-2M3ST Il-4ST InfanterieST KW-1/39ST KW-1/41ST KW-1/42ST KW-2ST KW-85ST La-3ST La-5ST La-7ST MiG-3ST PE-2ST PE-8ST FJST SMG InfST SU-100ST SU-122ST SU-152ST SU-152 PaKST SU-85ST T-28M1ST T-34/40ST T-34/41ST T-34/43ST T-34/85ST T-40ST T-60ST T-70ST LastwagenST JaK-1ST JaK-1MST JaK-7BST JaK-9ST JaK-9MST Z25mm SFFlaKSTALINGRADSaarSaarbrückenSaarburgSaccoSafonowoSaint LôSakakahSalernoSalskSaluzzoSalzburgSamaraSamarraSambreSambreSan StefanoSangroSaprySarajewoSarandeSaratowSaumurSawnaSchaarbergenSchneidemühlSchwerinSciaccaSdKfz 10/4SdKfz 6/2SdKfz 7/1SeetransportSeelöwe 43SedanSeeSeesSeineSeineSeluneSemenowka1. September 1939: Die Wehrmacht überschreitet die polnischen Grenzen in ihrem berühmten Blitzkrieg. In 10 Tagen müssen sie Lodsch und Kutno erobern... die Tore nach Warschau.1. September 1940: Deutschland richtet seinen Blick auf England1. September 1940: Mit der Eroberung Gibraltars unterstützt Italiens Flotte die Invasion Englands.10. September 1939: Die Deutschen müssen Warschau erobern und den polnischen Widerstand brechen, bevor die Alliierten reagieren.17. September 1944: Ein gewagter Luftangriff zur Eroberung eines Rheinübergangs. Eine Brücke zu viel?8. September 1941: Panzergruppe Guderian ignoriert Kiew und stößt nach Moskau vor.1. September 1941: Die Achse versucht die persischen Ölfelder zu ergattern.SerpuchowSerraiSewastopolSevernSeimSezzeSfakiaSfaxSchtschekinoSheffieldSchkoderShrewburySidi BarraniSiediceSiennerSilver SpringSimontornjaNach der Stabilisierung der Front entwickelte sich eine Ausbeulung russischer Verteidiger um Kursk. Unsere Strategie sieht einen nördlichen und südlichen Durchbruch durch sowjetische Verteidigungen mit anschließender Umfassung und Vernichtung vor. Seien Sie gewarnt, dass die Sowjets ohne Zweifel über unser Vorhaben sind und ihre Verteidigung gut vorbereitet haben. Erobern Sie Kursk auf jeden Fall. Wenn Sie weiters alle anderen Ziele bis spätenstens zum 24. Juli einnehmen, kann das Oberkommando einen Vorstoß auf Moskau für 1943 vorbereiten.SisakSisteronSitiaSkopjeSlawjanskSlofokSmelaSmolenskSchnee (trocken)Schnee (schneebedeckt)Schnee (aufgeweicht)SofiaWeichSollumSoltSommeSoraSosjkaSousseSüdarlingtonSowjetrussland startete schließlich die lang erwartete Sommeroffensive von 1944, ironischerweise am selben Tag, an dem wir Unternehmen Barbarossa drei Jahre vorher einleiteten. Sie haben Befehl über Heeresgruppe Mitte, und Sie müssen den russischen Angriff unter allen Umständen aufhalten und alle Ziele zurückerobern, um das Schlachtenglück im Osten zu wenden. Ist die Übermacht zu stark, halten Sie zumindest Warschau bis zum 27. August.SowjetunionSpaSpanienSpoletoSt. AnthonisSt. HilaireSt. HubertSt. MaloSt. Mere EgliseSt. ÖdenrodeSt. PierreSt. QuentinSt. Sauveur-le-V.St. TrondSt. Vaast-la-HaugueSt. ValerySt. VallierSt. VithStachanowStalins Stadt liegt in Ruinen, und deutsche Truppen kontrollieren den Verkehr auf der Wolga, um den Aufbau eines russischen Gegenangriffs zu verhindern. Somit können Sie nun ohne Störung im Rücken gen Moskau schreiten.StalingradStalinoStargarStarobelskStarodubStary OskolStavangerIn Italien bleibenIn der Wüste bleibenSteinkjerStettinStokeStourStralsundStraßburgStrategic Simulation Inc.StellungStuG IVStuGIIIFStuGIIIF/8StuGIIIGStuGIIIbStuH42StuttgartU-BootSudaSudschaSuchumSulmonaSumiNachschubprobleme und der stetig steigende Widerstand englischer Truppen erlaubte den Engländern, die Initiative zu ergreifen und das Afrikakorps aus Ägypten und Libyen zu vertreiben.SuwalkiSwatowoSumpfSchwedenSchweizSyrakusSzczytnoSzekesfehervarSzentendreT-ZerstörerTORCHTabTacoma ParkTaktischer BomberDie Eroberung aller Ziele erlaubte die Vertreibung der englischen Truppen aus Norwegen und die dortige Stationierung unserer Flotte. Unser Nachschub ist gesichert, und Sie erhalten das Kommando über die Truppen im Westen.TalnojeTamarPanzerTapolcaTarantoTatabanjaTauntonTebessaTemirikTeramoTerekTerminiTerniTerracinaTeschenTetTejkowoThemseDank Ihres großen Erfolges wurde die sowjetische Sommeroffensive aufgehalten, und wir konnten weitere Unternehmungen vorbereiten.Dank Ihrer gewaltigen Leistung konnte die sowjetische Sommeroffensive angehalten werden. Währenddessen erreichte die Situation im Westen ein kritisches Maß, wodurch das Oberkommando Ihre Versetzung an die Westfront veranlasste.Die alliierte Armee drängte unsere Truppen mit Leichtigkeit bis in die Niederlande zurück.Die alliierten Landungen waren durchwegs erfolgreich. Damit ist Frankreich definitiv verloren.Die Alliierten erweiterten ihre Landungsköpfe in der Normandie und massierten Truppen. Mit unsereren verstreuten und erschöpften Einheiten stehen Sie einer hoffnungslosen Schlacht gegen übermächtige Kräfte gegenüber. Ihr Befehl lautet, alle Ziele zu halten sowie Cherbourg, Carentan und Caen zurückzuerobern. Falls unplausibel, halten Sie zumindest drei Ziele bis zum 18. August.Die Alliierten kämpften sich einen Weg von Sizilien bis Mittelitalien frei. Während wir ihren Vormarsch an der Gustav-Linie zum Stillstand brachten, unternahmen die Alliierten eine groß angelegte Landeoperation bei Anzio-Nettuno. Um Schaden vom Reich abzuwenden, ist es unerlässlich, diese Streitmacht unter allen Umständen abzuwehren. Halten Sie zumindest Rom und zwei weitere Ziele, um die Schlacht in eine günstigere Richtung zu lenken.Die Alliierten begannen einen Überraschungsangriff aus der Luft gegen Arnheim zwecks Eroberung von Rheinbrücken. Jedoch gewährte uns der langsame Ausbruch aus der Normandie genügend Zeit zum Aufbau einer schlagkräftigen Verteidigung. Ihr Befehl lautet, Arnheim zurückzuerobern und bis zum 25. September zu halten, sowie die Umgebung von Fallschirmtruppen zu säubern, bevor alliierte Verstärkungen eintreffen.Die amerikanische Armee schlug unser Afrikakorps in Stücke.Die britischen und amerikanischen Streitkräfte begannen ihre Invasion in Sizilien, unser schwach verteidigtes Einfallstor nach Südeuropa. Ihr Befehl lautet, alle Ziele zu halten. Falls unmöglich, halten Sie mindestens zwei Ziele, um den alliierten Vormarsch zu verlangsamen.Das einst mächtige Reich liegt in Trümmer. Es gibt keine Autorität mehr zur Unterzeichnung eines Friedensvertrages. Deutschland hat aufgehört zu existieren.Großdeutschland hat keine Verwendung für einen inkompetenten Untermenschen, General! Wegtreten.Die Mission war ein Fehlschlag. Die Alliierten konnten Deutschland vom Süden her besetzen, was uns zur Annahme eines nachteiligen Friedensvertrages wie demjenigen von 1918 zwang.Die Mission war ein Fehlschlag. Die Alliierten konnten Deutschland vom Süden her besetzen. Dank Ihres früheren Sieges über Russland, schnell errichtete Rüstungsbetriebe konnten die endgültige Besetzung von Deutschland verhindern, wodurch wir einen nur leicht nachteiligen Friedensvertrag aushandeln konnten.Der schnelle und entschiedene Schlag gegen Jugoslawien und Griechenland erlaubte dem Oberkommando die Vorbereitung einer Luftlandung auf Kreta. Sie haben Ihrem Lande wohl gedient und werden daher mit dem Kommando über dieses Unternehmen betraut.Die russische Offensive war nicht aufzuhalten. Deswegen mussten wir uns an die Reichsgrenze zurückziehen.Die totale Niederlage an der Südfront brachte Italiens Kapitulations gegenüber den Alliierten.Große feindliche Truppenansammlungen rund um Kiew geben uns die einmalige Gelegenheit, die russische Abwehrbereitschaft zu brechen. Mit ausgeklügelten Blitzkriegtaktiken müssen Sie die sowjetische Verteidigung in Kiew und umgebenden Städen umfassen und vernichten. Um unseren Vormarsch auf Moskau fortzusetzen, ist die Einnahme aller Ziele bis spätenstens zum 20. September notwendig.ThessalonikiThibervilleThierryDies ist beeindruckend! Obwohl der Generalstab insgeheim wusste, dass der Befehl mit den gegebenen Kräften nicht durchführbar war, vollzogen Sie das Unmögliche und drängten die alliierten Armeen zurück ins Meer. Als Reaktion verstärkten die Alliierten die Bombenangriffe auf deutsche Rüstungsindustrien und Nachschubwege. Der Materialmangel ermöglichte den Alliierten eine weitere Landung, und sie drängten uns zurück zum Rhein.Dies ist das letzte Gefecht. Sie kämpfen gegen eine gewaltige Übermacht an jeder Seite der Front. Halten Sie Berlin um jeden Preis. Verlieren steht nicht zur Auswahl.ThorinThury HarcourtTiberTiflisTiger ITiger IITigrisTichoretskTimoschewskajaTiranaTirlemontTivoliUm Ihr Geschick an einem anderen Schauplatz unter Beweis zu stellen, bietet Ihnen das Oberkommando die Führung des Afrikakorps im Kampf um El Alamein an.##Herr General, wünschen Sie Ihre Versetzung nach Afrika, oder möchten Sie an der Ostfront bleiben?TobrukTomasowTongresTotenzaToulonTouquesToursGezogenStadtKettenTransportTrapaniTrierTrignoTrikkalaTrinidadTroarnTrois-PontsTrondheimTrostjanetsTrouvilleTroyesTrunZimjankTulaTunbridge WellsTunisTuranoTurdinoTurinTürkeiTurnu SeverinU-BootUS 105mm GeschützUS 155mm GeschützUS 3 Zoll FlaKUS 3 Zoll PaKUS 37mm PaKUS 40mm FlaKUS 57mm PaKUS 75mm GeschützUS 8 Zoll GeschützUS 90mm FlaKUS A26 InvUS B17F FFUS B17G FFUS B24D LibUS B25B MitchUS B25H MitchUS B26C MardrUS B29 SFUS B32 DomUS BrückenbauUS C47US Pioniere 41US Pioniere 43US GM LastwagenUS Inf 41US Inf 43US Inf Gren 41US Inf Gren 43US M10 US M12 GMCUS M15A1 MGMCUS M16 MGMCUS M18 US M2 HalbktnUS M20 LACUS M24US M26 US M2A4US M3 US M3 GMCUS M36US M4US M4A1US M4A1(76)WUS M4A3US M4A3 (105)US M4A3(76)WUS M4A3E2US M4A3E2(76)US M5US M7US M8 Ghd LACUS M8 HMCUS P38 LtngUS P40 WhwkUS P47B TboltUS P47D TboltUS P47N TboltUS P51B MustgUS P51D MustgUS P51H MustgUS Para 41US FJ 43US Rangers 43USAUdenUlmUmanUniversitätUpper MarlboroUralUtrechtValValenceWaljewoValognesWaluikiValujkiVarWasilowkaVastoWegelVellitriWerchne TschoganVernonVerviersVeszpremViandenVichyVielsalmWienVienneVilledieu-LPVillers-BocageWilnaVimoutiersVireVireWeichselWitebskViterboVitreWladimirowkaWolschanskWolgaWolgaVolkelWolkowiskVolturnoWoroneschWoroschilowgradWorsklaVratsaWjasmaWARSCHAUWASHINGTONWaalWaavreWacht am Rhein war ein völliger Fehlschlag. Massive alliierte Verstärkungen drängten unsere Truppen bis an die Reichsgrenze zurück.WaldenburgWarschauWartaWir blicken nun einer gewaltigen Streitmacht im Osten entgegen, die deutschen Boden betritt. Ihr Befehl lautet, Berlin und mindestens fünf andere Ziele zu halten, um weiteren Schaden vom Reich abzuwenden.Wir blicken nun einer gewaltigen Streitmacht im Westen entgegen, die deutschen Boden betritt. Ihr Befehl lautet, Berlin und mindestens fünf andere Ziele zu halten, um weiteren Schaden vom Reich abzuwenden.Wir verschanzten uns entlang der Siegfriedlinie und beobachteten die beträchtliche Verlangsamung des alliierten Vorstoßes. Deshalb stellten wir eine Streitmacht zum Gegenangriff auf, genannt Unternehmen Wacht am Rhein. Erobern Sie alle Ziele bis zum 31. Dezember, und wir befinden uns in einer starken Position für Friedensverhandlungen.Wir haben alle Kampfgruppen für die letzten Offensive an der Ostfront versammelt. Nehmen Sie Budapest und alle anderen Ziele bis spätestens zum 25. März ein. Um die Russen von der Erholung von der Offensive abzuhalten und ihnen einen genehmen Friedensvertrag abzutrotzen, sollten Sie Ihre Ziele einige Tage früher erreichen.Wir haben nun eine weitere Gelegenheit, nach Moskau vorzustoßen und den Krieg im Osten zu beenden. Die sowjetische Verteidigung ist jedoch dieses Mal viel besser vorbereitet. Somit ist die Eroberung Moskaus und einer Vielzahl anderer Ziele bis spätestens zum 28. Dezember unerlässlich. Zur Erzwingung einer Kapitulation sollten Sie die Mission jedoch einige Wocher vorher beenden.Wir konnten nur einen Gleichstand mit den Alliierten erreichen.Wir wenden uns der Heeresgruppe Süd zu, die den Schwarzmeerhafen Sewastopol seit knapp einem Jahr belagerte. Die Zeit ist jetzt reif für einen Sturm auf Sewastopol, und Sie werden ihn durchführen. Kämpfen Sie sich Ihren Weg durch die Stadt Sewastopol und erobern sie alle Ziele bis spätestens zum 23. Juni. Nach dem Moskau-Reinfall letztes Jahr können wir uns keine weitere Niederlage leisten.Wir nehmen den frühen Weg nach Moskau.Wir konnten letztlich den englischen Gegenangriff stoppen und bereiten eine Gegenoffensive vor. Obwohl wir weniger Boden als letztes Jahr gut machen müssen, erwarten wir weit stärkeren englischen Widerstand. Während die Gelegenheit zur Eroberung des Zweistromlandes dahin ist, können wir immer noch eine Invasion Englands vorbereiten, sofern das nordafrikanische Kapitel rechtzeitig geschlossen wird. Nehmen Sie alle Ziele bis spätestens zum 28. September ein. Für erfolgreiche Invasionsvorbereitungen müssen Sie die Mission einige Wochen früher abschließen.WeilandWerbomontWeserWespeWestflussWheatonReifenWährend Sie tapfer gegen eine gewaltige Übermacht kämpften, konnten die Alliierten einen Landungskopf in der Normandie behaupten.Obwohl Sie alle Ziele einnehmen konnten, überschritt die russische Offensive die kritische Masse und drängte uns hinter die Ostgrenze des Reichs zurück.Während Sie auf heftige Widerstände stießen, starteten die Sowjets einen Gegenangriff auf den deutschen Kessel um Orel. Deswegen mussten wir zurückweichen und Truppen zur Abwendungen dieses massiven Angriffs abziehen. Wir haben die Initiative an der Ostfront verloren und können keinen weiteren Angriff in diesem Jahr durchführen.Weißes HausWiesbadenWilhelmshavenWiltzWinchesterWirbelwindMit afrikanischen und russischen Rohstoffen erhöhten wir den Ausstoß der Rüstungsindustrie erheblich, wodurch wir eine Landeoperation auf amerikanischem Boden durchzuführen in der Lage waren. Unsere Truppen stehen vor den Toren Washingtons, und Sie haben die Stadt zu erobern. Nehmen Sie Washington und alle anderen Ziele bis spätestens zum 3. August ein. V-Männer berichten von Tests einer neuen amerikanischen Geheimwaffe, die Mitte Juli einsatzbereit sein soll. Um deutsche Verluste zu minimieren und unsere starke Position zu unterstreichen, sollten Sie Ihre Mission bis dahin bereits erfüllt haben.Mit der Rückeroberung Charkows und der Niederschlagung der sowjetischen Angriffsmacht konnten wir uns eine Weg Richtung Moskau freikämpfen.Mit der Kapitulation von Jugoslawien und Griechenland kann nichts mehr unsere kommende Invasion von Russland aufhalten.Wegen der ungeschlagenen Teile von Jugoslawien und Griechenland mussten zusätzliche Truppen zur Verteidigung abgestellt werden, die nun an der russischen Front fehlen.Mit der Eroberung aller Ziele und der Vertreibung der Amerikaner aus Afrika haben Sie ihre hervorragenden Führungsqualitäten unter Beweis gestellt.WittenbergWolfhezeWorcesterDer Zweite WeltkriegWuppertalWürzburgWylerJeiskSie führen nun das Afrikakorps, um die italienischen Truppen in ihrem Kampf gegen englische Mittelmeerkolonien in Nordafrika zu unterstützen. Die Strategie sieht die Eroberung Ägyptens und den Vorstoß zur persischen Grenze vor für eine neue Südfront gegen Russland. Nehmen Sie alle Ziele bis spätestens zum 27. Juni ein. Um diese jedoch gegen Gegenangriffe abzusichern, sollten Sie ihre Mission früher beenden.Sie haben den alliierten Ansturm tapfer von den Reichsgrenzen abgewiesen. Mit Ihrem früheren Sieg über Russland konnten wir zum Status quo des Vorkrieges im Westen zurückkehren.Sie haben den russischen Ansturm tapfer von den Reichsgrenzen abgewehrt. Mit Ihrem früheren Sieg über England konnten wir im Osten zum Status quo der Vorkriegszeit zurückkehren.Sie haben die russische Winteroffensive tapfer zum Stillstand gebracht und die Front stabilisiert.Sie haben sich tapfer gegen eine Übermacht behauptet, aber ohne Erfolg. Die Alliierten trieben unsere Truppen in die Niederlande zurück.Sie haben einen grandiosen Sieg für das Reich errungen, Herr General! Ausgezeichnet!Sie haben einen knappen Sieg für das Reich errungen, Herr General! Nicht schlecht.Sie haben gute Arbeit geleistet. Trotz heftiger Widerstände ist die Herrschaft über dem Mittelmeer unsere. Nichts kann nun unser Unternehmen in Russland aufhalten.Sie haben versagt, General! Das deutsche Reich hat eine unbedeutende Niederlage erlitten!Sie haben sich als fähiger Panzergeneral erwiesen und die Tiefländer zwischen Deutschland und dem Herzen Frankreichs gesichert. Nun ist der endgültige Angriff auf Frankreich bereit zu beginnen. Unglücklicherweise reichte die Zeit nicht mehr für Vorbereitungen zur Invasion Englands.Sie haben vollkommen versagt, General! Das deutsche Reich ist vernichtend geschlagen!Sie haben Berlin gehalten. Dies versetzte uns jedoch in eine unangenehme Situation. Somit mussten wir einen Friedensvertrag zu noch schlechteren Bedingungen als den gehassten von 1918 unterzeichnen.Sie konnten den Widerstand brechen, bevor die Alliierten reagierten. Die Tore Warschaus sind nun weit geöffnet.Sie konnten einen Sieg erringen. Jedoch machte die Kapitulation unseres vormaligen Verbündeten Italien unseren Erfolg zu Nichte.Sie konnten Arnheim zurückerobern und erfolgreich halten. Dennoch zwangen uns alliierte Luftangriffe gegen unsere Nachschublinien und alliierte Verstärkungen zur Aufgabe des Arnheim-Gebietes und uns hinter den Rhein zurückzuziehen.Sie haben mit Leichtigkeit die Schlachtfelder unseres glanzlosen Kampfes im Weltkriege überwunden. Wir haben die Truppen nun für den letzten Sturm auf Frankreich gesammelt und die zusätzliche Zeit für Vorbereitungen zur Invasion Englands genutzt.Sie widerstanden lange genug, sodass das Oberkommando Verteidigungslinien im Rückzugsgebiet aufbauen konnte.Sie konnten Kursk erobern. Jedoch starteten die Sowjets einen Gegenangriff auf den deutschen Kessel um Orel. Deswegen mussten wir zurückweichen und Truppen zur Abwendungen dieses massiven Angriffs abziehen. Wir haben die Initiative an der Ostfront verloren und können keinen weiteren Angriff in diesem Jahr durchführen.Ihr tapferer Einsatz führte zur Eroberung Südenglands. Jedoch verursachten Herbststürme und Störungen der britischen Flotte eine katastrofale Nachschublage, weswegen wir unsere Truppen zum Festland zurückziehen mussten.Ihre tapferen Bemühungen führten zur Eroberung Südenglands. Unglücklicherweise zwangen die Landung und der folgende Gegenangriff amerikanischer Verstärkungen das Oberkommando zur Rücknahme aller Truppen zum Festland.Ihre tapferen Bemühungen führten zur Eroberung Südenglands. Unglücklicherweise zwangen die Landung und der folgende Gegenangriff amerikanischer Verstärkungen das Oberkommando zur Rücknahme aller Truppen zum Festland. Sie wurden an die Ostfront berufen, um dort Ihre Eignung als würdiger Panzergeneral unter Beweis zu stellen.Ihr früher und entscheidender Sieg in Frankreich ließ genügend Zeit, Unternehmen Seelöwe, die Invasion Englands, vorzubereiten. Erobern Sie London und weitere Ziele, bevor das Herbstwetter die See aufraut und unsere Nachschublinien gefährdet. Dies ist eine einzigartige Gelegenheit, England zur Kapitulation zu zwingen und den Krieg zu beenden.Ihr entscheidender Sieg im Zweistromland schwächte die englischen Kräfte endgültig. Somit ergibt sich eine Gelegenheit zur Vorbereitung einer Invasion Englands und zur Beendigung des Krieges im Westen. Andererseits können Sie weiter Richtung Kaukasus marschieren.##Herr General, über welche Unternehmung möchten Sie das Kommando?"Ihr entscheidender Sieg in der Schlacht um Budapest zwang die Russen zur Unterzeichnung eines vorteilhaften Friedensvertrages. Verbunden mit Ihrem früheren Sieg über England haben wir den Krieg auf beiden Fronten gewonnen. Als Anerkennung ihrer tapferen Leistungen während des Krieges werden Sie hiermit zum Generalfeldmarschall befördert.Ihre frühzeitige Eroberung Südenglands erlaubte die Vorbereitung von Verteidigungsanlagen gegen die amerikanische Landung und ihre Vernichtung. In Folge dessen hat England kapituliert! Dieser unübertroffene Sieg über das Königreich ist Ihrem Talent und der hohen Moral Ihrer Truppen zuzuschreiben. England, Schottland, Irland und die Kolonien in Übersee sind nun unter deutsche Verwaltung gestellt. Ihnen wird hiermit einer der höchsten Orden des Reiches verliehen, das Eiserne Kreuz mit Eichenlaub und Schwertern.Ihre frühzeitige Eroberung Südenglands erlaubte die Vorbereitung von Verteidigungsanlagen gegen die amerikanische Landung und ihre Vernichtung. In Folge dessen hat England kapituliert! Dieser unübertroffene Sieg über das Königreich ist Ihrem Talent und der hohen Moral Ihrer Truppen zuzuschreiben. England, Schottland, Irland und die Kolonien in Übersee sind nun unter deutsche Verwaltung gestellt. Ihnen wird hiermit der höchste Orden des Reiches verliehen, das Ritterkreuz mit Eichenlaub und Schwertern.Ihr beispielloser Sieg in Sizilien beeindruckte den Generalstab erheblich. Deshalb wird Ihnen ein Kommando über die Streitmacht gegen Moskau angeboten.##Herr General, möchten Sie in Italien bleiben oder zur Ostfront versetzt werden?Ihr Misserfolg in dieser Mission zwang das Reich zur Rücknahme der Front zum Ausgleich deutscher Verluste in der Schlacht.Ihr Versagen bei der Eroberung Englands gab dem Feind die Möglichkeit, Widerstände zu verschärfen und starke Flottenverbände gegen unsere Nachschublinien einzusetzen. Somit wurden unsere Expeditionsarmeen übermäßig dezimiert, was uns zur Unterzeichnung eines nachteiligen Friedensvertrages zwang.Ihre Unfähigkeit, England rechtzeitig vor der Ankunf amerikanischer Verstärkung zu erobern, gab dem Feind die Kraft zum Gegenschlag und zwang unsere Truppen zurück zum Festland.Ihre Unvermögen, die russischen Truppen rechtzeitig zu dezimieren, erlaubte dem Feind, sich zu massieren und einen Gegenangriff zu führen. Somit mussten für 1941 alle Angriffsoperation an der Ostfront ruhen.Ihre Unfähigkeit, polnischen Boden zu gewinnen, hat zur einem Angriff der Alliierten auf Deutschland geführt.Ihr glorreicher Vormarsch entlang der nordafrikanischen Küste vertrieb die Engländer aus Ägypten und erlaubte unseren Truppen die Überquerung des Suezkanals.Ihre Unfähigkeit, Stalingrade zu erreichen und Versorgungsschwierigkeiten haben unsere Truppen erschöpft. Das ermöglichte den Russen, große Teile der 6. Armee in Stalingrad abzuschneiden und zu vernichten, sowie die Ostfront zurückzudrängen.Ihre Unfähigkeit, gegen die Fallschirmjäger zu bestehen, erlaubte den Alliierten, den Rheinübergang auszunützen und mit unverminderter Geschwindigkeit gegen deutsches Kernland vorzustoßen.Ihre Eroberung Moskaus ließ Hoffnung auf eine russische Kapitulation aufkeimen. Unglücklicherweise führten ausgeruhte sibirische Reserven einen Entsatzangriff durch, der unsere erschöpften Truppen aus der Hauptstradt trieb. Obwohl wir die Front stabilisieren konnten, waren weitere Angriffe 1941 undurchführbar.Ihre Eroberung Moskaus ließ Hoffnung auf eine russische Kapitulation aufkeimen. Unglücklicherweise führten ausgeruhte sibirische Reserven einen Entsatzangriff durch, der unsere erschöpften Truppen aus der Hauptstradt trieb. Obwohl wir die Front stabilisieren konnten, waren weitere Angriffe 1942 undurchführbar.Ihre Eroberung Moskaus ließ Hoffnung auf eine russische Kapitulation aufkeimen. Unglücklicherweise führten die Mischung aus schlechtem Wetter und russischer Reserven dazu, dass unsere erschöpften Truppen nicht länger widerstanden. Obwohl wir die Front stabilisieren konnten, ist die Gelegenheit für einen weiteren Vorstoß auf Moskau für immer verspielt.Ihre Führungsqualitäten sind momentan an zwei Orten gefragt. Wählen Sie zwischen der kommenden Sommeroffensive in Russland gegen den Kessel von Kursk und der Verteidigung von Italien gegen die erwartete alliierte Invasion.##An welcher Schlacht möchten Sie teilnehmen?Ihr nächster Befehl lautet, gegen das Industriezentrum Stalingrad vorzugehen. Die Eroberungs Stalingrads wird Russlands Rüstung schwächen und Nachschub über die Wolga unterbinden. Somit müssen Sie Stalingrad und alle anderen Ziele bis spätestens zum 22. November einnehmen. Für die Vorbereitungen eines weiteren Vorstoßes auf Moskau in diesem Jahr müssen Sie die Mission bereits bis Oktober beenden. Unterschätzen Sie nicht die großen Weiten der Steppe mit ihren Versorgungsschwierigkeiten.Ihr nächster Befehl ist die Sicherung des Mittleren Ostens und des Zweistromlands zur Eröffnung einer Südfront in den Kaukasus. Erobern Sie alle Ziele bis spätestens zum 15. November, bevor der Herbstregen unseren Vormarsch im Schlamm erstickt.Ihre Leistung in Polen war hervorragend, Herr General! Sie belagerten und besetzen alle Ziele, bevor die Sowjetunion die Weichsel erreichte. Ihre Streitkräfte wurden an die Westgrenze verlegt, um frankoenglische Aggressionen abzuwehren.Ihre Leistung war hervorragend und brachte dem Reich einen überwältigen Sieg. Meine Erniedrigung von 1918 ist gerächt. Frankreich hat kapituliert und seine Kolonien werden unter deutsches Protektorat gestellt.Ihre Leistung war außerordentlich! Trotz heftiger Widerstände konnten Sie die Verteidigung durchbrechen und den Kessel von Kursk sichern. Dank dieser Meisterleistung steht einem Vormarsch auf Moskau nichts mehr im Wege.Mit Ihrem schnellen Durchbruch in Polen konnte das Oberkommando zusätzliche Resourcen zur Verfügung stellen.Ihre Eroberung Washingtons war eine Meisterleistung. Jedoch brachten die Amerikaner ihre Geheimwaffe, genannt Atombombe, zum Einsatz, und verursachten schwere Verluste unter unseren Expeditionstruppen. Zur Verhinderung weiterer Verluste zogen wir uns aus Amerika zurück und unterzeichneten einen Friedensvertrag. Obwohl das Amerikaabenteuer nicht funktionierte, herrscht Deutschland über ganz Europa, Afrika und den größten Teil Asiens. Dieses überwältigende wirtschaftliche Gewicht erlaubt uns, den Krieg gegen Amerika auf einer anderen Ebene auszufechten. Der Krieg ist nun vorüber, und für Ihren heldenhaften Einsatz werden Sie zum Generalfeldmarschall ernannt.Unsere Truppen wurden in jeder Hinsicht übertroffen, womit die Alliierten ihre Landungsköpfe in der Normandie festigen und erweitern konnten.YpernJugoslawische InfJugoslawienJucharinaYvetotZ-ZerstörerZagorskZakepaeSekia-SumpfbachSchitomirZircZürichSwornikZwickausIG 38(t)MsIG IBsIG IIlgeneral-1.3.1/po/Makefile.in0000664000175000017500000004607412643745056012742 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = po DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = lgeneral pg all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign po/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign po/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-tags distdir dvi dvi-am \ html html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/po/Makefile.am0000664000175000017500000000002612140770461012702 00000000000000SUBDIRS = lgeneral pg lgeneral-1.3.1/po/lgeneral/0000775000175000017500000000000012643745102012523 500000000000000lgeneral-1.3.1/po/lgeneral/lgeneral.pot0000664000175000017500000000000012577511573014757 00000000000000lgeneral-1.3.1/po/lgeneral/de.po0000664000175000017500000004440412643745102013401 00000000000000# translation of de.po to Deutsch # Deutsche Übersetzung von LGeneral. # Copyright (C) 2005 Leo Savernik # # # Leo Savernik , 2005, 2006. msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-01-15 20:58+0100\n" "PO-Revision-Date: 2006-01-15 21:05+GMT\n" "Last-Translator: Leo Savernik \n" "Language-Team: Deutsch \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11\n" #~ msgid "Out of memory\n" #~ msgstr "Kein Speicher\n" #~ msgid "This group has reached it's maximum number of buttons.\n" #~ msgstr "Diese Gruppe hat die Maximalanzahl an Knöpfen erreicht.\n" #~ msgid "Up" #~ msgstr "Aufwärts" #~ msgid "Down" #~ msgstr "Abwärts" #~ msgid "Ok" #~ msgstr "Annehmen" #~ msgid "Cancel" #~ msgstr "Abbrechen" #~ msgid "Switch Control" #~ msgstr "Steuerung ändern" #~ msgid "Select AI Module" #~ msgstr "KI-Modul auswählen" #~ msgid "Fog Of War" #~ msgstr "Sichtbegrenzung" #~ msgid "Unit Supply" #~ msgstr "Nachschub" #~ msgid "Weather Influence" #~ msgstr "Wettereinfluss" #~ msgid "Accept" #~ msgstr "Annehmen" #~ msgid "Undo Turn [u]" #~ msgstr "Zug rückgängig [u]" #~ msgid "Supply Unit [s]" #~ msgstr "Nachschub [s]" #~ msgid "Air Embark" #~ msgstr "Lufttransport beladen" #~ msgid "Merge Unit [j]" #~ msgstr "Einheit zusammenführen [j]" #~ msgid "Split Unit [x+1..9]" #~ msgstr "Einheit abspalten [x+1..9]" #~ msgid "Rename Unit" #~ msgstr "Einheit umbenennen" #~ msgid "Disband Unit" #~ msgstr "Einheit auflösen" #~ msgid "Split Up %d Strength" #~ msgstr "Stärke %d abspalten" #~ msgid "Scroll Up" #~ msgstr "Aufwärts" #~ msgid "Scroll Down" #~ msgstr "Abwärts" #~ msgid "Apply Deployment" #~ msgstr "Aufstellung annehmen" #~ msgid "Cancel Deployment" #~ msgstr "Aufstellung abbrechen" #~ msgid "Switch Air/Ground [t]" #~ msgstr "Luft/Boden umschalten [t]" #~ msgid "Strategic Map [o]" #~ msgstr "Strategische Karte [o]" #~ msgid "Deploy Reinforcements [d]" #~ msgstr "Verstärkung aufstellen [d]" #~ msgid "Scenario Info [i]" #~ msgstr "Szenarieninfo [i]" #~ msgid "Victory Conditions" #~ msgstr "Siegesbedingungen" #~ msgid "End Turn [e]" #~ msgstr "Zug beenden [e]" #~ msgid "Main Menu" #~ msgstr "Hauptmenü" #~ msgid "Save Game" #~ msgstr "Spiel speichern" #~ msgid "Load Game" #~ msgstr "Spiel laden" #~ msgid "Restart Scenario" #~ msgstr "Szenario neu starten" #~ msgid "Load Campaign" #~ msgstr "Feldzug laden" #~ msgid "Load Scenario" #~ msgstr "Szenario laden" #~ msgid "Options" #~ msgstr "Optionen" #~ msgid "Quit Game" #~ msgstr "Spiel beenden" #~ msgid "Load: %s" #~ msgstr "Laden: %s" #~ msgid "Save: %s" #~ msgstr "Speichern: %s" #~ msgid "Hex Grid [g]" #~ msgstr "Hexgitter [g]" #~ msgid "Show CPU Turn" #~ msgstr "Rechnerzug anzeigen" #~ msgid "Show Unit Strength [.]" #~ msgstr "Einheitenstärke anzeigen [.]" #~ msgid "Sound" #~ msgstr "Ton" #~ msgid "Sound Volume Up" #~ msgstr "Ton lauter" #~ msgid "Sound Volume Down" #~ msgstr "Ton leiser" #~ msgid "Music" #~ msgstr "Musik" #~ msgid "Video Mode [v]" #~ msgstr "Videomodus [v]" #~ msgid "640x480" #~ msgstr "640x480" #~ msgid "800x600" #~ msgstr "800x600" #~ msgid "1024x768" #~ msgstr "1024x768" #~ msgid "1280x1024" #~ msgstr "1280x1024" #~ msgid "1600x1200" #~ msgstr "1600x1200" #~ msgid "Fullscreen/Window" #~ msgstr "Vollbild/Fenster" #~ msgid "Apply Videmode" #~ msgstr "Videomodus setzen" #~ msgid "Player Setup" #~ msgstr "Spielereinstellungen" #~ msgid "%i CASUALTIES %i" #~ msgstr "%i VERLUSTE %i" #~ msgid "%i SURPRESSED %i" #~ msgstr "%i UNTERDRÜCKT %i" #~ msgid "%s Movement" #~ msgstr "Bewg: %s" #~ msgid "%s Target" #~ msgstr "Ziel: %s" #~ msgid "Ammo: N.A." #~ msgstr "Muni: n.v." #~ msgid "Ammo: %02i/%02i" #~ msgstr "Muni: %02i/%02i" #~ msgid "Ammo: %02i" #~ msgstr "Ammo: %02i" #~ msgid "Fuel: N.A." #~ msgstr "Sprit: n.v." #~ msgid "Fuel: %2i/%2i" #~ msgstr "Sprit: %2i/%2i" #~ msgid "Fuel: %2i" #~ msgstr "Sprit: %2i" #~ msgid "Spotting: %2i" #~ msgstr "Sicht: %2i" #~ msgid "Movement: %2i" #~ msgstr "Bewegung: %2i" #~ msgid "Initiative: %2i" #~ msgstr "Initiative: %2i" #~ msgid "Range: %2i" #~ msgstr "Reichweite: %2i" #~ msgid "Experience: %3i" #~ msgstr "Erfahrung: %3i" #~ msgid "Entrenchment: %i" #~ msgstr "Verschanzung: %i" #~ msgid "%6s Attack:[%2i]" #~ msgstr "%6sangriff:[%2i]" #~ msgid "%6s Attack: %2i" #~ msgstr "%6sangriff: %2i" #~ msgid "Ground Defense: %2i" #~ msgstr "Bodenabwehr: %2i" #~ msgid "Air Defense: %2i" #~ msgstr "Luftabwehr: %2i" #~ msgid "Close Defense: %2i" #~ msgstr "Nahabwehr: %2i" #~ msgid "Suppression: %2i" #~ msgstr "Unterdrückung: %2i" #~ msgid "Turns Left: %i" #~ msgstr "Züge übrig: %i" #~ msgid "Turns Left: Last Turn" #~ msgstr "Züge übrig: Letzter Zug" #~ msgid "Result: " #~ msgstr "Ergebnis: " #~ msgid "Current Player: %s" #~ msgstr "Aktueller Spieler: %s" #~ msgid "Next Player: %s" #~ msgstr "Nächster Spieler: %s" #~ msgid "Weather: %s" #~ msgstr "Wetter: %s" #~ msgid "n/a" #~ msgstr "n. v." #~ msgid "Forecast: %s" #~ msgstr "Vorhersage: %s" #~ msgid "%i turns remaining" #~ msgstr "%d Züge übrig" #~ msgid "control all victory hexes" #~ msgstr "Alle Zielfelder beherrschen" #~ msgid "control hex %i,%i" #~ msgstr "Hex %i,%i beherrschen" #~ msgid "control at least %i vic hexes" #~ msgstr "Mindestens %i Zielfelder beherrschen" #~ msgid "kill units with tag '%s'" #~ msgstr "Einheiten mit Kennung »%s« vernichten" #~ msgid "save units with tag '%s'" #~ msgstr "Einheiten mit Kennung »%s« retten" #~ msgid "Explicit VicConds (%s)" #~ msgstr "Ausdrückliche Siegesbedingungen (%s)" #~ msgid "every turn" #~ msgstr "jeder Zug" #~ msgid "last turn" #~ msgstr "letzter Zug" #~ msgid "AND %.2s " #~ msgstr "UND %.2s " #~ msgid "AND -- " #~ msgstr "UND -- " #~ msgid "OR %.2s " #~ msgstr "ODER %.2s " #~ msgid "OR -- " #~ msgstr "ODER -- " #~ msgid "else: '%s'" #~ msgstr "sonst: »%s«" #~ msgid "Control: Human" #~ msgstr "Steuerung: Mensch" #~ msgid "Control: CPU" #~ msgstr "Steuerung: Rechner" #~ msgid "AI Module: %s" #~ msgstr "KI-Modul: %s" #~ msgid "Cannot load new glyphs surface: %s\n" #~ msgstr "Kann Oberfläche mit neuen Grafemen nicht laden: %s\n" #~ msgid "Invalid font file: %d, %d\n" #~ msgstr "Ungültige Schriftdatei: %d, %d\n" #~ msgid "font '%s' contains too many glyphs\n" #~ msgstr "Schrift '%s' enthält zu viele Grafeme\n" #~ msgid "could not create font surface: %s\n" #~ msgstr "Konnte Schriftoberfläche nicht erzeugen: %s\n" #~ msgid "ERR: %s: not enough memory\n" #~ msgstr "FEHL: %s: nicht genug Speicher\n" #~ msgid "Requested mode %ix%i, Fullscreen: %i unavailable\n" #~ msgstr "Geforderter Modus %ix%i, Vollbild: %i nicht verfügbar\n" #~ msgid "%s: %d: warning: entry '%s' not found in '%s/%s'\n" #~ msgstr "%s: %d: Warnung: Eintrag '%s' in '%s/%s' nicht gefunden\n" #~ msgid "Campaign entry '%s' not found in campaign '%s'\n" #~ msgstr "Feldzugeintrag »%s« nicht in Feldzug »%s« gefunden\n" #~ msgid "" #~ "%s: can't load as main unit library (which is already loaded): loading as " #~ "'additional' instead\n" #~ msgstr "" #~ "%s: kann nicht als Einheitenhauptbibliothek geladen werden (nämlich " #~ "bereitsgeladen):Lade stattdessen als Zusatz\n" #~ msgid " Parsing '%s'" #~ msgstr " »%s« analysieren" #~ msgid " Loading Main Definitions" #~ msgstr " Hauptdefinitionen laden" #~ msgid "%i target types is the limit!\n" #~ msgstr "%i Zieltypen sind die Obergrenze!\n" #~ msgid " Loading Tactical Icons" #~ msgstr " Taktische Symbole laden" #~ msgid "*** Loading scenario '%s' ***" #~ msgstr "*** Szenario »%s« laden ***" #~ msgid "Loading Scenario Info" #~ msgstr "Szenarieninfo laden" #~ msgid "Loading Nations" #~ msgstr "Nationen laden" #~ msgid "Loading Main Unit Library '%s'" #~ msgstr "Einheitenhauptbibliothek »%s« laden" #~ msgid "Loading Additional Unit Library '%s'" #~ msgstr "Einheitenzusatzbibliothek »%s« laden" #~ msgid "Loading Map '%s'" #~ msgstr "Karte »%s« laden" #~ msgid "Loading Players" #~ msgstr "Spieler laden" #~ msgid "Loading Flags" #~ msgstr "Fahnen laden" #~ msgid "Loading Victory Conditions" #~ msgstr "Siegesbedingungen laden" #~ msgid "No subconditions specified!\n" #~ msgstr "Keine Unterbedingungen angegeben!\n" #~ msgid "Defeat" #~ msgstr "Niederlage" #~ msgid "Loading Units" #~ msgstr "Einheiten laden" #~ msgid "%s: unit entry not found\n" #~ msgstr "%s: Einheiteneintrag nicht gefunden\n" #~ msgid "%s: not a nation\n" #~ msgstr "%s: keine Nation\n" #~ msgid "%s: no player controls this nation\n" #~ msgstr "%s: kein Spieler steuert diese Nation\n" #~ msgid "%s: out of map: ignored\n" #~ msgstr "%s: außerhalb der Karte: ignoriert\n" #~ msgid "%s##%s##%s Turns#%s Players" #~ msgstr "%s##%s##%s Züge#%s Spieler" #~ msgid "warning: %s\n" #~ msgstr "Warnung: %s\n" #~ msgid "" #~ msgstr "" #~ msgid "Unterminated string constant" #~ msgstr "Nichtterminierte Zeichenkettenkonstante" #~ msgid "token exceeds limit" #~ msgstr "Symbol überschreitet Grenze" #~ msgid "Invalid character '%c'" #~ msgstr "Ungültiges Zeichen '%c'" #~ msgid "parse error before '%s'" #~ msgstr "Syntaxfehler vor »%s«" #~ msgid "parse error: use '%c' for assignment or '<' for section" #~ msgstr "Syntaxfehler: '%c' für Zuweisung oder '<' für Abschnitt benützen" #~ msgid "%s: file not found" #~ msgstr "%s: Datei nicht gefunden" #~ msgid "%s: file's too big to fit the compact buffer (%dKB)\n" #~ msgstr "%s: Datei für den Kompaktpuffer zu groß (%dKB)\n" #~ msgid "%s: no subtrees" #~ msgstr "%s: keine Teilbäume" #~ msgid "%s: subtree '%s' not found" #~ msgstr "%s: Teilbaum: »%s« nicht gefunden" #~ msgid "parser_get_entries: %s/%s: no subtrees" #~ msgstr "parser_get_entries: %s/%s: keine Teilbäume" #~ msgid "parser_get_values: %s/%s: no values" #~ msgstr "parser_get_values: %s/%s: keine Werte" #~ msgid "parser_get_value: %s/%s: index %i out of range (%i elements)" #~ msgstr "parser_get_value: %s/%s: Index %i außerhalb (%i Elemente)" #~ msgid "Supply Unit [s] (Rate:%3i%%)" #~ msgstr "Nachschub [s] (Rate:%3i%%)" #~ msgid "Next Player: %s" #~ msgstr "Nächster Spieler: %s" #~ msgid "Deploy your troops" #~ msgstr "Truppenaufstellung" #~ msgid "Remaining Turns: %i" #~ msgstr "Übrige Züge: %d" #~ msgid "Weather: %s" #~ msgstr "Wetter: %s" #~ msgid "Turn: %d" #~ msgstr "Zug: %d" #~ msgid "Last Turn" #~ msgstr "Letzter Zug" #~ msgid "CPU thinks..." #~ msgstr "Rechner überlegt..." #~ msgid "" #~ "( Enable option 'Show Cpu Turn' if you want to see what it is doing. )" #~ msgstr "" #~ "(Option »Rechnerzug anzeigen« einschalten, wenn Sie den Rechner arbeiten " #~ "sehen wollen.)" #~ msgid "Select Drop Zone" #~ msgstr "Absprungzone auswählen" #~ msgid "Load Game '%s'" #~ msgstr "Spiel »%s« laden" #~ msgid "Overwrite saved game?" #~ msgstr "Gespeichertes Spiel überschreiben?" #~ msgid "Apply %ix%i, " #~ msgstr "%dx%d anwenden" #~ msgid "Fullscreen?" #~ msgstr "Vollbild?" #~ msgid "Window?" #~ msgstr "Fenster?" #~ msgid "Do you really want to restart this scenario?" #~ msgstr "Wollen Sie das Szenario wirklich neu starten?" #~ msgid "Do you really want to quit?" #~ msgstr "Wollen Sie wirklich aussteigen?" #~ msgid "Do you really want to end your turn?" #~ msgstr "Wollen Sie wirklich den Zug beenden?" #~ msgid "Abandon the ground transporter?" #~ msgstr "Landtransporter aufgeben?" #~ msgid "Do you really want to disband this unit?" #~ msgstr "Einheit wirklich auflösen?" #~ msgid "End deployment?" #~ msgstr "Aufstellung beenden?" #~ msgid "Game saved to slot '%i' as '%s'.\n" #~ msgstr "Spiel unter Fach »%d« als »%s« gespeichert.\n" #~ msgid "Defensive Fire" #~ msgstr "Feuerunterstützung" #~ msgid "Air-Defense" #~ msgstr "Luftabwehr" #~ msgid "Interceptors" #~ msgstr "Abfangjäger" #~ msgid "Video Mode: %ix%i, Fullscreen: %i not available\n" #~ msgstr "Videomodus: %dx%d, Vollbild: %d nicht verfügbar\n" #~ msgid "'%s' has no move points remaining\n" #~ msgstr "%s: keine Bewegungspunkte übrig\n" #~ msgid "'%s' (%i,%i) can not attack '%s' (%i,%i)\n" #~ msgstr "»%s« (%d,%d) kann »%s« (%d,%d) nicht angreifen\n" #~ msgid "'%s' may not attack unit '%s' (not visible)\n" #~ msgstr "»%s« kann Einheit »%s« nicht angreifen (nicht sichtbar)\n" #~ msgid "%i,%i out of reach for '%s'\n" #~ msgstr "%d,%d nicht erreichbar für »%s«\n" #~ msgid "%i,%i is blocked ('%s' wants to move there)\n" #~ msgstr "%d,%d ist blockiert (»%s« möchte hier her fahren)\n" #~ msgid "There is no way for unit '%s' to move to %i,%i\n" #~ msgstr "Keine Möglichkeit für Einheit »%s«, %d,%d zu erreichen\n" #~ msgid "Out Of The Sun!" #~ msgstr "Aus der Sonne!" #~ msgid "Surprise Contact!" #~ msgstr "Hinterhalt!" #~ msgid "Rugged Defense!" #~ msgstr "Zähe Abwehr!" #~ msgid "Submarine evades!" #~ msgstr "U-Boot weicht aus!" #~ msgid "" #~ "Deadlock! No remaining combatants but supposed to continue fighting? How " #~ "is this supposed to work????\n" #~ msgstr "" #~ "Verklemmung! Keine Kämpfer übrig trotz des Befehls zum Weiterkämpfen? Wie " #~ "soll das gehen????\n" #~ msgid "Attack Broken Up!" #~ msgstr "Angriff abgebrochen!" #~ msgid "Ship is scuttled!" #~ msgstr "Selbstversenkung!" #~ msgid "Surrenders!" #~ msgstr "Kapituliert!" #~ msgid "%s: AI module '%s' invalid. Use built-in AI.\n" #~ msgstr "%s: KI-Modul »%s« ungültig. Verwende eingebaute KI.\n" #~ msgid "January" #~ msgstr "Jänner" #~ msgid "February" #~ msgstr "Februar" #~ msgid "March" #~ msgstr "März" #~ msgid "April" #~ msgstr "April" #~ msgid "May_long" #~ msgstr "Mai" #~ msgid "June" #~ msgstr "Juni" #~ msgid "July" #~ msgstr "Juli" #~ msgid "August" #~ msgstr "August" #~ msgid "September" #~ msgstr "September" #~ msgid "October" #~ msgstr "Oktober" #~ msgid "November" #~ msgstr "November" #~ msgid "December" #~ msgstr "Dezember" #~ msgid "Jan" #~ msgstr "Jan" #~ msgid "Feb" #~ msgstr "Feb" #~ msgid "Mar" #~ msgstr "Mär" #~ msgid "Apr" #~ msgstr "Apr" #~ msgid "May" #~ msgstr "Mai" #~ msgid "Jun" #~ msgstr "Jun" #~ msgid "Jul" #~ msgstr "Jul" #~ msgid "Aug" #~ msgstr "Aug" #~ msgid "Sep" #~ msgstr "Sep" #~ msgid "Oct" #~ msgstr "Okt" #~ msgid "Nov" #~ msgstr "Nov" #~ msgid "Dec" #~ msgstr "Dez" #~ msgid "" #~ "Couldn't find/open config directory '%s'\n" #~ "Attempting to create it... " #~ msgstr "" #~ "Konnte Verzeichnis »%s« nicht finden/öffnen\n" #~ "Versuche es zu erzeugen... " #~ msgid "failed\n" #~ msgstr "fehlgeschlagen\n" #~ msgid "ok\n" #~ msgstr "ok\n" #~ msgid "Cannot access config file '%s' to save settings\n" #~ msgstr "" #~ "Kein Zugriff auf Konfigurationdatei »%s« zum Speichern der Einstellungen\n" #~ msgid "%s cannot be opened\n" #~ msgstr "%s kann nicht geöffnet werden\n" #~ msgid "get_file_list: can't open parent directory '%s'\n" #~ msgstr "get_file_list: kann Elternverzeichnis »%s« nicht öffnen\n" #~ msgid "(C) 2001-2005 Michael Speck" #~ msgstr "©‚ 2001-2005 Michael Speck" #~ msgid "http://lgames.sf.net" #~ msgstr "http://lgames.sf.net" #~ msgid "Syntax: %s [options] [resource-file]\n" #~ msgstr "Syntax: %s [optionen] [resourcendatei]\n" #~ msgid "" #~ "\n" #~ "Options:\n" #~ " --campaign-start=\n" #~ "\t\tInitial state to start campaign with (debug only)\n" #~ " --control=\n" #~ "\t\tentity who controls the current side. is either human,\n" #~ "\t\tor cpu (short: h, or c). Multiple options can be specified.\n" #~ "\t\tIn this case the first option refers to the first side, the\n" #~ "\t\tsecond option to the second side, etc.\n" #~ " --(no-)deploy-turn\n" #~ "\t\tAllow/Disallow deployment of troops before scenario starts.\n" #~ " --notitle\tInhibit title screen\n" #~ " --speed=\tAccelerate animation speed by \n" #~ " --version\tDisplay version information and quit\n" #~ "\n" #~ "\tscenario file relative to scenarios-directory,\n" #~ "\t\tor campaign file relative to campaigns-directory\n" #~ "\t\tunder %s\n" #~ msgstr "" #~ "\n" #~ "Optionen:\n" #~ " --campaign-start=\n" #~ "\t\tAnfangszustand zum Starten des Feldzugs (nur für Fehlersuche)\n" #~ " --control=\n" #~ "\t\tBestimmt Steuerung der aktuellen Seite. ist entweder human\n" #~ "\t\toder cpu (kurz: h, oder c). Mehrere Optionen können angegeben\n" #~ "\t\twerden. In dem Fall korrespondiert die erste Option mit der\n" #~ "\t\tersten Seite, die zweite mit der zweiten Seite usw.\n" #~ " --(no-)deploy-turn\n" #~ "\t\tTruppenaufstellung vor Szenariostart erlauben/unterbinden\n" #~ " --notitle\tTitelbildschirm unterdrücken\n" #~ " --speed=\tAnimationsgeschwindigkeit um Faktor erhöhen\n" #~ " --version\tVersionsinformation anzeigen und beenden\n" #~ "\n" #~ "\tSzenariodatei relativ zum Szenarioverzeichnis\n" #~ "\t\tunter %s\n" #~ msgid "" #~ "LGeneral %s\n" #~ "Copyright 2001-2005 Michael Speck\n" #~ "Published under GNU GPL\n" #~ "---\n" #~ msgstr "" #~ "LGeneral %s\n" #~ "Copyright 2001-2005 Michael Speck\n" #~ "Veröffentlicht unter der GNU GPL\n" #~ "---\n" #~ msgid "Looking up data in: %s\n" #~ msgstr "Daten suchen unter: %s\n" #~ msgid "Compiled without sound and music\n" #~ msgstr "Übersetzt ohne Ton und Musik\n" #~ msgid "Invalid player control: %s\n" #~ msgstr "Ungültige Spielersteuerung: %s\n" #~ msgid "Animation speed up: x%d\n" #~ msgstr "Animationsgeschwindigkeit erhöht: x%d\n" #~ msgid "Error loading scenario %s\n" #~ msgstr "Fehler beim Laden von Szenario %s\n" #~ msgid "LGeneral %s" #~ msgstr "LGeneral %s" #~ msgid "get_coord: no comma found in pair of coordinates '%s'\n" #~ msgstr "get_coord: Beistrich fehlt in Koordinatenpaar »%s«\n" #~ msgid "" #~ "get_coord: warning: y-coordinate is empty (maybe you left a space between " #~ "x and comma?)\n" #~ msgstr "" #~ "get_coord: Warnung: Y-Koordinate ist leer (vielleicht haben Sie ein " #~ "Leerzeichen zwischen x und dem Komma gelassen?)\n" #~ msgid "%s: unknown flag\n" #~ msgstr "%s: Unbekanntes Bit\n" #~ msgid "init_slots: can't open directory '%s' to read saved games\n" #~ msgstr "" #~ "init_slots: Öffnen von Verzeichnis »%s« zum Lesen der Spielstände " #~ "fehlgeschlagen\n" #~ msgid "'%s': file not found\n" #~ msgstr "%s: Datei nicht gefunden\n" #~ msgid "%s: not found\n" #~ msgstr "%s: nicht gefunden\n" #~ msgid "If data seems to be missing, please re-run the converter lgc-pg.\n" #~ msgstr "" #~ "Falls Daten fehlen, lassen Sie bitte den Konverter lgc-pg nochmal " #~ "laufen.\n" lgeneral-1.3.1/po/lgeneral/Makefile.in.in0000664000175000017500000001701612140770461015120 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2005 by Leo Savernik # # This file file be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = $(prefix)/@DATADIRNAME@ localedir = $(datadir)/locale gnulocaledir = $(prefix)/share/locale gettextsrcdir = $(prefix)/share/gettext/po subdir = po/lgeneral INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@ CC = @CC@ GENCAT = @GENCAT@ GMSGFMT = PATH=../src:$$PATH @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = PATH=../src:$$PATH @XGETTEXT@ MSGMERGE = PATH=../src:$$PATH msgmerge MSGCONV = @MSGCONV@ DEFS = @DEFS@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ MSGCONVFLAGS = @MSGCONVFLAGS@ INCLUDES = -I.. -I$(top_srcdir)/intl COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) SOURCES = cat-id-tbl.c POFILES = @POFILES@ GMOFILES = @GMOFILES@ DISTFILES = Makefile.in.in POTFILES.in $(PACKAGE).pot \ stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES) POTFILES = \ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ INSTOBJEXT = @INSTOBJEXT@ .SUFFIXES: .SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat .c.o: $(COMPILE) $< .po.pox: $(MAKE) $(srcdir)/$(PACKAGE).pot $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) $(MSGFMTFLAGS) -o $@ $< .po.gmo: $(GMSGFMT) $(MSGFMTFLAGS) -o $@ $< # file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ # && rm -f $$file && \ # $(GMSGFMT) $(MSGFMTFLAGS) -o $$file $< .po.cat: sed -f $(top_srcdir)/intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && $(GENCAT) $@ $*.msg all: all-@USE_NLS@ all-yes: $(srcdir)/cat-id-tbl.c $(CATALOGS) all-no: collect-translateables: find $(top_srcdir)/src -name "*.c" | sed 's,^$(top_srcdir)/,,' > $(srcdir)/POTFILES.in $(srcdir)/$(PACKAGE).pot: $(POTFILES) $(XGETTEXT) $(XGETTEXTFLAGS) --default-domain=$(PACKAGE) \ --directory=$(top_srcdir) --add-comments \ --keyword=tr --keyword=TR_NOOP \ --files-from=$(srcdir)/POTFILES.in if [ -f "$(PACKAGE).po" ]; then \ rm -f $(srcdir)/$(PACKAGE).pot; \ $(MSGCONV) $(MSGCONVFLAGS) $(PACKAGE).po > $(srcdir)/$(PACKAGE).pot 2> /dev/null; \ rm -f $(PACKAGE).po; \ fi $(srcdir)/cat-id-tbl.c: $(srcdir)/stamp-cat-id; @: $(srcdir)/stamp-cat-id: $(srcdir)/$(PACKAGE).pot rm -f cat-id-tbl.tmp sed -f $(top_builddir)/intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \ | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \ rm cat-id-tbl.tmp; \ else \ echo cat-id-tbl.c changed; \ rm -f $(srcdir)/cat-id-tbl.c; \ mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \ fi cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id install: install-exec install-data install-strip: install install-exec: install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all if test -r "$(MKINSTALLDIRS)"; then \ $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \ else \ $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \ fi @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ case "$$cat" in \ *.gmo) destdir=$(gnulocaledir);; \ *) destdir=$(localedir);; \ esac; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ dir=$$destdir/$$lang/LC_MESSAGES; \ if test -r "$(MKINSTALLDIRS)"; then \ $(MKINSTALLDIRS) $(DESTDIR)$$dir; \ else \ $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$$dir; \ fi; \ if test -r $$cat; then \ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT); \ echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT)"; \ else \ $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT); \ echo "installing $(srcdir)/$$cat as" \ "$(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT)"; \ fi; \ if test -r $$cat.m; then \ $(INSTALL_DATA) $$cat.m $(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT).m; \ echo "installing $$cat.m as $(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ else \ if test -r $(srcdir)/$$cat.m ; then \ $(INSTALL_DATA) $(srcdir)/$$cat.m \ $(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT).m; \ echo "installing $(srcdir)/$$cat as" \ "$(DESTDIR)$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ else \ true; \ fi; \ fi; \ done if test "$(PACKAGE)" = "gettext"; then \ if test -r "$(MKINSTALLDIRS)"; then \ $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \ else \ $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \ fi; \ $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ else \ : ; \ fi # Define this as empty until I found a useful application. installcheck: uninstall: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ done rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in check: all cat-id-tbl.o: $(srcdir)/cat-id-tbl.c $(top_srcdir)/intl/libgettext.h $(COMPILE) $(srcdir)/cat-id-tbl.c dvi info tags TAGS ID: mostlyclean: rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp rm -fr *.o $(GMOFILES) clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f $(GMOFILES) cat-id-tbl.c stamp-cat-id distdir = $(top_srcdir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: update-po $(DISTFILES) dists="$(DISTFILES)"; \ for file in $$dists; do \ ln $(srcdir)/$$file $(distdir) 2> /dev/null \ || cp -p $(srcdir)/$$file $(distdir); \ done update-po: Makefile $(MAKE) $(srcdir)/$(PACKAGE).pot PATH=`pwd`/../src:$$PATH; \ cd $(srcdir); \ catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ mv $$lang.po $$lang.old.po; \ echo "$$lang:"; \ if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \ rm -f $$lang.old.po; \ else \ echo "msgmerge for $$cat failed!"; \ rm -f $$lang.po; \ mv $$lang.old.po $$lang.po; \ fi; \ done POTFILES: POTFILES.in ( posrcprefix='$(top_srcdir)/'; \ rm -f $@-t $@ \ && (sed -e '/^#/d' -e '/^[ ]*$$/d' \ -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \ | sed -e '$$s/\\$$//') > $@-t \ && chmod a-w $@-t \ && mv $@-t $@ ) Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/po/lgeneral/cat-id-tbl.c0000664000175000017500000000000012140771457014521 00000000000000lgeneral-1.3.1/po/lgeneral/POTFILES.in0000664000175000017500000000054012575250206014217 00000000000000src/ai.c src/windows.c src/nation.c src/gui.c src/map.c src/lg-sdl.c src/campaign.c src/unit_lib.c src/scenario.c src/parser.c src/event.c src/engine.c src/date.c src/config.c src/file.c src/strat_map.c src/list.c src/main.c src/misc.c src/ai_tools.c src/action.c src/slot.c src/unit.c src/ai_group.c src/terrain.c src/player.c src/audio.c src/image.c lgeneral-1.3.1/po/lgeneral/en.gmo0000664000175000017500000000061312643745102013551 00000000000000Þ•$,8Q9Project-Id-Version: lgeneral Report-Msgid-Bugs-To: POT-Creation-Date: 2006-01-15 20:58+0100 PO-Revision-Date: 2005-11-27 11:38+CET Last-Translator: Leo Savernik Language-Team: Leo Savernik Language: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8-bit lgeneral-1.3.1/po/lgeneral/en.po0000664000175000017500000000157212643745102013412 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) 2005 Leo Savernik # Leo Savernik , 2005. # # msgid "" msgstr "" "Project-Id-Version: lgeneral\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-01-15 20:58+0100\n" "PO-Revision-Date: 2005-11-27 11:38+CET\n" "Last-Translator: Leo Savernik \n" "Language-Team: Leo Savernik \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #~ msgid "This group has reached it's maximum number of buttons.\n" #~ msgstr "This group has reached its maximum number of buttons.\n" #, fuzzy #~ msgid "%i CASUALTIES %i" #~ msgstr "%i SUPPRESSED %i" #~ msgid "%i SURPRESSED %i" #~ msgstr "%i SUPPRESSED %i" #~ msgid "May_long" #~ msgstr "May" #, fuzzy #~ msgid "Mar" #~ msgstr "May" #~ msgid "May" #~ msgstr "May" lgeneral-1.3.1/po/lgeneral/stamp-cat-id0000664000175000017500000000001212577511573014653 00000000000000timestamp lgeneral-1.3.1/po/lgeneral/de.gmo0000664000175000017500000000062012643745102013535 00000000000000Þ•$,8V9Project-Id-Version: de Report-Msgid-Bugs-To: POT-Creation-Date: 2006-01-15 20:58+0100 PO-Revision-Date: 2006-01-15 21:05+GMT Last-Translator: Leo Savernik Language-Team: Deutsch Language: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.11 lgeneral-1.3.1/NEWS0000664000175000017500000000000012140770461010717 00000000000000lgeneral-1.3.1/tools/0000775000175000017500000000000012643745102011454 500000000000000lgeneral-1.3.1/tools/ltrextract/0000775000175000017500000000000012643745102013650 500000000000000lgeneral-1.3.1/tools/ltrextract/README0000664000175000017500000000024012140770456014446 00000000000000This tools extracts from any lgeneral-related resource file the list of translateable strings and writes them out in a format suitable for xgettext processing. lgeneral-1.3.1/tools/ltrextract/unit_lib.h0000664000175000017500000000260112140770456015547 00000000000000/*************************************************************************** lgeneral.h - description ------------------- begin : Sat Mar 16 2002 copyright : (C) 2001 by Michael Speck (C) 2005 by Leo Savernik email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __UNIT_LIB_H #define __UNIT_LIB_H struct PData; struct Translateables; /** Checks whether this parse-tree resembles a unit_lib description. */ int unit_lib_detect( struct PData *pd ); /** Extracts translateables from unit_lib into translateable-set. */ int unit_lib_extract( struct PData *pd, struct Translateables *xl ); #endif lgeneral-1.3.1/tools/ltrextract/campaign.c0000664000175000017500000000557112140770456015525 00000000000000/*************************************************************************** campaign.c - description ------------------- begin : Fri Apr 5 2002 copyright : (C) 2001 by Michael Speck (C) 2005 by Leo Savernik email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "campaign.h" #include "list.h" #include "parser.h" #include "util.h" static void camp_add_suitable_translateable(struct Translateables *xl, PData *pd) { /* ignore references (starting with '@') */ if (!pd->values || !pd->values->count || ((const char *)list_first(pd->values))[0] == '@') return; translateables_add_pdata(xl, pd); } int camp_detect( struct PData *pd ) { List *entries; if ( !parser_get_entries( pd, "scenarios", &entries ) ) return 0; return 1; } int camp_extract( struct PData *pd, struct Translateables *xl ) { PData *sub, *subsub; List *entries; /* name, desc, authors */ if ( !parser_get_pdata( pd, "name", &sub ) ) goto parser_failure; translateables_add_pdata(xl, sub); if ( !parser_get_pdata( pd, "desc", &sub ) ) goto parser_failure; translateables_add_pdata(xl, sub); if ( !parser_get_pdata( pd, "authors", &sub ) ) goto parser_failure; translateables_add_pdata(xl, sub); /* entries */ if ( !parser_get_entries( pd, "scenarios", &entries ) ) goto parser_failure; list_reset( entries ); while ( ( sub = list_next( entries ) ) ) { List *next_entries; if ( parser_get_pdata( sub, "title", &subsub ) ) camp_add_suitable_translateable(xl, subsub); if ( !parser_get_pdata( sub, "briefing", &subsub ) ) goto parser_failure; camp_add_suitable_translateable(xl, subsub); if ( parser_get_entries( sub, "debriefings", &next_entries ) || parser_get_entries( sub, "options", &next_entries ) ) { list_reset( next_entries ); while ( ( subsub = list_next( next_entries ) ) ) { camp_add_suitable_translateable(xl, subsub); } } } return 1; parser_failure: fprintf( stderr, "%s\n", parser_get_error() ); return 0; } lgeneral-1.3.1/tools/ltrextract/util.h0000664000175000017500000001021012140770456014712 00000000000000/* Data-structures for extraction. Copyright (C) 2005 Leo Savernik All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef LTREXTRACT_UTIL_H #define LTREXTRACT_UTIL_H struct Translateables; struct TranslateablesIterator; struct PData; /** Creates a new set of translateables */ struct Translateables *translateables_create(void); /** Deletes set of translateables */ void translateables_delete(struct Translateables *); /** * Returns the comment if the given translateable already is contained. * @param xl set of translateables * @param key translateable to look up * @param len if nonzero, will be written to the length of the returned * string (without trailing null). Will not be initialised if key not found. * * Note: If no comment has ever been added, the function will return the * empty string if contained. If and only if the translateable is not * contained, 0 is returned. */ const char *translateables_get(struct Translateables *xl, const char *key, unsigned *len); /** * Adds a translateable to the set of translateables. * * @param xl set of translateables * @param key translateable string which will serve as a key for gettext * @param comment any comment describing \c key. Will be appended in verbatim * if \c key already exists. May be 0 for no comment. */ void translateables_add(struct Translateables *xl, const char *key, const char *comment); /** * Adds a translateable from the given pdata-value. * * This is a convenience function. If the translateable is not yet contained, * it is added. Context information is added to the translateable * as a C-comment. */ void translateables_add_pdata(struct Translateables *xl, struct PData *pd); /** * Sets the domain for all translateables. * * Only resources which belong to this domain are considered for extraction. */ void translateables_set_domain(struct Translateables *xl, const char *domain); /** * Returns the domain for all translateables. */ const char *translateables_get_domain(struct Translateables *xl); /** * Returns an iterator onto the given translateables set. */ struct TranslateablesIterator *translateables_iterator(struct Translateables *xl); /** * Returns the current key. */ const char *translateables_iterator_key(struct TranslateablesIterator *it); /** * Returns the current comment. */ const char *translateables_iterator_comment(struct TranslateablesIterator *it); /** * Advances to the next entry. Returns 0 if end of set reached. */ int translateables_iterator_advance(struct TranslateablesIterator *it); /** * Frees the iterator. */ void translateables_iterator_delete(struct TranslateablesIterator *it); /** * Returns whether the resource matches the translatables' domain */ int resource_matches_domain(struct PData *pd, struct Translateables *xl); #endif /*LTREXTRACT_UTIL_H*/ /* kate: tab-indents on; space-indent on; replace-tabs off; indent-width 2; dynamic-word-wrap off; inden(t)-mode cstyle */ lgeneral-1.3.1/tools/ltrextract/scenario.c0000664000175000017500000000757712140770456015561 00000000000000/*************************************************************************** scenario.c - description ------------------- begin : Fri Jan 19 2001 copyright : (C) 2001 by Michael Speck (C) 2005 by Leo Savernik email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "scenario.h" #include "list.h" #include "parser.h" #include "map.h" #include "unit_lib.h" #include "util.h" #include int scen_detect( struct PData *pd ) { char *dummy; List *entries; if ( !parser_get_value( pd, "authors", &dummy, 0 ) ) return 0; if ( !parser_get_value( pd, "date", &dummy, 0 ) ) return 0; if ( !parser_get_value( pd, "turns", &dummy, 0 ) ) return 0; if ( !parser_get_value( pd, "turns_per_day", &dummy, 0 ) ) return 0; if ( !parser_get_value( pd, "days_per_turn", &dummy, 0 ) ) return 0; if ( !parser_get_entries( pd, "players", &entries ) ) return 0; return 1; } int scen_extract( struct PData *pd, struct Translateables *xl ) { PData *sub, *subsub; PData *pd_vcond; List *entries; /* get scenario info */ if ( !parser_get_pdata( pd, "name", &sub ) ) goto parser_failure; translateables_add_pdata(xl, sub); if ( !parser_get_pdata( pd, "desc", &sub ) ) goto parser_failure; translateables_add_pdata(xl, sub); if ( !parser_get_pdata( pd, "authors", &sub ) ) goto parser_failure; translateables_add_pdata(xl, sub); /* nations */ /* unit libs */ if ( !parser_get_pdata( pd, "unit_db", &sub ) ) { unit_lib_extract(pd, xl); } /* map and weather */ if ( !parser_get_pdata( pd, "map", &sub ) ) { map_extract(pd, xl); } /* players */ if ( !parser_get_entries( pd, "players", &entries ) ) goto parser_failure; list_reset( entries ); while ( ( sub = list_next( entries ) ) ) { /* create player */ if ( !parser_get_pdata( sub, "name", &subsub ) ) goto parser_failure; translateables_add_pdata(xl, subsub); } /* set alliances */ /* flags */ /* victory conditions */ /* check type */ if ( !parser_get_entries( pd, "result", &entries ) ) goto parser_failure; /* reset vic conds may not be done in scen_delete() as this is called before the check */ /* count conditions */ /* create conditions */ list_reset( entries ); while ( ( pd_vcond = list_next( entries ) ) ) { if ( strcmp( pd_vcond->name, "cond" ) == 0 ) { if ( parser_get_pdata( pd_vcond, "message", &subsub ) ) translateables_add_pdata(xl, subsub); /* and linkage */ /* or linkage */ /* no sub conditions at all? */ /* next condition */ } } /* else condition (used if no other condition is fullfilled and scenario ends) */ translateables_add(xl, "Defeat", ""); if ( parser_get_pdata( pd, "result/else", &pd_vcond ) ) { if ( parser_get_pdata( pd_vcond, "message", &subsub ) ) translateables_add_pdata(xl, subsub); } /* units */ /* load deployment hexes */ return 1; parser_failure: fprintf( stderr, "%s\n", parser_get_error() ); return 0; } lgeneral-1.3.1/tools/ltrextract/ltrextract.c0000664000175000017500000002221112140770456016130 00000000000000/* A command line tool for extracting translations from lgeneral-resources. Copyright (C) 2005 Leo Savernik All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #define _GNU_SOURCE #include #include "list.h" #include "parser.h" // #include "misc.h" #include "campaign.h" #include "map.h" #include "nation.h" #include "scenario.h" #include "terrain.h" #include "unit_lib.h" #include "util.h" #include "util/localize.h" #include #include #include #include #include /* FIXME: duplicated here a second time -> consolidate! */ #ifdef __GNUC__ # define NORETURN __attribute__ ((noreturn)) # define PRINTF_STYLE(fmtidx, firstoptidx) __attribute__ ((format(printf,fmtidx,firstoptidx))) #else # define NORETURN # define PRINTF_STYLE(x,y) #endif #define LTREXTRACT_MAJOR 0 #define LTREXTRACT_MINOR 1 #define LTREXTRACT_PATCHLVL 0 typedef int Extractor(struct PData *, struct Translateables *); typedef int Detector(struct PData *); /** * Structure for registering handlers. * * They will be detected in the order they're registered here. */ static struct ResourceHandler { const char *name; Extractor *extract; Detector *detect; } resource_handlers[] = { { TR_NOOP("scenario"), scen_extract, scen_detect }, { TR_NOOP("campaign"), camp_extract, camp_detect }, { TR_NOOP("map"), map_extract, map_detect }, { TR_NOOP("nation"), nation_extract, nation_detect }, { TR_NOOP("terrain"), terrain_extract, terrain_detect }, { TR_NOOP("unit-library"), unit_lib_extract, unit_lib_detect }, }; enum Options { OPT_VERSION = 256 }; static void abortf(const char *fmt, ...) NORETURN PRINTF_STYLE(1,2); static void verbosef(int lvl, const char *fmt, ...) PRINTF_STYLE(2,3); static void syntax(int argc, char **argv); static const char *domain; static int verbosity; static int show_help; static const char *output_file; static char **input_files; static int input_file_count; static struct Translateables *xl; static struct option long_options[] = { {"domain", 1, 0, 'd'}, {"help", 0, &show_help, 1}, {"output", 1, 0, 'o'}, {"verbose", 0, 0, 'v'}, {"version", 0, 0, OPT_VERSION}, {0, 0, 0, 0} }; /* aborts with the given error message and exit code 1 */ static void abortf(const char *fmt, ...) { va_list ap; va_start(ap, fmt); vfprintf(stderr, fmt, ap); exit(1); } /* prints a message if 'level' is at least equal to the current verbosity level */ static void verbosef(int level, const char *fmt, ...) { va_list ap; if (level > verbosity) return; va_start(ap, fmt); vfprintf(stderr, fmt, ap); } /* determines the basename */ static const char *get_basename(const char *filename) { const char *retval = strrchr(filename, '/'); return retval ? retval + 1 : filename; } /* determines the length of the given filename without extension */ static unsigned get_basename_without_extension_len(const char *basename) { const char *retval = strchr(basename, '.'); return retval ? retval - basename : strlen(basename); } /* handle the command line options */ static void process_cmdline(int argc, char **argv) { for (;;) { int result = getopt_long(argc, argv, "d:o:v", long_options, 0); if (result == -1) break; switch (result) { case 'd': domain = optarg; break; case 'o': output_file = optarg; break; case 'v': verbosity++; break; case OPT_VERSION: printf("%d.%d.%d\n", LTREXTRACT_MAJOR, LTREXTRACT_MINOR, LTREXTRACT_PATCHLVL); exit(0); } } if (show_help) { syntax(argc, argv); exit(1); } if (optind >= argc) abortf(tr("Input file expected\n")); input_files = argv + optind; input_file_count = argc - optind; } /** initialises tool */ static void init_tool(int argc, char **argv) { xl = translateables_create(); if (domain) translateables_set_domain(xl, domain); } static void syntax(int argc, char **argv) { printf(tr("Translation extractor for LGeneral resource-files.\n" "\n" "Syntax: %s [options] [files]\n"), "ltrextract"); printf(tr("\nOptions:\n" "-d, --domain=\n" "\t\tExtract only translations for files matching \n" "-o, --output=\n" "\t\tWrite changes to instead of the standard output.\n" "-v, --verbose\tIncrease verbosity.\n" " --version\tDisplay version information and exit.\n" )); printf(tr("\nIf no domain is set, the domain will be read from the first input file\n" "If this file has no domain entry, the domain name will be derived from\n" "the filename\n" )); } static void print_prolog(FILE *out) { fprintf(out, "/* Automatically extracted translations for domain '%s'. DO NOT EDIT. */\n", translateables_get_domain(xl)); fprintf(out, "int main(int argc, int argv) {\n" "auto const char *translations[] = {\n"); } static void print_epilog(FILE *out) { fprintf(out, "};\n" "}\n" ); } static void print_output_file(const char *output_file) { FILE *output; if (output_file) { output = fopen(output_file, "w"); if (!output) abortf(tr("Could not create output file %s\n"), output_file); } else output = stdout; verbosef(1, tr("Writing output to %s\n"), output_file); print_prolog(output); { struct TranslateablesIterator *it = translateables_iterator(xl); for (; translateables_iterator_advance(it); ) { fprintf(output, "/*%s */\n", translateables_iterator_comment(it)); fprintf(output, "tr(\"%s\"),\n", translateables_iterator_key(it)); } translateables_iterator_delete(it); } print_epilog(output); } /** sets translation domain to \c domain if not already set */ static void imply_domain(const char *domain) { if (!translateables_get_domain(xl)) { verbosef(2, tr("Filtering by implied domain '%s'\n"), domain); translateables_set_domain(xl, domain); } } static void process_input(const char *filename) { PData *pd; char *domain; Extractor *extract = 0; unsigned i; verbosef(1, tr("Processing %s...\n"), filename); pd = parser_read_file("tree", filename); if (!pd) abortf("%s\n", parser_get_error()); /* autodetect file-type */ for (i = 0; i < sizeof resource_handlers/sizeof resource_handlers[0]; i++) { if (resource_handlers[i].detect(pd)) { verbosef(2, tr("%s-resource detected\n"), resource_handlers[i].name); extract = resource_handlers[i].extract; break; } } if (!extract) abortf(tr("Unsupported/invalid lgeneral-resource: %s\n"), filename); /* insert domain if none given */ if (!parser_get_value(pd, "domain", &domain, 0)) { PData *pdom; char *buffer; const char *basename = get_basename(filename); unsigned raw_basename_len = get_basename_without_extension_len(basename); buffer = alloca(raw_basename_len + 1); memcpy(buffer, basename, raw_basename_len); buffer[raw_basename_len] = 0; /* append raw basename as domain */ pdom = parser_insert_new_pdata(pd, "domain", list_create( LIST_AUTO_DELETE, LIST_NO_CALLBACK )); list_add(pdom->values, strdup(buffer)); verbosef(2, tr("No domain specified. Implying '%s'.\n"), buffer); /* make it the criteria if no domain is yet set */ imply_domain(buffer); } else imply_domain(domain); if (!resource_matches_domain(pd, xl)) fprintf(stderr, tr("*** Warning: '%s' does not match domain '%s' -> ignored\n"), filename, translateables_get_domain(xl)); if (!extract(pd, xl)) fprintf(stderr, tr("*** Warning: Extraction from %s may be incomplete\n"), filename); parser_free(&pd); } static void process_files(const char **file_list, int file_count) { int i; for (i = 0; i < file_count; i++) { process_input(file_list[i]); } } int main(int argc, char **argv) { process_cmdline(argc, argv); init_tool(argc, argv); process_files((const char **)input_files, input_file_count); print_output_file(output_file); return 0; } /* kate: tab-indents on; space-indent on; replace-tabs off; indent-width 2; dynamic-word-wrap off; inden(t)-mode cstyle */ lgeneral-1.3.1/tools/ltrextract/terrain.c0000664000175000017500000000501712140770456015405 00000000000000/*************************************************************************** terrain.c - description ------------------- begin : Wed Mar 17 2002 copyright : (C) 2001 by Michael Speck (C) 2005 by Leo Savernik email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "terrain.h" #include "list.h" #include "parser.h" #include "util.h" int terrain_detect( struct PData *pd ) { int dummy; if ( !parser_get_int( pd, "hex_width", &dummy ) ) return 0; if ( !parser_get_int( pd, "hex_height", &dummy ) ) return 0; if ( !parser_get_int( pd, "hex_x_offset", &dummy ) ) return 0; if ( !parser_get_int( pd, "hex_y_offset", &dummy ) ) return 0; return 1; } int terrain_extract( struct PData *pd, struct Translateables *xl ) { PData *sub, *subsub; List *entries; /* get weather */ if ( !parser_get_entries( pd, "weather", &entries ) ) goto parser_failure; list_reset( entries ); while ( ( sub = list_next( entries ) ) ) { if ( parser_get_pdata( sub, "name", &subsub ) ) { translateables_add_pdata(xl, subsub); } } /* terrain icons */ /* terrain sounds */ /* terrain types */ if ( !parser_get_entries( pd, "terrain", &entries ) ) goto parser_failure; list_reset( entries ); while ( ( sub = list_next( entries ) ) ) { /* id */ /* name */ if ( parser_get_pdata( sub, "name", &subsub ) ) { translateables_add_pdata(xl, subsub); } /* fog image */ /* spot cost */ /* entrenchment */ /* initiative modification */ /* flags */ /* next terrain */ /* LOG */ } /* LOG */ return 1; parser_failure: fprintf( stderr, "%s: %s\n", __FUNCTION__, parser_get_error() ); return 0; } lgeneral-1.3.1/tools/ltrextract/map.h0000664000175000017500000000253612140770456014526 00000000000000/*************************************************************************** map.h - description ------------------- begin : Sat Jan 20 2001 copyright : (C) 2001 by Michael Speck (C) 2005 by Leo Savernik email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __MAP_H #define __MAP_H struct PData; struct Translateables; /** Checks whether this parse-tree resembles a map description. */ int map_detect( struct PData *pd ); /** Extracts translateables from map into translateable-set. */ int map_extract( struct PData *pd, struct Translateables *xl ); #endif lgeneral-1.3.1/tools/ltrextract/Makefile.in0000664000175000017500000005740412643745057015660 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = ltrextract$(EXEEXT) subdir = tools/ltrextract DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs $(top_srcdir)/depcomp README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_ltrextract_OBJECTS = ltrextract.$(OBJEXT) util.$(OBJEXT) \ terrain.$(OBJEXT) map.$(OBJEXT) nation.$(OBJEXT) \ unit_lib.$(OBJEXT) scenario.$(OBJEXT) campaign.$(OBJEXT) \ parser.$(OBJEXT) list.$(OBJEXT) ltrextract_OBJECTS = $(am_ltrextract_OBJECTS) am__DEPENDENCIES_1 = ltrextract_DEPENDENCIES = $(top_builddir)/util/libutil.a \ $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(ltrextract_SOURCES) DIST_SOURCES = $(ltrextract_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ LGENERAL_PATH = $(top_srcdir)/src INTL_PATH = $(top_srcdir)/intl AM_CFLAGS = -DLTREXTRACT -I$(LGENERAL_PATH) -I$(top_srcdir) -I$(top_srcdir)/util $(INTLINCLUDES) ltrextract_LDADD = $(top_builddir)/util/libutil.a $(INTLLIBS) ltrextract_SOURCES = ltrextract.c util.c util.h \ terrain.c terrain.h map.c map.h nation.c nation.h \ unit_lib.c unit_lib.h scenario.c scenario.h campaign.c campaign.h \ $(LGENERAL_PATH)/parser.c \ $(LGENERAL_PATH)/list.c all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tools/ltrextract/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign tools/ltrextract/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) ltrextract$(EXEEXT): $(ltrextract_OBJECTS) $(ltrextract_DEPENDENCIES) $(EXTRA_ltrextract_DEPENDENCIES) @rm -f ltrextract$(EXEEXT) $(AM_V_CCLD)$(LINK) $(ltrextract_OBJECTS) $(ltrextract_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/campaign.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ltrextract.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/map.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nation.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parser.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scenario.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/terrain.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unit_lib.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` parser.o: $(LGENERAL_PATH)/parser.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT parser.o -MD -MP -MF $(DEPDIR)/parser.Tpo -c -o parser.o `test -f '$(LGENERAL_PATH)/parser.c' || echo '$(srcdir)/'`$(LGENERAL_PATH)/parser.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/parser.Tpo $(DEPDIR)/parser.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(LGENERAL_PATH)/parser.c' object='parser.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o parser.o `test -f '$(LGENERAL_PATH)/parser.c' || echo '$(srcdir)/'`$(LGENERAL_PATH)/parser.c parser.obj: $(LGENERAL_PATH)/parser.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT parser.obj -MD -MP -MF $(DEPDIR)/parser.Tpo -c -o parser.obj `if test -f '$(LGENERAL_PATH)/parser.c'; then $(CYGPATH_W) '$(LGENERAL_PATH)/parser.c'; else $(CYGPATH_W) '$(srcdir)/$(LGENERAL_PATH)/parser.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/parser.Tpo $(DEPDIR)/parser.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(LGENERAL_PATH)/parser.c' object='parser.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o parser.obj `if test -f '$(LGENERAL_PATH)/parser.c'; then $(CYGPATH_W) '$(LGENERAL_PATH)/parser.c'; else $(CYGPATH_W) '$(srcdir)/$(LGENERAL_PATH)/parser.c'; fi` list.o: $(LGENERAL_PATH)/list.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list.o -MD -MP -MF $(DEPDIR)/list.Tpo -c -o list.o `test -f '$(LGENERAL_PATH)/list.c' || echo '$(srcdir)/'`$(LGENERAL_PATH)/list.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/list.Tpo $(DEPDIR)/list.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(LGENERAL_PATH)/list.c' object='list.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list.o `test -f '$(LGENERAL_PATH)/list.c' || echo '$(srcdir)/'`$(LGENERAL_PATH)/list.c list.obj: $(LGENERAL_PATH)/list.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT list.obj -MD -MP -MF $(DEPDIR)/list.Tpo -c -o list.obj `if test -f '$(LGENERAL_PATH)/list.c'; then $(CYGPATH_W) '$(LGENERAL_PATH)/list.c'; else $(CYGPATH_W) '$(srcdir)/$(LGENERAL_PATH)/list.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/list.Tpo $(DEPDIR)/list.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$(LGENERAL_PATH)/list.c' object='list.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o list.obj `if test -f '$(LGENERAL_PATH)/list.c'; then $(CYGPATH_W) '$(LGENERAL_PATH)/list.c'; else $(CYGPATH_W) '$(srcdir)/$(LGENERAL_PATH)/list.c'; fi` ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic cscopelist-am ctags ctags-am \ distclean distclean-compile distclean-generic distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-binPROGRAMS install-data install-data-am \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/tools/ltrextract/scenario.h0000664000175000017500000000255312140770456015553 00000000000000/*************************************************************************** scenario.h - description ------------------- begin : Fri Jan 19 2001 copyright : (C) 2001 by Michael Speck (C) 2005 by Leo Savernik email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __SCENARIO_H #define __SCENARIO_H struct PData; struct Translateables; /** Checks whether this parse-tree resembles a scenario. */ int scen_detect( struct PData *pd ); /** Extracts translateables from a scenario into translateable-set. */ int scen_extract( struct PData *, struct Translateables * ); #endif lgeneral-1.3.1/tools/ltrextract/terrain.h0000664000175000017500000000257212140770456015415 00000000000000/*************************************************************************** terrain.h - description ------------------- begin : Wed Mar 17 2002 copyright : (C) 2001 by Michael Speck (C) 2005 by Leo Savernik email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __TERRAIN_H #define __TERRAIN_H struct PData; struct Translateables; /** Checks whether this parse-tree resembles a terrain description. */ int terrain_detect( struct PData *pd ); /** Extracts translateables from terrain into translateable-set. */ int terrain_extract( struct PData *pd, struct Translateables *xl ); #endif lgeneral-1.3.1/tools/ltrextract/Makefile.am0000664000175000017500000000073712140770456015635 00000000000000LGENERAL_PATH = $(top_srcdir)/src INTL_PATH = $(top_srcdir)/intl bin_PROGRAMS = ltrextract AM_CFLAGS = -DLTREXTRACT -I$(LGENERAL_PATH) -I$(top_srcdir) -I$(top_srcdir)/util $(INTLINCLUDES) ltrextract_LDADD = $(top_builddir)/util/libutil.a $(INTLLIBS) ltrextract_SOURCES = ltrextract.c util.c util.h \ terrain.c terrain.h map.c map.h nation.c nation.h \ unit_lib.c unit_lib.h scenario.c scenario.h campaign.c campaign.h \ $(LGENERAL_PATH)/parser.c \ $(LGENERAL_PATH)/list.c lgeneral-1.3.1/tools/ltrextract/util.c0000664000175000017500000001405212140770456014715 00000000000000/* Data-structures for extraction. Copyright (C) 2005 Leo Savernik All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "util.h" #include "intl/hash-string.h" #include "util/hashtable.h" #include "util/hashtable_itr.h" #include "list.h" #include "parser.h" #include #include /* === Translation Stuff ============================================= */ struct Translateables { struct hashtable *ht; char *domain; }; struct Comment { char *s; /* string */ unsigned len; /* length of string (w/o trailing 0) */ int full:1; /* 1 if no more comment may be added */ }; static void comment_delete(void *cmt) { struct Comment * const comment = cmt; if (!comment) return; free(comment->s); free(comment); } /** * Checks whether the given string is already contained at * the end of the comment. */ static int comment_ends_with(struct Comment *cmt, const char *s, unsigned len) { if (cmt->len < len) return 0; return memcmp(cmt->s + cmt->len - len, s, len) == 0; } static void comment_add(struct Comment *cmt, const char *s, unsigned len) { if (cmt->full) return; /* FIXME: inefficient */ cmt->s = realloc(cmt->s, cmt->len + len + 1); memcpy(cmt->s + cmt->len, s, len + 1); cmt->len += len; } struct Translateables *translateables_create(void) { struct Translateables *xl = malloc(sizeof(struct Translateables)); xl->ht = create_hashtable(16384, (unsigned int (*) (void*))hash_string, (int (*)(void *, void *))strcmp, comment_delete); xl->domain = 0; /* heeeheee! will hideously crash on strcmp */ return xl; } void translateables_delete(struct Translateables *xl) { if (xl) { hashtable_destroy(xl->ht, 1); free(xl->domain); free(xl); } } void translateables_set_domain(struct Translateables *xl, const char *domain) { xl->domain = strdup(domain); } const char *translateables_get_domain(struct Translateables *xl) { return xl->domain; } const char *translateables_get(struct Translateables *xl, const char *key, unsigned *len) { struct Comment *cmt = hashtable_search(xl->ht, (void *)key); if (!cmt) return 0; if (len) *len = cmt->len; return cmt->s; } void translateables_add(struct Translateables *xl, const char *key, const char *comment) { unsigned len = strlen(comment); struct Comment *cmt = hashtable_search(xl->ht, (void *)key); /* if already contained, add comment to old comment */ if (cmt) { comment_add(cmt, comment, len); return; } /* otherwise, create new entry */ cmt = calloc(1, sizeof(struct Comment)); cmt->len = len; cmt->s = strdup(comment); hashtable_insert(xl->ht, strdup(key), cmt); } struct TranslateablesIterator *translateables_iterator(struct Translateables *xl) { return (struct TranslateablesIterator *)hashtable_iterator(xl->ht); } const char *translateables_iterator_key(struct TranslateablesIterator *it) { return hashtable_iterator_key((struct hashtable_itr *)it); } const char *translateables_iterator_comment(struct TranslateablesIterator *it) { return ((struct Comment *)hashtable_iterator_value((struct hashtable_itr *)it))->s; } int translateables_iterator_advance(struct TranslateablesIterator *it) { return hashtable_iterator_advance((struct hashtable_itr *)it); } void translateables_iterator_delete(struct TranslateablesIterator *it) { free(it); } void translateables_add_pdata(struct Translateables *xl, struct PData *pd) { const int comment_limit = 100; char context[1024]; unsigned context_len; const char *tr_str; /* gather context information */ snprintf(context, sizeof context, " %s:%d", parser_get_filename(pd), parser_get_linenumber(pd)); context_len = strlen(context); if (!pd->values) return; list_reset(pd->values); for (; (tr_str = list_next(pd->values)); ) { struct Comment *cmt; /* don't translate empty strings */ if (!*tr_str) continue; cmt = hashtable_search(xl->ht, (void *)tr_str); /* If not yet contained, insert new one */ if (!cmt) { cmt = calloc(1, sizeof(struct Comment)); hashtable_insert(xl->ht, strdup(tr_str), cmt); } /* Only add comment if not yet inserted */ if (!comment_ends_with(cmt, context, context_len)) { comment_add(cmt, context, context_len); if (cmt->len + context_len >= comment_limit) { static const char more[] = " ..."; comment_add(cmt, more, sizeof(more) - 1); cmt->full = 1; } } } } /* === End Translation Stuff ========================================= */ int resource_matches_domain(struct PData *pd, struct Translateables *xl) { char *str; if (!parser_get_value(pd, "domain", &str, 0)) return 0; return strcmp(translateables_get_domain(xl), str) == 0; } /* kate: tab-indents on; space-indent on; replace-tabs off; indent-width 2; dynamic-word-wrap off; inden(t)-mode cstyle */ lgeneral-1.3.1/tools/ltrextract/map.c0000664000175000017500000000353712140770456014523 00000000000000/*************************************************************************** map.c - description ------------------- begin : Mon Jan 22 2001 copyright : (C) 2001 by Michael Speck (C) 2005 by Leo Savernik email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "map.h" #include "list.h" #include "parser.h" #include "util.h" int map_detect( struct PData *pd ) { int dummy; char *str; if ( !parser_get_int( pd, "width", &dummy ) ) return 0; if ( !parser_get_int( pd, "height", &dummy ) ) return 0; if ( !parser_get_value( pd, "terrain_db", &str, 0 ) ) return 0; if ( !parser_get_value( pd, "tiles", &str, 0 ) ) return 0; return 1; } int map_extract( struct PData *pd, struct Translateables *xl ) { PData *sub; /* map size */ /* load terrains */ /* allocate map memory */ /* map itself */ /* map names */ if ( parser_get_pdata( pd, "names", &sub ) ) { translateables_add_pdata(xl, sub); } return 1; #ifdef __NOTUSED parser_failure: fprintf( stderr, "%s\n", parser_get_error() ); return 0; #endif } lgeneral-1.3.1/tools/ltrextract/unit_lib.c0000664000175000017500000000737312140770456015555 00000000000000/*************************************************************************** unit_lib.c - description ------------------- begin : Sat Mar 16 2002 copyright : (C) 2001 by Michael Speck (C) 2005 by Leo Savernik email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "unit_lib.h" #include "list.h" #include "parser.h" #include "util.h" int unit_lib_detect( struct PData *pd ) { List *entries; if ( !parser_get_entries( pd, "unit_lib", &entries ) ) return 0; return 1; } int unit_lib_extract( struct PData *pd, struct Translateables *xl ) { List *entries; PData *sub, *subsub; /* if main read target types & co */ /* target types */ if ( parser_get_entries( pd, "target_types", &entries ) ) { list_reset( entries ); while ( ( sub = list_next( entries ) ) ) { if ( !parser_get_pdata( sub, "name", &subsub ) ) goto parser_failure; translateables_add_pdata(xl, subsub); } } /* movement types */ if ( parser_get_entries( pd, "move_types", &entries ) ) { list_reset( entries ); while ( ( sub = list_next( entries ) ) ) { if ( !parser_get_pdata( sub, "name", &subsub ) ) goto parser_failure; translateables_add_pdata(xl, subsub); } } /* unit classes */ if ( parser_get_entries( pd, "unit_classes", &entries ) ) { list_reset( entries ); while ( ( sub = list_next( entries ) ) ) { if ( !parser_get_pdata( sub, "name", &subsub ) ) goto parser_failure; translateables_add_pdata(xl, subsub); } } /* unit map tile icons */ /* icons */ /* unit lib entries */ if ( !parser_get_entries( pd, "unit_lib", &entries ) ) goto parser_failure; list_reset( entries ); while ( ( sub = list_next( entries ) ) ) { /* read unit entry */ /* identification */ /* name */ if ( !parser_get_pdata( sub, "name", &subsub ) ) goto parser_failure; translateables_add_pdata(xl, subsub); /* class id */ /* target type id */ /* initiative */ /* spotting */ /* movement */ /* move type id */ /* fuel */ /* range */ /* ammo */ /* attack count */ /* attack values */ /* ground defense */ /* air defense */ /* close defense */ /* flags */ /* set the entrenchment rate */ /* time period of usage */ /* icon */ /* icon id */ /* icon_type */ /* get position and size in icons surface */ /* picture is copied from unit_pics first * if picture_type is not ALL_DIRS, picture is a single picture looking to the right; * add a flipped picture looking to the left */ /* read sounds -- well as there are none so far ... */ /* add unit to database */ /* absolute evaluation */ } return 1; parser_failure: fprintf( stderr, "%s\n", parser_get_error() ); return 0; } lgeneral-1.3.1/tools/ltrextract/nation.c0000664000175000017500000000364512140770456015236 00000000000000/*************************************************************************** nation.c - description ------------------- begin : Wed Jan 24 2001 copyright : (C) 2001 by Michael Speck (C) 2005 by Leo Savernik email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #include "map.h" #include "list.h" #include "parser.h" #include "util.h" int nation_detect( struct PData *pd ) { int dummy; List *entries; if ( !parser_get_int( pd, "icon_width", &dummy ) ) return 0; if ( !parser_get_int( pd, "icon_height", &dummy ) ) return 0; if ( !parser_get_entries( pd, "nations", &entries ) ) return 0; return 1; } int nation_extract( struct PData *pd, struct Translateables *xl ) { PData *sub; List *entries; /* icon size */ /* icons */ /* nations */ if ( !parser_get_entries( pd, "nations", &entries ) ) goto parser_failure; list_reset( entries ); while ( ( sub = list_next( entries ) ) ) { if ( parser_get_pdata( sub, "name", &sub ) ) { translateables_add_pdata(xl, sub); } } return 1; parser_failure: fprintf( stderr, "%s\n", parser_get_error() ); return 0; } lgeneral-1.3.1/tools/ltrextract/campaign.h0000664000175000017500000000256512140770456015532 00000000000000/*************************************************************************** camp.h - description ------------------- begin : Sat Jan 20 2001 copyright : (C) 2001 by Michael Speck (C) 2005 by Leo Savernik email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __CAMPAIGN_H #define __CAMPAIGN_H struct PData; struct Translateables; /** Checks whether this parse-tree resembles a campaign description. */ int camp_detect( struct PData *pd ); /** Extracts translateables from campaign into translateable-set. */ int camp_extract( struct PData *pd, struct Translateables *xl ); #endif lgeneral-1.3.1/tools/ltrextract/nation.h0000664000175000017500000000256312140770456015241 00000000000000/*************************************************************************** nation.h - description ------------------- begin : Wed Jan 24 2001 copyright : (C) 2001 by Michael Speck (C) 2005 by Leo Savernik email : kulkanie@gmx.net ***************************************************************************/ /*************************************************************************** * * * 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. * * * ***************************************************************************/ #ifndef __NATION_H #define __NATION_H struct PData; struct Translateables; /** Checks whether this parse-tree resembles a nation description. */ int nation_detect( struct PData *pd ); /** Extracts translateables from nation into translateable-set. */ int nation_extract( struct PData *pd, struct Translateables *xl ); #endif lgeneral-1.3.1/tools/Makefile.in0000664000175000017500000004607512643745057013466 00000000000000# Makefile.in generated by automake 1.14.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = tools DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLINCLUDES = @INTLINCLUDES@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_DEFAULT_VERBOSITY = @INTL_DEFAULT_VERBOSITY@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGCONV = @MSGCONV@ MSGCONVFLAGS = @MSGCONVFLAGS@ MSGFMT = @MSGFMT@ MSGFMTFLAGS = @MSGFMTFLAGS@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ MSGMERGEFLAGS = @MSGMERGEFLAGS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POFILES = @POFILES@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ RANLIB = @RANLIB@ SDL_CFLAGS = @SDL_CFLAGS@ SDL_CONFIG = @SDL_CONFIG@ SDL_LIBS = @SDL_LIBS@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXTFLAGS = @XGETTEXTFLAGS@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ dl_flag = @dl_flag@ dl_lib_flag = @dl_lib_flag@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ export_flag = @export_flag@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ inst_dir = @inst_dir@ inst_flag = @inst_flag@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mixer_flag = @mixer_flag@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sound_flag = @sound_flag@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = ltrextract all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tools/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign tools/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-tags distdir dvi dvi-am \ html html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: lgeneral-1.3.1/tools/Makefile.am0000664000175000017500000000002512140770456013427 00000000000000SUBDIRS = ltrextract lgeneral-1.3.1/install-sh0000775000175000017500000001272012140770461012240 00000000000000#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0